:root {
  color-scheme: dark;
  font-family: "Courier New", Courier, monospace;
  background: #0a0a0d;
  color: #f0e8d0;
  font-synthesis: none;
  --black:#0a0a0d;--ink:#171923;--paper:#f0e8d0;--gray:#b9b5a9;--dark:#555766;--brown:#6f4635;--tan:#c59b6d;--brick:#a8463f;--green:#4b8b55;--cyan:#4ab6b5;--sky:#6ca6d9;--blue:#263f70;--magenta:#a24c78;--purple:#6a4c93;--amber:#d7a93b;--yellow:#f2d060;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--black)}
button,input,textarea,select{font:inherit}
button{touch-action:manipulation}
#app{min-height:100vh;display:flex;justify-content:center;padding:10px}
.game-shell{width:min(100%,900px);display:flex;flex-direction:column;gap:10px;align-items:center}
.monitor{width:100%;border:4px solid var(--dark);background:var(--ink);padding:6px;box-shadow:0 0 0 3px var(--black)}
.game-canvas{display:block;width:100%;max-height:calc(100vh - 255px);aspect-ratio:280/192;image-rendering:pixelated;image-rendering:crisp-edges;background:var(--black)}
.panel{width:100%;border:3px solid var(--gray);background:var(--ink);padding:10px;box-shadow:inset 0 0 0 2px var(--black)}
.panel.paper{background:var(--paper);color:var(--ink);border-color:var(--tan)}
.screen-title{margin:0 0 8px;text-align:center;color:var(--amber);font-size:clamp(1.1rem,3.5vw,1.65rem);letter-spacing:.08em;text-transform:uppercase}
.screen-copy{margin:6px 0;line-height:1.35;white-space:pre-line}
.muted{color:var(--gray)}
.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.menu-grid.one{grid-template-columns:1fr}
.menu-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pixel-button{min-height:46px;border:3px solid var(--paper);border-right-color:var(--dark);border-bottom-color:var(--dark);border-radius:0;background:var(--blue);color:var(--paper);padding:7px 9px;text-align:left;cursor:pointer;text-transform:uppercase;line-height:1.2;position:relative}
.pixel-button:hover{background:var(--purple)}
.pixel-button:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}
.pixel-button:active{border-color:var(--dark) var(--paper) var(--paper) var(--dark);transform:translate(1px,1px)}
.pixel-button[disabled]{cursor:not-allowed;opacity:.45;background:var(--dark)}
.pixel-button.primary{background:var(--green)}
.pixel-button.danger{background:var(--brick)}
.pixel-button .num{display:inline-block;min-width:1.6em;color:var(--yellow)}
.pixel-button small{display:block;margin-top:3px;color:var(--gray);text-transform:none}
.status-strip{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.status-cell{border:2px solid var(--dark);background:var(--black);padding:5px;text-align:center;min-width:0}
.status-cell strong,.status-cell span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-cell strong{font-size:.72rem;color:var(--gray)}
.status-cell span{font-size:.95rem;color:var(--paper)}
.bar{height:10px;border:2px solid var(--dark);background:var(--black);margin-top:5px}
.bar>span{display:block;height:100%;background:var(--green)}
.bar.warn>span{background:var(--amber)}
.bar.danger>span{background:var(--brick)}
.member-list,.score-list,.ledger-list,.store-list{display:grid;gap:7px}
.member-row,.score-row,.ledger-row,.store-row{border:2px solid var(--dark);padding:7px;background:var(--black);display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.member-row.dead{border-color:var(--brick);color:var(--gray)}
.member-meta{font-size:.85rem;color:var(--gray)}
.store-row{grid-template-columns:minmax(0,1fr) auto auto}
.store-row button{min-width:72px}
.form-grid{display:grid;gap:8px}
label{display:grid;gap:4px;color:var(--amber);text-transform:uppercase}
input,textarea,select{width:100%;border:3px solid var(--dark);border-radius:0;background:var(--paper);color:var(--ink);padding:9px;min-height:44px}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:4px solid var(--yellow);outline-offset:1px}
textarea{min-height:80px;resize:vertical}
.choice-detail{display:block;color:var(--gray);font-size:.8rem;margin-top:4px;text-transform:none}
.event-result{border:3px solid var(--amber);background:var(--black);padding:10px;margin:8px 0;color:var(--paper);line-height:1.4}
.log{max-height:140px;overflow:auto;border:2px solid var(--dark);padding:7px;background:var(--black);font-size:.78rem;line-height:1.35}
.log p{margin:0 0 5px}
.controls-note{text-align:center;color:var(--gray);font-size:.78rem;margin:4px 0 0}
.touch-pad{display:grid;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,48px);justify-content:center;gap:5px;margin-top:8px}
.touch-pad button{min-height:48px;text-align:center}
.touch-pad .up{grid-column:2}.touch-pad .left{grid-column:1;grid-row:2}.touch-pad .down{grid-column:2;grid-row:2}.touch-pad .right{grid-column:3;grid-row:2}
.debug-panel{width:100%;border:2px dashed var(--magenta);padding:7px;background:#220f20}
.debug-panel summary{cursor:pointer;color:var(--magenta)}
.debug-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px}
.debug-grid button{min-height:38px;font-size:.75rem}
.notice{border-left:6px solid var(--amber);background:var(--black);padding:8px;margin:8px 0}
.route-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;margin:8px 0}
.route-month{height:22px;border:2px solid var(--dark);background:var(--black);font-size:.63rem;display:flex;align-items:center;justify-content:center}
.route-month.passed{background:var(--green)}.route-month.current{background:var(--amber);color:var(--black)}
.footer-line{font-size:.72rem;color:var(--dark);text-align:center;padding:3px}
@media (max-width:680px){
  #app{padding:4px}.monitor{padding:3px;border-width:3px}.panel{padding:8px}.menu-grid,.menu-grid.three{grid-template-columns:1fr}.status-strip{grid-template-columns:repeat(3,1fr)}.store-row{grid-template-columns:1fr auto}.store-row .cost{grid-column:1/2}.game-canvas{max-height:none}.pixel-button{min-height:48px}
}
@media (orientation:landscape) and (max-height:620px){
  #app{align-items:flex-start}.game-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);align-items:start}.monitor{grid-column:1}.panel{grid-column:2;grid-row:1}.status-strip{grid-column:1/3}.debug-panel{grid-column:1/3}.game-canvas{max-height:calc(100vh - 90px)}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
