/* ============================================================
   VERA — Growth OS para Skool
   Hoja de estilos única. Identidad negro + dorado (logo oficial),
   tarjetas redondeadas, sombras suaves.

   --azul / --azul-claro son el acento de marca (texto, enlaces,
   bordes de foco): cambian de tono entre temas porque el mismo
   dorado no es legible como texto sobre blanco Y sobre negro a la
   vez (bronce oscuro en claro, dorado brillante en oscuro).
   --dorado-solido es el dorado de RELLENO (botones, toasts, nav
   activo, texto blanco encima): un único tono fijo en ambos temas,
   elegido para mantener contraste AA con texto blanco siempre.
   ============================================================ */

/* Paleta de marca: navy profundo + dorado champán + periwinkle (la del manual
   de VERA). El tema OSCURO es el look principal (navy); el claro es una versión
   coherente sobre crema fría con tinta navy. --azul/--azul-claro = acento de
   texto/enlaces (champán en oscuro, bronce en claro para legibilidad). */
:root{
  --azul:#8A6423;
  --azul-claro:#C9A227;
  --dorado-solido:#7A5518;
  --naranja:#E08A3A;
  --verde:#2E9E6B;
  --verde-bg:#E6F6EE;
  --rojo:#E15252;
  --rojo-bg:#FCEAEA;
  --amarillo:#E0A93E;
  --amarillo-bg:#FCF4E3;
  --morado:#5B6FD6;
  --morado-bg:#E7EAFB;
  --fucsia:#7C5CFF;
  --fondo:#F7F6F1;
  --tarjeta:#FFFFFF;
  --tarjeta-gris:#F1EFE8;
  --texto:#1B2338;
  --texto-suave:#5C6478;
  --borde:#E4DEC9;
  --sombra:0 2px 10px rgba(30,40,70,0.08);
  --sombra-hover:0 6px 20px rgba(30,40,70,0.14);
  --radio:14px;
  --radio-sm:8px;
  font-size:16px;
}

:root[data-theme="dark"]{
  --azul:#E7BE6B;
  --azul-claro:#F2D9A0;
  --dorado-solido:#8A6320;
  --naranja:#F0A85A;
  --verde:#78D19B;
  --verde-bg:#12291E;
  --rojo:#F08585;
  --rojo-bg:#331E1E;
  --amarillo:#E7BE6B;
  --amarillo-bg:#2C2614;
  --morado:#93A6F4;
  --morado-bg:#1B2540;
  --fucsia:#A78BFA;
  --fondo:#0B1322;
  --tarjeta:#111B2F;
  --tarjeta-gris:#152238;
  --texto:#ECEFF8;
  --texto-suave:#9FB0CE;
  --borde:#26374F;
  --sombra:0 2px 12px rgba(0,0,0,0.5);
  --sombra-hover:0 10px 30px rgba(0,0,0,0.6);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--fondo);
  color:var(--texto);
  min-height:100vh;
}
/* Glow sutil de la marca (dorado arriba-derecha, periwinkle arriba-izquierda),
   igual que el manual, solo en el tema oscuro. */
:root[data-theme="dark"] body{
  background:
    radial-gradient(1100px 620px at 82% -8%, rgba(231,190,107,.06), transparent 60%),
    radial-gradient(900px 560px at 6% 4%, rgba(147,166,244,.07), transparent 58%),
    var(--fondo);
  background-attachment:fixed;
}
a{color:inherit;}
button{font-family:inherit;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:var(--borde);border-radius:10px;}

/* ---------- Layout general ---------- */
.app{display:flex; min-height:100vh;}
.hidden{display:none !important;}

