:root{--ink:#263860;--paper:#fff7e6;--accent:#9b3d43;--green:#235f44}
body[data-screen=game]{padding:12px;background:#455f91 url('/painted-window.png') center/cover fixed}
body[data-screen=game] .linen{max-width:1800px;min-height:calc(100dvh - 24px);padding:0 18px 12px;border:1px solid #d3d4e5;border-radius:12px;background:#edf0f8;box-shadow:0 8px 28px #182b4d55}
body[data-screen=game] header{padding:9px 0;gap:12px;border-bottom:1px solid #aeb9d2}
body[data-screen=game] .brand{order:1;text-align:left}
body[data-screen=game] .brand h1{font-size:1.8rem;letter-spacing:.04em;color:#344b84}
body[data-screen=game] .brand p{font-size:.75rem;color:#445473}
body[data-screen=game] .flags{order:2;margin-left:auto}
body[data-screen=game] .tools{order:3}
body[data-screen=game] header button{font-size:.8rem;padding:7px 10px;background:#f9f7f2}
body[data-screen=game] .table-head{margin:9px 0;gap:10px}
body[data-screen=game] .player{background:#e3e8f5;border-color:#7c8dab;font-size:.8rem;padding:6px 9px;min-width:100px}
body[data-screen=game] .player.selected{background:#cddaf1;outline:2px solid #344b84}
body[data-screen=game] .turn-strip{display:flex;align-items:center;gap:14px;background:#d8e2f4;border:0;border-radius:5px;padding:9px 12px;font-size:.9rem}
body[data-screen=game] .turn-strip.mine{background:#344b84;color:#fff9e9}
body[data-screen=game] .turn-strip small{font-size:.8rem;margin:0;line-height:1.35}
.night-order{font-size:.7rem;color:#445473;margin:6px 0 10px}
body[data-screen=game] .board-layout{display:grid;grid-template-columns:410px minmax(0,1fr) 220px;gap:16px;align-items:start}
body[data-screen=game] .board-layout>section{padding:0;background:none;border:0;border-radius:0}
body[data-screen=game] .market-panel{position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-width:thin;padding-right:4px}
.market-panel>h2{font-size:1.3rem;color:#344b84;margin-bottom:10px}
.market-section{padding:0 0 12px;margin-bottom:10px;border-bottom:1px solid #aeb9d2}
.market-section .section-head{margin:0 0 6px}.market-section h3{font-size:1rem;color:#344b84}.market-section .section-head>span{font-size:.8rem}
.market-section .card-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:3px 2px;overflow:visible}
.market-section .card-wrap{width:100%;max-width:none;min-width:0}
.card-wrap{position:relative}.card-wrap>.artbutton{border-radius:5px;box-shadow:0 3px 5px #22335535;transition:transform .14s,box-shadow .14s}
.card-wrap>.artbutton:hover:not(:disabled){transform:none;box-shadow:0 3px 5px #22335535}
.card-wrap.selected>.artbutton{transform:none;outline:3px solid #9b3d43;outline-offset:2px}
.market-section .inspect-button{min-height:25px;height:auto;border:0;background:none;box-shadow:none;margin:2px 0 0;padding:3px;font-size:.73rem;color:#344b84}
.town .card-wrap>.inspect-button{display:none}
.market-help{font-size:.72rem;line-height:1.4;color:#445473;margin:0}
.deck-options{gap:5px;flex-wrap:wrap;margin-top:8px}.deck-options button{font-size:.76rem;padding:6px 8px}
.town-column{min-width:0;background:#fff7e6;border-radius:8px;padding:12px 14px;box-shadow:0 2px 6px #28395918}
.town{padding:0;border:0;background:none;border-radius:0}
.town-head{gap:8px;margin:0 0 9px;flex-wrap:wrap}.town-head h2{font-size:1.35rem;color:#344b84}
.town-controls{gap:4px;flex-wrap:wrap;font-size:.72rem}.town-controls button{font-size:.72rem;padding:5px 7px;min-height:34px}.town-controls label{font-size:.7rem;gap:4px}.town-controls input{width:65px}.town-controls .zoom-step{min-width:32px}
.score-overview{border:0;border-bottom:1px solid #b79868;background:none;border-radius:0;padding:3px 0 10px;margin:0 0 10px;gap:15px;font-size:.73rem}.score-overview strong{color:#755326;font-size:1.9rem;line-height:1.1}.score-overview strong small{font-size:.75rem}.last-change{color:#755326}
.placement-guide{background:#e8e4f1;color:#493d66;padding:8px 10px;font-size:.78rem;gap:8px;margin-bottom:8px}.placement-guide small{display:none}.guide-icon{display:none}.placement-guide button{font-size:.75rem;min-height:32px;padding:4px 8px}
.score-explainer{padding:7px 9px;margin:0 0 10px;min-height:0;border:0;background:#e0edf0;color:#274d59;font-size:.75rem;line-height:1.4}
.streets{max-height:calc(100dvh - 385px);overflow:auto;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;padding-bottom:5px;scrollbar-width:thin;min-height:160px}
.street-block{max-width:100%;min-width:0}.street-label{font-size:.76rem;margin:0 0 5px;color:#445473}.street-scroll{padding:4px 3px 9px;max-width:100%;scrollbar-width:thin}.street-cards{gap:5px}
.card-points{min-height:26px;padding:3px 2px;border-radius:3px;background:#e5e7f2;color:#263860;font-size:.73rem}
.action-panel{position:static;border:0;border-bottom:1px solid #cbb895;background:none;border-radius:0;padding:0 0 10px;margin:0 0 10px}
.action-panel .section-head{margin-bottom:6px}.action-panel h3{font-size:1rem;color:#344b84}.action-panel .ring-icon{width:24px;height:24px;border-width:6px}.action-items{gap:6px;flex-wrap:wrap}.action-item{padding:0;border:1px solid #af9e7c;background:#fffcf4;border-radius:5px;gap:0;flex-wrap:nowrap}.action-item button{border:0;background:none;box-shadow:none;padding:7px 9px;font-size:.85rem}.action-item button.selected{background:#344b84;color:white;outline:0;border-radius:4px 0 0 4px}.action-item .exchange{font-size:.72rem;background:#f5e4bd;border-left:1px solid #af9e7c;border-radius:0 4px 4px 0;padding:7px}.spend{margin-top:7px;font-size:.8rem}.spend summary{padding:4px 0}.spend-grid{gap:5px}.spend-grid button{font-size:.73rem;padding:6px 7px}
.day-draft{margin:0 0 10px;border:0;border-bottom:1px solid #b6a9ca;background:#e8e4f1;border-radius:5px;padding:8px 10px}.day-draft summary{font-size:.85rem;color:#493d66}.day-draft summary small{font-size:.7rem}.day-bar{display:flex;flex-wrap:wrap;gap:10px;padding:10px 0 0;overflow:visible}.day-slot .face,.day-slot button.artbutton{width:94px}.day-slot p,.reservation{max-width:94px;font-size:.72rem}.day-slot p{line-height:1.35;margin:4px 0}.day-confirm button{min-width:44px}.day-confirm{flex-wrap:wrap;justify-content:center}
.town .residents{border:0;border-top:1px solid #cbb895;padding-top:9px;margin-top:8px;display:grid;grid-template-columns:140px minmax(0,1fr);column-gap:12px;align-items:start}.residents .section-head{margin:0 0 3px;display:block}.residents h3{font-size:1rem;color:#344b84}.residents .section-head>span{font-size:.74rem}.residents>small{font-size:.68rem;grid-column:1;grid-row:2}.residents .card-row{gap:8px;padding:0 2px;grid-column:2;grid-row:1/3}.residents .card-wrap{width:64px;flex:none}.residents p{font-size:.76rem;margin:4px 0}
.card-detail{position:sticky;top:12px;background:#e3e3f0;border:0;border-radius:8px;padding:12px;max-height:calc(100dvh - 24px);overflow:auto;scrollbar-width:thin;color:#3a355b}
.detail-heading{border:0;padding:0;margin:0 0 8px}.detail-heading h2{font-size:1rem;color:#493d66}#peek-content h3{font-size:.8rem;margin-bottom:7px}.peek-art{padding:0}.peek-art .face{width:100%;max-width:200px;margin:auto;border-radius:5px;box-shadow:0 4px 6px #28395930}
.peek-score{padding:6px;background:#f7e6bd;color:#6c4920;border-radius:4px;text-align:center;margin-top:9px;font-size:.76rem}.peek-score b{font-size:1.2rem}.peek-future{font-size:.76rem;padding:5px;background:#dcebd4;color:#285334}.peek-rule{font-size:.8rem;padding:9px 0;border-bottom:1px solid #b5acc9}.peek-rule p{font-size:.75rem;margin:4px 0}.peek-rule small{font-size:.72rem;line-height:1.4}.card-detail h4{font-size:.8rem;margin:10px 0 4px}.peek-features{font-size:.72rem;margin:0}.peek-features>div{display:flex;justify-content:space-between;border-bottom:1px solid #c8c1d8;padding:3px 0;gap:6px}.peek-features dd{margin:0;font-weight:bold}.peek-tip{font-size:.72rem;line-height:1.4}.card-detail button{width:100%;margin-top:9px;font-size:.75rem;background:#f7f4fc;border-color:#8b7fa7;min-height:38px}
.score-preview{padding:9px;background:#e2efdb;border-color:#66895b;margin-bottom:10px}.score-preview h3{font-size:.9rem}.score-preview .section-head{margin-bottom:4px;gap:6px}.score-preview p{font-size:.72rem;margin:4px 0}.preview-changes{gap:6px}.score-change{font-size:.72rem;padding:5px;max-width:160px}.score-change .face{width:30px}.point-change{font-size:.76rem}.preview-controls{position:static;width:100%;padding:0;gap:4px}.preview-controls .green{font-size:.78rem;padding:8px 3px}.preview-controls>button:last-child{font-size:.9rem}.destination{background:#e2efdb;border-color:#66895b;color:#285334}.preview-wrap{gap:5px}.new-street{align-items:flex-start}
body[data-screen=game] .footer{margin:8px 0 0;padding:0;font-size:.65rem;color:#445473}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9b3d43;outline-offset:3px}
@media(min-width:1600px){body[data-screen=game] .board-layout{grid-template-columns:450px minmax(0,1fr) 260px}.peek-art .face{max-width:220px}.market-section .card-row{gap:10px}}
@media(max-width:1300px){body[data-screen=game] .board-layout{grid-template-columns:300px minmax(0,1fr) 190px;gap:12px}.town-column{padding:10px}.town-controls{width:100%}.market-section .card-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}}
@media(max-width:960px){body[data-screen=game] .board-layout{grid-template-columns:280px minmax(0,1fr);gap:14px}.card-detail{display:none}.streets{max-height:calc(100dvh - 420px)}.turn-strip small{max-width:70%}.market-section .inspect-button{min-height:36px}}
@media(max-width:720px){body[data-screen=game]{padding:6px}body[data-screen=game] .linen{padding:0 10px 10px;min-height:calc(100dvh - 12px)}body[data-screen=game] header{flex-wrap:wrap;gap:6px}body[data-screen=game] .brand{flex:1}body[data-screen=game] .brand p{display:none}body[data-screen=game] .flags{margin:0}body[data-screen=game] .tools{width:100%;justify-content:flex-start}body[data-screen=game] .table-head{flex-direction:column;align-items:stretch}body[data-screen=game] .players{justify-content:flex-start;gap:5px}body[data-screen=game] .player{min-width:90px;font-size:.74rem}body[data-screen=game] .turn-strip{display:block}body[data-screen=game] .turn-strip small{display:block;max-width:none;margin-top:3px}body[data-screen=game] .board-layout{display:flex;flex-direction:column;gap:14px}.town-column{display:contents}.day-draft{order:1;width:100%}.action-panel{order:2;width:100%;padding:10px;background:#fff7e6;border:1px solid #cbb895;border-radius:5px}.pending-choice{order:3;width:100%}body[data-screen=game] .market-panel{order:4;position:static;max-height:none;overflow:visible;width:100%;padding:0}.town{order:5;width:100%;padding:12px 10px;background:#fff7e6;border-radius:6px}.streets{max-height:65dvh;min-height:180px}.market-section .card-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.market-section .inspect-button{min-height:44px;font-size:.8rem}.market-section{margin-bottom:6px;padding-bottom:10px}.market-help{font-size:.77rem}.town-controls button{min-height:44px;font-size:.77rem}.town-controls .zoom-step{min-width:44px}.town-controls input{width:75px}.placement-guide button{min-height:44px}.day-slot .face,.day-slot button.artbutton{width:90px}.day-slot p,.reservation{max-width:90px}.day-bar{gap:10px}.residents .card-wrap{width:90px}.card-points{font-size:.8rem;min-height:30px}.town-head{gap:10px}.score-overview{font-size:.78rem}.score-explainer{font-size:.8rem}.action-item button{font-size:.9rem}.deck-options button,.spend-grid button{min-height:44px}.peek-rule{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.card-wrap>.artbutton{transition:none;transform:none!important}}
.calm .card-wrap>.artbutton{transition:none;transform:none!important}
.tabletop-nav{display:none}
.town-color-choice{margin:18px 0 22px}.town-color-choice p{font-size:.85rem}.town-color-options{display:flex;gap:12px;flex-wrap:wrap}.town-color-options button{width:100px;padding:5px;background:#fff4d9}.town-color-options button[aria-pressed=true]{outline:3px solid #344b84;outline-offset:2px}.town-color-options b,.town-color-options small{display:block;margin-top:5px}.town-color-options small{font-size:.7rem;overflow-wrap:anywhere}.town-color-options button:disabled{opacity:.65}.town-color-options .face{pointer-events:none}
@media(max-width:720px){.town-color-options{gap:8px}.town-color-options button{width:calc((100% - 16px)/3);max-width:110px}}
.score-explainer{height:72px;min-height:72px;overflow:auto}
.street-block{width:100%}.street-overview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.street-overview-head .street-label{margin:0}.street-overview-head button{font-size:.75rem;min-height:32px;padding:4px 7px}.street-map{display:flex;max-width:100%;gap:0;padding:3px 0 6px}.street-map button{flex:1 1 0;max-width:42px;min-width:0;min-height:0;padding:0;border:0;background:none;border-radius:0;opacity:.65;box-shadow:none}.street-map button.in-view{opacity:1;outline:2px solid #344b84;outline-offset:-2px}.street-map .face{border-radius:0;pointer-events:none}.street-map .layer{animation:none!important}.street-navigation{display:flex;justify-content:space-between;gap:7px;margin:3px 0 8px}.street-navigation button{font-size:.76rem;padding:4px 8px;min-height:34px}.street-navigation button[hidden]{display:none}.whole-street{display:flex;gap:0;width:100%;margin:14px 0}.whole-street button{flex:1;min-width:0;border:0;padding:0;background:none;border-radius:0;min-height:0}.whole-street .face{border-radius:0}.street-map-hint{font-size:.72rem;color:#445473;margin:0 0 4px}
@media(max-width:720px){.street-overview-head button,.street-navigation button{min-height:44px}.street-map button{max-width:48px}}
.preview-town-total{display:block;font-size:.74rem;line-height:1.4}.compare-link{width:100%;min-height:34px;padding:4px;font-size:.74rem;background:#e8e4f1;color:#493d66}.market-section .section-head{flex-wrap:nowrap;gap:6px}.market-section .market-availability{margin:0 0 0 auto;white-space:nowrap;font-size:.7rem}.market-section .section-head h3{margin:0}.town-head{position:static!important}
.market-availability{font-size:.76rem;margin:4px 0 9px;color:#445473;line-height:1.4}.market-playable .market-availability{color:#285334;font-weight:bold}.market-playable .card-wrap>.artbutton{outline:2px solid #66895b;outline-offset:2px}.market-unavailable .card-wrap>.artbutton{cursor:help}
.destination-comparisons{margin:8px 0 12px;padding:8px;background:#e8e4f1;color:#493d66;border-radius:5px;font-size:.82rem}.destination-comparisons summary{cursor:pointer}.destination-comparisons summary small{display:block;font-size:.74rem;margin:3px 0}.placement-options{display:flex;gap:6px;overflow:auto;padding:7px 3px 3px}.placement-options button{flex:0 0 auto;display:grid;gap:4px;padding:8px;font-size:.78rem;min-height:48px;background:#fff9e9;color:#263860}.placement-options button.selected{background:#dcebd4;border-color:#66895b;outline:2px solid #66895b}.placement-options button small{color:#285334}.play-recap{display:grid;gap:3px;padding:8px 10px;margin:0 0 9px;background:#dcebd4;color:#285334;font-size:.8rem;border-radius:5px}.play-recap span{font-size:.76rem}.town-head{position:sticky;top:0;z-index:4;background:#fff4d9;padding:5px 0}.card-detail .feature-explain{width:auto;min-height:28px;border:0;background:none;box-shadow:none;padding:2px 0;margin:0;font-size:inherit;text-decoration:underline;text-decoration-style:dotted;color:inherit;text-align:left}
@media(min-width:961px){body[data-inspector=closed] .board-layout{grid-template-columns:370px minmax(0,1fr)}body[data-inspector=closed] .card-detail{display:none}}
@media(max-width:960px){.inspector-toggle{display:none}}
@media(max-width:720px){.town-head{position:static}.placement-options button{min-height:48px}.market-availability{font-size:.8rem}}
.action-panel>.primary{grid-column:2;grid-row:1;justify-self:end;min-width:160px}
@media(max-width:720px){body[data-placement=true] .town{order:4}body[data-placement=true] .market-panel{order:5}.action-panel>.primary{margin-top:8px}}
body[data-screen=game] header{display:flex}
.action-panel{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px}.action-panel>.section-head{grid-column:1;margin:0;gap:8px}.action-panel>.action-items{grid-column:2;align-self:center}.action-panel>.spend,.action-panel>p,.action-panel>button{grid-column:1/-1}.action-panel .spend{margin:0}.action-panel .section-head h3{font-size:.95rem}.action-panel .section-head>span{white-space:nowrap}
@media(min-width:961px) and (max-width:1300px){body[data-screen=game] .board-layout{grid-template-columns:370px minmax(0,1fr) 180px}.market-section .card-row{grid-template-columns:repeat(4,minmax(0,1fr))}.town-controls{width:auto}}
@media(max-width:720px){body[data-screen=game] header{display:flex}.brand,.flags,.tools{grid-row:auto;grid-column:auto}body[data-screen=game] .tools{display:flex;flex-wrap:nowrap;justify-content:space-between;width:100%;gap:6px}body[data-screen=game] .tools button{flex:1;white-space:nowrap;font-size:.75rem;padding:7px 5px}.tabletop-nav{display:flex;position:sticky;top:0;z-index:12;gap:8px;background:#cbd9ec;padding:6px 0}.tabletop-nav button{flex:1;min-height:44px;background:#fff4d9;border-color:#7c8dab}.town,.market-panel{scroll-margin-top:60px}.action-panel{display:block}.action-panel>.section-head{margin-bottom:8px}.action-panel>.spend{margin-top:8px}.town-column>.day-draft:not([open]){order:6}}
.tenby-title{display:block;width:154px;height:auto}
body[data-screen=game] .linen{background:#cbd9ec}
body[data-screen=game] header{background:#4face1;margin:0 -18px;padding:10px 18px;border-radius:11px 11px 0 0;border:0}
body[data-screen=game] .brand p{color:#18324d}
body[data-screen=game] .town-column{background:#fff4d9;box-shadow:0 3px 8px #243b5b22}
body[data-screen=game] .card-detail{background:#d8d2ea}
body[data-screen=game] .market-section{border-color:#869ab9}.market-section h3,.market-panel>h2{color:#273f70}
.pending-choice{margin:0 0 10px;padding:8px 10px;background:#e8e4f1;border:0;border-radius:5px}.pending-choice>p{font-size:.87rem;margin:0 0 8px}.pending-choice .card-row{padding:2px;gap:12px;overflow:visible;flex-wrap:wrap}.pending-choice .card-wrap{width:104px}.pending-choice .inspect-button{font-size:.76rem;min-height:28px;background:none;border:0;box-shadow:none}.pending-choice>.green{margin-top:8px}
.day-draft summary{min-height:34px;padding:5px 2px}.street-cards{gap:0}
.resident-choice{display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,1fr);gap:8px 12px}.resident-choice>p{grid-column:1/-1}.resident-choice>.card-row{grid-column:1;grid-row:2}.resident-choice>.green{grid-column:1;grid-row:3;justify-self:start;margin:0}.resident-choice>.score-preview{grid-column:2;grid-row:2/4;align-self:start;margin:0}.resident-choice .score-preview .section-head{display:block}.resident-choice .score-preview strong{display:block;margin-top:5px}
@media(max-width:1300px){.resident-choice{display:block}.resident-choice>.score-preview{margin-top:8px}.resident-choice>.green{margin-top:5px}}
.night-order{font-size:.8rem}.market-help{font-size:.8rem}.turn-strip small{font-size:.87rem!important}.score-explainer{font-size:.83rem}.placement-guide{font-size:.85rem}.peek-rule{font-size:.9rem}.peek-rule p{font-size:.82rem}.peek-rule small{font-size:.8rem}.peek-features{font-size:.79rem}.peek-tip{font-size:.8rem}.town-controls button{font-size:.8rem}.card-detail button{font-size:.83rem}.day-draft summary{font-size:.9rem}.day-draft summary small{font-size:.8rem}.day-slot p{font-size:.8rem}.score-overview{font-size:.8rem}.street-label{font-size:.82rem}.market-section .inspect-button{font-size:.8rem}
@media(max-width:720px){body[data-screen=game] header{margin:0 -10px;padding:10px}.tenby-title{width:130px}.pending-choice{padding:10px}.pending-choice .card-wrap{width:110px}.pending-choice .inspect-button{min-height:44px}.residents .card-row{grid-row:auto;grid-column:auto}.town .residents{display:block}}
@media(min-width:721px){body[data-screen=game] .market-panel,body[data-screen=game] .card-detail{max-height:calc(100dvh - 260px)}.town-column{max-height:calc(100dvh - 260px);overflow:auto;scrollbar-width:thin;scroll-padding:12px}.town-column .streets{max-height:none;overflow:visible}body[data-phase=night] .placement-guide{display:none}}
