.portal-dialog.is-game .crt-machine{width:min(940px,100%)}
.portal-dialog.is-game .crt-screen{padding:20px 24px;border-radius:16px;transform:none}
.portal-dialog.is-game .terminal-heading{margin-bottom:4px;font-size:12px}
.portal-dialog.is-game .crt-screen h1{font-size:14px;margin-bottom:12px}
.dispatch{font:14px/1.5 TerminalCells,monospace;text-shadow:none;color:#e8ead7}
.dispatch h2{font:24px/1.1 TerminalCells,monospace;color:#f49a50;margin:0}
.dispatch .dispatch-tag{margin:4px 0 12px;font-size:12px;color:#abc994}
.dispatch-hud{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px;color:#b2e39b}
.dispatch canvas{display:block;width:100%;height:auto;image-rendering:pixelated;background:#08110e;border:1px solid #557647;touch-action:none;outline-offset:3px}
.dispatch canvas:focus-visible{outline:2px solid #f49a50}
.dispatch .dispatch-status{margin:8px 0!important;min-height:3em;color:#e8ead7;font-size:14px}
.dispatch-controls{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.dispatch .dispatch-actions{display:flex;gap:8px;flex-wrap:wrap}
.dispatch button{padding:8px 12px;border:1px solid #658654;background:#15271b;text-align:center;min-width:48px;min-height:48px;font-size:14px;touch-action:manipulation}
.dispatch button:before{content:''}
.dispatch-pad{display:grid;grid-template-columns:repeat(3,48px);gap:4px}
.dispatch-pad button:first-child{grid-column:2}.dispatch-pad button:nth-child(2){grid-column:1;grid-row:2}.dispatch-pad button:nth-child(3){grid-column:2;grid-row:2}.dispatch-pad button:nth-child(4){grid-column:3;grid-row:2}
.dispatch .dispatch-help{font-size:12px;margin:10px 0 0;color:#abc994}
@media(max-width:600px){.portal-dialog.is-game .crt-stage{padding-top:62px}.portal-dialog.is-game .crt-screen{padding:14px 8px}.portal-dialog.is-game .crt-case{padding:8px 4px}.portal-dialog.is-game .crt-screen h1{font-size:11px}.dispatch h2{font-size:20px}.dispatch-hud{gap:8px;font-size:12px}.dispatch-controls{gap:8px}.dispatch .dispatch-actions{max-width:145px}.dispatch button{padding:7px 8px;font-size:12px}.dispatch .dispatch-tag{font-size:11px}}
/* Keep the complete cabinet controls in view on a typical phone or laptop. */
.portal-dialog.is-game .crt-stage{padding-top:64px;padding-bottom:16px}
.portal-dialog.is-game .crt-case{padding:18px 24px 12px}
.portal-dialog.is-game .crt-bezel{padding:12px}
.portal-dialog.is-game .crt-screen{border-radius:14px!important;min-height:0}
.portal-dialog.is-game .crt-keyboard,.portal-dialog.is-game .crt-base{display:none}
.dispatch canvas{max-height:360px;width:auto;max-width:100%;aspect-ratio:4/3;margin:auto}
.dispatch .dispatch-status{font:12px/1.45 TerminalCells,monospace;min-height:2.9em;letter-spacing:0}
.dispatch .dispatch-tag{margin:4px 0 10px!important;line-height:1.4;letter-spacing:0}
.dispatch .dispatch-help{font:11px/1.5 TerminalCells,monospace;margin:8px 0 0!important;letter-spacing:0}
@media(max-width:600px){.portal-dialog.is-game .crt-case{padding:8px 4px}.portal-dialog.is-game .crt-bezel{padding:6px}.portal-dialog.is-game .crt-screen{padding:12px 8px}.portal-dialog.is-game .terminal-heading{font-size:10px;margin-bottom:4px}.portal-dialog.is-game .crt-screen h1{font-size:10px;margin-bottom:8px}.dispatch-hud{font-size:10px;gap:5px;letter-spacing:0}.dispatch canvas{width:100%;height:auto;max-height:none}.dispatch-controls{flex-wrap:nowrap;align-items:center;gap:6px}.dispatch .dispatch-actions{display:grid;gap:4px;max-width:120px}.dispatch-pad{grid-template-columns:repeat(3,44px);gap:3px}.dispatch button{min-width:44px;min-height:44px;padding:6px;font-size:11px}.dispatch .dispatch-status{min-height:0;margin:8px 0!important}.dispatch h2{font-size:18px}.dispatch .dispatch-tag{font-size:10px}.portal-dialog.is-game .crt-chin{margin-top:10px}}
.portal-dialog.is-game .dispatch,.portal-dialog.is-game .dispatch *{transition:none}
@media(max-width:600px){.dispatch .dispatch-actions{width:110px;flex-shrink:0}.dispatch .dispatch-actions button{white-space:nowrap;font-size:10px;padding:4px}.dispatch-pad{flex-shrink:0}.portal-dialog.is-game .crt-stage{padding-left:6px;padding-right:6px}.portal-dialog.is-game .crt-machine{width:100%}}
.dispatch canvas[hidden],.dispatch-fame[hidden]{display:none}
.dispatch-fame{background:#030b04;border:1px solid #557647;padding:18px 12px;color:#9bddb2;min-height:300px;text-align:center}
.dispatch-fame h3{font:24px/1.2 TerminalCells,monospace;color:#f49a50;letter-spacing:.04em;margin:0 0 8px}
.dispatch .dispatch-fame p{font:11px/1.4 TerminalCells,monospace;margin:8px 0 18px!important;letter-spacing:0}
.fame-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:520px;margin:0 auto}
.fame-columns table{width:100%;border-collapse:collapse;font:15px/1.6 TerminalCells,monospace;letter-spacing:0}
.fame-columns caption{font:13px/1.4 TerminalCells,monospace;text-decoration:underline;text-underline-offset:5px;margin-bottom:12px}
.fame-columns td:first-child{width:1.5ch;text-align:left}.fame-columns td:nth-child(2){text-align:left}.fame-columns td:last-child{text-align:right}.fame-current{color:#ffc17a;background:#243321}
.dispatch-fame:focus-visible{outline:2px solid #f49a50;outline-offset:3px}
@media(max-width:600px){.dispatch-fame{padding:12px 6px;min-height:245px}.dispatch-fame h3{font-size:17px}.fame-columns{gap:12px}.fame-columns table{font-size:12px}.fame-columns caption{font-size:10px}.dispatch .dispatch-fame p{font-size:9px}.dispatch .dispatch-actions{width:110px}}
.dispatch-controls[hidden]{display:none!important}
.dispatch-end-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.dispatch-end-actions button{min-height:48px;padding:10px 14px!important;font-size:12px!important;text-align:center!important}
.dispatch-end-actions button[data-cmd=exit]{background:#6f3e25;color:#fff0c6;border-color:#f0a768}
@media(max-width:600px){.dispatch-end-actions{gap:6px;margin-bottom:12px}.dispatch-end-actions button{font-size:10px!important;padding:8px!important}.dispatch-end-actions button[data-cmd=exit]{flex:1}}
/* Fit the complete board and commands to the cabinet's available screen space. */
.dispatch{height:100%;min-height:0;display:flex;flex-direction:column}
.dispatch>h2,.dispatch>.dispatch-tag,.dispatch>.dispatch-hud,.dispatch>.dispatch-status,.dispatch>.dispatch-controls,.dispatch>.dispatch-help{flex-shrink:0}
.dispatch canvas{flex:none;margin:0 auto;max-height:none}
.dispatch .dispatch-tag{margin-bottom:5px!important}.dispatch-hud{margin-bottom:5px}
.dispatch .dispatch-status{margin:5px 0!important;min-height:0}
.dispatch .dispatch-help{margin:5px 0 0!important;font-size:10px;line-height:1.3}
.dispatch-controls{gap:8px;flex-wrap:nowrap}.dispatch .dispatch-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;flex:1;max-width:none;width:auto}
.dispatch .dispatch-actions button{font-size:11px;padding:6px;min-height:44px}.dispatch-pad{grid-template-columns:repeat(3,44px)}.dispatch-pad button{min-height:44px}
.dispatch-fame{flex:1;min-height:0}
@media(max-width:600px){.dispatch .dispatch-tag{display:none}.dispatch .dispatch-help{font-size:9px;line-height:1.25}.dispatch .dispatch-actions{width:auto;max-width:none}.dispatch .dispatch-actions button{font-size:9px;white-space:normal;padding:3px}.dispatch-controls{gap:5px}.dispatch-pad{grid-template-columns:repeat(3,40px);gap:2px}.dispatch-pad button{min-width:40px;min-height:44px;padding:3px}.dispatch .dispatch-status{font-size:10px}.dispatch-hud{gap:4px}}
@media(max-width:600px){.dispatch-pad{grid-template-columns:repeat(3,44px)}.dispatch-pad button{min-width:44px}}

/* Dispatch has directions only: put the existing D-pad at the left thumb. */
@media (pointer:coarse){
.dispatch:not(.invaders) .dispatch-pad{order:-1;grid-template-columns:repeat(3,44px);gap:2px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.dispatch:not(.invaders) .dispatch-pad button{min-width:44px;min-height:44px;touch-action:none}
.dispatch:not(.invaders) .dispatch-controls{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box}
}