/* ---------- Sidebar ---------- */
.sidebar{
  width:250px; flex-shrink:0; background:var(--tarjeta); border-right:1px solid var(--borde);
  display:flex; flex-direction:column; padding:20px 14px; gap:6px;
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.brand{display:flex; align-items:center; gap:10px; padding:6px 8px 18px 8px;}
.brand-logo{width:38px;height:38px;border-radius:10px;object-fit:cover;flex-shrink:0;}
.brand-text strong{display:block;font-size:16px;color:var(--azul);}
.brand-text span{display:block;font-size:11px;color:var(--texto-suave);}

.nav-item{
  display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:var(--radio-sm);
  cursor:pointer; font-size:14px; font-weight:600; color:var(--texto-suave); border:none;
  background:transparent; text-align:left; width:100%; transition:background .15s, color .15s;
}
.nav-item:hover{background:var(--tarjeta-gris); color:var(--texto);}
.nav-item.active{background:var(--dorado-solido); color:#fff;}
.nav-item .ic{font-size:16px;width:20px;text-align:center;}

/* ---------- Sidebar · fases (Creación / Lanzamiento / Escalado) ----------
   Agrupaciones de navegación desplegables. Ninguna fase se bloquea: solo
   se destaca la que el proyecto tiene marcada como foco estratégico. */
.nav-group{display:flex; flex-direction:column;}
.nav-group-header{
  display:flex; align-items:center; gap:8px; padding:9px 10px; border-radius:var(--radio-sm);
  cursor:pointer; border:none; background:transparent; width:100%; text-align:left;
  font-size:11px; font-weight:800; letter-spacing:.4px; text-transform:uppercase;
  color:var(--texto-suave); transition:background .15s, color .15s;
}
.nav-group-header:hover{background:var(--tarjeta-gris); color:var(--texto);}
.nav-group-header .ic{font-size:14px; width:18px; text-align:center;}
.nav-group-header .ng-label{flex:0 1 auto; min-width:0; margin-right:auto; white-space:nowrap;}
.nav-group-header .ng-caret{
  font-size:13px; width:10px; flex-shrink:0; opacity:.7;
  transition:transform .15s ease; transform-origin:50% 50%;
}
.nav-group.open .nav-group-header .ng-caret{transform:rotate(90deg);}
.nav-group.open .nav-group-header{color:var(--texto);}

/* Marca de fase actual: destacar, nunca bloquear las otras. */
.nav-group-header .ng-current{display:none;}
.nav-group.is-current .nav-group-header{color:var(--azul);}
.nav-group.is-current .nav-group-header .ng-current{
  display:inline-block; font-size:8.5px; letter-spacing:.4px; font-weight:800;
  padding:2px 6px; border-radius:20px; background:var(--azul); color:#fff; flex-shrink:0;
}

.nav-group-items{display:none; padding:2px 0 6px 0;}
.nav-group.open .nav-group-items{display:block;}
.nav-group-hint{
  font-size:10.5px; line-height:1.35; color:var(--texto-suave);
  padding:0 10px 6px 22px; opacity:.75;
}
.nav-item.is-sub{padding:8px 12px 8px 22px; font-size:13px; font-weight:600;}
.nav-item.is-sub .ic{font-size:14px; width:18px;}

.nav-sep{height:1px; background:var(--borde); margin:10px 4px;}

.sidebar-footer{margin-top:auto; padding-top:14px; border-top:1px solid var(--borde); font-size:11px; color:var(--texto-suave);}

.project-switcher{margin-bottom:10px;}
.project-switcher select{
  width:100%; padding:8px 10px; border-radius:8px; border:1px solid var(--borde);
  background:var(--tarjeta-gris); color:var(--texto); font-size:12px; font-weight:700;
}
.project-switcher .ps-actions{display:flex; gap:6px; margin-top:6px;}

/* ---------- Main ---------- */
.main{flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{
  display:flex; align-items:center; gap:14px; padding:14px 26px; background:var(--tarjeta);
  border-bottom:1px solid var(--borde); position:sticky; top:0; z-index:10;
}
.topbar h1{font-size:19px;margin:0;color:var(--azul);}
.topbar-title{min-width:0;}
.topbar .sub{font-size:12px;color:var(--texto-suave);margin-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
/* Chip de fase: recuerda a qué fase(s) pertenece la pantalla abierta. */
.topbar-phase{display:flex;gap:5px;flex-wrap:wrap;}
.topbar-phase .tp-item{
  font-size:10px; font-weight:700; padding:2px 7px; border-radius:20px;
  border:1px solid var(--borde); color:var(--texto-suave); white-space:nowrap;
}
.topbar-phase .tp-item.is-current{border-color:var(--azul); color:var(--azul);}
.icon-btn{
  border:1px solid var(--borde); background:var(--tarjeta-gris); border-radius:10px;
  width:36px;height:36px; display:flex;align-items:center;justify-content:center; cursor:pointer;
  font-size:15px; color:var(--texto); flex-shrink:0;
}
.icon-btn:hover{border-color:var(--azul);}

.content{padding:24px 26px 60px 26px; max-width:1400px; width:100%;}
.view{display:none;}
.view.active{display:block; animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

.section-header{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:20px; flex-wrap:wrap;}
.section-header h2{margin:0 0 4px 0;font-size:22px;color:var(--azul);}
.section-header p{margin:0;color:var(--texto-suave);font-size:13px;max-width:640px;}
.header-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* ---------- Botones ---------- */
.btn{
  border:none; border-radius:10px; padding:9px 16px; font-size:13px; font-weight:700; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; transition:transform .1s, box-shadow .15s;
}
.btn:active{transform:scale(0.97);}
.btn:disabled{opacity:.55; cursor:not-allowed;}
.btn-primary{background:var(--dorado-solido); color:#fff;}
.btn-primary:hover{box-shadow:var(--sombra-hover);}
.btn-accent{background:var(--naranja); color:#fff;}
.btn-accent:hover{box-shadow:var(--sombra-hover);}
.btn-ghost{background:var(--tarjeta-gris); color:var(--texto); border:1px solid var(--borde);}
.btn-ghost:hover{border-color:var(--azul);}
.btn-danger{background:var(--rojo-bg); color:var(--rojo); border:1px solid var(--rojo);}
.btn-sm{padding:6px 10px;font-size:12px;border-radius:8px;}
.btn-block{width:100%; justify-content:center;}

/* ---------- Tarjetas / grid métricas ---------- */
.grid{display:grid; gap:16px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}

.card{background:var(--tarjeta); border:1px solid var(--borde); border-radius:var(--radio); padding:18px; box-shadow:var(--sombra);}
.metric-cards-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:16px; margin-bottom:24px;}
.metric-card{position:relative; overflow:hidden;}
.metric-card .m-label{font-size:12px; color:var(--texto-suave); font-weight:600; text-transform:uppercase; letter-spacing:.03em;}
.metric-card .m-value{font-size:26px; font-weight:800; color:var(--azul); margin:6px 0 2px 0;}
.metric-card .m-icon{position:absolute; right:14px; top:14px; font-size:20px; opacity:.35;}
.metric-card.tone-verde .m-value{color:var(--verde);}
.metric-card.tone-rojo .m-value{color:var(--rojo);}
.metric-card.tone-amarillo .m-value{color:var(--amarillo);}

.progress-bar{width:100%; height:9px; border-radius:6px; background:var(--tarjeta-gris); overflow:hidden; margin-top:8px; border:1px solid var(--borde);}
.progress-bar > div{height:100%; background:linear-gradient(90deg,var(--naranja),var(--dorado-solido)); border-radius:6px; transition:width .4s ease;}

.badge{display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700;}
.badge-verde{background:var(--verde-bg); color:var(--verde);}
.badge-rojo{background:var(--rojo-bg); color:var(--rojo);}
.badge-amarillo{background:var(--amarillo-bg); color:#8A6A16;}
.badge-azul{background:#E9ECF1; color:#4B5768;}
:root[data-theme="dark"] .badge-azul{background:#2A3038; color:#B7C2D1;}
.badge-gris{background:var(--tarjeta-gris); color:var(--texto-suave); border:1px solid var(--borde);}
.badge-naranja{background:#FDEBD6; color:#B8631A;}
:root[data-theme="dark"] .badge-naranja{background:#3A2A16; color:#F2A85C;}
.badge-morado{background:var(--morado-bg); color:var(--morado);}

.highlight-card{border-left:5px solid var(--naranja);}
.highlight-card h3{margin:0 0 8px 0; font-size:14px; color:var(--naranja); display:flex; align-items:center; gap:6px;}
.highlight-card p{margin:0; font-size:14px; line-height:1.5;}
.highlight-card.bottleneck{border-left-color:var(--rojo);}
.highlight-card.bottleneck h3{color:var(--rojo);}
.highlight-card.priorities{border-left-color:var(--azul);}
.highlight-card.priorities h3{color:var(--azul);}

/* ---------- Dashboard / Daily Briefing ---------- */
.hero-block{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:16px;
}
@media(max-width:1000px){.hero-block{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.hero-block{grid-template-columns:1fr;}}
.hero-stat{
  background:linear-gradient(160deg,var(--dorado-solido),#2E210A); color:#fff; border-radius:var(--radio);
  padding:16px 18px; box-shadow:var(--sombra-hover); position:relative; overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}
.hero-stat:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,0.22);}
.hero-stat:nth-child(2){background:linear-gradient(160deg,var(--naranja),#B8631A);}
.hero-stat:nth-child(3){background:linear-gradient(160deg,#2E9E6B,#1D6B49);}
.hero-stat:nth-child(4){background:linear-gradient(160deg,#5A79E0,#2E3E78);}
.hero-stat .h-label{font-size:11px; text-transform:uppercase; letter-spacing:.05em; opacity:.9; font-weight:800;}
.hero-stat .h-value{font-size:39px; font-weight:800; margin:6px 0 3px 0; line-height:1; letter-spacing:-.01em; text-shadow:0 1px 2px rgba(0,0,0,0.15);}
.hero-stat .h-sub{font-size:11px; opacity:.85; line-height:1.3;}

/* Prioridad de Vera — elemento dominante del Dashboard */
.vera-note{
  background:linear-gradient(135deg,#152238 0%,#0B1322 100%); color:#ECEFF8;
  border-radius:var(--radio); padding:30px 32px 32px 32px; margin-bottom:16px; box-shadow:var(--sombra-hover);
  position:relative; min-height:220px;
}
.vera-note::before{
  content:"“"; position:absolute; top:2px; left:20px; font-size:76px; font-family:Georgia,serif;
  opacity:.15; line-height:1;
}
.vera-note-eyebrow{
  display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:var(--naranja); background:rgba(242,140,40,0.16); border:1px solid rgba(242,140,40,0.4);
  border-radius:20px; padding:4px 12px; margin-bottom:14px;
}
.vera-note-head{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.vera-note-avatar{
  width:38px;height:38px;border-radius:50%; background:var(--naranja); color:#fff; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:16px;
  box-shadow:0 0 0 3px rgba(242,140,40,0.25);
}
.vera-note-head strong{display:block; font-size:16px; letter-spacing:.02em;}
.vera-note-head span{display:block; font-size:11px; opacity:.72; margin-top:1px;}
.vera-note-body{font-size:17px; line-height:1.6; position:relative; z-index:1;}
.vera-note-body strong{color:var(--naranja);}
.vera-note-body .vera-note-only{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; opacity:.8; margin:16px 0 8px 0;}
.vera-note-body ul{list-style:none; margin:0; padding:0;}
.vera-note-body li{margin-bottom:8px; padding-left:26px; position:relative; font-size:15px;}
.vera-note-body li::before{content:"☐"; position:absolute; left:0; top:0; font-size:16px; opacity:.85;}
.vera-note-avoid{
  display:inline-block; background:rgba(225,82,82,0.25); border:1px solid rgba(225,82,82,0.55);
  border-radius:8px; padding:7px 14px; font-size:14px; font-weight:800; margin-bottom:12px;
}

/* Botón "Reunión con Vera" — acción principal del Dashboard */
.btn-meeting{
  background:linear-gradient(135deg,var(--naranja),#D66C10); color:#fff; border:none;
  padding:12px 22px; font-size:14px; font-weight:800; border-radius:12px;
  box-shadow:0 6px 18px rgba(242,140,40,0.4); margin-left:14px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.btn-meeting:hover:not(:disabled){transform:translateY(-2px); box-shadow:0 10px 24px rgba(242,140,40,0.5);}
.btn-meeting:disabled{opacity:.65; box-shadow:none; cursor:not-allowed;}

/* Reunión diaria de Dirección General (primera IA visible) */
.ai-meeting-card{border-left:5px solid var(--morado); margin-bottom:14px;}
.ai-meeting-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; flex-wrap:wrap; gap:6px;}
.ai-meeting-time{font-size:11px; color:var(--texto-suave);}
.ai-meeting-card h3{margin:0 0 10px 0; font-size:14px; color:var(--morado);}
.ai-meeting-body{font-size:13.5px; line-height:1.6; white-space:pre-wrap;}
.ai-meeting-body.loading{color:var(--texto-suave); font-style:italic;}
.ai-meeting-body.error{color:var(--rojo);}
.ai-meeting-retry{margin-top:10px;}

/* Cuello de botella — diagnóstico estructurado */
.diagnostic-card{border-left:5px solid var(--rojo); margin-bottom:14px; padding:16px 18px;}
.diagnostic-card h3{margin:0 0 8px 0; font-size:14px; color:var(--rojo); display:flex; align-items:center; gap:6px;}
.diagnostic-row{display:grid; grid-template-columns:110px 1fr; gap:4px 14px; font-size:12.5px; padding:5px 0; border-bottom:1px dashed var(--borde);}
.diagnostic-row:last-child{border-bottom:none;}
.diagnostic-row .d-label{font-weight:800; color:var(--texto-suave); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; padding-top:2px;}
.diagnostic-row .d-value{line-height:1.45;}
@media(max-width:560px){.diagnostic-row{grid-template-columns:1fr;}}

/* Estado del negocio */
.business-score-card{display:flex; flex-direction:column; gap:12px;}
.business-score-top{display:flex; align-items:center; gap:16px;}
.score-badge{
  width:72px; height:72px; border-radius:50%; flex-shrink:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; font-weight:800; color:#fff; font-size:20px;
  transition:transform .18s ease;
}
.score-badge:hover{transform:scale(1.05);}
.score-badge .score-tag{font-size:8.5px; font-weight:800; text-transform:uppercase; margin-top:2px; letter-spacing:.04em;}
.score-badge.verde{background:linear-gradient(145deg,var(--verde),#1D6B49);}
.score-badge.amarillo{background:linear-gradient(145deg,var(--amarillo),#B8841A);}
.score-badge.rojo{background:linear-gradient(145deg,var(--rojo),#A83030);}
.score-breakdown{font-size:10.5px; color:var(--texto-suave); line-height:1.65;}
.score-breakdown b{color:var(--texto); font-weight:800;}
.score-verdict{font-size:12.5px; line-height:1.5; color:var(--texto); background:var(--tarjeta-gris); border-radius:8px; padding:8px 12px; border-left:3px solid var(--naranja);}

/* Momentum */
.momentum-list{display:flex; flex-direction:column; gap:8px;}
.momentum-item{display:flex; align-items:flex-start; gap:8px; font-size:12.5px; line-height:1.4;}
.momentum-item .m-emoji{font-size:15px; flex-shrink:0;}

/* Tres prioridades — checklist */
.priority-checklist{display:flex; flex-direction:column; gap:7px;}
.priority-check-item{
  display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px;
  background:var(--tarjeta-gris); font-size:13px; transition:background .15s ease;
}
.priority-check-item:hover{background:var(--borde);}
.priority-check-item input[type="checkbox"]{width:16px; height:16px; flex-shrink:0; cursor:pointer; transition:transform .15s ease;}
.priority-check-item input[type="checkbox"]:hover{transform:scale(1.15);}
.priority-check-item.done{opacity:.55; text-decoration:line-through;}

/* Estados vacíos con enseñanza */
.teach-empty{font-size:12.5px; line-height:1.55; color:var(--texto-suave);}
.teach-empty strong{color:var(--texto);}

/* Disclosure de métricas de detalle */
.detail-disclosure summary{
  cursor:pointer; font-size:13px; font-weight:700; color:var(--azul); padding:8px 0; list-style:none;
  display:flex; align-items:center; gap:6px; transition:opacity .15s ease;
}
.detail-disclosure summary:hover{opacity:.75;}
.detail-disclosure summary::-webkit-details-marker{display:none;}
.detail-disclosure summary::before{content:"▸"; transition:transform .15s;}
.detail-disclosure[open] summary::before{transform:rotate(90deg);}

/* Microinteracciones globales (≤200ms, sutiles) */
.card{transition:box-shadow .18s ease, transform .18s ease;}
.card:hover{box-shadow:var(--sombra-hover);}
.metric-card:hover{transform:translateY(-2px);}

/* ---------- Formularios ---------- */
.form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px;}
.form-grid-wide{grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px 20px;}
.field label{display:block; font-size:12px; font-weight:700; color:var(--texto-suave); margin-bottom:5px;}
.field input, .field select, .field textarea{
  width:100%; padding:11px 13px; border-radius:8px; border:1px solid var(--borde);
  background:var(--fondo); color:var(--texto); font-size:14px; font-family:inherit; line-height:1.5;
}
.field textarea{resize:vertical; min-height:60px;}
.field textarea.autogrow{resize:none; overflow:hidden; min-height:48px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--azul-claro); outline-offset:1px;}
.currency-select-label{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--texto-suave);}
.currency-select-label select{padding:7px 10px; border-radius:8px; border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto); font-size:12px; font-weight:700;}
.field-error{color:var(--rojo); font-size:11px; margin-top:4px; display:none;}
.field.invalid input, .field.invalid select, .field.invalid textarea{border-color:var(--rojo);}
.field.invalid .field-error{display:block;}

.modal-overlay{
  position:fixed; inset:0; background:rgba(20,24,31,0.55); display:none; align-items:flex-start;
  justify-content:center; z-index:100; padding:40px 16px; overflow-y:auto;
}
.modal-overlay.active{display:flex;}
.modal{background:var(--tarjeta); border-radius:var(--radio); padding:24px; width:100%; max-width:640px; box-shadow:var(--sombra-hover); border:1px solid var(--borde);}
.modal h3{margin:0 0 16px 0; color:var(--azul); font-size:18px;}
.modal-actions{display:flex; justify-content:flex-end; gap:8px; margin-top:18px; flex-wrap:wrap;}

.view-fields{display:flex; flex-direction:column; gap:14px;}
.view-field-label{font-size:12px; font-weight:700; color:var(--texto-suave); margin-bottom:3px;}
.view-field-value{font-size:14px; line-height:1.5; white-space:pre-wrap;}
.row-clickable{cursor:pointer;}
.row-clickable:hover{background:var(--tarjeta-gris);}

/* ---------- Tablas ---------- */
.table-wrap{overflow-x:auto; border-radius:var(--radio); border:1px solid var(--borde);}
table{width:100%; border-collapse:collapse; font-size:13px; min-width:640px;}
thead th{
  background:var(--tarjeta-gris); text-align:left; padding:10px 12px; font-size:11px;
  text-transform:uppercase; letter-spacing:.03em; color:var(--texto-suave); white-space:nowrap; border-bottom:1px solid var(--borde);
}
tbody td{padding:10px 12px; border-bottom:1px solid var(--borde); vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:var(--tarjeta-gris);}
.row-actions{display:flex; gap:6px;}
.row-actions button{border:none; background:transparent; cursor:pointer; font-size:14px; opacity:.7; padding:2px 4px;}
.row-actions button:hover{opacity:1;}

/* ---------- Filtros ---------- */
.filter-bar{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; align-items:center;}
.filter-bar select, .filter-bar input{padding:8px 10px; border-radius:8px; border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto); font-size:12px;}
.tab-bar{display:flex; gap:6px; margin-bottom:16px; flex-wrap:wrap;}
.tab-btn{padding:8px 14px; border-radius:20px; border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto-suave); font-size:12px; font-weight:700; cursor:pointer;}
.tab-btn.active{background:var(--dorado-solido); color:#fff; border-color:var(--dorado-solido);}

/* ---------- Estados vacíos y de carga ---------- */
.empty-state{text-align:center; padding:50px 20px; color:var(--texto-suave);}
.empty-state .e-ic{font-size:38px; margin-bottom:10px;}
.empty-state p{margin:4px 0; font-size:13px;}
.loading-state{text-align:center; padding:40px 20px; color:var(--texto-suave); font-size:13px;}
.spinner{
  width:22px;height:22px;border-radius:50%; border:3px solid var(--borde); border-top-color:var(--azul);
  animation:spin .7s linear infinite; margin:0 auto 10px auto;
}
@keyframes spin{to{transform:rotate(360deg);}}
.error-banner{
  background:var(--rojo-bg); color:var(--rojo); border:1px solid var(--rojo); border-radius:10px;
  padding:12px 16px; font-size:13px; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.error-banner button{background:transparent;border:none;color:var(--rojo);font-weight:700;cursor:pointer;}

/* ---------- Toast ---------- */
.toast-wrap{position:fixed; bottom:20px; right:20px; z-index:200; display:flex; flex-direction:column; gap:8px;}
.toast{background:var(--dorado-solido); color:#fff; padding:12px 18px; border-radius:10px; font-size:13px; font-weight:600; box-shadow:var(--sombra-hover); animation:slideIn .25s ease; max-width:320px;}
.toast.success{background:var(--verde);}
.toast.error{background:var(--rojo);}
.toast.info{background:var(--dorado-solido);}
@keyframes slideIn{from{opacity:0;transform:translateX(30px);}to{opacity:1;transform:translateX(0);}}

/* ---------- Tooltip ---------- */
[data-tip]{position:relative; cursor:help;}
[data-tip]:hover::after{
  content:attr(data-tip); position:absolute; bottom:125%; left:50%; transform:translateX(-50%);
  background:#232323; color:#fff; padding:6px 10px; border-radius:6px; font-size:11px; white-space:nowrap; z-index:50; box-shadow:var(--sombra-hover);
}

/* ---------- Charts ---------- */
.chart-card svg{width:100%; height:auto; display:block;}
.chart-legend{display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; font-size:12px;}
.chart-legend span{display:inline-flex; align-items:center; gap:5px;}
.legend-dot{width:9px;height:9px;border-radius:50%; display:inline-block;}

/* Funnel */
.funnel-stage{display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px dashed var(--borde);}
.funnel-stage:last-child{border-bottom:none;}
.funnel-bar-wrap{flex:1;}
.funnel-name{font-weight:700; font-size:13px; margin-bottom:4px; display:flex; justify-content:space-between;}
.funnel-track{height:26px; border-radius:6px; background:var(--tarjeta-gris); overflow:hidden; border:1px solid var(--borde);}
.funnel-fill{height:100%; background:linear-gradient(90deg,#7A5518,#8A6423); display:flex; align-items:center; padding-left:10px; color:#fff; font-size:11px; font-weight:700; white-space:nowrap;}
.funnel-conv{font-size:11px; color:var(--texto-suave); margin-top:3px;}

/* Weekly summary output */
.summary-output{background:var(--tarjeta-gris); border:1px dashed var(--borde); border-radius:10px; padding:16px; font-size:13px; line-height:1.6; white-space:pre-wrap; margin-top:14px;}

/* Sprints del plan mensual */
.sprint-stack{display:flex; flex-direction:column; gap:18px;}
.week-card{border-radius:var(--radio); border:1px solid var(--borde); background:var(--tarjeta); padding:20px 22px;}
.week-card .wk-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; flex-wrap:wrap; gap:10px;}
.week-card .wk-head strong{font-size:14px; color:var(--azul);}
.sprint-fields{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px 20px;}
.sprint-fields .field{margin:0;}

.week-status-select{
  padding:8px 12px; border-radius:20px; border:1px solid transparent; font-size:12px; font-weight:800; cursor:pointer;
}
.week-status-select.sprint-status-gris{background:var(--tarjeta-gris); color:var(--texto-suave); border-color:var(--borde);}
.week-status-select.sprint-status-azul{background:#E9ECF1; color:#4B5768;}
:root[data-theme="dark"] .week-status-select.sprint-status-azul{background:#2A3038; color:#B7C2D1;}
.week-status-select.sprint-status-verde{background:var(--verde-bg); color:var(--verde);}

.last-updated{font-size:11px; color:var(--texto-suave); display:flex; align-items:center; gap:5px;}

/* ---------- Contenido: tono compartido por estado ---------- */
.tone-gris{background:var(--tarjeta-gris); color:var(--texto-suave); border-color:var(--borde);}
.tone-azul{background:#E9ECF1; color:#4B5768;}
:root[data-theme="dark"] .tone-azul{background:#2A3038; color:#B7C2D1;}
.tone-amarillo{background:var(--amarillo-bg); color:#8A6A16;}
.tone-naranja{background:#FDEBD6; color:#B8631A;}
:root[data-theme="dark"] .tone-naranja{background:#3A2A16; color:#F2A85C;}
.tone-morado{background:var(--morado-bg); color:var(--morado);}
.tone-verde{background:var(--verde-bg); color:var(--verde);}

/* Tarjeta "Hoy" */
.content-today-card{margin-bottom:16px; border-left:5px solid var(--naranja);}
.content-today-card h3{margin:0 0 10px 0; font-size:14px; color:var(--naranja);}
.today-item{
  display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:8px; font-size:13px;
  cursor:pointer; transition:background .15s ease;
}
.today-item:hover{background:var(--tarjeta-gris);}
.today-item.done{opacity:.55; text-decoration:line-through;}
.today-item input[type="checkbox"]{width:17px;height:17px; flex-shrink:0; cursor:pointer;}
.today-ic{font-size:15px;}
.today-title{flex:1; font-weight:600;}
.today-time{font-size:11px; color:var(--texto-suave); font-weight:700;}

/* Indicadores automáticos */
.content-indicators{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px;}
.indicator-chip{
  display:flex; align-items:center; gap:7px; background:var(--tarjeta); border:1px solid var(--borde);
  border-radius:20px; padding:7px 14px; font-size:12px; box-shadow:var(--sombra);
}
.indicator-chip .ind-ic{font-size:13px;}
.indicator-chip .ind-num{font-weight:800; color:var(--azul); font-size:14px;}
.indicator-chip .ind-label{color:var(--texto-suave); font-weight:600;}

/* Calendario de contenido */
.cal-nav{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.cal-nav strong{font-size:14px; color:var(--azul); text-transform:capitalize; min-width:150px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
.cal-weekday{font-size:11px; font-weight:800; color:var(--texto-suave); text-transform:uppercase; text-align:center; padding-bottom:4px;}
.cal-day{
  min-height:110px; border:1px solid var(--borde); border-radius:10px; background:var(--tarjeta);
  padding:6px; display:flex; flex-direction:column; gap:4px; transition:background .15s ease, border-color .15s ease;
}
.cal-day.other-month{opacity:.45;}
.cal-day.is-today{border-color:var(--naranja); box-shadow:0 0 0 1px var(--naranja) inset;}
.cal-day.drop-hover{background:var(--tarjeta-gris); border-color:var(--azul);}
.cal-day-head{display:flex; align-items:center; justify-content:space-between;}
.cal-day-num{font-size:12px; font-weight:800; color:var(--texto-suave);}
.cal-add-btn{border:none; background:transparent; cursor:pointer; font-size:11px; opacity:.45; padding:0 2px;}
.cal-add-btn:hover{opacity:1;}
.cal-day-items{display:flex; flex-direction:column; gap:3px; overflow-y:auto; max-height:140px;}
.cal-card{
  display:flex; align-items:center; gap:4px; border-radius:6px; padding:3px 6px; font-size:10.5px; font-weight:700;
  cursor:grab; border:1px solid transparent; line-height:1.3;
}
.cal-card-ic{font-size:11px; flex-shrink:0;}
.cal-card-title{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cal-card-status{display:none;}
.cal-agenda{display:flex; flex-direction:column; gap:14px;}
.cal-agenda-day{border:1px solid var(--borde); border-radius:10px; background:var(--tarjeta); padding:12px;}
.cal-agenda-date{font-weight:800; color:var(--azul); font-size:13px; margin-bottom:8px; text-transform:capitalize;}
.cal-agenda-day .cal-card{font-size:12.5px; padding:8px 10px; margin-bottom:6px;}
@media(max-width:900px){.cal-day{min-height:80px;} .cal-day-items{max-height:90px;}}

/* Kanban de contenido */
.kanban-board{display:flex; gap:14px; overflow-x:auto; padding-bottom:8px;}
.kanban-col{flex:1 0 220px; min-width:220px; background:var(--tarjeta-gris); border-radius:var(--radio); padding:10px; display:flex; flex-direction:column; gap:8px;}
.kanban-col-head{display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:800; padding:6px 10px; border-radius:8px;}
.kanban-count{opacity:.8;}
.kanban-col-body{display:flex; flex-direction:column; gap:8px; min-height:60px; border-radius:8px; transition:background .15s ease;}
.kanban-col-body.drop-hover{background:rgba(122,85,24,0.12);}
.kanban-card{
  background:var(--tarjeta); border:1px solid var(--borde); border-radius:10px; padding:10px 12px;
  cursor:grab; box-shadow:var(--sombra); transition:box-shadow .15s ease, transform .15s ease;
}
.kanban-card:hover{box-shadow:var(--sombra-hover); transform:translateY(-1px);}
.kanban-card-title{font-size:13px; font-weight:700; margin-bottom:6px;}
.kanban-card-meta{display:flex; justify-content:space-between; font-size:11px; color:var(--texto-suave);}
.cal-card,.kanban-card{position:relative;}
.content-card-delete{
  position:absolute; top:3px; right:3px; width:20px; height:20px; border:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.9); color:var(--rojo);
  font-size:16px; line-height:1; cursor:pointer; opacity:0; transition:opacity .15s, background .15s;
}
.cal-card:hover .content-card-delete,.kanban-card:hover .content-card-delete,.content-card-delete:focus{opacity:1;}
.content-card-delete:hover{background:#fff;}
@media (hover:none){.content-card-delete{opacity:1;}}

.content-status-select{
  padding:6px 10px; border-radius:20px; border:1px solid transparent; font-size:11.5px; font-weight:800; cursor:pointer;
}

/* ---------- Aviso de privacidad ---------- */
.privacy-note{
  background:var(--amarillo-bg); border:1px solid var(--amarillo); color:#7A5A0F; border-radius:10px;
  padding:10px 14px; font-size:12px; line-height:1.5; margin-bottom:18px; display:flex; gap:8px; align-items:flex-start;
}
:root[data-theme="dark"] .privacy-note{color:#E7C77A;}
.privacy-note strong{white-space:nowrap;}

/* ---------- Auth ---------- */
.auth-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; background:var(--fondo);
}
.auth-card{width:100%; max-width:400px; background:var(--tarjeta); border:1px solid var(--borde); border-radius:var(--radio); box-shadow:var(--sombra-hover); padding:32px;}
.auth-brand{display:flex; justify-content:center; margin-bottom:22px;}
.auth-brand .brand-logo-full{width:120px;height:120px;border-radius:22px;object-fit:cover;}
.auth-title{font-size:16px; font-weight:800; margin:0 0 4px 0;}
.auth-sub{font-size:12px; color:var(--texto-suave); margin:0 0 20px 0;}
.auth-form .field{margin-bottom:14px;}
.auth-message{font-size:13px; border-radius:8px; padding:10px 12px; margin-bottom:14px; display:none;}
.auth-message.error{display:block; background:var(--rojo-bg); color:var(--rojo);}
.auth-message.success{display:block; background:var(--verde-bg); color:var(--verde);}
.auth-switch{margin-top:18px; font-size:12px; text-align:center; color:var(--texto-suave);}
.auth-switch a{color:var(--azul); font-weight:700; text-decoration:none; cursor:pointer;}
.auth-loading{display:flex; align-items:center; justify-content:center; min-height:100vh;}

/* Print */
@media print{
  .sidebar, .topbar, .header-actions, .filter-bar, .row-actions, .modal-overlay, .auth-screen{display:none !important;}
  .content{padding:0;}
  body{background:#fff;}
}

/* Mobile */
.mobile-toggle{display:none;}
@media(max-width:900px){
  .sidebar{position:fixed; left:-260px; top:0; bottom:0; z-index:90; transition:left .2s ease; box-shadow:var(--sombra-hover);}
  .sidebar.open{left:0;}
  .mobile-toggle{display:flex;}
  .content{padding:18px 14px 50px 14px;}
  .topbar{padding:12px 14px;}
}
@media(max-width:600px){
  /* En pantallas estrechas el chip de fase importa más que la descripción:
     así se sigue viendo módulo + fase sin estirar la topbar. */
  #topbarSub{display:none;}
}
.sidebar-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:80;}
.sidebar-backdrop.active{display:block;}

/* ============================================================
   MAPA 3K
   ============================================================ */
.btn-lg{padding:12px 22px; font-size:15px; font-weight:700;}
.mapa3k-hero{text-align:center; padding:32px 24px;}
.m3k-badge{display:inline-block; background:var(--morado-bg); color:var(--morado); font-weight:800; letter-spacing:.08em; font-size:12px; padding:5px 14px; border-radius:20px;}
.m3k-title{font-size:30px; font-weight:900; margin:14px 0 6px;}
.m3k-sub{color:var(--texto-suave); max-width:620px; margin:0 auto; line-height:1.5;}
.m3k-cta-row{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:20px;}
.m3k-summary{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin-top:24px; text-align:left;}
.m3k-summary > div{display:flex; flex-direction:column; gap:2px;}
.m3k-k{font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--texto-suave); font-weight:700;}
.m3k-v{font-weight:800;}

.m3k-result-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap;}
.m3k-card{margin-bottom:16px;}
.m3k-card-tag{display:inline-block; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--morado); background:var(--morado-bg); padding:3px 10px; border-radius:12px; margin-bottom:10px;}
.m3k-h{font-size:20px; font-weight:800; margin:0 0 8px;}
.m3k-promise{font-size:17px; font-style:italic; color:var(--azul); margin:0 0 14px;}
.m3k-rows{display:flex; flex-direction:column; gap:10px;}
.m3k-rows > div{display:grid; grid-template-columns:200px 1fr; gap:12px; align-items:start; font-size:14px; line-height:1.45;}
.m3k-rows > div > span:first-child{color:var(--texto-suave); font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.02em;}
.m3k-why-toggle{margin-top:10px;}
.m3k-why{margin-top:8px; padding:12px 14px; background:var(--tarjeta-gris); border-radius:var(--radio-sm); font-size:13px; line-height:1.5; color:var(--texto-suave);}
.m3k-alt{margin-top:12px; padding:10px 14px; border-left:3px solid var(--borde); background:var(--tarjeta-gris); border-radius:6px; font-size:13px; color:var(--texto-suave);}

/* Ecuación 3K — bloque visual protagonista */
.m3k-eq-card{background:linear-gradient(135deg, var(--tarjeta), var(--tarjeta-gris)); border:2px solid var(--morado-bg);}
.eq3k{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px 20px; padding:20px 0 10px;}
.eq3k-term{display:flex; flex-direction:column; align-items:center; min-width:70px;}
.eq3k-num{font-size:40px; font-weight:900; line-height:1; color:var(--texto);}
.eq3k-lab{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--texto-suave); font-weight:700; margin-top:6px;}
.eq3k-op{font-size:30px; font-weight:800; color:var(--texto-suave);}
.eq3k-total .eq3k-num{color:var(--verde); font-size:46px;}
.m3k-eq-foot{display:flex; justify-content:center; gap:28px; flex-wrap:wrap; margin-top:14px; padding-top:16px; border-top:1px solid var(--borde);}
.m3k-eq-foot > div{display:flex; flex-direction:column; align-items:center; gap:4px; font-weight:800;}
.m3k-hypo{text-align:center; font-size:12px; color:var(--texto-suave); margin:14px 0 0; font-style:italic;}
.m3k-tier-note{text-align:center; font-size:12px; color:var(--morado); background:var(--morado-bg); border-radius:8px; padding:8px 12px; margin:12px 0 0;}
.m3k-demand-funnel{display:flex; flex-direction:column; align-items:center; gap:6px; margin-top:14px;}
.m3k-demand-step{display:flex; flex-direction:column; align-items:center; background:var(--tarjeta-gris); border:1px solid var(--borde); border-radius:10px; padding:10px 24px; min-width:200px;}
.m3k-demand-num{font-size:26px; font-weight:900; line-height:1;}
.m3k-demand-lab{font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--texto-suave); font-weight:700; margin-top:4px;}
.m3k-demand-goal{background:var(--verde-bg); border-color:var(--verde);}
.m3k-demand-goal .m3k-demand-num{color:var(--verde);}
.m3k-eq-adjust{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:16px; padding-top:14px; border-top:1px dashed var(--borde);}
.m3k-eq-adjust-label{font-size:12px; font-weight:700; color:var(--texto-suave); width:100%;}
.m3k-eq-adjust label{display:flex; flex-direction:column; gap:3px; font-size:11px; text-transform:uppercase; letter-spacing:.02em; color:var(--texto-suave); font-weight:700;}
.m3k-eq-input{width:90px; padding:6px 8px; border:1px solid var(--borde); border-radius:8px; background:var(--tarjeta); color:var(--texto); font-size:14px; font-weight:700;}
@media print{ .m3k-eq-adjust{display:none;} }

.m3k-path{display:flex; flex-direction:column; gap:4px; margin-top:8px;}
.m3k-step{background:var(--morado-bg); color:var(--morado); font-weight:700; font-size:13px; padding:8px 12px; border-radius:8px; text-align:center;}
.m3k-arrow{text-align:center; color:var(--texto-suave); font-size:14px;}
.m3k-funnel-cols{display:grid; grid-template-columns:1fr 1fr; gap:20px;}

.m3k-plan{display:flex; flex-direction:column; gap:10px;}
.m3k-week{display:flex; gap:14px; padding:12px; border:1px solid var(--borde); border-radius:var(--radio-sm); background:var(--tarjeta-gris);}
.m3k-week-num{flex-shrink:0; width:44px; height:44px; border-radius:10px; background:var(--morado); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:15px;}
.m3k-week-body{flex:1; min-width:0;}
.m3k-week-obj{font-weight:800; font-size:14px;}
.m3k-week-deliv{font-size:13px; color:var(--texto-suave); margin-top:3px;}
.m3k-week-tasks{margin:8px 0 0; padding-left:18px; font-size:13px; line-height:1.5;}
.m3k-week-meta{display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; font-size:12px; color:var(--texto-suave);}

.m3k-priority-card{border:2px solid var(--verde); background:var(--verde-bg);}
.m3k-priority-label{font-size:13px; font-weight:700; color:var(--verde); text-transform:uppercase; letter-spacing:.03em;}
.m3k-priority-action{font-size:22px; font-weight:900; margin:8px 0;}
.m3k-priority-why{font-size:14px; line-height:1.5;}

.m3k-loading{display:flex; align-items:center; gap:14px; padding:20px; color:var(--texto-suave);}

@media (max-width:720px){
  .m3k-rows > div{grid-template-columns:1fr;}
  .m3k-funnel-cols{grid-template-columns:1fr;}
  .eq3k-num{font-size:32px;}
  .eq3k-total .eq3k-num{font-size:36px;}
}

/* ============================================================
   SELECCIÓN MÚLTIPLE EN TABLAS (Tareas)
   ============================================================ */
.bulk-bar{
  display:flex; flex-direction:column; gap:10px; align-items:flex-start;
  background:var(--tarjeta); border:1px solid var(--azul); border-left:4px solid var(--azul);
  border-radius:var(--radio); padding:12px 16px; margin-bottom:14px;
  box-shadow:var(--sombra);
}
.bulk-bar[hidden]{display:none;}
.bulk-count{font-size:13.5px; font-weight:700;}
.bulk-actions{display:flex; gap:8px; flex-wrap:wrap;}
.col-select, .col-done{width:1%; white-space:nowrap; text-align:center;}
th.col-done{font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--texto-suave);}
tr.row-selected{background:var(--amarillo-bg);}
tr.row-selected td:first-child{box-shadow:inset 3px 0 0 var(--azul);}
@media (min-width:721px){
  .bulk-bar{flex-direction:row; justify-content:space-between; align-items:center;}
}

.m3k-week-dates{font-size:11px; font-weight:700; color:var(--texto-suave); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px;}


/* ---------- Aviso de cierre de mes + importación de Skool ---------- */
.month-reminder{
  display:flex; flex-direction:column; gap:12px; align-items:flex-start;
  background:var(--tarjeta); border:1px solid var(--amarillo); border-left:5px solid var(--amarillo);
  border-radius:var(--radio); padding:16px 18px; margin-bottom:14px; box-shadow:var(--sombra);
}
.month-reminder.urgency-vencido, .month-reminder.urgency-hoy{border-color:var(--rojo); border-left-color:var(--rojo);}
.mr-ic{font-size:22px; line-height:1;}
.mr-body strong{display:block; font-size:15px; margin-bottom:3px;}
.mr-body p{margin:0; font-size:13.5px; line-height:1.55; color:var(--texto-suave);}
@media (min-width:721px){
  .month-reminder{flex-direction:row; align-items:center; gap:16px;}
  .mr-body{flex:1;}
}

.skool-steps{margin:0 0 14px; padding-left:20px; font-size:13.5px; line-height:1.7; color:var(--texto-suave);}
.skool-steps strong{color:var(--texto);}
.skool-drop{
  display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer;
  border:2px dashed var(--borde); border-radius:var(--radio); padding:24px; text-align:center;
  transition:border-color .15s;
}
.skool-drop:hover{border-color:var(--azul);}
.skool-drop-ic{font-size:28px;}
.skool-drop-txt{font-size:14px; font-weight:700; color:var(--azul);}
.skool-error{margin-top:14px; padding:12px 14px; border-radius:var(--radio-sm); background:var(--rojo-bg); color:var(--rojo); font-size:13.5px;}
.skool-result{margin-top:18px;}
.skool-headline{display:flex; align-items:baseline; gap:10px; margin-bottom:10px;}
.skool-big{font-size:34px; font-weight:900; color:var(--verde); line-height:1;}
.skool-big-lab{font-size:13.5px; color:var(--texto-suave);}
.skool-h{margin:18px 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--texto-suave);}
.skool-table{margin-bottom:4px;}

/* ============================================================
   PROYECCIÓN DE CRECIMIENTO
   ------------------------------------------------------------
   Mobile-first: la regla base va SIEMPRE antes de la media query.
   ============================================================ */
.proj-teaser{display:grid; grid-template-columns:1fr; gap:14px; margin-top:22px; text-align:left;}
.proj-teaser > div{display:flex; flex-direction:column; gap:3px; background:var(--tarjeta-gris); padding:12px 14px; border-radius:var(--radio-sm);}
.proj-teaser-k{font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--morado); font-weight:800;}
.proj-teaser-v{font-size:13px; line-height:1.5; color:var(--texto-suave);}

.proj-scenario-bar{display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-bottom:16px;}
.proj-scenario-left{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.proj-scenario-left label{font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--texto-suave); font-weight:700;}
.proj-scenario-left select{min-width:180px;}

.proj-form-card{margin-bottom:20px;}
.proj-group{padding:16px 0; border-bottom:1px solid var(--borde);}
.proj-group:last-child{border-bottom:none; padding-bottom:0;}
.proj-group:first-child{padding-top:0;}
.proj-group-head h4{margin:0 0 3px; font-size:14px; font-weight:800;}
.proj-group-head p{margin:0 0 12px; font-size:12.5px; color:var(--texto-suave); line-height:1.5;}

.proj-launch-row{display:grid; grid-template-columns:1fr; gap:8px; margin-bottom:10px; align-items:center;}

.proj-verdict{display:flex; gap:16px; align-items:flex-start; margin-bottom:20px; border-left:5px solid var(--morado);}
.proj-verdict h3{margin:0 0 6px; font-size:17px;}
.proj-verdict p{margin:0; line-height:1.55;}
.proj-verdict-icon{font-size:30px; line-height:1;}
.proj-verdict.tone-verde{border-left-color:var(--verde);}
.proj-verdict.tone-rojo{border-left-color:var(--rojo);}
.proj-verdict.tone-amarillo{border-left-color:var(--amarillo);}
.proj-verdict.tone-morado{border-left-color:var(--morado);}
/* Los tonos genéricos pintan fondo; en el veredicto solo queremos el filo. */
.proj-verdict.tone-verde, .proj-verdict.tone-amarillo, .proj-verdict.tone-morado,
.proj-verdict.tone-rojo, .proj-verdict.tone-gris{background:var(--tarjeta); color:var(--texto);}

/* Mismo criterio que las tarjetas de Finanzas: el tono tiñe fondo y cifra. */
.metric-card.tone-morado .m-value{color:var(--morado);}

.proj-pricing{margin-bottom:20px; border-left:5px solid var(--morado);}
.proj-pricing h3{margin:0 0 10px; font-size:16px;}
.proj-ceiling{margin-bottom:20px; border-left:5px solid var(--amarillo);}
.proj-ceiling.tone-rojo{border-left-color:var(--rojo); background:var(--tarjeta); color:var(--texto);}
.proj-ceiling h3{margin:0 0 10px; font-size:16px;}
.proj-ceiling-lead{margin:0 0 8px; font-size:15px; line-height:1.6;}
.proj-ceiling-sub{margin:0; font-size:13.5px; line-height:1.55; color:var(--texto-suave);}
.proj-ceiling-split{display:grid; grid-template-columns:1fr; gap:12px; margin-top:16px;}
.proj-ceiling-split > div{display:flex; flex-direction:column; gap:2px; background:var(--tarjeta-gris); padding:10px 12px; border-radius:var(--radio-sm);}
.proj-k{font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--texto-suave); font-weight:700;}
.proj-v{font-size:18px; font-weight:800; color:var(--azul);}

.proj-charts{display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:20px;}
.proj-charts h3{margin:0 0 10px; font-size:15px;}
.proj-chart-note{margin:8px 0 0; font-size:12.5px; color:var(--texto-suave);}

.proj-sub{font-size:13px; color:var(--texto-suave); line-height:1.55;}
.proj-table{font-size:13px; white-space:nowrap;}
.proj-table .proj-pos{color:var(--verde); font-weight:700;}
.proj-table .proj-neg{color:var(--rojo); font-weight:700;}
.proj-muted{color:var(--texto-suave);}
.proj-row-hit{background:var(--verde-bg);}

.proj-levers{display:flex; flex-direction:column; gap:10px; margin-top:14px;}
.proj-lever{display:grid; grid-template-columns:1fr; gap:5px;}
.proj-lever-label{font-size:13px; font-weight:600;}
.proj-lever-bar{height:8px; background:var(--tarjeta-gris); border-radius:20px; overflow:hidden;}
.proj-lever-bar span{display:block; height:100%; border-radius:20px; background:var(--borde);}
.proj-lever-bar span.pos{background:var(--verde);}
.proj-lever-val{font-size:12.5px; font-weight:700;}

.proj-warnings{border-left:5px solid var(--rojo);}
.proj-warnings h3{margin:0 0 10px; font-size:15px;}
.proj-warnings ul{margin:0; padding-left:20px;}
.proj-warnings li{font-size:13.5px; line-height:1.6; margin-bottom:7px;}

.proj-realchurn{display:flex; flex-direction:column; gap:12px; align-items:flex-start; background:var(--tarjeta-gris); padding:14px; border-radius:var(--radio-sm); margin-bottom:8px;}
.proj-realchurn > div{display:flex; flex-direction:column; gap:2px;}

@media (min-width:721px){
  .proj-teaser{grid-template-columns:repeat(3,1fr);}
  .proj-scenario-bar{flex-direction:row; justify-content:space-between; align-items:center;}
  .proj-launch-row{grid-template-columns:150px 130px 1fr auto;}
  .proj-pc-row-annual{grid-template-columns:150px 130px 130px 1fr auto;}
  .proj-ceiling-split{grid-template-columns:repeat(2,1fr);}
  .proj-charts{grid-template-columns:repeat(2,1fr);}
  .proj-lever{grid-template-columns:1fr 200px 150px; align-items:center; gap:14px;}
  .proj-lever-val{text-align:right;}
  .proj-realchurn{flex-direction:row; align-items:center; gap:28px;}
}

/* Exportación / impresión: solo el mapa */
@media print{
  .sidebar, .topbar, .m3k-result-head, .privacy-note{display:none !important;}
  .main, .content{margin:0 !important; padding:0 !important;}
  .m3k-card{break-inside:avoid; box-shadow:none;}
  .m3k-why-toggle{display:none;}
}

/* ============ BITÁCORA DE DECISIONES ============ */
.dec-list{display:flex; flex-direction:column; gap:12px; margin-top:12px;}
.dec-card{border:1px solid var(--borde); border-radius:var(--radio-sm); padding:14px 16px; background:var(--tarjeta);}
.dec-card.tone-amarillo{border-color:var(--amarillo); background:var(--amarillo-bg);}
.dec-card-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px;}
.dec-meta{font-size:12px; color:var(--texto-suave);}
.dec-decision{font-weight:600; margin:0 0 6px; line-height:1.4;}
.dec-hyp{margin:2px 0; font-size:13px; color:var(--texto-suave);}
.dec-k{font-weight:600; color:var(--texto);}
.dec-card-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; flex-wrap:wrap;}
.dec-card.dec-suggested{border-color:var(--morado); background:var(--morado-bg);}
.dec-suggestion{margin:10px 0 4px; padding:10px 12px; border:1px dashed var(--morado); border-radius:var(--radio-sm); background:var(--tarjeta);}
.dec-suggestion-head{margin:0; font-size:13px; font-weight:600;}

/* ============ GUION DE VENTA (Mapa 3K) ============ */
.venta-card .venta-promise{font-size:20px; line-height:1.4; margin:6px 0 4px;}
.venta-transform{color:var(--texto-suave); margin:0 0 8px;}
.venta-h{margin:18px 0 6px; font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--dorado-solido);}
.venta-stack{margin:0; padding-left:20px; line-height:1.8;}
.venta-obj{border-left:3px solid var(--borde); padding:6px 0 6px 12px; margin:8px 0;}
.venta-obj-q{font-weight:600; margin:0 0 4px;}
.venta-obj-a{margin:0; color:var(--texto-suave);}
.venta-close{background:var(--tarjeta-gris); border-radius:var(--radio-sm); padding:12px;}
.venta-ethics{margin-top:16px; font-size:12px; color:var(--texto-suave); font-style:italic;}

/* ============ CALDEAMIENTO (Ads) ============ */
.nurture-list{display:flex; flex-direction:column; gap:12px; margin-top:10px;}
.nurture-msg{background:var(--tarjeta); border:1px solid var(--borde); border-radius:var(--radio-sm); padding:12px 14px;}
.nurture-msg-head{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; flex-wrap:wrap;}
.nurture-label{font-weight:700; font-size:13px;}
.nurture-obj{margin:0 0 8px; font-size:12px; color:var(--texto-suave); font-style:italic;}
.nurture-text{line-height:1.6;}
.nurture-audio{margin-top:8px; padding:8px 10px; border-left:3px solid var(--morado); background:var(--morado-bg); border-radius:var(--radio-sm); font-size:13px;}

/* Campos editables de la secuencia: parecen texto hasta que los tocas. */
.nurture-edit{width:100%; font:inherit; color:inherit; background:transparent; border:1px solid transparent;
  border-radius:var(--radio-sm); padding:4px 6px; margin:0 -6px; resize:none; overflow:hidden;}
.nurture-edit:hover{border-color:var(--borde);}
.nurture-edit:focus{outline:none; border-color:var(--morado); background:var(--tarjeta);}
textarea.nurture-edit{display:block; line-height:1.6; min-height:3.4em;}
.nurture-label.nurture-edit{flex:1 1 180px; min-width:0; font-weight:700; font-size:13px;}
.nurture-audio .nurture-edit{font-size:13px;}
.nurture-saved{font-size:12px; color:var(--texto-suave); align-self:center;}
.nurture-saved[data-tone="ok"]{color:var(--verde,#3FB984);}
.nurture-saved[data-tone="err"]{color:var(--rojo,#d9534f);}

/* ============================================================
   ONBOARDING GUIADO
   ------------------------------------------------------------
   Capa propia por encima de la app (95) y por debajo de los
   modales (100), para que el importador de Skool se abra encima.
   ============================================================ */
.onb-overlay{
  position:fixed; inset:0; z-index:95; overflow-y:auto;
  background:var(--fondo); padding:40px 16px 60px;
}
.onb-panel{
  max-width:720px; margin:0 auto; background:var(--tarjeta);
  border:1px solid var(--borde); border-radius:var(--radio); padding:32px 30px;
  box-shadow:var(--sombra-hover);
}
.onb-h{margin:0 0 6px; font-size:24px; color:var(--azul);}
.onb-panel h3{margin:0 0 6px; font-size:15px; color:var(--texto);}
.onb-lead{font-size:15px; line-height:1.55; margin:0 0 14px;}
.onb-panel p{font-size:14px; line-height:1.6; color:var(--texto);}
.onb-note{font-size:12.5px; line-height:1.55; color:var(--texto-suave); margin:8px 0 0;}
.onb-opt{font-size:11px; font-weight:600; color:var(--texto-suave);}
.onb-ok{font-size:13px; color:var(--verde, var(--azul)); margin:4px 0 8px;}
.onb-list{margin:6px 0 14px; padding-left:20px; font-size:14px; line-height:1.7; color:var(--texto);}
.onb-fine{font-size:12px; color:var(--texto-suave); margin-top:14px;}
.onb-sub{margin-top:22px; padding-top:18px; border-top:1px solid var(--borde);}
.onb-block{margin-top:20px;}
.onb-label{display:block; font-size:14px; font-weight:700; margin-bottom:8px; color:var(--texto);}
.onb-block input{width:100%; padding:10px 12px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto); font-size:14px;}

.onb-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:24px;}
.onb-exit{margin-top:22px; padding-top:14px; border-top:1px solid var(--borde); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.onb-exit-note{font-size:11.5px; color:var(--texto-suave);}

/* Bienvenida y final */
.onb-welcome{text-align:center;}
.onb-welcome .onb-list{display:inline-block; text-align:left;}
.onb-welcome h2{font-size:26px; color:var(--azul); margin:14px 0 10px;}
.onb-logo{width:56px; height:56px; border-radius:14px; object-fit:cover;}
.onb-welcome .onb-actions{justify-content:center;}
.onb-final{text-align:center;}
.onb-final .onb-list{display:inline-block; text-align:left;}
.onb-final h2{font-size:24px; color:var(--azul); margin:10px 0 12px;}
.onb-final .onb-actions{justify-content:center;}
.onb-final-check{
  width:52px; height:52px; margin:0 auto; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; color:#fff; background:var(--dorado-solido);
}
.onb-meeting{margin-top:20px; text-align:left; border:1px solid var(--borde); border-radius:var(--radio-sm); padding:16px; background:var(--tarjeta-gris);}
.onb-meeting-h{font-size:13px; font-weight:800; color:var(--azul); margin-bottom:8px;}
.onb-meeting pre{white-space:pre-wrap; font-family:inherit; font-size:13.5px; line-height:1.6; margin:0; color:var(--texto);}

/* Indicador de pasos */
.onb-stepper{margin-bottom:22px;}
.onb-dots{display:flex; align-items:center; gap:6px;}
.onb-dot{
  width:28px; height:28px; border-radius:50%; flex-shrink:0; cursor:pointer;
  border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto-suave);
  font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.onb-dot:hover{border-color:var(--azul);}
.onb-dot.is-done{background:var(--tarjeta-gris); color:var(--azul); border-color:var(--azul);}
.onb-dot.is-current{background:var(--dorado-solido); color:#fff; border-color:transparent;}
.onb-dot-line{flex:1; height:1px; background:var(--borde);}
.onb-stepper-label{font-size:11.5px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--texto-suave); margin-top:10px;}

/* "¿Por qué importa esto?" — explicación corta, el Manual es lo profundo */
.onb-why{margin-top:8px;}
.onb-why summary{font-size:12px; font-weight:700; color:var(--azul); cursor:pointer;}
.onb-why p{font-size:12.5px; line-height:1.55; color:var(--texto-suave); margin:6px 0 0;}

/* Regla de los huecos: 0 no es lo mismo que vacío */
.onb-gaps{margin-top:20px; padding:14px 16px; border:1px dashed var(--borde); border-radius:var(--radio-sm);}
.onb-gaps strong{font-size:13.5px; display:block; margin-bottom:8px;}
.onb-gaps-row{display:flex; gap:10px; align-items:baseline; font-size:13px; margin-bottom:4px;}
.onb-gaps-k{min-width:52px; font-weight:800; color:var(--azul);}
.onb-gaps p{font-size:12.5px; color:var(--texto-suave); margin:8px 0 0;}

.onb-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:6px;}
.onb-span{grid-column:1/-1;}

/* Paso 2 · niveles de precio */
.onb-import{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:14px 0;}
.onb-tier-head, .onb-tier-row{display:grid; grid-template-columns:2fr 1fr 1fr 1.1fr auto; gap:8px; align-items:center;}
.onb-tier-head{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--texto-suave); margin-bottom:6px;}
.onb-tier-row{margin-bottom:8px;}
.onb-tier-row input, .onb-tier-row select{padding:8px 10px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto); font-size:13px; min-width:0;}

/* Paso 3 · confirmación */
.onb-done-box{margin-top:16px; padding:14px 16px; border:1px solid var(--azul); border-radius:var(--radio-sm); background:var(--tarjeta-gris);}
.onb-done-box strong{color:var(--azul); font-size:14px;}
.onb-done-box p{margin:6px 0 0; font-size:13px; color:var(--texto-suave);}

/* Paso 4 · fases */
.onb-phases{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.onb-phase{
  text-align:left; cursor:pointer; padding:14px; border-radius:var(--radio-sm);
  border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto-suave);
  display:flex; flex-direction:column; gap:4px; font-size:12px; line-height:1.45;
}
.onb-phase strong{font-size:14px; color:var(--texto);}
.onb-phase-ic{font-size:18px;}
.onb-phase:hover{border-color:var(--azul);}
.onb-phase.is-picked{border-color:var(--azul); box-shadow:inset 0 0 0 1px var(--azul);}
.onb-phase.is-picked strong{color:var(--azul);}
.onb-chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.onb-chip{
  font-size:11.5px; padding:5px 10px; border-radius:20px; cursor:pointer;
  border:1px solid var(--borde); background:transparent; color:var(--texto-suave);
}
.onb-chip:hover{border-color:var(--azul); color:var(--azul);}

/* Paso 5 · ejemplo de embudo */
.onb-preset{margin-top:16px; padding:14px 16px; border:1px solid var(--borde); border-radius:var(--radio-sm);}
.onb-preset-head{font-size:13px; font-weight:700; margin-bottom:8px;}
.onb-preset-path{display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:12.5px; margin-bottom:10px;}
.onb-preset-path span{padding:4px 9px; border-radius:20px; background:var(--tarjeta-gris); border:1px solid var(--borde);}
.onb-preset-path em{color:var(--texto-suave); font-style:normal;}

/* Barra inferior cuando se trabaja en la herramienta real */
.onb-bar{position:fixed; left:250px; right:0; bottom:0; z-index:70; background:var(--tarjeta); border-top:1px solid var(--borde); box-shadow:var(--sombra-hover);}
.onb-bar-in{display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 26px; max-width:1400px;}
.onb-bar-step{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--azul);}
.onb-bar-hint{font-size:12.5px; color:var(--texto-suave); flex:1; min-width:140px;}
body.onb-bar-on .content{padding-bottom:96px;}

/* Tira del Dashboard */
.onb-strip{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px;
  padding:12px 16px; border:1px solid var(--borde); border-radius:var(--radio-sm); background:var(--tarjeta);
}
.onb-strip.is-on{border-color:var(--azul);}
.onb-strip-t{font-size:13px; font-weight:800; color:var(--azul);}
.onb-strip-s{font-size:12.5px; color:var(--texto-suave); flex:1; min-width:160px;}

@media(max-width:900px){
  .onb-overlay{padding:20px 12px 40px;}
  .onb-panel{padding:22px 18px;}
  .onb-grid{grid-template-columns:1fr;}
  .onb-phases{grid-template-columns:1fr;}
  .onb-bar{left:0;}
  .onb-bar-in{padding:10px 14px;}
  .onb-tier-head{display:none;}
  .onb-tier-row{grid-template-columns:1fr 1fr; gap:6px;}
}

/* ============================================================
   ADMIN · ACTIVIDAD DE USUARIOS
   Capa propia (z-index 96), separada de la experiencia normal.
   ============================================================ */
.adm-overlay{position:fixed; inset:0; z-index:96; overflow-y:auto; background:var(--fondo); padding:32px 16px 60px;}
.adm-shell{max-width:1180px; margin:0 auto;}
.adm-loading{font-size:14px; color:var(--texto-suave); padding:40px 0; text-align:center;}
.adm-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:24px;}
.adm-head h2{margin:2px 0 0; font-size:24px; color:var(--azul);}
.adm-kicker{margin:0; font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--texto-suave);}
.adm-head-actions{display:flex; gap:8px; align-items:center;}
.adm-head-actions select{padding:7px 10px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto); font-size:12.5px;}

.adm-kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:30px;}
.adm-kpi{border:1px solid var(--borde); border-radius:var(--radio-sm); padding:14px 16px; background:var(--tarjeta);}
.adm-kpi.is-key{border-color:var(--azul);}
.adm-kpi.is-risk{border-color:var(--rojo, #c0562f);}
.adm-kpi-l{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--texto-suave);}
.adm-kpi-v{font-size:26px; font-weight:800; color:var(--texto); margin:6px 0 2px; line-height:1.1;}
.adm-kpi.is-key .adm-kpi-v{color:var(--azul);}
.adm-kpi-s{font-size:11.5px; color:var(--texto-suave);}

.adm-block{margin-bottom:34px;}
.adm-block h3{margin:0 0 4px; font-size:16px; color:var(--azul);}
.adm-block h4{margin:22px 0 6px; font-size:13.5px; color:var(--texto);}
.adm-sub{margin:0 0 14px; font-size:12.5px; line-height:1.5; color:var(--texto-suave);}
.adm-count{font-size:11px; font-weight:700; color:var(--texto-suave); margin-left:6px;}

.adm-funnel, .adm-modules{border:1px solid var(--borde); border-radius:var(--radio-sm); overflow:hidden;}
.adm-fun-row, .adm-mod-row{display:grid; grid-template-columns:190px 1fr 130px 46px; gap:12px; align-items:center; padding:9px 14px; border-bottom:1px solid var(--borde);}
.adm-mod-row{grid-template-columns:160px 1fr 150px;}
.adm-fun-row:last-child, .adm-mod-row:last-child{border-bottom:none;}
.adm-fun-label, .adm-mod-label{font-size:12.5px; font-weight:600;}
.adm-fun-bar, .adm-mod-bar{height:8px; border-radius:20px; background:var(--tarjeta-gris); overflow:hidden;}
.adm-fun-bar span, .adm-mod-bar span{display:block; height:100%; background:var(--dorado-solido); border-radius:20px;}
.adm-mod-bar span{background:var(--azul);}
.adm-fun-n, .adm-mod-n{font-size:12px; color:var(--texto-suave); text-align:right;}
.adm-fun-drop{font-size:11.5px; font-weight:700; color:var(--rojo,#c0562f); text-align:right;}

.adm-stuck{margin:0; padding-left:20px; font-size:13.5px; line-height:1.9; color:var(--texto);}

.adm-filters{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px;}
.adm-filters input, .adm-filters select{padding:8px 10px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto); font-size:12.5px;}
.adm-filters input{flex:1; min-width:180px;}

.adm-table-wrap{border:1px solid var(--borde); border-radius:var(--radio-sm); overflow-x:auto;}
.adm-table{width:100%; border-collapse:collapse; font-size:12.5px; min-width:900px;}
.adm-table th{text-align:left; padding:10px 12px; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--texto-suave); border-bottom:1px solid var(--borde); white-space:nowrap;}
.adm-table td{padding:10px 12px; border-bottom:1px solid var(--borde); white-space:nowrap;}
.adm-table tbody tr:last-child td{border-bottom:none;}
/* Consulta que SIEMPRE se quedó sin resultados: eso es una petición de
   funcionalidad disfrazada de búsqueda. */
.adm-table tr.adm-row-alert td:first-child{border-left:3px solid var(--rojo); font-weight:700;}
.adm-muted{color:var(--texto-suave);}
.adm-row{cursor:pointer;}
.adm-row:hover{background:var(--tarjeta-gris);}
.adm-mail{font-weight:600; max-width:230px; overflow:hidden; text-overflow:ellipsis;}
.adm-steps{font-size:11px; color:var(--texto-suave);}
.adm-empty{text-align:center; color:var(--texto-suave); padding:24px 0 !important;}
.adm-tag{display:inline-block; font-size:10px; font-weight:700; padding:2px 7px; border-radius:20px; border:1px solid var(--borde); color:var(--texto-suave); margin-left:6px;}
.adm-tag.ok{border-color:var(--azul); color:var(--azul); margin-left:0;}
.adm-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; background:var(--borde);}
.adm-dot.activo{background:#3f9c6b;}
.adm-dot.atencion{background:#d8a13a;}
.adm-dot.riesgo{background:#c0562f;}

.adm-privacy{margin-top:22px; padding:12px 16px; border:1px dashed var(--borde); border-radius:var(--radio-sm); font-size:12px; line-height:1.55; color:var(--texto-suave);}

/* Ficha de usuario */
.adm-detail{position:fixed; inset:0; z-index:97; background:rgba(0,0,0,.55); overflow-y:auto; padding:40px 16px;}
.adm-detail-card{max-width:800px; margin:0 auto; background:var(--tarjeta); border:1px solid var(--borde); border-radius:var(--radio); padding:26px 26px 22px; box-shadow:var(--sombra-hover);}
.adm-detail-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px;}
.adm-detail-head h3{margin:0 0 4px; font-size:17px; color:var(--azul); word-break:break-all;}
.adm-detail-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:8px;}
.adm-detail-grid dt{font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--texto-suave);}
.adm-detail-grid dd{margin:3px 0 0; font-size:13.5px; color:var(--texto);}
.adm-events{list-style:none; margin:0; padding:0; border:1px solid var(--borde); border-radius:var(--radio-sm);}
.adm-events li{padding:8px 14px; border-bottom:1px solid var(--borde); font-size:12.5px;}
.adm-events li:last-child{border-bottom:none;}
.adm-ev-date{display:inline-block; min-width:120px; color:var(--texto-suave); font-size:11.5px;}

@media(max-width:760px){
  .adm-overlay{padding:20px 12px 40px;}
  .adm-fun-row{grid-template-columns:1fr 60px; gap:6px;}
  .adm-fun-bar, .adm-fun-drop{display:none;}
  .adm-mod-row{grid-template-columns:1fr 110px; gap:6px;}
  .adm-mod-bar{display:none;}
  .adm-detail-card{padding:18px 16px;}
  .adm-ev-date{display:block; min-width:0;}
}

/* ============================================================
   HISTORIAS — el motor diario
   ------------------------------------------------------------
   Regla base primero, media queries después: invertirlo rompe el
   layout porque la cascada da la última palabra al que va abajo.
   ============================================================ */
.st-toolbar{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:14px 0 12px;}
.st-monthnav{display:flex; align-items:center; gap:10px;}
.st-monthnav strong{font-size:15px; color:var(--azul); text-transform:capitalize; min-width:150px; text-align:center;}
.st-rhythm{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.st-rhythm label{font-size:12px; color:var(--texto-suave); font-weight:600;}
.st-rhythm select{padding:6px 10px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto); font-size:13px;}
.st-rhythm-hint{font-size:11.5px; color:var(--texto-suave); max-width:340px;}

.st-strip{display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:18px;}
.st-strip-cell{background:var(--tarjeta); border:1px solid var(--borde); border-radius:var(--radio-sm); padding:8px 6px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:5px;}
.st-strip-day{font-size:11px; font-weight:700; color:var(--texto-suave); letter-spacing:.6px;}
.st-strip-cell .badge{font-size:10px; padding:3px 7px;}
.st-strip-extra{font-size:10px; color:var(--texto-suave);}

.st-setup{margin-bottom:18px;}
.st-setup h3{margin:0 0 4px; font-size:15px; color:var(--azul);}
.st-setup-row{display:flex; gap:10px; margin-top:10px; flex-wrap:wrap;}
.st-setup-row input{flex:1 1 180px; max-width:240px; padding:9px 12px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto);}

.st-kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:16px;}
.st-kpi{padding:14px 16px;}
.st-kpi-value{font-size:24px; font-weight:800; color:var(--azul); line-height:1.1;}
.st-kpi-label{font-size:12.5px; font-weight:700; margin-top:4px;}
.st-kpi-hint{font-size:11px; color:var(--texto-suave); margin-top:2px;}
.st-kpi-alert{border-color:var(--rojo);}
.st-kpi-alert .st-kpi-value{color:var(--rojo);}

.st-calib{margin-bottom:16px; border-left:3px solid var(--verde);}
.st-calib > strong{display:block; font-size:14px; margin-bottom:6px;}
.st-calib ul{margin:0 0 12px; padding-left:18px; font-size:13px;}
.st-calib li{margin-bottom:4px;}
.st-calib p{margin:0; font-size:12.5px; color:var(--texto-suave);}
.st-calib-wait{border-left-color:var(--amarillo);}

.st-table{width:100%; border-collapse:collapse; font-size:13px;}
.st-table th{text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--texto-suave); padding:10px 12px; background:var(--tarjeta-gris); white-space:nowrap;}
.st-table td{padding:10px 12px; border-top:1px solid var(--borde); vertical-align:top;}
.st-row{cursor:pointer;}
.st-row:hover{background:var(--tarjeta-gris);}
.st-week-start td{border-top:2px solid var(--borde);}
.st-row-today td{background:var(--amarillo-bg);}
.st-date{white-space:nowrap; font-weight:600;}
.st-slot{color:var(--texto-suave); font-weight:400;}
.st-topic{min-width:200px;}
.st-deliverable{min-width:220px; color:var(--texto-suave);}
.st-muted{color:var(--texto-suave);}
.st-actions{white-space:nowrap; text-align:right;}
.st-rate{font-weight:700; font-size:12px; margin-left:4px;}
.st-rate-en-banda{color:var(--verde);}
.st-rate-bajo{color:var(--rojo);}
.st-rate-alto{color:var(--morado);}

.st-legend{margin-top:18px;}
.st-legend h3{margin:0 0 12px; font-size:15px; color:var(--azul);}
.st-legend-item{display:grid; grid-template-columns:130px 1fr 130px; gap:12px; align-items:start; padding:10px 0; border-top:1px solid var(--borde); font-size:12.5px;}
.st-legend-item:first-of-type{border-top:none;}
.st-legend-band{font-size:11.5px; color:var(--texto-suave); text-align:right; white-space:nowrap;}

.st-bank-count{opacity:.6; font-size:11px;}
.st-bank-label{font-size:12.5px; color:var(--texto-suave); margin:10px 0;}
.st-bank-list{list-style:none; margin:0 0 14px; padding:0;}
.st-bank-item{display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--borde); border-radius:var(--radio-sm); margin-bottom:6px; font-size:13px;}
.st-bank-text{flex:1;}
.st-bank-add{display:flex; gap:8px; flex-wrap:wrap;}
.st-bank-add input{flex:1 1 240px; padding:9px 12px; border-radius:var(--radio-sm); border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto);}

.st-ideas{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.st-idea-chip{background:var(--tarjeta-gris); border:1px solid var(--borde); border-radius:20px; padding:4px 11px; font-size:11.5px; color:var(--texto); cursor:pointer; text-align:left;}
.st-idea-chip:hover{border-color:var(--azul);}
.st-idea-chip.is-used{border-color:var(--verde); color:var(--verde);}

.st-script{max-height:60vh; overflow-y:auto;}
.st-slide{border:1px solid var(--borde); border-radius:var(--radio-sm); padding:12px 14px; margin-bottom:10px;}
.st-slide-head{display:flex; align-items:center; gap:8px; margin-bottom:6px; font-size:12.5px;}
.st-slide-row{font-size:12px; color:var(--texto-suave); margin-bottom:4px;}
.st-slide-copy{font-size:13.5px; white-space:pre-wrap; margin:6px 0;}

@media(max-width:900px){
  .st-strip{grid-template-columns:repeat(4,1fr);}
  .st-legend-item{grid-template-columns:1fr; gap:6px;}
  .st-legend-band{text-align:left;}
  .st-rhythm-hint{display:none;}
}
@media(max-width:560px){
  .st-strip{grid-template-columns:repeat(2,1fr);}
  .st-toolbar{flex-direction:column; align-items:stretch;}
  .st-monthnav{justify-content:space-between;}
}

/* ============================================================
   BUSCADOR GLOBAL
   ------------------------------------------------------------
   Se abre por encima de todo (z-index 96: sobre el onboarding,
   por debajo de los modales) y se comporta como una capa, no como
   una pantalla más. En móvil ocupa el alto disponible con el
   campo arriba, que es donde va a estar el teclado.
   ============================================================ */
.gs-trigger{
  flex:1; max-width:340px; margin-left:auto; display:flex; align-items:center; gap:8px;
  padding:9px 12px; border-radius:20px; border:1px solid var(--borde);
  background:var(--tarjeta-gris); color:var(--texto-suave); font-size:13px;
  cursor:pointer; text-align:left; font-family:inherit; min-width:0;
}
.gs-trigger:hover{border-color:var(--azul); color:var(--texto);}
.gs-trigger:focus-visible{outline:2px solid var(--azul-claro); outline-offset:1px;}
.gs-trigger .gs-t-text{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.gs-trigger .gs-t-kbd{
  font-size:10px; font-weight:700; letter-spacing:.02em; padding:2px 6px; border-radius:5px;
  border:1px solid var(--borde); background:var(--tarjeta); color:var(--texto-suave); flex-shrink:0;
}

.gs-overlay{
  position:fixed; inset:0; z-index:96; background:rgba(8,12,22,.55);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  display:flex; align-items:flex-start; justify-content:center;
  padding:10vh 16px 24px 16px; overscroll-behavior:contain;
}
.gs-overlay.hidden{display:none;}
/* Sin bloqueo de scroll en <body>: igual que el resto de capas de VERA (modal,
   onboarding), que tapan la página sin tocar su overflow. Y además, poner
   overflow:hidden en el body hace que Chrome en móvil recalcule el viewport
   y encoja la página entera (390px pasaban a 1104px). overscroll-behavior
   evita el encadenado de scroll, que era lo único que se quería. */

.gs-panel{
  width:100%; max-width:640px; background:var(--tarjeta); border:1px solid var(--borde);
  border-radius:var(--radio); box-shadow:var(--sombra-hover); overflow:hidden;
  display:flex; flex-direction:column; max-height:min(72vh, 620px);
  animation:gsIn .16s ease;
}
@keyframes gsIn{from{opacity:0; transform:translateY(-8px) scale(.99);}to{opacity:1; transform:none;}}

.gs-sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.gs-inputrow{display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--borde);}
.gs-inputrow .gs-ic{font-size:15px; opacity:.65; flex-shrink:0;}
#gsInput{
  flex:1; min-width:0; border:0; background:transparent; color:var(--texto);
  font-size:16px; font-family:inherit; padding:2px 0;  /* 16px: iOS no hace zoom */
}
#gsInput:focus{outline:none;}
#gsInput::placeholder{color:var(--texto-suave);}
.gs-close{
  border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto-suave);
  border-radius:6px; padding:3px 8px; font-size:11px; font-weight:700; cursor:pointer;
  font-family:inherit; flex-shrink:0;
}
.gs-close:hover{border-color:var(--azul); color:var(--texto);}
.gs-spinner{
  width:15px; height:15px; border-radius:50%; flex-shrink:0;
  border:2px solid var(--borde); border-top-color:var(--azul); animation:spin .7s linear infinite;
}
.gs-spinner.hidden{display:none;}

.gs-results{overflow-y:auto; padding:6px; flex:1; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;}
.gs-group{
  font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em;
  color:var(--texto-suave); margin:10px 10px 6px 10px;
}
.gs-item{
  display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:var(--radio-sm);
  cursor:pointer; border:1px solid transparent;
}
.gs-item:hover{background:var(--tarjeta-gris);}
.gs-item.is-active{background:var(--tarjeta-gris); border-color:var(--azul);}
.gs-item-main{min-width:0; flex:1;}
.gs-item-name{margin:0; font-size:14px; font-weight:700; color:var(--texto); line-height:1.3;}
.gs-item-why{margin:3px 0 0 0; font-size:12.5px; color:var(--texto-suave); line-height:1.4;}
.gs-item-path{margin:5px 0 0 0; font-size:11px; color:var(--texto-suave);}
.gs-item-path .gs-cat{font-weight:700; color:var(--azul);}
.gs-item.is-data .gs-item-name{font-weight:600; font-size:13px;}
.gs-open{
  font-size:12px; font-weight:700; color:var(--azul); white-space:nowrap; flex-shrink:0; opacity:0;
}
.gs-item:hover .gs-open, .gs-item.is-active .gs-open{opacity:1;}

.gs-hint{margin:16px 12px; font-size:13px; color:var(--texto-suave); line-height:1.5;}
.gs-sugs{display:flex; flex-wrap:wrap; gap:7px; padding:0 12px 12px 12px;}
.gs-sug{
  border:1px solid var(--borde); background:var(--tarjeta-gris); color:var(--texto-suave);
  border-radius:20px; padding:6px 12px; font-size:12px; cursor:pointer; font-family:inherit;
  text-align:left;
}
.gs-sug:hover{border-color:var(--azul); color:var(--texto);}

.gs-none{padding:20px 14px 14px 14px;}
.gs-none-title{margin:0; font-size:14px; font-weight:700; color:var(--texto);}
.gs-none-sub{margin:6px 0 12px 0; font-size:13px; color:var(--texto-suave);}
.gs-none .gs-sugs{padding:0 0 12px 0;}
.gs-none-manual{
  border:1px solid var(--borde); background:transparent; color:var(--azul); border-radius:var(--radio-sm);
  padding:8px 12px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit;
}
.gs-none-manual:hover{border-color:var(--azul);}

.gs-foot{
  display:flex; gap:16px; padding:9px 16px; border-top:1px solid var(--borde);
  background:var(--tarjeta-gris); font-size:11px; color:var(--texto-suave);
}
.gs-foot kbd{
  display:inline-block; border:1px solid var(--borde); background:var(--tarjeta); border-radius:4px;
  padding:1px 5px; margin-right:3px; font-family:inherit; font-size:10px; font-weight:700;
}

/* El bloque al que te ha llevado el buscador: un latido y se apaga. */
.gs-spotlight{
  animation:gsPulse 2.2s ease;
  border-radius:var(--radio); scroll-margin-top:90px;
}
@keyframes gsPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}
  12%,55%{box-shadow:0 0 0 3px var(--azul-claro);}
}

@media(max-width:900px){
  .gs-trigger{max-width:none;}
  .gs-overlay{padding:0; align-items:stretch;}
  .gs-panel{max-width:none; max-height:none; height:100%; border-radius:0; border:0;}
  .gs-foot{display:none;}      /* no hay teclado físico que explicar */
  .gs-item{padding:12px;}
}
@media(max-width:600px){
  .gs-trigger .gs-t-kbd{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .gs-panel{animation:none;}
  .gs-spotlight{animation:none; box-shadow:0 0 0 3px var(--azul-claro);}
}

/* ============================================================
   Acceso de workshop (tier limitado)
   ------------------------------------------------------------
   Los módulos cerrados NO se ocultan: se enseñan con candado.
   Ver lo que hay dentro de la comunidad es parte del sentido de
   dar un acceso parcial.
   ============================================================ */
.nav-item.is-locked{opacity:.55;}
.nav-item.is-locked:hover{opacity:.8;}
.nav-item.is-locked::after{content:"🔒"; margin-left:auto; font-size:11px; opacity:.7;}
.nav-item.is-locked .ic{filter:grayscale(1);}

.workshop-banner{
  background:color-mix(in srgb, var(--azul) 10%, transparent);
  border:1px solid var(--azul);
  border-radius:10px; padding:10px 14px; font-size:12px; line-height:1.5;
  margin-bottom:18px; display:flex; gap:10px; align-items:center; flex-wrap:wrap;
}
.workshop-banner > span:nth-child(2){flex:1; min-width:220px;}
.workshop-banner .btn{flex-shrink:0;}

.locked-modal{text-align:center;}
.locked-modal-icon{font-size:34px; margin-bottom:10px;}
.locked-modal p{font-size:14px; line-height:1.6; margin:0 0 12px;}
.locked-modal .btn{margin-top:6px; text-decoration:none; display:block;}

/* Aviso de modelo retirado por el proveedor (Configuración → IA). */
.model-notice{
  background:var(--amarillo-bg); border:1px solid var(--amarillo); color:#7A5A0F;
  border-radius:10px; padding:10px 12px; font-size:12px; line-height:1.5;
  margin:0 0 14px; display:flex; gap:8px; align-items:center; flex-wrap:wrap;
}
:root[data-theme="dark"] .model-notice{color:#E7C77A;}
.model-notice > span:nth-child(2){flex:1; min-width:220px;}
