:root{color:#172b46;background:#f2f5f9;--card:#fff;--line:#d9e1ec;--muted:#60738c;--blue:#214f83;--ok:#16824a;--warn:#a76110;--bad:#be3541}
body{background:#f2f5f9;color:#172b46}.app{max-width:1280px;padding:16px}.top{background:#132d4c;color:#fff;border-radius:14px 14px 0 0;margin:0;padding:16px 20px}.top .title{font-size:21px;letter-spacing:-.03em}.top .muted{color:#b8cade}.top .bad{color:#ffb7bb}.top .good{color:#7de4b2}.card{background:#fff;border-color:var(--line);box-shadow:0 2px 8px #18355006;padding:16px;border-radius:13px}.commandHeader{background:#132d4c;color:#fff;border:0;border-radius:0 0 14px 14px;margin-bottom:16px;padding:0 20px 16px}.stat{gap:12px;grid-template-columns:repeat(6,minmax(0,1fr));padding:12px 0}.stat>div{background:none;border-radius:0;padding:0 10px 0 0;border-right:1px solid #ffffff20;min-width:0}.stat>div:last-child{border:0}.stat b{font-size:11px;color:#adc1d9;font-weight:500;display:block;margin-bottom:4px}.stat #roleOut,.stat #modeOut{font-size:13px;font-weight:650}.roomCode{font-size:17px;letter-spacing:.06em}#timerOut{font-variant-numeric:tabular-nums;font-size:19px;font-weight:750}.commandHeader .sep{background:#ffffff1c;margin:8px 0}.commandHeader .sectionTitle{font-size:14px}.field,select,textarea,input{color:#172b46;background:#fff;border-color:#c6d2e1}.commandHeader .field{background:#213e60;color:#fff;border-color:#53708f}button{background:#214f83;color:#fff;border:1px solid #214f83;border-radius:9px;min-height:42px;padding:10px 14px;font-weight:650;box-shadow:none;line-height:1.25}button:hover{filter:brightness(.96)}button.secondary{background:#fff;color:#214365;border-color:#bac9da}button.ok{background:#214f83;border-color:#214f83}button.warn{background:#fff5df;color:#8b4e0d;border-color:#dfb976}button.danger{background:#fff;color:#a72b3c;border-color:#ddb6bc}.commandHeader button.secondary{background:transparent;color:#e3edfa;border-color:#829bb6}.commandHeader button.ok{background:#eaf2fc;color:#153b68;border-color:#eaf2fc}.commandHeader button.warn{background:#29496b;border-color:#6683a4;color:white}.commandHeader button.danger{background:transparent;color:#ffd9de;border-color:#9b7280}.commandHeader .toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.backMode{background:none!important;border:0!important;padding:4px 0!important;min-height:32px;color:#e3edfa!important;font-weight:500;text-align:left}.good{color:#147340}.bad{color:#b62235}.warnText{color:#8a510d}.muted{color:var(--muted)}.notice{background:#eef3fa;color:#294461}.badge{background:#eaf0f8;color:#294461}.item,.msg,.activityLine{border-color:#e5eaf2}.sep{background:#e0e6ef}.modeInfo{color:#576b86}.fileLabel{background:#e8eef7;color:#234464;border-color:#c5d2e3}.mapShell{background:#e2e8ee;border-color:#c7d4e2;max-height:70vh}.mapFrame{position:relative}.pauseBanner{position:absolute;left:0;right:0;top:0;z-index:26;background:#ffedc5ed;color:#7e4909;text-align:center;font-size:14px;line-height:1.4;padding:12px;pointer-events:none;border:0;border-bottom:1px solid #d2ab60;border-radius:12px 12px 0 0}.fatalBanner{background:#7f1d1d;color:white}.mapHint{background:#173553e8;color:white}.mapBusy{background:#edf4fc;color:#183d65;border:1px solid #b4c9e0;box-shadow:none}.mapBusy progress{accent-color:#214f83}.tutorialPanel{background:#edf4ff;color:#17395e;border-color:#aec6e5;box-shadow:none}.tutorial-highlight{outline-color:#d59a19!important}.participantToolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.participantToolbar button{background:#fff;color:#173e6d;border:1px solid #aebfd4;min-height:46px}.participantToolbar #detailBtn{grid-column:1/-1}.participantToolbar button.active{background:#214f83;color:white;outline:2px solid #93b3d8;outline-offset:1px}.actionDone{background:#e4f6eb;color:#135e36;border:1px solid #90cda8}.actionFailed{background:#fff0f0;color:#a02030;border-color:#e6a1aa}.reportedAmbulances{background:#eff8f2;border-color:#b8d8c3}.statusOk{color:#17643c}.triage button{color:white}.triage .red{background:#b52d3c;border-color:#b52d3c}.triage .yellow{background:#f5d56b;color:#4c3902;border-color:#caa950}.triage .green{background:#218052;border-color:#218052}.triage .black{background:#273342;border-color:#273342}.triage button.chosen{outline:3px solid #173e6d;box-shadow:0 0 0 5px white;transform:none}.grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:16px}.debrief{font-family:inherit;line-height:1.6}.summaryCard{scroll-margin-top:16px}.summaryGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.summaryMetric{padding:12px 0;border-bottom:1px solid #e3e9f1}.summaryMetric strong{display:block;font-size:27px;color:#173e6d}.summaryMetric span{font-size:13px;color:#60738c}.summaryMetric.deaths strong{color:#aa2d3e}.summaryCard .summaryTime{font-weight:650}.linkButton{background:none!important;border:0!important;color:#c3d7f0!important;padding:5px 0!important;min-height:30px;text-decoration:underline;font-size:12px}#lobbyCard:has(>#createBlock.hidden):has(>#joinBlock.hidden):has(>#soloStartBlock.hidden){display:none}#soloDebriefCard{display:none}.hazardLights{animation:hazard-blink 1.2s steps(1,end) infinite;pointer-events:none}.simulation-paused .hazardLights{animation-play-state:paused}@keyframes hazard-blink{0%,48%{opacity:1}49%,100%{opacity:.12}}@media(prefers-reduced-motion:reduce){.hazardLights{animation:none;opacity:1}}@media(max-width:850px){.app{padding:8px}.top{padding:14px}.top .title{font-size:18px}.commandHeader{padding:0 14px 14px}.stat{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}.stat>div:nth-child(3){border:0}.commandHeader .toolbar{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr;gap:0}.card{padding:12px}.mapShell{height:55vh;min-height:300px}.summaryGrid{grid-template-columns:1fr 1fr}.row .grow{min-width:120px}.mapZoomBar button{min-height:38px}.sectionTitle{font-size:16px}}@media(max-width:420px){.top{gap:6px}.top #conn{font-size:12px}.stat #roleOut,.stat #modeOut{font-size:12px}.participantToolbar button{padding:9px 6px;font-size:14px}}

button.rescueConfirmed:disabled{opacity:1;background:#e4f6eb;color:#135e36;border-color:#90cda8}
.top .muted{display:none}.top .title .version{font-size:12px;font-weight:500;color:#afc4df;margin-left:7px;letter-spacing:0}#conn{font-size:12px}#conn.good:before{content:'';display:inline-block;background:#6bd8a1;width:7px;height:7px;border-radius:50%;margin-right:6px}.commandHeader #soloBar>.sep{display:none}.commandHeader #trainingModeTitle{display:none}.commandHeader #guidedFromSolo{margin:2px 0 5px}.uiIcon{width:18px;height:18px;vertical-align:-3px;flex:none;margin-right:6px}.marker .uiIcon{width:18px;height:18px;margin:0;vertical-align:middle}.marker svg{overflow:visible}.pauseBanner .uiIcon{width:15px;height:15px}button{font-variant-numeric:tabular-nums}
.commandHeader .toolbar button,.participantToolbar button{display:flex;align-items:center;justify-content:center}.commandHeader .toolbar button{white-space:nowrap;font-size:14px;padding:10px 8px}
/* 1.0.10 compact training workspace */
.app{max-width:1600px}.grid{grid-template-columns:minmax(0,1fr) minmax(330px,410px);gap:12px}.main,.side{min-width:0}.card{padding:12px}.mapZoomBar{position:absolute;right:8px;top:8px;z-index:28;background:#fffffff0;border-radius:8px;gap:2px;padding:2px;margin:0}.mapZoomBar button{min-width:32px;min-height:32px;padding:3px 7px;border:0;background:transparent;font-size:18px}.mapZoomBar span{min-width:44px}.pauseBanner{top:17%;border-radius:0;padding:8px}.mapBusy{margin:0 0 8px}.participantToolbar{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:8px}.participantToolbar button{min-height:40px;padding:6px;font-size:13px}.participantToolbar #detailBtn{grid-column:auto}.roomCode{letter-spacing:0;font-size:14px;overflow-wrap:anywhere}.stat{grid-template-columns:2fr 1.2fr 1fr 1fr 1fr}.stat:has(>div:last-child:not(.hidden)){grid-template-columns:2fr 1.2fr 1fr 1fr 1fr 1fr}.roomItem{padding:12px 0;border-bottom:1px solid #e0e6ef;display:flex;align-items:center;justify-content:space-between;gap:12px}.roomItem small{color:#60738c}.formLabel{display:block;margin:10px 0;font-size:13px}.formLabel .field{display:block;width:100%;margin-top:5px}.formLabel input[type=checkbox]{width:18px;height:18px;vertical-align:middle}.formLabel:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}summary{cursor:pointer;font-weight:700}.evacConfirmed:disabled{opacity:1;background:#e4f6eb;color:#135e36;border-color:#72b78e}.eventToast{position:fixed;top:12px;left:50%;transform:translateX(-50%);background:#7f1d1d;color:white;padding:15px;border-radius:12px;z-index:90;max-width:90%;box-shadow:0 8px 30px #0005}.patientResults{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px;margin-top:20px}.patientResults th,.patientResults td{padding:8px 5px;border-bottom:1px solid #d9e1ec;text-align:left;vertical-align:top;overflow-wrap:anywhere}.patientResults th:first-child{width:30px}.patientResults th:nth-child(2){width:26%}.patientResults th:nth-child(3),.patientResults th:nth-child(4){width:16%}.categoryChip{display:inline-block;border-left:5px solid;padding:3px 5px;font-weight:700;background:#f1f5f9}.categoryChip.red{border-color:#dc2626}.categoryChip.yellow{border-color:#eab308}.categoryChip.green{border-color:#16a34a}.categoryChip.black{border-color:#111827}.awardCard{background:linear-gradient(135deg,#132d4c,#214f83);color:white;border:2px solid #d5b96a;border-radius:14px;padding:24px;text-align:center;margin:12px 0}.awardMedal{color:#e8c777;font-size:48px}.awardCard h2{margin:8px 0;color:#f1d48a}.awardCard button{background:#f1d48a;color:#132d4c;border:0}#selectedCard{scroll-margin-top:12px}#policeClear{margin-bottom:8px}.autoRemaining{font-variant-numeric:tabular-nums;margin-top:5px}#activityCard .debrief{max-height:none;overflow:visible}#notice{padding-top:5px}#myRoomsBody{max-height:400px;overflow-y:auto}.side .row .grow{min-width:100px}.side .field{max-width:100%}.side .patientActions button{font-size:12px;padding:7px;min-height:38px}.side .triage{gap:4px}.side .triage button{font-size:12px;padding:7px;min-height:38px}
@media(max-width:850px){.grid{grid-template-columns:1fr}.participantToolbar{grid-template-columns:1fr 1fr}.participantToolbar #detailBtn{grid-column:1/-1}.participantToolbar button{min-height:42px;font-size:14px}.roomItem{display:block}.roomItem .row{margin-top:8px}.patientResults,.patientResults tbody,.patientResults tr,.patientResults td{display:block;width:100%}.patientResults thead{display:none}.patientResults tr{border:1px solid #d9e1ec;border-radius:10px;padding:8px;margin:10px 0}.patientResults td{border:0;display:grid;grid-template-columns:90px minmax(0,1fr);gap:7px;padding:5px}.patientResults td:before{content:attr(data-label);font-weight:700;color:#60738c}.patientResults td:last-child{display:block}.patientResults td:last-child:before{display:block;margin-bottom:4px}.stat{grid-template-columns:repeat(3,minmax(0,1fr))!important}.mapZoomBar button{min-height:34px}.mapZoomBar{right:5px;top:5px}}

#patientPlacement{font-size:11px;min-height:28px;padding:4px 7px;margin-bottom:8px}.side #selectedCard{max-height:58vh;overflow-y:auto}@media(max-width:850px){#patientPlacement{display:none}#selectedCard{max-height:none!important;overflow:visible!important}}

/* 1.0.11: progress never participates in page layout. */
.mapFrame>.mapBusy{position:absolute;left:8px;right:8px;top:58px;z-index:25;margin:0;padding:6px 8px;background:#edf4fcf2;pointer-events:auto}.mapBusy progress{height:7px;margin:3px 0 0}.mapBusyHead{font-size:12px}.mapBusy button{min-height:30px}.tripCard{border:1px solid #c6d2e1;border-radius:10px;margin:10px 0;padding:10px}.tripChoice{display:flex;gap:8px;align-items:flex-start;padding:7px 0;font-size:13px}.tripChoice input{width:18px;height:18px;flex:none}.tripChoice small{display:block;color:#60738c}.tripStatus{font-size:12px;margin:6px 0}.tripButtons{display:flex;gap:6px;flex-wrap:wrap}.tripButtons button{font-size:12px;padding:7px;min-height:36px}.reportsPanel{border:1px solid #c6d2e1;border-radius:9px;padding:10px;margin:10px 0}.reportGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.reportGrid label{font-size:12px}.reportGrid input{display:block;width:100%;margin:3px 0 6px}.reportForm{margin:8px 0}.completion111{padding:12px;border-radius:9px;background:#eef3fa;margin:12px 0}.completion111.failed{border-left:4px solid #b52d3c}.completion111.passed{border-left:4px solid #218052}.reportComparison{font-size:12px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;margin-top:8px}.outpatientButton{margin-top:10px}.tripSelected{background:#eff8f2}#operationalStatus{margin-top:6px;font-size:12px}

dialog{max-width:min(92vw,460px);border:1px solid #c6d2e1;border-radius:14px;padding:20px;color:#172b46;box-shadow:0 16px 60px #132d4c55}dialog::backdrop{background:#132d4c88}dialog h3{margin:0 0 12px}dialog p{line-height:1.45}
