/* Reference art direction: dusk office, walnut table, ivory board and blue/gold brand. */
:root{--blue:#168fff;--cyan:#72caff;--gold:#ffc650;--green:#1cec72;--line:#40576b;--ink:#080f19}
.app-shell{background:linear-gradient(180deg,#06111b4d,#100a0633 55%,#090d1799),url('../assets/city-office-v1.png') center top/cover fixed;isolation:isolate}
.app-shell:before{display:none}
.topbar{background:linear-gradient(180deg,#101b2aef,#050b14e8);border-bottom:1px solid #5c789e;box-shadow:0 8px 28px #0008;min-height:88px}
.brand{gap:9px;filter:drop-shadow(0 3px 3px #000)}
.brand-symbol{border-radius:5px;border-color:#ffc957;background:linear-gradient(145deg,#143969,#071326);box-shadow:0 0 16px #ffba4a35;width:44px;height:50px;color:#ffe4a0}
.brand .brand-wordmark small{font-size:17px;letter-spacing:-.4px;font-weight:900;color:#eaf9ff;text-shadow:0 2px #147bbb,0 3px #000;margin-bottom:2px}
.brand-wordmark strong{font-size:32px;letter-spacing:1px;font-weight:950;line-height:1;color:#ffcc48;text-shadow:0 2px #a7630a,0 4px #00101f}
.brand-wordmark strong span{display:none}
.session-label{color:#f5dbac;text-shadow:0 1px 3px #000}.session-label small{color:#b1c7dc}
.topbar .nav-item{flex-direction:column;gap:5px;padding:10px 16px;background:linear-gradient(#263a5122,#050a1422);border-left:1px solid #ffffff0b;border-radius:6px;min-height:60px}
.topbar .nav-item .ui-icon{width:25px;height:25px;color:#b6d2ee}.topbar .nav-item:hover:not(:disabled){background:linear-gradient(#087fdf,#004f9f);border-color:#39a6ff;box-shadow:0 0 20px #007fff44}
.app-menu summary{background:linear-gradient(#21354c,#0a1524);border-color:#4a6078;min-height:60px}
.game-layout{gap:20px;margin-top:22px;padding:0 20px;max-width:1800px}
.glass-panel{background:linear-gradient(135deg,#111e2bee,#030910ed);border-color:#48617c;box-shadow:0 8px 25px #0006;border-radius:12px;backdrop-filter:blur(12px)}
.panel-heading{color:#e1ecfa}.panel-heading .ui-icon{color:#8ac9ff}
.player-list{background:transparent;border:0;box-shadow:none;padding:0;backdrop-filter:none}.panel-intro{color:#ecdbb8;text-shadow:0 1px 3px #000}
.player-row{background:linear-gradient(110deg,#13273ae8,#050b13ef);border:1px solid #60748b;border-left:7px solid var(--player-color);border-radius:11px;min-height:88px;box-shadow:0 5px 15px #0006;gap:12px;padding:12px 10px}
.player-row.current{background:linear-gradient(110deg,#123760f2,#061325ed);border-color:#76cbff;border-left-color:var(--player-color);box-shadow:0 0 0 2px #168fff,0 0 20px #168fff65}
.player-row .avatar{border-radius:50%;border:2px solid color-mix(in srgb,var(--player-color) 65%,white);background:radial-gradient(circle at 35% 25%,#2d658d,#071622 75%);width:44px;height:49px}
.player-info strong{font-size:13px}.player-info span{color:#15ff64;font-size:14px;font-weight:800}.player-info small{color:#c0d0e3}
.turn-banner{background:linear-gradient(115deg,#0b2842ed,#070d18ed);border-color:#537b9d;box-shadow:0 5px 20px #0005}.turn-balance b{color:#3eff80}.turn-copy small{color:#9bd6ff}
.bank-panel,.event-panel,.investment-panel{background:linear-gradient(140deg,#122135ed,#050c16eb);border-color:#53657a}.bank-panel strong{color:#ffce62}
.stage-toolbar{padding-bottom:10px}.stage-title h1{text-shadow:0 3px 10px #000}.eyebrow{color:#ffe7b2;text-shadow:0 2px 4px #000}
.map-card{background:#08131c35;border:1px solid #8396ad75;border-radius:12px;box-shadow:0 18px 42px #0006;overflow:hidden}
.map-toolbar,.board-caption{background:linear-gradient(100deg,#091827df,#080e17e8);color:#c0dbef;border-color:#9ec5ff20}
.map-label{color:#d2e8fa}.map-label .live-dot{background:#4dbbff;box-shadow:0 0 10px #36a8ff}
.board-viewport{background:radial-gradient(ellipse at 50% 50%,#e9c78920,#24100620 75%);max-height:var(--map-available-height,620px)}
.board-3d{filter:drop-shadow(0 18px 12px #0009)}
.board-3d.angled-view{transform:perspective(1600px) rotateX(25deg) rotateZ(-2deg);transform-origin:50% 50%}
.board-surface{border:3px solid #1b71bf;border-radius:.3cqw;background:radial-gradient(ellipse at 48% 35%,#fff5d9,#e2ecdc 54%,#a5cdca);box-shadow:0 6px 0 #004783,0 9px 0 #052239,inset 0 0 0 1px #fff;inset:-.4%}
.board-inlay{border:1px solid #334c48;background:radial-gradient(ellipse at 50% 15%,#e6e0b5aa,transparent 65%);box-shadow:inset 0 0 0 .7cqw #d0e4cb;background-size:auto}
.city-orbit{display:none}.city-skyline{left:19%;top:14%;width:62%;transform:none;filter:drop-shadow(0 1cqw .5cqw #4e553755)}
.board-title{left:20%;top:48%;width:60%;padding:1.6cqw 1cqw;transform:rotate(-9deg);border:.4cqw solid #d9a838;border-radius:.7cqw;background:linear-gradient(145deg,#095590,#07172c 70%);box-shadow:0 .7cqw 0 #142a43,0 1cqw 1.5cqw #0005;gap:.6cqw;text-shadow:0 .35cqw #05203a}
.board-title>small{display:none}.board-title>span{font-size:4cqw;font-weight:950;color:#e6f5ff;letter-spacing:-.12cqw;line-height:1.05}.board-title>span b{display:block;font-size:7.8cqw;color:#ffd149;line-height:.95;text-shadow:0 .4cqw #bd720d,0 .7cqw #031326;letter-spacing:.15cqw}
.board-title em{font-size:1.05cqw;font-weight:700;color:#dcecff;letter-spacing:.02cqw;margin-top:.3cqw}
.board-seal{display:none}.printed-deck{right:17%;bottom:17%;transform:rotate(-28deg);border:.3cqw solid white;border-radius:.4cqw;background:linear-gradient(135deg,#58c9ff,#067cdd);box-shadow:.25cqw .35cqw #ded6bf,.5cqw .7cqw #fff,.8cqw 1cqw .5cqw #0004;color:white}.printed-deck .ui-icon{color:white}
.dice-zone-label{display:none}.dice-tray{left:33%;bottom:16%;width:27%;gap:5cqw;filter:drop-shadow(0 1cqw .4cqw #635f3b66)}
.die .die-face{background:#fff5e3;border-color:#d2c7b1;box-shadow:inset 0 0 5px #cebda7}.die .die-top{background:#fffaf0}.die .die-right{background:#ddcfb9}.pip{background:#171b22;box-shadow:inset 0 1px 2px #000}
.tile{background:linear-gradient(145deg,#fff9e9,#e7e7d5);border:1px solid #283e3a;color:#172922;text-shadow:none;box-shadow:inset 0 0 0 1px #ffffff55}
.tile:before{height:1.1cqw;border-bottom:1px solid #39493a;background:var(--tile-color)}
.tile .tile-content{padding:1.3cqw .15cqw .4cqw}.tile-name{font-size:1.07cqw;font-weight:850;color:#14241f}.tile .tile-price{color:#21352d;font-size:1.1cqw;font-weight:800}
.tile .tile-art{filter:drop-shadow(0 .15cqw .1cqw #24342355)}
.tile.type-card{background:linear-gradient(145deg,#fff7dd,#e9eee1)}.tile.type-bonus{background:linear-gradient(145deg,#e8f8d8,#c8e8bd)}.tile.type-tax{background:linear-gradient(145deg,#fff2cd,#efdfaa)}
.tile.corner{background:linear-gradient(135deg,#ffe486,#e9b645)}.tile.type-start{background:linear-gradient(145deg,#fff5c7,#e8eac9)}.tile.type-goToJail{background:linear-gradient(145deg,#ffe2c4,#efa969)}.tile.type-jail{background:linear-gradient(145deg,#f4e4c3,#d8c8a8)}
.tile.selected{outline:2px solid #fff;box-shadow:inset 0 0 0 3px #ffbf24,0 0 12px #ffd34d;z-index:5}.tile:hover{filter:brightness(1.08)}
.tile .owner-label{color:#173629;background:#ffffffcc}.tile .owner-callout{background:#101c28e6;color:#fff}.tile.mortgaged{background:repeating-linear-gradient(45deg,#dfdfce,#dfdfce 5px,#b6c0ae 5px,#b6c0ae 10px)}
.tile .buildings{height:2.6cqw;bottom:1.45cqw;filter:drop-shadow(.2cqw .25cqw .15cqw #0007)}.buildings .game-graphic{width:1.8cqw;height:2.4cqw}
.board-token{filter:drop-shadow(.25cqw .5cqw .2cqw #0008)}
.inspector-tabs{background:#081422e8;border-color:#5b7290}.inspector-tabs [aria-selected="true"]{background:linear-gradient(#0c8fed,#0057b1);color:white;box-shadow:0 0 14px #028bff50}
.property-card.glass-panel{background:linear-gradient(100deg,#fafafa,#eceef1);border:5px solid #dce2e7;border-radius:13px;box-shadow:inset 0 0 0 1px white,0 10px 24px #0007;color:#172638;backdrop-filter:none}
.property-hero{height:110px;margin:4px;border:0;border-radius:5px;background:linear-gradient(135deg,#087be5,#00449d);padding:14px;color:white}.property-hero small{color:#c7eaff;font-size:8px}.property-hero span{color:white;font-weight:800;font-size:19px;letter-spacing:0}.property-hero #propertyGraphic{width:65px;height:70px;filter:drop-shadow(0 5px 4px #00235f66)}
.property-content{padding:15px}.property-content h2{color:#122947;font-weight:800;font-size:22px}.property-meta{color:#456075;font-weight:700}.property-subtitle,.property-action-hint{color:#526275}
.property-overview>div{background:#e3e9ee;border-color:#c4d0db;border-radius:5px}.property-overview small{color:#51677f}.property-overview strong{color:#143b67;font-weight:800}.property-overview>div+div strong{color:#875f13}
.property-structure{background:#edf3e8;border-color:#bdcbb4;color:#365a35}.property-details{border-color:#c5d0db}.property-details summary{color:#2f4a67;font-weight:700;font-size:11px}.property-line{color:#344456;border-color:#d1d7df;font-size:11px}.property-line b{color:#111d2b;font-weight:750}
.action-button.primary{background:linear-gradient(#13d64a,#00882f);border-color:#37f374;color:white;box-shadow:inset 0 1px #a1ffb180,0 2px 6px #00532140}.action-button.secondary{background:linear-gradient(#098eea,#0054ae);border-color:#48adfb;color:white;box-shadow:inset 0 1px #9bdaff50}.action-button.dark{background:linear-gradient(#48525e,#242d38);border-color:#687785;color:white}
.property-actions .action-button{font-size:11px;min-height:40px;border-radius:5px;font-weight:800}
.action-dock{background:linear-gradient(#0f1c2aed,#040a12f5);border-color:#7690ad;border-radius:12px;box-shadow:0 -4px 30px #0007;max-width:960px}
.roll-button{background:linear-gradient(#16c944,#007e2a);border:2px solid #37f26c;box-shadow:0 0 24px #17ed5855,inset 0 2px #b5ffc955;border-radius:9px;min-height:62px;min-width:265px;color:white}.roll-button strong{font-size:19px;font-weight:900;letter-spacing:.2px;color:white;text-shadow:0 2px #005119}.roll-button small{font-size:10px;color:#e4ffea}.roll-button .roll-arrow{color:#dcffe3}.roll-button .dock-die .pip{background:#15241b}
.end-button{background:linear-gradient(#26394c,#0a121f)!important;border-color:#4c6079!important;color:#f5f9ff!important}.dock-turn b{color:#fff}.dock-turn small{color:#a8cdf1}
.effect-toggle,.effects-button{background:#071422df;border-color:#416389;color:#c4e6ff}.effect-toggle[aria-pressed="true"]{background:#0b2340df;border-color:#328cdf;color:#aedaff}.dice-result{color:#e4eaff;text-shadow:0 1px 3px #000}
.modal{background:linear-gradient(135deg,#152a41,#071424);border-color:#5d8fb8;border-radius:16px}.modal h2{color:#f4f8ff}.settings-tabs [aria-selected="true"]{background:linear-gradient(#167bc4,#07578d)}.modal::backdrop,.property-drawer::backdrop{background:#000b;backdrop-filter:blur(5px)}
.property-drawer{background:#ecf0f4}.property-drawer .property-content h2{color:#142947}.drawer-header{background:#0a2847f5;border-color:#4688b3}.drawer-header>span{color:#d1eaff}
.attention-banner{background:#071d32f0;border-color:#4684b1;border-left-color:#ffcc5b;color:#dfedfa}.attention-banner-heading strong{color:#ffd66e}.attention-banner-heading button{background:#24435d;color:#fff}.toast{background:#102b44;border-color:#75b9e6;color:#fff}
@media(min-width:1200px){.game-layout{grid-template-columns:225px minmax(450px,1fr) 286px}.left-rail,.right-rail{scrollbar-color:#7594ba #071420;max-height:calc(100dvh - 115px)}.board-stage{max-width:1000px}}
@media(min-width:1600px){.game-layout{grid-template-columns:265px minmax(580px,1fr) 310px}.player-row .avatar{width:52px;height:56px}.player-info strong{font-size:15px}.player-info span{font-size:16px}}
@media(max-width:1199px){.game-layout{display:block;max-width:900px;margin-top:18px;padding:0 18px}.left-rail,.right-rail{max-height:none}.board-stage{max-width:100%}.stage-toolbar{display:none}.player-list{padding:12px}.app-shell{background-attachment:scroll}.topbar{min-height:76px;padding:10px 18px}.topbar .nav-item,.app-menu summary{min-height:48px}.turn-banner{margin-bottom:14px}}
@media(max-width:700px){.topbar{padding:8px 10px;gap:8px;min-height:66px}.brand .brand-wordmark small{font-size:12px}.brand-wordmark strong{font-size:24px}.brand-symbol{width:30px;height:38px;border-radius:5px}.brand-symbol .ui-icon{width:23px;height:23px}.topbar .nav-item{padding:8px;min-height:44px;flex-direction:row}.topbar .nav-item .ui-icon{width:19px;height:19px}.app-menu summary{min-height:44px;padding:8px 10px}.game-layout{padding:0 8px;margin-top:10px}.map-card{border-radius:10px}.map-toolbar{padding:4px 7px;height:48px}.map-label{letter-spacing:.4px;font-size:7px}.board-viewport{aspect-ratio:1;max-height:none}.board-canvas{padding:12px}.board-3d.angled-view{transform:none}.tile:before{height:.8cqw}.tile .tile-content{padding:1.1cqw .15cqw .4cqw}.board-caption{padding:9px 10px}.action-dock{border-radius:12px 12px 0 0}.roll-button{min-width:0;min-height:48px;border-width:1px;padding:8px 10px;gap:8px}.roll-button strong{font-size:14px}.roll-button small{font-size:9px}.end-button{min-width:0;padding:8px;font-size:9px}.mobile-tabs button[aria-current="page"]{color:#86d0ff;background:#16416b}.property-drawer .property-hero{margin:0;height:95px}.right-rail .property-content{padding:18px}.player-row .avatar{width:43px;height:48px}.player-info span{font-size:15px}.app-shell{background-position:center top;background-size:auto 100dvh;background-repeat:no-repeat;background-color:#0c1622}}
@media(prefers-reduced-motion:reduce){.board-3d{transition:none}}
@media(min-width:1200px){.stage-toolbar{display:none}.board-viewport{height:clamp(400px,calc(100dvh - 310px),820px);max-height:none;aspect-ratio:auto}.board-caption{min-height:34px}.game-layout{margin-top:18px}}
.property-scene{display:block;width:calc(100% - 16px);height:100px;object-fit:cover;margin:8px;border:1px solid #c2ced9;border-radius:2px}
@media(max-width:700px){.property-scene{height:115px}}
.property-hero{height:54px;justify-content:center;text-align:center;padding:9px 12px}.property-hero small{display:none}.property-hero span{margin:0;text-transform:uppercase;font-size:16px;line-height:1.2}.property-hero #propertyGraphic{display:none}
.property-drawer .property-hero{height:58px;padding:10px 16px}.property-drawer .property-hero span{font-size:18px}
/* The overview belongs to this device's player even while an opponent rolls. */
.turn-balance>span{white-space:normal;line-height:1.5;max-width:170px}
.turn-banner #landingMessage:not(:empty){font-size:10px;line-height:1.6;overflow-wrap:anywhere}
