:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18382e;background:#ebece3;font-synthesis:none;font-weight:450}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a.button{min-height:48px;border:0;border-radius:13px;padding:13px 16px;font-weight:750;font-size:13px;cursor:pointer;color:#17392d;text-decoration:none;text-align:center;touch-action:manipulation}button{transition:background .15s,transform .15s}button:active{transform:translateY(1px)}button:disabled{background:#dfe3da!important;color:#7a8578!important;cursor:not-allowed}.primary{background:#cfed89}.secondary{background:#edf1e5}.danger{background:#f8e9e1;color:#984a32}.text-button{background:transparent;padding:9px 5px;color:#4a6a3b}.full{width:100%;display:block;margin-top:12px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.two>*{min-width:0}.two button{font-size:12px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #609e8a;outline-offset:3px}#app{max-width:470px;min-height:100svh;margin:auto;background:#f7f7f0;padding-bottom:115px}.top{display:flex;justify-content:space-between;align-items:center;padding:23px 21px 18px;gap:8px}.brand{font-size:13px;font-weight:850;letter-spacing:2.2px}.brand span{color:#85a55b}.tag{font-size:9px;font-weight:800;letter-spacing:.5px;border:1px solid #d7dfcc;border-radius:30px;padding:6px 9px;white-space:nowrap}.content{padding:0 18px}.hero{background:#183e33;color:#fff;border-radius:25px;padding:25px 23px;overflow:hidden;position:relative}.hero h1{color:#fff}.hero p{color:#c7dacf}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:10px;font-weight:800;line-height:1.6;color:#798d7b}.hero .eyebrow{color:#b8d0b4}h1{font-size:29px;line-height:1.17;letter-spacing:-1px;margin:10px 0 13px;font-weight:790;overflow-wrap:anywhere}h2{font-size:20px;letter-spacing:-.5px;margin:0 0 13px;line-height:1.25;overflow-wrap:anywhere}h3{font-size:16px;line-height:1.35;margin:5px 0 7px;overflow-wrap:anywhere}p{font-size:13px;line-height:1.65;margin:8px 0}.muted{color:#4f624b}.tiny{font-size:11px;line-height:1.55}.notice{font-size:11px;line-height:1.7;color:#657359;border-left:3px solid #bed582;padding:6px 12px;margin:15px 0}.card{display:block;background:#fff;border:1px solid #e0e5d7;border-radius:19px;padding:18px;margin:13px 0}.section-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:17px 0 9px}.section-heading h2{margin:0}.card>.section-heading{margin:0 0 8px}.section-heading>.tiny{max-width:44%;text-align:right}.section-title{margin:26px 0 12px}.view-heading{padding:5px 1px 10px}.view-heading h1{margin:6px 0 10px}.view-heading .notice{margin-top:14px}.profile-avatar{width:62px;height:62px;display:grid;place-items:center;border-radius:19px;background:#cfed8929;border:1px solid #d5ed9e32;font-weight:700;font-size:28px;margin:17px 0}.resource-badge{display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border-radius:14px;background:#e4eecf;color:#234733;font-size:13px;font-weight:750;margin-top:9px;max-width:100%;overflow-wrap:anywhere}.resource-badge>span{display:inline-grid;place-items:center;flex-shrink:0;width:25px;height:25px;border:1px solid #a7c588;border-radius:8px;font-size:12px}.bio-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#3b5040;font-size:14px}.hero .resource-badge{background:#cde99b;color:#234733}.rule-card{display:flex;gap:14px;align-items:flex-start}.rule-card h3{margin-top:0}.rule-icon{display:grid;place-items:center;border-radius:13px;background:#eef3e4;flex-shrink:0;width:40px;height:40px;font-size:24px}.share-card{position:relative}.share-card h3{margin-top:4px}.share-card .qr{display:block;width:154px;height:154px;object-fit:contain;margin:16px auto;background:#fff;border:1px solid #e2e8d8;padding:8px;border-radius:14px}.share-card .link-field{font-size:11px;font-family:ui-monospace,monospace;background:#f5f7f0}.invite-card{background:#f0f6e3;border-color:#c9d9a7}.invite-card h2{margin-top:5px}.company-tile{width:100%;display:flex;align-items:center;gap:13px;text-align:left;color:#18382e;padding:17px}.company-tile>span:nth-child(2){min-width:0;flex:1}.company-tile strong{font-size:15px;display:block;overflow-wrap:anywhere}.company-tile .tiny{display:block;font-weight:450;margin-top:5px}.company-symbol{display:grid;place-items:center;width:45px;height:45px;border-radius:15px;background:#e8efda;font-size:20px;flex-shrink:0}.arrow{font-size:19px;color:#91a08b;flex-shrink:0}.empty-state{padding:30px 22px;text-align:center}.empty-state>div{font-size:39px;color:#a5b78c;margin-bottom:10px}.empty-state p{color:#7b8772}.back-row{margin:0 0 6px}.company-hero .company-resources{margin-top:17px;display:flex;flex-wrap:wrap;gap:5px}.chip{display:inline-flex;align-items:center;gap:4px;background:#eef2e6;border:1px solid #dce4d0;padding:5px 9px;border-radius:10px;font-size:11px;font-weight:650;line-height:1.5;margin:4px 4px 0 0;color:#435b42;max-width:100%;overflow-wrap:anywhere}.company-hero .chip{background:#f0f6dd;color:#385234;border:0;margin:0}.chip.present{color:#3d6432;background:#e7f1d7;border-color:#d1e2ba}.chip.missing{color:#8b6854;background:#f3ece3;border-color:#e2d4c4}.members-list{padding:5px 16px}.member-row{display:flex;align-items:center;gap:11px;text-align:left;padding:13px 0;width:100%;background:transparent;border-radius:0;border-bottom:1px solid #e7ecdf}.member-row:last-child{border:0}.member-row>span:nth-child(2){flex:1;min-width:0}.member-row strong{display:block;font-size:13px;overflow-wrap:anywhere}.member-row .tiny{display:block;font-weight:450;margin-top:4px}.member-avatar{display:grid;place-items:center;width:41px;height:41px;background:#edf1e7;border-radius:50%;font-size:16px;flex-shrink:0}.venue-card.silver{background:linear-gradient(135deg,#f4f6f7,#e0e5e9);border-color:#c5cdd2}.venue-card.gold{background:linear-gradient(135deg,#fff4cf,#eee0af);border-color:#d9c389}.venue-heading{display:flex;align-items:center;gap:10px}.venue-heading>div{flex:1;min-width:0}.venue-symbol{font-size:25px;flex-shrink:0;width:32px}.venue-heading .eyebrow{font-size:9px;letter-spacing:.7px}.venue-heading h3{margin:3px 0}.built-mark{font-size:9px;border:1px solid #a4b29b;background:#f0f6dd90;border-radius:20px;padding:5px 7px;white-space:nowrap}.venue-card p{font-size:12px;color:#586858}.requirement-group{margin-top:14px}.requirement-group>.tiny{display:block;font-size:10px;font-weight:650;color:#697666}.leave-card{margin-top:24px;background:#fcf9f5}.leave-card p{padding:2px 3px}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:470px;display:grid;grid-template-columns:repeat(var(--tabs,2),minmax(0,1fr));padding:9px 11px max(13px,env(safe-area-inset-bottom));background:#fffffff0;backdrop-filter:blur(15px);border-top:1px solid #e1e6d8;z-index:5;gap:5px}.nav button{min-width:0;overflow-wrap:anywhere;background:none;font-size:10px;padding:5px 3px;min-height:55px;color:#4f624b}.nav button span{display:block;font-size:21px;line-height:1.3;margin-bottom:2px}.nav button.active{background:#edf3e2;color:#315839}label{display:block;font-size:12px;font-weight:700;line-height:1.45;margin:17px 0 6px}input,select,textarea{display:block;width:100%;min-width:0;border:1px solid #cfd9c4;border-radius:12px;background:#fafcf6;padding:12px;font-size:16px;color:#25412f;min-height:49px}textarea{resize:vertical;min-height:110px;line-height:1.55}dialog{border:0;border-radius:24px;padding:23px;width:calc(100% - 28px);max-width:430px;max-height:90svh;overflow:auto;color:#18382e;background:#fcfcf7;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#122f2477;backdrop-filter:blur(3px)}dialog h2{font-size:23px;margin-bottom:10px}.modal-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-top:20px}.error-box{padding:13px;border-radius:12px;background:#faebe5;color:#963b28;border:1px solid #e5c4b5;margin:10px 0 16px;font-size:12px;overflow-wrap:anywhere}.error-text{color:#963b28;font-size:12px;white-space:pre-wrap}#shared-toast{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:20;width:min(420px,calc(100% - 28px));padding:14px 17px;border-radius:14px;background:#cfed89;box-shadow:0 4px 25px #163b241c;font-size:12px;font-weight:700;color:#23472c}[hidden]{display:none!important}.loading{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-dot{width:24px;height:24px;border:3px solid #dfe8d0;border-top-color:#5b8050;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-checks{border:0;border-top:1px solid #dfe6d7;margin:21px 0 0;padding:10px 0;min-width:0}.admin-checks legend{font-size:13px;font-weight:800;padding-right:7px}.admin-checks label{display:flex;gap:10px;align-items:center;min-height:47px;margin:0;font-size:12px}.admin-checks input{min-height:22px;width:22px;height:22px;flex-shrink:0;accent-color:#406e3d}.admin-order{display:flex;justify-content:flex-end;gap:7px}.admin-order button{width:48px;font-size:20px;padding:8px}.admin-delete{border-top:1px solid #dfe6d7;padding-top:12px;margin-top:20px}.admin-actions{position:sticky;bottom:86px;z-index:3;padding:12px;background:#f8fbf0f5;border:1px solid #d7e1c7;border-radius:16px;box-shadow:0 4px 24px #183e3314;margin:16px 0}.admin-actions>p{text-align:center;margin:0 0 8px}.admin-actions button{font-size:11px}summary{font-size:13px;font-weight:700;min-height:48px;display:flex;align-items:center;cursor:pointer}code{overflow-wrap:anywhere}@media(max-width:350px){.content{padding:0 12px}.top{padding:20px 16px 15px}.card{padding:16px}.hero{padding:23px 19px}h1{font-size:26px}.venue-heading{gap:6px}.venue-symbol{width:22px;font-size:23px}.built-mark{font-size:8px;padding:4px 6px}.two{gap:6px}.two button{padding:12px 9px}.tag{font-size:8px}.brand{letter-spacing:1.8px}.section-heading>.tiny{font-size:10px}.share-card .link-field{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}button:active{transform:none}}

