:root{--bg:#020507;--ink:#c8e9f2;--dim:#4d7c8a;--line:#0d2630;--cyan:#57d8ff;--crit:#e34bff;--high:#ff7a1a;--med:#ffb200;--low:#ffd166;--ok:#7fd4a8}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,sans-serif;overflow:hidden}.mono,#crumb,.finding .file,.finding .id,.diff,.prfiles span,button,#v-files,#v-kb,#v-big{font-family:IBM Plex Mono,monospace}a{color:var(--cyan);text-decoration:none}a:hover{color:#9fe8ff}#stage{position:fixed;top:0;right:0;bottom:0;left:0}canvas{display:block}.hud{position:fixed;z-index:10;pointer-events:none}.hud>*{pointer-events:auto}button{font-family:IBM Plex Mono,monospace}#banner{top:18px;left:20px;display:flex;flex-direction:column;gap:6px}#banner .title{font-size:15px;font-weight:600;letter-spacing:.22em;color:#e8f7fb}#banner .title b{color:var(--cyan);font-weight:600}#patients{display:flex;gap:6px;margin:2px 0}.pt{font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.12em;padding:5px 11px;background:none;border:1px solid #14424f;color:var(--dim);cursor:pointer}.pt.on{color:var(--cyan);border-color:var(--cyan);background:#57d8ff12}#banner .meta{font-size:11.5px;line-height:1.7;color:var(--dim);letter-spacing:.04em}#banner .meta span{color:var(--ink)}#coverage{font-size:10.5px;color:#3f7484;max-width:320px;line-height:1.55;margin-top:2px}#crumb{top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.06em;padding:7px 13px;border:1px solid var(--line);background:#02080bb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}#crumb .seg{color:var(--dim);cursor:pointer;background:none;border:none;font:inherit;padding:0;letter-spacing:inherit}#crumb .seg:hover{color:var(--cyan)}#crumb .seg.cur{color:var(--ink);cursor:default}#crumb .sep{color:#1e4552}#flowtoggle{top:60px;left:50%;transform:translate(-50%)}#flowbtn{font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.14em;padding:5px 11px;background:none;border:1px solid #14424f;color:var(--dim);cursor:pointer}#flowbtn.on{color:#ffb200;border-color:#8a6200}#flownote{display:none;font-size:10.5px;color:#a08f4d;letter-spacing:.03em;margin-top:5px;text-align:center;max-width:460px}#flowbtn.on+#flownote{display:block}#leftcol{left:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;width:292px;max-height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}#vitals,#legend,#compare{width:292px;border:1px solid var(--line);background:#02080bb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:14px 16px}#legend{padding:12px 16px}.lrow{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.01em;color:var(--dim);line-height:2;white-space:nowrap;overflow:hidden}.lrow svg{flex:none}.lrow b{color:var(--ink);font-weight:500}#vitals h2,#legend h2,#report h2,#compare h2{font-size:11px;letter-spacing:.24em;color:var(--dim);font-weight:500;margin-bottom:10px}#score{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}#score .num{font-size:36px;font-weight:600}#score .word{font-size:10.5px;letter-spacing:.06em;line-height:1.5}#score .delta{font-size:11px;color:var(--ok);margin-left:auto}#dims{margin-bottom:8px}.dim{display:grid;grid-template-columns:1fr auto;font-size:11px;line-height:1.6;padding:4px 0;border-bottom:1px solid #071820}.dim .dn{color:#8ab4c1;letter-spacing:.06em}.dim .ds{font-weight:600;text-align:right}.dim .de{grid-column:1 / -1;color:#41707f;font-size:10px}.vrow{display:flex;justify-content:space-between;font-size:12px;line-height:1.9;color:var(--dim)}.vrow b{color:var(--ink);font-weight:500}.sevdots{display:flex;gap:10px;margin-top:6px;font-size:11px}.sevdots span{display:flex;align-items:center;gap:5px;color:var(--dim)}.dot{width:7px;height:7px;border-radius:50%}#compare{display:none;padding:10px 16px}#compare.on{display:block}#compare table{width:100%;border-collapse:collapse;font-size:11px}#compare td{padding:2px 0;color:var(--dim)}#compare td:nth-child(2),#compare td:nth-child(3){text-align:right;color:var(--ink)}#compare th{font-size:10px;color:#3f7484;text-align:right;font-weight:500;letter-spacing:.08em}#compare th:first-child{text-align:left}#report{right:20px;top:18px;bottom:20px;width:392px;display:flex;flex-direction:column;border:1px solid var(--line);background:#02080bc7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#report header{padding:14px 16px 10px;border-bottom:1px solid var(--line);position:relative}#runscan{position:absolute;top:12px;right:14px;font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.14em;color:var(--cyan);background:none;border:1px solid #14424f;padding:6px 10px;cursor:pointer;transition:all .15s}#runscan:hover{background:#57d8ff1a;border-color:var(--cyan)}#awaiting{padding:18px 16px;font-size:11.5px;color:var(--dim);letter-spacing:.06em}#simbanner{display:none;padding:9px 16px;font-size:10.5px;letter-spacing:.04em;color:#ffb200;border-bottom:1px solid #3a2c00;background:#46320026}#simbanner.on{display:block}#report header .sub{font-size:11.5px;color:var(--dim);letter-spacing:.02em;margin-top:5px}#findings{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.finding{padding:12px 16px;border-bottom:1px solid #071820;cursor:pointer;transition:background .15s;animation:fin .45s ease both}@keyframes fin{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.finding:hover{background:#57d8ff0d}.finding.active{background:#57d8ff17;box-shadow:inset 2px 0 0 var(--cyan)}.finding .head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#e4f5fa}.finding .id{font-size:10.5px;padding:1px 6px;border:1px solid;border-radius:2px;letter-spacing:.06em;flex:none}.finding .file{font-size:10.5px;color:var(--dim);margin-top:4px;word-break:break-all}.finding .body,.finding .rx,.finding .ev,.finding .ops{display:none;font-size:12px;line-height:1.65;margin-top:8px;color:#9cc0cc}.finding.active .body,.finding.active .rx,.finding.active .ev{display:block}.finding .rx{color:#bfe9d3}.finding .rx:before{content:"FIX  ";color:var(--ok);font-weight:600;letter-spacing:.15em}.finding .ev{color:#4a7a89;font-size:10.5px}.finding .ev:before{content:"evidence: "}.finding.active .ops{display:flex;gap:8px}.finding .prstate{font-size:10.5px;line-height:1.7;color:#8ab4c1;margin-top:6px}.opbtn{font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.1em;padding:5px 10px;background:none;border:1px solid #1e5a45;color:var(--ok);cursor:pointer}.opbtn:hover{background:#7fd4a814}.opbtn.revert{border-color:#5a3a1e;color:#ffb200}.opbtn.pr{border-color:#14424f;color:var(--cyan)}#calib{display:none;padding:10px 16px;border-top:1px solid #3a2c00;font-size:10.5px;line-height:1.7;color:#c9a23f}#calib.on{display:block}#healthy{padding:10px 16px 14px;border-top:1px solid var(--line);font-size:10.5px;line-height:1.8;color:#4a8a75}#healthy div:before{content:"✓ ";color:var(--ok)}#proverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:none;background:#010406d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#proverlay.on{display:flex;align-items:center;justify-content:center}#prpanel{width:min(720px,92vw);max-height:88vh;overflow-y:auto;border:1px solid #14424f;background:#030b0f;padding:0 0 18px;scrollbar-width:thin}#prhead{position:sticky;top:0;background:#052030;padding:11px 16px;display:flex;align-items:center;gap:10px;font-size:11.5px;letter-spacing:.08em;color:#ffb200;border-bottom:1px solid #14424f}#prhead b{color:#ffd166}#prclose{margin-left:auto;background:none;border:1px solid #14424f;color:var(--dim);font-size:11px;padding:4px 9px;cursor:pointer}#prbody{padding:14px 16px}.prstep{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dim);padding:30px 0}.spin{width:12px;height:12px;border:2px solid #14424f;border-top-color:var(--cyan);border-radius:50%;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.prsec h3{font-size:11px;letter-spacing:.2em;color:var(--dim);margin:14px 0 8px}.prmeta{font-size:11.5px;color:#8ab4c1;line-height:1.7;margin-bottom:8px}.prmeta b{color:var(--ink)}.prfiles{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.prfiles span{font-size:10.5px;padding:2px 7px;border:1px solid #0d3a49;color:#8fc3d2}.diff{font-size:11px;line-height:1.55;color:#9cc0cc;background:#020608;border:1px solid #0a1e28;padding:10px 12px;overflow-x:auto;white-space:pre;max-height:320px;overflow-y:auto}.prcard{border:1px solid #14424f;padding:11px 13px;margin-bottom:10px}.prtitle{font-size:13px;font-weight:600;color:#e4f5fa;margin-bottom:6px}.prdesc{font-size:11.5px;line-height:1.7;color:#9cc0cc}#tip{position:fixed;z-index:20;pointer-events:none;display:none;max-width:360px;padding:9px 11px;border:1px solid #14424f;background:#030a0ef0;font-size:12px;line-height:1.6}#tip .p{color:#e4f5fa;word-break:break-all}#tip .m{color:var(--dim)}.organ{position:fixed;z-index:5;pointer-events:none;font-size:11px;letter-spacing:.14em;color:#3a6b7a;text-transform:uppercase;transform:translate(-50%,-50%);white-space:nowrap}.organ b{color:#74a3b0;font-weight:500}.symlabel{position:fixed;z-index:6;pointer-events:none;font-size:10.5px;letter-spacing:.02em;color:#9fd0de;transform:translate(-50%,-140%);white-space:nowrap;text-shadow:0 0 4px #020507}.symlabel i{color:#5a8a99;font-style:normal}#hint{bottom:22px;left:50%;transform:translate(-50%);font-size:11px;letter-spacing:.1em;color:#3a6b7a}#splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:var(--bg);transition:opacity .6s}#splash .t{letter-spacing:.35em;font-size:13px;color:var(--cyan)}#splash .s{font-size:10px;color:var(--dim);letter-spacing:.1em}#splash.done{opacity:0;pointer-events:none}#onboard{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:none;background:linear-gradient(90deg,#020507f5,#020507db 46%,#02050759);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow-y:auto}#onboard.on{display:block}body:has(#onboard.on) .hud,body:has(#onboard.on) #mobilebar,body:has(#onboard.on) .organ,body:has(#onboard.on) #tip{visibility:hidden}#obpanel{min-height:100%;display:grid;grid-template-columns:minmax(0,520px) 1fr;align-items:center;gap:48px;padding:clamp(28px,6vh,72px) clamp(20px,6vw,88px)}#obleft{display:flex;flex-direction:column;gap:22px}#obbrand{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.3em;color:#e8f7fb;font-weight:600}#obbrand b{color:var(--cyan);font-weight:600}#obbrand .pill{font:500 10px IBM Plex Mono,monospace;letter-spacing:.14em;color:var(--dim);border:1px solid var(--line);padding:3px 8px}#obpanel h1{font-family:IBM Plex Sans,system-ui,sans-serif;font-size:clamp(30px,4.4vw,50px);line-height:1.05;font-weight:500;letter-spacing:-.015em;color:#eef9fc;text-wrap:balance}#obpanel h1 em{font-style:normal;color:var(--cyan)}#obpanel .obsub{font-size:14.5px;color:#8ab4c1;line-height:1.65;max-width:46ch;text-wrap:pretty}#obpanel label{display:block;font-size:10.5px;letter-spacing:.2em;color:var(--dim);margin-bottom:8px}#obrow{display:flex;gap:8px}#oburl{flex:1;min-width:0;height:46px;background:#020608d9;border:1px solid #14424f;color:var(--ink);font:13.5px IBM Plex Mono,monospace;padding:0 14px;outline:none}#oburl:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #57d8ff14}#oburl::placeholder{color:#33606e}#oblink{height:46px;font:600 11.5px IBM Plex Mono,monospace;letter-spacing:.14em;padding:0 20px;background:#57d8ff1a;border:1px solid var(--cyan);color:var(--cyan);cursor:pointer;flex:none}#oblink:hover{background:#57d8ff2e}#obsteps{display:none}#obsteps .step{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--dim);line-height:2.1}#obsteps .step.done{color:#7fd4a8}#obsteps .step.done:before{content:"✓";color:var(--ok)}#obsteps .step.active{color:var(--ink)}#obsteps .step.active:before{content:"";width:10px;height:10px;border:2px solid #14424f;border-top-color:var(--cyan);border-radius:50%;animation:sp 1s linear infinite;flex:none}#obsteps .step.wait:before{content:"·";color:#1e4552}#obdemos .demolist{display:flex;flex-wrap:wrap;gap:8px}.demo{font:500 11px IBM Plex Mono,monospace;letter-spacing:.06em;padding:9px 13px;min-height:38px;background:#02080b99;border:1px solid #14424f;color:#8ab4c1;cursor:pointer;display:flex;align-items:center;gap:8px}.demo i{font-style:normal;font-weight:600;color:var(--dim)}.demo:hover{color:var(--cyan);border-color:var(--cyan)}#obdemobanner{display:none;font-size:11px;color:#c9a23f;padding:8px 11px;border:1px solid #3a2c00;background:#46320026}#obnote{font-size:11.5px;color:#4a7a89;line-height:1.7;border-top:1px solid var(--line);padding-top:14px;max-width:52ch}#obnote b{color:#7fd4a8;font-weight:500}#obright{display:flex;flex-direction:column;gap:10px;max-width:380px;justify-self:end}#obright h2{font-size:10.5px;letter-spacing:.24em;color:var(--dim);font-weight:500;margin-bottom:4px}.obkey{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);background:#02080bb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.obkey .sw{width:34px;height:34px;border-radius:50%;position:relative}.obkey .sw.q{background:radial-gradient(circle at 35% 35%,#4f7f8c,#1a3540 70%,#0b1a21);box-shadow:0 0 0 1px #1d4552 inset}.obkey .sw.g{background:radial-gradient(circle at 35% 35%,#ffd27a,#ff7a1a 60%,#7a2e00);box-shadow:0 0 22px 4px #ff7a1a73}.obkey .sw.v{background:radial-gradient(circle at 35% 35%,#f3b1ff,#e34bff 60%,#5a0f6e);box-shadow:0 0 22px 4px #e34bff66;animation:strobe 2s ease-in-out infinite}@keyframes strobe{50%{box-shadow:0 0 6px 1px #e34bff26}}.obkey b{display:block;font-size:13px;font-weight:600;color:#e4f5fa;margin-bottom:2px}.obkey span{font-size:11.5px;color:#8ab4c1;line-height:1.5}.obdims{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.obdims span{font:500 10px IBM Plex Mono,monospace;letter-spacing:.1em;color:var(--dim);border:1px solid var(--line);padding:4px 8px}@media (max-width:900px){#onboard{background:linear-gradient(180deg,#020507e6,#020507f5)}#obpanel{grid-template-columns:1fr;gap:34px;align-items:start;padding:32px 20px 40px}#obright{max-width:none;justify-self:stretch}.demo{min-height:44px}}#mobilebar{display:none}@media (max-width:760px){#banner{top:14px;left:14px;right:14px;gap:4px}#banner .meta,#coverage{display:none}#patients{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pt{flex:none;min-height:34px}#crumb{top:auto;bottom:64px;left:14px;right:14px;transform:none;overflow-x:auto;scrollbar-width:none;font-size:11px}#flowtoggle{top:70px;left:14px;transform:none}#flownote{text-align:left;max-width:80vw}#hint{display:none}.organ{font-size:9.5px}#leftcol,#report{position:fixed;left:0;right:0;top:auto;bottom:52px;width:auto;max-height:min(62vh,520px);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);border-left:none;border-right:none;z-index:12}#leftcol{gap:0;overflow-y:auto;background:#02080bf0;border-top:1px solid var(--line)}#leftcol.open,#report.open{transform:none}#vitals,#legend,#compare{width:auto;border-left:none;border-right:none}#compare{display:block!important}#legend{display:none}#report{background:#02080bf0}#mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;height:52px;z-index:13;border-top:1px solid var(--line);background:#02080bf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:env(safe-area-inset-bottom)}#mobilebar button{flex:1;background:none;border:none;border-right:1px solid var(--line);color:var(--dim);font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.18em;min-height:44px;cursor:pointer}#mobilebar button:last-child{border-right:none}#mobilebar button.on{color:var(--cyan);box-shadow:inset 0 2px 0 var(--cyan)}#mobilebar button i{font-style:normal;color:var(--ink);margin-left:6px}#tip{max-width:calc(100vw - 28px);left:14px!important}#prpanel{width:100vw;max-height:100vh;height:100%}#proverlay.on{align-items:stretch}}@media (min-width:761px) and (max-width:1100px){#report{width:320px}#vitals,#legend,#compare,#leftcol{width:248px}}@media (max-height:700px){#legend,#hint{display:none}}@media (max-height:780px){#compare{display:none!important}.dim{padding:1px 0}.dim .de{display:none}}
