:root{
  --zucl-bg: var(--zu-bg, #f8fafc);
  --zucl-card: var(--zu-card, #ffffff);
  --zucl-border: var(--zu-border, #e2e8f0);
  --zucl-primary: var(--zu-primary, #388e3c);
  --zucl-primary-dark: var(--zu-primary-dark, #2e7d32);
  --zucl-primary-light: var(--zu-primary-light, #e8f5e9);
  --zucl-accent: var(--zu-accent, #8bc34a);
  --zucl-text: var(--zu-text, #1e293b);
  --zucl-text-soft: var(--zu-text-soft, #475569);
  --zucl-muted: var(--zu-muted, #64748b);
  --zucl-radius: var(--zu-radius, 18px);
  --zucl-shadow: var(--zu-shadow, 0 8px 24px rgba(15,23,42,.06));
  --zucl-danger: #b91c1c;
  --zucl-danger-bg: #fee2e2;
  --zucl-warn: #b45309;
  --zucl-warn-bg: #fffbeb;
  --zucl-info: #1d4ed8;
  --zucl-info-bg: #eff6ff;
}

.zucl-wrap{
  width:100%!important;
  max-width:1280px!important;
  margin:0 auto!important;
  padding:0 0 40px!important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  color:var(--zucl-text)!important;
}
.zucl-wrap *{box-sizing:border-box!important;}

/* Encabezado: mismo lenguaje visual del Core/Usuarios */
.zucl-hero{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:24px!important;
  margin:0 0 24px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:var(--zucl-text)!important;
  overflow:visible!important;
  position:relative!important;
}
.zucl-hero:after{display:none!important;}
.zucl-eyebrow{
  display:block!important;
  padding:0!important;
  margin:0 0 8px!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--zucl-muted)!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
}
.zucl-hero h1{
  margin:0!important;
  color:var(--zucl-text)!important;
  font-size:34px!important;
  line-height:1.1!important;
  font-weight:900!important;
}
.zucl-hero p{
  max-width:760px!important;
  margin:8px 0 0!important;
  color:var(--zucl-muted)!important;
  font-size:15px!important;
  line-height:1.5!important;
}
.zucl-user-card{
  min-width:260px!important;
  max-width:360px!important;
  background:var(--zucl-card)!important;
  border:1px solid var(--zucl-border)!important;
  border-radius:18px!important;
  padding:16px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  box-shadow:var(--zucl-shadow)!important;
  color:var(--zucl-text)!important;
  backdrop-filter:none!important;
}
.zucl-user-card small{
  opacity:1!important;
  color:var(--zucl-muted)!important;
  font-size:12px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}
.zucl-user-card strong{
  color:var(--zucl-text)!important;
  font-size:15px!important;
  font-weight:900!important;
  margin-top:4px!important;
}
.zucl-user-card span{
  color:var(--zucl-muted)!important;
  font-size:12px!important;
  margin-top:3px!important;
  line-height:1.35!important;
}

/* Tabs: transparentes, línea inferior verde como los otros módulos */
.zucl-tabs{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:28px!important;
  border-bottom:1px solid var(--zucl-border)!important;
  margin:18px 0 26px!important;
  padding:0!important;
}
.zucl-tabs a{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:2px!important;
  min-height:auto!important;
  padding:0 0 14px 0!important;
  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  color:var(--zucl-muted)!important;
  box-shadow:none!important;
  position:relative!important;
  text-decoration:none!important;
  transition:all .18s ease!important;
  overflow:visible!important;
}
.zucl-tabs a strong{
  display:block!important;
  color:inherit!important;
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.zucl-tabs a span{
  display:block!important;
  margin-top:2px!important;
  color:var(--zucl-muted)!important;
  font-size:11px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:180px!important;
}
.zucl-tabs a:hover,.zucl-tabs a.active{
  transform:none!important;
  color:var(--zucl-primary)!important;
  border-color:transparent!important;
  background:transparent!important;
}
.zucl-tabs a.active strong{font-weight:900!important;color:var(--zucl-primary)!important;}
.zucl-tabs a.active:before{display:none!important;}
.zucl-tabs a.active:after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:-1px!important;
  height:3px!important;
  background:var(--zucl-primary)!important;
  border-radius:3px 3px 0 0!important;
}

.zucl-alert{
  padding:13px 15px!important;
  border-radius:13px!important;
  margin:0 0 18px!important;
  font-size:14px!important;
  font-weight:800!important;
  border:1px solid var(--zucl-border)!important;
  background:#fff!important;
}
.zucl-alert.success{background:var(--zucl-primary-light)!important;border-color:var(--zucl-accent)!important;color:var(--zucl-primary-dark)!important;}
.zucl-alert.error{background:var(--zucl-danger-bg)!important;border-color:#fecaca!important;color:var(--zucl-danger)!important;}

/* KPIs y tarjetas */
.zucl-kpis{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:16px!important;
  margin-bottom:20px!important;
}
.zucl-kpi,.zucl-card,.zucl-board-col{
  background:var(--zucl-card)!important;
  border:1px solid var(--zucl-border)!important;
  border-radius:18px!important;
  box-shadow:var(--zucl-shadow)!important;
}
.zucl-kpi{
  min-height:116px!important;
  padding:18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
}
.zucl-kpi span{
  display:block!important;
  margin-bottom:8px!important;
  color:var(--zucl-muted)!important;
  font-size:13px!important;
  font-weight:800!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.zucl-kpi strong{
  display:block!important;
  font-size:30px!important;
  line-height:1!important;
  color:var(--zucl-primary)!important;
  font-weight:900!important;
}
.zucl-kpi em{
  display:block!important;
  margin-top:8px!important;
  color:var(--zucl-muted)!important;
  font-style:normal!important;
  font-size:12px!important;
  line-height:1.3!important;
}
.zucl-kpi.danger strong{color:var(--zucl-danger)!important;}
.zucl-kpi.warn strong{color:var(--zucl-warn)!important;}
.zucl-kpi.info strong{color:var(--zucl-info)!important;}

.zucl-main-grid{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr)!important;gap:20px!important;margin-bottom:20px!important;}
.zucl-two-col{display:grid!important;grid-template-columns:minmax(0,1.25fr) 360px!important;gap:20px!important;margin-bottom:20px!important;align-items:start!important;}
.zucl-card{padding:22px!important;margin:0 0 20px!important;min-width:0!important;overflow:hidden!important;}
.zucl-card-large{min-width:0!important;}
.zucl-side-panel{align-self:start!important;position:sticky!important;top:18px!important;}
.zucl-card-head{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:18px!important;margin-bottom:18px!important;}
.zucl-card h3,.zucl-board-col h3{
  margin:0 0 6px!important;
  font-size:19px!important;
  line-height:1.2!important;
  color:var(--zucl-text)!important;
  font-weight:900!important;
}
.zucl-card p,.zucl-card-head p{
  margin:0 0 14px!important;
  color:var(--zucl-muted)!important;
  font-size:14px!important;
  line-height:1.5!important;
}

/* Botones */
.zucl-btn,.zucl-small-btn,.zucl-mini-btn,.zucl-form button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-height:42px!important;
  border-radius:11px!important;
  padding:10px 18px!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:900!important;
  text-decoration:none!important;
  cursor:pointer!important;
  white-space:nowrap!important;
  box-shadow:none!important;
  transition:all .15s ease!important;
}
.zucl-btn.primary,.zucl-form button[type="submit"]{
  background:var(--zucl-primary)!important;
  border:1px solid var(--zucl-primary)!important;
  color:#fff!important;
}
.zucl-btn.primary:hover,.zucl-form button[type="submit"]:hover{
  background:var(--zucl-primary-dark)!important;
  border-color:var(--zucl-primary-dark)!important;
  color:#fff!important;
}
.zucl-btn.ghost,.zucl-small-btn,.zucl-mini-btn{
  background:#fff!important;
  border:1px solid var(--zucl-border)!important;
  color:var(--zucl-text-soft)!important;
}
.zucl-btn.ghost:hover,.zucl-small-btn:hover,.zucl-mini-btn:hover{
  background:#f1f5f9!important;
  color:var(--zucl-primary)!important;
}
.zucl-small-btn,.zucl-mini-btn{min-height:34px!important;padding:8px 11px!important;font-size:12px!important;}
.zucl-small-btn.danger,.zucl-mini-btn.danger{background:#fff!important;border-color:#fecaca!important;color:var(--zucl-danger)!important;}
.zucl-small-btn.danger:hover,.zucl-mini-btn.danger:hover{background:#fff5f5!important;color:#991b1b!important;}
.zucl-link{font-weight:900!important;color:var(--zucl-primary)!important;text-decoration:none!important;}

/* Listados y alertas */
.zucl-alert-list,.zucl-timeline{display:flex!important;flex-direction:column!important;gap:10px!important;}
.zucl-alert-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:14px!important;
  border:1px solid var(--zucl-border)!important;
  border-radius:14px!important;
  background:#f8fafc!important;
}
.zucl-alert-row strong{display:block!important;color:var(--zucl-text)!important;font-size:14px!important;}
.zucl-alert-row span,.zucl-alert-row small{display:block!important;color:var(--zucl-muted)!important;font-size:12px!important;margin-top:3px!important;line-height:1.35!important;}
.zucl-row-actions{display:flex!important;align-items:flex-end!important;flex-direction:column!important;gap:6px!important;}
.zucl-timeline div{border-left:4px solid var(--zucl-primary)!important;padding:8px 0 8px 12px!important;background:#fff!important;border-radius:0 10px 10px 0!important;}
.zucl-timeline time{display:block!important;font-size:12px!important;color:var(--zucl-muted)!important;font-weight:800!important;}
.zucl-timeline strong{display:block!important;font-size:14px!important;color:var(--zucl-text)!important;}
.zucl-empty{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:120px!important;
  background:#f8fafc!important;
  border:1px dashed #cbd5e1!important;
  border-radius:16px!important;
  color:var(--zucl-muted)!important;
  text-align:center!important;
  padding:20px!important;
  font-size:14px!important;
}
.zucl-empty.small{min-height:0!important;padding:12px!important;font-size:13px!important;}

/* Formularios */
.zucl-form{display:flex!important;flex-direction:column!important;gap:18px!important;margin:0!important;}
.zucl-form.compact{gap:12px!important;}
.zucl-grid-2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;}
.zucl-form label,.zucl-filter label{
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  margin:0!important;
  color:var(--zucl-text)!important;
  font-size:12px!important;
  font-weight:900!important;
}
.zucl-form input,.zucl-form select,.zucl-form textarea,.zucl-filter input,.zucl-filter select{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:42px!important;
  border:1px solid var(--zucl-border)!important;
  background:#fff!important;
  border-radius:11px!important;
  padding:10px 12px!important;
  color:var(--zucl-text)!important;
  font:inherit!important;
  font-size:14px!important;
  line-height:1.4!important;
  box-shadow:none!important;
  outline:none!important;
}
.zucl-form input:focus,.zucl-form select:focus,.zucl-form textarea:focus,.zucl-filter input:focus,.zucl-filter select:focus{
  border-color:var(--zucl-primary)!important;
  box-shadow:0 0 0 3px rgba(56,142,60,.14)!important;
}
.zucl-form textarea{min-height:110px!important;resize:vertical!important;}
.zucl-check{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;font-size:13px!important;color:var(--zucl-text-soft)!important;font-weight:700!important;}
.zucl-check input{width:16px!important;height:16px!important;min-height:16px!important;accent-color:var(--zucl-primary)!important;}
.zucl-actions{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;margin-top:18px!important;flex-wrap:wrap!important;}
.zucl-filter{display:flex!important;flex-direction:column!important;gap:12px!important;}
.zucl-export-form{margin-top:12px!important;}

/* Tablas */
.zucl-table-wrap{
  width:100%!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
  border:1px solid var(--zucl-border)!important;
  border-radius:14px!important;
  background:#fff!important;
}
.zucl-table{
  width:100%!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  min-width:860px!important;
  margin:0!important;
  background:#fff!important;
  font-size:13px!important;
}
.zucl-table.compact{min-width:620px!important;}
.zucl-table th{
  background:#f8fafc!important;
  color:var(--zucl-text-soft)!important;
  font-weight:900!important;
  text-align:left!important;
  padding:13px 12px!important;
  border-bottom:1px solid var(--zucl-border)!important;
  white-space:nowrap!important;
  font-size:12px!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.zucl-table td{
  padding:13px 12px!important;
  border-bottom:1px solid var(--zucl-border)!important;
  color:var(--zucl-text)!important;
  vertical-align:middle!important;
  font-size:13px!important;
}
.zucl-table tr:last-child td{border-bottom:0!important;}
.zucl-table tr:hover td{background:#f8fafc!important;}
.zucl-table td strong{display:block!important;color:var(--zucl-text)!important;font-weight:900!important;}
.zucl-table td small{display:block!important;color:var(--zucl-muted)!important;font-size:12px!important;margin-top:3px!important;line-height:1.35!important;}
.zucl-actions-col{width:170px!important;text-align:left!important;}
.zucl-row-actions-inline{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;white-space:nowrap!important;min-width:150px!important;}
.zucl-row-actions-inline form{display:inline-flex!important;margin:0!important;padding:0!important;}

/* Badges */
.zucl-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  border-radius:999px!important;
  padding:4px 9px!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  border:1px solid transparent!important;
  white-space:nowrap!important;
}
.zucl-badge.is-vigente,.zucl-badge.is-completada{background:var(--zucl-primary-light)!important;color:var(--zucl-primary-dark)!important;border-color:var(--zucl-accent)!important;}
.zucl-badge.is-por_vencer,.zucl-badge.is-pendiente,.zucl-badge.priority-media{background:var(--zucl-warn-bg)!important;color:var(--zucl-warn)!important;border-color:#fde68a!important;}
.zucl-badge.is-vencido,.zucl-badge.priority-alta{background:var(--zucl-danger-bg)!important;color:var(--zucl-danger)!important;border-color:#fecaca!important;}
.zucl-badge.is-renovado,.zucl-badge.is-realizado,.zucl-badge.is-programado,.zucl-badge.is-en_proceso{background:var(--zucl-info-bg)!important;color:var(--zucl-info)!important;border-color:#bfdbfe!important;}
.zucl-badge.is-archivado,.zucl-badge.is-sin_vencimiento,.zucl-badge.is-cancelada{background:#f1f5f9!important;color:var(--zucl-text-soft)!important;border-color:#e2e8f0!important;}
.zucl-badge.priority-baja{background:#f0fdf4!important;color:#166534!important;border-color:#bbf7d0!important;}

/* Calendario */
.zucl-calendar-nav{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;}
.zucl-calendar-grid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(128px,1fr))!important;
  gap:8px!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding-bottom:4px!important;
}
.zucl-calendar-head{font-size:12px!important;color:var(--zucl-muted)!important;font-weight:900!important;text-transform:uppercase!important;padding:8px!important;}
.zucl-day{min-height:126px!important;border:1px solid var(--zucl-border)!important;border-radius:14px!important;padding:10px!important;background:#fff!important;display:flex!important;flex-direction:column!important;gap:6px!important;}
.zucl-day.empty{background:#f8fafc!important;}
.zucl-day.today{border-color:var(--zucl-primary)!important;box-shadow:0 0 0 3px rgba(56,142,60,.14)!important;}
.zucl-day strong{font-size:13px!important;color:var(--zucl-text)!important;}
.zucl-cal-item{display:block!important;font-size:11px!important;line-height:1.25!important;border-radius:10px!important;padding:5px 6px!important;background:#f1f5f9!important;color:var(--zucl-text-soft)!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.zucl-cal-item.event{background:var(--zucl-info-bg)!important;color:var(--zucl-info)!important;}
.zucl-cal-item.task{background:var(--zucl-primary-light)!important;color:var(--zucl-primary-dark)!important;}
.zucl-cal-item.por_vencer{background:var(--zucl-warn-bg)!important;color:var(--zucl-warn)!important;}
.zucl-cal-item.vencido{background:var(--zucl-danger-bg)!important;color:var(--zucl-danger)!important;}
.zucl-cal-item.vigente{background:var(--zucl-primary-light)!important;color:var(--zucl-primary-dark)!important;}
.zucl-day em{font-size:11px!important;color:var(--zucl-muted)!important;font-style:normal!important;}

/* Tareas / Kanban */
.zucl-board{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;}
.zucl-board-col{padding:14px!important;min-height:320px!important;background:#f8fafc!important;}
.zucl-board-col h3{margin-bottom:12px!important;}
.zucl-task-card{background:#fff!important;border:1px solid var(--zucl-border)!important;border-radius:14px!important;padding:14px!important;margin-bottom:10px!important;box-shadow:0 6px 18px rgba(15,23,42,.04)!important;}
.zucl-task-card>div:first-child{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:8px!important;}
.zucl-task-card p{font-size:13px!important;color:var(--zucl-muted)!important;margin:8px 0!important;line-height:1.45!important;}
.zucl-task-card small{display:block!important;color:var(--zucl-muted)!important;font-size:12px!important;}
.zucl-card-actions{display:flex!important;gap:6px!important;flex-wrap:wrap!important;margin-top:10px!important;}
.zucl-card-actions form{margin:0!important;}
.zucl-mini-list{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:14px!important;}
.zucl-mini-list span{background:var(--zucl-primary-light)!important;border:1px solid var(--zucl-accent)!important;color:var(--zucl-primary-dark)!important;border-radius:999px!important;padding:7px 10px!important;font-weight:800!important;font-size:12px!important;}
.zucl-catalog-form{border:1px solid var(--zucl-border)!important;padding:14px!important;border-radius:14px!important;background:#f8fafc!important;margin-bottom:14px!important;}

@media (max-width:1180px){
  .zucl-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .zucl-main-grid,.zucl-two-col{grid-template-columns:1fr!important;}
  .zucl-side-panel{position:static!important;}
  .zucl-board{grid-template-columns:1fr!important;}
  .zucl-calendar-grid{grid-template-columns:repeat(7,140px)!important;}
}
@media (max-width:860px){
  .zucl-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .zucl-grid-2{grid-template-columns:1fr!important;}
}
@media (max-width:720px){
  .zucl-wrap{max-width:100%!important;padding:0 0 30px!important;}
  .zucl-hero{flex-direction:column!important;align-items:stretch!important;gap:14px!important;margin-bottom:18px!important;}
  .zucl-hero h1{font-size:26px!important;line-height:1.15!important;}
  .zucl-user-card{min-width:0!important;max-width:100%!important;}
  .zucl-tabs{gap:18px!important;overflow-x:auto!important;flex-wrap:nowrap!important;white-space:nowrap!important;padding-bottom:0!important;margin-bottom:18px!important;}
  .zucl-tabs a{flex:0 0 auto!important;font-size:14px!important;padding-bottom:12px!important;}
  .zucl-tabs a span{display:none!important;}
  .zucl-kpis{grid-template-columns:1fr!important;}
  .zucl-card{padding:18px!important;border-radius:15px!important;}
  .zucl-card-head,.zucl-alert-row,.zucl-actions,.zucl-calendar-nav{flex-direction:column!important;align-items:stretch!important;}
  .zucl-actions .zucl-btn,.zucl-actions button,.zucl-form button[type="submit"]{width:100%!important;}
  .zucl-row-actions{align-items:flex-start!important;}
  .zucl-calendar-grid{grid-template-columns:repeat(7,132px)!important;}
  .zucl-table{min-width:760px!important;}
}
