.sw2-root {
  --sw2-ink: #0b2134;
  --sw2-panel: #102d43;
  --sw2-panel-raised: #183d53;
  --sw2-line: #48758a;
  --sw2-text: #edf6f7;
  --sw2-muted: #b5cbd0;
  --sw2-teal: #7fe0d0;
  --sw2-amber: #f2c56b;
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: clamp(14px, 2vw, 24px);
  color: var(--sw2-text);
  background: #0c2032;
  border: 2px solid #315a71;
  box-shadow: 4px 4px 0 #061421, inset 0 0 0 2px #132e43;
}
.sw2-root * { box-sizing: border-box; }
.sw2-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.sw2-title-block { display: grid; gap: 6px; min-width: 0; }
.sw2-kicker, .sw2-controls-label { color: #8fe4d4; font: 800 10px/1.35 var(--mono, ui-monospace, monospace); letter-spacing: .1em; }
.sw2-title { margin: 0; color: #f7fbfb; font: 800 clamp(22px, 3vw, 34px)/1.1 var(--mono, ui-monospace, monospace); letter-spacing: -.04em; }
.sw2-subhead { margin: 0; color: #edf7f6; font: 800 14px/1.3 var(--mono, ui-monospace, monospace); letter-spacing: .025em; }
.sw2-note { margin: 0; color: var(--sw2-muted); font-size: 12px; line-height: 1.5; }
.sw2-badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sw2-badge { padding: 6px 8px; color: #062827; background: #8fe4d4; border: 1px solid #d7fff7; box-shadow: 2px 2px 0 #061421; font: 800 9px/1 var(--mono, ui-monospace, monospace); letter-spacing: .06em; }
.sw2-badge-muted { color: #e9f3f4; background: #1d4056; border-color: #588197; }
.sw2-replay-panel, .sw2-crew, .sw2-current-event, .sw2-stage-map, .sw2-proof-note { min-width: 0; padding: 12px; background: var(--sw2-panel); border: 1px solid var(--sw2-line); box-shadow: inset 0 0 0 2px #0d263b; }
.sw2-replay-panel { display: grid; gap: 8px; }
.sw2-replay-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sw2-control { min-height: 38px; padding: 8px 12px; color: #eff8f8; background: #1d4359; border: 1px solid #6892a2; box-shadow: 2px 2px 0 #061421; font: 700 11px/1.2 var(--mono, ui-monospace, monospace); cursor: pointer; }
.sw2-control:hover:not(:disabled) { background: #27566b; }
.sw2-control-primary { color: #05282b; background: #8fe4d4; border-color: #ccfff4; }
.sw2-control-primary:hover:not(:disabled) { background: #b1f2e8; }
.sw2-control-quiet { background: transparent; }
.sw2-control:disabled { opacity: .45; cursor: not-allowed; }
.sw2-control:focus-visible, .sw2-crew-button:focus-visible { outline: 3px solid #ffe08a; outline-offset: 3px; }
.sw2-event-count { margin-left: auto; color: #cfe5e6; font: 800 11px/1.2 var(--mono, ui-monospace, monospace); }
.sw2-map-section { display: grid; gap: 8px; min-width: 0; }
.sw2-map-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.sw2-room-scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: #8fe4d4 #15394d; }
.sw2-room-scroll:focus-visible { outline: 3px solid #ffe08a; outline-offset: 2px; }
.sw2-room-map { display: block; width: 100%; max-height: min(70vh, 620px); background: #143549; border: 3px solid #6f9caa; box-shadow: 4px 4px 0 #061421, inset 0 0 0 2px #102d43; }
.sw2-room-outer { fill: #132e42; stroke: #779ba7; stroke-width: 3; }
.sw2-room-floor { fill: #244655; stroke: #527b87; stroke-width: 2; }
.sw2-floor-grid { stroke: #79929a; stroke-width: .7; opacity: .19; }
.sw2-north-wall { fill: #1c465c; stroke: #78a5ae; stroke-width: 2; }
.sw2-logo-slot { fill: #0c2b3b; stroke: #8fe4d4; stroke-width: 1.5; }
.sw2-wall-text, .sw2-window-label, .sw2-north-label { fill: #d4eef0; font: 800 8px var(--mono, ui-monospace, monospace); letter-spacing: .5px; }
.sw2-window { fill: #24617a; stroke: #b2e5ec; stroke-width: 2; }
.sw2-window-label { fill: #e3fbff; font-size: 7px; }
.sw2-north-label { fill: #f2c56b; }
.sw2-station { transition: filter .15s ease; }
.sw2-station-frame { fill: #38596a; stroke: #b1d0d1; stroke-width: 2; }
.sw2-station.is-destination .sw2-station-frame { fill: #486875; stroke: #ffdc85; stroke-width: 3; }
.sw2-station-label { fill: #f6fbf9; font: 800 9px var(--mono, ui-monospace, monospace); letter-spacing: .3px; paint-order: stroke; stroke: #193347; stroke-width: 2.4px; stroke-linejoin: round; }
.sw2-monitor { fill: #10283a; stroke: #b8c8b9; stroke-width: 2; }
.sw2-screen { fill: #8bdac6; }
.sw2-keyboard { fill: #bca47c; stroke: #382f2c; stroke-width: 1; }
.sw2-chair { fill: #af694d; stroke: #392f32; stroke-width: 2; }
.sw2-counter { fill: #ba7954; stroke: #563e3a; stroke-width: 2; }
.sw2-envelope { fill: #f1d78d; stroke: #584a37; stroke-width: 1.5; }
.sw2-envelope-alt { fill: #d8b96e; }
.sw2-envelope-line { fill: none; stroke: #79553c; stroke-width: 1.5; }
.sw2-cabinet { fill: #607982; stroke: #2a424b; stroke-width: 2; }
.sw2-drawer { fill: #91aab0; stroke: #304a53; stroke-width: 1.5; }
.sw2-handle { fill: #e8d498; }
.sw2-table { fill: #9a704f; stroke: #483b37; stroke-width: 2; }
.sw2-binder { fill: #a6c9bc; stroke: #324d4d; stroke-width: 1.5; }
.sw2-binder-line { stroke: #426c66; stroke-width: 1.5; }
.sw2-edit-screen { fill: #283d68; stroke: #bdc8ec; stroke-width: 2; }
.sw2-timeline-track { fill: #8fded4; }
.sw2-timeline-track.alt { fill: #edbd69; }
.sw2-rack { fill: #394957; stroke: #bac7c6; stroke-width: 2; }
.sw2-rack-unit { fill: #637782; stroke: #283c47; stroke-width: 1; }
.sw2-rack-light { fill: #92d9b4; }
.sw2-route { fill: none; stroke-width: 5; stroke-linecap: square; stroke-linejoin: bevel; opacity: .56; stroke-dasharray: 1 1; vector-effect: non-scaling-stroke; }
.sw2-route.is-home-route { stroke: #d7e2dc; opacity: .38; }
.sw2-coordination-panel { border-color: #8a7448; background: #172f43; }
.sw2-coordination-link { fill: none; stroke: #f2c56b; stroke-width: 3; stroke-dasharray: 3 5; stroke-linecap: round; stroke-linejoin: round; opacity: .9; vector-effect: non-scaling-stroke; }
.sw2-coordinator-core { pointer-events: none; }
.sw2-coordinator-halo { fill: #153c50; stroke: #f2c56b; stroke-width: 2; }
.sw2-brain-lobe { fill: #8cb9ef; stroke: #e0f2ff; stroke-width: 1.5; }
.sw2-brain-lobe.alt { fill: #b49be8; }
.sw2-brain-fold { fill: none; stroke: #edf6ff; stroke-width: 1.4; stroke-linecap: round; }
.sw2-brain-node { fill: #8fe4d4; stroke: #f2fffd; stroke-width: 1; }
.sw2-coordinator-label { fill: #f2d68f; font: 800 6.5px var(--mono, ui-monospace, monospace); paint-order: stroke; stroke: #102b3d; stroke-width: 2px; stroke-linejoin: round; }
.sw2-agent-shadow { fill: #071923; opacity: .48; }
.sw2-agent-face { stroke: #382f34; stroke-width: 1.2; }
.sw2-agent-hair { stroke: #372e38; stroke-width: 1; }
.sw2-agent-arm { opacity: .9; }
.sw2-role-prop { fill: #f2d37e; stroke: #3a342f; stroke-width: 1.5; }
.sw2-role-prop-line { fill: none; stroke: #634e37; stroke-width: 1.4; }
.sw2-agent-label { fill: #f7fcf7; font: 800 10px var(--mono, ui-monospace, monospace); paint-order: stroke; stroke: #102b3d; stroke-width: 3px; stroke-linejoin: round; }
.sw2-map-foot { margin: 0; color: #b8cfd0; font-size: 10px; line-height: 1.45; }
.sw2-map-mobile-hint { display: none; margin: 0; color: #a9cbd0; font-size: 11px; line-height: 1.4; }
.sw2-lower-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 10px; min-width: 0; }
.sw2-left-column { display: grid; align-content: start; gap: 10px; min-width: 0; }
.sw2-crew, .sw2-current-event, .sw2-stage-map { display: grid; align-content: start; gap: 8px; }
.sw2-crew-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sw2-crew-button { display: grid; gap: 4px; min-width: 0; min-height: 118px; padding: 9px; color: var(--sw2-text); text-align: left; background: #183a4f; border: 1px solid #547d8d; cursor: pointer; }
.sw2-crew-button:hover { background: #1e485d; }
.sw2-crew-button.is-selected { border: 2px solid #8fe4d4; box-shadow: inset 0 0 0 2px #244f5d; }
.sw2-crew-name { font: 800 12px/1.2 var(--mono, ui-monospace, monospace); }
.sw2-crew-role, .sw2-crew-location { color: #c1d6d8; font-size: 10px; line-height: 1.35; }
.sw2-state { display: inline-flex; width: fit-content; padding: 3px 6px; color: #092b2b; background: #8fe4d4; border: 1px solid #c9fff4; font: 800 9px/1.25 var(--mono, ui-monospace, monospace); }
.sw2-state-queued { color: #392a0c; background: #f0ce7f; border-color: #fbe2aa; }
.sw2-state-waiting-approval, .sw2-state-waiting { color: #33240b; background: #f1ca78; border-color: #f9e0a4; }
.sw2-state-failed, .sw2-state-cancelled, .sw2-state-unreachable { color: #fff3f1; background: #8f4146; border-color: #e9918b; }
.sw2-state-unknown { color: #e2edf0; background: #3f5969; border-style: dashed; }
.sw2-state-completed { color: #0b302a; background: #a5dfab; border-color: #d0f5cd; }
.sw2-event-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; }
.sw2-fact { min-width: 0; padding: 7px; background: #0c263a; border: 1px solid #345c70; }
.sw2-fact-label { margin: 0 0 3px; color: #a9c7cb; font: 700 8px/1.2 var(--mono, ui-monospace, monospace); text-transform: uppercase; }
.sw2-fact-value { margin: 0; color: #f0f6f4; font: 9px/1.4 var(--mono, ui-monospace, monospace); overflow-wrap: anywhere; }
.sw2-route-evidence { margin: 0; padding: 8px; color: #d4ebdf; background: #143b42; border-left: 3px solid #8fe4d4; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.sw2-diagnostic { margin: 0; padding: 8px; color: #ffe7b5; background: #473822; border-left: 3px solid #eabd68; font-size: 10px; line-height: 1.4; }
.sw2-stage-list { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.sw2-stage-item { display: grid; grid-template-columns: minmax(78px, .9fr) 18px minmax(0, 1.1fr); align-items: center; gap: 5px; padding: 7px; color: #e7f3f1; background: #0c263a; border: 1px solid #345c70; }
.sw2-stage-name, .sw2-stage-target { min-width: 0; font: 9px/1.3 var(--mono, ui-monospace, monospace); overflow-wrap: anywhere; }
.sw2-stage-arrow { color: var(--sw2-amber); text-align: center; }
.sw2-proof-note { border-color: #658c91; }
.sw2-proof-title { color: #f4d786; font: 800 9px/1.3 var(--mono, ui-monospace, monospace); letter-spacing: .06em; }
.sw2-proof-note .sw2-note + .sw2-note { margin-top: 4px; }
.sw2-fallback { min-height: 0; }

@media (prefers-reduced-motion: reduce) {
  .sw2-root *, .sw2-root *::before, .sw2-root *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 760px) {
  .sw2-root { gap: 10px; padding: 10px; }
  .sw2-room-map { max-height: none; }
  .sw2-lower-grid { grid-template-columns: minmax(0, 1fr); }
  .sw2-stage-map { grid-row: 1; }
  .sw2-event-count { width: 100%; margin: 0; }
  .sw2-crew-list { grid-template-columns: minmax(0, 1fr); }
  .sw2-crew-button { min-height: 96px; }
  .sw2-event-facts { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 430px) {
  .sw2-room-map { width: 600px; max-width: none; max-height: none; }
  .sw2-map-mobile-hint { display: block; }
  .sw2-controls-label { font-size: 9px; }
  .sw2-control { flex: 1 1 auto; min-height: 44px; }
  .sw2-stage-item { grid-template-columns: minmax(75px, .8fr) 16px minmax(0, 1.2fr); }
}
