@font-face{font-family:FusionPixel;src:url('/public/fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.otf.woff2') format('woff2');font-display:swap}
/* Compact A layout. The board keeps its full height; only the right rail is reserved. */
body[data-client=richman8-subset]{font-family:FusionPixel,monospace;--ink:#354b3d;--muted:#6b7967;--paper:#fff9e9;--line:#a3af91;--green:#416c57;--rail-width:144px;--rail-gap:14px;--header-height:50px}
body[data-client] button,body[data-client] select,body[data-client] input{font:inherit;border-radius:0}
body[data-client] button{border:2px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 2px 0 #314b3a24;line-height:1.2;letter-spacing:0}
body[data-client] button:hover:not(:disabled){background:#e3ecd6;border-color:var(--green)}
body[data-client] button:focus-visible,body[data-client] input:focus-visible,body[data-client] select:focus-visible{outline:3px solid #b46d3d;outline-offset:3px}
body[data-client] button:active:not(:disabled){translate:0 2px;box-shadow:none}
body[data-client] button.primary-button,body[data-client] .roll-button{background:var(--green);border:2px solid #2e4d3b;box-shadow:0 3px 0 #294434;color:#fff9e9}
body[data-client] button.primary-button:hover:not(:disabled),body[data-client] .roll-button:hover:not(:disabled){background:#507f63}
body[data-client] .r8-header,body[data-client]:has(#hud:not([hidden])) .r8-header{inset:0 0 auto;min-height:50px;padding:7px 16px;background:var(--paper);border:0;border-bottom:2px solid var(--line);border-radius:0;box-shadow:0 2px 0 #253f3028;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto;backdrop-filter:none}
body[data-client] .r8-brand{border:0;background:none;box-shadow:none;padding:0;font-size:16px;letter-spacing:0;color:var(--ink)}
body[data-client] .city-status{display:flex;align-items:baseline;gap:10px;white-space:nowrap;font-size:16px}
body[data-client] .r8-header .city-status #city-caption{display:inline}
body[data-client] #date-status{padding:0;font-size:12px;color:var(--muted)}
body[data-client] .r8-header nav{padding:0;background:none;border:0;box-shadow:none;gap:5px;display:flex;align-items:center}
body[data-client] .r8-header nav button{border:2px solid var(--line);padding:6px 8px;min-height:30px;white-space:nowrap;font-size:12px;border-radius:0}
body[data-client][data-screen=play] .r8-header nav>select{display:none}
body[data-client] .r8-hud{position:static;inset:auto;max-width:none;max-height:none;width:auto;display:flex;align-items:center;gap:12px;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;backdrop-filter:none}
body[data-client] .r8-hud .player-list,body[data-client]:has(#route-panel:not([hidden])) .r8-hud .player-list{display:flex;gap:5px;padding:0;margin:0;align-items:center;max-width:none}
body[data-client]:has(#route-panel:not([hidden])) .r8-hud{display:flex;max-height:none}
body[data-client] .player-chip{width:auto;height:30px;display:flex!important;flex-direction:row;align-items:center;gap:4px;padding:1px 4px 1px 1px;border:0;border-bottom:2px solid transparent;background:none;box-shadow:none;outline:0;border-radius:0}
body[data-client] .player-chip img{width:24px;height:26px;object-fit:contain;border:0;border-radius:0;image-rendering:pixelated;background:none}
body[data-client] .player-chip.active{outline:0;background:#e6edda;border-bottom-color:var(--player-color)}
body[data-client] .player-chip .player-chip-name{max-width:58px;font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body[data-client] .player-chip .player-seat-number{display:none}
body[data-client] #turn-indicator{font-size:14px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
body[data-client] .play-dock{position:fixed;z-index:27;inset:auto var(--rail-gap) auto auto;top:calc(50% + 20px);translate:0 -50%;transform:none;width:var(--rail-width);height:auto;max-height:calc(100dvh - var(--header-height) - 28px);overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:10px;border:2px solid #5f7d61;border-radius:0;background:var(--paper);box-shadow:4px 4px 0 #29493630}
body[data-client] #current-player{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:5px 7px;width:auto}
body[data-client] .dock-portrait{width:32px;height:38px;object-fit:contain;border:1px solid #a6b299;outline:0;border-radius:0;box-shadow:none;image-rendering:pixelated}
body[data-client] .turn-caption{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:3px;min-width:0}
body[data-client] .turn-caption strong{font-size:14px;font-weight:normal;max-width:43px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-client] .turn-caption button{font-size:12px;min-height:23px;padding:2px;box-shadow:none;border-width:1px;flex:none}
body[data-client] .my-status{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;font-size:12px;line-height:1.3}
body[data-client] .my-status:empty{display:none}
body[data-client] .my-status .spirit-badge{color:#8f702d}
body[data-client] .my-status .is-poverty{color:#786289}
body[data-client] #self-player{display:block;padding:0;margin:0;background:none;border:0;width:auto}
body[data-client] #self-player .asset-pair{display:block}
body[data-client] #self-player .asset-pair>div{display:flex;justify-content:space-between;align-items:baseline;gap:4px}
body[data-client] #self-player .asset-pair span{font-size:12px;color:var(--ink)}
body[data-client] #self-player .asset-pair strong{font-size:18px;color:var(--ink);font-weight:normal;line-height:1.1}
body[data-client] .hand-dock{position:static;inset:auto;display:block;transform:none;translate:none;width:auto;max-width:none;min-width:0;min-height:0;height:auto;flex:none;padding:0;border:0;background:none;box-shadow:none;overflow:visible}
body[data-client] .hand-heading{display:flex;justify-content:space-between;align-items:center;height:20px;margin-bottom:5px;font-size:12px}
body[data-client] .hand-heading b{font-weight:normal;color:var(--muted)}
body[data-client] .hand-heading button{font-size:12px;min-height:0;border:0;padding:1px 0;box-shadow:none;background:none}
body[data-client] .hand-row{display:flex;flex-direction:column;gap:5px;padding:0;overflow:visible;align-items:stretch}
body[data-client] .hand-card.art-card,body[data-client] .hand-card.art-card:nth-child(even){width:100%;min-width:0;max-width:none;height:34px;min-height:34px;padding:3px 5px;border:1px solid #a0ad8d;border-radius:0;background:#fff9e7;box-shadow:1px 2px 0 #8d9d762d;transform:none;transition:background .1s}
body[data-client] .hand-card.art-card:hover:not(:disabled),body[data-client] .hand-card.art-card:focus-visible{transform:none;box-shadow:1px 2px 0 #8d9d762d}
body[data-client] .hand-card .card-face{display:flex;align-items:center;gap:6px;height:100%;text-align:left;min-width:0;border-left:3px solid var(--card-ink);padding-left:2px}
body[data-client] .hand-card .card-art-frame{height:26px;width:26px;flex:none;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
body[data-client] .hand-card .card-art-svg{width:26px;height:26px;max-height:none;filter:none;image-rendering:pixelated}
body[data-client] .hand-card .card-name{font-size:12px;font-weight:normal;line-height:1.2;margin:0;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-client] .hand-card .card-quantity{right:-4px;top:-5px;padding:0 2px;min-width:16px;font-size:10px;border:1px solid var(--paper);border-radius:0;background:var(--card-ink)}
body[data-client] .hand-card.card-blocked{opacity:.7}
body[data-client] .empty-hand{padding:8px 0;font-size:12px;color:var(--muted)}
body[data-client] .dock-controls{grid-column:auto;grid-row:auto;width:auto;display:flex;flex-direction:column;align-items:stretch;align-self:stretch;gap:7px;margin:0}
body[data-client] .turn-actions{display:flex!important;flex-direction:column;min-height:40px;width:100%;margin:0}
body[data-client] .turn-actions .roll-button,body[data-client] .turn-actions>.primary-button,body[data-client] .turn-actions>button{min-height:40px;padding:6px 3px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:14px;border-radius:0;width:100%}
body[data-client] .roll-button .die-choice{width:22px;height:22px;flex:none}
body[data-client] .standby{min-height:38px;display:grid;place-items:center;font-size:12px;padding:4px 0;color:var(--muted)}
body[data-client] .standby>button{font-size:12px;min-height:34px;background:var(--paper);border-color:var(--line)}
body[data-client] .hud-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0}
body[data-client] .hud-tools button{min-height:27px;padding:4px 3px;font-size:12px;border:2px solid var(--line);border-radius:0;background:var(--paper);box-shadow:0 2px 0 #314b3a24}
body[data-client] .r8-camera{display:none}
body[data-client] .route-panel,body[data-client] .target-panel,body[data-client] .decision-panel{top:auto;left:auto;right:calc(var(--rail-width) + var(--rail-gap) + 16px);bottom:16px;width:340px;max-width:calc(100vw - var(--rail-width) - var(--rail-gap) - 38px);max-height:calc(100dvh - var(--header-height) - 34px);border:2px solid var(--line);border-radius:0;background:var(--paper);box-shadow:4px 4px 0 #29493630;backdrop-filter:none;padding:14px}
body[data-client] .target-panel{padding:0}
body[data-client] .target-panel .target-scroll{padding:14px}
body[data-client] .target-panel .target-controls{padding:10px 14px;background:var(--paper);border-color:var(--line)}
body[data-client] .target-preview{background:#e8efdb;border-color:var(--line);border-radius:0;padding:9px;color:var(--ink)}
body[data-client] .target-art{width:56px}
body[data-client] .target-art .card-art-svg{height:56px!important;width:56px;filter:none}
body[data-client] .target-heading h2{font-size:20px;font-weight:normal}
body[data-client] .target-heading p{font-size:12px;color:var(--muted)}
body[data-client] .target-panel .target-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:180px;gap:7px}
body[data-client] .target-panel .die-choice{width:32px;height:32px}
body[data-client] .target-choice:has(.die-choice){min-height:42px;padding:4px;justify-content:center}
body[data-client] .route-choice{border-radius:0;min-height:56px;background:#f7f5e6}
body[data-client] .route-letter{border-radius:0}
body[data-client] .r8-dialog{background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:0;box-shadow:6px 6px 0 #263c3060;backdrop-filter:none}
body[data-client] .r8-dialog::backdrop{background:#26392c6b;backdrop-filter:none}
body[data-client] .dialog-heading{background:var(--paper);border-bottom:2px solid var(--line);padding:14px 18px}
body[data-client] .dialog-heading h2{font-size:24px;font-weight:normal}
body[data-client] #dialog-body{padding:18px}
body[data-client] .card-art-frame,body[data-client] .card-collection .art-card,body[data-client] .cash-shop-card,body[data-client] .target-token{border-radius:0;background:var(--paper);box-shadow:none}
body[data-client] .card-art-svg{filter:none;image-rendering:pixelated;overflow:hidden}
body[data-client] .card-collection{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
body[data-client] .card-collection .art-card{padding:10px;border:1px solid var(--line)}
body[data-client] .card-collection .card-art-frame{border:0;background:#e8efdb}
body[data-client] .card-collection .card-art-svg{height:72px;max-height:none;width:100%}
body[data-client] .card-collection .card-name{font-size:14px;font-weight:normal;text-align:center}
body[data-client] .card-quantity{border-radius:0;background:var(--card-ink);border-color:var(--paper)}
body[data-client] .help-card-art{background:#e8efdb;border:1px solid var(--line);border-radius:0}
body[data-client] .help-card-art .card-art-svg{height:56px}
body[data-client] .shop-card-art{height:116px}
body[data-client] .shop-card-art .card-art-svg{height:80px}
body[data-client] .shop-card-art .card-name{font-size:14px;font-weight:normal}
body[data-client] .cash-shop-card{border-color:var(--line)}
body[data-client] .menu-grid{gap:10px}
body[data-client] .menu-grid button{font-size:16px;min-height:42px;padding:8px}
body[data-client] .settings-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:18px}
body[data-client] .settings-row label{display:grid;gap:7px;font-size:14px;flex:1;min-width:130px}
body[data-client] .settings-row select{border:2px solid var(--line);padding:7px;background:#f6efdb;color:var(--ink);max-width:100%}
body[data-client] .action-receipt{top:66px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);border-radius:0;background:var(--paper);border:2px solid var(--line);box-shadow:3px 3px 0 #29493630}
body[data-client] .r8-toast{bottom:18px;border-radius:0;background:var(--paper);color:var(--ink);border:2px solid var(--line);box-shadow:3px 3px 0 #29493630}
body[data-client] .scene-cutin{left:12px;top:calc(var(--header-height) + 12px);max-width:230px;padding:6px 9px;gap:7px;border:1px solid var(--line);border-radius:0;background:var(--paper);box-shadow:3px 3px 0 #29493630}
body[data-client] .cutin-portrait img{width:28px;height:34px;image-rendering:pixelated}
body[data-client] .cutin-copy{font-size:12px;gap:4px}
body[data-client] .cutin-copy .player-name{font-size:10px}
body[data-client] .cutin-card{width:28px;flex:none}
body[data-client] .setup-console{background:var(--paper);border:2px solid var(--line);border-radius:0;box-shadow:4px 4px 0 #29493630}
body[data-client] .city-card,body[data-client] .seat-avatar,body[data-client] .setup-actions .start-button{border-radius:0}
body[data-client] .city-card[aria-pressed=true]{background:var(--green);border-color:#2e4d3b;box-shadow:0 2px 0 #294434}
@media(max-width:1100px){body[data-client] .player-chip .player-chip-name{display:none}body[data-client] .r8-hud{gap:8px}body[data-client] .r8-header{gap:8px;padding-inline:12px}body[data-client] #turn-indicator{font-size:12px;max-width:145px}}
@media(max-width:800px){body[data-client=richman8-subset]{--rail-width:132px;--rail-gap:10px;--header-height:76px}body[data-client] .r8-header,body[data-client]:has(#hud:not([hidden])) .r8-header{min-height:76px;padding:6px 10px;display:grid;grid-template-columns:1fr auto;gap:5px 8px}body[data-client] .r8-brand{font-size:14px}body[data-client] .city-status{font-size:14px;gap:8px}body[data-client] .r8-hud{grid-column:1/-1;grid-row:2;justify-content:space-between}body[data-client] .r8-header nav{grid-column:2;grid-row:1;gap:4px}body[data-client] .r8-header nav button{font-size:12px;padding:5px 6px;min-height:26px}body[data-client] .player-chip .player-chip-name{display:inline;max-width:56px}body[data-client] .player-chip{height:25px}body[data-client] .player-chip img{width:20px;height:22px}body[data-client] #turn-indicator{max-width:185px}body[data-client] .play-dock{padding:8px;gap:8px;top:calc(50% + 30px)}body[data-client] .hand-card.art-card{height:32px;min-height:32px;padding:3px 4px}body[data-client] .hand-card .card-face{gap:4px}body[data-client] .hand-card .card-art-frame,body[data-client] .hand-card .card-art-svg{width:23px;height:23px}body[data-client] .card-collection{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-client] .action-receipt{top:90px}body[data-client] .route-panel,body[data-client] .target-panel,body[data-client] .decision-panel{bottom:12px;right:calc(var(--rail-width) + var(--rail-gap) + 12px);max-width:calc(100vw - var(--rail-width) - var(--rail-gap) - 32px);max-height:calc(100dvh - var(--header-height) - 24px)}body[data-client][data-screen=setup] .r8-header{min-height:50px;display:flex}body[data-client][data-screen=setup] .city-status{display:none}}
@media(max-width:460px){body[data-client] .r8-header nav button{font-size:10px;padding:5px}body[data-client] .city-status{font-size:12px;gap:5px}body[data-client] #date-status{font-size:10px}body[data-client] .player-chip .player-chip-name{display:none}body[data-client] .target-panel,body[data-client] .route-panel,body[data-client] .decision-panel{width:calc(100vw - 20px);max-width:none;right:10px;bottom:12px;z-index:32;max-height:calc(100dvh - var(--header-height) - 32px)}body[data-client] .card-collection{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:500px) and (min-width:601px){body[data-client] .play-dock{top:calc(50% + 25px);gap:6px;padding:7px;max-height:calc(100dvh - 70px)}body[data-client] .hand-card.art-card{height:29px;min-height:29px}body[data-client] .hand-card .card-art-frame,body[data-client] .hand-card .card-art-svg{height:22px;width:22px}body[data-client] .route-panel,body[data-client] .target-panel,body[data-client] .decision-panel{bottom:10px;max-height:calc(100dvh - var(--header-height) - 22px)}body[data-client] .target-panel .target-scroll{display:block;padding:12px}body[data-client] .target-heading{display:flex}body[data-client] .target-panel .target-grid{max-height:95px}body[data-client] .target-preview{max-height:85px;overflow:auto}}
