:root{--ink:#172534;--muted:#66798b;--line:#dbe6ee;--paper:#fff;--canvas:#f3f7fb;--accent:#187264;--accent-soft:#e8f6f3;--accent-deep:#0d413a;--shadow:0 14px 34px #12304817}*{box-sizing:border-box}html{background:var(--canvas)}body{min-width:320px;color:var(--ink);background:var(--canvas);margin:0;font-family:Work Sans,sans-serif}button,input,select,textarea{font:inherit}.flex{display:flex}.grid{display:grid}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.text-sm{font-size:.875rem}.font-extrabold{font-weight:800}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.pb-2{padding-bottom:.5rem}.hidden{display:none!important}.app-shell{background:radial-gradient(circle at 92% 5%, #a6d5e659, transparent 24rem), radial-gradient(circle at 65% 100%, #aee1cc42, transparent 26rem), var(--canvas);grid-template-columns:284px minmax(0,1fr);width:100%;min-height:100dvh;display:grid}.sidebar{color:#fff;background:linear-gradient(#0b263f 0%,#123a5d 58%,#0e2c47 100%);min-height:100dvh;padding:18px 16px;position:sticky;top:0}.brand-block{background:#ffffff13;border:1px solid #ffffff1f;border-radius:19px;padding:16px}.brand-mark{color:#12324c;letter-spacing:-.08em;background:linear-gradient(135deg,#b6ddd0,#fff);border-radius:14px;place-items:center;width:44px;height:44px;font-weight:900;display:grid;box-shadow:0 8px 18px #00000029}.brand-name{margin:0;font-family:"Source Serif 4",serif;font-size:20px;line-height:1}.brand-tagline{color:#d6e6f3;margin:5px 0 0;font-size:12px}.side-label{color:#a9c2d5;letter-spacing:.12em;text-transform:uppercase;margin:22px 10px 8px;font-size:10px;font-weight:800;display:block}.side-select{color:#eaf4fb;background:#ffffff14;border:1px solid #ffffff2b;border-radius:12px;outline:none;width:100%;padding:11px 12px;font-weight:700}.side-select option{color:#172534;background:#fff}.side-select:disabled{opacity:.62;cursor:not-allowed}.nav-list{gap:7px;margin-top:20px;display:grid}.nav-button{color:#d9e8f3;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:13px;align-items:center;gap:11px;width:100%;padding:12px 13px;font-size:13px;font-weight:700;transition:background .2s,transform .2s;display:flex}.nav-button:hover{background:#ffffff12;transform:translate(2px)}.nav-button.active{color:#fff;background:#ffffff1c;border-color:#ffffff21;box-shadow:inset 3px 0 #a6dccd}.nav-icon{text-align:center;opacity:.9;width:20px}.side-note{color:#d8e7f2;background:#ffffff12;border:1px solid #ffffff1a;border-radius:16px;margin-top:22px;padding:14px;font-size:12px;line-height:1.5}.main-area{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:800}.page-title{letter-spacing:-.035em;margin:0;font-family:"Source Serif 4",serif;font-size:clamp(30px,4vw,40px);line-height:1}.page-subtitle{color:var(--muted);margin:8px 0 0}.status-card{border:1px solid var(--line);min-width:230px;box-shadow:var(--shadow);background:#ffffffe0;border-radius:16px;padding:12px 14px}.status-dot{background:#2b9b67;border-radius:50%;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 4px #dff4e8}.content-grid{gap:15px;display:grid}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff0;border-radius:18px;padding:17px;overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;display:flex}.card-title{margin:0;font-size:16px;font-weight:800}.small-muted{color:var(--muted);font-size:12px}.pill{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.metric-value{letter-spacing:-.04em;margin:8px 0 2px;font-family:"Source Serif 4",serif;font-size:34px;font-weight:700}.metric-caption{color:var(--muted);font-size:12px}.priority-row{border:1px solid var(--line);background:#fbfdfe;border-radius:14px;padding:12px}.priority-row+.priority-row{margin-top:9px}.severity{vertical-align:middle;border-radius:999px;margin-left:7px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-flex}.severity.stable{color:#216945;background:#e5f7ed}.severity.watch{color:#8b6516;background:#fff3da}.severity.unstable{color:#9a5627;background:#ffe9dc}.severity.critical{color:#9c3737;background:#ffe5e5}.callout{border:1px solid #cfe8df;border-left:5px solid var(--accent);background:linear-gradient(110deg, var(--accent-soft), #fff);border-radius:14px;padding:15px 16px;line-height:1.55}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 13px;font-size:13px;font-weight:800;transition:transform .18s,filter .18s;display:inline-flex}.button:hover{filter:brightness(.98);transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button:focus-visible,.nav-button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2a897140}.button-primary{color:#fff;background:var(--accent)}.button-soft{color:var(--accent-deep);background:var(--accent-soft)}.button-muted{color:#304d63;background:#edf3f7}.button-danger{color:#983839;background:#ffe7e7}.task-controls{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.full{grid-column:1/-1}label{color:#31485b;margin-bottom:6px;font-size:12px;font-weight:800;display:block}input,select,textarea{width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:11px;outline:none;padding:11px 12px}textarea{resize:vertical;min-height:104px}.table-wrap{border:1px solid var(--line);border-radius:14px;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:620px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf2f5;padding:12px 11px}th{color:#5c7081;letter-spacing:.08em;text-transform:uppercase;background:#f7fafc;font-size:10px;font-weight:800}tr:last-child td{border-bottom:0}.progress-track{background:#e8eef2;border-radius:999px;height:8px;overflow:hidden}.progress-value{border-radius:inherit;background:linear-gradient(90deg, var(--accent), #78bfae);height:100%}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.service-tile{border:1px solid var(--line);background:#fbfdfe;border-radius:14px;padding:13px}.toast{z-index:50;color:#1f6d45;background:#e8f8ee;border:1px solid #bce2c8;border-radius:13px;max-width:340px;padding:13px 16px;font-weight:800;animation:.25s ease-out enter;position:fixed;top:22px;right:22px;box-shadow:0 16px 36px #12452d24}.toast.error{color:#8e3333;background:#fff0f0;border-color:#efc5c5}.auth-gate{z-index:100;background:radial-gradient(circle at 20% 10%,#7ec5b238,#0000 28rem),linear-gradient(145deg,#071b2c,#10385a);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-card{background:#fffffffa;border-radius:24px;width:min(440px,100%);padding:28px;box-shadow:0 32px 90px #0000004d}.auth-card h1{margin:12px 0 0;font:700 34px/1 "Source Serif 4",serif}.auth-brand{margin-bottom:22px}.auth-form{gap:14px;margin-top:24px;display:grid}.auth-form .button{width:100%;margin-top:4px}.auth-message{min-height:18px;margin:14px 0 0}.role-nurse{--accent:#187264;--accent-soft:#e8f6f3;--accent-deep:#0d413a}.role-chief{--accent:#1f5d8c;--accent-soft:#e9f3fb;--accent-deep:#173e60}.role-supervisor{--accent:#7253a2;--accent-soft:#f1edfa;--accent-deep:#48326f}.role-base{--accent:#3b4d60;--accent-soft:#edf1f5;--accent-deep:#243442}@keyframes enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1020px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;position:relative}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.side-note{display:none}.service-grid,.three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.main-area{padding:16px}.topbar{display:grid}.top-actions{justify-content:stretch}.status-card{flex:100%;min-width:0}.two-columns,.three-columns,.form-grid,.service-grid,.nav-list{grid-template-columns:1fr}.toast{max-width:none;top:16px;left:16px;right:16px}}button[data-edit-patient],button[data-egress-patient],button[data-confirm-egress-patient],button[data-cancel-egress-patient],button[data-cancel-patient-edit],form[data-patient-edit-form] button[type=submit]{min-height:38px;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:9px 14px;font-size:.86rem;font-weight:650;transition:all .18s}button[data-edit-patient]{color:#155e75;background:#eaf4f7}button[data-edit-patient]:hover{background:#d6ebf0}button[data-egress-patient]{color:#b45309;background:#fff4e5}button[data-egress-patient]:hover{background:#fee8c8}button[data-confirm-egress-patient]{color:#fff;background:#b42318}button[data-cancel-egress-patient],button[data-cancel-patient-edit]{color:#475569;background:#eef2f6}form[data-patient-edit-form] button[type=submit]{color:#fff;background:#155e75}button[data-edit-patient]+button[data-egress-patient],button[data-confirm-egress-patient]+button[data-cancel-egress-patient],form[data-patient-edit-form] button+button{margin-left:7px}form[data-patient-edit-form] input,form[data-patient-edit-form] select{font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:9px;padding:9px 10px}[id^=patientEgressConfirm-]:not(.hidden){background:#fff7f7;border:1px solid #fecaca;border-radius:12px;margin-top:10px;padding:12px}.btn{appearance:none;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.78rem 1.15rem;font-size:.95rem;font-weight:600;line-height:1;transition:all .18s;display:inline-flex;box-shadow:0 4px 10px #0f172a14}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a1f}.btn:active{transform:translateY(0);box-shadow:0 4px 10px #0f172a14}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg,#244a78,#2f5f98)}.btn-primary:hover{background:linear-gradient(135deg,#1f416a,#284f80)}.btn-success{color:#fff;background:linear-gradient(135deg,#1d7a6f,#249487)}.btn-success:hover{background:linear-gradient(135deg,#17645b,#1f7f74)}.btn-secondary{color:#2b3a4a;background:#eef2f7;border:1px solid #d7e0ea}.btn-secondary:hover{background:#e4ebf3}.form-actions,.patient-actions,.actions-row{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.card form button,.patient-form button{margin-right:.5rem}.patient-register-btn,[data-register-patient]{min-height:44px;padding-inline:1rem}button{appearance:none;color:#24485c;min-height:40px;font:inherit;letter-spacing:.01em;cursor:pointer;background:#eef5f8;border:1px solid #c9d8e2;border-radius:10px;padding:9px 16px;font-size:.9rem;font-weight:650;transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}button:hover{background:#e2eef3;border-color:#9ebdca;transform:translateY(-1px);box-shadow:0 4px 12px #20475b1a}button:active{box-shadow:none;transform:translateY(0)}button:focus-visible{outline:none;box-shadow:0 0 0 3px #347a962e}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}button[type=submit]{color:#fff;background:#176b76;border-color:#176b76}button[type=submit]:hover{background:#125a64;border-color:#125a64}button[data-edit-patient]{color:#155e75;background:#e7f3f7;border-color:#bfdce5}button[data-edit-patient]:hover{background:#d8ebf1;border-color:#9ac9d6}button[data-egress-patient]{color:#a94e0b;background:#fff4e6;border-color:#f3d3aa}button[data-egress-patient]:hover{background:#fee8cc;border-color:#eebc7c}button[data-confirm-egress-patient]{color:#fff;background:#b42318;border-color:#b42318}button[data-confirm-egress-patient]:hover{background:#951d14;border-color:#951d14}button[data-cancel-egress-patient],button[data-cancel-patient-edit]{color:#52616b;background:#f4f6f8;border-color:#d7e0e6}button[data-cancel-egress-patient]:hover,button[data-cancel-patient-edit]:hover{background:#e9eef2;border-color:#bdcbd4}form button+button{margin-left:8px}form[data-patient-edit-form]{background:#f8fbfc;border:1px solid #dce6eb;border-radius:14px;margin-top:12px;padding:16px}form[data-patient-edit-form] input,form[data-patient-edit-form] select{border:1px solid #ccd9e0;border-radius:9px;min-height:40px}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm{margin-top:18px}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm .form-grid,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm label{color:#294352;margin-bottom:7px;font-size:.82rem;font-weight:700;display:block}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm input,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm select,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm textarea,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm input,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm select,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm textarea{box-sizing:border-box;color:#263b47;width:100%;font:inherit;background:#fff;border:1px solid #ccdce4;border-radius:11px;padding:11px 12px;transition:border-color .16s,box-shadow .16s,background .16s}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm input:focus,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm select:focus,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm textarea:focus,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm input:focus,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm select:focus,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm textarea:focus{background:#fcfeff;border-color:#63a6b9;outline:none;box-shadow:0 0 0 3px #4691a821}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm textarea,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm textarea{resize:vertical;min-height:105px;line-height:1.45}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm .full,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm .full{grid-column:1/-1}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label[for=saerS],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label[for=saerA],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label[for=saerE],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label[for=saerR],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm label[for=saerC]{color:#1f5263;font-size:.88rem}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerS{border-left:4px solid #3c8298}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerA{border-left:4px solid #608ba2}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerE{border-left:4px solid #4f8a78}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerR{border-left:4px solid #b58a43}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerC{border-left:4px solid #685f91}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerPatient,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerSeverity{min-height:44px}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm button[type=submit],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm button[type=submit]{color:#fff;cursor:pointer;background:#176b76;border:0;border-radius:11px;min-height:44px;padding:11px 18px;font-size:.9rem;font-weight:700;box-shadow:0 5px 12px #176b7624}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm button[type=submit]:hover,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm button[type=submit]:hover{background:#125a64;transform:translateY(-1px)}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefBeds,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefOccupied,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefScheduled,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefPresent,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefEvents,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefEquipment{min-height:46px;font-weight:650}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefNotes{min-height:125px}@media (width<=800px){:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm .form-grid,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm .form-grid{grid-template-columns:1fr}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm .full,:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm .full{grid-column:auto}:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #saerForm button[type=submit],:is(form[data-patient-edit-form] input,form[data-patient-edit-form] select) #chiefHandoffForm button[type=submit]{width:100%}}
