.city-preview{width:440px;max-width:100%;aspect-ratio:1}.city-preview img{width:100%;height:100%;object-fit:contain}.card-monopoly .card-art{background:#e7e3d3;padding:10px 12px 30px}.card-monopoly .card-art>img{width:100%;height:100%;object-fit:contain}.city-game{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(245px,1fr);gap:16px;width:100%;min-width:0;align-items:start;background:none;padding:0;border:0}.city-map{display:grid;grid-template:1.25fr repeat(9,1fr) 1.25fr / 1.25fr repeat(9,1fr) 1.25fr;aspect-ratio:1;min-width:0;width:100%;background:#c5c9b3;border:3px solid #a8b09a;gap:2px;isolation:isolate}.city-cell{position:relative;min-width:0;min-height:0;padding:4px 1px 2px;border:0;border-radius:0;background:#f3eddf;color:#354239;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:visible;cursor:pointer}.city-cell:hover{background:#fff9e9}.city-cell.selected{outline:3px solid #607c72;outline-offset:-3px;z-index:2}.city-stripe{position:absolute;left:0;top:0;right:0;height:13%;background:var(--city-group)}.city-name{font-size:clamp(9px,.78vw,12px);line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-short{display:none;font-size:10px}.city-value{font:10px ui-monospace,monospace;color:#757d66}.city-owner{position:absolute;bottom:0;right:1px;color:var(--city-seat);font-size:9px;line-height:1}.city-cell.mortgaged{background:#dddccf}.city-cell.mortgaged .city-stripe{opacity:.35}.city-tokens{position:absolute;inset:32% 6% 7%;display:grid;grid-template-columns:repeat(4,1fr);align-content:center;pointer-events:none;gap:1px;z-index:3}.city-tokens:not(:empty){background:#f3eddfad}.city-token{display:grid;place-items:center;aspect-ratio:1;min-width:0;min-height:0;width:100%;background:var(--city-seat);color:#fff8e6;border:1px solid #fffae8;border-radius:50%;font-size:9px;font-style:normal;box-shadow:0 1px 1px #3b443936}.city-seat-1{--city-seat:var(--table-seat-1,#c77760)}.city-seat-2{--city-seat:var(--table-seat-2,#668c79)}.city-seat-3{--city-seat:var(--table-seat-3,#b8963e)}.city-seat-4{--city-seat:var(--table-seat-4,#8d79a5)}.city-seat-5{--city-seat:var(--table-seat-5,#548caa)}.city-seat-6{--city-seat:var(--table-seat-6,#b46b90)}.city-seat-7{--city-seat:var(--table-seat-7,#738a42)}.city-seat-8{--city-seat:var(--table-seat-8,#a96c37)}.city-centre{grid-area:2/2/11/11;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#e7e5d6;min-width:0;gap:8px;padding:10px}.city-centre>img{width:70%;height:auto;max-height:42%;object-fit:contain}.city-centre h3{font-size:clamp(13px,1.4vw,22px);margin:0;font-weight:400}.city-centre .eyebrow{font-size:9px}.city-centre p{font-size:11px;margin:0;color:#727e66}.city-dice{display:flex;gap:8px;transform-origin:center}.city-dice span{display:grid;place-items:center;font:38px/1 Georgia,serif;background:#faf5e8;color:#677e6c;border:1px solid #c8ccb7;border-radius:9px;width:46px;height:46px}.city-console{display:flex;flex-direction:column;gap:12px;min-width:0}.city-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px}.city-account{display:grid;grid-template-columns:1fr auto;gap:3px 6px;min-height:48px;min-width:0;text-align:left;background:#ede7d9;border:1px solid #cccdbb;border-left:3px solid var(--city-seat);border-radius:6px;padding:7px 8px;color:#344539}.city-account>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;grid-column:1/-1}.city-account strong{font-size:15px}.city-account small{font-size:10px;text-align:right}.city-account.active{background:#f9f3df;outline:1px solid var(--city-seat)}.city-account.out{opacity:.5}.city-property{border:1px solid #c5c9b3;border-top:7px solid var(--city-group);border-radius:6px;padding:12px;min-height:116px;background:#f5f0e3}.city-property-title{display:flex;gap:5px 10px;align-items:center;flex-wrap:wrap}.city-property-title small{font-size:9px;color:#7c856c}.city-property-title h3{font-size:18px;margin:0}.city-property-title>span{font-size:10px}.city-property-values{display:flex;gap:18px;margin-top:10px;font-size:11px;min-height:32px}.city-property-values>span{display:flex;flex-direction:column;gap:3px}.city-property-values b{font-size:14px}.city-property-values p{margin:0;line-height:1.5}.city-holdings{display:flex;flex-wrap:wrap;gap:3px 8px;border-top:1px solid #dad8c6;margin-top:10px;padding-top:8px;align-items:center}.city-holdings>span{font-size:10px;color:#727e66}.city-holdings button{font-size:11px;min-height:28px;padding:3px;margin:0}.city-controls{border:1px solid #c4c7b1;background:#eae4d6;border-radius:9px;padding:12px;min-height:175px}.city-controls p{font-size:12px;line-height:1.5;margin:0 0 8px}.city-actions{display:flex;gap:6px;flex-wrap:wrap;min-height:44px}.city-actions button{min-height:44px;padding:8px 11px;font-size:12px;flex:1 1 auto}.city-actions .selected{background:#788f79;color:#fff9ea}.city-confirmation{margin-top:10px;border-top:1px solid #cfcebd;padding-top:8px;min-height:74px}.city-confirmation>div{display:flex;justify-content:flex-end;align-items:center;gap:10px}.city-confirmation button{min-height:40px;padding:8px 14px;font-size:12px}.city-event{margin:0;font-size:11px;color:#6e7d67;line-height:1.5;min-height:32px}.city-page .play-area{min-width:0}.city-page .table-layout{grid-template-columns:230px minmax(0,1fr)}.city-page.in-game main{max-width:1580px}.city-page .under-board{margin-top:8px}
@media(min-width:1500px){.city-map{max-width:740px}.city-game{grid-template-columns:minmax(0,740px) minmax(280px,1fr)}}
@media(max-width:1199px){.city-game{grid-template-columns:minmax(0,1fr)}.city-map{max-width:660px;justify-self:center}.city-console{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}.city-summary{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}.city-event{grid-column:1/-1}.city-controls{min-height:190px}.city-name{font-size:10px}}
@media(max-width:760px){.city-page .table-layout{grid-template-columns:minmax(0,1fr)}.city-console{display:flex}.city-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.city-account{padding:5px;min-height:46px}.city-account strong{font-size:13px}.city-account small{display:none}.city-account span{font-size:10px}.city-map{gap:1px;border-width:2px}.city-name{display:none}.city-short{display:block}.city-value{font-size:8px}.city-tokens{inset:34% 3% 4%;gap:0}.city-token{font-size:6px;border-width:.5px}.city-owner{font-size:8px}.city-centre{gap:5px;padding:6px}.city-centre .eyebrow{font-size:8px}.city-centre h3{font-size:13px}.city-dice span{width:34px;height:34px;font-size:29px}.city-centre p{font-size:10px}.city-property{min-height:95px;padding:8px 10px}.city-property-values{margin-top:6px;min-height:28px}.city-controls{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:5;box-shadow:0 4px 20px #4a54331a;min-height:165px;padding:10px}.city-holdings button{min-height:44px}.city-game{gap:10px}.city-event{min-height:20px}.city-confirmation{min-height:65px}}

@media(min-width:1200px){.city-game{grid-template-columns:minmax(0,min(740px,calc(100svh - 190px))) minmax(245px,1fr)}.city-map{max-width:calc(100svh - 190px)}}

.city-page.in-game #board{max-height:none!important;overflow:visible}.city-page .city-controls{position:static}.city-page .city-map{overflow:visible}
@media(max-width:760px){.city-summary{display:none}.city-property{min-height:75px}.city-confirmation>p{min-height:18px}.city-controls{min-height:155px}.city-console{gap:8px}.city-property-values{gap:22px}.city-property-title h3{font-size:16px}}

@media(min-width:761px) and (max-width:999px){.city-summary{display:none}.city-map{max-width:min(660px,calc(100svh - 390px))}.city-console{grid-template-columns:1fr 1fr}}
@media(min-width:1000px) and (max-width:1199px){.city-game{grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr)}.city-console{display:flex}.city-summary{grid-template-columns:1fr 1fr}.city-map{max-width:calc(100svh - 190px)}}

@media(max-width:380px) and (min-height:700px){.city-map{max-width:calc(100svh - 510px)}}

/* Public events and bounded, shared activity history. No nested page scrollbars. */
.city-centre.has-event>img,.city-centre.has-event>h3{display:none}
.city-public-event{display:flex;flex-direction:column;align-items:center;gap:8px;width:90%;padding:18px 12px;background:#f6eedc;border:1px solid #cbc1a2;border-top:5px solid var(--city-seat);border-radius:10px;min-width:0}
.city-public-event>small{font-size:9px;letter-spacing:.08em;color:#7c8066}.city-public-event>span{font-size:12px;overflow-wrap:anywhere}.city-public-event>strong{font-size:clamp(17px,1.8vw,25px);font-weight:500}.city-public-event>p{font-size:12px;line-height:1.5;color:#56634e;margin:0;max-width:100%}
.city-follow{font-size:11px!important;min-height:30px;padding:3px 0!important;margin:5px 0 0!important}
.city-feed{grid-column:1/-1;border:1px solid #c9c9b5;background:#eee9dc;border-radius:10px;padding:12px 14px;min-width:0}.city-feed-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.city-feed-heading h3{font-size:14px;margin:0;font-weight:500}.city-feed-heading button{font-size:12px;margin:0;min-height:36px}.city-feed ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none}.city-message{list-style:none;min-width:0;border-left:3px solid var(--city-seat,#9bab8b);padding:6px 10px;background:#f6f0e4;border-radius:0 5px 5px 0}.city-message>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.city-message b{font-size:11px;overflow-wrap:anywhere;min-width:0}.city-message small{font-size:10px;color:#828770;white-space:nowrap}.city-message p{font-size:12px;line-height:1.6;margin:5px 0 0;overflow-wrap:anywhere}.city-message-money{color:#64826b}
.city-history-dialog{width:min(740px,calc(100vw - 24px));max-height:85svh;overflow:auto}.city-history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.city-history-heading h2{font-size:24px;margin:0}.city-history-heading button{min-height:44px}.city-history-filters{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.city-history-filters label{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}.city-history-filters select{min-height:40px;max-width:220px;font:inherit;padding:8px;background:#f5eedf;color:#435640;border:1px solid #c4cab3;border-radius:5px}.city-history-dialog ol{display:grid;gap:8px;padding:0;margin:12px 0}.city-history-pager{display:flex;align-items:center;justify-content:space-between;gap:12px}.city-history-pager button{min-height:44px}.city-history-dialog [data-note]{font-size:11px;line-height:1.5}.city-history-dialog [data-fresh]{width:100%;min-height:44px}.city-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){.city-public-event{gap:5px;padding:10px 8px;width:94%;border-top-width:3px}.city-public-event>small{font-size:8px}.city-public-event>strong{font-size:17px}.city-public-event>span,.city-public-event>p{font-size:11px}.city-feed{padding:8px 10px}.city-feed ol{grid-template-columns:1fr;gap:6px}.city-feed .city-message:nth-child(n+2){display:none}.city-history-dialog{padding:16px}.city-history-filters{gap:8px}.city-history-filters select{max-width:180px}.city-public-event+div{margin-top:3px}}

.city-property{position:relative}.city-property-title{padding-right:28px}.city-property .city-follow{position:absolute;right:8px;top:8px;margin:0!important;padding:0!important;width:32px;height:32px;font-size:18px!important}

/* Videogame rules: compact wallet, board-target cards, no extra page scroll panes. */
.city-wallet{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;font-size:11px;color:#586849}.city-wallet b{font-size:13px}.city-wallet>span{white-space:nowrap}
.city-target{box-shadow:inset 0 0 0 2px #67947c;background:#e5efdc}.city-pending{box-shadow:inset 0 0 0 3px #b28a55;background:#f5e6bc}.city-block{position:absolute;inset:15% 22%;display:grid;place-items:center;color:#875a45;font-size:24px;font-weight:700;background:#ecd2a0;pointer-events:none;z-index:4}
.city-assets{margin-top:8px;font-size:11px}.city-assets summary{cursor:pointer;min-height:28px}.city-assets .city-holdings{margin:0}
.city-card-dialog{width:min(620px,calc(100vw - 24px));max-height:85svh;overflow:auto}.city-card-dialog p{font-size:12px;line-height:1.6}.city-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.city-tool-card{display:flex;flex-direction:column;align-items:start;gap:8px;min-width:0;min-height:152px;border:1px solid #b7bea6;border-top:5px solid #77927c;border-radius:8px;background:#f7efd9;padding:12px;text-align:left;color:#42593f}.city-tool-card i{font-size:30px;font-style:normal}.city-tool-card b{font-size:13px}.city-tool-card span{font-size:11px;line-height:1.5}.city-tool-card:disabled{opacity:.5;cursor:default}
.city-richman .city-actions button{flex:1 1 40%;min-height:40px}.city-richman .city-actions #city-open-cards{flex:0 1 auto}.city-richman .city-actions:has([data-city-action="4"]) button{flex:1 1 27%}
@media(max-width:760px){.city-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-card-dialog{padding:16px}.city-richman .city-map{max-width:min(100%,calc(100svh - 535px))}.city-richman .city-controls{padding:8px}.city-richman .city-property{min-height:65px}.city-richman .city-controls p{font-size:11px}.city-richman .city-confirmation{margin-top:6px;padding-top:5px}.city-richman .city-wallet{margin-bottom:5px;gap:4px 9px}}
@media(max-width:760px) and (max-height:699px){.city-richman .city-map{max-width:290px}}

.city-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.city-choice-grid button{min-height:48px}.city-richman .city-actions.is-dice-choice{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.city-richman .city-actions.is-dice-choice button{padding:6px 1px;min-width:0;min-height:44px;font-size:12px}

.city-richman .city-wallet{align-items:center;min-height:32px}.city-wallet #city-open-plots{font-size:11px;margin:0;padding:4px 0;min-height:32px}

@media(min-width:761px) and (max-width:999px){.city-richman .city-map{max-width:min(660px,calc(100svh - 425px))}}
.city-choice-grid button:has(small){display:flex;flex-direction:column;gap:6px;text-align:left}.city-choice-grid small{font-size:11px;line-height:1.5;font-weight:400}
