:root{--bg:#f3f6fa;--card:#fff;--ink:#0f2438;--muted:#5b6f84;--line:#e1e8f0;--brand:#0b3a5b;--brand2:#0d5c82;--accent:#0fa3a3;--accent-d:#0b7f7f;
--ok:#168a52;--warn:#d98a0b;--bad:#c8362f;--info:#2b6fd6;--side:#0a2a43;--side2:#0e3a5b;--r:12px;--sh:0 1px 2px rgba(10,40,70,.06),0 6px 18px rgba(10,40,70,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14.5px;line-height:1.45}
a{color:var(--brand2);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:0 0 10px}h3{font-size:14.5px;margin:0 0 6px}
.layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{background:linear-gradient(180deg,var(--side),var(--side2));color:#cfe3f3;padding:16px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:6px 8px 16px;color:#fff;font-weight:700;font-size:16px}
.brand svg{width:34px;height:34px}.brand small{display:block;font-weight:400;font-size:11px;color:#8fb3cf}
.navg{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#7ea4c2;margin:16px 10px 6px}
.side a{display:flex;align-items:center;gap:10px;color:#cfe3f3;padding:8px 10px;border-radius:9px;font-size:14px}
.side a:hover{background:rgba(255,255,255,.07);text-decoration:none}
.side a.on{background:rgba(15,163,163,.22);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.side .ic{width:17px;height:17px;flex:none;opacity:.9}
.main{display:flex;flex-direction:column;min-width:0}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 26px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top .who{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;background:#e8f4f4;color:var(--accent-d)}
.chip.ia{background:#efeafe;color:#5b3fc4}.chip.bad{background:#fde8e6;color:var(--bad)}.chip.warn{background:#fff3dc;color:#a96806}.chip.ok{background:#e1f5ea;color:var(--ok)}.chip.gray{background:#eef2f6;color:var(--muted)}
.wrap{padding:22px 26px 40px;max-width:1500px;width:100%}
.demo-banner{background:#fff8e6;border-bottom:1px solid #f0d99a;color:#7a5a05;font-size:12.5px;padding:5px 26px;text-align:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;margin-bottom:16px}
.card.flat{box-shadow:none}.card h2 .sub{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}.g21{grid-template-columns:2fr 1fr}.g12{grid-template-columns:1fr 2fr}
@media(max-width:1250px){.g5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.g3,.g4,.g5{grid-template-columns:repeat(2,1fr)}.g21,.g12{grid-template-columns:1fr}}
@media(max-width:820px){.layout{grid-template-columns:1fr}.side{position:static;height:auto}.g2,.g3,.g4,.g5{grid-template-columns:1fr}.wrap{padding:14px}}
.kpi{display:flex;flex-direction:column;gap:2px}.kpi .n{font-size:28px;font-weight:700;letter-spacing:-.5px}.kpi .l{color:var(--muted);font-size:12.5px}.kpi .d{font-size:12px;margin-top:2px}
.kpi.bad .n{color:var(--bad)}.kpi.ok .n{color:var(--ok)}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;gap:12px;flex-wrap:wrap}.pagehead p{margin:0;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:hover td{background:#f8fbfd}
.tw{overflow:auto}.num{text-align:right;font-variant-numeric:tabular-nums}
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.btn:hover{background:#f1f6fa;text-decoration:none}.btn.pri{background:var(--brand2);color:#fff;border-color:var(--brand2)}.btn.pri:hover{background:var(--brand)}
.btn.ia{background:linear-gradient(135deg,#5b3fc4,#2b6fd6);color:#fff;border:0}.btn.ia:hover{filter:brightness(1.08)}.btn.sm{padding:5px 10px;font-size:12.5px}.btn:disabled{opacity:.55;cursor:wait}
input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid #cfd9e4;border-radius:8px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #9ed8d8;border-color:var(--accent)}textarea{min-height:70px;resize:vertical}
label{font-size:12.5px;font-weight:600;color:var(--muted);display:block;margin:0 0 4px}.fr{display:grid;gap:12px}.f2{grid-template-columns:1fr 1fr}.f3{grid-template-columns:repeat(3,1fr)}.f4{grid-template-columns:repeat(4,1fr)}.f6{grid-template-columns:repeat(6,1fr)}.f8{grid-template-columns:repeat(8,1fr)}
@media(max-width:900px){.f3,.f4,.f6,.f8{grid-template-columns:repeat(2,1fr)}}
.filters{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.filters>*{width:auto;min-width:150px}
.tag{display:inline-block;padding:2px 8px;border-radius:6px;background:#eef3f8;font-size:12px;color:#37526b;margin:1px 3px 1px 0}
.tag.red{background:#fde8e6;color:var(--bad)}.tag.grn{background:#e1f5ea;color:var(--ok)}.tag.amb{background:#fff3dc;color:#a96806}
.score{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:3px 9px;border-radius:99px;font-weight:700;font-size:13px;color:#fff}
.sc-hi{background:var(--ok)}.sc-md{background:var(--warn)}.sc-lo{background:var(--bad)}
.rk-hi{background:var(--bad)}.rk-md{background:var(--warn)}.rk-lo{background:var(--ok)}
.bar{height:8px;background:#e8eef4;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}
.alert{padding:10px 14px;border-radius:10px;border:1px solid;margin-bottom:12px;font-size:13.5px}
.alert.red{background:#fdecea;border-color:#f3b8b3;color:#8e2620}.alert.amb{background:#fff6e0;border-color:#f0d58f;color:#7a5a05}.alert.blue{background:#e8f1fd;border-color:#b7d0f3;color:#1d4f9c}.alert.grn{background:#e3f6ec;border-color:#a9dcc0;color:#14693f}
.aiBox{border:1px solid #d9d0fa;background:linear-gradient(180deg,#faf8ff,#f4f1ff);border-radius:var(--r);padding:14px 16px}
.aiBox h3{color:#5b3fc4;display:flex;gap:8px;align-items:center}.aiBox ul{margin:6px 0 6px 18px;padding:0}.aiBox .meta{font-size:11.5px;color:var(--muted);margin-top:8px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:sp .8s linear infinite}.aiBox .spin{border-color:#cbbff5;border-top-color:#5b3fc4}
@keyframes sp{to{transform:rotate(360deg)}}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs a{padding:7px 14px;border-radius:99px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:13px}.tabs a.on{background:var(--brand2);color:#fff;border-color:var(--brand2);text-decoration:none}
.tl{position:relative;margin-left:8px;padding-left:20px;border-left:2px solid var(--line)}.tl .it{position:relative;margin-bottom:16px}.tl .it:before{content:"";position:absolute;left:-27px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 2px var(--accent)}
.soap{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}.soap div{background:#f7fafc;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}.soap b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
@media(max-width:700px){.soap{grid-template-columns:1fr}}
.vit{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.vit span{background:#eef6fb;border-radius:8px;padding:3px 9px;font-size:12.5px}.vit b{color:var(--brand)}
/* login */
.loginwrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.hero{background:radial-gradient(1200px 600px at 20% 10%,#0e5d83 0,#0a2a43 55%,#07192a 100%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:center}
.hero h1{font-size:34px;line-height:1.15;margin:16px 0 10px}.hero p{color:#b8d2e6;max-width:520px;font-size:15.5px}
.hero .pill{display:inline-block;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:4px 12px;border-radius:99px;font-size:12.5px;margin:4px 6px 0 0}
.lbox{display:flex;align-items:center;justify-content:center;padding:36px}.lbox .inner{width:100%;max-width:420px}
.demoU{display:grid;gap:8px;margin:14px 0}.demoU button{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;padding:11px 14px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;font-family:inherit}
.demoU button:hover{border-color:var(--accent);background:#f2fbfb}.demoU b{display:block;font-size:14px}.demoU span{font-size:12px;color:var(--muted)}
@media(max-width:900px){.loginwrap{grid-template-columns:1fr}.hero{padding:30px}}
/* viewer */
.viewer{background:#000;border-radius:12px;position:relative;overflow:hidden;height:560px;display:flex;align-items:center;justify-content:center;cursor:grab;user-select:none}
.viewer .stage{position:relative;transform-origin:center center;line-height:0}.viewer img{max-height:560px;max-width:100%;display:block;pointer-events:none}
.bbox{position:absolute;border:2px solid #ffcf33;box-shadow:0 0 0 1px rgba(0,0,0,.5);border-radius:3px}.bbox span{position:absolute;left:-2px;top:-22px;background:#ffcf33;color:#000;font-size:11px;line-height:16px;font-weight:700;padding:1px 6px;border-radius:3px;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.vtools{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.vtools input[type=range]{width:120px;padding:0}
.dbar{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:13px}.dbar .b{flex:1;height:9px;background:#e9e5fa;border-radius:99px;overflow:hidden}.dbar .b i{display:block;height:100%;background:linear-gradient(90deg,#5b3fc4,#2b6fd6)}
/* UCI */
.bed{border:2px solid var(--line);border-radius:14px;background:#0f1d2b;color:#d8e8f4;padding:12px 14px;position:relative;overflow:hidden}
.bed.alto{border-color:var(--bad);animation:pulse 1.4s infinite}.bed.medio{border-color:var(--warn)}.bed.bajo{border-color:#1f4a3a}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(200,54,47,.28)}}
.bed .hd{display:flex;justify-content:space-between;align-items:center;font-size:12.5px}.bed .nm{font-weight:700;font-size:14.5px;color:#fff;margin-top:2px}.bed .dx{font-size:11.5px;color:#8fb0c9;min-height:30px}
.mon{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.mon div{background:#0a1520;border-radius:8px;padding:6px 8px}.mon small{color:#7fa1ba;font-size:10.5px;display:block}.mon b{font-size:22px;font-variant-numeric:tabular-nums;font-family:Consolas,monospace}
.fcc{color:#4be38b}.spc{color:#5fd4ff}.prc{color:#ffd24a}.frc{color:#f7a8ff}.tpc{color:#ff9d6e}
.news{font-weight:800;padding:2px 9px;border-radius:7px;color:#fff;font-size:13px}.news.bajo{background:#168a52}.news.medio{background:#d98a0b}.news.alto{background:#c8362f}
.bed .al{font-size:11.5px;background:rgba(200,54,47,.2);border:1px solid rgba(200,54,47,.6);color:#ffc9c5;border-radius:7px;padding:5px 8px;margin-top:6px}
.spark{height:36px;width:100%}
/* turnos */
.rost td,.rost th{text-align:center;padding:5px 4px;font-size:12px}.rost td:first-child,.rost th:first-child{text-align:left;white-space:nowrap}
.sh{display:inline-block;width:26px;height:22px;line-height:22px;border-radius:6px;font-weight:700;font-size:11.5px;color:#fff}.sh.M{background:#2b6fd6}.sh.T{background:#d98a0b}.sh.N{background:#4b3a9a}.sh.L{background:#dfe6ee;color:#7a8da1}
.cov.ok{color:var(--ok);font-weight:700}.cov.bad{color:var(--bad);font-weight:700}
.pt{display:inline-flex;align-items:center;gap:4px;border-radius:7px;padding:3px 8px;margin:2px;font-size:12px;font-weight:600;color:#fff}.a1{background:#6aa84f}.a2{background:#93c47d;color:#1d3b10}.a3{background:#e6b422;color:#4a3500}.a4{background:#e8803a}.a5{background:#c8362f}
.chat{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:4px}.msg{max-width:86%;padding:10px 13px;border-radius:12px;font-size:14px}.msg.u{align-self:flex-end;background:var(--brand2);color:#fff}.msg.a{align-self:flex-start;background:#f0f4f8}
.msg .src{font-size:11.5px;color:var(--muted);margin-top:6px;border-top:1px dashed #cfd9e4;padding-top:5px}
.footer{margin-top:auto;padding:14px 26px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);background:#fff}
canvas{max-width:100%}
.ph{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.tri1{background:#c8362f}.tri2{background:#e8803a}.tri3{background:#e6b422;color:#3a2c00}.tri4{background:#3a9d5d}.tri5{background:#2b6fd6}
.lvl{display:inline-flex;width:28px;height:28px;border-radius:8px;color:#fff;font-weight:800;align-items:center;justify-content:center}
.ax{display:flex;gap:6px;margin:8px 0 0}.ax .b{flex:1;padding:8px 10px;border-radius:10px;font-size:12.5px;border:1px solid var(--line);background:#fff}
@media print{.side,.top,.demo-banner,.footer,.btn{display:none!important}.layout{display:block}}
