/* Content-sized chrome, with all remaining viewport height reserved for play. */
body.tabletop{height:100dvh;min-height:0;overflow:hidden;padding:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0}
body.tabletop>.opponent-rail{position:relative;inset:auto;min-width:0;min-height:0;max-height:20dvh;overflow:auto;grid-row:1}
body.tabletop>.tabletop-main{grid-row:2;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;width:100%;max-width:none;padding:clamp(6px,1vh,12px) clamp(8px,1vw,16px);overflow:hidden}
.tabletop-main>.surface-tabs{grid-row:1;min-width:0;flex-wrap:nowrap}
.tabletop-main>.table-surface{grid-row:2;height:auto;min-height:0;min-width:0;box-shadow:none}
.tabletop .board-viewport{height:100%;min-height:0}
.tabletop .board-camera{margin:0;transform-origin:0 0}
body.tabletop>.player-table{position:relative;inset:auto;grid-row:3;min-width:0;min-height:0;max-height:32dvh;overflow:auto;padding:8px clamp(8px,1vw,16px)}
.player-table #human-panel{display:grid;grid-template-columns:minmax(420px,.7fr) minmax(620px,2.3fr);align-items:stretch}
.player-table .player-actions{margin-top:0}
.tabletop .hand-card-inspector{bottom:calc(var(--labor-play-bottom,210px) + 8px);max-height:calc(100dvh - var(--labor-play-bottom,210px) - 24px);max-width:calc(100vw - 24px)}
.tabletop .action-tray{bottom:calc(var(--labor-play-bottom,210px) + 8px)}
@media(max-width:700px){.tabletop-main>.surface-tabs{flex-wrap:wrap}.surface-tabs .objective-mini{display:none}.opponent-rail .game-menu{position:static}}
body.tabletop>.tabletop-main{margin:0;height:100%;align-self:stretch}

/* Every destination occupies the same full-height grid cell. Shop content
   scrolls inside that cell, with enough bottom clearance for its last action. */
.tabletop-main>.table-surface{grid-column:1;align-self:stretch;justify-self:stretch;width:100%;height:100%;margin:0}
.tabletop-main>#construction-surface,.tabletop-main>#exchange-surface,.tabletop-main>#influence-surface{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px 16px 24px;scroll-padding-block:16px 24px}
#construction-surface>#markets,#influence-surface>#influence-market{min-height:100%;margin:0}
#construction-surface .compact-construction-yard{min-height:100%}
#exchange-surface .exchange-heading{margin:0 auto 16px}
#exchange-surface .exchange-market{margin:0 auto}
#influence-surface .political-gallery>.section-heading{margin-top:0}

