:root{
  color-scheme:light;--bg:#f3f6fc;--ink:#142245;--muted:#536584;--line:#e2eaf5;--blue:#3156e8;--nav:#15234a;--side:227px;
  --mint:#157354;--amber:#855017;--red:#a5324d;--shadow:0 2px 7px #14224506,0 9px 30px #21356805;
  font:15px/1.43 "Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}h1,h2,h3,p{margin:0}
h1,h2,h3{letter-spacing:-.035em;line-height:1.2}a{color:inherit;text-decoration:none}button,input,select{font:inherit}
button{cursor:pointer}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}
:focus-visible{outline:3px solid #829eff;outline-offset:3px}#main{outline:none}
.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip:focus{position:fixed;z-index:10;top:10px;left:10px;background:white;padding:10px;border-radius:8px}
.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}
.side{position:fixed;inset:0 auto 0 0;width:var(--side);padding:25px 16px 17px;color:#fff;display:flex;flex-direction:column;overflow:auto;z-index:2;background:linear-gradient(169deg,#172650,#101b3e 70%,#182852)}
.brand{display:flex;gap:10px;align-items:center;padding:0 5px;margin-bottom:36px}.brand strong{display:block;font-size:20px;letter-spacing:-.045em}
.brand small,.side-foot small{display:block;color:#aabadd;font-size:9px;font-weight:680;letter-spacing:.085em}
.nav-label{color:#a3b3d6;font-size:10px;font-weight:750;letter-spacing:.13em;margin:0 10px 9px}.nav-label.extra{margin-top:27px}
.nav-link{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;margin:3px 0;padding:8px 10px;border-radius:9px;white-space:nowrap;color:#b8c6e3;font-size:13px;font-weight:630}
.nav-link:hover{background:#ffffff15;color:white}.nav-link[aria-current=page]{background:#294587;color:white}.nav-link[aria-current=page]::before{position:absolute;content:"";left:0;background:#93adff;width:3px;height:20px;border-radius:5px}
.side-foot{margin-top:auto;display:flex;gap:9px;align-items:center;padding:13px 6px 5px;border-top:1px solid #ffffff20;font-size:12px}
.side-foot #lock{display:grid;place-items:center;background:#2a3c70;color:#b2c5ff;width:34px;height:34px;border-radius:9px}
.side-foot small{font-size:10px;letter-spacing:0;font-weight:450;margin-top:3px}
.shell{margin-left:var(--side);min-height:100vh}.top{min-height:65px;padding:10px clamp(16px,3vw,37px);display:flex;justify-content:space-between;align-items:center;gap:9px;background:#fff;border-bottom:1px solid var(--line)}
.crumb,.actions,.row-actions{display:flex;align-items:center;gap:10px}.actions,.row-actions{flex-wrap:wrap}.crumb{font-size:13px;color:#647491}.crumb strong{color:#293b63}
.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;border:1px solid #d8e2f3;min-height:39px;padding:7px 12px;background:white;color:#344a75;font-size:13px;font-weight:680;white-space:nowrap}
.button:hover{background:#eef3ff;border-color:#becdf1}.button.primary{background:var(--blue);color:white;border-color:var(--blue);box-shadow:0 3px 8px #3156e827}.button.primary:hover{background:#2243c7}.button.small{min-height:31px;font-size:12px;padding:5px 8px}.button.danger{color:var(--red)}.button .icon{width:16px;height:16px}
.link{border:0;padding:0;background:transparent;font-size:12px;font-weight:700;color:#3153c6}.link:hover{text-decoration:underline}
main{max-width:1510px;margin:auto;padding:24px clamp(16px,3vw,37px) 0}
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:17px;padding:24px 27px;min-height:158px;display:flex;align-items:center;gap:8px;background:linear-gradient(105deg,#1b327d,#2245bf 62%,#3b60ef);color:white;box-shadow:0 8px 20px #2748bf24}
.hero.green{background:linear-gradient(100deg,#145247,#117f66)}.hero-art{position:absolute;right:-15px;bottom:-10px;width:min(53%,550px);height:176px;z-index:-1;pointer-events:none}
.hero h1,.intro h1{font-size:clamp(28px,3.5vw,43px);font-weight:780;margin:6px 0 7px}.hero p{color:#e5eeff;font-size:14px}.hero .eyebrow{color:#c9dbff}
.hero .hero-tag{align-self:flex-start;margin-left:auto;padding:5px 9px;border:1px solid #ffffff55;background:#ffffff16;color:white;border-radius:30px;font-size:11px;white-space:nowrap}
.eyebrow{font-size:10px;font-weight:790;letter-spacing:.15em;color:#526cbe;text-transform:uppercase}
.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:11px;margin-bottom:16px}.intro h1{font-size:clamp(25px,3.4vw,36px)}.intro p{color:var(--muted);font-size:14px}
.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:18px 0}.toolbar>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.toolbar-note{color:var(--muted);font-size:12px}.filter{display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid #dce6f6;border-radius:9px;background:white;color:#5170b7}.filter select{border:0;padding:8px 1px;border-radius:6px;background:white;color:#293b63;font-weight:650;font-size:13px;max-width:240px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px}.metric,.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);min-width:0}
.metric{padding:14px}.metric-label{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:12px;font-weight:720;color:#45597e}.metric-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:8px;background:#eaf0ff;color:#3655d6;flex:none}
.metric-icon .icon{width:16px;height:16px}.metric-icon.mint,.pill.mint{color:var(--mint);background:#e8f8f1}.metric-icon.violet{color:#6c51ce;background:#f1edff}.metric-icon.amber,.pill.amber{color:var(--amber);background:#fff2df}
.metric strong{display:block;font-size:clamp(18px,2.3vw,30px);letter-spacing:-.055em;line-height:1.13;margin-top:8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.metric p{margin-top:6px;color:var(--muted);font-size:11px}
.good{color:var(--mint)}.bad{color:var(--red)}.pill{display:inline-flex;align-items:center;gap:6px;background:#edf2fd;color:#425a93;border-radius:20px;padding:5px 8px;font-size:11px;font-weight:700;line-height:1.15;white-space:nowrap}
.pill.red{color:var(--red);background:#fff0f2}.pill .dot{width:7px;height:7px;background:currentColor;border-radius:50%}
.panels{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:15px;margin-bottom:15px}.panels.even{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel{padding:17px 18px;margin-bottom:15px}.panels>.panel{margin:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px}.panel h2{font-size:18px;font-weight:740}.panel-head p,.small-note{font-size:12px;color:var(--muted);margin-top:4px}.small-note{margin-top:11px}
.notice{display:flex;align-items:flex-start;gap:8px;border:1px solid #dce6ff;background:#edf3ff;color:#354d89;border-radius:10px;padding:10px 12px;margin:0 0 13px;font-size:12px}.notice .icon{width:16px;height:16px}.notice.warn{background:#fff7e7;border-color:#f4e4c5;color:#7f501f}.notice.ok{background:#eefaf5;border-color:#d9eee4;color:#1b664d}
.empty{min-height:100px;border:1px dashed #dbe5fa;border-radius:10px;background:#f8faff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:5px;padding:13px;color:var(--muted);font-size:13px}.empty strong{color:var(--ink)}.empty .icon{color:#7891d2}
.trend{width:100%;height:auto;min-height:180px;max-height:246px}.trend text{font-size:11px;fill:#5b6d91}.trend .active{fill:#3156e8;font-weight:780}.trend a:hover circle,.trend a:focus-visible circle{r:7}
.legend-line{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.area-viz{display:grid;grid-template-columns:minmax(95px,.69fr) minmax(120px,1fr);gap:15px;align-items:center;min-height:187px}
.donut{aspect-ratio:1;position:relative;border-radius:50%;width:100%;max-width:168px;margin:auto}.donut>div{position:absolute;inset:15%;background:#fff;border-radius:50%;display:grid;place-content:center;text-align:center}.donut strong{font-size:clamp(13px,1.4vw,19px);letter-spacing:-.05em}.donut small{font-size:11px;color:var(--muted)}
.area-legend{display:grid;gap:9px}.area-legend button{display:grid;grid-template-columns:8px minmax(0,1fr);gap:7px;text-align:left;background:transparent;border:0;padding:3px 0;color:#3e5177;font-size:12px}.area-legend button:hover strong{color:var(--blue)}.area-legend .dot{margin-top:5px}.area-legend strong,.area-legend small{display:block}.area-legend small{color:var(--muted);margin-top:3px;font-size:11.5px}
.rank{display:grid;gap:10px}.rank-label,.mini-row{display:flex;justify-content:space-between;gap:7px;font-size:12.5px}.rank-label strong,.mini-row strong{white-space:nowrap}.bar{border-radius:6px;overflow:hidden;height:7px;margin-top:5px;background:#ebf1fc}.bar span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#7391ff,#3c60e8)}.bar.mint span{background:linear-gradient(90deg,#65cdb1,#229e80)}
.mini-row{padding:8px 0;border-bottom:1px solid #edf1f8}.mini-row:last-child{border-bottom:0}
.table-wrap{overflow:auto;width:100%}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th,td{padding:9px 10px;border-bottom:1px solid #eaf0f9;vertical-align:middle}th{background:#f5f7fd;color:#465b82;font-size:11px}td:first-child{font-weight:650;min-width:143px}tbody tr:hover{background:#f8faff}.number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:11px}.input{border:1px solid #d9e4f4;padding:7px 8px;border-radius:8px;background:white;color:#30456c;min-height:36px;font-size:12.5px;max-width:100%}.search{max-width:235px;width:100%}
.pages{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);margin-top:11px;font-size:12px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:7px}.tab{background:transparent;border:1px solid transparent;border-radius:8px;padding:7px 10px;color:#4b6188;font-size:13px;font-weight:670}.tab[aria-pressed=true]{background:#e9efff;border-color:#dbe5ff;color:#2b4cc3}
.highlight{padding:9px 10px;border-radius:9px;background:#f1faf6;border:1px solid #e3f2eb;margin-bottom:7px;color:#244f43;font-size:13px}.highlight p{color:#41685d;font-size:12px;margin-top:3px}
.import-fields{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}.import-fields label{display:grid;gap:4px;color:#45597d;font-size:12px;font-weight:630}
.drop{margin:11px 0 0;padding:23px 11px;display:grid;place-items:center;text-align:center;gap:7px;border:1.5px dashed #b5c8f2;border-radius:11px;background:#f6f8ff}.drop.drag{background:#e8efff;border-color:var(--blue)}.drop>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e7eeff;color:#4566dd}.drop p,.file-result{font-size:12px;color:var(--muted)}
.template{display:flex;gap:8px;align-items:center;padding:9px;background:#f8faff;border:1px solid var(--line);border-radius:8px;margin-bottom:7px;font-size:12px}.template .button{margin-left:auto}.file-result{margin-top:7px;overflow-wrap:anywhere}
footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;padding:12px 0 17px;margin-top:20px;color:var(--muted);font-size:11px}
dialog{padding:0;width:min(790px,calc(100% - 28px));max-height:88vh;border:1px solid #dbe5f4;border-radius:15px;color:var(--ink);box-shadow:0 20px 70px #12214a55}dialog::backdrop{background:#101c3fa1}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:1}.dialog-head h2{font-size:21px}.dialog-body{padding:15px 18px}.dialog-body p{font-size:13px;color:var(--muted);margin:5px 0 12px}.review-group{padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:9px}.review-group h3{font-size:15px}.review-group label{display:flex;align-items:flex-start;gap:6px;font-size:12px}.review-group input{accent-color:var(--blue)}
#toast{position:fixed;bottom:18px;right:18px;z-index:5;max-width:min(390px,calc(100vw - 36px));padding:10px 13px;border-radius:9px;color:white;background:#18294f;box-shadow:0 6px 22px #14224a45;font-size:13px}
.actions{justify-content:flex-end}.brand img{flex:none}.brand>span{min-width:0}.brand small{line-height:1.25;letter-spacing:.055em}
.export-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.export-option{display:flex;flex-direction:column;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8faff}
.export-option h3{margin-top:8px;font-size:17px}.export-option p{margin:6px 0 10px}
.export-option>.button,.export-option .row-actions{margin-top:auto}
.export-patients{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:12px;color:#45597e}.export-patients input{accent-color:var(--blue)}
.export-chart-label{font-size:12px;font-weight:650;color:#45597e}.export-option select{margin:4px 0 10px;width:100%}
.export-feedback{min-height:20px;margin-top:10px;color:var(--muted);font-size:12px}
.storage-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid #f4e4c5;border-radius:10px;background:#fff7e7;color:#754e21;font-size:12px}
.storage-banner.ready{border-color:#d9eee4;background:#eefaf5;color:#1b664d}.storage-banner .icon{margin-right:3px}.storage-banner small,.cell-meta{display:block;color:var(--muted);font-size:11.5px;margin-top:3px}
.storage-form{display:grid;gap:10px}.storage-form label{display:grid;gap:4px;font-size:13px;font-weight:650}.storage-form .button{justify-self:start}.storage-form p{margin:0}
.guide-controls{justify-content:flex-start}.guide-controls input{width:235px}.table-wrap .cell-meta{font-weight:450;overflow-wrap:anywhere}
@media(max-width:560px){.export-options{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1100px){:root{--side:195px}.side{padding-inline:11px}.panel{padding:14px}.metrics{gap:9px}.metric{padding:11px}.area-viz{gap:9px}}
@media(max-width:825px){:root{--side:0px}.side{position:relative;width:100%;padding:9px 12px 6px;display:block}.brand{margin:0 0 6px;padding:0}.brand img{width:33px;height:33px}.brand strong{font-size:16px}.brand small{font-size:8px}.side nav{display:flex;gap:4px;overflow:auto;scrollbar-width:thin}.nav-label,.side-foot,.nav-link[aria-current=page]::before{display:none}.nav-link{min-height:34px;font-size:12px;padding:5px 7px;gap:5px}.nav-link .icon{width:15px;height:15px}.top{min-height:50px}.hero{min-height:142px}main{padding-top:15px}}
@media(max-width:630px){.crumb>span{display:none}.top{padding-inline:12px}.actions{gap:6px}.top .button{font-size:11px;padding:5px 7px;min-height:33px}.pill{font-size:10px}main{padding-inline:12px}.hero{padding:17px 14px}.hero .hero-tag{display:none}.hero-art{width:85%;opacity:.5}.hero p,.intro p{font-size:12.5px}.intro{align-items:flex-start}.toolbar{margin:12px 0}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric strong{font-size:21px}.panels,.panels.even{grid-template-columns:minmax(0,1fr)}.trend{min-height:145px}.area-viz{min-height:156px}}

