/* capacitacion.portillaconsultores.net — estética macOS: fondo tipo Sonoma, vidrio esmerilado, ventanas y dock */
:root{
  --wall-base:#e9edf8;
  --w1:#ffc6a5;--w2:#c7b8ff;--w3:#a7dcff;--w4:#ffcfe3;--w5:#b9f0d9;
  --glass:rgba(255,255,255,.66);--glass-strong:rgba(255,255,255,.82);--glass-line:rgba(255,255,255,.75);
  --edge:rgba(20,30,60,.10);--shadow:0 20px 50px -18px rgba(30,40,90,.35),0 2px 6px rgba(30,40,90,.08);
  --ink:#1c1f2a;--muted:#5f6577;--soft:#8a90a2;
  --blue:#0a7aff;--blue-soft:rgba(10,122,255,.12);
  --dev:#1f9d55;--dev-bg:rgba(31,157,85,.12);--ind:#2f6fdb;--ind-bg:rgba(47,111,219,.12);--sv:#d97706;--sv-bg:rgba(217,119,6,.13);
  --fis:#8b5cf6;--fis-bg:rgba(139,92,246,.13);--err:#e5484d;--err-bg:rgba(229,72,77,.12);
  --r-lg:20px;--r-md:14px;--r-sm:10px;
  --f-ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;
  --f-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;
  --f-mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --wall-base:#121428;--w1:#7a3cff;--w2:#0a84ff;--w3:#ff6b3d;--w4:#d6336c;--w5:#14b8a6;
  --glass:rgba(30,32,48,.62);--glass-strong:rgba(36,38,56,.85);--glass-line:rgba(255,255,255,.08);
  --edge:rgba(255,255,255,.08);--shadow:0 24px 60px -20px rgba(0,0,0,.7),0 2px 6px rgba(0,0,0,.3);
  --ink:#f2f3f7;--muted:#b2b6c6;--soft:#8c91a5;--blue:#3d9bff;--blue-soft:rgba(61,155,255,.18);
  --dev:#4ade80;--dev-bg:rgba(74,222,128,.14);--ind:#7aa7ff;--ind-bg:rgba(122,167,255,.15);--sv:#fbbf24;--sv-bg:rgba(251,191,36,.14);
  --fis:#c4a8ff;--fis-bg:rgba(196,168,255,.15);--err:#ff7b7f;--err-bg:rgba(255,123,127,.14);color-scheme:dark}}

*{box-sizing:border-box}
html,body{margin:0}
body{font:15.5px/1.55 var(--f-ui);color:var(--ink);background:var(--wall-base);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}
.wallpaper{position:fixed;inset:0;z-index:-1;background:
  radial-gradient(42% 52% at 12% 18%,var(--w1) 0,transparent 70%),
  radial-gradient(45% 55% at 88% 12%,var(--w2) 0,transparent 70%),
  radial-gradient(50% 60% at 78% 88%,var(--w3) 0,transparent 70%),
  radial-gradient(40% 50% at 18% 92%,var(--w4) 0,transparent 70%),
  radial-gradient(35% 40% at 50% 50%,var(--w5) 0,transparent 75%),var(--wall-base);
  filter:saturate(1.15)}
.wallpaper::after{content:"";position:absolute;inset:0;opacity:.35;background-image:radial-gradient(rgba(255,255,255,.35) 1px,transparent 1px);background-size:3px 3px;mix-blend-mode:overlay}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:700}
h2{font-size:1.35rem;font-weight:700}
h3{font-size:1.05rem;font-weight:650}
p{margin:0}
.mono{font-family:var(--f-mono);font-size:.92em}
.muted{color:var(--muted)}
.eyebrow{font:600 .72rem var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.prose{max-width:74ch}
.wrap{max-width:1180px;margin:0 auto;width:100%;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
main{flex:1;padding-block:26px 130px;display:flex;flex-direction:column;gap:22px}

/* vidrio */
.glass,.window,.sec,.card,.item,.tbl,details.box,.recurso,.alert,.hero,.res,.lec,.chips a,.top nav a.out{
  background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);
  border:1px solid var(--glass-line);box-shadow:var(--shadow)}

/* barra de menú */
.top{position:sticky;top:0;z-index:20;background:var(--glass-strong);-webkit-backdrop-filter:blur(30px) saturate(1.8);backdrop-filter:blur(30px) saturate(1.8);border-bottom:1px solid var(--edge)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:46px}
.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none!important}
.brand img{width:26px;height:26px;border-radius:7px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.brand .bt{display:flex;align-items:baseline;gap:8px}
.brand .bt span{font:700 .95rem var(--f-display)}
.brand .bt small{font:500 .82rem var(--f-ui);color:var(--muted)}
.mb-right{display:flex;align-items:center;gap:14px;font:500 .84rem var(--f-ui);color:var(--ink)}
.mb-clock{font-variant-numeric:tabular-nums;color:var(--muted)}
.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:700 .72rem var(--f-ui);color:#fff;background:linear-gradient(135deg,#ff9f43,#ff4d8d 50%,#7c5cff)}
.mb-out{font:600 .8rem var(--f-ui);padding:5px 12px;border-radius:999px;background:var(--blue-soft);color:var(--blue)}
.mb-out:hover{text-decoration:none;background:var(--blue);color:#fff}

/* dock */
.dock{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:30;display:flex;gap:6px;padding:8px 10px;border-radius:22px;
  background:var(--glass-strong);-webkit-backdrop-filter:blur(30px) saturate(1.8);backdrop-filter:blur(30px) saturate(1.8);border:1px solid var(--glass-line);box-shadow:0 18px 40px -12px rgba(20,25,60,.45)}
.dock a{position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:14px;color:#fff;text-decoration:none!important;transition:transform .18s cubic-bezier(.2,.8,.3,1.3)}
.dock a:hover,.dock a:focus-visible{transform:translateY(-8px) scale(1.12);outline:none}
.dock a svg{width:26px;height:26px}
.dock a .lbl{position:absolute;bottom:64px;white-space:nowrap;font:600 .74rem var(--f-ui);color:var(--ink);background:var(--glass-strong);border:1px solid var(--edge);padding:4px 9px;border-radius:7px;opacity:0;pointer-events:none;transition:opacity .15s}
.dock a:hover .lbl,.dock a:focus-visible .lbl{opacity:1}
.dock a.on::after{content:"";position:absolute;bottom:-6px;width:4px;height:4px;border-radius:50%;background:var(--ink);opacity:.7}
.d-home{background:linear-gradient(160deg,#5ac8fa,#0a7aff)}
.d-search{background:linear-gradient(160deg,#c084fc,#7c3aed)}
.d-admin{background:linear-gradient(160deg,#a3a9b8,#5d6475)}
.d-guide{background:linear-gradient(160deg,#ffcf5c,#ff9500)}
.d-out{background:linear-gradient(160deg,#ff8a8a,#ff3b30)}
.dock .sep{width:1px;margin:6px 4px;background:var(--edge)}

/* ventanas: .sec y .hero llevan semáforo */
.sec,.hero,.window{border-radius:var(--r-lg);padding:46px 22px 22px;position:relative;display:flex;flex-direction:column;gap:12px}
.sec::before,.hero::before,.window::before{content:"";position:absolute;top:16px;left:18px;width:12px;height:12px;border-radius:50%;background:#ff5f57;box-shadow:20px 0 0 #febc2e,40px 0 0 #28c840}
.sec > h2,.sec > h3{margin-top:2px}
.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:26px;align-items:center;padding:52px 30px 30px;overflow:hidden}
.hero h1{font-size:clamp(2.1rem,4.6vw,3.3rem);background:linear-gradient(120deg,var(--ink) 30%,#7c5cff 70%,#ff6b8b);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);font-size:1.05rem;margin-top:10px;max-width:56ch}
.hero-stats,.auth-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.hero-stats div,.auth-stats div{background:var(--glass-strong);border:1px solid var(--edge);border-radius:var(--r-md);padding:14px 16px}
.hero-stats dt,.auth-stats dt{font:600 .72rem var(--f-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.hero-stats dd,.auth-stats dd{margin:2px 0 0;font:700 1.9rem var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}

/* tarjetas de curso: estilo icono de app */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.card{border-radius:var(--r-lg);padding:20px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card.curso{color:inherit;text-decoration:none!important;transition:transform .2s cubic-bezier(.2,.8,.3,1.2),box-shadow .2s}
.card.curso:hover{transform:translateY(-4px)}
.curso-top{display:flex;align-items:center;gap:12px}
.appicon{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;color:#fff;font:700 1.2rem var(--f-display);flex:none;
  background:linear-gradient(150deg,color-mix(in srgb,var(--c) 55%,#fff) 0%,var(--c) 55%,color-mix(in srgb,var(--c) 70%,#000) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -8px var(--c)}
.curso-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font:500 .8rem var(--f-ui);color:var(--muted);padding-top:12px;border-top:1px solid var(--edge)}
.curso-foot .go{color:var(--blue);font-weight:600}
.card.nuevo{border:1.5px dashed var(--soft);background:transparent;box-shadow:none;align-items:center;justify-content:center;text-align:center;min-height:200px}
.card.nuevo .plus{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font:300 2rem var(--f-ui);background:var(--blue-soft);color:var(--blue)}
.stats{display:flex;gap:6px 14px;font:500 .8rem var(--f-ui);color:var(--muted);flex-wrap:wrap}

/* botones e inputs */
.btn,button{font:600 .88rem var(--f-ui);padding:8px 16px;border-radius:999px;border:0;background:var(--blue);color:#fff;cursor:pointer;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 1px 2px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.25);transition:filter .15s,transform .1s}
.btn:hover,button:hover{filter:brightness(1.08)}
.btn:active,button:active{transform:scale(.97)}
.btn.sec,button.sec{background:var(--glass-strong);color:var(--ink);border:1px solid var(--edge);box-shadow:0 1px 2px rgba(0,0,0,.06);padding:8px 16px}
.btn.sec::before{display:none}
button.danger{background:var(--err)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:2px}
form.stack{display:flex;flex-direction:column;gap:12px}
label{display:flex;flex-direction:column;gap:5px;font:600 .8rem var(--f-ui);color:var(--muted)}
input,select,textarea{font:400 .95rem var(--f-ui);padding:9px 12px;border:1px solid var(--edge);border-radius:var(--r-sm);background:var(--glass-strong);color:var(--ink);width:100%;transition:box-shadow .15s,border-color .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
input[type=color]{padding:3px;height:40px}
textarea{min-height:90px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}

.alert{padding:12px 16px;border-radius:var(--r-md);font-size:.92rem;border-left:4px solid var(--c,var(--blue))}
.alert.ok{--c:var(--dev)} .alert.bad{--c:var(--err)}

/* chips de filtro: control segmentado */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{font:600 .8rem var(--f-ui);padding:7px 13px;border-radius:999px;color:var(--ink);text-decoration:none!important;box-shadow:none;border:1px solid var(--edge)}
.chips a::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--soft));margin-right:7px;vertical-align:1px}
.chips a.on{background:var(--c,var(--ink));color:#fff;border-color:transparent}
.chips a.on::before{background:#fff}
.k-dev{--c:var(--dev);--cb:var(--dev-bg)} .k-ind{--c:var(--ind);--cb:var(--ind-bg)} .k-sv{--c:var(--sv);--cb:var(--sv-bg)} .k-fis{--c:var(--fis);--cb:var(--fis-bg)} .k-err{--c:var(--err);--cb:var(--err-bg)}

/* listas de sentencias */
.list{display:flex;flex-direction:column;gap:10px}
.item{border-radius:var(--r-md);padding:14px 18px 14px 20px;display:flex;flex-direction:column;gap:6px;color:inherit;text-decoration:none!important;position:relative;transition:transform .15s}
.item::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--c,var(--blue))}
.item:hover{transform:translateX(3px)}
.item .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font:500 .78rem var(--f-ui);color:var(--muted)}
.tag{font:700 .68rem var(--f-ui);padding:3px 8px;border-radius:6px;background:var(--cb,var(--blue-soft));color:var(--c,var(--blue));text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.lec{border-radius:var(--r-md);padding:14px 18px;border-left:4px solid var(--dev);background:color-mix(in srgb,var(--dev-bg) 70%,var(--glass))}
.res{font:400 .85rem/1.6 var(--f-mono);white-space:pre-wrap;border-radius:var(--r-md);padding:14px 16px;box-shadow:none}
ol.tl{list-style:none;margin:0;padding:0 0 0 20px;border-left:2px solid var(--edge);display:flex;flex-direction:column;gap:14px}
ol.tl li{position:relative}
ol.tl li::before{content:"";position:absolute;left:-27px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
ol.tl b{font:600 .78rem var(--f-mono);color:var(--blue)}
.tbl{overflow-x:auto;border-radius:var(--r-md);box-shadow:none}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th,td{padding:9px 12px;border-bottom:1px solid var(--edge);text-align:left;vertical-align:top}
tr:last-child td{border-bottom:0}
th{font:600 .7rem var(--f-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.recursos{display:flex;flex-direction:column;gap:10px}
.recurso{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:var(--r-md);padding:12px 16px;flex-wrap:wrap;box-shadow:none}
.recurso > span{display:flex;gap:8px}
details.box{border-radius:var(--r-lg);padding:14px 20px}
details.box summary{cursor:pointer;font:650 1rem var(--f-display);list-style:none;display:flex;align-items:center;gap:10px}
details.box summary::before{content:"›";font-size:1.3rem;line-height:1;color:var(--soft);transition:transform .2s}
details.box[open] summary::before{transform:rotate(90deg)}
details.box[open] summary{margin-bottom:14px}
.sec .sec,.sec .tbl,.sec .recurso,.sec .item{box-shadow:none}
.head{display:flex;flex-direction:column;gap:8px}

/* login tipo pantalla de bloqueo */
body.lock main{justify-content:center;align-items:center;padding-bottom:60px}
.lock-clock{text-align:center;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.25)}
.lock-clock .d{font:600 1.15rem var(--f-display)}
.lock-clock .t{font:700 clamp(4.5rem,13vw,7.5rem)/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
@media (prefers-color-scheme:light){.lock-clock{color:#1c1f2a;text-shadow:0 2px 24px rgba(255,255,255,.6)}}
.lock-card{width:min(380px,100%);border-radius:24px;padding:28px 26px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.lock-card img{width:84px;height:84px;border-radius:22px;box-shadow:0 14px 30px -10px rgba(20,48,77,.6)}
.lock-card h1{font-size:1.5rem}
.lock-card form{width:100%}
.lock-card label{text-align:left}
.lock-card .btn-brand{width:100%;padding:11px}
.lock-stats{display:flex;gap:18px;justify-content:center;font:500 .8rem var(--f-ui);color:var(--muted)}
.lock-stats b{display:block;font:700 1.2rem var(--f-display);color:var(--ink)}

.foot{position:relative;z-index:1;color:var(--muted);font-size:.76rem;padding-block:0 92px;text-align:center}
@media (max-width:760px){
  .hero{grid-template-columns:minmax(0,1fr);padding:48px 20px 22px}
  .row2,.row3{grid-template-columns:minmax(0,1fr)}
  .brand .bt small,.mb-clock{display:none}
  .dock a{width:46px;height:46px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.part{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--edge)}
.window > .lec + .part{border-top:0;padding-top:4px}
.window .curso-top{margin-bottom:4px}

.foot .wrap{padding-bottom:96px}
/* página de curso con guía integrada */
body.curso-page main{gap:14px;padding-bottom:110px}
.curso-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-radius:var(--r-lg);padding:14px 18px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);border:1px solid var(--glass-line);box-shadow:var(--shadow)}
.curso-bar h1{font-size:clamp(1.3rem,2.6vw,1.8rem)}
.cb-txt{flex:1;min-width:0}
.cb-actions{display:flex;gap:8px;flex-wrap:wrap}
.guia-frame{width:100%;height:calc(100vh - 230px);min-height:560px;border:0;border-radius:24px;box-shadow:var(--shadow);background:var(--wall-base)}
body.curso-page .foot{display:none}

/* ---- Simulador de laudos ---- */
.d-calc{background:linear-gradient(160deg,#fbbf24,#ea580c)}
body.sim-page main{gap:14px;padding-bottom:120px;max-width:1360px}
body.sim-page .foot{display:none}
.cb-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.cb-txt h1{margin:0;font:700 1.45rem var(--f-display);letter-spacing:-.01em}
.sim{display:grid;grid-template-columns:minmax(300px,400px) 1fr;gap:16px;align-items:start}
.sim-in{display:flex;flex-direction:column;gap:12px;position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto;padding:2px 4px 20px 2px;scrollbar-width:thin}
.sim-out{display:flex;flex-direction:column;gap:14px;min-width:0}
.sim .window{padding:40px 18px 18px;gap:10px}
.sim .window h3{margin:0;font:700 1rem var(--f-display)}
.st-h{display:flex;align-items:center;gap:10px}
.st-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font:700 .8rem var(--f-ui);flex:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.row3 input{padding:8px 6px;font-size:.85rem}
.sup-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.supb{all:unset;cursor:pointer;display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:1px;align-items:center;padding:10px 12px;border-radius:var(--r-md);background:var(--glass-strong);border:1.5px solid var(--edge);transition:transform .12s,border-color .15s,box-shadow .15s}
.supb:hover{transform:translateY(-1px)}
.supb:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.supb .sl{grid-row:span 2}
.supb b{font:600 .84rem var(--f-ui);color:var(--ink);line-height:1.2}.supb small{font-size:.72rem;color:var(--muted)}
.supb[aria-checked="true"]{border-color:var(--sc);box-shadow:0 0 0 3px color-mix(in srgb,var(--sc) 22%,transparent);background:color-mix(in srgb,var(--sc) 10%,var(--glass-strong))}
.sl{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font:800 .9rem var(--f-display);background:var(--sc,var(--blue));flex:none}
.chk{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink)}.chk input{width:auto}
input[type=range]{padding:0;border:0;background:transparent;accent-color:var(--blue)}
.rng-l{display:flex;justify-content:space-between;font-size:.74rem;color:var(--soft)}.rng-l span:nth-child(2){color:var(--ink);font-weight:600}
.kpis4{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:12px}
.kpi{background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.6);backdrop-filter:blur(24px) saturate(1.6);border:1px solid var(--glass-line);box-shadow:var(--shadow);border-radius:var(--r-lg);padding:16px 18px;min-width:0}
.kpi .k{font:600 .72rem var(--f-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--soft)}
.kpi .v{font:700 1.9rem var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;overflow-wrap:anywhere}
.kpi .v.sm{font-size:1.05rem}.kpi .s{font-size:.8rem;color:var(--muted)}
.kpi.big{background:linear-gradient(135deg,#0a7aff,#7b3fe4);color:#fff;border:0}.kpi.big .k,.kpi.big .s{color:rgba(255,255,255,.82)}
.alerts{display:flex;flex-direction:column;gap:6px}.alerts .alert{padding:9px 14px;font-size:.86rem}
.alerts .alert:not(.ok):not(.bad){--c:var(--sv)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.donut{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.dn{width:170px;flex:none}.dn-k{font:600 9px var(--f-ui);fill:var(--muted);text-transform:uppercase}.dn-v{font:700 15px var(--f-display);fill:var(--ink)}
.legend{list-style:none;margin:0;padding:0;flex:1;min-width:180px;display:flex;flex-direction:column;gap:5px;font-size:.82rem}
.legend li{display:grid;grid-template-columns:10px 1fr auto 46px;gap:8px;align-items:center}
.legend i{width:10px;height:10px;border-radius:3px}.legend b{font-variant-numeric:tabular-nums}.legend small{color:var(--soft);text-align:right}
.pj{width:100%;height:auto}.pj .gl{stroke:var(--edge)}.pj .ax{font:10px var(--f-ui);fill:var(--soft)}.pj .ax.b{fill:var(--blue);font-weight:700}
.pj .ls{fill:none;stroke:#0a7aff;stroke-width:2.5}.pj .lc{fill:none;stroke:#ef4444;stroke-width:2;stroke-dasharray:5 4}.pj .mk{stroke:var(--blue);stroke-dasharray:3 3}
.pj-l{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted)}.pj-l i{display:inline-block;width:16px;height:3px;vertical-align:middle;margin-right:5px}
.ls2{background:#0a7aff}.lc2{background:#ef4444}
.tl-wrap{padding:8px 4px 4px}
.tl{position:relative;height:96px;margin:0 46px}
.tl::before{content:"";position:absolute;left:0;right:0;top:30px;height:4px;border-radius:2px;background:var(--edge)}
.tl .seg{position:absolute;top:22px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;min-width:4px}
.tl .seg span{font:600 .7rem var(--f-ui);color:#fff;white-space:nowrap;padding:0 8px;overflow:hidden;text-overflow:ellipsis}
.tl .seg.sv{background:linear-gradient(90deg,#f59e0b,#f97316)}.tl .seg.in{background:linear-gradient(90deg,#ef4444,#be123c)}
.tl .mkr{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;padding-top:50px;font-size:.72rem;text-align:center;white-space:nowrap}
.tl .mkr::before{content:"";position:absolute;top:18px;width:3px;height:28px;border-radius:2px;background:var(--ink)}
.tl .mkr.lim::before{background:#f97316}.tl .mkr.pay::before{background:var(--blue)}
.tl .mkr b{font-size:.74rem}.tl .mkr small{color:var(--muted)}
.ced{width:100%;border-collapse:collapse;font-size:.88rem}
.ced th{text-align:left;font:600 .72rem var(--f-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--soft);padding:8px 10px;border-bottom:1px solid var(--edge)}
.ced td{padding:9px 10px;border-bottom:1px solid var(--edge);vertical-align:top}
.ced .num,.cmpt .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ced .op{font:400 .76rem var(--f-mono);color:var(--muted);margin-top:2px}
.ced .dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px}
.ced tr.off{opacity:.42}.ced tr.off .num{text-decoration:line-through}
.ced tr.tot td,.cmpt tr.tot td{font-weight:700;border-top:2px solid var(--ink);border-bottom:0}
.sim .tbl{border-radius:var(--r-md);overflow-x:auto;padding:0;background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.esc-h{display:flex;justify-content:space-between;align-items:baseline}
.esc-list{display:flex;flex-direction:column;gap:6px}
.esc{display:grid;grid-template-columns:auto auto 1fr auto auto auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r-md);background:var(--glass-strong);border:1px solid var(--edge)}
.esc.on{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}
.esc .sl{width:26px;height:26px;font-size:.8rem}
.esc-t{min-width:0}.esc-t b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esc-t small{color:var(--muted);font-size:.74rem}
.esc-v{font-variant-numeric:tabular-nums}
.cmpchk input{width:18px;height:18px;accent-color:var(--blue)}
.btn.sm{padding:5px 11px;font-size:.78rem}
.btn.danger{background:var(--err)}
.cmpt{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:10px}
.cmpt th,.cmpt td{padding:8px 10px;border-bottom:1px solid var(--edge)}.cmpt th{font-size:.8rem;text-align:right}.cmpt th:first-child{text-align:left}
.cmpt small.up{color:var(--err)}.cmpt small.dn2{color:var(--dev)}
.toast{position:fixed;left:50%;bottom:104px;transform:translateX(-50%);z-index:60;padding:10px 18px;border-radius:12px;background:#1c1f2a;color:#fff;font:600 .88rem var(--f-ui);box-shadow:var(--shadow)}
.toast.bad{background:var(--err)}
@media (max-width:1020px){.sim{grid-template-columns:1fr}.sim-in{position:static;max-height:none;overflow:visible}.kpis4{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}}
@media (max-width:600px){.row2,.row3,.sup-grid{grid-template-columns:1fr}.esc{grid-template-columns:auto auto 1fr;}.esc .esc-v{grid-column:3}.esc .btn{grid-column:auto}.kpis4{grid-template-columns:1fr}.tl{margin:0 30px}}
.donut{flex-direction:column;align-items:stretch}.donut .dn{align-self:center}.legend li span{min-width:0}
a.reg-link{font-weight:700;color:var(--blue);text-decoration:none;padding:1px 7px;border-radius:6px;background:var(--blue-soft);white-space:nowrap}a.reg-link:hover{filter:brightness(1.1);text-decoration:underline}
