:root{font-family:Arial,Helvetica,sans-serif;color:#193d34;background:#dce0d3;font-synthesis:none;--ink:#193d34;--paper:#f1f1e6;--line:#b4bfae;--muted:#52675b}*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:.8rem 1.1rem;cursor:pointer;transition:background .15s,color .15s}button:hover{background:#e1e6d7}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #3b7161;outline-offset:4px}button:disabled{cursor:wait;opacity:.6}.primary{background:var(--ink);color:var(--paper)}.primary:hover{background:#285344}a{color:inherit}input{accent-color:var(--ink)}[hidden]{display:none!important}.masthead{height:82px;display:flex;justify-content:space-between;align-items:center;padding:0 3vw;border-bottom:1px solid var(--line);background:var(--paper)}.wordmark{text-decoration:none;font-family:Georgia,serif;font-weight:bold;letter-spacing:.14em;font-size:1.35rem}.wordmark span{display:block;font:9px Arial,sans-serif;letter-spacing:.28em;margin-top:6px}.employee{font:11px ui-monospace,monospace;letter-spacing:.03em}.floor-view{height:calc(100dvh - 175px);min-height:340px;position:relative;overflow:hidden;background:#b9c5ae}canvas{display:block;width:100%;height:100%;outline:none}.playbar{display:flex;align-items:center;gap:1.5rem;min-height:54px;padding:.45rem 3vw;background:var(--paper);border-bottom:1px solid var(--line);font:12px ui-monospace,monospace}.playbar button{padding:.45rem .8rem}.play-actions{display:flex;gap:.5rem;margin-left:auto}#clock{font-variant-numeric:tabular-nums}.controls-hint{margin:0;padding:10px 3vw;background:var(--paper);font-size:11px;color:var(--muted)}.credits{padding:14px 3vw;font-size:10px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.idle-room{position:absolute;inset:0;background:linear-gradient(90deg,#e6e7dd 0 29%,#b9c5ad 29% 71%,#e6e7dd 71%);opacity:.5}.idle-room:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 79px,#768b7340 80px 81px);transform:perspective(300px) rotateX(40deg) scale(1.8);transform-origin:bottom}.idle-room div{position:absolute;left:32%;right:32%;top:0;bottom:15%;background:linear-gradient(#ebede3 0 75%,#9daf9340 76%);box-shadow:0 0 90px #e9ecdf}dialog{position:fixed;inset:0;margin:auto;width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #657c69;background:var(--paper);color:var(--ink);box-shadow:0 18px 70px #142e3426}dialog::backdrop{background:#213b3330;backdrop-filter:blur(3px)}.terminal-top,.terminal-bottom{display:flex;justify-content:space-between;gap:15px;padding:13px 25px;font:9px ui-monospace,monospace;letter-spacing:.13em}.terminal-top{border-bottom:1px solid var(--line)}.terminal-bottom{border-top:1px solid var(--line);letter-spacing:.02em;color:var(--muted)}.terminal-body{padding:30px 42px 32px}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:.2em;margin:0 0 15px}h1{font:normal clamp(30px,4vw,46px)/1.06 Georgia,serif;letter-spacing:-.035em;margin:0 0 22px}.lede{font-size:16px;line-height:1.5;margin:0 0 24px}.assignments{border-top:1px solid var(--line)}.assignments button{position:relative;display:grid;grid-template-columns:110px 1fr;gap:12px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);padding:22px 24px 22px 0}.assignments strong{font-size:16px;font-weight:500}.assignments button>span:not(.arrow){font-size:12px;line-height:1.6;color:var(--muted)}.arrow{position:absolute;right:0;top:22px;font-size:18px}.record{font:11px ui-monospace,monospace;line-height:1.6;margin:22px 0 8px}.small{font-size:11px;line-height:1.6;color:var(--muted)}.menu-actions{display:grid;gap:10px}.menu-actions button{text-align:left}.change-mode{margin-top:24px}.change-mode button{font-size:12px;padding:9px}.instructions{display:grid;grid-template-columns:120px 1fr;font-size:13px;line-height:1.5;gap:14px}.instructions dt{font-family:ui-monospace,monospace;font-size:11px}.instructions dd{margin:0}.settings{display:grid;gap:24px;margin:24px 0}label{font-size:13px;display:flex;align-items:center;gap:10px;line-height:1.5}input[type=checkbox]{width:17px;height:17px}input[type=range]{width:100%;margin-top:10px}.result-detail{display:grid;grid-template-columns:1fr auto;gap:12px;font:13px ui-monospace,monospace;padding:18px 0;border-block:1px solid var(--line)}.result-detail dd{margin:0;font-variant-numeric:tabular-nums}.result-detail .total{font-weight:bold;border-top:1px solid var(--line);padding-top:14px}#audio-notice{margin-left:auto}@media(max-width:600px){.masthead{height:65px;padding:0 20px}.employee{font-size:9px}.terminal-body{padding:24px}.terminal-top,.terminal-bottom{padding:12px 20px}.terminal-bottom{font-size:8px}.assignments button{grid-template-columns:1fr;gap:8px;padding:18px 20px 18px 0}.playbar{gap:9px;flex-wrap:wrap}.playbar button{font-size:11px}.floor-view{height:calc(100dvh - 200px)}.controls-hint{font-size:10px;line-height:1.5}.instructions{grid-template-columns:1fr;gap:4px}.instructions dd{margin-bottom:12px}dialog{max-height:calc(100dvh - 20px)}h1{font-size:35px}.credits{line-height:1.5}}@media(prefers-reduced-motion:reduce){button{transition:none}dialog::backdrop{backdrop-filter:none}}

dialog[data-state=ending]{top:auto;bottom:24px;width:310px;margin:0 auto;box-shadow:none}dialog[data-state=ending]::backdrop{background:transparent;backdrop-filter:none}dialog[data-state=ending] .terminal-top,dialog[data-state=ending] .terminal-bottom,dialog[data-state=ending] .eyebrow,dialog[data-state=ending] h1{display:none}dialog[data-state=ending] .terminal-body{padding:16px 22px}dialog[data-state=ending] section{display:flex;align-items:center;justify-content:space-between;gap:18px}dialog[data-state=ending] .lede{font-size:13px;margin:0}dialog[data-state=ending] button{font-size:12px;padding:8px 12px}

/* Tablet-safe owner controls remain outside the input canvas and in each modal. */
:root { --page: #dce0d3; --hover: #e1e6d7; }
:root[data-theme=dark] { color-scheme: dark; --ink: #e1eddf; --paper: #182c27; --line: #657c69; --muted: #bacbbc; --page: #11241e; --hover: #304b3f; }
body { color: var(--ink); background: var(--page); }
button, .owner-navigation a { min-height: 44px; min-width: 44px; }
button:hover { background: var(--hover); }
button:disabled { cursor: not-allowed; }
.owner-navigation { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.owner-navigation a { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ink); padding: .55rem .75rem; text-decoration: none; font: 13px Arial, sans-serif; }
.owner-navigation button { padding: .55rem .75rem; font-size: 13px; }
.masthead { height: 64px; padding-inline: 1rem; gap: 1rem; }
.masthead .wordmark { font-size: 1rem; }
.playbar { min-height: 56px; padding: .35rem 1rem; gap: .7rem; }
.playbar button { min-height: 44px; }
.floor-view { min-height: 180px; height: calc(100dvh - 200px); }
#floor { touch-action: none; }
.controls-hint { font-size: 12px; padding: 8px 1rem; }
.terminal-body { padding: 20px 28px; }
.terminal-top { padding: 10px 20px; }
.terminal-bottom { padding: 8px 20px; }
h1 { font-size: clamp(28px, 3.5vw, 38px); margin-bottom: 14px; }
.eyebrow { margin-bottom: 9px; }
.lede { margin-bottom: 14px; }
.input-requirement { font-size: 14px; line-height: 1.45; padding: .7rem; border: 1px solid var(--line); }
.assignments button { padding-block: 14px; grid-template-columns: 125px 1fr; }
.assignments .arrow { top: 14px; }
.record { margin-top: 14px; }
.menu-actions { gap: 7px; }
.change-mode { margin-top: 14px; }
.settings { gap: 12px; margin: 16px 0; }
.settings label, #guidance-option { min-height: 44px; }
dialog { max-height: calc(100dvh - 24px); }
@media(max-width:600px) { .employee, .wordmark span { display: none; } .masthead { padding-inline: .5rem; gap: .5rem; } .owner-navigation { gap: .3rem; } .terminal-body { padding: 16px 20px; } .terminal-bottom { padding-inline: 20px; } .assignments button { grid-template-columns: 1fr; } }

.primary:hover { background: var(--muted); }