/* Menus escape the header; only the public player ledger scrolls. */
body.tabletop>.opponent-rail{overflow:visible;z-index:110}
.opponent-rail #opponent-panel{overflow:auto;max-height:20dvh}
.opponent-rail .game-menu{position:relative}
.opponent-action-notice{position:absolute;z-index:140;top:calc(100% + 9px);right:150px;display:grid;gap:3px;width:max-content;max-width:min(430px,calc(100vw - 24px));padding:10px 14px;background:#122421;border:2px solid var(--player-ai);border-radius:10px;box-shadow:0 10px 28px #000c;color:#e8dfcf;opacity:0;transform:translateY(-8px) scale(.97);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.opponent-action-notice[hidden]{display:none}.opponent-action-notice.show{opacity:1;transform:translateY(0) scale(1)}
.opponent-action-notice:before{content:"";position:absolute;right:34px;top:-9px;width:14px;height:14px;background:#122421;border-left:2px solid var(--player-ai);border-top:2px solid var(--player-ai);transform:rotate(45deg)}
.opponent-action-notice strong{color:#67c6bf;font:700 .63rem/1.1 Georgia,serif;letter-spacing:.14em;text-transform:uppercase}.opponent-action-notice span{font:700 .82rem/1.35 Georgia,serif}
@media(prefers-reduced-motion:reduce){.opponent-action-notice{transition:none}}

/* Turn action artwork keeps the existing compact, square button footprint. */
.player-actions .next-phase-card{flex-basis:195px;width:195px;height:195px;min-height:195px;align-self:flex-start;margin-top:-3px!important;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:22px 20px 58px!important;border:0!important;border-radius:12px!important;background:transparent url('../assets/turn-button-plain.png') center/contain no-repeat!important;box-shadow:none;color:#241a05}
.player-actions .next-phase-card>span{color:#392905;font:700 .65rem/1.2 Georgia,serif}
.player-actions .next-phase-card>strong{color:#241a05;font:700 1.15rem/1.1 Georgia,serif}
.player-actions .next-phase-card>b{display:none}
.player-actions .next-phase-card:hover:not(:disabled),.player-actions .next-phase-card:focus-visible{background-image:url('../assets/turn-button-hover.png')!important}
.player-actions .next-phase-card:focus-visible{outline:3px solid #fff0b9;outline-offset:3px}

.player-actions .next-phase-card:hover:not(:focus-visible){outline:none;border:0!important;box-shadow:none}

#event-log-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(420px,100vw);height:100dvh;max-height:100dvh;max-width:100vw;padding:0;border:0;border-left:2px solid #a78039;background:#1b1611;color:#e9ddc7;box-shadow:-12px 0 35px #0009;z-index:200;overflow:hidden}
#event-log-drawer[open]{display:flex;flex-direction:column;animation:event-log-enter .18s ease-out}
#event-log-drawer>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:20px;border-bottom:1px solid #665034}
#event-log-drawer h2{margin:0;font:700 1.4rem/1.2 Georgia,serif}#event-log-drawer header p{margin:.3rem 0 0;color:#b1a18b;font-size:.8rem}
#close-event-log{width:40px;height:40px;padding:0;font-size:1.5rem}
.event-log-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;margin:0;padding:16px 20px;list-style:none}
.event-log-list li{padding:12px 0;border-bottom:1px solid #40352a}.event-log-list .eyebrow{color:#c6a457;font-size:.65rem}.event-log-list p{margin:.35rem 0 0;font-size:.85rem;line-height:1.45}
@keyframes event-log-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){#event-log-drawer[open]{animation:none}}

.benefit-society-status{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding:.65rem .9rem;margin:.6rem 0;border:1px solid #b38e36;border-radius:6px;background:#262013;color:#eedba5;font-size:.85rem}.benefit-society-status>strong{color:#f1c940}.benefit-payout{color:#b7d98c}.benefit-map-pot{position:absolute;right:0;top:0;background:#211b0e;color:#efc33f;border:1px solid #efc33f;border-radius:3px;padding:2px 5px;font-size:.8rem}

.recovery-dice-row{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.recovery-summary{padding:1rem;border:1px solid #69583a;border-radius:6px;margin:.8rem 0}.recovery-summary .recovery-result{margin:.5rem}

.district-production-bonus{margin:.6rem 0;padding:.6rem .8rem;border-left:3px solid #d5ae47;background:#292316;color:#e6d5ad;font-size:.85rem;line-height:1.5}.district-production-bonus p{margin:.3rem 0}

.map-building-inspector.owner-null,.mini-building.owner-null,.compact-building-card.owner-null{border-color:#b79b59!important}.map-building-inspector.owner-null{box-shadow:0 0 0 2px #b79b59,0 14px 40px #0009}

.production-table-note{margin:.6rem 0 0;color:#c7b68d;font-size:.8rem;font-style:italic}

.precinct-warning{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:.7rem 1rem;margin:.7rem 0;border:1px solid #b58439;border-radius:6px;background:#302315;color:#f2d9a0;font-size:.88rem;line-height:1.4}.precinct-warning strong{color:#f1bd54}

.saloon-choice { margin: 1rem 0; padding: 1rem; border: 1px solid #a87d35; border-radius: 12px; background: #211b16; }
.saloon-choice h3 { margin: 0; color: #efc74a; }
.saloon-choice p { color: #c8bba7; }
.saloon-choice > div { display: flex; flex-wrap: wrap; gap: .65rem; }
.saloon-choice button { display: grid; gap: .35rem; padding: .8rem 1rem; border: 2px solid #873a32; border-radius: 10px; background: #351917; color: #fff0d5; }
.saloon-choice button:hover, .saloon-choice button:focus-visible { border-color: #efc74a; background: #51221e; }
.bid-winner-action:disabled { opacity: .45; cursor: default; }

.allocation-building.owner-human { border-left: 4px solid var(--player-human); }
.allocation-building.owner-ai { border-left: 4px solid var(--player-ai); }
.tenement-production { margin: .5rem 0 0; color: #c8bba7; font-size: .75rem; line-height: 1.4; }

/* Compact workforce allocation, with per-building dice counts. */
.workforce-allocation { padding: .7rem; border: 2px solid #302922; border-radius: 20px; background: #0e0c0a; }
.workforce-allocation h3 { font: 700 .9rem/1.2 Georgia, serif; letter-spacing: .02em; padding-bottom: .5rem; }
.workforce-allocation .allocation-counts { grid-template-columns: repeat(2,minmax(0,1fr)); margin: .55rem 0 .2rem; }
.workforce-allocation .allocation-counts .available { padding: .4rem .65rem; color: #50bf87; background: #122016; border: 2px solid #295638; font-size: .7rem; }
.workforce-allocation .allocation-counts b { font: bold 1.35rem Georgia, serif; }
.workforce-allocation form { gap: .35rem; flex: 1; }
.workforce-allocation h4 { margin: .45rem .2rem 0; font-size: .65rem; line-height: 1.1; letter-spacing: .08em; }
.workforce-allocation .allocation-group-housing { color: #579b7c; }
.workforce-allocation .allocation-building { display: flex; align-items: center; justify-content: space-between; gap: .45rem; padding: .45rem .65rem; border-radius: 9px; background: #191511; min-width: 0; }
.allocation-building-copy { min-width: 0; }
.workforce-allocation .allocation-building header strong { font-size: .8rem; line-height: 1.3; }
.workforce-allocation .allocation-building.owner-ai header strong { color: var(--player-ai); }
.workforce-allocation .allocation-slot-group { gap: .35rem; margin-top: .3rem; flex-wrap: wrap; }
.workforce-allocation .allocation-slot-group small,.workforce-allocation .allocation-slot-group>b { font-size: .7rem; }
.workforce-allocation .allocation-worker { width: 26px!important; height: 26px; border-radius: 6px!important; }
.allocation-building-icons { display: flex; align-items: center; gap: .45rem; flex-shrink: 0; }
.allocation-building-icons .allocation-resource,.allocation-dice { display: block; width: 36px; height: 36px; }
.allocation-dice { position: relative; }
.allocation-dice img { width: 100%; height: 100%; object-fit: contain; }
.allocation-dice b { position: absolute; right: -3px; bottom: -3px; min-width: 1.2em; text-align: center; border: 1px solid #c99b39; border-radius: 50%; background: #201b13; color: #e5b84a; font-size: .85rem; }
.workforce-allocation .labor-commit { margin-top: auto; padding: .65rem; border-radius: 9px; }

.workforce-allocation .allocation-counts .striking { padding: .4rem .65rem; color: #d49445; background: #302215; border: 2px solid #754c22; font-size: .7rem; }
.workforce-allocation form > * { flex-shrink: 0; }
.workforce-allocation .labor-commit.no-dice { background: #488e52; border-color: #83c88a; color: #081d0c; }
.workforce-allocation .labor-commit.no-dice:hover { background: #59a663; }
.workforce-allocation .labor-commit.with-dice { background: #a76525; border-color: #d49445; color: #fff2da; }
.workforce-allocation .labor-commit.with-dice:hover { background: #bb7831; }



.compact-results .production-results-heading { margin: .7rem 0 1rem; text-align: center; }
.compact-results .production-results-heading h2 { font: 700 1.35rem Georgia,serif; margin: 0 0 .35rem; }
.compact-results .production-results-heading p { font-size: .8rem; margin: 0; color: #a99d8c; }
.compact-results-grid { display: grid; grid-template-columns: minmax(0,2.5fr) minmax(240px,1fr); gap: .75rem; }
.results-main,.results-sidebar { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.results-main>section,.results-sidebar>section { padding: .8rem; border: 1px solid #463c31; border-radius: 12px; background: #191511; }
.compact-results h3 { margin: 0 0 .65rem; font: 700 .7rem Georgia,serif; letter-spacing: .15em; text-transform: uppercase; color: #dfb83f; }
.production-player { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .7rem .8rem; border: 1px solid #463c31; border-left: 4px solid var(--player-human); border-radius: 10px; margin-top: .45rem; background: #110f0d; }
.production-player.owner-ai { border-left-color: var(--player-ai); }
.production-player strong { font-size: .85rem; color: var(--player-human); }
.production-player.owner-ai strong { color: var(--player-ai); }
.production-player.controller { background: #272216; }
.production-player-tokens,.results-workforce-icons { display: flex; flex-wrap: wrap; gap: .7rem; }
.result-token { display: inline-block; width: 42px; height: 42px; position: relative; flex-shrink: 0; }
.result-token>img,.result-token>.sprite { width: 100%; height: 100%; object-fit: contain; }
.result-token>b { position: absolute; right: -3px; bottom: -3px; border: 1px solid #59ad69; border-radius: 50%; background: #162219; color: #73c789; min-width: 1.4em; padding: .05rem; font-size: .75rem; text-align: center; }
.result-token>b.negative { color: #e17a71; border-color: #bc534a; background: #301815; }
.results-workforce-counts { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.results-workforce-counts>span { padding: .55rem .4rem; border: 2px solid #295638; border-radius: 10px; background: #122016; font-size: .65rem; }
.results-workforce-counts b { color: #50bf87; font-size: 1.2rem; }
.results-workforce-counts>span+span { border-color: #754c22; background: #302215; }
.results-workforce-counts>span+span b { color: #d49445; }
.results-workforce-icons { margin: .8rem 0; padding-top: .6rem; border-top: 1px solid #463c31; }
.workforce-change { display: flex; justify-content: space-between; gap: .5rem; font-size: .7rem; margin: .35rem 0; color: #bdb09e; }
.results-bonuses article { border: 1px solid #294b66; border-left: 3px solid #598aaf; border-radius: 8px; background: #0b1a27; padding: .5rem .65rem; margin-top: .4rem; color: #88b5d1; font-size: .75rem; }
.results-bonuses article p { margin: .25rem 0 0; color: #7295ad; }
.compact-results .results-bonuses h3 { color: #729fbd; }
.results-dice .push-roll-recap { margin: 0; padding: 0; border: 0; background: none; }
.results-dice .push-roll-recap>header { display: none; }
.compact-results .muted { color: #a99d8c; font-size: .75rem; }
.compact-results .production-next { position: sticky; z-index: 2; bottom: 0; margin-top: .8rem; padding: .7rem; box-shadow: 0 -8px 18px #100b0be0; }
.labor-production-dossier > [data-advance-labor] { position: sticky; z-index: 2; bottom: 0; }
@media(max-width:760px) { .compact-results-grid { grid-template-columns: 1fr; } }

.player-actions .unified-hand.overlapping-hand { position: relative; display: block; overflow: visible; min-width: 0; isolation: isolate; }
.player-actions .unified-hand.overlapping-hand>button { position: absolute; left: var(--hand-x,0px); width: var(--hand-card-width,200px); max-width: none; margin: 0!important; transition: left 240ms cubic-bezier(.2,.75,.25,1), transform 240ms cubic-bezier(.2,.75,.25,1), box-shadow 240ms ease; }
.player-actions .unified-hand.overlapping-hand>button:hover,.player-actions .unified-hand.overlapping-hand>button:focus-visible { transform: translateY(-4px); }
@media(prefers-reduced-motion:reduce) { .player-actions .unified-hand.overlapping-hand>button { transition: none; } }

.player-actions .unified-hand.hand-initializing>button { transition: none!important; }

.push-die-choice { position: relative; display: flex; flex-direction: column; gap: .35rem; }
.textile-relief-choice { padding: .4rem .5rem; font-size: .7rem; background: #264c32; color: #d6f0db; border: 1px solid #63996c; border-radius: 6px; }
.textile-relief-choice[aria-pressed="true"] { background: #49372a; }

.labor-mini-map button.mini-building { padding: 0; cursor: pointer; color: inherit; font: inherit; }
.labor-mini-map button.mini-building:hover,.labor-mini-map button.mini-building:focus-visible { outline: 2px solid #efc74a; outline-offset: 2px; }

#victory-screen { position: relative; width: min(1400px,100%); max-height: 100%; min-height: 0; box-sizing: border-box; overflow: auto; background: #17130f; border: 2px solid #a97f28; border-radius: 20px; color: #ded4bd; padding: clamp(.8rem,1.5vw,1.5rem); }
#victory-screen>header { text-align: center; margin: 0 auto 1.6rem; }
#victory-screen h1 { font: bold clamp(2.5rem,5vw,4.5rem) Georgia,serif; text-transform: uppercase; color: #efc43e; margin: .5rem; }
#victory-screen h2,#victory-screen h3 { font: bold 1rem Georgia,serif; color: #e8bd48; margin: 0 0 .8rem; }
.victory-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,1fr); gap: 1.5rem; max-width: 1500px; margin: auto; }
.victory-stats,.victory-layout aside>section { padding: 1.2rem; border: 1px solid #6e552e; border-radius: 13px; background: #17130f; }
.victory-stats { border: 2px solid #b78b40; }
.victory-layout aside { display: flex; flex-direction: column; gap: 1rem; }
.victory-tabs { display: flex; gap: .5rem; margin-bottom: 1rem; }
.victory-tabs button { background: #211b11; color: #ad9e83; padding: .65rem; border: 1px solid #493b23; border-radius: 5px; }
.victory-tabs button[aria-selected=true] { color: #f0c53e; border-bottom: 3px solid #d4a836; }
.victory-district { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; padding: .7rem; border: 1px solid #3b3020; border-left: 4px solid var(--player-human); border-radius: 8px; margin-bottom: .6rem; }
.victory-district.owner-ai { border-left-color: var(--player-ai); }
.victory-district>div:first-child { min-width: 105px; }
.victory-district small { display: block; font-size: .65rem; color: #ab9c80; }
.victory-cards,.victory-gains { display: flex; flex-wrap: wrap; gap: .5rem; }
.victory-gains { margin-left: auto; padding: .25rem; }
.victory-card { display: flex; flex-direction: column; width: 66px; background: #211b17; border: 1px solid #826134; border-radius: 5px; overflow: hidden; }
.victory-card .sprite { width: 100%; height: 58px; }
.victory-card small { padding: .15rem; font: .55rem Georgia,serif; text-align: center; }
.victory-stats>h3 { margin-top: 1rem!important; }
.victory-summary>div { display: flex; justify-content: space-around; gap: 1rem; text-align: center; }
.victory-summary strong { color: #efc43e; font: bold 2.8rem Georgia,serif; }
.victory-summary small { display: block; color: #c8bba3; font: .8rem sans-serif; margin-top: .5rem; }
.victory-menu { display: block; padding: 1rem; text-align: center; color: #160f07; background: #efc43e; border-radius: 8px; text-decoration: none; font: bold 1rem Georgia,serif; }
.victory-note { font-size: .7rem; color: #ad9e83; line-height: 1.5; }
.victory-stats table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.victory-stats th,.victory-stats td { padding: .55rem; border-bottom: 1px solid #3b3020; text-align: left; }
@media(max-width:800px) { .victory-layout { grid-template-columns: 1fr; } }

#victory-screen h1 { font-size: clamp(1.8rem,3vw,3rem); }
#victory-screen>header { margin-bottom: 1rem; }

.victory-card-politician { border: 3px solid #86519a; }
.victory-card-politician small { background: #24132e; }
.victory-card-mobster { border: 3px solid #a33d35; }
.victory-card-mobster small { background: #321613; }

.result-gangster { position: relative; }
.result-gangster .result-power-badge { position: absolute; top: 3px; right: 3px; padding: .2rem .35rem; background: #21160e; border: 1px solid #d3a64c; border-radius: 7px; color: #f1ce62; font: bold .9rem Georgia,serif; }
.result-power-badge s { color: #ed8175; text-decoration-thickness: 2px; }

.result-gangsters .result-gangster { padding: 0; flex-shrink: 0; }
.result-gangsters .result-gangster>.sprite { position: absolute; inset: 0; width: 100%; height: 100%; }
.result-gangsters .result-power-badge { inset: 0; display: flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 0; background: #140a0840; color: #fff0ce; font: bold 3.2rem/1 Georgia,serif; text-shadow: 0 2px 4px #000, 0 0 8px #000; pointer-events: none; }
.result-gangsters .result-gangster.cancelled:after { content: none; }
.result-gangsters .result-power-badge s { text-decoration-thickness: 3px; }

.bid-result-row { grid-template-columns: 38px minmax(110px, 155px) minmax(0, 1fr); }
.labor-results-dossier { width: min(1280px, 96%); }
.bid-results-list { min-width: 0; }
.bid-result-row .bid-equation { grid-column: 3; display: flex; min-width: 0; overflow-x: auto; align-items: center; justify-content: flex-start; gap: .45rem; padding: .25rem; white-space: nowrap; }
.bid-equation > * { flex: none; }
.bid-equation > :first-child { margin-left: auto; }
.bid-influence-star { display: grid; place-items: center; width: 64px; height: 64px; background: #d6ac3e; color: #201606; font: bold 1.4rem Georgia,serif; clip-path: polygon(50% 0%,61% 34%,98% 35%,69% 57%,79% 94%,50% 72%,21% 94%,31% 57%,2% 35%,39% 34%); padding-top: 3px; box-sizing: border-box; }
.bid-influence-star.suppressed>span,.bid-equation .bid-building.suppressed .bid-building-value s,.bid-district-bonus s { text-decoration: line-through; text-decoration-color: #b93142; text-decoration-thickness: 4px; }
.bid-equation .bid-building { border-color: #ad823e; }
.bid-equation .bid-building:has(.sprite-housing) { border-color: #4f9063; }
.bid-operator { font: 1.5rem Georgia,serif; color: #bdae8b; }
.bid-equation-total { font: bold 2.4rem Georgia,serif; color: #efc74a; }
.bid-district-bonus { display: grid; text-align: center; color: #b7d2e7; font-size: 1.4rem; }
.bid-district-bonus small { font-size: .6rem; }
.bid-gangster-terms { display: flex; flex: none; align-items: center; gap: .35rem; }
.bid-gangster-terms>.result-gangster+.result-gangster { margin-left: .2rem; }

.bid-equation .bid-building { position: relative; display: grid; flex: none; width: 48px; height: 62px; overflow: hidden; padding: 0; border: 3px solid; border-radius: 7px; box-shadow: 0 3px 7px #000b; }
.bid-equation .bid-building-factory { border-color: #ba792b; background: #352111; }
.bid-equation .bid-building-housing { border-color: #4f9063; background: #142c1b; }
.bid-equation .bid-building-civic { border-color: #4b82ad; background: #122336; }
.bid-equation .bid-building>.sprite { position: absolute; inset: 0; width: 100%; height: 100%; }
.bid-equation .bid-building-value { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: #140a0840; color: #fff0ce; font: bold 3.2rem/1 Georgia,serif; text-shadow: 0 2px 4px #000, 0 0 8px #000; pointer-events: none; }
.bid-equation .bid-building.suppressed .bid-building-value { background: #140a0870; }
.bid-equation .bid-building small { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; overflow: hidden; padding: 2px; background: #140e0c; color: #f6e7cb; font: 600 .52rem/13px sans-serif; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 700px) { .bid-result-row { grid-template-columns: 34px minmax(92px, 120px) minmax(0, 1fr); } .bid-result-row .bid-equation { grid-column: 3; grid-row: 1; } }

/* Public opponent cards expand into a reusable tray below the opponent rail. */
.opponent-official[aria-expanded="true"] { border-color: #e0b840!important; outline: 2px solid #e0b840; }
.opponent-official-stack .opponent-official { margin-left: 0; }
#opponent-card-tray { position: fixed; inset: var(--opponent-tray-top,72px) 0 0; z-index: 109; }
#opponent-card-tray[hidden] { display: none; }
.opponent-tray-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: #080607c7; cursor: default; }
.opponent-tray-backdrop:hover,.opponent-tray-backdrop:focus-visible { background: #080607c7!important; outline: none; }
.opponent-tray-panel { position: relative; box-sizing: border-box; width: 100%; max-height: min(480px,calc(100dvh - var(--opponent-tray-top,72px) - 12px)); overflow: auto; padding: 18px 66px 20px clamp(16px,3vw,42px); border-bottom: 3px solid #9a6db0; background: linear-gradient(140deg,#211825,#120f15); box-shadow: 0 22px 45px #000d; color: #f3ebdf; animation: opponent-tray-enter .2s ease-out; }
.opponent-tray-close { position: absolute; z-index: 2; top: 18px; right: 16px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #ab83b6; border-radius: 7px; background: #34243c; color: #fff2dd; font-size: 1.6rem; }
.opponent-tray-close:hover,.opponent-tray-close:focus-visible { background: #573663; outline: 2px solid #e4beed; }
.opponent-tray-cards { display: flex; gap: 14px; overflow-x: auto; padding: 2px 2px 12px; }
.opponent-tray-card { flex: 0 0 220px; min-width: 0; overflow: hidden; border: 2px solid #784f88; border-radius: 13px; background: #1b1420; box-shadow: 0 8px 18px #0008; }
.opponent-tray-card.inactive { filter: grayscale(.55); opacity: .72; }
.opponent-tray-card-art { position: relative; display: block; height: 110px; background-size: cover; background-position: center; }
.opponent-tray-card-art b { position: absolute; top: 8px; left: 8px; display: grid; place-items: center; min-width: 36px; height: 30px; padding: 0 5px; border: 2px solid #d8b547; border-radius: 20px; background: #1d1224ed; color: #f4d56b; font: 700 .95rem Georgia,serif; }
.opponent-tray-card-copy { padding: 12px; }
.opponent-tray-card-copy small { color: #bf9dca; font: 700 .6rem/1.2 sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.opponent-tray-card-copy h3 { margin: 6px 0; color: #fff4e5; font: 700 1.1rem/1.1 Georgia,serif; }
.opponent-tray-card-copy p { margin: 0; color: #dbccd8; font: .76rem/1.4 Georgia,serif; }
.opponent-tray-card.selectable { border-color: #b26780; box-shadow: 0 8px 18px #0008,0 0 0 1px #b26780; }
.opponent-tray-card-copy .official-target-action { width: 100%; margin-top: 12px; padding: 9px; border: 1px solid #b26780; border-radius: 6px; background: #57202e; color: #fff1df; font: 700 .76rem/1.2 Georgia,serif; }
.opponent-tray-card-copy .official-target-action:hover,.opponent-tray-card-copy .official-target-action:focus-visible { background: #7d2d40; outline: 2px solid #d594a0; }
.official-target-unavailable { display: block; margin-top: 12px; color: #8c7d84!important; }
.opponent-hidden-cards.reveal-ready { color: #f3e6d6; cursor: pointer; }
.opponent-hidden-cards.reveal-ready:hover,.opponent-hidden-cards.reveal-ready:focus-visible,.opponent-hidden-cards.reveal-ready[aria-expanded="true"] { border-color: #dfb64b; outline: 2px solid #dfb64b; }
.opponent-tray-card.gangster { border-color: #9e342e; background: #21100f; }
.opponent-tray-card.gangster .opponent-tray-card-copy small { color: #d4a69f; }
.opponent-tray-card.gangster .opponent-tray-card-art b { border-color: #d2a53e; }
.opponent-tray-card.gangster .opponent-tray-card-copy button,.informer-finish { width: 100%; margin-top: 12px; padding: 9px; border: 1px solid #cb8c47; border-radius: 6px; background: #7c2720; color: #fff1d8; font: 700 .76rem/1.2 Georgia,serif; cursor: pointer; }
.opponent-tray-card.gangster .opponent-tray-card-copy button:hover,.opponent-tray-card.gangster .opponent-tray-card-copy button:focus-visible,.informer-finish:hover,.informer-finish:focus-visible { background: #a53c2e; outline: 2px solid #e5bb69; }
.opponent-tray-card.building { border-color:#795c38; background:#211a13; }
.opponent-tray-card.building.housing { border-color:#397458; background:#111f17; }
.opponent-tray-card.building.civic { border-color:#4d718b; background:#111b23; }
.opponent-tray-card.building .opponent-tray-card-art b { right:8px; left:auto; border-radius:5px; border-color:#b8873f; background:#21150de8; font-size:.7rem; }
.opponent-tray-card.building .opponent-tray-card-copy small { color:#cfaa70; }
.informer-finish { width: auto; min-width: 220px; }
@keyframes opponent-tray-enter { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .opponent-tray-panel { animation: none; } }

/* Gangster Jobs use a black and maroon modal distinct from Labor and Riot. */
#gangster-job-layer { position: fixed; inset: var(--labor-play-top,0px) var(--labor-play-right,0px) var(--labor-play-bottom,210px) var(--labor-play-left,0px); z-index: 108; display: grid; place-items: center; padding: clamp(6px,1vh,10px) clamp(16px,4vw,48px); background: #050405d9; backdrop-filter: blur(3px); }
#gangster-job-layer[hidden] { display: none; }
.gangster-job-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent!important; outline: 0!important; }
.gangster-job-modal { position: relative; box-sizing: border-box; width: min(760px,96%); max-height: 100%; overflow: auto; padding: 14px clamp(16px,2vw,22px); border: 5px solid #702536; outline: 1px solid #b46a75; border-radius: 18px; background: linear-gradient(145deg,#191416,#090809); box-shadow: 0 25px 70px #000f,inset 0 0 38px #3b101a66; color: #eee5d9; }
.gangster-job-modal>header { display: grid; grid-template-columns: 62px 1fr; align-items: center; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid #63303a; }
.gangster-job-modal>header small { color: #b97782; font: 700 .65rem/1 sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.gangster-job-modal>header h2 { margin: 6px 0; color: #fff6e8; font: 700 clamp(1.5rem,3vw,2.25rem)/1 Georgia,serif; }
.gangster-job-modal>header p { margin: 0; color: #c8bbb0; font: .9rem/1.45 Georgia,serif; }
.gangster-job-sigil { display: block; width: 58px; height: 68px; border: 3px solid #822d3f; border-radius: 10px; box-shadow: 0 8px 16px #000b; background-size: cover; }
.gangster-job-close { position: absolute; z-index: 2; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid #8f4a58; border-radius: 50%; background: #21171a; color: #eee5d9; font-size: 1.4rem; }
.gangster-job-close:hover,.gangster-job-close:focus-visible { background: #51202b; outline: 2px solid #c77a85; }
.gangster-resource-grid { display: grid; grid-template-columns: repeat(4,minmax(110px,1fr)); gap: 12px; margin-top: 12px; }
.gangster-resource-choice { display: grid; justify-items: center; gap: 5px; min-height: 108px; padding: 8px; border: 2px solid #63303a; border-radius: 12px; background: #171315; color: #eee5d9; }
.gangster-resource-choice:hover:not(:disabled),.gangster-resource-choice:focus-visible:not(:disabled) { border-color: #bb7180; background: #2a191e; outline: 2px solid #7e3041; transform: translateY(-2px); }
.gangster-resource-choice.selected { border-color: #d48b98; background: #321b22; box-shadow: inset 0 0 0 2px #762d3e,0 0 18px #762d3e77; }
.gangster-resource-choice:disabled { opacity: .38; filter: grayscale(.7); }
.gangster-resource-choice>.sprite { width: 46px; height: 46px; border-radius: 50%; }
.gangster-resource-choice>strong { font: 700 1rem/1 Georgia,serif; }
.gangster-resource-choice>span { display: grid; justify-items: center; color: #a99b91; }
.gangster-resource-choice>span b { color: #f0cf72; font: 700 1.25rem/1 Georgia,serif; }
.gangster-resource-choice>span small { font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }
.gangster-response-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 22px; }
.lenny-action-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.lenny-action-grid .gangster-modal-choice { grid-template-columns: 44px 1fr; min-height: 78px; }
.lenny-action-grid .gangster-modal-choice>.sprite { width: 42px; height: 50px; }
.lenny-action-grid button:disabled { opacity: .38; cursor: not-allowed; }
.lenny-change-list { display: grid; gap: 7px; margin: 16px 0 0; padding: 0; list-style: none; }
.lenny-change-list li { padding: 8px 12px; border: 1px solid #63303a; border-radius: 7px; background: #21171a; color: #eee5d9; }
.lenny-change-list b { color: #e5b96d; margin-right: 6px; }
@media (max-width:650px) { .lenny-action-grid { grid-template-columns: 1fr; gap: 7px; } }
.gangster-modal-choice { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 12px; min-height: 94px; padding: 12px; border: 2px solid #63303a; border-radius: 10px; background: #171315; color: #eee5d9; text-align: left; }
.gangster-modal-choice>.sprite { width: 60px; height: 70px; border: 2px solid #8a3143; border-radius: 7px; }
.gangster-modal-choice>span { display: grid; gap: 5px; }
.gangster-modal-choice strong { font: 700 1rem/1.1 Georgia,serif; }
.gangster-modal-choice small { color: #ad9d92; line-height: 1.3; }
.gangster-modal-choice:hover,.gangster-modal-choice:focus-visible { border-color: #c17986; background: #2b191e; outline: 2px solid #7e3041; }
.phase-confirm-modal{width:min(560px,92%)}
.phase-confirm-modal>header{grid-template-columns:52px 1fr}
.phase-confirm-sigil{display:grid;place-items:center;width:46px;height:46px;border:2px solid #c59739;border-radius:50%;background:#241b0d;color:#f1c95a;font:700 1.8rem/1 Georgia,serif}
.phase-confirm-modal .gangster-job-confirm{grid-template-columns:1fr 1fr}
.gangster-modal-choice.allow-choice { grid-template-columns: 1fr; }
.gangster-job-confirm { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #63303a; }
.gangster-job-confirm>span { display: flex; align-items: baseline; gap: 6px; color: #aa9c92; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.gangster-job-confirm>span b { color: #f0cf72; font: 700 1.25rem/1 Georgia,serif; }
.gangster-job-confirm>button { min-width: 220px; padding: 11px 16px; border: 1px solid #b76575; background: #702536; color: #fff4e5; font-weight: 700; }
.gangster-job-confirm>button:hover:not(:disabled),.gangster-job-confirm>button:focus-visible:not(:disabled) { background: #92354a; outline: 2px solid #d68b98; }
.extortion-demand { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 12px; }
.extortion-payment-modal { padding-top: 10px; padding-bottom: 10px; }
.extortion-payment-modal>header { grid-template-columns: 52px 1fr; gap: 12px; padding-bottom: 7px; }
.extortion-payment-modal .gangster-job-sigil { width: 48px; height: 56px; }
.extortion-payment-modal>header h2 { font-size: 1.5rem; }
.extortion-demand { margin-top: 8px; }
.extortion-demand>span { display: flex; align-items: baseline; justify-content: space-between; padding: 5px 10px; border: 1px solid #63303a; border-radius: 8px; background: #171315; color: #b8aaa0; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.extortion-demand b { color: #f0cf72; font: 700 1.35rem/1 Georgia,serif; }
.extortion-payment-grid { display: grid; grid-template-columns: repeat(5,minmax(100px,1fr)); gap: 8px; margin-top: 7px; }
.extortion-payment-option { display: grid; grid-template-rows: 32px auto auto; justify-items: center; gap: 3px; min-width: 0; padding: 4px 5px; border: 1px solid #563039; border-radius: 9px; background: #151214; text-align: center; }
.extortion-payment-option.selected { border-color: #bd7180; background: #2d1920; }
.extortion-payment-option>.sprite { width: 32px; height: 32px; border-radius: 50%; }
.extortion-payment-option>div { display: grid; gap: 2px; min-width: 0; }
.extortion-payment-option strong { color: #f4e8d9; font: 700 .78rem/1 Georgia,serif; }
.extortion-payment-option small { overflow: hidden; color: #9c8f87; font-size: .5rem; text-overflow: ellipsis; white-space: nowrap; }
.extortion-payment-option>span { display: grid; grid-template-columns: 25px 24px 25px; align-items: center; gap: 3px; }
.extortion-payment-option>span button { width: 25px; height: 25px; margin: 0; padding: 0; border: 1px solid #75414d; border-radius: 50%; background: #25191c; color: #f7e9d7; }
.extortion-payment-option>span button:hover:not(:disabled),.extortion-payment-option>span button:focus-visible:not(:disabled) { background: #713043; outline: 1px solid #d68b98; }
.extortion-payment-option>span b { color: #f0cf72; font: 700 .9rem/1 Georgia,serif; }
.extortion-payment-modal .gangster-job-confirm { margin-top: 6px; padding-top: 6px; }
.extortion-payment-modal .gangster-job-confirm>button { padding-top: 8px; padding-bottom: 8px; }
.extortion-result { display: grid; grid-template-columns: 150px 1fr; align-items: center; gap: 22px; margin-top: 16px; padding: 18px; border: 1px solid #63303a; border-radius: 12px; background: #151214; }
.extortion-result>strong { display: grid; justify-items: center; color: #f0cf72; font: 700 2.5rem/1 Georgia,serif; }
.extortion-result>strong small { margin-top: 5px; color: #a89b91; font: 600 .55rem/1 sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.extortion-result>div { display: flex; flex-wrap: wrap; gap: 10px; }
.extortion-result-token { position: relative; display: block; width: 64px; height: 64px; }
.extortion-result-token>.sprite { display: block; width: 100%; height: 100%; border-radius: 50%; }
.extortion-result-token>b { position: absolute; right: -3px; bottom: -3px; display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 3px; border: 2px solid #8b4352; border-radius: 14px; background: #171013; color: #f5d375; font-size: .68rem; }
.extortion-result-done { display: block; min-width: 180px; margin: 14px 0 0 auto; padding: 10px 16px; border: 1px solid #b76575; background: #702536; color: #fff4e5; font-weight: 700; }
.extortion-result-done:hover,.extortion-result-done:focus-visible { background: #92354a; outline: 2px solid #d68b98; }
@media (max-width:650px) { .gangster-resource-grid { grid-template-columns: repeat(2,minmax(100px,1fr)); } .gangster-response-actions { grid-template-columns: 1fr; } .gangster-job-modal>header { grid-template-columns: 64px 1fr; } .gangster-job-sigil { width: 60px; height: 72px; } }
@media (max-width:760px) { .extortion-payment-grid { grid-template-columns: repeat(2,minmax(110px,1fr)); } .extortion-result { grid-template-columns: 1fr; } }

/* Persistent Gangster jobs beside affected districts. */
.gangster-district-target { background:#54151b30!important; border-color:#8f2934!important; box-shadow:inset 0 0 55px #4a091760!important; color:#f3d5c7!important; }
.gangster-district-target:hover,.gangster-district-target:focus-visible { background:#6c182749!important; outline-color:#d69a83!important; }
.gangster-district-target span { background:#130d0eef!important; border-color:#87303b!important; color:#f0d4c5!important; }
.arsonist-building-target { z-index:12; cursor:crosshair; border:2px solid #e5ae61!important; border-radius:5px; box-shadow:0 0 0 3px #4b1515,0 0 16px #db7131!important; }
.arsonist-building-target:hover,.arsonist-building-target:focus-visible { box-shadow:0 0 0 3px #ffda86,0 0 22px #ef9b40!important; }
#arsonist-hover-preview { position:fixed; z-index:120; width:300px; pointer-events:none; }
#arsonist-hover-preview .hand-card-inspector { position:relative; left:auto; bottom:auto; transform:none; width:100%; max-height:min(480px,calc(100dvh - 16px)); pointer-events:none; }
#arsonist-hover-preview .hand-card-inspector:after,#arsonist-hover-preview .card-inspector-close,#arsonist-hover-preview .inspector-actions { display:none; }
.district-job-card { position:absolute; z-index:9; box-sizing:border-box; width:64px; height:82px; padding:0; background:#140d0e; border:3px solid #772b35; border-radius:6px; box-shadow:0 7px 13px #000b; color:#f2ddd0; overflow:hidden; transform:translate(-50%,-50%); cursor:pointer; pointer-events:auto; }
.district-job-card>i { display:block; width:100%; height:100%; }
.district-job-card>b { position:absolute; left:0; right:0; bottom:0; padding:.25rem .12rem; background:#160d0eef; border-top:1px solid #87303b; font:700 .52rem/1 Georgia,serif; text-align:center; }
.district-job-card:hover,.district-job-card:focus-visible { z-index:11; outline:3px solid #e4b8a1; transform:translate(-50%,-50%) scale(1.05); }
.contested-official-card { border-color:#a078ac; background:#211728; }
.contested-official-card>b { border-color:#a078ac; }
.official-prize-result { display:flex; align-items:center; gap:12px; margin:12px 0; padding:8px 12px; border:1px solid #a078ac; border-radius:6px; background:#281e2c; color:#f2e3ed; }
.official-prize-result .sprite { flex:none; width:30px; height:40px; background-size:cover; }
.gangster-map-prompt { border-color:#792834!important; background:#120d0ff5!important; box-shadow:0 8px 24px #000c,inset 0 0 20px #4a0d1738!important; }
.gangster-map-prompt span { color:#c98976!important; }
.gangster-map-prompt button { margin-left:.35rem; padding:.45rem .7rem; background:#2c1b1e; border:1px solid #81404a; color:#ead4ca; }
.gangster-map-prompt button:hover,.gangster-map-prompt button:focus-visible { background:#54212b; outline:2px solid #c98976; }
.gangster-map-prompt [data-confirm-recruiter] { background:#692b25; border-color:#d1a166; color:#fff0cc; }
.gangster-map-prompt button:disabled { opacity:.4; cursor:default; }
.recruiter-district-target.recruiter-source { border-color:#f4ca72!important; background:#6b4b1766!important; box-shadow:inset 0 0 80px #dfa94a66,0 0 18px #f1b94a77!important; }
.recruiter-district-target.recruiter-selected { border-color:#f2ce83!important; box-shadow:inset 0 0 70px #c48b3e66,0 0 22px #f2ce8388!important; }
.recruiter-district-target.recruiter-source span { border-color:#e4bb66!important; color:#ffe9ab!important; }
.recruiter-district-target.recruiter-source:disabled { opacity:1; filter:none; }
.gangster-route-arrow { position:absolute; z-index:6; display:block; object-fit:fill; pointer-events:none; filter:drop-shadow(0 5px 6px #130b0bcc); }
.gangster-route-arrow[hidden] { display:none; }
.route-top-left-to-top-right,.route-top-right-to-top-left { left:31%; top:16%; width:38%; height:18%; }
.route-bottom-left-to-bottom-right,.route-bottom-right-to-bottom-left { left:31%; top:67%; width:38%; height:18%; }
.route-top-left-to-bottom-left,.route-bottom-left-to-top-left { left:20%; top:30%; width:13%; height:40%; }
.route-top-right-to-bottom-right,.route-bottom-right-to-top-right { left:69%; top:30%; width:13%; height:40%; }
.route-top-left-to-bottom-right,.route-bottom-right-to-top-left,.route-top-right-to-bottom-left,.route-bottom-left-to-top-right { left:31%; top:40%; width:38%; height:21%; }
.mini-district-job { position:absolute; z-index:8; right:4px; bottom:calc(3% + var(--job-offset)); box-sizing:border-box; width:42px; height:54px; padding:0; background:#150d0e; border:2px solid #87303b; border-radius:4px; box-shadow:0 4px 9px #000b; color:#ecd9cd; overflow:hidden; }
.mini-district-job>i { display:block; width:100%; height:100%; }
.mini-district-job>b { position:absolute; left:0; right:0; bottom:0; padding:.12rem .05rem; background:#160d0eef; font:700 .36rem/1 Georgia,serif; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mini-district-job:hover,.mini-district-job:focus-visible { outline:2px solid #e6bca5; outline-offset:2px; }
.labor-mini-map.large-job-cards .mini-district-job { width:84px; height:108px; }
.labor-mini-map.large-job-cards .mini-district-job>b { padding:.25rem .08rem; font-size:.62rem; }

/* Racketeer's payment decision is part of Labor, with Gangster card colors. */
.labor-racketeer-dossier { box-sizing:border-box; width:min(1180px,98%); max-height:100%; overflow:auto; padding:1rem 1.25rem; border:3px solid #713040; border-radius:18px; background:linear-gradient(145deg,#1b1517,#0d0b0c); box-shadow:0 25px 65px #000e,inset 0 0 40px #45152555; color:#eee5d9; }
.racketeer-heading { display:flex; align-items:center; gap:.85rem; margin:.7rem 0 1rem; padding-bottom:.7rem; border-bottom:1px solid #62323b; }
.racketeer-heading>.sprite { flex:none; width:56px; height:68px; border:2px solid #8d3c4e; border-radius:7px; }
.racketeer-heading small { color:#c1878e; font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; }
.racketeer-heading h2 { margin:.2rem 0; font:700 1.6rem/1 Georgia,serif; }
.racketeer-heading p { margin:.3rem 0 0; color:#cbbcb4; font-size:.76rem; }
.racketeer-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(410px,1fr); gap:1rem; }
.racketeer-grid>.labor-mini-map { align-self:start; }
.racketeer-choices { min-width:0; padding:.75rem; border:1px solid #5a343b; border-radius:10px; background:#120f11; }
.racketeer-choices h3 { margin:.2rem 0 .4rem; color:#dfb6ad; font:700 .8rem/1 Georgia,serif; letter-spacing:.1em; text-transform:uppercase; }
.racketeer-choices>p { margin:.2rem 0 .6rem; color:#aa9d96; font-size:.68rem; }
.racketeer-choices .extortion-payment-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.racketeer-choices .extortion-payment-option { padding:4px 2px; }
.racketeer-pay-total { display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin:.8rem 0 1rem; }
.racketeer-pay-total span { color:#c4b6a8; font-size:.7rem; }
.racketeer-pay-total b { color:#e8c37a; font-size:1.1rem; }
.racketeer-pay-total button { padding:.55rem .8rem; background:#713040; border:1px solid #b77882; color:#fff3e6; font-weight:700; }
.racket-return-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:.5rem; }
.racket-return-choice { display:flex; align-items:center; gap:.45rem; min-height:54px; padding:.3rem .45rem; border:1px solid #70444a; border-radius:7px; background:#21171a; color:#e4d3c6; text-align:left; font-size:.68rem; }
.racket-return-choice>.sprite { flex:none; width:42px; height:42px; border-radius:4px; }
.racket-return-choice:hover,.racket-return-choice:focus-visible,.racketeer-pay-total button:hover:not(:disabled),.racketeer-pay-total button:focus-visible:not(:disabled) { background:#4a252e; outline:2px solid #bd8290; }
@media(max-width:900px) { .racketeer-grid { grid-template-columns:1fr; } .racketeer-grid>.labor-mini-map { width:min(100%,590px); } }
