/* Tokens y componentes compartidos con Cierre Diario. Fuentes servidas localmente. */
@font-face{font-family:Inter;src:url('/app/inter.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('/app/jetbrains-mono.ttf') format('truetype');font-weight:100 800;font-display:swap}
:root{--ink-void:#fff;--ink-base:#f3f4f6;--ink-1:#f5f6f8;--ink-2:#eef1f5;--paper:#fff;--paper-deep:#f6f6f6;--paper-edge:#dde5eb;--ink:#32394d;--ink-soft:#4b5563;--ink-faint:#6b7280;--ink-ghost:#a3a6b8;--hi-vis:#ff9333;--hi-vis-deep:#f1593d;--ember:#ff9333;--ember-deep:#f1593d;--ember-soft:#ffb56d;--confirm:#ffc10d;--warn:#ffc10d;--alert:#ff4408;--jade:#83bf4f;--steel:#0092c6;--rule:#dde5eb;--rule-strong:#c3c9d9;--surface-shadow:0 10px 28px rgba(50,57,77,.06);--orange:var(--ember);--muted:var(--ink-faint);--line:var(--rule);--font-mono:'JetBrains Mono',monospace;--font-body:Inter,system-ui,sans-serif}
html[data-theme=dark]{--ink-void:#060205;--ink-base:#0f090c;--ink-1:#14100e;--ink-2:#1c1714;--paper:#0f090c;--paper-deep:#14100e;--paper-edge:#1c1714;--ink:#f5f0e6;--ink-soft:#d9cfbf;--ink-faint:#a99d8f;--ink-ghost:#766a5d;--hi-vis:#ff9d38;--hi-vis-deep:#ff6f20;--ember:#ff9d38;--ember-deep:#ff6f20;--ember-soft:#f7b46f;--confirm:#83bf4f;--warn:#ffce31;--alert:#ed4c5c;--steel:#428bc1;--rule:#241e1a;--rule-strong:#3a3129;--surface-shadow:0 18px 48px rgba(0,0,0,.28);color-scheme:dark}
*{box-sizing:border-box}html{background:var(--ink-1);color-scheme:light}body{margin:0;min-height:100vh;color:var(--ink);font:14px var(--font-body);font-feature-settings:'ss01','cv11';font-variant-numeric:tabular-nums;background:radial-gradient(circle at top,rgba(255,147,51,.16),transparent 34%),linear-gradient(180deg,var(--ink-1),var(--ink-2));overflow-x:hidden}
html[data-theme=dark] body{background:radial-gradient(circle at top,rgba(255,157,56,.09),transparent 34%),linear-gradient(180deg,var(--ink-base),var(--ink-void))}
body:before,body:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:1}body:before{opacity:.34;mix-blend-mode:multiply;background-image:radial-gradient(circle at 13% 27%,rgba(50,57,77,.03) 0 1px,transparent 2px),radial-gradient(circle at 71% 8%,rgba(50,57,77,.035) 0 1px,transparent 2px);background-size:7px 7px,11px 11px}body:after{opacity:.36;background-image:linear-gradient(to right,rgba(195,201,217,.55) 1px,transparent 1px);background-size:96px 96px;mask-image:linear-gradient(to bottom,transparent,black 160px,black calc(100% - 160px),transparent)}html[data-theme=dark] body:before{mix-blend-mode:screen;opacity:.15}html[data-theme=dark] body:after{opacity:.07}
header,main,footer{position:relative;z-index:2}[hidden]{display:none!important}button,input,select{font:inherit}button,a{cursor:pointer}button{padding:10px 15px;border:1px solid var(--rule-strong);border-radius:12px;background:var(--paper);color:var(--ink);transition:background .15s,border-color .15s}button:hover:not(:disabled){border-color:var(--hi-vis);background:var(--paper-deep)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}button.primary{color:var(--ink-void);background:linear-gradient(180deg,var(--ember),var(--ember-deep));border-color:var(--ember-deep);box-shadow:0 8px 18px rgba(255,147,51,.16)}button.primary:hover:not(:disabled){background:linear-gradient(180deg,var(--ember-soft),var(--ember))}button:focus-visible,a:focus-visible{outline:2px solid var(--hi-vis);outline-offset:3px}a{color:var(--ember-deep);text-underline-offset:3px}
input,select{background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong);border-radius:12px;padding:11px 13px;max-width:100%}input:focus,select:focus{outline:2px solid rgba(255,147,51,.34);outline-offset:1px}label{display:grid;gap:7px;margin:12px 0;font-size:12px}label>span,.eyebrow,.section-label,th,.mono{font-family:var(--font-mono)}label>span,.eyebrow,.section-label{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-faint)}
.site-header{border-bottom:1px solid var(--rule-strong)}.site-header:before{content:'';display:block;height:6px;background:var(--hi-vis)}.header-inner{max-width:1360px;margin:auto;padding:28px 36px}.header-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.header-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.brand-logo{display:block;width:240px;height:auto;max-width:100%;user-select:none}.brand-title{font-size:clamp(32px,4vw,51px);line-height:.95;letter-spacing:-.05em;font-weight:800;margin:12px 0 0}.brand-title em{font-style:normal;color:var(--hi-vis)}.header-tools{text-align:right;display:grid;gap:12px;justify-items:end}.clock-label{font:10px var(--font-mono);letter-spacing:.18em;color:var(--ink-faint)}#clock{font-size:25px;font-weight:600}.clock-dot{display:inline-block;width:6px;height:6px;margin-left:7px;background:var(--hi-vis);border-radius:50%;animation:blink 2s infinite}.theme-button,.site-tabs button,#logout,#bell{border-radius:999px;font:10px var(--font-mono);letter-spacing:.13em;text-transform:uppercase}.site-tabs{display:flex;gap:8px;flex-wrap:wrap}.site-tabs button{padding:10px 16px}.site-tabs button[aria-selected=true]{background:var(--ember);border-color:var(--ember-deep);color:var(--ink-void)}#bell{display:flex;align-items:center;gap:7px}#count{border-radius:999px;min-width:18px;padding:2px 5px;background:var(--paper-deep);color:var(--ink)}.icon{height:16px;width:16px;fill:none;stroke:currentColor;stroke-width:1.7}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}
main{max-width:1360px;margin:26px auto 60px;padding:0 36px}h1{font-size:30px;font-weight:800;letter-spacing:-.04em}h2{font-size:18px;letter-spacing:-.025em;margin:0 0 8px}h3{font-size:14px}.muted{color:var(--ink-faint);font-size:12px;line-height:1.6}.card,.panel,.kpi{border:1px solid var(--rule);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:var(--surface-shadow)}html[data-theme=dark] .card,html[data-theme=dark] .panel,html[data-theme=dark] .kpi{background:linear-gradient(180deg,rgba(20,16,14,.96),rgba(15,9,12,.96))}.card,.panel{padding:22px;margin:18px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.grid .card,.grid .panel{margin:0}.login{max-width:430px;margin:8vh auto;padding:32px}.login h1{text-align:center;margin-top:0}.login .muted{text-align:center;font:10px var(--font-mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:28px}.login input{width:100%;font-family:var(--font-mono)}.login button{width:100%;font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.18em;margin-top:15px}.login #loginError{color:var(--alert);font-size:12px}
.badge{display:inline-block;white-space:nowrap;padding:4px 7px;font:10px var(--font-mono);background:var(--paper-deep);color:var(--ink-faint);border:1px solid var(--rule);border-radius:0}.badge.ok{background:color-mix(in srgb,var(--confirm) 12%,var(--paper));border-color:color-mix(in srgb,var(--confirm) 35%,var(--rule));color:var(--ink-soft)}.badge.warn{background:color-mix(in srgb,var(--hi-vis) 12%,var(--paper));color:var(--ember-deep)}.badge.error{background:color-mix(in srgb,var(--alert) 12%,var(--paper));color:var(--alert)}.badge.stage-0{border-color:#83bf4f;color:#508829}.badge.stage-1{border-color:var(--steel);color:var(--steel)}.badge.stage-2{border-color:var(--warn);color:var(--ink-soft)}.badge.stage-3{border-color:var(--alert);color:var(--alert)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:18px 0}.kpi{padding:18px}.kpi strong{display:block;font:600 29px var(--font-mono);letter-spacing:-.05em;line-height:1.2;margin:10px 0}.kpi .muted{font-size:11px}.kpi.positive strong{color:#508829}.kpi.critical strong{color:var(--alert)}.kpi.accent strong{color:var(--ember-deep)}.kpi.warning strong{color:#b68110}.kpi small{font:10px var(--font-mono);color:var(--ink-faint)}
.table{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font:9px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);padding:12px 10px;border-bottom:1px solid var(--rule-strong);white-space:nowrap}td{border-bottom:1px solid var(--rule);padding:12px 10px;vertical-align:middle}tbody tr:hover{background:color-mix(in srgb,var(--hi-vis) 4%,var(--paper))}td.number{font-family:var(--font-mono);text-align:right}.table th.number{text-align:right}.empty{padding:32px;text-align:center;color:var(--ink-faint);font-size:12px}.banner,.notice{background:var(--paper-deep);border:1px solid var(--rule);padding:16px 18px;border-radius:12px;margin:16px 0;line-height:1.6;font-size:12px}.banner{border-left:3px solid var(--hi-vis)}.banner strong{display:block;margin-bottom:6px}.drop{border:1px dashed var(--rule-strong);background:var(--paper-deep);border-radius:12px;padding:22px;margin:18px 0}.drop input{width:100%;border:0;background:transparent;padding:0;margin-top:8px}.progress{height:8px;border-radius:8px;background:var(--rule);overflow:hidden;margin:16px 0}.progress div{background:var(--hi-vis);height:100%;transition:width .3s}.timeline{border-left:2px solid var(--hi-vis);padding-left:15px;margin:18px 0}details{border-top:1px solid var(--rule);padding-top:14px;margin-top:20px;font-size:12px}summary{cursor:pointer;color:var(--ink-soft)}
#toast{position:fixed;bottom:24px;right:24px;max-width:450px;background:var(--ink);color:var(--paper);padding:16px 22px;border-radius:12px;z-index:30;box-shadow:var(--surface-shadow)}dialog{width:min(1080px,94vw);max-height:90vh;border:1px solid var(--rule);border-radius:16px;padding:26px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:rgba(15,9,12,.5);backdrop-filter:blur(3px)}
.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule)}.dashboard-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.dashboard-filters label{margin:0}.dashboard-filters select,.dashboard-filters input{font-size:12px;padding:9px 11px}.quick-ranges{display:flex;gap:4px}.quick-ranges button{font:10px var(--font-mono);border-radius:8px;padding:8px 10px}.quick-ranges button[aria-pressed=true]{border-color:var(--hi-vis);color:var(--ember-deep)}.live{font:10px var(--font-mono);letter-spacing:.08em;color:var(--ink-faint)}.live:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--jade);margin-right:7px}.dashboard-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:20px 0 24px}.dashboard-tabs button{font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.07em;padding:9px 12px;border-radius:999px;background:transparent;border-color:transparent;color:var(--ink-faint)}.dashboard-tabs button[aria-selected=true]{border-color:var(--hi-vis);background:color-mix(in srgb,var(--hi-vis) 10%,var(--paper));color:var(--ember-deep)}.dashboard-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin:0 0 20px}.dashboard-heading h2{font-size:25px;font-weight:800}.dashboard-heading p{margin:6px 0 0}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.split.equal{grid-template-columns:1fr 1fr}.split.triple{grid-template-columns:1fr 1fr 1fr}.split .panel{margin:0}.section-label{display:block;margin-bottom:14px}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:14px}.chart{width:100%;height:auto;min-height:210px;display:block}.chart text{fill:var(--ink-faint);font:9px var(--font-mono)}.chart .grid-line{stroke:var(--rule);stroke-width:1}.chart-labels{display:flex;justify-content:space-between;color:var(--ink-faint);font:9px var(--font-mono)}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0 0;font-size:11px;color:var(--ink-faint)}.legend span:before{content:'';display:inline-block;width:9px;height:3px;background:var(--legend-color);margin-right:5px;vertical-align:middle}.rank-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}.rank-row:last-child{border-bottom:0}.rank-code{font:10px var(--font-mono);padding:5px;border:1px solid var(--rule);background:var(--paper-deep);text-align:center}.rank-value{font:600 16px var(--font-mono)}.rank-name{font-size:12px}.rank-name small{display:block;font-size:10px;margin-top:4px;color:var(--ink-faint)}.mini-bar{height:7px;background:var(--rule);border-radius:4px;overflow:hidden;flex:1}.mini-bar>div{height:100%;background:var(--hi-vis)}.filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.filter-row input{flex:1;min-width:160px}.filter-row input,.filter-row select{font-size:12px;padding:9px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:380px}.calendar-cell{padding:9px 4px;text-align:center;font:10px var(--font-mono);background:var(--paper-deep);border:1px solid var(--rule);border-radius:4px}.calendar-cell.has-data{background:color-mix(in srgb,var(--hi-vis) 18%,var(--paper));border-color:var(--hi-vis)}.footer-note{font-size:11px;line-height:1.7;color:var(--ink-faint);border-top:1px dashed var(--rule);padding-top:12px;margin-top:18px}.no-wrap{white-space:nowrap}.rise{animation:rise .25s ease-out}.chart-donut{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.donut{width:130px;height:130px;border-radius:50%;display:grid;place-items:center}.donut-center{width:95px;height:95px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font:600 20px var(--font-mono)}
.heat-cell{display:block;min-width:64px;text-align:center;padding:8px 14px;border-radius:4px;background:rgba(255,147,51,var(--heat,.1));color:var(--ink)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:1000px){.split,.split.equal,.split.triple{grid-template-columns:1fr}.header-inner,main{padding-left:24px;padding-right:24px}.header-title{align-items:start}.brand-logo{width:220px}.kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.header-inner{padding:20px 16px}.header-title{gap:16px}.header-top{margin-bottom:20px}.brand-logo{width:170px}.brand-title{font-size:32px}.clock-label,#clock{display:none}.theme-button{font-size:9px;padding:8px}.site-tabs button{padding:9px 11px;font-size:9px}main{padding:0 14px;margin-top:20px}.card,.panel{padding:17px}.login{padding:26px}.dashboard-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.dashboard-filters label select,.dashboard-filters label input{width:100%;min-width:0}.dashboard-tabs{gap:2px}.dashboard-tabs button{font-size:9px;padding:8px 10px}.kpis{grid-template-columns:repeat(2,1fr)}.kpi{padding:15px}.kpi strong{font-size:24px}.grid{grid-template-columns:1fr}#toast{left:14px;right:14px}.dashboard-heading{display:block}#user{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-tools{gap:8px}.dashboard-toolbar{gap:16px}.live{font-size:9px}}
