:root{--bg:#f7faf8;--surface:#ffffff;--surface-strong:#eef8f3;--surface-muted:#f8fbf9;--text:#17211d;--muted:#61706a;--border:#d9e4df;--border-strong:#c7d7d0;--teal:#0f766e;--teal-strong:#0b5f58;--green:#15803d;--yellow:#b7791f;--red:#b91c1c;--red-soft:#fff1f2;--shadow-sm:0 4px 12px rgba(27,55,43,0.05);--shadow:0 10px 26px rgba(25,54,43,0.1);--radius:8px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--text-xs:0.74rem;--text-sm:0.82rem;--text-base:0.9rem;--text-md:0.98rem;--text-lg:1.08rem;--text-xl:1.18rem;--line-tight:1.18;--line-normal:1.42}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:var(--line-normal);letter-spacing:0;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;padding:max(var(--space-4),env(safe-area-inset-top)) var(--space-3) calc(92px + env(safe-area-inset-bottom))}.mobile-frame{width:min(100%,680px);margin:0 auto}.login-card{display:grid;width:min(100%,420px);grid-gap:var(--space-4);gap:var(--space-4);margin:8vh auto 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:var(--space-5);box-shadow:var(--shadow)}.login-brand{margin-bottom:var(--space-1)}.top-bar{justify-content:space-between;margin-bottom:var(--space-3)}.brand,.top-bar{display:flex;align-items:center;gap:var(--space-3)}.brand{min-width:0}.brand-mark{display:grid;width:42px;height:42px;place-items:center;flex:0 0 auto;border-radius:var(--radius);background:var(--teal);color:#fff;font-weight:700}.brand h1{margin:0;font-size:var(--text-xl);line-height:var(--line-tight)}.brand p,.muted,.subtitle{margin:0;color:var(--muted);font-size:var(--text-base)}.connectivity{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--teal-strong);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);white-space:nowrap}.connectivity-button{cursor:pointer}.connectivity svg{width:16px;height:16px}.role-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin-bottom:var(--space-3)}.role-button{min-height:46px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);cursor:pointer;font-size:var(--text-sm);font-weight:700}.role-button.active{border-color:var(--teal);background:var(--surface-strong);color:var(--teal-strong)}.urgency-banner{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top);z-index:4;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);border:1px solid #fecdd3;border-radius:var(--radius);background:var(--red-soft);color:#7f1d1d;padding:var(--space-3);box-shadow:var(--shadow)}.urgency-banner.capacity-full{border-color:#fed7aa;background:#fff7ed;color:#7c2d12}.urgency-banner strong{display:block;font-size:var(--text-md);line-height:var(--line-tight)}.urgency-banner span{color:#991b1b;font-size:var(--text-sm)}.countdown-pill{min-width:84px;border-radius:var(--radius-pill);background:#fff;padding:var(--space-2) var(--space-3);text-align:center;font-weight:700}.section{scroll-margin-top:86px;margin-bottom:var(--space-5)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.section-header h2{margin:0;font-size:var(--text-lg);line-height:var(--line-tight)}.alert-card,.case-card,.metric-card,.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.panel{padding:var(--space-4)}.step-indicator{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);font-size:var(--text-sm)}.progress-track{flex:1 1;height:8px;overflow:hidden;border-radius:var(--radius-pill);background:#e5eee9}.progress-fill{height:100%;width:25%;border-radius:inherit;background:var(--teal)}.progress-fill.wide{width:100%}.form-grid{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.step-list{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.form-section{display:grid;grid-gap:var(--space-3);gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-4)}.form-section:first-child{border-top:0;padding-top:0}.field{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.field label,.toggle-label{color:#314039;font-size:var(--text-sm);font-weight:700;line-height:var(--line-tight)}.field input,.field select,.field textarea{width:100%;min-height:46px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text);padding:var(--space-3);font-size:var(--text-base);line-height:var(--line-normal)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);outline:2px solid rgba(15,118,110,.14);outline-offset:1px}.field textarea{min-height:84px;resize:vertical}.vitals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.danger-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-2)}.danger-option{display:flex;min-height:46px;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:var(--space-2);font-size:var(--text-sm);line-height:var(--line-tight)}.summary-strip{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2);margin:var(--space-4) 0}.capacity-strip{border:1px solid #bbf7d0;border-radius:var(--radius);background:#f0fdf4;color:var(--green);padding:var(--space-3);font-size:var(--text-base);font-weight:700}.capacity-strip.limited{border-color:#fde68a;background:#fffbeb;color:var(--yellow)}.capacity-strip.full{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.summary-item{border-radius:var(--radius);background:var(--surface-strong);padding:var(--space-3)}.summary-item b{display:block;font-size:1.25rem}.button-row{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:var(--space-3);gap:var(--space-3)}.attachment-field{margin:var(--space-3) 0}.attachment-field input[type=file]{padding:var(--space-2)}.btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:var(--space-3);font-size:var(--text-base);line-height:var(--line-tight);text-decoration:none}.btn:focus-visible{outline:2px solid rgba(15,118,110,.32);outline-offset:2px}.btn-primary{border-color:var(--teal);background:var(--teal);color:#fff;font-weight:700}.btn-danger{border-color:var(--red);background:var(--red);color:#fff}.filter-row{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1)}.filter-chip,.status-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:#fff;color:var(--text);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);white-space:nowrap}.filter-chip{cursor:pointer}.filter-chip.active{border-color:var(--teal);background:var(--surface-strong);color:var(--teal-strong);font-weight:700}.status-chip.red{border-color:#fecdd3;background:var(--red-soft);color:var(--red)}.status-chip.yellow{border-color:#fde68a;background:#fffbeb;color:var(--yellow)}.status-chip.green{border-color:#bbf7d0;background:#f0fdf4;color:var(--green)}.alert-list,.case-list,.metric-grid{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.alert-card,.case-card,.case-detail,.metric-card{padding:var(--space-3)}.case-detail{margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.alert-card h3,.case-card h3,.case-detail h3,.case-detail h4,.metric-card h3{margin:0;font-size:var(--text-md);line-height:var(--line-tight)}.case-detail h4,.case-detail-section{margin-top:var(--space-4)}.case-detail-section{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2)}.detail-item{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);padding:var(--space-2)}.detail-item.wide{grid-column:1/-1}.detail-item span{display:block;margin-bottom:var(--space-1);color:var(--muted);font-size:var(--text-xs);line-height:var(--line-tight)}.detail-item strong{display:block;overflow-wrap:anywhere;color:var(--text);font-size:var(--text-base);line-height:1.3}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.alert-card.red{border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff5f6)}.alert-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-3)}.compact-actions{grid-template-columns:1fr}.handover-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:var(--space-3)}.btn-compact{width:100%;min-height:42px;margin-top:var(--space-3);font-size:var(--text-base)}.decision-note{display:grid;grid-gap:var(--space-1);gap:var(--space-1);border-radius:var(--radius);background:var(--surface-strong);padding:var(--space-3)}.decision-note strong{font-size:var(--text-sm)}.decision-note span{color:var(--muted);font-size:var(--text-base)}.message-form,.mini-form{display:grid;grid-gap:var(--space-3);gap:var(--space-3);margin-top:var(--space-4)}.admin-card,.compact-field{margin-top:var(--space-3)}.timeline-list{display:grid;grid-gap:var(--space-2);gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.timeline-list li{display:grid;grid-template-columns:58px 1fr;grid-gap:var(--space-2);gap:var(--space-2);align-items:start}.timeline-list time{color:var(--muted);font-size:var(--text-xs)}.timeline-list span{font-size:var(--text-base)}.metric-card strong{display:block;margin-top:var(--space-2);font-size:1.6rem}.bottom-tabs{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-1);gap:var(--space-1);border-top:1px solid var(--border);background:rgba(255,255,255,.96);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-tabs a{display:grid;min-height:54px;place-items:center;border-radius:var(--radius);color:var(--muted);font-size:var(--text-xs);text-decoration:none}.bottom-tabs a:first-child{background:var(--surface-strong);color:var(--teal-strong);font-weight:700}.bottom-tabs svg,.btn svg{width:18px;height:18px}@media (min-width:760px){.mobile-frame{width:min(100%,1120px)}.content-grid{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(360px,1.1fr);grid-gap:var(--space-5);gap:var(--space-5);align-items:start}.bottom-tabs{right:calc((100vw - min(100%, 1120px)) / 2 + 18px);bottom:18px;left:auto;width:420px;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}}