:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f2f5f9;--surface:#fff;--surface-2:#f7f9fc;--surface-3:#edf1f7;--border:#0f172a1a;--border-strong:#0f172a33;--ink:#0b1220;--ink-2:#475467;--muted:#7b8494;--brand:#1f5fbf;--brand-2:#2a78d6;--brand-soft:#e7f0fd;--focus:#2a78d6;--risk-high:#d03b3b;--risk-med:#fab219;--risk-low:#0ca30c;--risk-empty:#898781;--risk-high-soft:#fdeaea;--risk-med-soft:#fff5d9;--risk-low-soft:#e4f6e4;--risk-empty-soft:#efefec;--bar:#2a78d6;--grid:#e1e0d9;--shadow:0 1px 2px #0f172a0f, 0 6px 18px #0f172a0f;--radius:12px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0b0f17;--surface:#131a27;--surface-2:#182132;--surface-3:#1f2a3f;--border:#ffffff17;--border-strong:#ffffff2e;--ink:#eef1f6;--ink-2:#b8c0cf;--muted:#8a93a3;--brand:#3987e5;--brand-2:#5598e7;--brand-soft:#3987e529;--risk-high-soft:#d03b3b2e;--risk-med-soft:#fab21929;--risk-low-soft:#0ca30c29;--risk-empty-soft:#8987812e;--bar:#3987e5;--grid:#2c2c2a;--shadow:0 1px 2px #0006, 0 8px 24px #00000059}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0b0f17;--surface:#131a27;--surface-2:#182132;--surface-3:#1f2a3f;--border:#ffffff17;--border-strong:#ffffff2e;--ink:#eef1f6;--ink-2:#b8c0cf;--muted:#8a93a3;--brand:#3987e5;--brand-2:#5598e7;--brand-soft:#3987e529;--bar:#3987e5}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3,h4,h5{margin:0;line-height:1.25}h2{font-size:20px}h3{font-size:16px}h4{font-size:14px}h5{font-size:12.5px}p{margin:.25rem 0}button,input,select,textarea{font:inherit;color:inherit}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.muted{color:var(--muted)}.small{font-size:12px}.boot{min-height:40vh;color:var(--muted);place-items:center;display:grid}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-2)}.btn.ghost{background:0 0}.btn.danger{background:var(--risk-high);border-color:var(--risk-high);color:#fff}.btn.small{padding:6px 10px;font-size:13px}.btn.tiny{border-radius:7px;padding:4px 9px;font-size:12px}.btn.block{width:100%}.icon-btn{width:34px;height:34px;color:inherit;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:9px;place-items:center;display:inline-grid}.modal .icon-btn{border-color:var(--border);background:0 0}.icon-btn:hover{background:#ffffff2e}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>span{color:var(--ink-2);font-size:12px;font-weight:600}.field.inline{flex-direction:row;align-items:center;gap:8px}input,select,textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;width:100%;min-height:36px;padding:8px 10px}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brand)}input[type=range]{accent-color:#60a5fa;min-height:0;padding:0}textarea{resize:vertical}input:disabled,select:disabled{opacity:.6}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.one{grid-template-columns:1fr}.form-grid .wide,.form-grid .form-hint,.form-grid .form-actions{grid-column:1/-1}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.form-hint{background:var(--brand-soft);color:var(--ink);border-radius:9px;align-items:flex-start;gap:8px;padding:9px 11px;font-size:12.5px;display:flex}.form-hint svg{color:var(--brand);flex:none;margin-top:1px}.form-hint.tone-warn{background:var(--risk-med-soft)}.form-hint.tone-warn svg{color:#b67c00}.form-error{color:var(--risk-high);font-size:13px;font-weight:600}.switch-line{align-items:center;gap:8px;min-height:36px;display:flex}.chip-btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;display:inline-flex}.chip-btn small{color:var(--muted)}.chip-btn b{color:var(--ink-2);font-weight:700}.chip-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip-btn.on b,.chip-btn.on small{color:#fff}.app{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid}.app-header{color:#fff;z-index:60;background:linear-gradient(90deg,#0b2a63,#1f5fbf);align-items:center;gap:16px;padding:8px 16px;display:flex;box-shadow:0 2px 10px #00000026}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand img{border-radius:9px;box-shadow:0 0 0 2px #ffffff40}.brand strong{font-size:15px;display:block}.brand span{opacity:.8;font-size:11.5px;display:block}.main-nav{flex-wrap:wrap;flex:1;justify-content:center;gap:4px;display:flex}.main-nav a{color:#ffffffd9;border-radius:9px;align-items:center;gap:6px;padding:8px 12px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex;position:relative}.main-nav a:hover{color:#fff;background:#ffffff1f}.main-nav a.active{color:#fff;background:#fff3}.nav-badge{background:var(--risk-high);color:#fff;border-radius:999px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-style:normal;font-weight:700;display:inline-grid}.header-right{align-items:center;gap:10px;display:flex}.live-clock{background:#ffffff1a;border-radius:9px;align-items:center;gap:8px;padding:4px 10px;display:flex}.live-clock strong{font-variant-numeric:tabular-nums;font-size:14px;display:block}.live-clock span{opacity:.85;font-size:11px;display:block}.user-chip{align-items:center;gap:8px;display:flex}.user-chip strong{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:12.5px;display:block;overflow:hidden}.user-chip span{opacity:.8;font-size:11px;display:block}.avatar{width:30px;height:30px;color:var(--brand);background:#fff;border-radius:50%;place-items:center;font-weight:800;display:grid}.app-main{min-height:0;padding:14px 16px;overflow:auto}.status-bar{color:#ffffffe6;background:#0b2a63;flex-wrap:wrap;align-items:center;gap:4px 18px;padding:6px 16px;font-size:11.5px;display:flex}.sb-right{flex-wrap:wrap;gap:14px;margin-left:auto;display:flex}.sb-status{align-items:center;gap:4px;font-weight:700;display:inline-flex}.sb-status.on:before{content:"";background:#4ade80;border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #4ade80}.sb-status.off{color:#fca5a5}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.empty{text-align:center;color:var(--muted);padding:18px;list-style:none}.page{flex-direction:column;gap:14px;max-width:1400px;margin:0 auto;display:flex}.page.narrow{max-width:980px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.page-head p{max-width:760px}.page-actions,.filter-row{flex-wrap:wrap;gap:8px;display:flex}.risk-badge{white-space:nowrap;color:var(--ink);border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.risk-badge b{font-variant-numeric:tabular-nums;border-left:1px solid var(--border-strong);margin-left:2px;padding-left:5px}.risk-badge.compact{padding:2px 7px;font-size:11.5px}.risk-badge.risk-tinggi{background:var(--risk-high-soft);border-color:var(--risk-high)}.risk-badge.risk-tinggi svg{color:var(--risk-high)}.risk-badge.risk-sedang{background:var(--risk-med-soft);border-color:var(--risk-med)}.risk-badge.risk-sedang svg{color:#c98500}.risk-badge.risk-rendah{background:var(--risk-low-soft);border-color:var(--risk-low)}.risk-badge.risk-rendah svg{color:var(--risk-low)}.risk-badge.risk-kosong{background:var(--risk-empty-soft);border-color:var(--risk-empty)}.risk-dot{color:#fff;border-radius:50%;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.risk-dot.risk-tinggi{background:var(--risk-high)}.risk-dot.risk-sedang{background:var(--risk-med);color:#0b0b0b}.risk-dot.risk-rendah{background:var(--risk-low)}.risk-dot.risk-kosong{background:var(--risk-empty)}.sev-icon{flex:none}.sev-critical{color:var(--risk-high)}.sev-warning{color:#d18a00}.sev-info{color:var(--brand-2)}.src-chip{white-space:nowrap;border-radius:999px;margin-left:4px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.src-rme{background:var(--brand-soft);color:var(--brand)}.src-usulan{background:var(--risk-med-soft);color:#946300}.src-perawat{background:var(--risk-low-soft);color:#0a6b0a}.src-default{background:var(--surface-3);color:var(--muted)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .src-usulan{color:#ffd27a}:root:not([data-theme=light]) .src-perawat{color:#7ce07c}:root:not([data-theme=light]) .risk-badge.risk-sedang svg{color:var(--risk-med)}}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-3);color:var(--ink);border:1px solid var(--border);border-radius:7px;padding:3px 8px;font-size:11.5px}.chip.k-obat{background:var(--risk-high-soft);border-color:#d03b3b59}.chip.k-usulan{background:var(--risk-med-soft);border-color:#fab21980}.chip.k-tindakan{background:var(--brand-soft)}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);color:#fff;white-space:nowrap;pointer-events:none;z-index:30;box-shadow:var(--shadow);background:#0b1220;border-radius:6px;padding:5px 8px;font-size:11.5px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.gauge{display:block;overflow:visible}.gauge-track{fill:none;stroke:var(--surface-3);stroke-width:10px;stroke-linecap:round}.gauge-value{fill:none;stroke-width:10px;stroke-linecap:round;transition:d .6s}.gauge-tick{stroke:var(--muted);stroke-width:1.2px}.gauge-tick-label{fill:var(--muted);text-anchor:middle;font-size:6.5px}.gauge-num{fill:var(--ink);text-anchor:middle;font-size:22px;font-weight:800}.gauge-sub{fill:var(--muted);text-anchor:middle;font-size:7px}.trend{width:100%;height:auto;display:block}.trend-cut{stroke:var(--grid);stroke-dasharray:3 3}.trend-base{stroke:var(--border-strong)}.trend-axis{fill:var(--muted);font-size:8px}.trend-line{fill:none;stroke:var(--bar);stroke-width:2px}.trend-dot{stroke:var(--surface);stroke-width:2px}.trend-hit{fill:#0000}.trend-pt:hover .trend-dot{r:5.5}.toasts{z-index:200;flex-direction:column;gap:8px;width:min(380px,100vw - 28px);display:flex;position:fixed;top:64px;right:14px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand-2);border-radius:11px;align-items:flex-start;gap:10px;padding:11px 12px;animation:.25s ease-out toast-in;display:flex;box-shadow:0 10px 30px #0000002e}.toast.sev-critical{border-left-color:var(--risk-high)}.toast.sev-warning{border-left-color:var(--risk-med)}.toast-body{flex:1;min-width:0}.toast-body strong{font-size:13px;display:block}.toast-body p{color:var(--ink-2);font-size:12px}.toast-x{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:2px}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.modal-backdrop{z-index:150;background:#050a1980;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:14px;width:100%;max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 20px 60px #00000059}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.modal-body{flex-direction:column;gap:12px;padding:16px;display:flex}.quick-notes{flex-wrap:wrap;gap:6px;display:flex}.notif-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;gap:10px;padding:10px 12px;display:flex}.notif-preview p{color:var(--ink-2);font-size:12.5px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;display:grid}.kpi-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--brand-2);min-width:0;padding:10px 13px}.kpi-tile.tone-critical{border-top-color:var(--risk-high)}.kpi-tile.tone-warning{border-top-color:var(--risk-med)}.kpi-tile.tone-good{border-top-color:var(--risk-low)}.kpi-label{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.kpi-value{margin-top:2px;font-size:26px;font-weight:800;line-height:1.15}.kpi-value small{color:var(--muted);margin-left:5px;font-size:13px;font-weight:600}.kpi-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.dashboard{flex-direction:column;gap:12px;min-height:100%;display:flex}.dash-body{flex:1;grid-template-columns:minmax(0,1fr) 390px;gap:12px;min-height:560px;display:grid}.scene-card{min-height:560px;box-shadow:var(--shadow);background:linear-gradient(180deg, var(--sky-top,#5aa5f5) 0%, var(--sky-bot,#dcefff) 100%);border-radius:14px;position:relative;overflow:hidden}.stars{pointer-events:none;opacity:var(--star-op,0);background-image:radial-gradient(1.2px 1.2px at 7% 12%,#fff 60%,#0000),radial-gradient(1px 1px at 18% 30%,#fff 60%,#0000),radial-gradient(1.4px 1.4px at 31% 8%,#fff 60%,#0000),radial-gradient(1px 1px at 44% 22%,#dfe7ff 60%,#0000),radial-gradient(1.3px 1.3px at 57% 6%,#fff 60%,#0000),radial-gradient(1px 1px at 66% 18%,#fff 60%,#0000),radial-gradient(1.2px 1.2px at 79% 10%,#e8eeff 60%,#0000),radial-gradient(1px 1px at 91% 26%,#fff 60%,#0000),radial-gradient(1px 1px at 12% 44%,#fff 60%,#0000),radial-gradient(1.1px 1.1px at 86% 40%,#fff 60%,#0000);transition:opacity 1s;position:absolute;inset:0}.ward-canvas{inset:0;position:absolute!important}.glass{-webkit-backdrop-filter:blur(8px);color:#fff;background:#080f239e;border:1px solid #ffffff24}.scene-title{z-index:46;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#080f2399;border:1px solid #ffffff24;border-radius:10px;max-width:min(520px,100% - 300px);padding:7px 12px;position:absolute;top:12px;left:12px}.scene-title h2{font-size:14px}.scene-title p{opacity:.85;font-size:11px}.scene-hint{color:#ffffffd9;text-shadow:0 1px 3px #0009;pointer-events:none;margin:0;font-size:11px;position:absolute;bottom:112px;left:14px}.time-hud{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#080f23a8;border:1px solid #ffffff29;border-radius:12px;width:268px;padding:11px 12px;position:absolute;top:12px;right:12px}.th-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.th-mode{color:#ffe7a3;background:#ffd16638;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.time-hud.night .th-mode{color:#c9d4ff;background:#93aaff38}.th-shift{opacity:.9;font-size:12px;font-weight:700}.th-clock{font-variant-numeric:tabular-nums;letter-spacing:.5px;margin-top:4px;font-size:30px;font-weight:800}.th-clock small{opacity:.75;font-size:13px;font-weight:600}.th-date{opacity:.8;margin-bottom:8px;font-size:12px}.day-track{margin:6px 0 8px;position:relative}.dt-bar{background:linear-gradient(90deg,#0b1230 0%,#1b2550 21%,#f08a5d 25%,#8ec5ff 32%,#cfe8ff 50%,#8ec5ff 68%,#f08a5d 75%,#1b2550 80%,#0b1230 100%);border-radius:999px;height:8px}.dt-marker{color:#f59e0b;background:#fff;border-radius:50%;place-items:center;width:20px;height:20px;margin-left:-10px;transition:left .25s linear;display:grid;position:absolute;top:-6px;box-shadow:0 0 0 3px #ffffff40,0 2px 6px #0006}.time-hud.night .dt-marker{color:#3b4c9b}.dt-shifts{margin-top:5px;font-size:10px;display:flex}.dt-shifts span{text-align:center;opacity:.55;border-left:1px solid #ffffff40}.dt-shifts span:first-child{border-left:0}.dt-shifts span.on{opacity:1;color:#93c5fd;font-weight:700}.th-controls{gap:4px;display:flex}.th-controls button{color:#fff;cursor:pointer;background:#ffffff0f;border:1px solid #fff3;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:4px;padding:5px 4px;font-size:11.5px;display:inline-flex}.th-controls button.on{background:#2a78d6;border-color:#2a78d6}.th-slider{font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:flex}.th-speed{color:#fff;background:#ffffff1a;border-color:#ffffff40;min-height:30px;margin-top:8px;padding:4px 8px;font-size:12px}.th-speed option{color:#0b1220}.th-note{opacity:.75;margin-top:6px;font-size:10.5px}.scene-bottom{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;z-index:45;background:#080f239e;border:1px solid #ffffff24;border-radius:13px;align-items:stretch;gap:8px;padding:9px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.cat-counter{border-radius:10px;flex-direction:column;justify-content:center;min-width:112px;padding:6px 12px;display:flex}.cat-counter.risk-tinggi{background:linear-gradient(160deg,#e04848,#a82727)}.cat-counter.risk-sedang{color:#0b0b0b;background:linear-gradient(160deg,#ffc23d,#e09a00)}.cat-counter.risk-rendah{background:linear-gradient(160deg,#15a815,#0a7a0a)}.cat-counter.risk-kosong{background:linear-gradient(160deg,#8a8f99,#646973)}.cc-label{align-items:center;gap:5px;font-size:11.5px;font-weight:700;display:flex}.cat-counter .risk-dot{color:#0b0b0b;background:#ffffffeb}.cc-value{font-size:26px;font-weight:800;line-height:1.1}.cc-value small{opacity:.9;margin-left:4px;font-size:12px;font-weight:700}.legend-3d{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:160px;margin-left:6px;font-size:11px;display:flex}.legend-3d span{align-items:center;gap:6px;display:flex}.legend-3d .risk-dot{width:12px;height:12px}.legend-3d .risk-dot svg{display:none}.scene-bottom>.btn{align-self:center}.side-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;min-height:0;max-height:calc(100dvh - 220px);padding:12px;overflow:auto}.tabs{background:var(--surface-3);border-radius:10px;gap:4px;margin-bottom:10px;padding:3px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;padding:7px 10px;font-size:12.5px;font-weight:600}.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.side-note{margin:0 0 8px}.patient-list,.notif-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.patient-row{text-align:left;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;width:100%;padding:9px 10px;display:flex}.patient-row:hover{border-color:var(--brand-2)}.pr-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pr-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.pr-top strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.pr-factors{color:var(--ink-2);font-size:11.5px}.pr-flag{color:#a06a00;font-size:11px;font-weight:700}.route-stop{color:#fff;background:#2563eb;border:2px solid #fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:inline-grid;box-shadow:0 1px 4px #00000059}.route-stop.cat-tinggi{background:var(--risk-high)}.route-stop.cat-sedang{background:var(--risk-med);color:#0b0b0b}.route-label{color:#dbeafe;white-space:nowrap;background:#1d4ed8bf;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.label-layer{pointer-events:none;z-index:10;position:absolute;inset:0;overflow:hidden}.anchor{will-change:transform;position:absolute;top:0;left:0}.anchor .bed-tag{pointer-events:auto}.bed-tag{color:#fff;cursor:pointer;text-align:left;font-family:var(--font);-webkit-user-select:none;user-select:none;border:1.5px solid #ffffffd9;border-radius:7px;flex-direction:column;align-items:flex-start;gap:0;padding:3px 7px 4px;transition:transform .15s;display:flex;box-shadow:0 3px 10px #00000059}.bt-score{color:#0b0b0b;font-variant-numeric:tabular-nums;background:#ffffffeb;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:800}.bed-tag:hover,.bed-tag.hov{transform:translateY(-2px)scale(1.04)}.bed-tag.sel{outline-offset:1px;outline:3px solid #fff;transform:scale(1.06)}.bed-tag.cat-tinggi{background:#c62f2f}.bed-tag.cat-sedang{color:#0b0b0b;background:#f5ac14}.bed-tag.cat-rendah{background:#0a7f0a}.bed-tag.cat-kosong{background:#5f6570;border-color:#ffffff80}.bt-top{white-space:nowrap;align-items:center;gap:4px;font-size:11.5px;font-weight:800;display:flex}.bt-top i{color:#0b0b0b;background:#ffffffeb;border-radius:50%;place-items:center;width:15px;height:15px;font-size:10px;font-style:normal;display:inline-grid}.bt-top em{color:#fff;background:#1d4ed8;border-radius:4px;place-items:center;min-width:15px;height:15px;padding:0 3px;font-size:10px;font-style:normal;display:inline-grid}.bt-top em.late{background:#fff}.bt-name{white-space:nowrap;font-size:11px;font-weight:600}.bt-cat{opacity:.95;white-space:nowrap;text-transform:uppercase;letter-spacing:.2px;font-size:10.5px;font-weight:700}.sign-3d{letter-spacing:.4px;white-space:nowrap;color:#fff;background:#1d4ed8e6;border:1px solid #ffffff80;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:800;box-shadow:0 2px 10px #0000004d}.sign-3d.small{padding:3px 8px;font-size:10.5px}.sign-3d.tone-amber{color:#0b0b0b;background:#d9a000f2}.sign-3d.tone-green{background:#0a7f0af2}.sign-3d.tone-teal{background:#0d8080eb}.sign-3d.tone-navy{letter-spacing:1.2px;background:#0b2a63e0;font-size:15px}.patient-panel{flex-direction:column;gap:12px;display:flex}.back-link{color:var(--brand-2);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.pp-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pp-head h3{font-size:17px}.pp-head svg{vertical-align:-2px}.pp-score{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:10px;display:flex}.pp-section{flex-direction:column;gap:6px;display:flex}.pp-section h4{align-items:center;gap:6px;font-size:13px;display:flex}.pp-actions{gap:8px;display:flex}.callout{border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.callout.warn{background:var(--risk-med-soft);border-color:#fab21999}.callout.warn>svg{color:#b67c00;flex:none;margin-top:2px}.callout p{font-size:12.5px}.callout .btn{margin-top:6px}.item-list{border:1px solid var(--border);border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.item-list li{border-top:1px solid var(--border);align-items:center;gap:6px;padding:7px 10px;display:flex}.item-list li:first-child{border-top:0}.il-label{flex:1;min-width:0;font-size:12.5px;font-weight:600}.il-label small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.il-score{font-variant-numeric:tabular-nums;text-align:right;min-width:26px;font-size:14px}.il-total{background:var(--surface-2)}.warn-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.warn-list li{background:var(--risk-med-soft);border-radius:9px;padding:8px 10px;font-size:12.5px}.warn-list .flag{background:#00000014;border-radius:5px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:700}.med-due{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.med-due.late{background:var(--risk-high-soft);border-color:#d03b3b73}.checklist{flex-direction:column;gap:6px;display:flex}.checklist.skeleton{color:var(--muted);font-size:12.5px}.cl-head{align-items:center;gap:6px;font-size:13px;display:flex}.cl-progress{font-variant-numeric:tabular-nums;background:var(--risk-med-soft);border-radius:999px;margin-left:auto;padding:1px 8px;font-weight:800}.cl-progress.ok{background:var(--risk-low-soft)}.cl-meter{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.cl-meter span{background:var(--risk-low);border-radius:999px;height:100%;transition:width .3s;display:block}.checklist ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.cl-item{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.cl-item span{flex:1}.cl-item small{color:var(--muted);white-space:nowrap;font-size:11px}.cl-item.done{background:var(--risk-low-soft);border-color:#0ca30c59}.cl-item input{width:16px;height:16px}.notif-list.card{padding:6px}.notif-row{border:1px solid var(--border);background:var(--surface);border-left:4px solid var(--brand-2);border-radius:10px;gap:10px;padding:9px 10px;display:flex}.notif-row.sev-critical{border-left-color:var(--risk-high)}.notif-row.sev-warning{border-left-color:var(--risk-med)}.notif-row.unread{background:var(--surface-2)}.notif-row.done{opacity:.78}.nr-icon{padding-top:2px}.nr-body{flex:1;min-width:0}.nr-top{color:var(--muted);justify-content:space-between;gap:8px;font-size:11px;display:flex}.nr-type{text-transform:uppercase;letter-spacing:.3px;font-weight:700}.nr-top time{font-variant-numeric:tabular-nums}.nr-title{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:700;display:block}.nr-title:disabled{cursor:default}.nr-title:hover:not(:disabled){color:var(--brand-2);text-decoration:underline}.nr-msg{color:var(--ink-2);font-size:12.5px}.nr-done{color:#0a6b0a;align-items:flex-start;gap:5px;font-size:12px;display:flex}.nr-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.notif-list.compact .notif-row{padding:8px}.erm{grid-template-columns:280px minmax(0,1fr) 370px;align-items:start;gap:12px;display:grid}.erm-list{max-height:calc(100dvh - 120px);padding:12px;position:sticky;top:0;overflow:auto}.erm-list ul{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.el-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.search{border:1px solid var(--border-strong);background:var(--surface);border-radius:9px;align-items:center;gap:6px;padding:0 10px;display:flex}.search input{background:0 0;border:0;padding-left:0}.search input:focus{outline:none}.el-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;width:100%;padding:8px;display:flex}.el-item:hover{background:var(--surface-2)}.el-item.on{background:var(--brand-soft);border-color:var(--brand-2)}.el-name{flex:1;min-width:0}.el-name strong{font-size:13px;line-height:1.25;display:block}.el-name small{color:var(--muted);font-size:11px;display:block}.bed-chip{color:#fff;border-radius:8px;flex:none;place-items:center;width:40px;height:30px;font-size:12px;font-weight:800;display:inline-grid}.bed-chip.risk-tinggi{background:#c62f2f}.bed-chip.risk-sedang{color:#0b0b0b;background:#f5ac14}.bed-chip.risk-rendah{background:#0a7f0a}.erm-main{flex-direction:column;gap:10px;min-width:0;display:flex}.erm-empty{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:10px;padding:50px 30px;display:flex}.erm-empty p{max-width:560px}.erm-empty svg{color:var(--brand-2)}.patient-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ph-side{align-items:center;gap:8px;display:flex}.scale-chip{background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.erm-tabs{margin-bottom:0}.tab-card{padding:16px}.tab-pane{flex-direction:column;gap:14px;display:flex}.sub-head{margin-top:4px}.table-wrap{border:1px solid var(--border);border-radius:10px;overflow:auto}.table{border-collapse:collapse;width:100%;font-size:12.5px}.table th{text-align:left;color:var(--ink-2);background:var(--surface-2);white-space:nowrap;padding:8px 10px;font-size:11.5px;font-weight:700;position:sticky;top:0}.table td{border-top:1px solid var(--border);vertical-align:top;font-variant-numeric:tabular-nums;padding:7px 10px}.table tr.inactive td{color:var(--muted);-webkit-text-decoration:line-through #00000040;text-decoration:line-through #00000040}.row-actions{justify-content:flex-end;gap:4px;display:flex}.lab-val{font-weight:700}.lab-val.flag-L,.lab-val.flag-H{color:var(--risk-high)}.late-text{color:var(--risk-high);font-weight:700}.scale-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-score{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.preview-score strong{font-variant-numeric:tabular-nums;font-size:24px}.obs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.obs-field{border:1px solid var(--border);border-radius:10px;min-width:0;margin:0;padding:8px 10px 10px}.obs-field legend{padding:0 4px;font-size:12.5px;font-weight:700}.usulan-note{color:#8a5a00;margin:0 0 4px}.radio-opt{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.radio-opt span{flex:1}.radio-opt b{font-variant-numeric:tabular-nums;color:var(--ink-2)}.radio-opt.on{background:var(--brand-soft)}.danger-zone{border:1px dashed #d03b3b80;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.erm-side{flex-direction:column;gap:12px;min-width:0;display:flex}.engine-card{flex-direction:column;gap:10px;display:flex}.ec-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ec-head svg{color:var(--brand-2)}.ec-score{align-items:center;gap:10px;display:flex}.ec-sub{color:var(--ink-2);align-items:center;gap:5px;margin-top:4px;display:flex}.ec-labs{background:var(--risk-med-soft);border-radius:9px;padding:8px 10px}.ec-labs h5{align-items:center;gap:5px;margin-bottom:4px;display:flex}.history{flex-direction:column;gap:8px;max-height:330px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.history li{gap:8px;display:flex}.h-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;flex:none;margin-top:4px}.h-top{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.report-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.report-grid .card h3,.fhir-panel h3{align-items:center;gap:6px;margin-bottom:10px;display:flex}.bar-list{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.bar-list li{grid-template-columns:minmax(110px,1.2fr) 2fr auto;align-items:center;gap:8px;font-size:12.5px;display:grid}.bl-label{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bl-track{background:var(--surface-3);border-radius:4px;height:12px;overflow:hidden}.bl-bar{background:var(--bar);border-radius:0 4px 4px 0;min-width:3px;height:100%;display:block}.bl-value{font-variant-numeric:tabular-nums;text-align:right;min-width:26px;font-weight:700}.risk-stack{flex-direction:column;gap:10px;display:flex}.rs-bar{border-radius:6px;gap:2px;height:34px;display:flex;overflow:visible}.rs-seg{color:#fff;border-radius:4px;place-items:center;min-width:26px;font-size:13px;font-weight:800;display:grid}.rs-seg.risk-tinggi{background:var(--risk-high)}.rs-seg.risk-sedang{background:var(--risk-med);color:#0b0b0b}.rs-seg.risk-rendah{background:#0a7f0a}.rs-seg.risk-kosong{background:var(--risk-empty)}.rs-legend{flex-wrap:wrap;gap:6px 16px;font-size:12.5px;display:flex}.rs-legend span{align-items:center;gap:6px;display:inline-flex}.fhir-panel{flex-direction:column;gap:10px;display:flex}.fhir-row{flex-wrap:wrap;gap:8px;display:flex}.fhir-row select{flex:220px;width:auto}.fhir-row input{flex:0 110px;width:auto}pre.code{color:#cfe3ff;background:#0b1220;border-radius:10px;max-height:360px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11.5px;overflow:auto}.table-wrap.audit{max-height:420px}.login{grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.login-art{color:#fff;background:radial-gradient(circle at 20% 20%,#2a78d6 0%,#0b2a63 55%,#071a40 100%);place-items:center;padding:40px;display:grid}.la-inner{flex-direction:column;gap:14px;max-width:520px;display:flex}.la-inner h1{font-size:28px}.la-inner p{opacity:.88}.la-inner ul{opacity:.92;flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:min(400px,100% - 32px);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;place-self:center;gap:12px;padding:26px;display:flex}.demo-accounts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}@media (width<=1280px){.erm{grid-template-columns:250px minmax(0,1fr)}.erm-side{grid-column:2}}@media (width<=1180px){.dash-body{grid-template-columns:1fr}.side-card{max-height:none}.main-nav span{display:none}.main-nav a{padding:8px 10px}}@media (width<=900px){.app-header{flex-wrap:wrap;gap:8px}.main-nav{flex-basis:100%;order:3;justify-content:space-between}.main-nav span{font-size:12px;display:inline}.user-chip div{display:none}.erm{grid-template-columns:1fr}.erm-side{grid-column:auto}.erm-list{max-height:320px;position:static}.form-grid,.form-grid.three,.obs-grid,.login{grid-template-columns:1fr}.login-art{padding:28px 16px}.scene-title{max-width:calc(100% - 24px)}.time-hud{width:236px;top:auto;bottom:150px;right:12px}}@media (width<=640px){.app-main{padding:10px}.live-clock span,.sb-right span:not(.sb-status),.status-bar>span:not(.sb-right){display:none}.scene-card{flex-direction:column;gap:8px;min-height:0;padding:440px 10px 10px;display:flex}.scene-card .ward-canvas,.scene-card .label-layer,.scene-card .stars{height:430px!important;inset:0 0 auto!important}.scene-title{max-width:calc(100% - 24px)}.scene-title p{display:none}.time-hud,.scene-bottom{width:auto;position:static}.scene-bottom{flex-wrap:wrap}.cat-counter{flex:1;min-width:calc(50% - 4px)}.legend-3d{display:none}.scene-bottom>.btn{width:100%}.scene-hint{display:none}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.main-nav span{display:none}.bed-tag{border-width:1px;padding:1px 4px}.bt-name,.bt-top em{display:none}.bt-top{gap:3px;font-size:10px}.bt-top i{width:12px;height:12px;font-size:8px}.bt-score{padding:0 3px;font-size:9.5px}.sign-3d,.route-label{display:none}.route-stop{border-width:1.5px;width:16px;height:16px;font-size:9.5px}}
