:root{
  --bg:#faf8f5;--card:#fff;--ink:#1a1a1a;--ink2:#525258;--muted:#7b7b86;
  --line:#ececec;--line-soft:#f5f5f5;--accent:#283593;--accent-soft:#eaecf9;
  --warm:#f0ebe3;--rose:#c0394a;--amber:#a86518;--green:#157a3a;--blue:#2563eb;--violet:#7c3aed;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,"Inter",system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:focus-visible{outline:3px solid #4f63df;outline-offset:3px}
[hidden]{display:none!important}
.num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
header{display:flex;align-items:center;justify-content:space-between;padding:16px 36px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:10}
.brand{font-weight:700;font-size:15px;display:flex;align-items:center;gap:7px}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.brand .badge{font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:6px;margin-left:4px}
nav{display:flex;gap:2px;flex-wrap:wrap}
nav button{font-family:inherit;font-size:13px;font-weight:500;color:var(--ink2);border:none;background:none;cursor:pointer;padding:7px 13px;border-radius:9px}
nav button.on{background:var(--ink);color:#fff}
nav button:not(.on):hover{background:var(--warm)}
.pending-badge{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border:1px solid currentColor;border-radius:999px;padding:1px 5px;margin-left:4px;vertical-align:1px}
.crm-pending{font-size:12px;color:#70470f;background:#fff7e8;border:1px solid #efd6a8;border-radius:10px;padding:9px 12px;margin:0 0 16px}
.who{font-size:12.5px;color:var(--muted)}
main{max-width:1240px;margin:0 auto;padding:34px 48px 80px}
.view{display:none}.view.on{display:block;animation:fade .25s}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.loading{text-align:center;color:var(--muted);padding:80px 0;font-size:14px}
.fresh{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.fresh span{font-size:12px;color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 10px}
.fresh .ok{color:var(--green);border-color:#b9dfc6}.fresh .bad{color:var(--rose);border-color:#efc1c7}
.global-freshness{margin:34px 0 6px;border-top:1px solid var(--line);padding-top:14px}
.global-freshness .fresh{margin:0}
.global-freshness .fresh.compact{display:flex;justify-content:center;gap:7px;align-items:center;font-size:12px;color:var(--muted);background:none;border:none;padding:0}
.global-freshness .fresh.compact .ok{color:var(--green);font-weight:700}

.greet{font-size:15px;color:var(--muted);margin-bottom:2px}.greet b{color:var(--ink2);font-weight:600}
.say{font-size:25px;font-weight:600;line-height:1.4;letter-spacing:-.02em;margin:6px 0 8px;max-width:780px}
.say .up{color:var(--green)}.say .down{color:var(--rose)}.say b{color:var(--accent);font-weight:800}
.sayby{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px;margin-bottom:26px}
.sayby .av{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#283593,#1a237e);color:#fff;font-size:11px;display:grid;place-items:center;font-weight:700}

.ask{margin-bottom:32px}
.ask.compact{margin-bottom:22px}.ask.compact .askbar{padding:9px 14px;border-width:1px;box-shadow:none}.ask.compact .askbar input{font-size:14px}
.askbar{display:flex;align-items:center;gap:11px;background:var(--card);border:1.5px solid var(--accent);border-radius:14px;padding:13px 16px;box-shadow:0 4px 18px rgba(13,148,136,.08)}
.askbar .ico{color:var(--accent);font-size:15px}
.askbar input{flex:1;border:none;outline:none;font-family:inherit;font-size:15px;background:none;color:var(--ink)}
.askbar input::placeholder{color:var(--muted)}
.askbar .send{font-family:inherit;font-size:13px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:9px;padding:8px 14px;cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.chip{font-family:inherit;font-size:12.5px;color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer}
.chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.answer{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:17px 19px;display:none}
.answer.show{display:block;animation:fade .25s}
.answer .q{font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:9px}.answer .q .you{color:var(--muted);margin-right:6px}
.answer .a{font-size:14px;line-height:1.6;color:var(--ink);display:flex;gap:9px}
.answer .a .av{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#283593,#1a237e);color:#fff;font-size:11px;display:grid;place-items:center;font-weight:700;flex-shrink:0;margin-top:1px}
.answer .prev{font-size:11.5px;color:var(--muted);margin-top:11px;border-top:1px solid var(--line-soft);padding-top:9px}

.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:34px}
.k{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 22px;cursor:pointer;transition:.14s;text-align:left}
.k:hover{box-shadow:0 6px 22px rgba(0,0,0,.05);transform:translateY(-1px)}
.k .kl{font-size:12.5px;color:var(--muted);margin-bottom:8px}.k .kv{font-size:30px;font-weight:700}
.k .kf{font-size:12px;margin-top:5px;color:var(--ink2)}.delta.up{color:var(--green);font-weight:700}.delta.down{color:var(--rose);font-weight:700}
.sec{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}

.cards{display:flex;flex-direction:column;gap:11px;margin-bottom:34px}
/* Inicio en 2 columnas: contenido + insights al costado (pedido CRYO) */
.inicio-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start}
.inicio-grid>*{min-width:0}
.inicio-side{position:sticky;top:18px}
.inicio-side .cards{margin-bottom:0;gap:10px}
.inicio-side .al{padding:13px 14px;border-radius:13px}
.inicio-side .al .ct{font-size:13.5px}
.inicio-side .al .cd{font-size:12px;line-height:1.45;margin-bottom:8px}
.inicio-side .al .acts{gap:6px}
.inicio-side .act{font-size:11.5px;padding:6px 11px}
@media(max-width:1000px){.inicio-grid{grid-template-columns:minmax(0,1fr)}.inicio-side{position:static}}
.al{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:16px 18px}
.al .top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.sev{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:6px;text-transform:uppercase;letter-spacing:.04em}
.sev.alta{background:#eaecf9;color:#283593}.sev.media{background:#fbeed6;color:var(--amber)}.sev.info{background:#dcf3e3;color:var(--green)}
.al .ct{font-size:15px;font-weight:600}.al .cd{font-size:13px;color:var(--ink2);line-height:1.5;margin-bottom:10px}
.al .acts{display:flex;gap:9px}
.act{font-family:inherit;font-size:13px;font-weight:600;border-radius:9px;padding:8px 15px;cursor:pointer;border:1px solid var(--line);background:none;color:var(--ink2)}
.act:hover{background:var(--warm)}.act.primary{background:var(--ink);color:#fff;border-color:var(--ink)}

details.more{border-top:1px solid var(--line);padding-top:20px;margin-bottom:10px}
details.more summary{font-size:14px;font-weight:600;color:var(--accent);cursor:pointer;list-style:none}
details.more summary::-webkit-details-marker{display:none}
.report{margin-top:16px;font-size:14px;line-height:1.7;color:var(--ink2);max-width:700px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 24px}
.report h2{font-size:13px;color:var(--accent);font-weight:700;margin:22px 0 7px;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.report h2:first-child{margin-top:0}
.report h2::before{content:"";width:5px;height:14px;background:var(--accent);border-radius:3px;display:inline-block}
.report p{margin:0 0 11px}.report strong{color:var(--ink);font-weight:700}
.report p:first-of-type{font-size:15px;color:var(--ink);line-height:1.6}
.report ol{margin:8px 0 4px;padding:0;list-style:none;counter-reset:idea}
.report ol li{position:relative;padding-left:32px;margin-bottom:9px;counter-increment:idea}
.report ol li::before{content:counter(idea);position:absolute;left:0;top:0;width:21px;height:21px;background:var(--accent);color:#fff;border-radius:50%;font-size:11px;font-weight:700;display:grid;place-items:center}
.report ul{margin:6px 0 11px 18px}.report em{font-style:normal;color:var(--muted);font-size:12.5px}

.phead{margin-bottom:18px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.phead h1{font-size:23px;font-weight:700;letter-spacing:-.02em}.phead p{font-size:14px;color:var(--muted);margin-top:3px}
.phead .tools{display:flex;gap:8px}.tool{font-family:inherit;font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink2);border-radius:9px;padding:7px 13px;cursor:pointer}.tool:hover{background:var(--warm)}.tool.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.dlbtn{font-family:inherit;font-size:13px;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px rgba(40,53,147,.18);white-space:nowrap}
.dlbtn:hover{background:#1a237e}.dlbtn:disabled{opacity:.6;cursor:default}.dlbtn .dli{font-size:14px}

.panel{background:var(--card);border:1px solid var(--line);border-radius:15px;margin-bottom:12px;overflow:hidden}
.panel>summary{list-style:none;cursor:pointer;padding:17px 20px;display:flex;align-items:center;gap:14px}
.panel>summary::-webkit-details-marker{display:none}
.panel .pt{font-size:15px;font-weight:600;flex:1}.panel .pv{font-size:14px;font-weight:700;color:var(--ink2)}
.panel .chev{color:var(--muted);font-size:13px;transition:.2s}.panel[open] .chev{transform:rotate(90deg)}
.panel .body{padding:16px 20px 20px;border-top:1px solid var(--line);overflow-x:auto}
.panel.flash{animation:flash 1.4s ease}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(13,148,136,0)}18%{box-shadow:0 0 0 3px rgba(13,148,136,.45);border-color:var(--accent)}100%{box-shadow:0 0 0 0 rgba(13,148,136,0)}}

table{width:100%;border-collapse:collapse;font-size:13px}
.panel table{min-width:620px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6c73a6;font-weight:700;padding:7px 10px;border-bottom:1px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line-soft)}td.r,th.r{text-align:right}
.tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}.tag.meta{background:#eff6ff;color:var(--blue)}.tag.google{background:#fef3c7;color:#b45309}
.mini{font-size:12px;color:var(--muted);margin-bottom:14px}
.camp{padding:13px 2px;border-bottom:1px solid var(--line-soft)}.camp:last-of-type{border-bottom:none}
.camp-top{display:flex;align-items:center;gap:9px;margin-bottom:9px;flex-wrap:wrap}
.camp-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.cstatus{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 9px;margin-left:auto}
.cstatus.ef{background:#e3f5e9;color:#157a3a}.cstatus.ac{background:#eef0fb;color:#3a3f6b}.cstatus.ca{background:#fbeed6;color:#a86518}.cstatus.no{background:#eee;color:#888}
.camp-bar{height:6px;border-radius:4px;background:var(--warm);overflow:hidden;margin-bottom:10px}.camp-bar span{display:block;height:100%;border-radius:4px}
.camp-stats{display:flex;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.camp-stats .cst b{color:var(--ink);font-weight:700;font-size:13.5px}
.cpl.ef b{color:#157a3a}.cpl.ca b{color:#c0394a}.cpl.no b{color:#999}
.cdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 3px 0 6px;vertical-align:0}
.cdot.ef{background:#157a3a}.cdot.ac{background:#3a3f6b}.cdot.ca{background:#a86518}.cdot.no{background:#bbb}
.brow{display:grid;grid-template-columns:140px 1fr minmax(120px,max-content);gap:12px;align-items:center;padding:7px 0;font-size:13px;width:100%;border:0;background:transparent;text-align:left;font-family:inherit;color:inherit}
.brow .bl{color:var(--ink2);overflow-wrap:anywhere}.brow .bv{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:12.5px}
.bv .amt{color:var(--ink);font-weight:800}.bv .cx{color:var(--ink2);font-weight:600;font-size:11.5px}.bv .cx .u{color:var(--accent);font-weight:700}
.bv .amt,.vl .amt{color:var(--ink);font-weight:800}.bv .sec2,.vl .sec2{color:var(--accent);font-weight:700}
.al .cd b{color:var(--ink);font-weight:700}
.ybadge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--accent);border-radius:5px;padding:1px 6px;margin-left:7px;vertical-align:1.5px}
.yhalf{font-size:10px;color:var(--muted);font-weight:600;margin-left:4px}
/* rediseño de gráficas (16-jul): línea/pendiente/embudo + deltas por año */
.lchart{width:100%;max-width:640px;display:block}
.funnel-svg{filter:drop-shadow(0 1.5px 3px rgba(28,35,64,.22))}
/* Audiencia A1-A6: perfil, pastillas de costo, tira de 24 horas */
.aud-perfil{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 18px}
.apk{background:#fff;border:1px solid #e3e6ef;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(28,35,64,.05)}
.apk:hover{border-color:#c3c9d9}
.apk.static{cursor:default}
.apk-k{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.apk-v{display:block;font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--ink,#1c2340);margin:3px 0 2px}
.apk-f{display:block;font-size:12px;color:var(--muted)}
.apk-big{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:2px 0 2px}
.aud-gstats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 14px}
.ypill.mid{background:#eef1f6;color:#5a647e}
.ypill.flatg{background:#f0f2f7;color:#6b7490}
.hstrip{display:flex;gap:3px;align-items:flex-end;height:96px;max-width:640px;padding-top:18px}
.hstrip i{flex:1;border-radius:2px 2px 0 0;min-height:2px;position:relative;font-style:normal}
.hpico{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:800;color:#1a237e;white-space:nowrap}
.hfranjas{display:flex;max-width:640px;font-size:10.5px;color:var(--muted);margin-top:5px}
.hfranjas span{flex:1;text-align:center}
.hfranjas span.on{color:#2563eb;font-weight:700}
@media(max-width:760px){.aud-perfil{grid-template-columns:1fr 1fr}}
.spark{display:block;width:120px;height:30px;margin:4px 0 2px}
.ypill{display:inline-block;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:999px;margin-left:7px;vertical-align:1px;white-space:nowrap}
.ypill.up{background:#e7f6ee;color:#0d7a3f}
.ypill.down{background:#fdeeee;color:#b3452f}
.bar>span.encurso{border:1.5px dashed #2563eb;background:linear-gradient(90deg,#2563eb 0 90%,rgba(37,99,235,.28) 90%);box-sizing:border-box}
.lleg{display:flex;gap:16px;margin-top:8px;font-size:12px;color:var(--muted)}
.lleg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.yrow.rec .bl{font-weight:800;color:var(--ink)}.yrow.rec{background:linear-gradient(90deg,#f4f5fc,transparent);border-radius:8px}
.bar{height:8px;border-radius:5px;background:var(--warm);overflow:hidden}.bar span{display:block;height:100%;border-radius:5px}
/* reporte visual (one-pager) */
.rv-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.rv-tile{background:var(--card,#fff);border:1px solid var(--line);border-radius:13px;padding:14px 15px}
.rv-tl{font-size:11px;color:var(--muted);margin-bottom:5px}.rv-tv{font-size:23px;font-weight:800;letter-spacing:-.02em}.rv-tf{font-size:11px;color:var(--ink2);margin-top:2px}
.rv-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin:0 0 11px;display:flex;align-items:center;gap:8px}
.rv-sec::before{content:'';width:5px;height:14px;background:var(--accent);border-radius:3px}
.rv-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:15px;padding:16px 18px;margin-bottom:20px}
.rv-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}
.rv-arow{display:grid;grid-template-columns:72px 1fr 84px;gap:9px;align-items:center;margin-bottom:9px;font-size:12.5px}.rv-an{font-weight:600}.rv-av{text-align:right;font-weight:700;font-size:11.5px}
.rv-glab{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 7px}
.rv-abar{height:10px;border-radius:5px;background:var(--warm);overflow:hidden}.rv-abar span{display:block;height:100%;border-radius:5px}
/* Líneas de negocio · año vs año (estilo dashboard de la directora) */
.lineas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.linea-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 17px}
.linea-h{font-size:13px;font-weight:700;color:var(--ink2);display:flex;align-items:center;gap:7px;margin-bottom:6px}
.linea-h .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.linea-n{font-size:clamp(19px,5vw,33px);font-weight:800;letter-spacing:-.02em;line-height:1}
/* cifras largas: el tamaño baja por LONGITUD (la grid angosta las tarjetas aunque la ventana sea ancha) */
.linea-n.sm{font-size:clamp(17px,4vw,26px)}.linea-n.xs{font-size:clamp(15px,3.2vw,21px)}
.linea-d{font-size:13px;font-weight:700;margin-top:6px}.linea-d.up{color:#157a3a}.linea-d.down{color:#c0394a}.linea-d.flat{color:var(--muted)}
.linea-d span{color:var(--muted);font-weight:500;font-size:11px}
/* Ingresos vs Inversión (dos donas) */
.ivi-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ivi-col{background:var(--bg);border-radius:13px;padding:16px}
.ivi-t{font-size:13px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em;text-align:center;margin-bottom:10px}
.ivi-don{display:flex;justify-content:center;margin-bottom:8px}
.ivi-don path{transition:opacity .12s}.ivi-don path:hover{opacity:.82}
#cryoTip{position:fixed;z-index:9999;display:none;background:#1a1a1a;color:#fff;font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.25);white-space:nowrap}
#cryoTip{max-width:min(360px,calc(100vw - 16px));white-space:normal}
.skip{position:fixed;left:12px;top:8px;z-index:10000;background:#fff;color:var(--accent);padding:8px 12px;border-radius:8px;transform:translateY(-150%)}
.skip:focus{transform:none}
.ivi-leg{display:flex;align-items:center;gap:7px;font-size:12px;margin:4px 0}
.ivi-leg .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.ivi-leg .ivi-ll{color:var(--ink2);flex:1}.ivi-leg .ivi-lv{font-weight:600;font-variant-numeric:tabular-nums}
@media(max-width:600px){.ivi-grid{grid-template-columns:1fr}}
.rv-cap{font-size:12px;color:var(--ink2);margin-top:10px;line-height:1.5}
.rv-idea{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px;font-size:13.5px;line-height:1.5}.rv-idea:last-child{margin:0}
.rv-in{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;display:grid;place-items:center;margin-top:1px}
@media(max-width:680px){.rv-tiles{grid-template-columns:repeat(2,1fr)}.rv-two{grid-template-columns:1fr}}
/* tarjeta de cruce inversión vs ingreso */
.crz{padding:13px 0;border-bottom:1px solid var(--line-soft)}.crz:last-child{border-bottom:none}
.crz-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.crz-h .nm{font-size:14.5px;font-weight:700}
.crz-roi{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:7px;white-space:nowrap}
.crz-roi.good{background:#eaecf9;color:#283593}.crz-roi.warn{background:#fbeed6;color:#a86518}.crz-roi.neu{background:#eee;color:#888}
.crz-ch{font-size:11.5px;color:var(--muted);margin:0 0 6px 128px}.crz-ch .tag{font-size:10px;padding:1px 6px}
.yoy-ch{margin-left:152px} /* alinear con la barra de .brow (140px col + 12px gap); en móvil lo ajusta la media query */
.crz-line{display:grid;grid-template-columns:128px 1fr 168px;gap:11px;align-items:center;margin-bottom:6px;font-size:12px}
.crz-line .lb{color:var(--muted)}
.crz-line .vl{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-size:12px}
.crz-bar{height:10px;border-radius:5px;background:var(--warm);overflow:hidden}.crz-bar span{display:block;height:100%;border-radius:5px}
.crz-bar .crz-fill{display:flex;height:100%;border-radius:5px;overflow:hidden}.crz-bar .crz-fill .crz-seg{height:100%}
.crz-legend{display:flex;gap:16px;font-size:11.5px;color:var(--muted);margin-bottom:14px;flex-wrap:wrap}
.crz-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}
@media(max-width:600px){.crz-line{grid-template-columns:90px 1fr 110px}}
/* desglose del gasto "sin clasificar" (clases propias: no interferir con styleListValues ni el tooltip de .crz-line) */
.crz-det{margin-top:8px;font-size:12px}
.crz-det summary{cursor:pointer;color:var(--muted);font-weight:600;list-style-position:inside}
.crz-det[open] summary{color:var(--ink2)}
.crz-det-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0 4px 18px;border-bottom:1px dashed var(--line-soft)}
.crz-det-row .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crz-det-row .amt2{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.assign{font-family:inherit;font-size:12px;font-weight:600;border:1px solid var(--line);background:none;color:var(--ink2);border-radius:7px;padding:4px 10px;cursor:pointer}.assign:hover{background:var(--warm)}.assign.ok{color:var(--green);border-color:transparent;cursor:default}
.assign-sel{font-family:inherit;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--card,#fff);color:var(--ink2);border-radius:7px;padding:4px 8px;cursor:pointer;max-width:130px}
.wa{font-size:12px;font-weight:600;color:#fff;background:#25d366;border-radius:7px;padding:4px 10px;text-decoration:none;white-space:nowrap;margin-right:5px}.wa:hover{background:#1ebe5b}.wa.off{background:#e5e5e5;color:#aaa}
.note{background:#fbeed6;border-radius:10px;padding:11px 14px;font-size:12.5px;color:#7a4a12;margin-bottom:14px}
.insight{background:linear-gradient(135deg,#f4f5fc,#eceefb);border:1px solid #e0e3f7;border-left:3px solid var(--accent);border-radius:14px;padding:15px 18px;margin-bottom:18px}
.insight-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);display:flex;align-items:center;gap:7px;margin-bottom:7px}
.insight-h .spk{font-size:12px;animation:blink 2.4s ease-in-out infinite}
.insight p{font-size:13.5px;line-height:1.6;color:var(--ink2);margin:0}
.insight p b{color:var(--accent);font-weight:700}
.filterbar{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin:-2px 0 16px;flex-wrap:wrap}
.filterbar .flbl{font-size:12px;color:var(--muted);font-weight:600}
.datefilter{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 11px}
.datefilter .dfi{font-size:13px;opacity:.8}
.dfsel{font-family:inherit;font-size:12.5px;border:none;background:none;color:var(--accent);font-weight:700;cursor:pointer;outline:none}
.dfd{font-family:inherit;font-size:12px;border:1px solid var(--line);border-radius:7px;padding:3px 7px;color:var(--ink);outline:none}
.datefilter .dfa{color:var(--muted);font-size:12px}
.mcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.mcol .mbar{width:60%;background:var(--accent);border-radius:5px 5px 0 0;min-height:3px}.mcol .mlab{font-size:11px;color:var(--muted)}.mcol .mval{font-size:11px;font-weight:700;white-space:nowrap}
.mcol .mcx{font-size:10px;color:var(--accent);font-weight:700}
.mchart{display:flex;gap:12px;align-items:flex-end;height:180px;padding-top:8px}
.mchart .mcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.mchart .mbar{width:66%;background:linear-gradient(180deg,#5566d6,#283593);border-radius:6px 6px 0 0;min-height:4px;transition:height .3s;box-shadow:0 2px 6px rgba(40,53,147,.18)}
.mchart .mcol.best .mbar{background:linear-gradient(180deg,#34d399,#0d9488);box-shadow:0 3px 10px rgba(13,148,136,.3)}
.mchart .mcol.low .mbar{background:linear-gradient(180deg,#c7cdf2,#9aa6bf)}
.mchart .mcol.best .mval{color:#0d9488}.mchart .mcol.best .mcx{color:#0d9488}
/* gráficas densas (9+ columnas): cifra completa más chica; en móvil, scroll horizontal dentro del panel */
.mchart.dense .mval{font-size:9px;letter-spacing:-.02em}
@media(max-width:600px){.mchart.dense{overflow-x:auto;padding-bottom:6px}.mchart.dense .mcol{min-width:52px}}
.seg{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:10px;display:flex;gap:14px;align-items:flex-start}
.seg.vencido{border-left:3px solid var(--rose)}
.seg .when{flex-shrink:0;width:96px;font-size:12px;font-weight:700;text-align:center}.seg .when .d{font-size:11px;font-weight:500;color:var(--muted)}.seg .when.late{color:var(--rose)}
.seg .info{flex:1}.seg .who{font-size:14px;font-weight:600}.seg .meta{font-size:12px;color:var(--muted);margin-top:1px}.seg .nt{font-size:13px;color:var(--ink2);margin-top:6px;background:var(--line-soft);border-radius:8px;padding:7px 10px}
.seg .sacts{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form label{font-size:12px;color:var(--ink2);font-weight:600;display:block;margin-bottom:4px}.form input,.form select{width:100%;font-family:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.form .full{grid-column:1/-1}
@media(max-width:760px){
  header{padding:12px 16px;gap:10px;flex-wrap:wrap}
  header nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;scrollbar-width:thin}
  header nav button{flex:0 0 auto;min-height:42px}
  main{padding:22px 16px 64px;max-width:100%}
  .kpis{grid-template-columns:1fr}
  .brow{grid-template-columns:90px minmax(100px,1fr) minmax(70px,max-content)}
  .form{grid-template-columns:1fr}
  .yoy-ch{margin-left:102px}
  .seg{flex-wrap:wrap}.seg .info{min-width:180px}.seg .sacts{width:100%;align-items:flex-end}
  .datefilter{max-width:100%;flex-wrap:wrap}
}
@media(max-width:420px){
  .rv-tiles,.aud-perfil{grid-template-columns:1fr}
  .crz-line{grid-template-columns:76px minmax(80px,1fr) 92px}
  .panel>summary{padding:14px}.panel .body{padding:14px}
  .current-user{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
/* Login — aurora light, centrado */
#loginView{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fbfcff;position:relative;overflow:hidden;padding:28px}
#loginView::before,#loginView::after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;z-index:0;pointer-events:none}
#loginView::before{width:560px;height:560px;background:radial-gradient(circle,#c7cdf2,transparent 70%);top:-180px;left:-120px;animation:auroraA 15s ease-in-out infinite alternate}
#loginView::after{width:500px;height:500px;background:radial-gradient(circle,#dccbf0,transparent 70%);bottom:-180px;right:-120px;animation:auroraB 17s ease-in-out infinite alternate}
@keyframes auroraA{to{transform:translate(70px,50px) scale(1.15)}}
@keyframes auroraB{to{transform:translate(-60px,-40px) scale(1.1)}}
.login-center{position:relative;z-index:1;width:100%;max-width:460px;display:flex;flex-direction:column;align-items:center;text-align:center}
.login-cryologo{width:188px;height:auto;margin-bottom:20px;border-radius:13px;box-shadow:0 14px 36px -10px rgba(40,53,147,.5)}
.login-eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#283593;margin-bottom:24px;display:inline-flex;align-items:center;gap:8px;background:#eef0fb;border:1px solid #e0e3f7;border-radius:999px;padding:7px 15px}
.login-eyebrow .spark{font-size:13px;animation:blink 2.4s ease-in-out infinite}
@keyframes blink{50%{opacity:.3}}
.login-card{width:100%;background:rgba(255,255,255,.74);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid rgba(255,255,255,.85);border-radius:24px;padding:42px 40px;box-shadow:0 36px 90px -22px rgba(40,53,147,.3),0 2px 8px rgba(0,0,0,.04)}
.login-title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px;text-align:center}
.login-sub{font-size:14px;color:var(--muted);margin-bottom:30px;text-align:center}
.login-lbl{display:block;font-size:12.5px;font-weight:600;color:var(--ink2);margin-bottom:17px;text-align:left}
.login-lbl input{display:block;width:100%;margin-top:8px;font-size:15px;padding:14px 15px;border:1px solid #e6e6ee;border-radius:13px;font-family:inherit;background:#fff;transition:border-color .15s,box-shadow .15s}
.login-lbl input:focus{outline:none;border-color:#283593;box-shadow:0 0 0 4px rgba(40,53,147,.12)}
.login-error{color:var(--rose);font-size:12.5px;min-height:18px;margin-bottom:6px}
.login-btn{width:100%;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#283593,#1a237e);border:none;border-radius:13px;padding:15px;cursor:pointer;font-family:inherit;box-shadow:0 12px 26px -6px rgba(40,53,147,.5);transition:transform .12s,box-shadow .12s}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px -6px rgba(40,53,147,.6)}
.login-btn:active{transform:translateY(0)}
.login-btn:disabled{opacity:.6;cursor:default;transform:none}
.login-cardfoot{margin-top:22px;text-align:center;font-size:11.5px;color:var(--muted)}
.login-by{margin-top:22px;font-size:12px;color:var(--muted)}
@media(max-width:520px){.login-card{padding:32px 24px}.login-cryologo{width:158px}}
.current-user{font-size:12px;color:var(--muted)}
.header-actions{display:flex;align-items:center;gap:12px}
.fb-ghost{font-family:inherit;font-size:12px;border:1px solid var(--line);background:none;color:var(--ink2);border-radius:8px;padding:6px 11px;cursor:pointer}.fb-ghost:hover{background:var(--warm)}
/* ── Paneles GitHub/HubSpot (11-ago): vistas elegibles ── */
.vtog{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:12px}
.vtog button{font-family:inherit;font-size:12px;border:1px solid var(--line);background:none;color:var(--ink2);border-radius:8px;padding:4px 11px;cursor:pointer}
.vtog button.on{background:#283593;border-color:#283593;color:#fff;font-weight:700}
.wkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
.wkk{border:1px solid var(--line);border-radius:11px;padding:12px 14px}
.wkk .kl{font-size:12px;color:var(--muted)}.wkk .kv{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:1px 0}
.wkk .kf{font-size:11.5px;color:var(--muted)}
.hmwrap{overflow-x:auto;padding-bottom:4px}
.hmmes{display:flex;font-size:10.5px;color:var(--muted);margin-bottom:4px}
.hm{display:flex;gap:3px}.hm .hcol{display:flex;flex-direction:column;gap:3px}
.hm i{width:12px;height:12px;border-radius:3px;display:block}
.hmleg{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-top:8px}
.hmleg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.kbgrid{display:grid;grid-template-columns:repeat(4,minmax(168px,1fr));gap:10px;min-width:720px}
.kbcol{background:var(--warm);border:1px solid var(--line);border-radius:11px;padding:9px}
.kbh{font-size:11.5px;font-weight:800;display:flex;justify-content:space-between;gap:6px;padding:2px 3px 8px;align-items:baseline}
.kbh .sum{color:var(--muted);font-weight:600;font-size:11px;white-space:nowrap}
.kbcard{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:7px}
.kbcard .n{font-size:12px;font-weight:700;line-height:1.3}
.kbcard .d{font-size:11px;color:var(--muted);margin-top:3px;display:flex;justify-content:space-between;gap:6px}
.lbtab{border-collapse:collapse;width:100%;font-size:13px}
.lbtab th{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}
.lbtab td{padding:8px;border-bottom:1px solid var(--line)}.lbtab tr:last-child td{border-bottom:none}
.lbtab .r{text-align:right}.lbpos{font-weight:800}.lbchg{font-weight:700;font-size:12px}
.lbchg.u{color:var(--green)}.lbchg.d{color:var(--rose)}.lbchg.f{color:var(--muted)}
.lcf{display:flex;align-items:stretch;min-width:700px}
.lcf .st{flex:1;text-align:center;padding:12px 4px;border-radius:10px;color:#fff}
.lcf .st .n{font-size:17px;font-weight:800}.lcf .st .l{font-size:11px;opacity:.92}
.lcf .ar{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 5px;min-width:54px}
.lcf .ar b{font-size:12px;color:var(--green)}.lcf .ar.weak b{color:var(--rose)}.lcf .ar span{font-size:10px;color:var(--muted)}
.stackbar{display:flex;height:30px;border-radius:8px;overflow:hidden;margin:8px 0 12px}
.stackbar i{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;min-width:0;font-style:normal}
.hitos{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.hitos .ht{font-size:11px;font-weight:800;color:var(--ink2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.hito{position:relative;padding-left:16px;margin-bottom:10px}
.hito::before{content:"";position:absolute;left:0;top:5px;width:8px;height:8px;border-radius:50%;background:#283593}
.hito.g::before{background:var(--green)}.hito.o::before{background:#e8902f}
.hito .hd{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.hito .hx{font-size:12.5px;color:var(--ink2);line-height:1.4}
/* Diálogo de descarga del documento (cotizador) */
.cotz-dlg{border:none;border-radius:16px;padding:0;box-shadow:0 30px 70px -20px rgba(26,35,126,.4);width:min(430px,92vw)}
.cotz-dlg::backdrop{background:rgba(28,35,64,.45);backdrop-filter:blur(2px)}
.cotz-dlg .bd{padding:24px 26px}
.cotz-dlg h3{margin:0 0 4px;font-size:17px;letter-spacing:-.01em}
.cotz-dlg .folio{font-size:12px;color:var(--muted);margin-bottom:14px;font-variant-numeric:tabular-nums}
.cotz-dlg label{display:block;font-size:12.5px;font-weight:600;color:var(--ink2)}
.cotz-dlg input{display:block;width:100%;margin-top:6px;font-size:15px;padding:12px 13px;border:1px solid #e6e6ee;border-radius:11px;font-family:inherit;box-sizing:border-box}
.cotz-dlg input:focus{outline:none;border-color:#283593;box-shadow:0 0 0 4px rgba(40,53,147,.12)}
.cotz-dlg .priv{font-size:11.5px;color:var(--muted);margin:8px 0 0;display:flex;gap:6px;align-items:flex-start;line-height:1.4}
.cotz-dlg .err{color:var(--rose);font-size:12px;min-height:16px;margin-top:6px}
.cotz-dlg .acts{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.cotz-dlg .acts button{font-family:inherit;font-size:13.5px;border-radius:10px;padding:10px 16px;cursor:pointer;border:1px solid var(--line);background:none;color:var(--ink2)}
.cotz-dlg .acts .go{background:#283593;border-color:#283593;color:#fff;font-weight:700}
.cotz-dlg .acts .go:disabled{opacity:.6;cursor:default}
/* ── Cotizador (Fase 1) ── */
.cotz-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media(max-width:860px){.cotz-grid{grid-template-columns:1fr}}
.cotz-box{background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.cotz-box .pl{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cotz-box .pv{font-size:26px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0}
.cotz-box .pr{font-size:12.5px;color:var(--muted);line-height:1.5}
.cotz-tot{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;font-variant-numeric:tabular-nums}
.cotz-tot div{display:flex;justify-content:space-between;font-size:14px;padding:2.5px 0}
.cotz-tot .t{font-weight:800;font-size:16px}
.folio-chip{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;background:var(--accent-soft);border:1px solid var(--line);border-radius:8px;padding:4px 10px}
.cotz-alert{font-size:12.5px;font-weight:700;color:var(--rose);margin-top:5px}
.cotz-hint{font-size:12px;color:var(--muted);margin-top:4px}
.cotz-ok{background:#e3f5e9;color:#157a3a;border-radius:10px;padding:10px 13px;font-size:13px;margin-top:12px}
.cotz-err{background:#fdeeee;color:#b3452f;border-radius:10px;padding:10px 13px;font-size:13px;margin-top:12px}
input.cotz-bajo{border-color:var(--rose)!important;background:#fdeeee}
.pill-min{font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;background:#fdeeee;color:#b3452f;margin-left:6px;white-space:nowrap}
.cotz-conceptos{font-size:12.5px;color:var(--muted);margin:6px 0 0;padding-left:18px}
.cotz-conceptos li{margin:2px 0}
.cotz-chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:10px 0;color:var(--ink2)}
.cotz-chk input{width:auto;margin-top:2px}
.cotz-lead-res{display:block;width:100%;text-align:left;font-family:inherit;font-size:13px;padding:8px 11px;border:1px solid var(--line);border-top:none;background:var(--card);cursor:pointer;color:var(--ink)}
.cotz-lead-res:first-child{border-top:1px solid var(--line);border-radius:10px 10px 0 0;margin-top:6px}
.cotz-lead-res:last-child{border-radius:0 0 10px 10px}
.cotz-lead-res:only-child{border-radius:10px;margin-top:6px}
.cotz-lead-res:hover{background:var(--warm)}
.cotz-lead-res .cnl{color:var(--muted);font-size:11.5px;margin-left:6px}
.cotz-lead-res .tel4{color:var(--ink2);font-size:11.5px;margin-left:8px;font-variant-numeric:tabular-nums}
.cotz-lead-chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid var(--line);border-radius:999px;padding:5px 6px 5px 13px;font-size:13px;font-weight:600;margin-top:2px}
.cotz-lead-chip button{font-family:inherit;border:none;background:none;cursor:pointer;font-size:15px;line-height:1;color:var(--ink2);padding:2px 7px;border-radius:50%}
.cotz-lead-chip button:hover{background:rgba(0,0,0,.08)}
tr.cotz-anulada td{color:var(--muted);opacity:.6}
tr.cotz-anulada td:not(:last-child){text-decoration:line-through}
.cotz-dlg textarea{display:block;width:100%;margin-top:6px;font-size:14px;padding:11px 13px;border:1px solid #e6e6ee;border-radius:11px;font-family:inherit;box-sizing:border-box;resize:vertical}
.cotz-dlg textarea:focus{outline:none;border-color:#283593;box-shadow:0 0 0 4px rgba(40,53,147,.12)}
/* ── Catálogo de estudios por órgano ── */
.est-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:9px}
.est-h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.est-h b{font-size:13.5px}
.est-acts{display:flex;gap:6px;flex-shrink:0}
.est-d{font-size:12.5px;color:var(--ink2);margin-top:4px;line-height:1.5}
.est-c{font-size:12.5px;color:var(--ink2);margin-top:6px;line-height:1.5;background:var(--line-soft);border-radius:8px;padding:7px 10px}
.est-c b{color:var(--ink)}
/* ── Avance vs meta: cuadrícula de captura mensual ── */
.meta-grid{display:grid;grid-template-columns:92px repeat(3,1fr);gap:6px;align-items:center;margin-top:10px;max-height:min(52vh,460px);overflow-y:auto;padding-right:2px}
.meta-grid .mgh{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.meta-grid .mgl{font-size:12.5px;font-weight:600;color:var(--ink2)}
.meta-grid input{width:100%;font:inherit;font-size:13px;padding:7px 8px;border:1px solid #e6e6ee;border-radius:8px;box-sizing:border-box;font-variant-numeric:tabular-nums;margin:0}
.meta-grid input:focus{outline:none;border-color:#283593;box-shadow:0 0 0 3px rgba(40,53,147,.12)}
