:root{--ink:#25365e;--paper:#f4f2ee;--accent:#624d96;--green:#286340;color:#25365e;background:#344974}
body{padding:16px;background:#526d9a url('/painted-window.png') center/cover fixed no-repeat}
body:before{content:'';position:fixed;inset:0;pointer-events:none;background:#263b6452;z-index:-1}
.linen{max-width:1640px;margin:auto;background:#eff1f8f5;border:1px solid #c4cbe2;box-shadow:0 14px 65px #12254955;padding:20px 26px;border-radius:16px}
header{padding-bottom:13px;border-color:#b9c4dd}.brand h1{font-size:2.8rem;letter-spacing:.12em;color:#344371}.brand p{color:#4b5671}
button{border-color:#7c88a6;background:#f6f3ee;color:var(--ink);box-shadow:0 2px 0 #25365e15}button:hover:not(:disabled){background:#dedff0}.primary{background:#354676;border-color:#354676;color:#fff}.primary:hover:not(:disabled){background:#26375f}.green{background:#286340;border-color:#286340;color:white}.selected{outline-color:#624d96}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-color:#624d96}.muted,.footer,.street-label{color:#4b5671}input[type=text],select{background:#fffdf8;border-color:#7884a0}
.table-head{margin:13px 0}.turn-strip{background:#e0e4f3;border:1px solid #a6b4d2;padding:12px 17px;color:#25365e}.turn-strip.mine{background:#354676;color:white;border-color:#354676}.turn-strip small{font-size:.9rem}.player{background:#e7e9f4}.player.selected{background:#d7dbed}
.board-layout{grid-template-columns:minmax(320px,33%) minmax(0,67%);gap:24px}.board-layout>section{padding:16px;background:#e5e9f5;border:1px solid #bec8e0;border-radius:12px;align-self:start}.board-layout>div{min-width:0}.market-section{padding:12px 0 10px;border-color:#bbc6dd}.market-section:last-child{border:0}.market-section .card-wrap{flex-basis:clamp(92px,7.4vw,118px)}.section-head{margin-bottom:8px}.card-row{gap:9px}.card-wrap>.artbutton{box-shadow:0 3px 7px #25365e26}.face{background:#71b8d4}.inspect-button{position:static;width:100%;height:32px;min-height:32px;margin-top:4px;border-radius:4px;font:normal bold 14px 'Trebuchet MS',sans-serif}.inspect-button:after{content:' · ' attr(data-label)}
.day-bar{gap:12px;padding:8px 4px}.day-slot .face,.day-slot button.artbutton{width:78px}.day-slot p{max-width:78px;margin:6px 0}.reservation{max-width:78px;background:#354676}.day-confirm{flex-wrap:wrap}.day-confirm button{min-width:36px;padding:7px}.action-panel{position:static;background:#e4e7f4;border:1px solid #bec8e0;border-radius:10px;padding:13px 16px;margin:12px 0}.action-items{gap:10px}.action-item{flex-wrap:wrap;background:#f7f6fb;padding:5px;border-radius:7px;border:1px solid #bac4db}.exchange{font-size:.75rem;padding:8px;max-width:115px;font-weight:normal}.spend{margin-top:4px}.spend summary{padding-bottom:4px}.town{background:#f6f4ee;border:1px solid #bfc6d6;border-radius:12px;padding:16px}.town-head{margin:0 0 12px}.town-controls input{width:140px}.town-controls{font-size:.85rem}.placement-guide{display:flex;gap:12px;align-items:center;padding:12px;background:#e3e8f5;border-radius:7px;margin-bottom:15px;color:#293e68}.placement-guide>div{flex:1}.placement-guide small{display:block;margin-top:5px;line-height:1.4}.guide-icon{font-size:1.5rem}.street-label{margin:12px 0 5px}.street-scroll{padding:5px 4px 12px}.street-cards{align-items:flex-start}.preview-wrap{display:flex;flex-direction:column;gap:9px;padding-bottom:4px;outline-offset:0}.preview-wrap .destination.aimed{width:100%;aspect-ratio:2/3;display:block;border:0}.preview-controls{position:static;display:flex;flex-wrap:wrap;gap:5px;box-shadow:none;width:100%;padding:0 2px}.preview-controls .green{width:100%;font-size:.88rem;padding:9px 5px}.preview-controls>button:last-child{width:100%;font-size:1.1rem;padding:4px}.destination{background:#e2ecdf;border-color:#548169;color:#254a36}.destination:hover{background:#d2e5ce!important}.new-street{align-items:flex-start}.new-street>.preview-wrap{width:var(--card-width)}.new-street .destination.aimed{width:100%;aspect-ratio:2/3}.new-street>span{padding:15px 5px}.residents{border-color:#bcc5d7}.pending-choice{background:#e4e7f4;border:1px solid #acb9d3}.modal{background:#f4f3ef}.modal a{color:#493a79}.chat{background:#f4f3ef;border-color:#7884a0}.footer{margin-top:18px}
body[data-screen=menu] .linen{background:#edf0f6e8;max-width:1040px}body[data-screen=menu]{padding:26px}.menu{margin:22px auto}.menu-art{max-width:650px;margin:22px auto 28px}.menu-options{padding:20px;background:#f5f3ef;border:1px solid #bbc4d9;border-radius:12px}.menu h2{color:#354676}.lobby{background:#f3f3f8;padding:24px;border-radius:12px}.lobby-person{border-color:#bac4d9}
.gallery-tools{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.gallery-tools label{font-size:.85rem}.gallery-thumbs{display:flex;overflow-x:auto;gap:8px;padding:10px 4px;margin-top:12px;border-top:1px solid #c0c8da}.gallery-thumbs button{width:65px;flex:none;padding:0;border:0;min-height:0}.gallery-thumbs .face{border-radius:3px}.modal:has(.gallery-thumbs){max-width:1000px}.inspect-layout{grid-template-columns:minmax(200px,1fr) 1fr}.inspect-layout>.face{width:var(--inspect-size,260px);max-width:100%;margin:0 auto}.inspect-layout{align-items:start}
.inspect-button:after{content:none}.streets{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 22px;min-height:0}.street-block{min-width:0;max-width:100%;width:max-content}.street-block .street-cards{min-width:0}.street-block .street-scroll{max-width:100%}.new-street{flex-shrink:0}.day-slot .face,.day-slot button.artbutton{width:100px}.day-slot p,.reservation{max-width:100px}.day-confirm button{min-width:44px}.day-confirm{justify-content:center}
.score-explainer{font-size:.85rem;line-height:1.5;padding:11px 13px;background:#e9eaf2;border:1px solid #bec6db;border-radius:6px;min-height:62px;margin-bottom:10px}.score-source>.artbutton{outline:4px solid #22659a;outline-offset:-4px}.score-receiver>.artbutton{outline:4px dashed #996019;outline-offset:-4px}.score-source.score-receiver>.artbutton{outline:4px solid #22659a;box-shadow:0 0 0 4px #996019}.score-hovered>.artbutton{outline:4px solid #624d96;outline-offset:-4px}.score-source .face:after,.score-receiver .face:after{position:absolute;top:8px;left:5px;color:white;background:#22659a;font:bold 13px Arial;border-radius:4px;padding:5px;content:'→'}.score-receiver .face:after{background:#87520f;content:'←'}.score-hovered .face:after{display:none}
.card-points{display:flex;justify-content:center;align-items:center;gap:5px;background:#e8ecf7;color:#25365e;font-size:.8rem;min-height:32px;padding:5px 2px;margin-top:4px;border-radius:4px}.point-change{display:inline-block;padding:3px 6px;border-radius:4px;font-size:.85rem;font-weight:bold}.positive{background:#dcebdc;color:#204c2d}.negative{background:#f2dedb;color:#75312a}.score-overview{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:12px 15px;background:#e0e5f3;border:1px solid #afbcd7;border-radius:8px;margin-bottom:14px;font-size:.85rem}.score-overview strong{display:block;font: bold 2rem Georgia;color:#354676}.score-overview strong small{font:normal .85rem Arial}.score-overview>div{line-height:1.6}.last-change{margin-left:auto}.last-change b{display:block}.score-preview{padding:14px;background:#e7eedf;border:1px solid #759473;border-radius:8px;margin-bottom:14px}.score-preview h3{color:#285132}.score-preview p{font-size:.85rem;margin:8px 0}.score-preview .section-head{flex-wrap:wrap}.preview-changes{display:flex;gap:8px;overflow-x:auto;padding:4px}.score-change{display:flex;align-items:center;gap:8px;flex:none;padding:7px;text-align:left;max-width:200px;font-size:.8rem}.score-change .face{width:42px;flex:none}.score-change b,.score-change small{display:block}.preview-wrap .preview-controls{margin-top:0}.preview-points{margin-top:0}
.market-section .card-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(85px,1fr));overflow:visible;gap:8px}.market-section .card-wrap{width:100%;max-width:140px}.preview-points{display:block;text-align:center;line-height:1.5}.preview-points b{display:block}.day-slot p{line-height:1.4}.gallery-tools input[type=range]{max-width:155px}
.board-layout{grid-template-columns:minmax(280px,28%) minmax(0,72%);gap:20px}.market-panel{position:sticky;top:16px}.market-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:13px 0 5px}.market-tabs button{flex:1;font-size:.8rem;padding:8px 5px;border-radius:6px}.market-tabs .active-tab{background:#354676;color:#fff;border-color:#354676}.market-tabs b{display:inline-block;margin-left:3px}.market-help{font-size:.82rem;line-height:1.5;border-top:1px solid #bbc6dd;padding-top:12px;color:#4b5671}.selected-piece{background:#f7f5ee;padding:12px;border-radius:8px;border:1px solid #acb7d0;font-size:.8rem;margin-top:14px}.selected-piece h3{margin-bottom:10px}.selected-piece .row{flex-wrap:nowrap;align-items:flex-start}.selected-piece .face{width:75px;flex:none}.selected-piece p{font-weight:bold}.day-draft{border:1px solid #bbc6dd;background:#e9ecf6;border-radius:8px;padding:0 12px}.day-draft summary{cursor:pointer;min-height:44px;padding:11px 2px;font-weight:bold}.day-draft summary small{font-weight:normal;margin-left:9px}.town-controls{gap:5px}.town-controls input{width:110px}.zoom-step{font-size:1.1rem;min-width:44px;padding:6px}.action-panel{margin:10px 0}.spend summary{min-height:40px}.score-overview{margin-bottom:10px}.placement-guide{margin-bottom:10px}.score-preview{padding:10px 12px}.score-preview .section-head{margin-bottom:0}.score-preview p{margin:6px 0}.town-head{flex-wrap:wrap}.streets{max-height:58vh;overflow-y:auto;padding:2px 6px 12px 2px;scrollbar-width:thin}.score-explainer{min-height:0}.residents{margin-top:12px;padding-top:12px}.residents .card-row{flex-wrap:wrap}.residents .card-wrap{width:90px}
.action-panel{padding:10px 12px}.action-panel .section-head{margin-bottom:3px}.action-items{margin-top:6px}.spend summary{padding:6px 0}.market-panel .residents .section-head{flex-wrap:wrap}.market-panel .residents{padding-top:12px}.market-panel .residents small{font-size:.76rem}
.market-panel{max-height:calc(100vh - 32px);overflow-y:auto;scrollbar-width:thin}@media(max-width:800px){.market-panel{max-height:none;overflow:visible}}
@media(max-width:1100px){.board-layout{grid-template-columns:minmax(260px,32%) minmax(0,68%);gap:12px}.market-tabs button{font-size:.75rem}.town-controls input{width:100px}.score-overview{gap:13px}.town-controls{justify-content:flex-start}}
@media(max-width:800px){.board-layout{display:flex;gap:12px}.market-panel{position:static}.market-tabs button{font-size:.85rem}.day-draft{order:1}.day-draft summary small{display:block;margin:4px 0 0 15px}.streets{max-height:none;overflow-y:visible}.town-controls input{width:90px}.town-controls{justify-content:flex-start;gap:5px}.score-overview{gap:10px;padding:10px}.score-overview strong{font-size:1.7rem}.score-preview .section-head strong{font-size:.95rem}}
@media(min-width:1700px){.market-section .card-wrap{flex-basis:120px}}
@media(max-width:1100px){body{padding:10px}.linen{padding:17px}.board-layout{grid-template-columns:minmax(270px,36%) minmax(0,64%);gap:15px}.market-section .card-wrap{flex-basis:93px}.town{padding:12px}.town-head{flex-wrap:wrap}.day-slot .face,.day-slot button.artbutton{width:70px}}
@media(max-width:800px){body,body[data-screen=menu]{padding:6px}.linen{padding:12px;border-radius:10px}.brand h1{font-size:2.3rem}.board-layout{display:flex;flex-direction:column;gap:14px}.board-layout>div{display:contents}.board-layout>section{width:100%;order:4;padding:12px}.board-layout>div>div:first-child{order:1}.action-panel{order:2;margin:0}.pending-choice{order:3}.town{order:5;width:100%}.market-section .card-wrap{flex-basis:104px}.day-slot .face,.day-slot button.artbutton{width:75px}.town-controls input{width:100px}.town-controls{width:100%;justify-content:space-between}.town-head h2{font-size:1.35rem}.placement-guide{padding:10px;font-size:.88rem}.preview-controls .green{font-size:.8rem}.menu-options{padding:16px;margin:18px auto}.lobby{padding:12px}.lobby>.section-head{flex-wrap:wrap}.inspect-layout{grid-template-columns:1fr}.inspect-layout>.face{width:var(--inspect-size,260px);max-width:100%}.modal{max-height:94vh;padding:16px}.gallery-tools{gap:8px}.gallery-thumbs button{width:57px}.inspect-button{min-height:44px}.menu-art{margin:18px auto}.turn-strip small{font-size:.82rem}}
