  /* Tokens (colores, tamaños, radios, sombras): web/kepubli-ui.css. Acá sólo componentes del panel. */
  :root{font-synthesis-weight:none}

  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:"Nunito Sans",system-ui,sans-serif;font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased}
  .num{font-variant-numeric:tabular-nums}
  h1,h2,h3{margin:0;color:var(--head);font-weight:700;letter-spacing:-.01em}
  a{color:inherit}

  /* ── Menú lateral (E1, maqueta kepubli-google-menu) ── */
  .app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
  .side{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto;padding:14px 10px}
  .brand{display:flex;align-items:center;gap:10px;padding:2px 8px 12px}
  .brand-mark{width:30px;height:30px;border-radius:var(--r-input);flex:none;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:var(--fs-h3)}
  .brand-name{font-weight:700;font-size:var(--fs-h3);line-height:1.1;color:var(--head)}
  .brand-sub{font-size:var(--fs-xs);color:var(--faint);margin-top:1px}
  .cs{position:relative;display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:10px;background:var(--surface2);min-width:0}
  .cs.multi:hover{border-color:var(--accent)}
  .cs-dot{width:30px;height:30px;border-radius:var(--r-input);background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:var(--fs-table);flex:none}
  .cs-t{min-width:0;flex:1}.cs-t small{display:block;font-size:var(--fs-xs);color:var(--faint)}
  .cs-t b{display:block;color:var(--head);font-size:var(--fs-body);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cs-src{display:flex;gap:3px;flex:none}.cs-src i{width:8px;height:8px;border-radius:50%}
  .cs-src .src-meta{background:var(--meta)}.cs-src .src-google{background:var(--goo)}.cs-src .src-tn{background:var(--tn-solid)}
  .cs .client-sel{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
  .nav{display:flex;flex-direction:column;gap:2px}
  .nav a{display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:var(--r-input);font-size:var(--fs-body);color:var(--ink);text-decoration:none;cursor:pointer}
  .nav a svg{width:16px;height:16px;flex:none;color:var(--faint)}
  .nav a:hover{background:var(--surface2)}
  .nav a.active{background:var(--accent-2);color:var(--accent-ink)}.nav a.active svg{color:var(--accent-ink)}
  .nav a.dis{opacity:.45}.nav a.dis:hover{background:none}
  .nav a .r{margin-left:auto;font-size:var(--fs-label);color:var(--faint)}
  .nav-label{font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:12px 10px 4px}
  .nav-sep{height:1px;background:var(--line);margin:12px 8px}
  .lg{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:var(--fs-label);font-weight:700;flex:none}
  .lg svg{width:12px!important;height:12px!important;color:currentColor!important}
  .lg-m{background:var(--meta)}.lg-g{background:var(--goo)}.lg-t{background:var(--tn-solid)}.lg-res{background:var(--head);color:var(--bg)}
  .thsw{display:flex;align-items:center;gap:2px;width:max-content;margin:10px 8px 0;padding:3px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface2)}
  .thsw button{width:32px;height:26px;border:0;background:none;border-radius:var(--r-pill);color:var(--muted);display:grid;place-items:center;padding:0}
  .thsw button svg{width:15px;height:15px}
  .thsw button.on{background:var(--surface);color:var(--head);box-shadow:0 1px 2px rgba(0,0,0,.08)}
  .side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
  .user-chip{display:flex;align-items:center;gap:9px;padding:6px 10px;font-size:var(--fs-sm);color:var(--muted);cursor:pointer;min-width:0}
  .user-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .user-chip .av{width:23px;height:23px;border-radius:50%;background:var(--accent-2);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:var(--fs-xs);flex:none}
  .burger{display:none;width:33px;height:33px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);place-items:center;padding:0;flex:none}
  .burger svg{width:17px;height:17px}
  .side-back{display:none}

  .main{min-width:0;display:flex;flex-direction:column}
  /* Barra de arriba (E7.1): período · ↻ Actualizado · campanita. Nada más. */
  .topbar{position:sticky;top:0;z-index:45;background:var(--bg);border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px;padding:10px 24px;flex-wrap:wrap}
  .topbar .stale{font-size:var(--fs-sm);color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px}
  #bellSlot .notif-btn{width:33px;height:33px;border-radius:50%}
  /* Encabezado de sección (E2): título con logo + pestañas subrayadas. */
  .sec-head{padding:16px 24px 0}
  .sec-head .k-head{margin-bottom:0}
  .sec-head .k-h1 .lg{width:26px;height:26px;font-size:var(--fs-table)}
  .k-tabs{position:relative}
  .k-tabs>button{cursor:pointer}
  .k-more{position:relative;align-self:stretch;display:flex;align-items:flex-end}
  .k-more[hidden]{display:none}
  .k-more-btn{border:0;background:none;padding:9px 13px;font-size:var(--fs-body);color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
  .k-more-btn.on{color:var(--head);border-bottom-color:var(--head);font-weight:600}
  .k-more-pop{display:none;position:absolute;top:100%;left:0;z-index:40;min-width:190px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);padding:6px}
  .k-more.open .k-more-pop{display:block}
  .k-more-pop button{display:block;width:100%;text-align:left;border:0;background:none;border-radius:var(--r-input);padding:7px 10px;font-size:var(--fs-body);color:var(--ink)}
  .k-more-pop button:hover{background:var(--surface2)}.k-more-pop button.on{font-weight:600;color:var(--head)}
  /* La sección ya dice dónde estás: el título propio de cada pantalla queda sólo en los detalles. */
  .sec-head:not([hidden])~.content .screen:not(.s-campdetalle):not(.s-conjunto):not(.s-detalle):not(.s-proddetalle):not(.s-setdetalle)>.page-h>h1{display:none}
  .fld{display:flex;align-items:center;gap:8px}
  .fld .lbl{font-size:12.5px;color:var(--muted)}
  .ctrl{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:7px 11px;font-size:var(--fs-body);cursor:pointer;color:var(--ink)}
  .ctrl b{font-weight:700}.ctrl svg{width:14px;height:14px;color:var(--muted)}
  .spacer{flex:1}
  .seg{display:flex;gap:2px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-ctl);padding:3px}
  .seg button{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:var(--fs-body);font-weight:700;color:var(--muted);padding:6px 13px;border-radius:7px;white-space:nowrap}
  .seg button[aria-selected="true"]{background:var(--accent);color:#fff}
  .btn{appearance:none;cursor:pointer;font:inherit;font-size:var(--fs-body);font-weight:700;border-radius:var(--r-ctl);padding:8px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
  .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
  .icbtn{width:36px;height:36px;flex:none;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer;color:var(--muted)}.icbtn svg{width:16px;height:16px}
  body:not([data-screen="resumen"]) .only-resumen{display:none!important}

  .content{padding:20px 24px 44px;width:100%;min-width:0} /* 100% del ancho: sin max-width (regla de CLAUDE.md) */
  .screen{display:none}.screen.active{display:block}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}
  .ribbon{margin-bottom:14px}
  .ribbon span{display:inline-block;font-size:11.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-2);border-radius:var(--r-pill);padding:4px 12px}
  .page-h{display:flex;align-items:center;gap:12px;margin:0 2px 4px;flex-wrap:wrap}
  .page-h h1{font-size:var(--fs-h1);font-weight:700}
  .page-h .upd{margin-left:auto;font-size:12.5px;color:var(--faint);display:flex;align-items:center;gap:6px}
  .subline{font-size:var(--fs-body);color:var(--muted);margin:0 2px 16px}.subline b{color:var(--ink);font-weight:700}

  .ico{width:14px;height:14px;color:var(--accent);opacity:.8;flex:none}
  .dots{margin-left:auto;color:var(--faint);cursor:pointer}.dots svg{width:16px;height:16px}

  /* Stat cards */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
  .stat{padding:15px 16px;display:flex;flex-direction:column}
  .stat-h{display:flex;align-items:center;gap:6px}
  .stat-h .t{font-size:var(--fs-h3);font-weight:700;color:var(--head)}
  .stat .v{font-size:var(--fs-h1);font-weight:700;color:var(--head);margin:9px 0 1px;letter-spacing:-.015em}
  .stat .d{font-size:12.5px;color:var(--faint)}.stat .d .up{color:var(--pos);font-weight:700}.stat .d .down{color:var(--neg);font-weight:700}
  .spark{margin-top:11px;height:38px;width:100%;display:block}

  .grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:14px}
  .cardpad{padding:16px 18px}
  .card-h{display:flex;align-items:center;gap:6px;margin-bottom:14px}
  .card-h h2{font-size:var(--fs-h3);font-weight:700}

  /* horizontal bars */
  .barrow{display:flex;align-items:center;gap:12px;margin-bottom:12px}
  .barrow:last-child{margin-bottom:0}
  .barrow .lbl{width:120px;font-size:var(--fs-body);color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
  .barrow .track{flex:1;height:22px;background:var(--surface2);border-radius:6px;overflow:hidden}
  .barrow .track > i{display:block;height:100%;background:var(--accent);border-radius:6px}
  .barrow .val{width:52px;font-size:var(--fs-body);font-weight:700;color:var(--head);text-align:right;flex:none}

  /* winner */
  .winner-top{display:flex;align-items:center;gap:7px;margin-bottom:12px}
  .winner-top .ttl{font-size:var(--fs-h3);font-weight:700}
  .winner-body{display:flex;gap:12px}
  .thumb{width:66px;height:84px;flex:none;border-radius:var(--r-input);background:linear-gradient(135deg,#2b3a52,#141d2c);border:1px solid var(--line);position:relative}
  .thumb .play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;opacity:.9}.thumb .play svg{width:20px;height:20px}
  .winner-name{font-weight:700;font-size:var(--fs-h3);color:var(--head)}
  .winner-path{font-size:12.5px;color:var(--faint);margin-top:2px}
  .winner-metrics{display:flex;gap:16px;margin-top:11px}
  .wm .k{font-size:11.5px;color:var(--muted)}.wm .v{font-weight:700;font-size:var(--fs-h3);color:var(--head);margin-top:1px}
  .winner-actions{display:flex;gap:7px;margin-top:14px}

  .note{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-ctl);padding:11px 14px;margin-bottom:16px;font-size:var(--fs-body);color:var(--muted)}
  .note svg{width:16px;height:16px;color:var(--accent);flex:none;margin-top:1px}.note b{color:var(--ink);font-weight:700}
  .badge-mad{display:inline-block;font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-2);border-radius:5px;padding:1px 6px}

  .section-h{display:flex;align-items:center;justify-content:space-between;margin:0 2px 11px}
  .section-h h2{font-size:var(--fs-h3)}.section-h .hint{font-size:12.5px;color:var(--faint)}
  .list{overflow:hidden}
  .lrow{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line-soft);cursor:pointer}
  .lrow:last-child{border-bottom:0}.lrow:hover{background:var(--surface2)}
  .lrow .main2{flex:1;min-width:0}
  .lrow .nm{font-weight:700;font-size:var(--fs-h3);color:var(--head);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .lrow .nm .alertpill,.lrow .nm .obj{white-space:nowrap}
  /* Sesión 4 · Y: la tabla campaña › conjunto › anuncio entra sin scroll en 1440 px (antes el ojo quedaba afuera) */
  /* ⓘ con explicación (como el mockup) */
  .i-tip{position:relative;display:inline-flex;vertical-align:middle;margin-left:5px;color:var(--blue,var(--accent));cursor:help;outline:none}
  .i-tip svg{width:14px;height:14px}
  .i-tip:hover::after,.i-tip:focus::after{content:attr(data-i);position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);width:max-content;max-width:260px;white-space:normal;font-size:12.5px;font-weight:600;line-height:1.4;color:#fff;background:#1F2433;border-radius:var(--r-input);padding:7px 10px;z-index:60;box-shadow:0 8px 24px rgba(0,0,0,.18);text-transform:none;letter-spacing:0}
  .anal-grid{align-items:start}
  .obj{font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-2);border-radius:5px;padding:2px 7px;flex:none}
  .lrow .sub{font-size:var(--fs-body);color:var(--muted);margin-top:3px;display:flex;gap:14px;flex-wrap:wrap}.lrow .sub b{color:var(--ink);font-weight:700}
  .lrow .roas{text-align:right;min-width:66px}.lrow .roas .k{font-size:11.5px;color:var(--muted)}
  .lrow .roas .v{font-weight:700;font-size:var(--fs-h3);color:var(--head);line-height:1.2}
  .lrow .chev{width:17px;height:17px;color:var(--faint);flex:none}

  .tablewrap{overflow:hidden}
  .tbl-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
  .tbl-head h2{font-size:var(--fs-h3)}
  .tbl-tools{display:flex;gap:7px}
  .chipbtn{font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-input);padding:6px 10px;cursor:pointer}
  .scroll{overflow-x:hidden}  /* E7.10: sin scroll lateral; fitTables() (ktable.js) oculta columnas */
  table{border-collapse:collapse;width:100%;font-size:var(--fs-body)} /* sin min-width: nunca scroll lateral, fitTables() oculta columnas (tablas con aire) */
  thead th{position:sticky;top:0;background:var(--surface2);z-index:2;text-align:right;font-weight:700;font-size:11.5px;color:var(--muted);padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap}
  thead th.l{text-align:left}thead th.kpi-col{color:var(--accent-ink)}
  /* Productos v2 · P3: etiquetas de cada conjunto y tarjetas de "Conjuntos sugeridos" */
  .set-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
  .set-tags span{font-size:10.5px;font-weight:700;border-radius:var(--r-pill);padding:1px 8px;background:var(--surface2);color:var(--muted);white-space:nowrap}
  .set-tags .ok{background:color-mix(in srgb,var(--pos) 14%,transparent);color:var(--pos)}
  .set-tags .warn{background:var(--warn-2);color:var(--warn)}
  .set-tags .bad{background:color-mix(in srgb,var(--neg) 12%,transparent);color:var(--neg)}
  .set-tags .info{background:var(--accent-2);color:var(--accent-ink)}
  .sug-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-bottom:16px;align-items:start}
  .sug-card{display:flex;flex-direction:column;overflow:hidden}
  .sug-fotos{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--surface2);height:78px}
  .sug-fotos img{width:100%;height:78px;object-fit:cover;display:block}
  .sug-ph{grid-column:1/-1}
  .sug-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}
  .sug-k{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
  .sug-body b{font-size:14.5px;color:var(--head)}
  .sug-body p{margin:0;font-size:13px;color:var(--ink);line-height:1.4}
  .sug-body small{font-size:12.5px;color:var(--muted)}
  .sug-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .sug-how{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);color:var(--ink)}
  .sug-how .sm-why{color:var(--ink);font-size:12.5px;margin:0 0 8px}
  .sug-how .sm-pp b{color:var(--head)}.sug-how .sm-pp small{color:var(--muted)}
  .sug-how .sm-filt code{color:var(--head)}
  .sug-how .sm-more{color:var(--muted)}
  /* Columnas ordenables (sortable.js): flecha ▲/▼ en la activa */
  th.sortable,[data-sc].sortable{cursor:pointer;user-select:none}
  th.sortable:hover,[data-sc].sortable:hover{color:var(--head)}
  th.sorted,[data-sc].sorted{color:var(--accent-ink)}
  th.sortable:focus-visible,[data-sc].sortable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .sort-ar{display:inline-block;min-width:9px;margin-left:3px;font-size:10.5px}
  .sort-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--faint)}
  .sort-bar [data-sc]{font:inherit;font-size:12.5px;font-weight:700;color:var(--muted);background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px}
  .sort-bar [data-sc].sorted{color:var(--accent-ink);border-color:currentColor}
  td{padding:11px 13px;text-align:right;color:var(--ink);border-bottom:1px solid var(--line-soft);white-space:nowrap}td.l{text-align:left}
  tbody tr:last-child td{border-bottom:0}
  @media (max-width:1600px){thead th{padding:10px 8px}td{padding:11px 8px}.name-cell{min-width:200px}}
  .name-cell{display:flex;align-items:center;gap:9px;min-width:240px}
  /* Tablas a todo el ancho (regla de CLAUDE.md): el Nombre toma lo que sobra y se achica con "…" (title con el
     nombre completo); los números quedan al ancho justo. Desde 1366 px entran sin scroll horizontal. */
  td:has(> .name-cell){width:100%;max-width:0}
  .name-cell .nm{flex:1 1 auto;min-width:0;max-width:none}
  @media (max-width:1599px){.name-cell{min-width:180px}thead th{white-space:normal;line-height:1.25;vertical-align:bottom}}
  /* Columnas secundarias: por debajo de 1366 px se ocultan antes de llegar al scroll (que queda dentro de la tarjeta). */
  @media (max-width:1365px){.c-alcance,.c-frec{display:none}}
  .tier{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:5px;flex:none}
  .tier.c{color:var(--accent-ink);background:var(--accent-2)}.tier.s{color:var(--muted);background:var(--surface2);border:1px solid var(--line)}.tier.a{color:var(--faint);background:transparent;border:1px dashed var(--line)}
  .nm{font-weight:600;color:var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
  .row-c td{background:var(--surface2)}.row-c .nm{font-weight:700}
  .row-s .name-cell{padding-left:16px}.row-a .name-cell{padding-left:34px}
  .mini-thumb{width:28px;height:28px;border-radius:6px;flex:none;background:linear-gradient(135deg,#2b3a52,#141d2c);border:1px solid var(--line)}
  .state{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}
  .state::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pos)}
  .state.paused::before{background:#D9A80B}.state.deleted::before{background:var(--neg)}.state.deleted{color:var(--neg);text-decoration:line-through}
  .kpi-cell{color:var(--head);font-weight:700;background:var(--accent-wash-2)}
  .win-row td{background:var(--accent-wash)!important}
  .win-flag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:#fff;background:var(--accent);border-radius:5px;padding:1px 6px;margin-right:2px}
  .warn-cell{color:var(--warn);font-weight:700}
  .caret{width:15px;height:15px;color:var(--faint);transition:transform .15s;flex:none;cursor:pointer}.collapsed .caret{transform:rotate(-90deg)}
  .foot{font-size:12.5px;color:var(--faint);padding:12px 16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
  body:not(.adv) .only-adv{display:none}body.adv .only-simple{display:none}

  /* Config & Help */
  .cfg,.help{display:flex;flex-direction:column;gap:14px}
  .cfg-h{padding:15px 18px;border-bottom:1px solid var(--line-soft)}.cfg-h h2{font-size:var(--fs-h3)}.cfg-h p{font-size:var(--fs-body);color:var(--muted);margin:3px 0 0}
  .field{padding:15px 18px;border-bottom:1px solid var(--line-soft);display:grid;grid-template-columns:220px 1fr;gap:12px 22px;align-items:start}.field:last-child{border-bottom:0}
  .field .lab{font-weight:700;font-size:var(--fs-body);color:var(--ink)}.field .lab small{display:block;font-weight:400;color:var(--muted);margin-top:3px;line-height:1.45}
  input[type=text],select{width:100%;max-width:340px;font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-input);padding:8px 11px}
  .inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .swatches{display:flex;gap:8px}.sw{width:25px;height:25px;border-radius:7px;cursor:pointer;border:2px solid transparent}.sw.on{border-color:var(--ink)}
  .help-ctl{font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.5}
  .warnbox{display:flex;gap:9px;background:var(--warn-2);border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));border-radius:var(--r-input);padding:10px 12px;font-size:12.5px;color:var(--ink);margin-top:10px}.warnbox svg{width:15px;height:15px;color:var(--warn);flex:none;margin-top:1px}
  .userline{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-body)}.userline:last-child{border-bottom:0}
  .uav{width:23px;height:23px;border-radius:50%;background:var(--accent-2);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:11.5px;flex:none}
  .tag{font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-2);border-radius:5px;padding:1px 7px}
  .help-card{padding:18px 20px}.help-card h2{font-size:var(--fs-h3);margin-bottom:7px}.help-card h3{font-size:var(--fs-body);margin:15px 0 5px;color:var(--accent-ink)}
  .help-card p{font-size:var(--fs-body);color:var(--muted);margin:0 0 9px;max-width:70ch}.help-card p b{color:var(--ink)}
  .timeline{display:flex;gap:4px;margin:12px 0}.tl{flex:1;text-align:center}.tl .bar2{height:26px;border-radius:5px;background:var(--accent);opacity:var(--o,1)}.tl small{font-size:10.5px;color:var(--faint);display:block;margin-top:5px}
  .gloss{display:grid;grid-template-columns:130px 1fr;gap:8px 18px;font-size:var(--fs-body)}.gloss dt{font-weight:700;color:var(--ink)}.gloss dd{margin:0;color:var(--muted)}
  .win-def{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:7px;font-size:var(--fs-body);color:var(--muted)}.win-def b{color:var(--ink)}

  /* Análisis / desgloses */
  .anal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media (max-width:960px){.anal-grid{grid-template-columns:minmax(0,1fr)}} /* Sesión 4 · Y: en el celular se iba a 557 px */
  .insight{font-size:12.5px;color:var(--muted);margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft);display:flex;gap:7px}
  .insight svg{width:14px;height:14px;color:var(--accent);flex:none;margin-top:1px}.insight b{color:var(--ink);font-weight:700}
  .chips{display:flex;flex-wrap:wrap;gap:7px}
  .chip{font-size:12.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-2);border-radius:var(--r-pill);padding:4px 11px}
  .aud-row{display:grid;grid-template-columns:130px 1fr;gap:8px 16px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-body)}
  .aud-row:last-child{border-bottom:0}.aud-row .k{color:var(--muted);font-weight:700}
  .hours{display:flex;align-items:flex-end;gap:3px;height:78px}
  .hours .hb{flex:1;background:var(--accent);border-radius:3px 3px 0 0;opacity:.85}
  .hours-x{display:flex;justify-content:space-between;font-size:10.5px;color:var(--faint);margin-top:6px}

  /* Gráfico grande */
  .chartcard .legendchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-left:auto}
  .chartcard .legendchip::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--accent)}
  .chartcard svg.big-chart{width:100%;height:190px;display:block}
  .chartcard .xaxis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint);margin-top:8px;padding:0 2px}
  .gridln{stroke:var(--line-soft);stroke-width:1}

  /* Creativos (imágenes) */
  .cr1{background:linear-gradient(150deg,#1b1b1f,#4a3b34)}
  .cr2{background:linear-gradient(150deg,#7c3aed,var(--accent))}
  .cr3{background:linear-gradient(150deg,#0f766e,#0e7490)}
  .cr4{background:linear-gradient(150deg,var(--neg),var(--warn))}
  .cr5{background:linear-gradient(150deg,#1f2937,#52606d)}
  .cr6{background:linear-gradient(150deg,#db2777,#7c3aed)}
  .gtools{display:flex;gap:7px;margin-bottom:14px;flex-wrap:wrap}
  .chipbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
  .cr{position:relative;aspect-ratio:4/5}
  .cr .ov{position:absolute;inset:0;padding:10px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}
  .cr .tag{align-self:flex-start;font-size:10.5px;font-weight:700;background:rgba(0,0,0,.42);padding:2px 8px;border-radius:var(--r-pill);backdrop-filter:blur(2px)}
  .cr .big{font-weight:700;font-size:18px;text-shadow:0 1px 7px rgba(0,0,0,.5);line-height:1.12;letter-spacing:.3px}
  .cr .playc{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.cr .playc svg{width:30px;height:30px;color:#fff;opacity:.92;filter:drop-shadow(0 2px 5px rgba(0,0,0,.5))}
  .cr .win-ov{position:absolute;top:9px;right:9px;font-size:10.5px;font-weight:700;color:#fff;background:var(--accent);border-radius:6px;padding:2px 7px}

  /* Agencia / Clientes */
  .ag-foot{font-size:12.5px;color:var(--faint);margin-top:12px}
  .alertpill{font-size:11.5px;font-weight:700;color:var(--warn);background:var(--warn-2);border-radius:6px;padding:2px 8px}
  .okpill{font-size:11.5px;font-weight:700;color:var(--pos);background:rgba(21,163,107,.10);border-radius:6px;padding:2px 8px}
  .cl-add{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
  .cl-add .f{display:flex;flex-direction:column;gap:5px}.cl-add .f label{font-size:12.5px;font-weight:700;color:var(--ink)}
  .cl-add .full{grid-column:1 / -1}
  /* Preview de video (vpreview.js): el <video> va encima de la portada, abajo de las etiquetas */
  [data-vprev]{position:relative;overflow:hidden}
  .vp-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s;pointer-events:none;z-index:1;background:transparent}
  .vp-on .vp-v{opacity:1}
  .vp-on .playc,.vp-on .play{opacity:0;transition:opacity .2s}
  .vp-badge{position:absolute;left:6px;bottom:6px;z-index:2;display:inline-flex;align-items:center;gap:3px;padding:2px 6px 2px 4px;border-radius:var(--r-pill);background:rgba(10,14,22,.66);color:#fff;font-size:11.5px;font-weight:700;line-height:16px;cursor:pointer}
  .vp-badge svg{width:12px;height:12px}
  .vp-badge b{font-weight:700}
  .vp-load .vp-badge::after{content:"";width:9px;height:9px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:vpspin .7s linear infinite}
  @keyframes vpspin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion: reduce){.vp-v{transition:none}.vp-load .vp-badge::after{animation:none}}
  .thumb .vp-badge{left:4px;bottom:4px;padding:1px 5px 1px 3px;font-size:10.5px}
  /* Buscador de cuentas publicitarias (Clientes) */
  .acc-pick{display:flex;flex-direction:column;gap:6px}
  .acc-list{max-height:248px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);padding:4px}
  .acc-list>.muted,.acc-list>.faint{padding:8px 10px;font-size:12.5px}
  .acc-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;text-align:left;background:none;border:0;border-radius:7px;padding:7px 9px;cursor:pointer;font:inherit;color:var(--ink)}
  .acc-row:hover:not(:disabled){background:var(--bg)}
  .acc-row.on{background:color-mix(in srgb,var(--blue,var(--accent)) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blue,var(--accent)) 40%,transparent)}
  .acc-row:disabled{opacity:.55;cursor:not-allowed}
  .acc-row .acc-n{flex:1 1 200px;min-width:0;display:flex;flex-direction:column}
  .acc-row .acc-n b{color:var(--head);font-size:var(--fs-body);overflow-wrap:anywhere}.acc-row .acc-n small{color:var(--faint);font-size:12.5px}
  .acc-row .acc-m{font-size:12.5px;color:var(--muted);white-space:nowrap}
  .steps{list-style:none;counter-reset:s;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
  .steps li{counter-increment:s;display:flex;gap:10px;font-size:var(--fs-body);color:var(--muted)}
  .steps li::before{content:counter(s);flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent-2);color:var(--accent-ink);font-weight:700;font-size:11.5px;display:grid;place-items:center}

  @media (max-width:960px){.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.field{grid-template-columns:1fr}.gloss{grid-template-columns:1fr}.cl-add{grid-template-columns:1fr}}
  @media (max-width:760px){
    .app{grid-template-columns:1fr}
    .side{position:fixed;left:0;top:0;bottom:0;z-index:60;width:min(290px,86vw);height:100vh;transform:translateX(-105%);transition:transform .22s;box-shadow:var(--shadow-pop)}
    body.side-open .side{transform:none}
    body.side-open .side-back{display:block;position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.35)}
    .burger{display:grid}.sec-head{padding:12px 16px 0}
    .content{padding:16px 16px 36px}.stats{grid-template-columns:1fr 1fr;gap:11px}
    .lrow{flex-wrap:wrap}.lrow .roas{text-align:left}.topbar{padding:9px 16px}
  }
  @media (prefers-reduced-motion:reduce){*{transition:none!important}}

  .gall{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
  .gcard{overflow:hidden;cursor:pointer;display:flex;flex-direction:column}
  .gcard:hover{border-color:var(--accent)}

  /* ───────── Mockup FINAL: campañas, conjunto, ficha del anuncio, filtros, glosario ───────── */
  .cdpanel{display:none}.cdpanel.active{display:block}
  .filters2{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  .fdd{position:relative}
  .fdd-btn{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 13px;cursor:pointer}
  .fdd-btn svg{width:14px;height:14px;color:var(--muted);transition:.15s}
  .fdd.open .fdd-btn svg{transform:rotate(180deg)}
  .fdd-btn .cnt{font-size:11.5px;font-weight:700;color:#fff;background:var(--accent);border-radius:var(--r-pill);padding:0 7px;line-height:17px;min-width:17px;text-align:center}
  .fdd-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:7px;min-width:195px;display:none}
  .fdd.open .fdd-panel{display:block}
  .fdd-panel label{display:flex;align-items:center;gap:9px;font-size:var(--fs-body);color:var(--ink);padding:7px 9px;border-radius:7px;cursor:pointer}
  .fdd-panel label:hover{background:var(--surface2)}
  .fdd-panel input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
  .ftipo{font-size:12.5px;color:var(--muted);font-weight:700;align-self:center;margin-right:2px}
  .cat-ov{position:absolute;left:8px;bottom:8px;font-size:10.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);border-radius:6px;padding:3px 8px}
  /* Ficha de detalle */
  .back{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body);font-weight:700;color:var(--accent-ink);cursor:pointer;margin-bottom:12px;background:none;border:0}
  .crumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}
  .crumbs a{color:var(--accent-ink);font-weight:600;cursor:pointer;text-decoration:none}
  .crumbs a:hover{text-decoration:underline}.crumbs .sep{color:var(--faint)}
  .cjrow{cursor:pointer}
  .eyebtn{display:inline-grid;place-items:center;width:30px;height:27px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;color:var(--muted)}
  .eyebtn:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-2)}
  .eyebtn svg{width:15px;height:15px}
  .detail{display:grid;grid-template-columns:290px 1fr;gap:18px;align-items:start}
  .dmedia{position:relative;aspect-ratio:4/5;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line)}
  .dmedia .playc{position:absolute;inset:0;display:grid;place-items:center}.dmedia .playc svg{width:40px;height:40px;color:#fff;opacity:.92;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
  .dmedia .ov{position:absolute;inset:0;padding:12px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}
  .dmedia .big{font-weight:700;font-size:18px;text-shadow:0 1px 7px rgba(0,0,0,.5)}
  .dtype{display:inline-flex;gap:7px;align-items:center;font-size:12.5px;color:var(--muted);margin-top:10px}
  .dtag{font-size:11.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-2);border-radius:6px;padding:2px 8px}
  .dhead h2{font-size:var(--fs-h1)}
  .dmeta{font-size:var(--fs-body);color:var(--muted);margin:5px 0 0}.dmeta b{color:var(--ink);font-weight:700}
  .mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 4px}
  .mcell{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:9px 11px;cursor:pointer}
  .mcell:hover{border-color:var(--accent)}
  .gback{position:fixed;inset:0;background:rgba(10,15,22,.35);opacity:0;visibility:hidden;transition:.2s;z-index:55}
  .gback.on{opacity:1;visibility:visible}
  .gdrawer{position:fixed;top:0;right:0;height:100vh;width:330px;max-width:88vw;background:var(--surface);border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(0,0,0,.12);transform:translateX(100%);transition:transform .22s;z-index:60;padding:18px 18px 40px;overflow:auto}
  .gdrawer.open{transform:translateX(0)}
  .grow{font-size:var(--fs-body);color:var(--muted);padding:8px 0;border-bottom:1px solid var(--line-soft)}
  .grow:last-child{border-bottom:0}.grow b{color:var(--ink);font-weight:700}
  .mcell .k{font-size:10.5px;color:var(--muted)}.mcell .v{font-weight:700;font-size:var(--fs-h3);color:var(--head);margin-top:2px}
  .idnote{font-size:12.5px;color:var(--muted);margin:2px 0 12px;display:flex;gap:7px}.idnote svg{width:15px;height:15px;color:var(--accent);flex:none;margin-top:1px}.idnote b{color:var(--ink);font-weight:700}
  .dsec{font-size:11.5px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;margin:2px 2px 0}
  .evo{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .evo h3{font-size:12.5px;color:var(--muted);margin:0 0 9px;font-weight:700}
  .evo .bars{display:flex;align-items:flex-end;gap:3px;height:66px}
  .evo .bars .b{flex:1;background:var(--accent);border-radius:3px 3px 0 0;opacity:.8}
  .evo .ex{display:flex;justify-content:space-between;font-size:10.5px;color:var(--faint);margin-top:6px}
  .ev2-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .ev2-chk{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;cursor:pointer}
  .ev2-chk .dot{width:10px;height:10px;border-radius:3px}
  .ev2-chk.off{opacity:.4}
  .ev2 svg{width:100%;height:210px;display:block}
  .ev-range{display:flex;gap:6px;margin-left:auto;align-items:center;flex-wrap:wrap}
  .ev-x{display:flex;justify-content:space-between;font-size:10.5px;color:var(--faint);margin-top:8px}
  .igrow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .igrow .k{font-size:12.5px;color:var(--muted)}.igrow .v{font-weight:700;font-size:var(--fs-h3);color:var(--head);margin-top:4px}
  .bd3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .bd3 h3{font-size:12.5px;color:var(--muted);margin:0 0 9px;font-weight:700}
  .bd3 .barrow .lbl{width:56px}
  .ivars{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
  .ivar{border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .ivar .cr{position:relative;aspect-ratio:4/5}
  .ivar-badge{position:absolute;top:8px;right:8px;font-size:10.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);border-radius:6px;padding:2px 7px}
  .ivar-info{padding:10px 11px}
  .ivar-info .gn{font-weight:700;font-size:var(--fs-body);color:var(--head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ivar-info .gm{display:flex;gap:12px;margin-top:7px}
  .ivar-info .gm .k{font-size:10.5px;color:var(--muted)}.ivar-info .gm .v{font-weight:700;font-size:12.5px;color:var(--head)}
  @media (max-width:760px){.igrow{grid-template-columns:1fr 1fr}.bd3{grid-template-columns:1fr}}
  .ginfo{padding:11px 13px;flex:1;display:flex;flex-direction:column}
  .ginfo .gn{font-weight:700;font-size:12.5px;color:var(--head);line-height:1.25;min-height:2.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ginfo .gp{font-size:11.5px;color:var(--faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ginfo .gm{display:flex;flex-direction:column;gap:4px;margin-top:9px}
  .ginfo .gm > div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
  .gm .k{font-size:10.5px;color:var(--muted)}.gm .v{font-weight:700;font-size:12.5px;color:var(--head)}
  .glink{display:inline-flex;align-items:center;gap:4px;margin-top:11px;font-size:12.5px;font-weight:700;color:var(--accent-ink);text-decoration:none}
  .gcta{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--accent-ink);padding:10px;border-top:1px solid var(--line-soft);background:var(--surface)}
  .gcard:hover .gcta{background:var(--accent-2)}

  body.crlist-on .gall{display:none!important}
  body:not(.crlist-on) .crlist{display:none}
  .crlist tbody tr{cursor:pointer}
  .crlist .ct{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:5px;padding:2px 7px}
  @media (max-width:760px){.detail{grid-template-columns:1fr}.evo{grid-template-columns:1fr}.mgrid{grid-template-columns:repeat(2,1fr)}}
  /* ───────── Kepubli: piezas que el mockup no tenía ───────── */
  .main{overflow-x:clip} /* nunca scroll horizontal de página: lo ancho scrollea dentro de su tarjeta (.scroll) */
  .muted{color:var(--muted)} .faint{color:var(--faint)}
  [hidden]{display:none!important}

  /* Login */
  .login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}
  .login form{width:100%;max-width:360px;padding:26px 24px;display:flex;flex-direction:column;gap:14px}
  .login .brand{padding:0 0 4px}
  .login h1{font-size:var(--fs-h1)}
  .login label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:var(--ink)}
  .login input{font:inherit;font-size:var(--fs-h3);padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface);color:var(--ink)}
  .login .err{color:var(--neg);font-size:12.5px;min-height:16px}
  .login .err.ok{color:var(--pos)}
  .linkbtn{background:none;border:0;padding:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--accent-ink);cursor:pointer;align-self:flex-start}
  .linkbtn:hover{text-decoration:underline}
  /* Clientes: acceso y estado de datos */
  .cl-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-body)}
  .cl-row:last-child{border-bottom:0}
  .cl-row .cl-main{min-width:0;flex:1 1 220px}
  .cl-row .cl-sub{color:var(--faint);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
  .cl-row .cl-acts{display:flex;gap:6px;flex-wrap:wrap}
  .badpill{font-size:11.5px;font-weight:700;color:var(--neg);background:color-mix(in srgb,var(--neg) 10%,transparent);border-radius:6px;padding:2px 8px}
  .neupill{font-size:11.5px;font-weight:700;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1px 7px}
  .am-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .am-add input,.am-add select{flex:1 1 180px;max-width:none}
  .credbox{margin-top:12px;border:1px solid var(--line);border-left:3px solid var(--pos);border-radius:var(--r-ctl);padding:12px 14px;background:var(--surface)}
  .credbox .ch{font-weight:700;color:var(--head);margin-bottom:6px}.credbox .ch small{font-weight:400;color:var(--warn);margin-left:6px}
  .credbox pre{font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 10px;color:var(--ink)}

  /* Controles de la barra superior */
  select.ctrl{appearance:auto;padding:7px 9px;font-weight:700;max-width:none;width:auto}
  .ctrl input[type=date]{font:inherit;font-size:var(--fs-body);border:0;background:transparent;color:var(--ink);padding:0}
  .daterange{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .btn:disabled{opacity:.55;cursor:default}
  .btn.danger{color:var(--neg)}
  .icbtn .sun{display:none}
  :root[data-theme="dark"] .icbtn .sun{display:block} :root[data-theme="dark"] .icbtn .moon{display:none}

  /* Avisos (variantes del .note del mockup) */
  .notes{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
  .notes .note{margin-bottom:0}
  .note.warn{border-left-color:var(--warn)} .note.warn svg{color:var(--warn)}
  .note.bad{border-left-color:var(--neg)} .note.bad svg{color:var(--neg)}
  .loading .content{opacity:.55;pointer-events:none;transition:opacity .2s}

  /* Deltas */
  .stat .d .flat{color:var(--muted);font-weight:700}

  /* Gráfico grande + tooltip */
  .chartwrap{position:relative}
  .big-chart .yl{font-size:11.5px;fill:var(--faint)}  /* E7.4: ejes en 11,5 gris */
  .big-chart .wknd{fill:var(--surface2)}
  .legendrow .sw-wk::before{content:"";width:10px;height:10px;border-radius:2px;background:var(--surface2);border:1px solid var(--line)}
  .big-chart .prev{fill:none;stroke:var(--faint);stroke-width:1.5;stroke-dasharray:4 4}
  .big-chart .hoverline{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3}
  .big-chart .matur{fill:var(--warn-2)}
  .legendrow{display:flex;gap:14px;margin-left:auto;font-size:12.5px;color:var(--muted)}
  .legendrow span{display:inline-flex;align-items:center;gap:6px}
  .legendrow .sw-cur::before{content:"";width:12px;height:2.5px;border-radius:2px;background:var(--accent)}
  .legendrow .sw-prev::before{content:"";width:12px;height:0;border-top:1.5px dashed var(--faint)}
  .legendrow .sw-mat::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--warn-2);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}
  .tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--r-input);padding:7px 10px;font-size:12.5px;color:var(--ink);white-space:nowrap;z-index:5;transform:translate(-50%,-110%)}
  .tip b{color:var(--head)} .tip .faint{display:block}
  .spark{overflow:visible}

  /* Barras horizontales: tooltip nativo + share */
  .barrow .val{width:auto;min-width:52px}
  .barrow .share{width:42px;font-size:11.5px;color:var(--faint);text-align:right;flex:none}
  .barrow.supp .track > i{background:repeating-linear-gradient(135deg,var(--line) 0 4px,transparent 4px 8px)}
  .barrow.supp .lbl{font-style:italic}
  .barrow .lbl{width:140px}

  /* Imágenes reales */
  .thumb,.mini-thumb,.cr{background-size:cover;background-position:center}
  .thumb.hasimg,.mini-thumb.hasimg{background-color:var(--surface2)}
  .thumb{cursor:pointer}
  .cr{cursor:pointer;background-color:#1b1f2a;overflow:hidden}
  .cr .crimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .cr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 35%,transparent 65%,rgba(0,0,0,.35));pointer-events:none}
  .cr .ov,.cr .win-ov,.cr .playc{z-index:1}
  .cr .tag{color:#fff;background:rgba(0,0,0,.55)}
  .gcard.gone{opacity:.72}
  .gall .empty{grid-column:1 / -1}

  /* Tabla avanzada */
  tr[data-id]{cursor:default}
  tr.has-ch .name-cell{cursor:pointer}
  tr.collapsed-row .caret{transform:rotate(-90deg)}
  .row-a .mini-thumb{cursor:pointer}
  .badge-mad{white-space:nowrap}
  .tbl-tools{flex-wrap:wrap;align-items:center}
  .tbl-tools label{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
  td .nm{display:inline-block}
  .state.paused{color:var(--muted)}

  /* Análisis */
  .card-h .sub{font-size:11.5px;color:var(--faint);margin-left:6px}
  .card-h .seg{margin-left:auto}
  .hours{position:relative}
  .hours .hb{cursor:default;min-height:2px}
  .hours .hb.best{opacity:1}
  .hours .hb:not(.best){opacity:.45}
  .chip.ex{color:var(--neg);background:color-mix(in srgb,var(--neg) 10%,transparent);text-decoration:line-through}
  .chip.aud{color:var(--ink);background:var(--surface2);border:1px solid var(--line)}
  .err-card{color:var(--neg);font-size:12.5px}
  .skel{height:120px;border-radius:var(--r-input);background:linear-gradient(90deg,var(--surface2),var(--line-soft),var(--surface2));background-size:200% 100%;animation:sk 1.2s infinite}
  @keyframes sk{to{background-position:-200% 0}}

  /* Configuración / formularios */
  input[type=text],input[type=email],input[type=number],input[type=password],select{width:100%;max-width:340px;font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-input);padding:8px 11px}
  input[type=color]{width:34px;height:28px;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:2px;cursor:pointer}
  .formmsg{font-size:12.5px;margin-top:8px;min-height:16px}
  .formmsg.ok{color:var(--pos)} .formmsg.bad{color:var(--neg)}
  .logo-prev{width:48px;height:48px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--surface2) center/contain no-repeat;display:grid;place-items:center;font-weight:700;color:var(--muted)}
  .cfg-actions{padding:12px 18px;display:flex;gap:8px;align-items:center;border-top:1px solid var(--line-soft)}
  .seg.inline{display:inline-flex}

  /* Modal (reel / imagen / contraseña) */
  .modal{position:fixed;inset:0;z-index:100;background:rgba(11,16,26,.62);display:grid;place-items:center;padding:16px}
  .modal .box{background:var(--surface);border-radius:var(--r-card);max-width:min(440px,100%);width:100%;max-height:92vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,.35)}
  .modal .box.media{max-width:min(420px,100%);background:#000}
  .modal .box.wide{max-width:min(560px,100%)}
  .modal .box .userline{flex-wrap:wrap}.chipbtn{white-space:nowrap}
  .modal video,.modal img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#000}
  .modal .mbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface)}
  .modal .mbar .t{font-weight:700;color:var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
  .modal .pad{padding:18px}

  .toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--head);color:var(--surface);padding:9px 14px;border-radius:var(--r-ctl);font-size:12.5px;z-index:120;box-shadow:var(--shadow)}

  .user-chip{cursor:pointer;border-radius:var(--r-input)}
  .user-chip:hover{background:var(--surface2)}
  .empty{padding:24px;text-align:center;color:var(--muted)}

  /* Selector de cliente (sidebar) */
  .client-switch{cursor:pointer}
  .client-switch .client-sel{appearance:auto;border:0;background:transparent;padding:0;font-weight:700;color:var(--head);width:100%;max-width:none;cursor:pointer}

  /* Carga inicial y estados de pantalla completa */
  .boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);z-index:200}
  .boot-in{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:var(--fs-h3)}
  .spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .has-state .screen{display:none!important}
  .statebox{padding:28px 24px;text-align:center;max-width:560px;margin:24px auto}
  .statebox .sb-ico svg{width:28px;height:28px;color:var(--accent)}
  .statebox.error .sb-ico svg{color:var(--neg)}
  .statebox h2{font-size:var(--fs-h3);margin:8px 0 6px}
  .statebox p{color:var(--muted);margin:0;line-height:1.6}
  .statebox .sb-ico .spin{width:26px;height:26px;margin:0 auto;border-width:3px}
  .statebox .sb-acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
  .statebox code,.note code{font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:0 4px}

  /* Detalle */
  .igrow .up{color:var(--pos)} .igrow .down{color:var(--neg)}
  .ev2-chk{font:inherit;font-size:12.5px}
  .dmedia{cursor:pointer;background-size:cover;background-position:center}
  /* Sesión 4 · W: proporción real en la ficha (reel 9:16 sin recortar), sin saltos: el hueco ya tiene su tamaño */
  .dmedia[data-ar]{max-height:72vh;margin-inline:auto;width:100%;max-width:calc(72vh * var(--ar-max, 1))}
  .dmedia.ar-v{aspect-ratio:9/16;max-width:min(100%,calc(72vh * 9 / 16))}
  .cr,.dmedia{background-color:#1b1f2a}
  .img-ko .crimg{display:none}
  /* Foto que llena su caja (antes eran background-image: así carga lazy y tiene el reemplazo de web/img.js) */
  .ph-box{position:relative;overflow:hidden}.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit;display:block}
  .thumb{overflow:hidden}.thumb > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}
  .thumb .play,.thumb .vp-badge{z-index:2}
  .cr .nmph{display:none}.cr.img-ko .nmph,.cr:not(:has(.crimg)) .nmph{display:block}
  .dmedia .crimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .page-h .state,.page-h .badge-mad{margin-left:2px}
  .crumbs a[data-detail]{cursor:pointer}
  .crlist tbody tr[data-detail]:hover td{background:var(--surface2)}
  .cjrow:hover td{background:var(--surface2)}
  td .tag{margin-left:6px}

  /* Catálogo Meta (portado del mockup FINAL) */
  .acclist .acc{border-bottom:1px solid var(--line-soft)}.acclist .acc:last-child{border-bottom:0}
  .acc-head{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer}
  .acc-head:hover{background:var(--surface2)}
  .acc:not(.open) .acc-head .caret{transform:rotate(-90deg)}
  .acc-main{flex:1;min-width:0}.acc-main .nm{font-weight:700;color:var(--head);font-size:var(--fs-h3)}
  .acc-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
  .acc-metrics{display:flex;gap:16px;font-size:var(--fs-body);color:var(--muted);white-space:nowrap}.acc-metrics b{color:var(--head);font-weight:700}
  .acc-body{display:none;padding:0 16px 14px}.acc.open .acc-body{display:block}
  @media(max-width:620px){.acc-metrics{display:none}}
  .prow{cursor:pointer}.prow:hover td{background:var(--surface2)}
  .mini-thumb{overflow:hidden}.mini-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .camprow:hover td{background:var(--surface2)}

  /* Confirmar etiquetas (Bloque J) */
  .tagtools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12.5px}
  .taglist{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-input)}
  .tagad{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--line-soft)}.tagad:last-child{border-bottom:0}
  .tagthumb{width:64px;height:80px;border-radius:var(--r-input);background:var(--surface2);flex:none;overflow:hidden;position:relative}
  .tagthumb img{width:100%;height:100%;object-fit:cover;display:block}
  .tagthumb span{position:absolute;left:4px;bottom:4px;font-size:10.5px;font-weight:700;background:rgba(0,0,0,.55);color:#fff;border-radius:4px;padding:1px 5px}
  .tagbody{min-width:0;flex:1}.tagbody .nm{font-weight:700;color:var(--head);font-size:var(--fs-body)}
  .tagcopy{font-size:12.5px;color:var(--muted);margin:2px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .tagrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px}
  .tdim{font-size:11.5px;color:var(--faint);width:150px;flex:none}
  .tagchip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:var(--r-pill);padding:2px 4px 2px 9px;font-size:12.5px;background:var(--surface)}
  .tagchip small{font-size:10.5px;color:var(--faint)}
  .tagchip.on{border-color:var(--pos);background:color-mix(in srgb,var(--pos) 10%,var(--surface))}
  .tagchip.off{opacity:.45;text-decoration:line-through}
  .tagchip button{border:0;background:var(--surface2);border-radius:var(--r-pill);width:20px;height:20px;cursor:pointer;font-size:11.5px;color:var(--ink)}
  .tagchip .tok:hover{background:var(--pos);color:#fff}.tagchip .tno:hover{background:var(--neg);color:#fff}
  .tagchip select{font-size:11.5px;padding:1px 2px;border:0;background:transparent;color:var(--muted);max-width:92px}
  @media (max-width:620px){.tdim{width:100%}}

  @media (max-width:760px){
    .topbar{gap:8px}
    .page-h .ev-range{margin-left:0!important;width:100%}
    .legendrow{margin-left:0;flex-wrap:wrap}
    .barrow .lbl{width:96px}
  }

  /* Impacto en Instagram (Sesión 5 · Z3b, del mockup) */
  .igt-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .igt{border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;background:var(--surface);min-width:0}
  .igt-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--muted)}
  .igt-i{width:26px;height:26px;border-radius:var(--r-input);display:grid;place-items:center;background:var(--accent-2);color:var(--accent-ink);flex:none}
  .igt-i svg{width:15px;height:15px}
  .igt .v{font-size:22px;font-weight:700;color:var(--head);margin-top:6px;letter-spacing:-.01em}
  .igt .d{font-size:12.5px;color:var(--faint)}
  .igt .d .up{color:var(--pos);font-weight:700}.igt .d .down{color:var(--neg);font-weight:700}
  .igt svg.sp{width:100%;height:26px;margin-top:6px}
  @media (max-width:900px){.igt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

  /* Historial de cambios (cambios.js): línea de tiempo en las fichas + marcas en los gráficos */
  .chg-list{list-style:none;margin:4px 0 0;padding:0;display:grid}
  .chg{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;position:relative;padding-bottom:12px}
  .chg:not(:last-child)::before{content:"";position:absolute;left:13.5px;top:28px;bottom:2px;width:1px;background:var(--line-soft)}
  .chg-ic{width:28px;height:28px;border-radius:var(--r-input);display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);flex:none}
  .chg-b{min-width:0;padding-top:3px}
  .chg-t{font-size:13.5px;font-weight:700;color:var(--head);overflow-wrap:anywhere}
  .chg-val{font-size:13px;color:var(--ink);margin-top:2px;overflow-wrap:anywhere}
  .chg-val s{color:var(--faint)}
  .chg-val .up{color:var(--pos)}.chg-val .down{color:var(--neg)}
  .chg-m{font-size:11.5px;color:var(--faint);margin-top:2px}
  .chg-learn{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:var(--r-pill);padding:1px 8px;margin-left:4px;white-space:nowrap}
  .chg-warn{font-size:13px;color:var(--ink);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:10px;padding:9px 12px;margin:4px 0 12px}
  .chg-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:11.5px;color:var(--muted)}
  .chg-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.chg-legend svg{color:var(--c)}
  .chg-more{margin-top:2px}
  .chg-vl{stroke-width:1;stroke-dasharray:2 3;opacity:.45}
  .tip-chg{display:block;margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft);font-size:12.5px}
  .tip-chg b{color:var(--c)}.tip-chg span{display:block;color:var(--ink)}
  .sw-chg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);margin-right:12px}
  .sw-chg::before{content:"";width:8px;height:8px;background:var(--warn);transform:rotate(45deg);border-radius:2px}

  /* Páginas públicas: Interesados y Logos de la landing (landing-admin.js) */
  .btn.sm{height:30px;padding:0 11px;font-size:12.5px;gap:6px}
  .btn.sm svg{width:14px;height:14px}
  td.nowrap,.nowrap{white-space:nowrap}
  .lg-drop{display:block;border:1.5px dashed var(--line);border-radius:12px;padding:18px 16px;text-align:center;color:var(--muted);font-size:13px;cursor:pointer;background:var(--surface2,transparent);transition:border-color .15s,background .15s}
  .lg-drop b{color:var(--head)}
  .lg-drop:hover,.lg-drop.over{border-color:var(--accent);background:var(--accent-2)}
  .lg-drop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .lg-drop-via{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:10px}
  .lg-drop-via select{height:32px;width:auto}
  .lg-wrap{padding:16px 18px 18px}
  .lg-row select,.lg-row input[type=text]{width:auto}
  .lg-list{display:grid;gap:8px;margin-top:12px}
  .lg-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto auto auto;gap:10px;align-items:center;border:1px solid var(--line-soft);border-radius:10px;padding:7px 10px}
  .lg-row.off{opacity:.55}
  .lg-prev{width:92px;height:46px;border-radius:var(--r-input);background:#0C1222;display:grid;place-items:center;padding:6px}
  .lg-prev img{max-width:100%;max-height:34px;filter:grayscale(1) brightness(1.8);opacity:.85}
  .lg-name{height:32px;min-width:0}
  .lg-via{height:32px}
  .lg-on{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
  .lg-ord{display:inline-flex;gap:4px}
  @media (max-width:760px){.lg-row{grid-template-columns:92px minmax(0,1fr);}.lg-row>.lg-via,.lg-row>.lg-on,.lg-row>.lg-ord,.lg-row>[data-rm]{grid-column:span 1}}

  /* Resultado por tipo: "En qué se va la plata" + tarjetas por tipo (pedido objetivos) */
  .rt-bar{display:flex;gap:2px;height:12px;border-radius:6px;overflow:hidden;background:var(--line-soft);margin-top:4px}
  .rt-bar i{display:block;height:100%;min-width:3px}
  .rt-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:9px 0 12px;font-size:12.5px;color:var(--muted)}
  .rt-legend span{display:inline-flex;align-items:center;gap:6px}.rt-legend b{color:var(--head)}
  .rt-legend i,.rt-h i{width:9px;height:9px;border-radius:3px;flex:none;display:inline-block}
  .rt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
  .rt-item{border:1px solid var(--line-soft);border-radius:12px;padding:11px 14px;min-width:0;background:var(--surface)}
  .rt-h{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--muted)}
  .rt-v{font-size:18px;font-weight:700;color:var(--head);margin:5px 0 2px;overflow-wrap:anywhere}
  .rt-item .d{font-size:12.5px;color:var(--faint)}
  .rt-item .d .up{color:var(--pos);font-weight:700}.rt-item .d .down{color:var(--neg);font-weight:700}
  .rt-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
  td.na{color:var(--faint)!important;font-size:12.5px;font-style:italic}
  td.res-cell{white-space:nowrap}

  /* Tiendanube · tarjeta en Configuración y pantalla Conexiones (tiendanube.js) */
  .tn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px}
  .tn-grid small{display:block;font-size:12.5px;color:var(--muted)}.tn-grid b{display:block;font-weight:400;color:var(--head);font-variant-numeric:tabular-nums}
  .tn-st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap}.tn-st i{width:7px;height:7px;border-radius:50%;background:var(--faint)}
  .tn-st.ok i{background:var(--pos)}.tn-st.warn{color:var(--warn)}.tn-st.warn i{background:var(--warn)}.tn-st.bad{color:var(--neg)}.tn-st.bad i{background:var(--neg)}.tn-st.off{color:var(--muted)}
  .tn-sw{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-body);color:var(--ink);margin-left:auto;cursor:pointer}
  .tn-note{padding:11px 14px;border-radius:var(--radius-sm,9px);margin-bottom:14px;font-size:var(--fs-body);border:1px solid var(--line);background:var(--surface)}
  .tn-note.ok{border-color:color-mix(in srgb,var(--pos) 40%,transparent);color:var(--pos)}.tn-note.warn{border-color:color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn)}.tn-note.bad{border-color:color-mix(in srgb,var(--neg) 40%,transparent);color:var(--neg)}
  .tn-note a{color:var(--accent-ink);font-weight:700;cursor:pointer;margin-left:6px}
