:root{--night: #16141e;--night-2: #201d2b;--night-3: #2a2638;--ink: #e8e4f0;--ink-dim: #a59fb5;--orange: #ff6a00;--orange-press: #d95a00;--teal: #2ee6d6;--amber: #ffc53d;--danger: #ff4d4f;--money: #6fdc8c;--font-display: "Pixelify Sans", monospace;--font-body: "Atkinson Hyperlegible", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--night);color:var(--ink);font-family:var(--font-body)}#game-host{position:fixed;inset:0}#game-host canvas{display:block}#ui-root{position:fixed;inset:0;pointer-events:none}#ui-root>*{pointer-events:auto}button{font-family:var(--font-display);background:var(--orange);color:#1c1208;border:0;border-radius:4px;padding:4px 10px;font-size:14px;cursor:pointer}button:hover{background:#ff8129}button:active{background:var(--orange-press)}button:disabled{background:var(--night-3);color:var(--ink-dim);cursor:not-allowed}button.ghost{background:var(--night-3);color:var(--ink)}button.ghost:hover{background:#363145}button:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.hud{position:absolute;top:0;left:0;right:0;height:44px;display:flex;align-items:center;gap:18px;padding:0 14px;background:linear-gradient(180deg,#16141ef7,#16141ee0);border-bottom:1px solid var(--night-3);font-family:var(--font-display);font-size:15px}.hud .stat{display:flex;gap:6px;align-items:baseline;white-space:nowrap}.hud .stat .k{color:var(--ink-dim);font-size:12px}.hud .cash{color:var(--money)}.hud .cash.negative{color:var(--danger);animation:pulse 1.2s infinite}.hud .spacer{flex:1}.hud .speed button{min-width:34px}.hud .speed button.active{background:var(--teal);color:#06302c}@keyframes pulse{50%{opacity:.5}}.dock{position:absolute;top:52px;right:8px;width:340px;max-height:calc(100% - 110px);display:flex;flex-direction:column;background:#1a1724f5;border:1px solid var(--night-3);border-radius:8px;overflow:hidden}.dock .tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--night-3)}.dock .tabs button{flex:1;background:transparent;color:var(--ink-dim);border-radius:0;padding:7px 4px;font-size:13px;position:relative}.dock .tabs button.active{color:var(--orange)}.dock .tabs button .dot{position:absolute;top:4px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--teal)}.dock .body{overflow-y:auto;padding:10px;font-size:13px}.dock h3{font-family:var(--font-display);margin:2px 0 8px;font-size:15px;color:var(--ink)}.dock .empty{color:var(--ink-dim);padding:14px 4px;text-align:center}.card{background:var(--night-2);border:1px solid var(--night-3);border-radius:6px;padding:8px;margin-bottom:8px}.card .title{font-family:var(--font-display);font-size:14px;margin-bottom:4px;display:flex;gap:6px;align-items:center}.card .row{display:flex;justify-content:space-between;color:var(--ink-dim);margin:2px 0}.card .row b{color:var(--ink);font-weight:700}.card .actions{display:flex;gap:6px;margin-top:6px}.feas{width:9px;height:9px;border-radius:50%;display:inline-block}.feas.green{background:var(--money)}.feas.amber{background:var(--amber)}.feas.red{background:var(--danger)}.chip{font-size:11px;padding:1px 7px;border-radius:9px;background:var(--night-3);color:var(--ink-dim);font-family:var(--font-display)}.chip.live{background:#0b4a44;color:var(--teal)}.chip.scheduled{background:#4a3a0b;color:var(--amber)}.chip.done-fulfilled{background:#0b4a1d;color:var(--money)}.chip.done-failed,.chip.done-partial,.chip.done-late-fulfilled{background:#4a0b0b;color:var(--danger)}.bar{height:6px;background:var(--night-3);border-radius:3px;overflow:hidden;margin-top:4px}.bar .fill{height:100%;background:var(--teal)}table.mini{width:100%;border-collapse:collapse}table.mini td{padding:2px 4px;color:var(--ink-dim)}table.mini td:last-child{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}table.mini td.pos{color:var(--money)}table.mini td.neg{color:var(--danger)}.tray{position:absolute;top:52px;left:8px;width:300px;display:flex;flex-direction:column;gap:6px}.alert{background:#2a1012f5;border:1px solid var(--danger);border-radius:6px;padding:8px;font-size:13px}.alert .title{font-family:var(--font-display);color:var(--danger)}.alert .flavor{color:var(--ink-dim);margin:3px 0}.toasts{position:absolute;bottom:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:5px;align-items:center}.toast{background:#201d2bf7;border:1px solid var(--night-3);border-left:3px solid var(--teal);border-radius:5px;padding:6px 12px;font-size:13px;animation:toast-in .18s ease-out}.toast.bad{border-left-color:var(--danger)}.toast.money{border-left-color:var(--money)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.ticker{position:absolute;bottom:0;left:0;right:0;height:30px;display:flex;align-items:center;background:#16141ef7;border-top:1px solid var(--night-3);font-family:var(--font-display);font-size:13px;color:var(--amber);padding:0 14px;white-space:nowrap;overflow:hidden}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#100e16eb;text-align:center}.screen h1{font-family:var(--font-display);font-size:44px;color:var(--orange);margin:0;text-shadow:0 0 24px rgba(255,106,0,.4)}.screen .sub{color:var(--ink-dim);max-width:460px}.screen input{background:var(--night-2);color:var(--ink);border:1px solid var(--night-3);border-radius:4px;padding:7px 10px;font-family:var(--font-display);font-size:15px;width:180px;text-align:center}.screen .stats{font-size:14px;color:var(--ink-dim);line-height:1.9}.screen .stats b{color:var(--ink)}.banner{position:absolute;top:56px;left:50%;transform:translate(-50%);background:#0b4a44f2;border:1px solid var(--teal);color:var(--teal);font-family:var(--font-display);padding:8px 18px;border-radius:6px;font-size:15px}dialog.menu{background:var(--night-2);color:var(--ink);border:1px solid var(--night-3);border-radius:10px;padding:22px 26px;min-width:260px}dialog.menu::backdrop{background:#0a090eb3}dialog.menu h2{font-family:var(--font-display);margin:0 0 14px;color:var(--orange)}dialog.menu .items{display:flex;flex-direction:column;gap:8px}dialog.menu button{width:100%;padding:8px}
