:root{--bg:#f5f7f9;--ink:#17212b;--muted:#65717e;--panel:#fff;--panel-soft:#edf4f7;--line:#d9e2e7;--primary:#1267a5;--primary-dark:#0b4f80;--accent:#148468;--danger:#b42318;--warning:#98690c;--shadow:0 12px 28px #17212b14;font-family:Segoe UI,Tahoma,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;color:var(--ink);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.auth-layout{grid-template-columns:minmax(360px,.86fr) minmax(420px,1.14fr);min-height:100vh;display:grid}.auth-panel{background:var(--panel);align-content:center;gap:18px;padding:40px;display:grid}.auth-side{color:#f7fbff;background:#10263a;align-content:center;gap:28px;padding:52px;display:grid}.auth-side h2{max-width:680px;margin:8px 0 12px;font-size:44px;line-height:1.08}.auth-side p{color:#cbd9e5;max-width:680px}.brand-row,.rail-brand,.context-strip,.panel-head,.command-row{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:44px;height:44px;font-weight:900;display:inline-grid}.eyebrow{color:var(--primary);text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.auth-side .eyebrow{color:#7fd4c3}h1,h2{margin:0}.auth-panel h1{margin-top:4px;font-size:34px}.auth-form{gap:14px;display:grid}label{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}input,select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:8px;padding:9px 11px}.checkbox-row{grid-template-columns:18px 1fr;align-items:start}.checkbox-row input{width:18px;min-height:18px;margin-top:2px}.primary,.secondary,.danger,.ghost{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:8px;padding:0 13px;font-weight:800}.primary{border-color:var(--primary);background:var(--primary);color:#fff}.secondary{border-color:var(--primary);color:var(--primary)}.danger{border-color:var(--danger);color:var(--danger)}.ghost{color:var(--primary-dark);background:0 0}.full{width:100%}.security-note,.message,.banner,.empty{border-radius:8px;padding:12px}.security-note{background:var(--panel-soft);color:var(--muted);gap:4px;display:grid}.message.error{color:var(--danger);background:#fff1f0}.message.success{color:var(--accent);background:#e9f8f4}.readiness-list,.check-list{gap:10px;padding:0;list-style:none;display:grid}.readiness-list li{color:#dce9f2;gap:10px;display:flex}.readiness-list span{background:#7fd4c3;border-radius:999px;width:10px;height:10px;margin-top:6px}.portal-shell{grid-template-columns:276px 1fr;min-height:100vh;display:grid}.rail{border-right:1px solid var(--line);background:#fff;grid-template-rows:auto 1fr;gap:22px;height:100vh;padding:22px 14px;display:grid;position:sticky;top:0}.rail-brand small{color:var(--muted);display:block}.module-nav{align-content:start;gap:7px;display:grid}.module-nav button{min-height:44px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:32px 1fr;align-items:center;gap:9px;padding:0 10px;font-weight:800;display:grid}.module-nav button span:first-child{background:var(--panel-soft);width:28px;height:28px;color:var(--primary-dark);border-radius:7px;place-items:center;display:grid}.module-nav button.active{color:var(--primary-dark);background:#eaf4fb;border-color:#b9d6e9}.workspace{align-content:start;gap:18px;padding:22px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar h1{margin-top:4px;font-size:30px}.context-strip{flex-wrap:wrap;justify-content:flex-end}.context-strip>div,.context-strip label{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:180px;padding:8px 10px}.context-strip span{color:var(--muted);font-size:12px;font-weight:800;display:block}.context-strip select{min-height:30px;margin-top:4px;padding:3px 6px}.banner{border:1px solid var(--line);background:#fff;font-weight:800}.banner.warning{color:var(--warning);background:#fff7df;border-color:#f3d38b}.banner.info{color:var(--primary-dark);background:#eef7fd;border-color:#b9d6e9}.grid,.content-grid,.queue-layout,.patient-grid,.report-grid{gap:14px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.content-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.panel,.metric-card,.patient-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.panel{padding:16px}.panel-head{justify-content:space-between;margin-bottom:14px}.panel h2{font-size:18px}.muted{color:var(--muted)}.metric-card{gap:5px;min-height:118px;padding:16px;display:grid}.metric-card span,.metric-card small{color:var(--muted);font-weight:800}.metric-card strong{font-size:31px}.flow-lane{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.flow-lane div{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:6px;min-height:86px;padding:11px;display:grid}.flow-lane strong{background:var(--primary);color:#fff;border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.status{border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-style:normal;font-weight:900;display:inline-flex}.status.ok,.status.completed{color:var(--accent);background:#e2f6ef}.status.warn,.status.pending{color:var(--warning);background:#fff4d6}.status.neutral,.status.confirmed,.status.checked_in{color:var(--primary-dark);background:#eaf4fb}.status.cancelled{color:var(--danger);background:#fff1f0}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:11px 8px}th{color:var(--muted);text-transform:uppercase;font-size:12px}.queue-layout{grid-template-columns:360px minmax(0,1fr)}.queue-list{gap:9px;display:grid}.queue-item{border:1px solid var(--line);min-height:86px;color:var(--ink);text-align:left;background:#fff;border-radius:8px;grid-template-columns:54px 1fr auto;align-items:center;gap:5px 10px;padding:10px;display:grid}.queue-item small{color:var(--muted);grid-column:2/4}.queue-item.active{border-color:var(--primary);outline:2px solid #1267a52e}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.detail-list div,.patient-card{background:var(--panel-soft);border-radius:8px;padding:12px}dt{color:var(--muted);font-size:12px;font-weight:800}dd{margin:3px 0 0;font-weight:800}.command-row{flex-wrap:wrap}.patient-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-card{gap:6px;display:grid}.patient-card span,.patient-card small{color:var(--muted)}.patient-card em{min-height:24px;color:var(--primary-dark);background:#fff;border-radius:999px;align-items:center;margin:4px 5px 0 0;padding:0 8px;font-size:12px;font-style:normal;font-weight:800;display:inline-flex}.report-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.empty{background:var(--panel-soft);color:var(--muted)}.state-panel{max-width:680px}code{background:var(--panel-soft);border-radius:6px;padding:2px 5px}@media (width<=1120px){.portal-shell,.auth-layout,.queue-layout{grid-template-columns:1fr}.rail{height:auto;position:static}.module-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-grid,.report-grid,.flow-lane,.patient-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-4,.span-5,.span-7,.span-8{grid-column:1/-1}}@media (width<=680px){.auth-panel,.auth-side,.workspace{padding:16px}.auth-side h2{font-size:30px}.topbar,.context-strip{flex-direction:column;align-items:stretch}.module-nav,.summary-grid,.report-grid,.flow-lane,.patient-grid,.detail-list{grid-template-columns:1fr}}