.cr-row{display:flex;align-items:center;gap:var(--s4);min-width:0}
/* Vista agencia (D): nombre en una línea con los íconos de sus fuentes a la derecha (14 px, gris si están pausadas). */
.ag-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:min(240px,38vw)}   /* el nombre completo va en el title de la celda */
.k-table td.ag-first{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}   /* una línea: la fila queda en 32 px; el texto entero en el title */
.ag-srcs{display:inline-flex;gap:var(--s2);flex:none}
.ag-src.lg{width:14px;height:14px;border-radius:4px;font-size:var(--fs-label);line-height:14px;letter-spacing:-.04em;overflow:hidden}
.ag-src.is-off{background:var(--line);color:var(--faint)}
.ag-first{min-width:220px}   /* (tablas con aire) en una línea con …: ver .k-table td.ag-first */
/* Ayuda (maqueta pantallas chicas) */
.ay-acc{margin-bottom:var(--s5)}.ay-acc>summary{grid-template-columns:0 minmax(0,1fr) 0 18px}
.ay-acc[open] .ay-car{transform:rotate(180deg)}.ay-car{color:var(--faint);transition:transform .2s}
.ay-body p{margin:0 0 10px;max-width:70ch}
.ay-gl{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px 16px;font-size:var(--fs-table)}.ay-gl b{color:var(--head);font-weight:600}
@media (max-width:620px){.ay-gl{grid-template-columns:1fr;gap:2px 0}.ay-gl span{margin-bottom:8px}}