.sync-note{font-size:10px;color:#4f624b;text-align:right;margin:0 2px 10px;line-height:1.5}

.host-access{text-align:center;margin:25px 0 4px;border-top:1px solid #e2e8d9;padding-top:10px}.host-access button{font-size:11px;color:#839078;min-height:44px}.host-access button:focus-visible{color:#315839}

.company-invite{margin:14px 0;border:1px solid #d8e3c8;border-radius:17px;padding:0 16px;background:#f0f5e7}.company-invite>summary{min-height:54px;font-size:12px;color:#315737}.company-invite>summary::after{content:"+";margin-left:auto;padding-left:10px;font-size:21px;font-weight:500}.company-invite[open]>summary::after{content:"−"}.company-invite>.share-card{border:0;margin:0;padding:0 0 16px;background:transparent}

.demo-banner{margin:0 0 14px;padding:13px 14px;background:#fff0ce;border:1px solid #e6ce94;border-radius:15px;color:#775b2f}.demo-banner p{font-size:11px;line-height:1.65;margin:0 0 9px}.demo-banner button{font-size:11px;min-height:44px;padding:10px 12px;background:#fff9ea;border:1px solid #e4d3ad}

.produces-label{font-size:15px;font-weight:800;margin:17px 0 7px}.hero .produces-label{color:#e5efdc}.hero .produces-label+.resource-badge{margin-top:0;font-size:15px}.production-origins{padding-top:4px;padding-bottom:4px}.production-origins summary{min-height:49px}.production-origins summary::after{content:"+";margin-left:auto;padding-left:10px;font-size:20px;font-weight:500}.production-origins[open] summary::after{content:"−"}.origin-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:12px 0;border-top:1px solid #e2e8da;font-size:12px;line-height:1.5}.origin-row>*{overflow-wrap:anywhere}.origin-row span{color:#697a62}
/* Cooperative companies: invitations, ownership and display-only company income. */
.membership-count{font-size:13px;letter-spacing:0;vertical-align:middle;color:#7c8e71;font-weight:650}.hero .membership-count{color:#c7d9be}.personal-code .player-code{display:block;font-size:29px;letter-spacing:2px;line-height:1.3;color:#234f36;margin:17px 0;overflow-wrap:anywhere}.personal-code .qr{display:block;width:160px;height:160px;object-fit:contain;margin:17px auto;padding:7px;background:white;border:1px solid #dde5d3;border-radius:13px}.inbox-card{border-color:#c8dca8;background:#f7faef}.request-row{border-top:1px solid #dbe5cd;padding:15px 0}.request-row:first-of-type{border-top:0;padding-top:2px}.request-row:last-child{padding-bottom:0}.request-row>strong{font-size:14px;overflow-wrap:anywhere}.request-row .two{margin-top:10px}.owner-requests{background:#eff5e7;border-color:#c4d7ae}.hero-button{background:#ffffff18;color:#e5f0d5;min-height:44px;font-size:11px;padding:9px 12px;margin:0 0 4px}.member-entry{display:flex;align-items:center;gap:6px;border-bottom:1px solid #e7ecdf}.member-entry:last-child{border:0}.member-entry .member-row{border:0;flex:1;min-width:0}.kick-button{font-size:9px;min-height:44px;background:#f8eee6;color:#966145;padding:8px;flex-shrink:0}.owner-label{display:inline-block;background:#e1ecd1;color:#537544;font-size:9px;padding:3px 6px;border-radius:7px;margin-top:5px}.profile-link{display:block;text-align:left;background:transparent;padding:8px 0;min-height:42px;font-size:12px;font-weight:650;color:#426a3c;line-height:1.45;overflow-wrap:anywhere}.origin-row .profile-link:first-child{padding-top:0}.origin-row .profile-link:last-child{padding-bottom:0}.company-finance{background:#f3f6e9;border-color:#d4dfbf}.company-finance h2{margin:6px 0 8px}.company-money{font-size:35px;line-height:1.25;letter-spacing:-1px;font-weight:800;overflow-wrap:anywhere}.company-money small{font-size:11px;font-weight:500;letter-spacing:0}.company-finance>p{font-size:12px}.company-finance>.tiny{font-size:10px}.venue-card .venue-income{font-size:12px;color:#3a5f3e}.demo-sandbox{background:#fff7e7;border-color:#e6d4aa}.demo-sandbox>summary{font-size:12px}.demo-person{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid #eadfca;font-size:11px}.demo-person>span{overflow-wrap:anywhere}.demo-person button{font-size:10px;white-space:nowrap}.company-invite>.full{margin-bottom:12px}.company-invite>.tiny{padding-bottom:10px}
/* Abstract city map, intentionally schematic rather than geographical. */
.world-heading{padding:6px 0 10px}.world-heading h1{margin-bottom:9px}.projector-link{display:inline-block;margin:8px 0}.world-layout{display:grid;gap:18px}.world-main label{margin-top:8px}.city-map{overflow:auto;max-height:65svh;border:1px solid #cad6bc;border-radius:20px;background:#dfe9d4;overscroll-behavior:contain;scrollbar-color:#9bb784 #e4edda;scrollbar-width:thin}.city-grid{display:grid;grid-template-columns:repeat(4,190px);gap:28px;align-items:start;min-width:874px;padding:25px;background:repeating-linear-gradient(90deg,transparent 0,transparent 214px,#f4f6e9 214px,#f4f6e9 222px),repeating-linear-gradient(0deg,#e2ecd7 0,#e2ecd7 210px,#f4f6e9 210px,#f4f6e9 218px)}.city-district{background:#f6f8ec;border:1px solid #b5cba0;border-radius:16px;padding:9px;box-shadow:0 4px 0 #bbcfaa;min-height:180px}.district-name{width:100%;min-height:48px;padding:6px 3px;background:transparent;border-radius:8px;text-align:left;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.district-name>span{color:#8a9b7a}.district-buildings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.map-building{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-height:105px;border:1px solid #b6c2c8;border-radius:11px;padding:8px 4px;color:#3d5155;background:#e4ebee}.map-building.gold{background:#f6e6b6;border-color:#d7bf7c;color:#79602e}.map-building svg{display:block;width:43px;height:43px;fill:#d8e1e7;stroke:currentColor;stroke-width:1.5;flex-shrink:0;filter:drop-shadow(0 3px 0 #b9c7c6)}.map-building.gold svg{fill:#edd299;filter:drop-shadow(0 3px 0 #d7bd7a)}.map-building span{font-size:9px;line-height:1.35;font-weight:750;overflow-wrap:anywhere}.district-score{display:block;font-size:9px;color:#7d8e6b;margin:9px 3px 1px}.empty-district{grid-column:1/-1;min-height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eaf0df;border:1px dashed #bacda4;border-radius:10px;padding:9px;color:#92a57e}.empty-district>span{font-size:26px}.empty-district p{font-size:10px;line-height:1.4;text-align:center;margin:5px 0}.city-empty{grid-column:1/-1;padding:40px 20px;text-align:center;color:#718665}.leaderboard-panel{background:#fff;border:1px solid #dce4d1;border-radius:19px;padding:18px}.leaderboard-panel h2{margin-bottom:7px}.leaderboard{padding:0;margin:13px 0 0;list-style:none}.leaderboard li{border-top:1px solid #e6ebde}.leaderboard li:first-child{border:0}.leaderboard button{display:flex;align-items:center;gap:10px;background:transparent;width:100%;padding:12px 0;border-radius:0;min-height:56px;text-align:left}.rank{display:grid;place-items:center;width:29px;height:29px;font-size:12px;border-radius:9px;background:#eff3e8;color:#7a8b6b;flex-shrink:0}.rank.top-rank{background:#e7efc9;color:#4c6b30}.rank-name{flex:1;min-width:0;font-size:12px;overflow-wrap:anywhere}.leaderboard strong{font-size:19px;font-weight:800;color:#486c3a;min-width:25px;text-align:right}.world-built-list{margin:13px 0}.world-gold{background:#f9edc5;border-color:#e2cd95}.world-built-list+.notice{margin-top:15px}#app.projector-mode{max-width:none;padding-bottom:30px;background:#f0f3e7}.projector-mode .top{padding:25px 35px 18px}.projector-mode .brand{font-size:19px;letter-spacing:3px}.projector-mode .tag{font-size:11px}.projector-mode .content{max-width:1800px;margin:auto;padding:0 32px}.projector-mode .world-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:3px 0 16px}.projector-mode .world-heading h1{font-size:42px}.projector-mode .world-heading p{font-size:15px}.projector-mode .world-layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.projector-mode .city-map{max-height:calc(100svh - 260px);min-height:450px}.projector-mode .city-grid{grid-template-columns:repeat(4,minmax(165px,1fr));min-width:820px;gap:26px}.projector-mode .district-name{font-size:14px}.projector-mode .map-building span{font-size:10px}.projector-mode .leaderboard-panel{position:sticky;top:20px;max-height:calc(100svh - 200px);overflow:auto}.projector-mode .leaderboard button{min-height:61px}.projector-mode .rank-name{font-size:14px}.projector-mode .demo-banner{padding:10px 16px}.projector-mode .demo-banner p{font-size:11px;display:inline;margin-right:14px}.projector-mode .demo-banner button{margin:0}.projector-mode .sync-note{font-size:11px}@media(min-width:1500px){.projector-mode .city-grid{grid-template-columns:repeat(5,minmax(165px,1fr))}}@media(max-width:900px){.projector-mode .content{padding:0 18px}.projector-mode .world-heading{display:block}.projector-mode .world-heading h1{font-size:31px}.projector-mode .world-layout{grid-template-columns:1fr}.projector-mode .leaderboard-panel{position:static;max-height:none}.projector-mode .city-map{min-height:0;max-height:65svh}.projector-mode .city-grid{min-width:874px;grid-template-columns:repeat(4,190px)}}@media(max-width:350px){.personal-code .player-code{font-size:24px}.kick-button{font-size:8px;padding:7px}.member-entry{gap:3px}.member-avatar{width:35px;height:35px}.company-money{font-size:30px}.world-heading h1{font-size:26px}.map-building span{font-size:9px}}
.pending-operation{background:#fff8e7;border:2px solid #d6af60}.pending-operation h2{font-size:18px}.pending-operation .primary{background:#f4dfa3}.recovery-secret{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;letter-spacing:.1px}

.player-directory-card .bio-text{overflow-wrap:anywhere;white-space:pre-wrap}.invite-player-card{border:2px solid var(--accent,#c4db7c)}

.resource-profile,.resource-profile .eyebrow,.resource-profile p,.resource-profile .produces-label{color:#14251d}.resource-profile .profile-avatar{background:#ffffff90;color:#14251d}.resource-profile .resource-badge{background:#ffffffb8;color:#14251d}.resource-profile .bio-text{white-space:pre-wrap;overflow-wrap:anywhere}.profile-rules p{font-size:13px;line-height:1.6}.profile-rules summary::after{content:'＋';margin-left:auto}.profile-rules[open] summary::after{content:'−'}

.personal-balance{margin-top:22px;border-top:1px solid #14251d25;padding-top:18px}.personal-balance>span{font-size:13px;font-weight:700}.personal-balance>strong{display:block;font-size:clamp(30px,9vw,48px);letter-spacing:-1.2px;overflow-wrap:anywhere}.personal-balance>p{font-size:12px;margin:7px 0 0}.map-host-toolbar{display:flex;justify-content:flex-end;padding:8px 20px}.city-screen .content{max-width:none;width:100%;padding:0 18px}.city-screen{max-width:none!important;width:100%}.city-screen .top{max-width:none}.city-screen .nav{max-width:650px}

.resource-profile h1{color:#14251d}

.resource-profile .text-button{color:#25482e}

/* Host player management */
.admin-player-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid #d8d8ce}.admin-player-row>div{min-width:0;overflow-wrap:anywhere}.admin-player-row strong,.admin-player-row .tiny{display:block}.admin-player-row button{flex-shrink:0}.admin-player-list{max-height:62vh;overflow:auto}.admin-catalog>summary{font-size:20px;font-weight:700;cursor:pointer;padding:20px 0}.confirm-player{display:flex;align-items:flex-start;gap:10px;margin:20px 0}.confirm-player input{width:20px;min-width:20px;height:20px;margin:2px 0}.return-ticket{display:block;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}#return-request{max-width:100%;font-size:13px}@media(max-width:360px){.admin-player-row{align-items:stretch;flex-direction:column}.admin-player-row button{width:100%}}

#shared-modal{overflow-wrap:anywhere}
.company-emblem{width:48px;height:48px;flex:none;border-radius:14px;padding:4px}.company-hero>.company-emblem{width:64px;height:64px}.company-summary-money{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-variant-numeric:tabular-nums;font-size:15px}.company-hero .company-summary-money{align-items:center}.company-hero .company-summary-money strong{font-size:32px}.venue-icon{width:30px;height:30px;vertical-align:middle;margin-right:10px;flex:none}.player-directory-card .muted,.player-directory-card .bio-text{color:#294d42}.resource-badge{border:0!important}.company-tile>span:nth-child(2){min-width:0}
.member-row>span,.member-row .tiny{min-width:0;overflow-wrap:anywhere;white-space:normal}.member-avatar{flex-shrink:0}

.player-compact-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.player-compact-heading>div{min-width:0;flex:1}.player-display-name{text-transform:uppercase;font-size:21px;line-height:1.25;overflow-wrap:anywhere;margin:0}.player-directory-card .resource-badge{font-size:12px;margin-top:8px;padding:6px 8px}.player-bio-toggle{width:44px;height:44px;min-height:44px;flex:none;padding:0;border:1px solid #183d3640;background:#ffffff60;font-size:27px;line-height:1}.player-directory-card .bio-text{border-top:1px solid #183d3625;padding-top:16px;margin-bottom:0}.resource-progress-count{font-size:12px;font-weight:750}.resource-progress-bar{display:flex;gap:3px;height:13px;margin:9px 0;border-radius:6px;overflow:hidden;background:#ffffff70}.resource-progress-segment{flex:1;min-width:0;background:#ffffff50;border:1px solid #67796860}.resource-progress-segment.filled{background:#538c48;border-color:#43783a}.resource-progress-labels{display:flex;flex-wrap:wrap;gap:5px}.resource-progress-labels .chip{margin:0}.player-bio-toggle:focus-visible{outline:3px solid #285a39;outline-offset:3px}

.avatar-frame{position:relative;overflow:hidden;flex-shrink:0}.avatar-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.profile-avatar{display:grid}.photo-editor{padding-top:8px}.photo-editor input[type=file]{font-size:12px}.photo-editor img{border-radius:14px;object-fit:cover;display:block;margin:12px 0}.game-rule-steps{list-style:none;padding:0;counter-reset:rules}.game-rule-steps li{display:flex;align-items:flex-start;gap:12px;padding:20px 0;border-bottom:1px solid #dfe6d7}.game-rule-steps li>div{min-width:0}.rule-illustration{width:44px;height:44px;flex:none}.rule-step-number{font-size:10px;font-weight:800;letter-spacing:.04em;color:#406346}.game-rule-steps h3{margin:4px 0 9px;font-size:16px}.game-rule-steps p,.rules-note p{font-size:13px;line-height:1.65;margin:0}.rules-note{padding:16px;background:#edf3df;border-radius:14px;margin:16px 0}.rules-note strong{display:block;margin-bottom:8px}.player-compact-heading{gap:9px}.player-compact-heading .member-avatar{width:38px;height:38px}.player-display-name{font-size:19px}
/* One native modal outside the live-rendered app, preserving focus on refresh. */
.photo-open{border:0;padding:0;cursor:zoom-in;flex-shrink:0;color:inherit;min-height:0}.photo-open:focus-visible{outline:3px solid #285d49;outline-offset:4px}.member-entry>.avatar-frame{flex-shrink:0;align-self:center}.member-entry>.member-row{flex:1;min-width:0}
.photo-viewer{position:fixed;inset:0;margin:auto;padding:0;border:0;background:transparent;color:#183d36;width:min(92vw,480px);max-height:92dvh;overflow:auto}.photo-viewer::backdrop{background:rgb(12 27 25 / .82)}.photo-viewer-panel{position:relative;background:#f8f8ef;border-radius:24px;padding:52px 24px 20px;text-align:center}.photo-viewer-panel h2{font-size:20px;overflow-wrap:anywhere;margin:0 0 16px}.photo-viewer-panel>img{display:block;width:min(100%,320px);height:auto;aspect-ratio:1;object-fit:contain;margin:auto;border-radius:12px}.photo-viewer-panel>img[hidden]{display:none}.photo-viewer-close{position:absolute;right:10px;top:8px;width:44px;height:44px;padding:0;font-size:28px;background:transparent;border:0}.photo-viewer [role=status]{font-size:14px}.photo-viewer-panel .tiny{margin-top:16px}
.info-button{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:44px;height:44px;min-width:44px;padding:0;border:0;background:transparent;color:#315b42;flex-shrink:0}.info-button>span{display:grid;place-items:center;border:1.5px solid currentColor;border-radius:50%;width:19px;height:19px;font:700 13px/1 Georgia,serif}.info-button:focus-visible{outline:2px solid #315b42;outline-offset:1px}.info-popover{position:fixed;inset:auto;margin:0;width:min(320px,calc(100vw - 24px));box-sizing:border-box;overflow:auto;padding:18px;border:1px solid #bdccb5;border-radius:14px;background:#fafbf3;color:#183d36;box-shadow:0 8px 28px rgb(18 40 31 / .18);z-index:10000}.info-popover h2{font-size:18px;line-height:1.3;margin:0 0 10px;overflow-wrap:anywhere}.info-popover p{font-size:14px;line-height:1.55;margin:0 0 14px;overflow-wrap:anywhere}.info-popover button{min-height:44px}.info-popover::backdrop{background:transparent;backdrop-filter:none}
.label-with-info{display:flex;align-items:center;gap:4px;margin-top:16px}.label-with-info label{margin:0}.hero:not(.resource-profile) .info-button{color:inherit}h1>.info-button,h2>.info-button,h3>.info-button{vertical-align:middle;margin-left:4px}
.photo-viewer{width:min(94vw,820px)}.photo-viewer-panel>img{width:auto;height:auto;max-width:100%;max-height:calc(90dvh - 190px);aspect-ratio:auto;object-fit:contain}.photo-editor .prepared-photo{width:auto;height:auto;max-width:100%;max-height:240px;object-fit:contain}
.profile-card .profile-identity{display:flex;align-items:center;gap:18px;text-align:left}.profile-identity>div{min-width:0;flex:1}.profile-card .profile-avatar{width:104px;height:104px;margin:0;border-radius:24px;font-size:38px;place-items:center}.profile-card h1{font-size:27px;line-height:1.16;margin:0 0 8px;overflow-wrap:anywhere}.profile-card .text-button{padding:8px 0;min-height:44px;text-align:left}.profile-resource{display:flex;align-items:center;gap:16px;margin:26px 0 22px}.profile-resource-symbol{display:grid;place-items:center;width:70px;height:70px;flex:none;background:#ffffff70;border-radius:16px}.resource-icon{width:48px;height:48px}.profile-resource>div:last-child{min-width:0}.profile-card .produces-label{font-size:14px;margin:0 0 3px}.profile-resource-name{display:flex;align-items:center;gap:4px}.profile-resource-name strong{font-size:24px;line-height:1.15;overflow-wrap:anywhere}.profile-account{border-top:1px solid #18382e30;padding-top:12px;text-align:left;font-variant-numeric:tabular-nums}.profile-account-total>span,.profile-account-details>div>span{display:flex;align-items:center;font-size:13px;line-height:1.3}.profile-account-total>strong{display:block;font-size:34px;line-height:1.15;overflow-wrap:anywhere}.profile-account-details{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}.profile-account-details>div{min-width:0}.profile-account-details strong{display:block;font-size:23px;line-height:1.35;overflow-wrap:anywhere}.profile-account small{font-size:13px;font-weight:500}.profile-account .info-button{flex:none}.profile-card .info-button{color:#18382e}.profile-account-details .text-button{font-size:12px}.profile-card .avatar-image{object-fit:cover}.profile-card .info-button:focus-visible,.profile-card button:focus-visible{outline:3px solid #18382e;outline-offset:3px}@media(max-width:350px){.profile-card .profile-identity{gap:12px}.profile-card .profile-avatar{width:88px;height:88px;border-radius:20px}.profile-card h1{font-size:23px}.profile-resource-symbol{width:60px;height:60px}.profile-resource-name strong{font-size:22px}.profile-account-total>strong{font-size:30px}.profile-account-details{gap:10px}.profile-account-details strong{font-size:20px}}
.game-statistics{width:100%;margin-top:24px;overflow-wrap:anywhere}.statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-item{padding:14px;background:var(--paper,#f5f4ec);border-radius:12px}.stat-item dt{font-size:13px}.stat-item dd{margin:8px 0 0;font-size:24px;font-weight:700}.statistics-table{overflow:auto}.statistics-table table{width:100%;border-collapse:collapse}.statistics-table th,.statistics-table td{text-align:left;padding:10px;border-bottom:1px solid #d9dfd3}.game-statistics details{margin-top:16px}.game-statistics summary{cursor:pointer;font-weight:700}
#language-control{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:4px 16px;background:#f5f4ec;color:#183d36;font:500 12px system-ui}#language-control select{width:auto;min-height:44px;margin:0;padding:6px 10px;font-size:14px}#language-control label{margin:0}

/* Player finale: a shared city story, not a technical dashboard. */
.player-finale{--finale-ink:#183e33;--finale-paper:#faf9f1;--finale-gold:#795821;--finale-line:#d9dfcf;color:var(--finale-ink);width:100%;max-width:1320px;margin:0 auto;padding-bottom:28px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;caret-color:var(--finale-ink)}
.player-finale ::selection{color:#17392d;background:#e3d6a4}.player-finale :focus-visible{outline:3px solid #587f38;outline-offset:4px}.player-finale h1,.player-finale h2,.player-finale h3{color:inherit;text-wrap:balance}.player-finale h2{font-size:clamp(24px,3.3vw,36px);line-height:1.15;letter-spacing:-.025em;margin:0 0 12px}.player-finale p{line-height:1.65}.player-finale .finale-section-copy{max-width:66ch;margin:0 0 24px;color:#49624e;font-size:15px}.finale-intro{padding:clamp(28px,5vw,64px) clamp(20px,4vw,52px) 30px;border-radius:16px;background:#193f34;color:#faf9ef}.finale-intro h1{font-size:clamp(36px,6.8vw,80px);line-height:1.02;letter-spacing:-.035em;max-width:12ch;margin:0 0 24px}.finale-intro .finale-intro-copy{max-width:48ch;font-size:clamp(16px,2vw,21px);color:#e1e8cf;margin:0 0 22px}.finale-finished{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:#dfe7d3;margin:0}.finale-finished .finale-icon{width:20px;height:20px}.finale-totals{display:grid;grid-template-columns:1fr 1fr 1.7fr;gap:20px;margin:30px 0 0;padding-top:24px;border-top:1px solid #dfe7d345}.finale-totals>div,.finale-personal-numbers>div{min-width:0}.finale-totals dt{font-size:13px;color:#e1e8cf}.finale-totals dd{font-size:clamp(26px,4.2vw,48px);font-weight:750;letter-spacing:-.025em;margin:7px 0 0;line-height:1.1}.finale-city{margin-top:22px;overflow:hidden;border-radius:16px}.finale-city .city-map-shell,.finale-city .city-map-card{margin:0}.finale-achievements,.finale-results{margin:48px 0 0}.finale-awards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,225px),1fr));gap:14px}.finale-award{min-width:0;border-radius:16px;background:#eee9d6;padding:24px 22px;color:#3b3826}.finale-icon{width:28px;height:28px;flex:none}.finale-award>.finale-icon{width:32px;height:32px;color:var(--finale-gold)}.finale-award h3{font-size:18px;line-height:1.3;min-height:2.6em;margin:18px 0 8px;font-weight:650}.finale-award-value{display:block;font-size:31px;letter-spacing:-.025em;margin-bottom:20px;line-height:1.2}.finale-leaders{list-style:none;margin:0;padding:0;display:grid;gap:16px}.finale-leaders li{min-width:0}.finale-leaders .finale-person strong{font-size:15px}.finale-person{display:flex;gap:12px;align-items:center;min-width:0;text-align:left}.finale-person>span:last-child{min-width:0}.finale-person strong{display:block;font-size:16px;line-height:1.35;font-weight:650}.finale-person .member-avatar,.finale-avatar{display:grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;border-radius:14px;flex:none;background:#e0e8d2;color:#244d39;font-size:21px;font-weight:650}.finale-you{display:block;font-size:11px;line-height:1.4;margin-top:3px;color:#3d603b;font-weight:650}.finale-personal{margin-top:44px;padding:clamp(22px,4vw,38px);background:#e5ecd5;border-radius:16px}.finale-personal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.finale-personal-heading>div{min-width:0}.finale-personal-heading p{margin:0;color:#3c573c;max-width:60ch}.finale-personal-heading>.member-avatar,.finale-personal-heading>.finale-avatar{width:88px;height:88px;min-width:88px;border-radius:16px;font-size:36px}.finale-personal-numbers{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:24px;margin:28px 0 24px;padding:24px 0;border-top:1px solid #bdcbaa;border-bottom:1px solid #bdcbaa}.finale-personal-numbers dt{font-size:13px;line-height:1.4;max-width:20ch}.finale-personal-numbers dd{margin:8px 0 0;font-size:clamp(24px,3vw,34px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.finale-personal-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.finale-personal-details summary{font-size:13px;line-height:1.4;display:list-item;margin-left:16px;padding:10px 0;min-height:48px}.finale-personal-details ul{padding-left:18px;margin:5px 0 10px;font-size:13px;line-height:1.65}.finale-personal-details p{font-size:13px}.finale-controls{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;max-width:760px}.finale-controls label{margin:0 0 7px}.finale-controls input,.finale-controls select{background:#fcfcf6;border-color:#bbc9ad;color:#183e33}.finale-controls input::placeholder{color:#61715c;opacity:1}.finale-count{font-size:12px;color:#4a6147;margin:16px 0 10px}.finale-desktop-table{overflow:auto;scrollbar-color:#91a47c #edf0e5}.finale-desktop-table table{width:100%;border-collapse:collapse;text-align:left}.finale-desktop-table th,.finale-desktop-table td{padding:18px 12px;border-bottom:1px solid var(--finale-line);vertical-align:middle}.finale-desktop-table thead th{font-size:11px;line-height:1.5;color:#4a6045;font-weight:650;padding-top:14px;padding-bottom:14px;max-width:140px}.finale-desktop-table tbody th{min-width:215px}.finale-desktop-table td{font-size:16px}.finale-desktop-table .finale-earned{font-weight:700;white-space:nowrap}.finale-desktop-table .finale-rank{font-size:12px;color:#52644d;width:40px}.finale-self{background:#e8eedc}.finale-desktop-table tbody tr:hover{background:#edf0e4}.finale-desktop-table tbody tr.finale-self:hover{background:#dfe9cb}.finale-badges{display:flex;gap:4px;flex-wrap:wrap;min-width:44px}.finale-badge{display:inline-grid;place-items:center;width:30px;height:30px;color:#6c501d;background:#eee5c8;border-radius:8px}.finale-badge .finale-icon{width:20px;height:20px}.finale-mobile-list{display:none}.finale-empty{padding:24px;background:#eff1e6;border-radius:12px;color:#486143}.finale-notes{margin-top:44px;border-top:1px solid #cbd4c0;padding-top:24px;color:#496148;max-width:80ch}.player-finale .finale-notes h2{font-size:18px;letter-spacing:0}.finale-notes p{font-size:12px;margin:10px 0}.finale-history-note{font-weight:600}.finale-sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(min-width:1000px){.finale-intro h1{max-width:12ch}.finale-awards-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.finale-award{padding:22px 18px}.finale-award h3{font-size:16px;min-height:3.9em}.finale-award-value{font-size:28px}.finale-leaders .finale-person{align-items:flex-start;flex-direction:column}.finale-leaders .member-avatar{width:56px;height:56px}.finale-leaders .finale-person strong{font-size:16px}}
@media(max-width:760px){.finale-intro{padding:30px 24px 24px}.finale-totals{grid-template-columns:1fr 1fr;gap:22px 16px}.finale-totals>div:last-child{grid-column:1/-1}.finale-totals>div:last-child dd{font-size:38px}.finale-totals dd{font-size:32px}.finale-awards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finale-award{padding:20px 16px}.finale-award h3{font-size:16px;min-height:3.9em}.finale-award-value{font-size:26px}.finale-leaders .finale-person{align-items:flex-start;flex-direction:column;gap:8px}.finale-personal-numbers{grid-template-columns:1fr 1fr;gap:24px 16px}.finale-personal-details{grid-template-columns:1fr;gap:0}.finale-personal-details details+details{border-top:1px solid #c8d2b7}.finale-controls{grid-template-columns:1fr;gap:16px}.finale-desktop-table{display:none}.finale-mobile-list{display:block}.finale-mobile-player{padding:0 12px;border-bottom:1px solid var(--finale-line)}.finale-mobile-player>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;min-height:86px;list-style:none}.finale-mobile-player>summary::-webkit-details-marker{display:none}.finale-mobile-player>summary:after{content:'+';font-size:22px;font-weight:400;color:#52684a;flex:none}.finale-mobile-player[open]>summary:after{content:'−'}.finale-mobile-player .finale-person{gap:9px;flex:1}.finale-mobile-player .finale-person strong{font-size:14px}.finale-mobile-player .member-avatar,.finale-mobile-player .finale-avatar{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:12px}.finale-mobile-earned{text-align:right;max-width:44%;min-width:0;flex:none}.finale-mobile-earned>strong{font-size:16px;line-height:1.4;display:block}.finale-mobile-earned>span{display:block;max-width:15ch;font-size:10px;line-height:1.45;font-weight:450;color:#486043;margin-top:5px}.finale-row-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--finale-line);padding:16px 0;margin:0}.finale-row-metrics dt{font-size:11px;line-height:1.45}.finale-row-metrics dd{font-size:23px;font-weight:700;margin:7px 0 0}.finale-row-awards{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;padding-bottom:20px}.finale-row-awards>span:first-child{width:100%}.finale-personal-heading>.member-avatar,.finale-personal-heading>.finale-avatar{width:64px;height:64px;min-width:64px;font-size:28px}.finale-personal-heading{align-items:flex-start;gap:14px}.finale-achievements,.finale-results{margin-top:36px}}
@media(max-width:380px){.finale-intro{padding:25px 18px}.finale-intro h1{font-size:35px}.finale-totals>div:last-child dd{font-size:32px}.finale-awards-grid{grid-template-columns:1fr}.finale-award h3{min-height:0}.finale-leaders .finale-person{flex-direction:row;align-items:center}.finale-personal{padding:22px 16px}.finale-personal-heading>.member-avatar,.finale-personal-heading>.finale-avatar{width:52px;height:52px;min-width:52px}.finale-mobile-player{padding:0 6px}.finale-mobile-player .finale-person{gap:7px}.finale-mobile-earned>strong{font-size:14px}.finale-mobile-player>summary{gap:7px}}
@media(prefers-reduced-motion:no-preference){.finale-intro{animation:finale-arrival .65s cubic-bezier(.16,1,.3,1) both}@keyframes finale-arrival{from{transform:translateY(8px);opacity:.85}to{transform:translateY(0);opacity:1}}}

.finale-screen{max-width:none!important;width:100%}.finale-screen .content{max-width:1368px;margin:0 auto;padding:0 24px}.finale-screen .top{max-width:1368px;margin:auto}.finale-screen .nav{max-width:600px}.finale-screen .map-host-toolbar{padding:8px 0 18px}.finale-city .illustrated-city{margin:0}.finale-city .city-heading h1{font-size:28px}.finale-city .city-stage{min-height:420px;max-height:72svh}.finale-screen .finish-panel p{max-width:65ch}@media(max-width:600px){.finale-screen .content{padding:0 14px}.finale-city .city-stage{min-height:330px}.finale-city .city-heading h1{font-size:24px}}
/* Entry: one quiet language control and a readable, focused form. */
#language-control{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:#e8edde;color:#183d36}
#language-control button{min-width:44px;min-height:38px;padding:7px 10px;border-radius:9px;background:transparent;font-size:12px;line-height:1.2;color:#38563e}
#language-control button[aria-pressed="true"]{background:#183e33;color:#fff}
#language-control button:hover:not([aria-pressed="true"]){background:#dae4d0}
.entry-screen .top{padding-bottom:22px}.entry-screen .content{padding-inline:22px}
.entry-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px;border-radius:16px}
.entry-hero h1{font-size:clamp(27px,6vw,34px);letter-spacing:-.035em;margin:0;text-wrap:balance}
.entry-hero .info-button{flex:none}.entry-card{padding:22px;border-radius:16px;margin-top:18px}
.entry-card .label-with-info{margin-top:20px;min-height:44px}.entry-card .label-with-info:first-child{margin-top:0}
.entry-card input,.entry-card textarea,.entry-card select{font-size:16px;caret-color:#315b42}
.entry-card textarea{min-height:116px;resize:vertical}.entry-card select{max-width:100%;text-overflow:ellipsis}
.entry-suggest{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px}.entry-suggest .text-button{text-align:left;font-size:12px}
.entry-submit{display:flex;align-items:center;gap:6px;margin-top:22px}.entry-submit .full{margin:0;flex:1}
.entry-card #suggestion-reason:empty{display:none}.entry-card .photo-editor{margin-top:20px}
.entry-card ::selection{background:#cfed89;color:#183e33}
@media(min-width:720px){#app.entry-screen{max-width:600px}.entry-screen .top{padding:28px 32px 24px}.entry-screen .content{padding-inline:32px}.entry-card{padding:26px 30px}.entry-hero{padding:30px}.entry-screen .nav{max-width:600px}}
@media(max-width:350px){.entry-screen .content{padding-inline:12px}.entry-card{padding:16px}.entry-hero{padding:20px}.entry-suggest{gap:2px}}
/* First steps use the existing dialog surface, without changing the page beneath. */
#entry-onboarding{width:min(540px,calc(100vw - 28px));max-width:540px;max-height:calc(100svh - 32px);padding:26px;border:0;border-radius:16px;background:#fafbf3;color:#18382e;overflow:auto;overscroll-behavior:contain;box-shadow:0 16px 56px rgb(18 40 31 / .22)}
#entry-onboarding::backdrop{background:rgb(18 40 31 / .42);backdrop-filter:none}
.entry-onboarding-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.entry-onboarding-header h2{font-size:27px;margin:7px 0 10px;letter-spacing:-.03em}.entry-onboarding-header button{flex:none}
#entry-onboarding p{font-size:14px;line-height:1.6}.entry-onboarding-steps{list-style:none;padding:0;margin:24px 0}.entry-onboarding-steps li+li{border-top:1px solid #dce4d1;margin-top:17px;padding-top:17px}.entry-onboarding-steps h3{font-size:17px;margin:0 0 5px}.entry-onboarding-steps .text-button{padding-left:0;text-align:left;min-height:44px;text-decoration:underline;text-underline-offset:4px}
#entry-onboarding .modal-actions{gap:10px;flex-wrap:wrap;margin-top:22px}#entry-onboarding .modal-actions button{flex:1;min-width:150px}
@media(max-width:350px){#entry-onboarding{padding:20px}.entry-onboarding-header{gap:5px}.entry-onboarding-header h2{font-size:24px}}
/* Camera acquisition is an explicit, optional step; no gallery input. */
#photo-camera{width:min(560px,calc(100vw - 28px));max-width:560px;max-height:calc(100svh - 24px);padding:22px;border-radius:16px;background:#fafbf3;overscroll-behavior:contain}
.photo-camera-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.photo-camera-header h2{margin:0;font-size:23px}.photo-camera-header button{flex:none;min-height:44px}
.photo-camera-stage{background:#122f24;border-radius:12px;overflow:hidden;min-height:120px;display:grid;place-items:center}.photo-camera-stage video,.photo-camera-stage img{display:block;width:100%;max-height:min(52svh,480px);object-fit:contain;transform:none}.photo-camera-stage [hidden]{display:none}
.photo-camera-status{font-size:14px;line-height:1.6;margin:16px 0;min-height:1.6em}.photo-camera-actions{display:flex;flex-wrap:wrap;gap:10px}.photo-camera-actions button{flex:1;min-width:140px}.photo-camera-actions button[hidden]{display:none}
@media(max-width:350px){#photo-camera{padding:16px}.photo-camera-header{gap:6px}.photo-camera-header h2{font-size:21px}.photo-camera-header button{font-size:12px;padding-inline:8px}}
.photo-field-label{font-size:13px;font-weight:700}
/* Quantified recipes: one accessible direction label, count and contributor list. */
.selected-resource-description{padding:16px;margin:12px 0;border-radius:12px;color:#183d36}.selected-resource-description[hidden]{display:none}.selected-resource-description>.resource-icon{width:28px;height:28px;vertical-align:middle;margin-right:8px}.selected-resource-description p{margin:10px 0 0;color:#183d36}.admin-quantities{border:0;padding:0;margin:20px 0}.admin-quantities label{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:12px;align-items:center;margin:10px 0}.admin-quantities input{width:76px;margin:0}.resource-progress-labels .chip{white-space:normal;line-height:1.4}.resource-progress-labels .resource-icon,.resource-badge .resource-icon{width:18px;height:18px;flex:none;vertical-align:middle}.resource-progress-bar{min-height:8px}.resource-progress-segment{min-width:0}
.resource-member-label{display:inline-flex!important;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;white-space:normal}.resource-member-label .resource-icon,.chip .resource-icon{width:18px;height:18px;flex:none;vertical-align:middle}
/* A real, visible edit action, including one's own biography opened elsewhere. */
.profile-card .profile-edit-button,.profile-edit-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:14px;padding:12px 18px;border:1px solid #214c40;border-radius:10px;background:#214c40;color:#fff9e9;font-size:14px;font-weight:650;line-height:1.25;text-decoration:none;box-shadow:0 3px 0 #12392d14}.profile-edit-button:hover{background:#163e32}.profile-edit-button:focus-visible{outline:3px solid #be8437;outline-offset:3px}.profile-edit-button.full{display:flex;width:100%;margin-bottom:18px}@media(max-width:520px){.profile-card .profile-edit-button{width:100%;max-width:280px;padding:12px}}
/* Private retained games and a readable participant directory. */
.directory-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr);gap:16px;margin:20px 0}.directory-filters label{display:grid;gap:8px}.archive-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.archive-list-card{display:grid;gap:12px}.archive-list-card h2,.archive-list-card p{margin:0}.archive-list-card button{justify-self:start}.archive-newgame{border:2px solid #35594d}.archive-photo{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:auto}.player-directory-card details{margin-top:14px}.player-directory-card summary{cursor:pointer;min-height:40px;padding:10px 0}.nav{overflow-x:auto}.nav>button{min-width:64px}@media(max-width:540px){.directory-filters{grid-template-columns:1fr}.archive-toolbar>*{flex:1}}
.host-return-notice{padding:18px 20px;margin:12px 0 22px;border:2px solid #b17a34;border-radius:14px;background:#fff0ce;color:#183d36}.host-return-notice strong{font-size:18px}.host-return-notice p{margin:8px 0 12px}.host-return-notice>div{display:flex;flex-wrap:wrap;gap:10px}.current-return-requests article{padding:14px 0;border-top:1px solid #cdd8ce}.current-return-requests article button{margin-right:8px;margin-bottom:6px}
.profile-contacts{margin-top:18px;padding-top:14px;border-top:1px solid #cdd8ce}.profile-contacts h3{margin:0 0 8px;font-size:15px}.profile-contacts .bio-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}
/* Compact, accessible transport status: hidden text remains available to assistive tech. */
.sync-note{display:flex;justify-content:flex-end;min-height:16px;margin:0 2px 8px;padding:0}.connection-indicator{display:inline-flex;align-items:center;padding:4px;line-height:1}.connection-dot{display:block;width:9px;height:9px;border-radius:50%;background:#a77814;box-shadow:0 0 0 2px #a778141b}.connection-indicator[data-connection=connected] .connection-dot{background:#267442;box-shadow:0 0 0 2px #2674421b}.connection-indicator[data-connection=offline] .connection-dot{background:#b13b30;box-shadow:0 0 0 2px #b13b301b}.connection-indicator[data-connection=local] .connection-dot{background:#68756d;box-shadow:0 0 0 2px #68756d1b}.connection-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Directory cards: a bounded preview, readable full text on deliberate expansion. */
.player-directory-card{min-width:0}.player-directory-card .player-display-name{font-size:18px;line-height:1.3;text-transform:none;letter-spacing:-.15px;overflow-wrap:anywhere}.player-directory-card .player-compact-heading{align-items:flex-start}.player-directory-card .player-compact-heading>div{min-width:0}.player-directory-card .player-compact-heading p{overflow-wrap:anywhere;font-size:12px;line-height:1.45}.player-bio-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.8em;line-height:1.6;font-size:14px;overflow-wrap:anywhere;margin:14px 0 4px;white-space:normal}.player-directory-card .player-bio-toggle{width:auto;height:auto;min-height:44px;max-width:100%;padding:10px 12px;font-size:13px;line-height:1.4;text-align:left;margin-top:6px;overflow-wrap:anywhere}.player-details{min-width:0;max-width:100%}.player-details .bio-text{font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.player-details .profile-contacts{min-width:0;overflow-wrap:anywhere}
/* Allow schema-valid long names, resource text and contact URLs to wrap at narrow widths. */
.selected-resource-description{min-width:0;max-width:100%;overflow-wrap:anywhere}.selected-resource-description strong,.selected-resource-description p{overflow-wrap:anywhere}.content .card,.content .entry-card,dialog form,.entry-card form{min-width:0}.card>p,.card label,.card summary,.card button,dialog p,dialog label,dialog button,dialog summary,.return-ticket{overflow-wrap:anywhere}.profile-contacts .bio-text,.bio-text{max-width:100%;overflow-wrap:anywhere}.entry-card textarea,dialog textarea{max-width:100%;min-width:0;font-size:16px}.entry-label,.entry-label>label,.profile-resource-name{min-width:0}.modal-actions>*{min-width:0}.finale-personal-heading>*,.finale-personal-hero>*,.finale-personal-details>*{min-width:0}.finale-personal-hero strong{overflow-wrap:anywhere}.host-dashboard .dashboard-filters>*{min-width:0}@media(max-width:420px){.player-directory-card .player-display-name{font-size:17px}.player-directory-card{padding:16px}.player-directory-card .player-compact-heading{gap:10px}.profile-card .profile-identity{gap:12px}.profile-card h1{font-size:24px}.profile-resource-name strong{font-size:21px}.modal-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}}
/* Compact, exact opening finance and one contextual step. */
.venue-finance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 8px;padding:12px 0;border-block:1px solid #183d3624;font-variant-numeric:tabular-nums}.venue-finance>div{min-width:0}.venue-finance dt{font-size:11px;line-height:1.4;color:#4c6157}.venue-finance dd{margin:5px 0 0;font-size:14px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.venue-group{margin:24px 0}.venue-group>h3{font-size:17px;line-height:1.4}.venue-group .card{margin-block:12px}.contextual-next{border-left:4px solid #5a7e52}.contextual-next h2{font-size:17px}.resource-progress-labels button.chip{min-height:44px;padding:8px 10px;text-align:left;white-space:normal;font-size:12px;line-height:1.45;text-decoration:underline;text-underline-offset:3px}.recipe-selection,.building-income-details{margin-top:8px}.recipe-selection summary,.building-income-details summary{font-size:12px;line-height:1.45}.inviter-identity{display:flex;align-items:center;gap:10px;margin:12px 0;min-width:0}.inviter-identity>span{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.inviter-identity .member-avatar{width:36px;height:36px;flex:none}.venue-card{scroll-margin-top:16px}.personal-code+.inbox-card{margin-top:12px}@media(max-width:360px){.venue-finance{gap:7px}.venue-finance dd{font-size:12px}.venue-finance dt{font-size:10px}}

/* Compact native venue disclosures: summary is the only toggle target. */
.venue-card>summary.venue-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,32%);gap:16px;align-items:center;min-height:64px;padding:8px 0;cursor:pointer;list-style:none}.venue-card>summary.venue-summary::-webkit-details-marker{display:none}.venue-summary-name{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.venue-summary-name>strong{flex:1;min-width:0;overflow-wrap:anywhere;font-size:18px}.venue-summary-name .venue-icon{flex:0 0 28px}.venue-summary-progress{display:flex;align-items:center;gap:9px}.venue-progress-track{display:block;height:8px;flex:1;min-width:30px;background:#d8e5dc;border-radius:8px;overflow:hidden}.venue-progress-track>span{display:block;height:100%;background:#2c8552;border-radius:inherit}.venue-progress-number{font-size:13px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;color:#2b5540}.venue-card>summary:focus-visible{outline:3px solid #2c8552;outline-offset:6px;border-radius:4px}.venue-card>summary::after{content:'';grid-column:2;justify-self:end;width:8px;height:8px;border-right:2px solid #456354;border-bottom:2px solid #456354;transform:rotate(45deg)}.venue-card[open]>summary::after{transform:rotate(225deg)}.venue-expanded{padding-top:18px;border-top:1px solid #d6e0d8;display:grid;gap:16px}.venue-income{display:flex;justify-content:space-between;gap:14px;margin:0;flex-wrap:wrap}.venue-income strong{font-variant-numeric:tabular-nums}.company-income-rule{font-size:15px;line-height:1.5;max-width:65ch}.venue-expanded .resource-progress-labels{display:flex;flex-wrap:wrap;gap:8px}.venue-expanded .chip{overflow-wrap:anywhere;white-space:normal}.venue-expanded>.info-button{justify-self:end}.venue-expanded .primary{margin-top:4px}@media(max-width:520px){.venue-card>summary.venue-summary{grid-template-columns:minmax(0,1fr);gap:14px}.venue-summary-progress{padding-right:22px}.venue-card>summary::after{grid-column:1}.venue-summary-name>strong{font-size:17px}}
