.game-view{position:fixed;inset:0;z-index:30;display:grid;grid-template-columns:1fr minmax(340px,760px);visibility:hidden}
.game-view.open{visibility:visible}.view-backdrop{background:#030405c9;opacity:0;transition:.25s}.open .view-backdrop{opacity:1}
.view-sheet{background:#0c1016;border-left:1px solid var(--line);padding:34px;overflow:auto;transform:translateX(100%);transition:.3s ease;box-shadow:-30px 0 80px #0008}
.game-view.open .view-sheet{visibility:visible;transform:none}.view-sheet>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}
.view-sheet h2{font:700 2.4rem "Barlow Condensed";text-transform:uppercase;margin:3px 0}.close-view{border:1px solid var(--line);background:#151a22;color:#ddd;font-size:1.8rem;width:42px;height:42px;cursor:pointer}
.view-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.view-card{background:var(--panel);border:1px solid var(--line);padding:20px;position:relative}
.view-card h3{font:600 1.25rem "Barlow Condensed";margin:4px 0 7px}.view-card p{color:var(--muted);font-size:.76rem;line-height:1.55;margin:0 0 16px}
.view-card .meta{display:flex;justify-content:space-between;color:#aeb4bd;font-size:.68rem;border-top:1px solid var(--line);padding-top:12px}.view-card button{width:100%;margin-top:14px;padding:11px;background:#201d17;border:1px solid #66593c;color:var(--gold);font-weight:700;cursor:pointer}.view-card button:disabled,.view-card [aria-busy="true"]{cursor:progress}
.view-card button:hover{background:var(--gold);color:#090a0c}.district{min-height:155px;background:linear-gradient(145deg,#151a22,#0d1117)}.district:after{content:attr(data-code);position:absolute;right:15px;top:8px;font:700 3rem "Barlow Condensed";color:#ffffff08}
.opponent{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px}.opponent .avatar{border-color:#6d3034}.opponent strong,.item strong{font:600 1.05rem "Barlow Condensed"}
.risk-low{color:#6fc88a}.risk-mid{color:#e3ba64}.risk-high{color:#e66d72}.item{display:grid;grid-template-columns:52px 1fr;gap:13px;align-items:center}.item-icon{width:50px;height:50px;display:grid;place-items:center;background:#1d222a;border:1px solid #303744;font-size:1.35rem}
.inventory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gang-banner{padding:28px;background:linear-gradient(125deg,#2a2216,#11151b 65%);border:1px solid #52482f;margin-bottom:16px}.gang-banner h3{font:700 2rem "Barlow Condensed";margin:7px 0}
.item.equipped{border-color:#66583a;box-shadow:inset 0 0 0 1px #d6b36a26}.item button:disabled{background:#29271f;color:#d6b36a;border-color:#66583a;cursor:default}
.auction-card.winning{border-color:#5c5136}.auction-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.7rem}.auction-price{display:flex;align-items:end;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.auction-price small{color:var(--muted);font-size:.6rem}.auction-price strong{font:700 1.5rem "Barlow Condensed"}.bid-form{display:grid;grid-template-columns:1fr auto;gap:8px}.bid-form input{min-width:0;background:#0a0e13;border:1px solid #303743;color:#fff;padding:11px;font:600 .8rem Inter}.bid-form button:disabled{opacity:.45;cursor:default}
.gang-operation .progress-row{margin:22px 0 8px}.gang-numbers{display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem;margin-bottom:18px}.gang-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gang-actions button:disabled{opacity:.45;cursor:default}@media(max-width:560px){.gang-actions{grid-template-columns:1fr}}
.weekly-gang-goal{margin-bottom:14px;border-color:#42625f;background:linear-gradient(135deg,#10201f,#0c1218)}.weekly-gang-goal h3{font-size:1.45rem}.weekly-gang-goal .progress-row{margin:18px 0 8px}.weekly-player-summary .auction-top>span:last-child{color:#91aaa7}.weekly-reward{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--line);color:#73d8ca;font-size:.72rem}.weekly-reward button{width:auto;margin:0}.weekly-reward button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:560px){.weekly-reward{align-items:stretch;flex-direction:column}.weekly-reward button{width:100%}}
.district.current{border-color:#65583a;box-shadow:inset 0 0 0 1px #d6b36a26}.district .meter{margin:12px 0 16px}.district button:disabled{background:#29271f;color:var(--gold);border-color:#65583a;cursor:default}
.progress-row{display:grid;grid-template-columns:110px 1fr 40px;gap:10px;align-items:center;font-size:.7rem;margin:10px 0}.view-list{display:grid;gap:10px}
@media(max-width:760px){.game-view{grid-template-columns:1fr}.view-sheet{padding:22px 16px}.view-grid,.inventory-grid{grid-template-columns:1fr}.opponent{grid-template-columns:40px 1fr}.opponent>span{display:none}.opponent button{grid-column:1/-1}}
.cash-stat{cursor:pointer}.cash-stat:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.ledger-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.ledger-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#2b261a;color:var(--gold)}.ledger-row strong{display:block;font-size:.78rem}.ledger-row small{display:block;color:var(--muted);font-size:.62rem;margin-top:4px}.ledger-amount{font:600 1rem "Barlow Condensed";color:#74c38a}.ledger-amount.negative{color:#e36b70}.empty-ledger{text-align:center;color:var(--muted);padding:40px 0}.mission.running{pointer-events:none;opacity:.65}.mission.running .play{animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px #d6b36a15}}
.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.finance-summary div{background:#11161d;border:1px solid var(--line);padding:16px}.finance-summary small{display:block;color:var(--muted);font-size:.6rem;letter-spacing:.1em}.finance-summary strong{display:block;font:600 1.35rem "Barlow Condensed";margin-top:5px}.business-top{display:flex;justify-content:space-between;gap:15px}.business-status{color:#72c38a;font-size:.65rem;font-weight:700}.claim-ready{border-color:#7c6840!important;background:#292319!important}.bank-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.bank-form input{background:#0b0f14;border:1px solid var(--line);color:#fff;padding:12px;font:600 1rem Inter}.bank-form button{margin:0;width:auto}.income-note{font-size:.65rem;color:var(--muted);margin-top:10px}@media(max-width:520px){.finance-summary{grid-template-columns:1fr}.bank-form{grid-template-columns:1fr}}
.bank-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}.ledger-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.ledger-summary span{padding:10px 12px;background:#0c1016;border:1px solid var(--line);color:var(--muted);font-size:.65rem}.ledger-summary strong{display:block;color:#d9dce1;margin-top:4px}@media(max-width:620px){.bank-grid,.ledger-summary{grid-template-columns:1fr}}
.profile-onboarding{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 24px;padding:18px;border:1px solid #42625f;background:linear-gradient(125deg,#132220,#0d1319)}.profile-onboarding small{display:block;color:#72d8ca;font-size:.6rem;font-weight:800;letter-spacing:.12em}.profile-onboarding strong{display:block;margin-top:5px;font:600 1.1rem "Barlow Condensed"}.profile-onboarding p{margin:5px 0 0;color:var(--muted);font-size:.72rem;line-height:1.5}.profile-onboarding button{flex:none;margin:0;width:auto;border-color:#b38e4f;background:#201d17;color:var(--gold)}.profile-onboarding button:focus-visible{outline:2px solid #71ded1;outline-offset:3px}@media(max-width:560px){.profile-onboarding{align-items:stretch;flex-direction:column}.profile-onboarding button{width:100%}}
.data-state{display:flex;align-items:flex-start;gap:16px;max-width:620px;margin:18px auto;padding:25px;border:1px solid #365d59;background:linear-gradient(135deg,#10201f,#0c1218)}.data-state>span{display:grid;flex:none;width:42px;height:42px;place-items:center;border:1px solid #63d9c9;color:#6ce0d0;font:700 1.4rem "Barlow Condensed"}.data-state small{display:block;color:#73d8ca;font-size:.6rem;font-weight:800;letter-spacing:.13em}.data-state h3{margin:5px 0 7px;font:600 1.35rem "Barlow Condensed"}.data-state p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.6}.data-state--error{border-color:#76504b;background:linear-gradient(135deg,#261817,#101216)}.data-state--error>span{border-color:#d68478;color:#ef9d8f}.data-state--error small{color:#e79b90}.data-state button{width:auto;margin:16px 0 0;border-color:#b38e4f;background:#201d17;color:var(--gold)}.data-state button:focus-visible{outline:2px solid #71ded1;outline-offset:3px}@media(max-width:560px){.data-state{padding:20px}.data-state--error button{width:100%}}
.data-state--loading>span{animation:state-pulse 1.1s ease-in-out infinite}@keyframes state-pulse{50%{opacity:.35;transform:scale(.88)}}@media(prefers-reduced-motion:reduce){.data-state--loading>span{animation:none}}
.player-onboarding{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;visibility:hidden}.player-onboarding.open{visibility:visible}.onboarding-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,#1c403866,transparent 45%),#020507e8;opacity:0;transition:.25s}.player-onboarding.open .onboarding-backdrop{opacity:1}.onboarding-dialog{position:relative;width:min(100%,620px);padding:32px;border:1px solid #42625f;background:linear-gradient(145deg,#111c20,#080d12 65%);box-shadow:0 30px 100px #000c,0 0 0 1px #68d9cc1c;transform:translateY(18px) scale(.98);opacity:0;transition:.25s}.player-onboarding.open .onboarding-dialog{transform:none;opacity:1}.onboarding-topline{display:flex;justify-content:space-between;gap:12px;color:#91aaa7;font-size:.61rem;font-weight:800;letter-spacing:.14em}.onboarding-signal{color:#62d8c8}.onboarding-emblem{width:58px;height:58px;margin:28px 0 18px;display:grid;place-items:center;border:1px solid #69d9ca;background:linear-gradient(145deg,#12312e,#081313);color:#d9b66a;font:700 1.8rem "Barlow Condensed";box-shadow:0 0 28px #54d5c52e}.onboarding-dialog h2{max-width:520px;margin:7px 0 12px;font:700 clamp(2rem,5vw,3rem)/.95 "Barlow Condensed";text-transform:uppercase;letter-spacing:.015em}.onboarding-step>p:last-child{max-width:550px;margin:0;color:#aab8b8;font-size:.88rem;line-height:1.7}.onboarding-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.onboarding-actions button{min-height:44px;padding:0 17px;border:1px solid #3c5454;background:#101920;color:#dce9e7;font-weight:800;cursor:pointer}.onboarding-actions .onboarding-next{border-color:#b38e4f;background:linear-gradient(135deg,#d6b369,#9d7436);color:#101010}.onboarding-actions button:hover{filter:brightness(1.12)}.onboarding-actions button:focus-visible{outline:2px solid #71ded1;outline-offset:3px}.onboarding-note{margin:18px 0 0;color:#75898a;font-size:.65rem}@media(max-width:560px){.player-onboarding{align-items:end;padding:12px}.onboarding-dialog{padding:24px 20px}.onboarding-actions{flex-direction:column-reverse}.onboarding-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.onboarding-backdrop,.onboarding-dialog{transition:none}}

/* Mobile modal sizing: keep controls and content inside the usable viewport. */
.view-sheet{overscroll-behavior:contain}.close-view{min-width:44px;min-height:44px;touch-action:manipulation}
@media(max-width:760px){.game-view{grid-template-rows:1fr}.view-backdrop,.view-sheet{grid-area:1/1}.view-sheet{padding:20px 14px calc(24px + env(safe-area-inset-bottom))}.view-sheet>header{gap:12px;padding-bottom:16px;margin-bottom:18px}.view-sheet h2{font-size:clamp(1.85rem,9vw,2.4rem);min-width:0}}
