:root{--mono: ui-monospace, "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--r: 11px;--r-sm: 8px;--t: .16s ease}:root,[data-theme=dark]{--bg:#0f1518;--bg-2:#121a1e;--panel:#161e22;--panel-2:#1d272c;--line:#2b383e;--line-2:#36474e;--ink:#e7eef0;--ink-dim:#9fb2b8;--ink-faint:#6a7d83;--muted:#7e8f95;--accent:#39b6a8;--accent-2:#2dd4bf;--accent-dim:#1f6b63;--accent-soft:#15302e;--on-accent:#04201d;--warn:#e0a23c;--bad:#d96b6b;--ok:#5fbf8e;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 30px rgba(0,0,0,.28);color-scheme:dark}[data-theme=light]{--bg:#eef1f4;--bg-2:#f6f8fa;--panel:#ffffff;--panel-2:#f3f6f8;--line:#dde3e8;--line-2:#cfd8de;--ink:#142025;--ink-dim:#54656d;--ink-faint:#8595a0;--muted:#7a8a92;--accent:#1f9488;--accent-2:#178b7f;--accent-dim:#7fc8bf;--accent-soft:#e3f4f1;--on-accent:#ffffff;--warn:#b9791d;--bad:#c2453f;--ok:#1f9a64;--shadow:0 1px 2px rgba(20,30,40,.05),0 8px 30px rgba(20,30,40,.08);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.app{display:flex;min-height:100%}.sidebar{width:236px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:18px 18px 14px}.brand .mark{width:30px;height:30px;border-radius:9px;background:conic-gradient(from 200deg,var(--accent),var(--accent-2),var(--accent-dim),var(--accent));box-shadow:0 0 0 1px var(--accent-dim) inset}.brand b{font-weight:700;letter-spacing:-.02em}.brand small{display:block;color:var(--ink-faint);font-size:11px;font-family:var(--mono)}.nav{display:flex;flex-direction:column;gap:2px;padding:8px 10px;overflow:auto}.nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-sm);color:var(--ink-dim);font-weight:550;transition:var(--t)}.nav a .ic{width:18px;text-align:center;opacity:.85}.nav a:hover{background:var(--panel-2);color:var(--ink)}.nav a.active{background:var(--accent-soft);color:var(--accent)}.nav .group{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding:14px 12px 4px;font-weight:700}.side-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;justify-content:space-between}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:54px;display:flex;align-items:center;gap:14px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.topbar .crumb{color:var(--ink-faint);font-size:13px;font-family:var(--mono)}.content{padding:26px 24px 80px;max-width:1180px;width:100%;margin:0 auto}@media (max-width:780px){.sidebar{width:64px}.brand b,.brand small,.nav a span,.nav .group{display:none}.nav a{justify-content:center}}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.page-title{font-size:26px;letter-spacing:-.02em;margin:3px 0 4px}.sub{color:var(--ink-dim);max-width:70ch}.muted{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.mono{font-family:var(--mono)}h2.sec{font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.card.pad{padding:20px}.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}label.fld{display:block}label.fld>span{display:block;font-size:12px;color:var(--ink-dim);margin-bottom:5px;font-weight:600}.inp{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--ink);border-radius:var(--r-sm);padding:9px 11px;transition:var(--t)}.inp:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-soft)}textarea.inp{resize:vertical;min-height:64px}.hintline{font-size:12px;color:var(--ink-faint);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--r-sm);padding:9px 15px;font-weight:650;transition:var(--t)}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.4;cursor:not-allowed;filter:none}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--accent-dim);background:var(--panel-2)}.btn.sm{padding:6px 11px;font-size:13px}.btn.danger{background:transparent;color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.btn.danger:hover{background:color-mix(in srgb,var(--bad) 12%,transparent)}table.db{width:100%;border-collapse:collapse;font-size:14px}table.db th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}table.db td{padding:8px 12px;border-bottom:1px solid var(--line)}table.db tr:last-child td{border-bottom:0}table.db tbody tr:hover td{background:var(--panel-2)}.clickrow{cursor:pointer}.pill{display:inline-block;font-size:11px;font-weight:650;padding:2px 9px;border-radius:99px;border:1px solid var(--line);color:var(--ink-dim)}.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.pill.accent{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-soft)}.tag{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:20px;border:1px solid var(--line);color:var(--ink-dim)}.kv{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.kv:last-child{border-bottom:0}.kv .k{color:var(--ink-dim)}.kv .v{font-family:var(--mono);text-align:right}.stat{padding:16px 18px}.stat .n{font-family:var(--mono);font-size:30px;color:var(--accent);line-height:1}.stat .l{color:var(--ink-dim);font-size:12.5px;margin-top:6px}.scorebar .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}.scorebar .nm{font-weight:600}.scorebar .nm em{font-style:normal;font-size:11px;color:var(--ink-faint);font-weight:500;display:block}.scorebar .val{font-family:var(--mono);font-weight:700}.track{height:9px;background:var(--panel-2);border:1px solid var(--line);border-radius:99px;position:relative;overflow:hidden}.track>i{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:var(--accent)}.track .mean{position:absolute;top:-3px;width:2px;height:15px;background:var(--ink);opacity:.5}.plate{display:flex;align-items:center;justify-content:center;min-height:42vh;background:#fbfbf9;border-radius:var(--r-sm);padding:12px}.plate img{max-width:100%;max-height:60vh;object-fit:contain}.plate .noimg{color:#5a5a5a;text-align:center}.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.opts.six{grid-template-columns:repeat(3,1fr)}.opt{background:var(--panel-2);border:1px solid var(--line);color:var(--ink);border-radius:var(--r-sm);padding:14px 0;font-size:19px;font-family:var(--mono);transition:var(--t)}.opt:hover{border-color:var(--accent-dim)}.opt.sel{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}.cells{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.cell{aspect-ratio:1/1;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);font-family:var(--mono);font-size:11px;color:var(--ink-faint);display:flex;align-items:center;justify-content:center;cursor:pointer}.cell.ans{color:var(--ink);border-color:var(--accent-dim)}.cell.cur{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink)}.qitem{border-bottom:1px solid var(--line);padding:15px 0}.qitem:last-child{border-bottom:none}.qtext{font-weight:550;margin-bottom:9px}.qtext b{color:var(--ink-faint);margin-right:8px}.likert{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.likert button{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--r-sm);padding:9px 4px;font-weight:600;color:var(--ink-dim);font-size:13px;transition:var(--t)}.likert button small{display:block;font-weight:450;font-size:10px;opacity:.8;margin-top:2px}.likert button.lk-leg{padding:8px 5px;font-size:12px;line-height:1.2;min-height:54px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal}.likert button.lk-leg .lk-full{font-weight:600}.likert button:hover{border-color:var(--accent-dim)}.likert button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ocaiq{border:1px solid var(--line);border-radius:var(--r-sm);padding:15px;margin-bottom:13px;background:var(--panel-2)}.ocaiq .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px}.ocaiopt{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px dashed var(--line)}.ocaiopt:first-of-type{border-top:none}.ocaiopt .txt{flex:1;font-size:13px}.ocaiopt input{width:72px;text-align:center;padding:7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink)}.sumbadge{font-family:var(--mono);font-weight:700;font-size:12.5px;padding:2px 9px;border-radius:6px}.progress{height:5px;background:var(--panel-2);border:1px solid var(--line);border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--accent);transition:width .3s}.empty{text-align:center;padding:48px 20px;color:var(--ink-faint)}.empty .big{font-size:38px;opacity:.5;margin-bottom:8px}.divider{height:1px;background:var(--line);margin:18px 0}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%) translateY(16px);background:var(--panel-2);border:1px solid var(--accent-dim);color:var(--ink);padding:11px 18px;border-radius:var(--r-sm);font-weight:550;opacity:0;pointer-events:none;transition:var(--t);z-index:200;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.switch{position:relative;width:42px;height:24px;border-radius:99px;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;transition:var(--t)}.switch>i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--accent);transition:var(--t)}.switch.on>i{left:21px}.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:150;padding:20px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);max-width:520px;width:100%;padding:22px;box-shadow:var(--shadow)}.ws-switch{display:flex;align-items:center;gap:9px;margin:2px 12px 8px;padding:9px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;transition:var(--t);width:calc(100% - 24px)}.ws-switch:hover{border-color:var(--accent-dim)}.ws-dot{width:10px;height:10px;border-radius:50%;flex:none}.ws-name{flex:1;text-align:left;font-weight:600;font-size:13px}.ws-go{color:var(--ink-faint)}.modeselect{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 50% -10%,color-mix(in srgb,var(--accent) 12%,var(--bg)),var(--bg))}.ms-top{display:flex;justify-content:space-between;align-items:center;padding:18px 26px}.ms-center{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:900px;width:100%;margin:0 auto;padding:20px}.ms-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width:720px){.ms-cards{grid-template-columns:1fr}}.ms-card{position:relative;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;cursor:pointer;transition:var(--t);box-shadow:var(--shadow)}.ms-card:hover{border-color:var(--ws-accent);transform:translateY(-2px)}.ms-card h2{margin:14px 0 8px;font-size:21px}.ms-card .muted{font-size:13.5px;min-height:40px}.ms-badge{display:inline-block;color:var(--on-accent);font-weight:700;font-size:12px;padding:3px 10px;border-radius:99px}.ms-enter{display:inline-block;margin-top:14px;color:var(--ws-accent);font-weight:650}.psearch{position:relative;width:300px;max-width:42vw}.psearch .inp{padding:7px 11px;background:var(--panel-2)}.psearch-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);z-index:30;overflow:hidden}.psearch-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:9px 12px;color:var(--ink)}.psearch-item:last-child{border-bottom:0}.psearch-item:hover{background:var(--panel-2)}.psearch-item .nm{font-weight:600}.psearch-item .faint{font-size:12px}.psearch-empty{padding:12px;color:var(--ink-faint);font-size:13px}.cmp-table{width:100%;border-collapse:collapse;font-size:13.5px}.cmp-table th,.cmp-table td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.cmp-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:700}.cmp-table td.metric{color:var(--ink-dim)}.cmp-table .val{font-family:var(--mono);font-weight:600}.pickchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:4px 6px 4px 11px;font-size:13px;background:var(--panel-2)}.pickchip button{border:0;background:transparent;color:var(--ink-faint);cursor:pointer}.seg{display:inline-flex;border:1px solid var(--line);border-radius:99px;overflow:hidden;background:var(--panel-2)}.seg>button{border:0;background:transparent;color:var(--ink-dim);padding:5px 14px;cursor:pointer;font-size:12.5px;font-weight:600}.seg>button.on{background:var(--accent);color:#fff}.interp-h{font-weight:700;font-size:13.5px;margin-bottom:3px}.interp-b{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-dim)}.motors{display:flex;flex-direction:column;gap:7px}.motor-group{margin-bottom:6px}.motor-grp-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin:6px 0 4px}.motor-row{display:grid;grid-template-columns:150px 1fr 30px;align-items:center;gap:9px}.motor-name{font-size:12.5px;color:var(--ink)}.motor-track{height:7px;border-radius:99px;background:var(--panel-2);overflow:hidden}.motor-track>i{display:block;height:100%;border-radius:99px;background:var(--accent)}.motor-val{font-size:12px;color:var(--ink-dim);text-align:right}.mlc-grid{display:flex;flex-wrap:wrap;gap:7px;max-height:460px;overflow:auto;padding:2px}.mlc-chip-btn{border:1px solid var(--line);border-radius:99px;background:var(--panel-2);color:var(--ink);padding:6px 13px;cursor:pointer;font-size:13px;white-space:nowrap;transition:all .12s}.mlc-chip-btn:hover{border-color:var(--accent-dim)}.mlc-chip-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.mlc-chip-btn.strong{border-style:dashed}.mlc-chip-btn.strong.on{border-style:solid;background:var(--accent);color:#fff}.mlc-chip-btn:disabled{opacity:.45;cursor:not-allowed}.mlc-steps{display:flex;flex-wrap:wrap;gap:6px}.mlc-step{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-faint);border:1px solid var(--line);border-radius:99px;padding:3px 10px 3px 4px}.mlc-step.on{border-color:var(--accent);color:var(--accent)}.mlc-step.done{opacity:.7}.mlc-step .dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--panel-2);font-size:11px;font-weight:700}.mlc-step.on .dot{background:var(--accent);color:#fff}.mlc-step.done .dot{background:var(--ok);color:#fff}.mlc-diff{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.mlc-diff:last-child{border-bottom:0}.mlc-diff-w{font-size:13.5px}.seg.sm>button{padding:4px 10px;font-size:11.5px}.chart-legend{display:flex;justify-content:center;gap:16px;font-size:12px;margin-top:4px;flex-wrap:wrap}.chart-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:5px}svg .ring{fill:none;stroke:var(--line)}svg .spoke{stroke:var(--line)}svg .axlabel{font-size:11px;font-weight:600;fill:var(--ink-dim)}svg .qlabel{font-size:11px;font-weight:700}#report-print{display:none}@media print{:root{--bg:#fff;--bg-2:#fff;--panel:#fff;--panel-2:#f3f6f8;--line:#cfd8de;--line-2:#bcc7ce;--ink:#111;--ink-dim:#444;--ink-faint:#777;--muted:#6b7c84;--accent:#1f9488;--accent-dim:#7fc8bf;--accent-soft:#e3f4f1}.sidebar,.topbar,.noprint{display:none!important}body,.app,.main,.content{background:#fff!important;color:#000!important;display:block!important}.content{padding:0;max-width:none}.card{box-shadow:none;border:1px solid #ccc;break-inside:avoid;background:#fff!important}.grid{display:block!important}.grid>*{margin-bottom:14px}#report-print{display:block;margin-bottom:8px}svg .axlabel,svg .qlabel{fill:#000}.page-break{break-before:page}}html[data-ws=clinica]{--accent:#7c83ff;--accent-2:#9ba1ff;--accent-dim:#4d52b8;--accent-soft:#232652;--on-accent:#ffffff}html[data-theme=light][data-ws=clinica]{--accent:#5a61e8;--accent-2:#4a51d8;--accent-dim:#b7baf2;--accent-soft:#e9eafd;--on-accent:#ffffff}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:4px}.page-head .ph-back{font-size:12.5px;color:var(--ink-dim);display:inline-flex;align-items:center;gap:4px;margin-bottom:2px}.page-head .ph-back:hover{color:var(--accent)}.page-head .ph-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tabbar{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:6px 0 16px;overflow-x:auto}.tabbar button{background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-dim);padding:9px 14px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:var(--t)}.tabbar button:hover{color:var(--ink)}.tabbar button.on{color:var(--accent);border-bottom-color:var(--accent)}.tabbar .tb-badge{margin-left:6px;font-size:10.5px;background:var(--panel-2);border-radius:99px;padding:1px 7px;color:var(--ink-faint)}h2.sec-lg{font-size:15px;font-weight:700;margin:0 0 10px;color:var(--ink)}.empty h3{font-size:15px;color:var(--ink-dim);margin:6px 0 4px;font-weight:650}.empty p{font-size:12.5px;max-width:420px;margin:0 auto 12px}.card.click{cursor:pointer;transition:var(--t)}.card.click:hover{transform:translateY(-1px);border-color:var(--accent-dim)}.entry-card{display:block;padding:22px}.entry-card .ec-ic{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:10px}.entry-card h3{margin:0 0 4px;font-size:16.5px}.entry-card .faint{font-size:12.5px}.stat-strip{display:flex;gap:18px;flex-wrap:wrap;align-items:baseline;font-size:13px;color:var(--ink-dim)}.stat-strip b{font-family:var(--mono);font-size:17px;color:var(--accent)}.stat-strip a{color:inherit}.stat-strip a:hover b{text-decoration:underline}.nav a .ic svg{display:block}.nav a{align-items:center}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.card .psearch{width:100%;max-width:none}.logo-chip{width:34px;height:34px;border-radius:9px;background:#fff;padding:3px;object-fit:contain;box-shadow:0 0 0 1px var(--line);flex:none}.logo-full{background:#fff;border-radius:12px;padding:12px 18px;max-width:100%}