/* ── Login (maqueta pantallas chicas): tarjeta simple con la marca ── */
.lgn{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:24px 16px}
.lc{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:28px}
.lc-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}.lc-brand b{color:var(--head);font-size:var(--fs-h3)}
.lc-mark{width:34px;height:34px;border-radius:var(--r-ctl);display:grid;place-items:center;color:#fff;font-weight:700;background:var(--head);overflow:hidden;flex:none}
.lc-mark img{width:100%;height:100%;object-fit:contain;background:#fff}
.lc h2{margin:0 0 4px;font-size:var(--fs-h1);color:var(--head)}.lc p{margin:0 0 18px;color:var(--muted)}
.lc label{display:block;font-size:var(--fs-sm);color:var(--muted);margin:0 0 4px}
.lc input[type=email],.lc input[type=password],.lc input[type=text]{width:100%;height:38px;border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface);padding:0 10px;margin-bottom:12px}
.lc-pw{position:relative}.lc-pw input{padding-right:38px!important}
.lc-eye{position:absolute;right:6px;top:5px;width:28px;height:28px;border:0;background:none;color:var(--muted);display:grid;place-items:center}
.lc-chk{display:flex!important;align-items:center;gap:8px;margin:0 0 10px!important}
.lc-go{width:100%;height:38px;border:0;border-radius:var(--r-pill);background:var(--accent);color:#fff;font-size:var(--fs-body);margin-top:4px}
.lc-go:disabled{opacity:.7}
.lc-lnk{display:block;width:100%;border:0;background:none;text-align:center;margin-top:12px;color:var(--accent-ink);font-size:var(--fs-sm)}
.lc-back{text-align:left;width:auto;margin:0 0 10px}
.lc-err{display:none;color:var(--neg);font-size:var(--fs-sm);margin:4px 0 8px}.lc-err.on{display:block}
.lc-ok{display:none;background:var(--pos-2);color:var(--pos);border-radius:var(--r-input);padding:8px 10px;font-size:var(--fs-sm);margin-bottom:10px}.lc-ok.on{display:block}
/* E7.3 · estados con la misma forma en toda la app */
.k-skel-page{display:grid;gap:10px}
.state-alert{margin-bottom:12px}.state-alert svg{width:18px;height:18px;flex:none;color:var(--warn)}.state-alert>div{flex:1}
.state-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 2px;color:var(--muted)}.state-line svg{width:18px;height:18px;flex:none;color:var(--accent)}.state-line b{color:var(--head)}
.state-line .sb-acts{display:flex;gap:8px;flex-wrap:wrap}
/* E6 · Resumen de todas las fuentes */
.gx-split{display:flex;height:12px;border-radius:var(--r-pill);overflow:hidden;margin:4px 0 8px}.gx-split i{display:block}
.gx-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--muted);margin-bottom:10px}.gx-leg span{display:flex;gap:6px;align-items:center}.gx-leg em{width:9px;height:9px;border-radius:3px;display:inline-block}
.gx-attr{display:grid;gap:8px;margin-top:4px}
.gx-ab{display:grid;grid-template-columns:130px minmax(0,1fr) 80px;gap:10px;align-items:center;font-size:var(--fs-sm)}.gx-ab .num{text-align:right}
.gx-bar{height:10px;border-radius:var(--r-pill);background:var(--line-soft);overflow:hidden;display:flex}.gx-bar i{display:block;height:100%}
.gx-first{white-space:normal!important;line-height:1.35}.gx-first small{display:block;color:var(--muted);font-size:var(--fs-xs)}
@media (max-width:620px){.gx-ab{grid-template-columns:90px minmax(0,1fr) 60px}}
/* Conexiones (maqueta Menú, pestaña 2) */
.cx-srcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cx-src{display:grid;gap:6px;align-content:start}.cx-src h3{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cx-src p{margin:0}
.cx-quota{height:6px;border-radius:var(--r-pill);background:var(--line-soft);overflow:hidden}.cx-quota i{display:block;height:100%;background:var(--goo)}
.cx-cell{display:flex;flex-direction:column;gap:2px}.cx-cell small{color:var(--muted);font-size:var(--fs-xs)}
.cx-sug{font-size:var(--fs-xs);color:var(--goo);display:flex;gap:4px;align-items:center}.cx-sug .k-link{font-size:var(--fs-xs);text-decoration:underline}
.k-table tr.cx-asg td{background:var(--pos-2)}
.cx-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cx-how .card{font-size:var(--fs-sm);color:var(--muted)}.cx-how b{color:var(--head);display:block;margin-bottom:2px;font-size:var(--fs-table)}
.cx-k{width:22px;height:22px;border-radius:50%;background:var(--accent-2);color:var(--accent-ink);display:inline-grid;place-items:center;font-size:var(--fs-sm);font-weight:700;margin-bottom:6px}
@media (max-width:980px){.cx-srcs,.cx-how{grid-template-columns:1fr}}
/* Datos guardados (datos-guardados.js): barrita de 12 meses por fuente. */
.dg-list{padding:0;overflow:hidden}
.dg-row{display:grid;grid-template-columns:minmax(110px,1fr) repeat(3,minmax(0,2fr)) minmax(110px,1fr) minmax(150px,1.3fr);gap:var(--s7);padding:var(--s6) var(--s7);border-bottom:1px solid var(--line-soft);align-items:start}
.dg-row:last-child{border-bottom:0}
.dg-head{font-size:var(--fs-xs);color:var(--faint);padding-block:var(--s4)}
.dg-name b{font-weight:var(--fw-semi);color:var(--head);overflow-wrap:anywhere}
.dg-bar{display:flex;height:10px;border-radius:var(--r-pill);overflow:hidden;background:var(--line-soft);margin-top:4px}
.dg-bar i{display:block;height:100%;min-width:1px}
.dg-d.dg-meta{background:var(--meta)}.dg-d.dg-goo{background:var(--goo)}.dg-d.dg-tn{background:var(--tn)}
.dg-z.dg-meta{background:var(--meta-2)}.dg-z.dg-goo{background:var(--goo-2)}.dg-z.dg-tn{background:var(--tn-2)}
.dg-g{background:var(--faint)}
.dg-p{background:repeating-linear-gradient(135deg,var(--warn) 0 3px,var(--warn-2) 3px 6px)}
.dg-x{background:transparent}
.dg-sub{font-size:var(--fs-xs);color:var(--faint);margin-top:var(--s2)}
.dg-warn{color:var(--warn);font-weight:var(--fw-semi)}
.dg-calls{display:grid;gap:2px;font-size:var(--fs-sm);color:var(--muted)}
.dg-est{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;min-width:0}
.dg-est .k-pill{white-space:normal;max-width:100%}
.dg-legend{display:flex;flex-wrap:wrap;gap:var(--s7);margin:0}
.dg-legend span{display:inline-flex;align-items:center;gap:var(--s3)}
.dg-legend i{display:inline-block;width:18px;height:8px;border-radius:var(--r-pill)}
.dg-cfg{margin-top:var(--s7)}
@media (max-width:980px){
  .dg-row{grid-template-columns:minmax(0,1fr);gap:var(--s5)}
  .dg-head{display:none}
  .dg-row>[data-l]::before{content:attr(data-l);display:block;font-size:var(--fs-xs);color:var(--faint)}
}

/* Google Ads (G3) */
.g-name{border:0;background:none;padding:0;color:var(--head);text-align:left;font:inherit;cursor:pointer}.g-name:hover{color:var(--accent-ink);text-decoration:underline}
.g-qs{display:inline-flex;gap:6px;align-items:center}.g-qs b{font-weight:400;width:18px;text-align:right}.g-qs i{width:7px;height:7px;border-radius:50%;display:inline-block}.g-qs i.g{background:var(--pos)}.g-qs i.m{background:var(--faint)}.g-qs i.b{background:var(--neg)}
.g-kwc{color:var(--head);white-space:nowrap}.g-kwc .k-match{margin-left:4px}
.g-vis{display:flex;gap:10px;align-items:center;font-size:var(--fs-sm);color:var(--muted);margin:0 2px 10px}.g-vb{flex:0 0 160px;height:6px;border-radius:var(--r-pill);background:var(--line-soft);overflow:hidden}.g-vb i{display:block;height:100%;background:var(--goo)}
.g-ng{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.g-ng button{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 12px;display:grid;gap:2px;justify-items:start}.g-ng button:hover{border-color:var(--accent)}.g-ng b{font-family:var(--font-mono);color:var(--head);font-size:var(--fs-body);font-weight:400}.g-ng small{color:var(--muted);font-size:var(--fs-sm)}
.g-pre{font-family:var(--font-mono);font-size:var(--fs-code);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-input);padding:10px;max-height:260px;overflow:auto;white-space:pre-wrap;margin:8px 0}
.g-first{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line-soft);font-size:var(--fs-table)}.g-first small{color:var(--muted)}
/* Google Ads (G5) */
.g-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.g-as{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.g-as img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.g-as-ph{aspect-ratio:1/1;display:grid;place-items:center;background:var(--surface2);color:var(--muted);font-size:var(--fs-sm)}.g-as-ph.v{aspect-ratio:16/9}
.g-as-b{padding:8px 10px;display:grid;gap:4px;justify-items:start}.g-as-b small{color:var(--muted);font-size:var(--fs-xs)}
.g-serp{font-family:Arial,system-ui,sans-serif;line-height:1.35;white-space:normal;max-width:420px;padding:6px 0}.g-serp small{display:block;color:var(--muted);font-size:var(--fs-xs)}.g-serp small b{font-weight:600;color:var(--head)}
.g-serp .t{color:#1a0dab;font-size:var(--fs-h3);display:block}.g-serp p{margin:2px 0 0;color:var(--muted);font-size:var(--fs-sm)}
:root[data-theme="dark"] .g-serp .t{color:#8AB4F8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .g-serp .t{color:#8AB4F8}}
.g-pth{width:34px;height:34px;border-radius:var(--r-input);object-fit:cover;background:var(--surface2);flex:none;display:inline-block}
.g-bar{display:grid;grid-template-columns:110px minmax(0,1fr) 90px;gap:10px;align-items:center;font-size:var(--fs-sm);padding:4px 0}.g-bar .num{text-align:right;color:var(--muted)}
.g-bb{height:10px;border-radius:var(--r-pill);background:var(--line-soft);overflow:hidden}.g-bb i{display:block;height:100%;background:var(--goo)}
.g-hm{display:grid;grid-template-columns:24px repeat(24,minmax(0,1fr));gap:2px;font-size:var(--fs-label);color:var(--faint);align-items:center}.g-hm i{display:block;aspect-ratio:1;border-radius:2px;background:var(--goo)}
/* Plan del mes (P3, maqueta kepubli-plan-mes) */
.pl-empty{text-align:center;padding:40px 18px}.pl-empty .k-help{max-width:460px;margin:6px auto 14px}
.pl-pace{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;font-size:var(--fs-sm);color:var(--muted)}.pl-pace b{font-weight:600;color:var(--head)}
.pl-track{position:relative;height:6px;border-radius:var(--r-pill);background:var(--line-soft)}.pl-track i{position:absolute;inset:0 auto 0 0;border-radius:var(--r-pill);background:var(--bar)}
.pl-cb{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border-left:3px solid var(--violet);background:var(--violet-2);border-radius:0 var(--r-card) var(--r-card) 0;padding:12px 16px}
.pl-cb .k{font-size:var(--fs-xs);color:var(--violet);font-weight:600;white-space:nowrap;padding-top:1px}.pl-cb p{margin:0;font-size:var(--fs-body)}.pl-cb p b{font-weight:600;color:var(--head)}
.pl-w{color:var(--warn)}
.pl-t tr.pl-tot td{border-top:0;background:var(--accent-2);color:var(--head);height:40px}.pl-t tr.pl-tot td:first-child{font-weight:600;padding-left:12px;border-radius:9px 0 0 9px}.pl-t tr.pl-tot td:last-child{border-radius:0 9px 9px 0}.pl-t tr.pl-tot td.is-num{font-weight:600}
.pl-t tr.pl-gap td{height:8px;padding:0;border:0;background:transparent}
.pl-t tbody tr:not(.pl-sub):not(.pl-tot) td:first-child{font-weight:600;color:var(--head)}
.pl-t tr.pl-sub td{height:30px;font-size:var(--fs-sm);color:var(--muted)}.pl-sb{padding-left:48px!important}
.pl-src{display:inline-flex;align-items:center;gap:7px}.pl-src .lg{width:18px;height:18px}
.pl-car{border:0;background:none;width:18px;height:18px;padding:0;margin-left:-4px;color:var(--muted);font-size:var(--fs-label);transition:transform .15s;display:inline-grid;place-items:center}.pl-car.on{transform:rotate(90deg)}
.pl-prog{position:relative;height:6px;border-radius:var(--r-pill);background:var(--line-soft);min-width:110px}.pl-prog i{position:absolute;inset:0 auto 0 0;border-radius:var(--r-pill);background:var(--bar)}
.pl-prog i.pr{background:transparent!important;border:1px dashed var(--faint);border-left:0;height:6px;top:0;border-radius:0 99px 99px 0}.pl-prog s{position:absolute;top:-4px;width:2px;height:14px;background:var(--head);border-radius:1px}
.pl-chart{position:relative}.pl-chart svg{display:block;width:100%;height:auto;overflow:visible}
.pl-tip{position:absolute;display:none;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-input);box-shadow:var(--shadow);padding:8px 10px;font-size:var(--fs-sm);min-width:170px;z-index:5}.pl-tip b{display:block;color:var(--head);font-weight:600;margin-bottom:2px}.pl-tip div{display:flex;justify-content:space-between;gap:12px}
.pl-line{font-size:var(--fs-sm);color:var(--muted);margin-top:0}
.pl-ov{position:fixed;inset:0;background:rgba(10,14,22,.35);opacity:0;pointer-events:none;transition:.2s;z-index:80}body.pl-ed .pl-ov{opacity:1;pointer-events:auto}
.pl-dr{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--surface);border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.12);transform:translateX(100%);transition:.25s;z-index:81;display:flex;flex-direction:column}body.pl-ed .pl-dr{transform:none}
.pl-dr header{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.pl-dr header button{border:0;background:none;font-size:18px;color:var(--muted)}
.pl-bd{padding:6px 18px 18px;overflow:auto;flex:1}
.pl-dr footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}
.pl-fld{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:10px;align-items:center;padding:6px 0}.pl-fld>span{font-size:var(--fs-table)}.pl-fld small{display:block;font-size:var(--fs-sm);color:var(--muted)}
.pl-fld input,.pl-sr input{height:33px;border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface);padding:0 10px;text-align:right;min-width:0;width:100%}
.pl-cur{position:relative;display:block;min-width:0}.pl-cur::before{content:attr(data-sym);position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:var(--fs-table);pointer-events:none}.pl-cur input{padding-left:26px!important}.pl-cur[data-sym="R$"] input{padding-left:34px!important}.pl-cur[data-sym="US$"] input{padding-left:42px!important}
.pl-fxh{grid-column:1/-1;text-align:right;color:var(--muted);font-size:var(--fs-sm);margin-top:-4px}.pl-fxh:empty{display:none}.pl-sr+.pl-fxh{display:block;padding-top:4px}
.pl-og{display:block;color:var(--muted);font-size:var(--fs-sm);line-height:1.2}
.pl-ig{display:flex;min-width:0;border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface);overflow:hidden}.pl-ig:focus-within{border-color:var(--accent)}
.pl-ig .pl-igc{flex:0 0 64px;width:64px;height:33px;border:0;border-right:1px solid var(--line);background:var(--bg);color:var(--muted);padding:0 6px;font-size:var(--fs-table)}
.pl-ig input{flex:1 1 auto;min-width:160px!important;border:0!important;border-radius:0!important;text-align:right}
.pl-fld:has(.pl-ig){grid-template-columns:minmax(0,1fr) 232px}.pl-sr2{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:10px;align-items:center;padding:3px 0;font-size:var(--fs-table)}.pl-sr2 output{text-align:right;color:var(--muted);padding-right:10px}.pl-sr2 output.bad{color:var(--neg)}
@media (max-width:640px){.pl-fld:has(.pl-ig),.pl-sr2{grid-template-columns:1fr}}
.fx-og{display:block;color:var(--muted);font-size:var(--fs-sm);font-weight:400;line-height:1.2}
.pl-blk{padding:4px 0 8px;border-bottom:1px solid var(--line-soft);margin-bottom:6px}
.pl-chk{display:flex;gap:8px;align-items:flex-start;padding:10px 0;font-size:var(--fs-table)}.pl-chk.sm{padding:2px 0 6px;font-size:var(--fs-sm)}.pl-chk input{margin-top:3px}
.pl-spl{display:none;margin:-2px 0 8px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--r-ctl);background:var(--surface2)}.pl-spl.on{display:block}
.pl-sr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:center;padding:3px 0}.pl-sr.h{font-size:var(--fs-xs);color:var(--faint);font-weight:600}.pl-sr output{text-align:right;font-size:var(--fs-table);color:var(--muted);padding-right:4px}.pl-sr output.bad{color:var(--neg)}
@media (max-width:640px){.pl-pace{grid-template-columns:1fr}.pl-fld{grid-template-columns:1fr}}
/* ── Plan v2 + 🧠 Proyecciones (21/10, mockups/kepubli-plan-v2.html) ── */
.pv{display:grid;gap:16px}.pv>*{min-width:0;margin:0}
.pv-top{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.pv-top:empty{display:none}
.pv-chip{height:32px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);padding:0 12px;font-size:var(--fs-sm);color:var(--ink);white-space:nowrap;cursor:pointer}
.pv-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-pill);padding:2px;background:var(--surface)}
.pv-seg button{border:0;background:none;border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-sm);color:var(--muted);cursor:pointer}
.pv-seg button.on{background:var(--head);color:var(--surface);font-weight:var(--fw-semi)}
.pv-note{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-card);padding:9px 12px 9px 14px;font-size:var(--fs-sm);color:var(--muted)}
.pv-note b{color:var(--head);font-weight:var(--fw-semi)}.pv-note button{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:3px 12px;font-size:var(--fs-xs);white-space:nowrap;cursor:pointer}
.pv-pace{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;font-size:var(--fs-sm);color:var(--muted)}.pv-pace b{color:var(--head);font-weight:var(--fw-semi)}
/* el Cerebro: tarjeta oscura con halo violeta (colores del Cerebro fijos, como en los universos) */
.pv-cb{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center;background:radial-gradient(80% 140% at 0% 50%,rgba(124,58,237,.35),transparent 60%),#0F1424;color:#E4E9F1;border-radius:var(--r-card);padding:14px 18px 14px 14px;box-shadow:var(--shadow)}
.pv-cb canvas{width:92px;height:92px;display:block}.pv-cb .k{font-size:var(--fs-xs);color:#C4B5FD;font-weight:var(--fw-semi);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.pv-cb ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}.pv-cb li{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:baseline;font-size:var(--fs-body);color:#C9D1DE}
.pv-cb li i{width:8px;height:8px;border-radius:50%;display:block;transform:translateY(-1px)}.pv-cb b{color:#fff;font-weight:var(--fw-semi)}
/* tarjetas grandes */
.pv-hero{display:grid;grid-template-columns:1fr;gap:16px}
.pv-hc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:28px;row-gap:8px;align-items:center;padding:14px 20px}.pv-hc .pv-hh{grid-column:1/-1}.pv-hc .pv-two{grid-row:2/4}
.pv-hh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.pv-hh h2{margin:0;font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--head);display:flex;gap:8px;align-items:center}.pv-hh .lg{width:18px;height:18px}
.pv-hsrc{font-size:var(--fs-sm);font-weight:var(--fw-regular);color:var(--muted)}.pv-hsrc::before{content:"· "}
.pv-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pv-fig{border-radius:10px;padding:9px 14px;min-width:0;display:grid;gap:1px}.pv-fig.now{background:var(--accent-2)}.pv-fig.end{border:1px dashed var(--proj)}
.pv-fig small{display:block;font-size:var(--fs-xs);color:var(--muted)}.pv-fig b{display:block;font-size:var(--fs-kpi);font-weight:var(--fw-regular);color:var(--head);line-height:1.25;white-space:nowrap}
.pv-og{font-size:var(--fs-xs);color:var(--faint);display:flex;gap:4px;align-items:center}
.pv-cv{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;border:1px solid var(--faint);font-size:var(--fs-label);color:var(--faint);cursor:help}
.pv-bul{display:grid;gap:5px}.pv-bt{position:relative;height:14px;border-radius:9px;background:var(--line-soft)}
.pv-bt .p{position:absolute;inset:0 auto 0 0;border-radius:9px;background:repeating-linear-gradient(135deg,var(--proj) 0 5px,transparent 5px 9px);border:1px solid var(--proj)}
.pv-bt .r{position:absolute;inset:0 auto 0 0;border-radius:9px;background:var(--accent)}
.pv-bt .tick{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--head);border-radius:1px}.pv-bt .goal{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--faint)}
.pv-bl{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--muted);gap:8px}.pv-bl span:last-child{text-align:right}
.pv-hf{display:grid;gap:2px;font-size:var(--fs-sm);color:var(--muted)}.pv-hf b{color:var(--head);font-weight:var(--fw-semi)}.pv-hf b.k-up{color:var(--pos)}.pv-hf b.pl-w{color:var(--warn)}.pv-hf b.k-down{color:var(--neg)}
/* secciones y tablas */
.pv-sh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.pv-sh h2{margin:0;font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--head)}.pv-sh p{margin:0;font-size:var(--fs-sm);color:var(--muted)}
.pv-t th small{display:block;font-weight:var(--fw-regular)}.pv-t td{height:40px}.pv-t td .sub{display:block;font-size:var(--fs-label);color:var(--faint);line-height:1.2}
.pv-t th.pv-key,.pv-t td.pv-key{background:var(--accent-2)}.pv-t th.pv-key{color:var(--accent);border-radius:8px 8px 0 0}.pv-t td.pv-key{color:var(--head)}.pv-t td.pv-key.k-down{color:var(--neg)}.pv-t td.pv-key.pl-w{color:var(--warn)}.pv-t td.pv-key.k-up{color:var(--pos)}
.pv-t tbody tr:last-child td.pv-key{border-radius:0 0 8px 8px}.pv-t td b{font-weight:var(--fw-semi);color:var(--head)}
.pv-t tr.pv-subr td{height:32px;font-size:var(--fs-sm);color:var(--muted)}.pv-sb{padding-left:36px!important}
.pv-em{font-style:normal;font-size:var(--fs-xs);color:var(--faint);margin-left:4px}
.pv-foot{margin:10px 0 0;font-size:var(--fs-xs);color:var(--faint)}
/* gráfico */
.pv-cc{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pv-svg{width:100%;height:auto;display:block}.pv-svg text{font-family:var(--font);font-size:11px;fill:var(--muted)}
.pv-leg{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}.pv-leg span{display:inline-flex;gap:7px;align-items:center}
.pv-sw{width:14px;height:10px;border-radius:2px;display:inline-block}.pv-sw.r{background:var(--accent)}.pv-sw.p{background:repeating-linear-gradient(135deg,var(--proj) 0 3px,transparent 3px 6px);border:1px solid var(--proj)}
.pv-ln{width:18px;height:0;border-top:2px dashed var(--faint);display:inline-block}.pv-ln.need{border-top:2px solid var(--head)}.pv-ln.goal{border-top:2px dotted var(--pos)}.pv-ln.acc{border-top:2.5px solid var(--accent)}.pv-ln.proj{border-top-color:var(--proj)}
/* ¿Cuánto nos cuesta vender? */
.pv-costs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.pv-ct{border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:12px;align-content:start}
.pv-cth{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pv-cth h3{margin:0;font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--head)}
.pv-big{font-size:var(--fs-kpi);color:var(--head);line-height:1.1}.pv-big small{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:3px}
.pv-cbars{display:grid;gap:7px}.pv-cbr{display:grid;grid-template-columns:96px minmax(0,1fr) 88px;gap:10px;align-items:center;font-size:var(--fs-sm);color:var(--muted)}
.pv-cbr b{font-weight:var(--fw-regular);color:var(--head);text-align:right;white-space:nowrap}
.pv-cbt{height:10px;border-radius:5px;background:var(--line-soft);overflow:hidden}.pv-cbt i{display:block;height:100%;border-radius:5px}
.pv-cbt i.pl{background:var(--bar)}.pv-cbt i.hoy{background:var(--accent)}.pv-cbt i.pr{background:repeating-linear-gradient(135deg,var(--proj) 0 5px,transparent 5px 9px);box-shadow:inset 0 0 0 1px var(--proj)}
.pv-ct p{margin:0;font-size:var(--fs-sm);color:var(--muted)}.pv-ct p b{color:var(--head);font-weight:var(--fw-semi)}
/* 🧠 de la pestaña Proyecciones: late suave (quieto con movimiento reducido) */
.k-tabs .tbb{display:inline-block;line-height:1;margin-right:4px;animation:tbp 2.4s ease-in-out infinite}
@keyframes tbp{50%{transform:scale(1.12);filter:drop-shadow(0 0 4px #A78BFA)}}
@media (prefers-reduced-motion:reduce){.k-tabs .tbb{animation:none}}
@media (max-width:860px){.pv-hc{grid-template-columns:minmax(0,1fr)}.pv-hc .pv-two{grid-row:auto}.pv-hf{border-top:1px solid var(--line-soft);padding-top:12px}}
@media (max-width:700px){.pv-pace{grid-template-columns:1fr auto}.pv-pace .pl-track{grid-column:1/-1;order:3}.pv-hs{display:none}}
@media (max-width:560px){.pv-cb{grid-template-columns:1fr}.pv-cb canvas{width:72px;height:72px}.pv-two{grid-template-columns:1fr}}
/* 🧠 Proyecciones · la calculadora */
.card.pj-pad{padding:22px 24px}.pj-pad .pv-sh{margin-bottom:16px}.pj-pad .pv-sh p b{color:var(--head);font-weight:var(--fw-semi)}
.pj-cg{display:grid;grid-template-columns:1fr;gap:20px}
.pj-cin{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:32px;row-gap:10px;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.pj-cin>label,.pj-cin .pj-amt,.pj-cin>input,.pj-cin .pj-rg{grid-column:1}.pj-cin .pj-quick,.pj-cin .pj-note{grid-column:2}.pj-cin .pj-quick{grid-row:2/4;align-self:center}.pj-cin .pj-note{grid-row:4}
.pj-cin label{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-semi)}
.pj-amt{color:var(--head);display:flex;gap:8px;align-items:center}.pj-amt>span:first-child{font-size:var(--fs-kpi-sm);color:var(--muted)}
.pj-amt input{font:inherit;font-size:var(--fs-kpi);font-weight:var(--fw-bold);color:var(--head);border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:2px 10px;width:min(240px,100%);font-variant-numeric:tabular-nums}
.pj-amt input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.pj-ed{font-size:var(--fs-xs);color:var(--faint)}
.pj-cin input[type=range]{width:100%;accent-color:var(--accent)}
.pj-rg{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--faint);margin-top:-4px}
.pj-quick{display:flex;flex-wrap:wrap;gap:6px}.pj-quick button{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:4px 11px;font-size:var(--fs-xs);cursor:pointer}
.pj-quick button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-2)}
.pj-note{margin:0;font-size:var(--fs-sm);color:var(--muted)}.pj-note b{color:var(--head);font-weight:var(--fw-semi)}.pj-lead{margin:-6px 0 12px;font-size:var(--fs-table);color:var(--ink)}
/* configuración de escenarios (plegada) */
.pj-cfgd{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.pj-cfgd>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--head)}
.pj-cfgd>summary::-webkit-details-marker{display:none}.pj-cfgd>summary::after{content:"▾";color:var(--muted);margin-left:auto}.pj-cfgd[open]>summary::after{content:"▴"}
.pj-cfgd>summary small{font-weight:var(--fw-regular);font-size:var(--fs-xs);color:var(--muted)}
.pj-cfg{display:grid;padding:0 16px 12px}
.pj-cfgi{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--surface2);border-radius:8px;padding:10px 12px;margin-bottom:6px}.pj-cfgi p{margin:0;font-size:var(--fs-sm);color:var(--muted)}.pj-cfgi b{color:var(--head);font-weight:var(--fw-semi)}
.pj-rst{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);padding:5px 12px;font-size:var(--fs-xs);white-space:nowrap;cursor:pointer}
.pj-grp{font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:var(--fw-semi);padding:14px 0 4px}
.pj-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.3fr);gap:20px;align-items:center;padding:10px 0;border-top:1px solid var(--line-soft)}
.pj-row.hdr{border-top:0;padding:4px 0;font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:var(--fw-semi)}
.pj-row b{font-size:var(--fs-table);color:var(--head);font-weight:var(--fw-semi)}.pj-row small{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:1px}
.pj-row em{font-style:normal;font-size:var(--fs-sm);color:var(--ink);line-height:1.4;font-variant-numeric:tabular-nums}.pj-row em b{font-size:inherit}
.pj-row .pv-seg{justify-self:start}.pj-row input[type=range]{width:100%;accent-color:var(--accent)}
.pj-rl{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center}
.pj-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-2);color:var(--accent);font-style:normal}
.pj-how{margin-top:4px}.pj-how summary{cursor:pointer;font-size:var(--fs-xs);color:var(--accent);list-style:none;display:inline}.pj-how summary::-webkit-details-marker{display:none}.pj-how summary::before{content:"ⓘ "}
.pj-how p{margin:6px 0 0;font-size:var(--fs-xs);color:var(--ink);background:var(--surface2);border-radius:8px;padding:8px 10px;max-width:56ch}
.pj-dl{display:block;font-size:var(--fs-xs);margin-top:2px}.pj-dl.def{color:var(--faint)}
.pj-chg{font-size:var(--fs-label);font-weight:var(--fw-semi);color:var(--accent);background:var(--accent-2);border-radius:var(--r-pill);padding:1px 7px;margin-left:6px}
.pj-imp{border-top:1px solid var(--line-soft);padding-top:12px;margin-top:4px}.pj-imp>b{font-size:var(--fs-table);color:var(--head)}.pj-imp>small{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--muted)}
.pj-ir{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line-soft);font-size:var(--fs-table)}.pj-ir:first-child{border-top:0}.pj-ir p{margin:0;color:var(--ink)}.pj-ir b{font-weight:var(--fw-semi);color:var(--head)}.pj-ir .k-pill{justify-self:start}
/* escenarios en filas y stock */
.pj-srows th small,.pj-stk th small{display:block;font-weight:var(--fw-regular)}
.pj-srows td{height:44px;font-size:var(--fs-table)}.pj-srows td:first-child{font-weight:var(--fw-semi);color:var(--head)}
.pj-srows tr.mid td{background:var(--accent-2)}.pj-srows tr.mid td:first-child{border-radius:8px 0 0 8px;padding-left:10px}.pj-srows tr.mid td:last-child{border-radius:0 8px 8px 0}
.pj-srows .k-pill{margin-left:6px}.pj-big{font-size:var(--fs-h3);color:var(--head);font-weight:var(--fw-semi)}
.pj-oc{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.pj-oc i{display:inline-block;width:56px;height:6px;border-radius:3px;background:var(--line-soft);position:relative;overflow:hidden}.pj-oc i b{position:absolute;inset:0 auto 0 0;border-radius:3px}
.pj-ls{color:var(--neg)}
.pj-stk td{height:40px;font-size:var(--fs-sm)}.pj-stk .pj-w{color:var(--neg);font-weight:var(--fw-semi)}
.pj-pr{display:inline-flex;align-items:center;gap:8px;min-width:0}.pj-pr small{display:block;font-size:var(--fs-code);color:var(--faint)}
.pj-th{width:28px;height:28px;border-radius:6px;flex:none;object-fit:cover;display:grid;place-items:center;background:var(--surface2);color:var(--muted);font-size:var(--fs-label);font-weight:var(--fw-bold)}
.pj-curve{min-height:220px}
@media (max-width:860px){.pj-cin{grid-template-columns:1fr}.pj-cin .pj-quick,.pj-cin .pj-note{grid-column:1;grid-row:auto}}
@media (max-width:760px){.pj-row{grid-template-columns:1fr;gap:6px}.pj-row.hdr{display:none}.pj-cfgi{flex-direction:column;align-items:flex-start}}
@media (max-width:560px){.card.pj-pad{padding:16px}}
/* ── Plan v2 · ajustes finales 21/10 (mockups/kepubli-plan-v2.html) ── */
/* aviso de horario o chip, nunca los dos; sin fila de chips vacía */
.pv-note[hidden],.pv-chip[hidden]{display:none}.pv-top:not(:has(>:not([hidden]))){display:none}
/* menú lateral entero en escritorio aunque la página sea larga (modo claro: se veía cortado) */
@media (min-width:761px){body:not(.is-uni) .app{background:linear-gradient(90deg,var(--surface) 249px,var(--line) 249px 250px,transparent 250px)}.side{align-self:start}}
/* dibujos animados (objeto DW de la maqueta) */
.pv .dw{flex:none;display:block}.pv .dw *{transform-box:fill-box}
.pv .dw .grow{transform-origin:50% 100%;animation:dgrow 1.4s cubic-bezier(.2,.8,.2,1) both}
.pv .dw .dropin{animation:ddrop .5s cubic-bezier(.3,1.4,.5,1) both}
.pv .dw .draw{stroke-dasharray:var(--l,300);stroke-dashoffset:var(--l,300);animation:ddraw 1.6s ease forwards}
.pv .dw .wave{transform-origin:0% 50%;animation:dwave 1.8s ease-in-out infinite}
.pv .dw .tilt{transform-origin:50% 50%;animation:dtilt 1.4s cubic-bezier(.3,1.4,.5,1) both}
.pv .dw .drip{animation:ddrip 1.6s ease-in infinite}.pv .dw .fall{animation:dfall 1.2s ease-in both}
.pv .dw .ring{animation:dring 1.4s cubic-bezier(.2,.8,.2,1) both}.pv .dw .dcur{animation:dblink 1s steps(2) infinite}
.pv .dw [transform],.pv .dw .needle{transform-box:view-box!important;transform-origin:0 0!important}
@keyframes dgrow{from{transform:scaleY(0)}}@keyframes ddrop{from{opacity:0;transform:translateY(-14px)}}@keyframes ddraw{to{stroke-dashoffset:0}}
@keyframes dwave{50%{transform:skewY(6deg) scaleX(.94)}}@keyframes dtilt{from{transform:rotate(0)}}@keyframes dring{from{stroke-dashoffset:var(--c)}}@keyframes dblink{50%{opacity:0}}
@keyframes ddrip{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
@keyframes dfall{0%{transform:translateY(0) rotate(0)}60%{transform:translateY(0) rotate(0)}100%{transform:translateY(22px) rotate(25deg);opacity:.25}}
@media (prefers-reduced-motion:reduce){.pv .dw *{animation:none!important;stroke-dashoffset:0!important}}
/* las 3 tarjetas, más compactas: dibujo de 64×44 y número de 19px */
.pv-hero{gap:10px}.pv-hc{padding:10px 16px;row-gap:4px}.pv-hh h2{font-size:var(--fs-h3)}.pv-hf{font-size:var(--fs-xs)}.pv-bul{gap:3px}
.pv-two{grid-template-columns:64px 1fr 1fr;align-items:center;gap:10px}.pv-two .dw{width:64px;height:44px}.pv-two .pv-fig{padding:7px 12px}.pv-fig b{font-size:19px}
@media (max-width:560px){.pv-two{grid-template-columns:1fr 1fr}.pv-two .dw{display:none}}
/* tablas estilo listado: filas separadas y compactas, Proyectado y % al final */
.pv .lst{border-collapse:separate;border-spacing:0 4px;margin-top:-4px}
.pv .lst thead th{padding-bottom:2px;vertical-align:bottom}.pv .lst th small{margin-top:2px}
.pv .lst tbody td{height:42px;padding-top:2px;padding-bottom:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);transition:background .15s}
.pv .lst tbody td:first-child{border-left:1px solid var(--line);border-radius:10px 0 0 10px;padding-left:14px}
.pv .lst tbody td:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0;padding-right:14px}
.pv .lst tbody tr:hover td{background:var(--surface2)}.pv .lst tbody td.pv-key,.pv .lst tbody tr:hover td.pv-key{background:var(--accent-2)}
.pv .lst th.pv-key{border-radius:8px 8px 0 0}.pv .lst tbody tr:last-child td.pv-key{border-radius:0}.pv .lst tbody td.pv-key:last-child{border-radius:0 10px 10px 0}
.pv .lst tr.pv-subr td{height:30px;border-color:transparent;background:none;font-size:var(--fs-sm)}.pv .lst tr.pv-subr td:last-child{border-radius:0}.pv .lst tr.pv-subr:hover td{background:none}.pv .lst tr.pv-subr td.pv-key{background:var(--accent-2)}
@media (max-width:700px){.pv .pv-hm{display:none}}
/* ¿Cuánto nos cuesta vender?: el cartel siempre debajo del título, con la balanza */
.pv-ct{grid-template-rows:auto auto auto 1fr;align-content:stretch}.pv-ct .pv-cth{flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:6px;min-height:68px}.pv-ct .pv-cth h3{white-space:nowrap}
.pv-dwl{display:flex;gap:10px;align-items:center}.pj-row .pv-dwl .dw{width:46px;height:40px}.pv-cth .dw{width:52px;height:36px}.pv-shd{display:flex;align-items:center;gap:12px}.pv-sh .dw{width:64px;height:44px}
/* calculadora de inversión (#calcin de la maqueta): Ya invertido + Lo que falta = Total */
.pj-calc{display:grid;gap:18px;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.pj-calc .pj-ct{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--head);display:flex;align-items:center;gap:8px}.pj-calc .pj-ct .dw{width:28px;height:28px}
.pj-eq{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr) auto minmax(0,1fr);gap:10px;align-items:stretch;margin-top:4px}
.pj-op{align-self:center;font-size:var(--fs-kpi);font-weight:var(--fw-semi);color:var(--faint)}
.pj-eqb{display:grid;gap:4px;align-content:start;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--surface)}
.pj-eqb .k{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--muted)}.pj-eqb .k em{font-style:normal;font-weight:var(--fw-regular);color:var(--faint)}
.pj-eqb>b{font-size:var(--fs-kpi);font-weight:var(--fw-semi);color:var(--head);line-height:1.3;font-variant-numeric:tabular-nums}
.pj-eqb small{font-size:var(--fs-xs);color:var(--faint)}.pj-eqb small b{color:var(--head);font-size:var(--fs-xs)}
.pj-eqb.fix{background:transparent;border-style:dashed}.pj-eqb.fix>b{color:var(--muted)}
.pj-eqb.edit{border:2px solid var(--accent);box-shadow:0 0 0 3px var(--accent-2)}.pj-eqb.edit .k{color:var(--accent)}.pj-eqb.tot{background:var(--surface2)}
.pj-eqb .pj-amt{display:flex;align-items:center;gap:0}.pj-eqb .pj-amt>span:first-child{font-size:var(--fs-kpi-sm);color:var(--muted);margin-right:4px}
.pj-eqb .pj-amt input{border:0;background:transparent;padding:0;width:100%;font-size:var(--fs-kpi);outline:none!important}
.pj-cr{display:grid;gap:10px}.pj-slw{position:relative;padding-top:10px}
.pj-ticks{position:absolute;left:10px;right:10px;top:0;height:10px;pointer-events:none}.pj-ticks span{position:absolute;top:0;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--c)}
.pj-calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--accent) var(--p,50%),var(--line-soft) var(--p,50%));cursor:pointer;margin:6px 0}
.pj-calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.pj-calc input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}
.pj-calc .pj-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pj-calc .pj-quick button{display:grid;grid-template-columns:auto 1fr;column-gap:7px;row-gap:1px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;transition:border-color .15s,background .15s}
.pj-calc .pj-quick button:hover{border-color:var(--accent)}.pj-calc .pj-quick button i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.pj-calc .pj-quick button b{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--head)}.pj-calc .pj-quick button small{grid-column:2;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.pj-calc .pj-quick button.on{border-color:var(--accent);background:var(--accent-2);box-shadow:inset 0 0 0 1px var(--accent)}
@media (max-width:980px){.pj-eq{grid-template-columns:1fr}.pj-op{justify-self:center;font-size:var(--fs-kpi-sm);line-height:1}.pj-calc .pj-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* engranaje de la configuración: gira despacio, más rápido al pasar el mouse; abierta, azul fuerte */
.pj-cfgt{display:flex;align-items:center;gap:10px;font-size:var(--fs-h3)}
.pj-gico{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--accent-2);color:var(--accent);flex:none}
.pj-gico svg{animation:gspin 8s linear infinite}.pj-cfgd>summary:hover .pj-gico svg{animation-duration:2s}.pj-cfgd[open] .pj-gico{background:var(--accent);color:#fff}
@keyframes gspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.pj-gico svg{animation:none}}
/* encabezados: la palabra arriba y la aclaración chica abajo, con espacio */
.pj-pad .k-table th{vertical-align:bottom}.pj-pad .k-table th small{display:block;margin-top:2px}
/* ⓘ con cartel (Se pierde por stock, Reposición) */
.pj-tip{position:relative;display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--faint);font-size:var(--fs-label);color:var(--muted);cursor:help;margin-left:3px;font-weight:var(--fw-semi);vertical-align:middle}
/* el contenido queda escrito en el ícono; se muestra en la capa flotante .pj-tipf (web/tipfloat.js) */
.pj-tip>span{display:none!important}
.pj-tipf{position:fixed;z-index:400;width:270px;max-width:calc(100vw - 16px);white-space:normal;text-align:left;background:var(--head);color:var(--surface);font-weight:var(--fw-regular);font-size:var(--fs-xs);line-height:1.4;border-radius:8px;padding:10px 12px;box-shadow:var(--shadow-pop)}
.pj-tipf[hidden]{display:none}.pj-tipf b{font-weight:var(--fw-semi)}.pj-tipf .tt{display:block;font-weight:var(--fw-bold);margin:8px 0 2px}.pj-tipf .tt:first-child{margin-top:0}
.pj-tipcta{display:block;width:100%;margin-top:10px;border:0;border-radius:6px;padding:6px 10px;background:var(--accent);color:#fff;font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semi);cursor:pointer;text-align:center}.pj-tipcta:hover{filter:brightness(1.1)}
.pj-flash{animation:pjflash 1.6s ease}@keyframes pjflash{0%,40%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
/* reposición por producto */
.pj-rpw{display:inline-flex;align-items:center;gap:3px;color:var(--muted)}
.pj-rp{width:46px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--head);font:inherit;font-size:var(--fs-sm);text-align:right}.pj-rp:focus{outline:2px solid var(--accent);border-color:var(--accent)}
@media (max-width:700px){.pj-pad .pj-hs,.pj-pad .pj-hm{display:none}}
