:root{--font-sans: Inter, "Segoe UI", sans-serif;--font-display: "Palatino Linotype", Georgia, serif;--color-text: #1d2630;--color-text-muted: #596663;--color-surface: #fff;--color-page: #edf1ee;--color-primary: #27705e;--color-primary-strong: #164d42;--color-border: #d6dfda;--color-game-surface: #142b3a;--color-game-text: #eee3c8;--color-game-muted: #b9ad8c;--color-game-accent: #d9a441;--color-game-ink: #17243a;--radius-sm: 4px;--radius-md: 8px;--shadow-panel: none;--space-1: 8px;--space-2: 12px;--space-3: 16px;--touch-target: 44px;font-family:var(--font-sans);color:var(--color-text);background:var(--color-page)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{min-height:100vh;max-width:1440px;margin:auto;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 20px;border-bottom:1px solid #cbd5d1}.brand-kicker,.eyebrow{margin:0;color:#337160;font-size:.75rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.topbar h1{margin:4px 0 0;font-size:1.45rem}.muted{color:var(--color-text-muted);line-height:1.5}input{width:100%;padding:10px 12px;border:1px solid #b8c7c1;border-radius:var(--radius-sm);background:var(--color-surface)}.tab,.mode,.panel-tabs button,.chat-tabs button,.primary,.action,.room-code button,.form-actions button{min-height:var(--touch-target)}.lobby-main,.lobby-aside,.players-panel,.command-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.topbar nav,.mode-control,.form-actions,.panel-tabs{display:flex;flex-wrap:wrap;gap:8px}.tab,.mode,.panel-tabs button{padding:8px 10px;border:0;color:#52605d;background:transparent}.tab.active,.mode.active,.panel-tabs .active{border-bottom:2px solid #267260;color:#164d42;font-weight:700}.form-actions{align-items:center;margin-top:18px}.form-actions input{width:160px}.primary,.action,.room-code button,.form-actions button{padding:10px 14px;border:1px solid #27705e;border-radius:var(--radius-sm);color:#164d42;background:#fff;font-weight:700}.primary{color:#fff;background:#27705e}.ready,.waiting{margin-left:auto;font-size:.85rem}.ready{color:#177258}.waiting{color:#8b5b1d}.swatch{flex:0 0 auto;width:13px;height:13px;border:1px solid #83908a;border-radius:50%;background:#bfc7c3}.red{background:#c54843}.blue{background:#3172aa}.white{background:#fff}.orange{background:#d98036}.green{background:#33855b}.brown{background:#795038}.color-picker{display:flex;gap:9px}.color-button{width:28px;height:28px;border:2px solid #fff;border-radius:50%;outline:1px solid #a8b6b0}.color-button.selected{border-color:#164d42;outline:2px solid #164d42;outline-offset:1px}.color-button:disabled{cursor:not-allowed;opacity:.3}.status-message{min-height:24px;color:#34534b}.panel-tabs{margin:-4px 0 16px;border-bottom:1px solid #d6dfda}.action{display:block;width:100%;margin:8px 0;text-align:left}.action:hover{background:#edf5f1}.action-danger{border-color:#a6403b;color:#8f302d;background:#fff5f4}.ui-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.section-label{margin:3px 2px 10px;color:#a99e7f;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.game-over-screen{display:grid;place-items:center;min-height:100vh;padding:22px}.game-over-screen .topbar{position:absolute;top:22px;right:22px;left:22px}.game-over-card{width:min(520px,100%);padding:34px;border:1px solid rgba(119,156,197,.62);border-radius:10px;color:#eee3c8;background:#172536;box-shadow:none}.game-over-card h2{margin:8px 0;color:#fff0cc;font-family:var(--font-sans)}.game-over-card .muted{color:#c8bd9f}.final-ranking{display:grid;gap:8px;padding:0;list-style:none}.final-ranking li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(238,227,200,.18);border-radius:6px}.final-ranking .winner{border-color:#d9a441;background:#d9a44124}.final-ranking span{color:#d9a441;font-weight:800}.final-ranking b{color:#fff0cc}.final-ranking li>div{display:grid;gap:3px;min-width:0}.final-ranking li small{color:#b9ad8c;font-size:.63rem;line-height:1.3}.final-ranking li.winner small{color:#f5d68d}.result-meta{margin:0 0 14px;color:#f5d68d;font-size:.76rem}.result-actions{display:flex;flex-wrap:wrap;gap:10px}.result-actions button{padding:10px 14px;border:1px solid rgba(238,227,200,.3);border-radius:6px;color:#eee3c8;background:transparent;font-weight:700}.results-dashboard{min-height:100vh}.results-dashboard-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(980px,100%);margin:0 auto;padding:28px 20px}.results-section{padding:18px;border:1px solid rgba(231,206,138,.38);border-radius:10px;background:#0d1e2fcc}.results-section h2{margin:0 0 14px;color:#fff0cc}.leaderboard-list,.history-list{display:grid;gap:8px;padding:0;margin:0;list-style:none}.leaderboard-list li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:10px;border:1px solid rgba(238,227,200,.12);border-radius:7px}.leaderboard-list li>span{grid-row:span 2;color:#d9a441;font-weight:800}.leaderboard-list small{color:#c8bd9f}.leaderboard-list b{grid-column:3;grid-row:span 2;color:#fff0cc;font-size:.8rem}.history-list article{padding:12px;border:1px solid rgba(238,227,200,.12);border-radius:7px}.history-list article>div{display:grid;gap:3px}.history-list small{color:#c8bd9f;font-size:.72rem}.history-list ol{display:grid;gap:4px;padding:10px 0 0;margin:8px 0 0;border-top:1px solid rgba(238,227,200,.1);list-style:none}.history-list li{display:grid;grid-template-columns:22px 1fr auto;gap:6px;color:#c8bd9f;font-size:.76rem}.history-list li span,.history-list li b{color:#fff0cc}@media(max-width:820px){.results-dashboard-content{grid-template-columns:1fr;padding:18px 14px}.leaderboard-list li{grid-template-columns:22px minmax(0,1fr)}.leaderboard-list b{grid-column:2;grid-row:auto}.result-actions{display:grid}.result-actions button{width:100%}}.confirmation-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:18px;background:#030c14b3}.confirmation-dialog{width:min(380px,100%);padding:20px;border:1px solid rgba(119,156,197,.62);border-radius:10px;color:#eee3c8;background:#102c3d;box-shadow:none}.confirmation-dialog h2{margin:0 0 8px;color:#fff0cc;font-size:1.1rem}.confirmation-dialog p{margin:0;color:#c8bd9f;line-height:1.45}.confirmation-dialog>div{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.confirmation-dialog .action{width:auto;margin:0}.turn-meta{display:grid;gap:4px}.turn-meta>span{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:baseline;gap:8px;text-align:left}.turn-meta b{color:#b9ad8c;font-size:.67rem;letter-spacing:.05em;text-transform:uppercase}.turn-meta strong{min-width:0;color:#eee3c8;font-size:.76rem;overflow-wrap:anywhere}.turn-instruction{display:block;max-width:100%;line-height:1.3;overflow-wrap:anywhere}.lobby-chat{display:grid;grid-template-rows:auto minmax(120px,220px) auto auto;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid #d6dfda}.lobby-chat h3{margin:0;color:#164d42}.lobby-chat-feed{display:grid;align-content:start;gap:8px;overflow:auto;padding:8px;border:1px solid #d6dfda;border-radius:6px;background:#f6faf8}.lobby-chat-feed p{margin:0;color:#596663}.lobby-chat-feed article{max-width:88%;padding:8px 10px;border-radius:7px;background:#e6f0eb}.lobby-chat-feed article.mine{justify-self:end;background:#d5ece3}.lobby-chat-feed article small{display:flex;align-items:center;gap:5px;color:#337160;font-size:.72rem;font-weight:700}.lobby-chat-feed article small .swatch{width:9px;height:9px}.lobby-chat .chat-composer{border-top:0;padding-top:0}.lobby-chat .chat-composer input{color:#24332f;border-color:#b8c7c1;background:#fff}.lobby-chat .chat-composer button{color:#fff;background:#27705e}.lobby-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,.8fr);gap:22px;padding-top:28px}.lobby-connection{margin:0;color:#596663;font-size:.82rem}.lobby-connection.online{color:#177258}.lobby-connection.offline{color:#8b5b1d}.room-code{display:flex;align-items:center;gap:12px;margin:22px 0;padding:15px;border:1px solid #c5ded3;background:#edf5f1}.room-code strong{font-size:1.4rem;letter-spacing:0}.room-code button{margin-left:auto}.player-list{display:grid;margin:18px 0;border-top:1px solid #e0e6e3}.player-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid #e0e6e3}.player-row div{display:grid;gap:3px}.player-row small{color:#697572}.lobby-aside{align-self:start;padding:22px}.lobby-aside h3{margin-top:0}.lobby-aside ol{padding-left:20px;color:#596663;line-height:1.7}.lobby-mobile-summary{display:none}.lobby-main{padding:30px}.lobby-main h2{margin:8px 0;font-size:1.8rem}.lobby-form{display:grid;gap:16px;margin-top:26px}.lobby-form label{display:grid;gap:7px;font-weight:650}@media(max-width:820px){.app-shell:not(.game-shell){padding:14px}.app-shell:not(.game-shell) .topbar{align-items:flex-start;flex-direction:column}.app-shell:not(.game-shell) .lobby-layout{grid-template-columns:1fr}.app-shell:not(.game-shell) .lobby-aside{display:none}.app-shell:not(.game-shell) .lobby-main{padding:20px}.app-shell:not(.game-shell) .form-actions input{flex:1;min-width:120px}.app-shell:not(.game-shell) .room-code{flex-wrap:wrap}.app-shell:not(.game-shell) .room-code button{margin-left:0}.app-shell:not(.game-shell) .lobby-mobile-summary{display:grid;gap:8px;margin:18px 0;padding:12px;border:1px solid #c5ded3;border-radius:8px;background:#edf5f1}.app-shell:not(.game-shell) .lobby-mobile-summary>p{margin:0;color:#164d42;font-size:.8rem;font-weight:800;text-transform:uppercase}.app-shell:not(.game-shell) .lobby-mobile-summary>div{display:grid;gap:7px}.app-shell:not(.game-shell) .lobby-mobile-summary span{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:28px}.app-shell:not(.game-shell) .lobby-mobile-summary .swatch{width:14px;height:14px}.app-shell:not(.game-shell) .lobby-mobile-summary small{color:#34534b;font-size:.78rem}.app-shell:not(.game-shell) .lobby-layout .player-list{display:none}}.game-shell{max-width:none;min-height:100vh;padding:0;background:var(--color-game-surface);color:var(--color-game-text)}.game-shell .topbar{height:58px;padding:0 18px;border-color:#eee3c821;background:linear-gradient(180deg,rgba(238,227,200,.08),transparent)}.game-shell .topbar h1,.game-shell h2{color:var(--color-game-text)}.game-shell .brand-kicker,.game-shell .tab{color:var(--color-game-muted)}.game-shell .tab.active{color:var(--color-game-text);border-color:var(--color-game-accent)}.game-shell .game-layout{min-height:calc(100vh - 58px);padding:0;gap:0;grid-template-columns:260px minmax(0,1fr) 300px;background:var(--color-game-surface)}.game-shell .players-panel,.game-shell .command-panel{height:calc(100vh - 58px);padding:16px 14px;border:0;border-radius:0;color:var(--color-game-text);background:linear-gradient(180deg,#00000029,#0000000a)}.game-shell .players-panel{border-right:1px solid rgba(238,227,200,.1)}.game-shell .command-panel{border-left:1px solid rgba(238,227,200,.1)}.game-shell .board-area{position:relative;min-height:0;background:radial-gradient(800px 480px at 50% 43%,#245a72,#173e54 55%,#102c3d);overflow:hidden}.game-shell .board-area:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 40px);pointer-events:none}.game-shell .turn-banner{z-index:1;width:auto;align-self:stretch;margin:14px 14px 0;border:1px solid rgba(238,227,200,.16);border-radius:999px;background:#0f18289e;color:var(--color-game-text)}.game-shell .board{z-index:1;width:min(78vh,92%);max-height:calc(100vh - 185px);border:0;background:transparent;filter:drop-shadow(0 20px 30px rgba(0,0,0,.48))}.game-shell .board text{fill:var(--color-game-ink)}.game-shell .command-status{z-index:1;padding:7px 14px;border:1px solid rgba(238,227,200,.15);border-radius:999px;background:#0f1828c7;color:var(--color-game-text)}.game-shell .panel-tabs{border-color:#eee3c81a}.game-shell .panel-tabs button,.game-shell .muted{color:var(--color-game-muted)}.game-shell .panel-tabs .active{color:var(--color-game-text);border-color:var(--color-game-accent)}.game-shell .action{color:var(--color-game-text);border-color:#eee3c82e;background:#eee3c80f}.game-shell .action:hover{background:#eee3c81f}.game-shell .primary{color:var(--color-game-surface);background:var(--color-game-accent);border-color:var(--color-game-accent)}.game-shell .confirm{z-index:1}.game-brand{display:flex;gap:10px;align-items:center;padding:0 2px 18px 16px;margin:-16px -14px 18px;border-bottom:1px solid rgba(238,227,200,.14)}.brand-mark{width:36px;height:36px;border-radius:50%;background:conic-gradient(var(--color-game-accent),#b5533c,#2f6e6a,var(--color-game-accent))}.game-brand strong{display:block;color:var(--color-game-text)}.game-brand small{display:block;margin-top:3px;color:#c8bd9f;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em}.game-shell .player-card{display:flex;padding:11px 12px;margin-bottom:7px;border:1px solid transparent;background:#eee3c80b}.game-shell .player-card.current{background:#d9a4411c;border-color:#d9a44161}.player-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:#16233b;font-weight:800;text-transform:uppercase}.game-shell .player-card.own-player .player-avatar{outline:2px solid var(--color-game-accent);outline-offset:2px;box-shadow:0 0 0 4px #d5af572e}.game-shell .player-card div{display:grid;gap:3px}.game-shell .player-card b{color:var(--color-game-text);font-size:.86rem}.game-shell .player-card small{color:#c8bd9f;font-size:.68rem}.game-shell .player-card>strong{padding:4px 7px;border-radius:6px;color:var(--color-game-text);font-size:.72rem;background:#00000047}.game-shell .score-row{padding:10px 8px;border-color:#eee3c814;border-radius:5px}.game-shell .score-row:first-of-type{background:#d9a4411f;border:1px solid rgba(217,164,65,.34)}.game-shell .development-cards{margin-top:16px}.game-shell .development-cards .section-label{margin-bottom:8px}.game-shell .development-deck{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border:1px solid rgba(217,164,65,.48);border-radius:8px;color:var(--color-game-text);background:#d9a44114;text-align:left}.game-shell .deck-stack{width:32px;height:42px;display:block;border:1px solid var(--color-game-accent);border-radius:4px;background:repeating-linear-gradient(135deg,#294561 0 4px,#203a54 4px 8px);box-shadow:4px 4px #7d5327b8,8px 8px #412d1fa3;font-size:0}.game-shell .development-deck b,.game-shell .development-deck small{display:block}.game-shell .development-deck b{font-size:.8rem}.game-shell .development-deck small{margin-top:3px;color:#c8bd9f;font-size:.65rem}.game-shell .development-deck strong{color:var(--color-game-accent);font-size:.7rem}.game-shell .development-card{margin-top:8px;padding:9px 10px;border-left:3px solid var(--color-game-accent);background:#eee3c812}.game-shell .development-card span,.game-shell .development-card small{display:block}.game-shell .development-card span{color:var(--color-game-text);font-weight:700;font-size:.8rem}.game-shell .development-card small{margin-top:4px;color:#c8bd9f;font-size:.66rem;line-height:1.35}.development-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.development-card-grid .development-card{display:flex;flex-direction:column;justify-content:flex-end;min-height:104px;margin:0;padding:7px;overflow:hidden;border:1px solid rgba(217,164,65,.58);border-radius:5px;background-color:#233e58;background-image:linear-gradient(0deg,rgba(12,27,40,.9),transparent 65%),url(/assets/development-cards-atlas-B37lekR3.png);background-repeat:no-repeat;background-size:100% 100%,300% 200%}.development-card-grid .art-0{background-position:0 0,0 0}.development-card-grid .art-1{background-position:0 0,50% 0}.development-card-grid .art-2{background-position:0 0,100% 0}.development-card-grid .art-3{background-position:0 0,0 100%}.development-card-grid .art-4{background-position:0 0,50% 100%}.development-card-grid .development-card span{color:#fff3d1;font-size:.71rem;text-shadow:0 1px 2px #000}.development-card-grid .development-card small{margin-top:2px;color:#f0ddb2;font-size:.75rem;line-height:1.25;text-shadow:0 1px 2px #000}.game-layout{display:grid;grid-template-columns:210px minmax(0,1fr) 250px;gap:16px;padding-top:20px}.players-panel,.command-panel{align-self:start;padding:15px}.players-panel h2,.command-panel h2{margin:0 0 12px;font-size:1rem}.score-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid #e0e6e3}.score-row strong{margin-left:auto}.board-area{display:grid;justify-items:center;min-width:0}.turn-banner{display:flex;justify-content:space-between;width:min(760px,100%);padding:10px 14px;border-radius:5px 5px 0 0;color:#fff;background:#183e38}.board{width:min(760px,100%);max-height:62vh;border:1px solid #89b9c2;background:#b8d8df}.hex{cursor:pointer;stroke:#fff;stroke-width:3}.terrain-0{fill:#43835d}.terrain-1{fill:#b45b42}.terrain-2{fill:#a5bd61}.terrain-3{fill:#d6bd58}.terrain-4{fill:#8a8b91}.hex.selected{stroke:#182c2a;stroke-width:6}.board text{fill:#162927;font-size:22px;font-weight:800;pointer-events:none}.vertex-hit{cursor:pointer;fill:transparent}.vertex-hit:hover{fill:#ffffffb8}.edge-hit{cursor:pointer;stroke:transparent;stroke-width:22}.edge-hit:hover{stroke:#ffffffa6}.command-status{margin:12px 0 7px;color:#46534f}.command-status.conferma{color:#8b5b1d}.command-status.accettato{color:#177258}.confirm{margin-bottom:8px}.game-shell .turn-banner{justify-content:center;align-content:center;min-height:64px;display:grid;gap:2px;padding:9px 20px;text-align:center;border-radius:10px;background:#0d1e2fc7}.game-shell .turn-title{color:#fff0cc;font-size:1.02rem;font-weight:700}.game-shell .turn-banner strong{color:var(--color-game-muted);font-size:.69rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em}.game-shell .turn-instruction{color:#fff0cc;font-size:.78rem;font-weight:700;line-height:1.25}.game-shell .players-panel,.game-shell .command-panel{background:linear-gradient(160deg,#1f384bd1,#0d1d2ee6)}.game-shell .resource-chip,.game-shell .player-card,.game-shell .development-deck{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-shell .resource-chip{transition:transform .16s ease,background .16s ease,border-color .16s ease}.game-shell .resource-chip:hover{transform:translateY(-2px);background:#eee3c81a;border-color:#d9a44185}.game-shell .action{display:flex;align-items:center;gap:10px;min-height:46px;padding:9px 11px;border-radius:7px;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}.game-shell .action:hover{transform:translateY(-1px);border-color:#d9a4419e;background:#d9a44121}.game-shell .action-icon{width:23px;height:23px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(217,164,65,.5);border-radius:5px;color:#f5d68d;font-size:.67rem;font-weight:800}.game-shell .board-area{background-color:#123d54;background-image:url(/assets/sea-background-muted-DgmA9MHa.jpg);background-size:cover;background-position:center}.game-shell .board-area:before{opacity:.28}.game-shell .players-panel .game-brand{display:none}.game-shell .resource-grid{gap:9px}.game-shell .resource-chip{min-height:128px;grid-template-rows:52px 28px auto;padding:7px;overflow:hidden;border:1px solid #c6b78d;border-radius:7px;color:#273845;background:#fbfaf5}.game-shell .resource-chip i{width:100%;height:52px;border:0;border-radius:4px;background-color:#7f9770;background-image:linear-gradient(#ffffff0f,#0000001a),url(/assets/terrain-atlas-v2-BVmOnHfy.png);background-size:100% 100%,500% auto;background-repeat:no-repeat;color:transparent}.game-shell .resource-0 i{background-position:0 0,0 12%}.game-shell .resource-1 i{background-position:0 0,25% 12%}.game-shell .resource-2 i{background-position:0 0,75% 12%}.game-shell .resource-3 i{background-position:0 0,50% 12%}.game-shell .resource-4 i{background-position:0 0,100% 12%}.game-shell .resource-chip b{color:#233542;font-size:1.08rem}.game-shell .resource-chip span{color:#59615a;font-size:.75rem;font-weight:800}.game-shell .resource-chip:hover{background:#fffdf7;border-color:#d39c36}.game-shell .players-panel:has(.development-card-grid) .resource-grid{display:none}.game-shell .players-panel:has(.development-card-grid) .development-cards{margin-top:0}.realtime-game .board-area{display:grid;place-items:center;padding:16px}.realtime-game .live-board{z-index:1;width:min(86vh,94%);height:auto;max-height:calc(100vh - 110px);filter:drop-shadow(0 18px 20px rgba(0,0,0,.42))}.live-board .terrain{stroke:transparent;stroke-width:.08;cursor:pointer}.live-board .terrain-border{stroke:#e7ce8a;stroke-width:.18;stroke-linecap:butt;pointer-events:none}.live-board .terrain-joint{fill:#e7ce8a;pointer-events:none}.live-board .terrain-image,.live-board .desert-fill{pointer-events:none}.live-board .terrain-forest{fill:#477a50}.live-board .terrain-hills{fill:#af6243}.live-board .terrain-pasture{fill:#8fa75e}.live-board .terrain-fields{fill:#d5b34e}.live-board .terrain-mountains{fill:#8d9295}.live-board .terrain-desert,.live-board .desert-fill{fill:#c9ad6a}.live-board .token-marker,.live-board .token-disc{pointer-events:none}.live-board .token{font-size:.5px;font-weight:900;pointer-events:none;paint-order:stroke;stroke:#fff6da;stroke-width:.018}.live-board .robber{fill:#1b2530;stroke:#ead9b1;stroke-width:.06;pointer-events:none}.live-board .robber-token{fill:#fff7e6;font-size:.54px;font-weight:900;pointer-events:none}.live-board .live-edge{stroke:transparent;stroke-width:.32;cursor:pointer}.live-board .live-edge.owned{stroke-width:.26;stroke-linecap:round}.live-board .live-edge-hit{stroke:transparent;stroke-width:.34;cursor:pointer}.live-board .live-vertex{fill:transparent;stroke:transparent;stroke-width:.1;cursor:pointer}.live-board .live-vertex.owned{stroke:#162536;stroke-width:.08}.live-board .board-load-tile{opacity:0;animation:board-tile-reveal .34s ease-out both}.live-board .board-load-piece{opacity:0;transform-box:fill-box;transform-origin:center;animation:board-piece-reveal .26s cubic-bezier(.2,.8,.3,1.25) both}.live-board .board-load-token{opacity:0;transform-box:fill-box;transform-origin:center;animation:board-token-reveal .24s cubic-bezier(.2,.8,.3,1.18) both}@keyframes board-tile-reveal{0%{opacity:0}to{opacity:1}}@keyframes board-piece-reveal{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes board-token-reveal{0%{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.live-board .board-load-tile,.live-board .board-load-piece,.live-board .board-load-token,.dice-roll-control.rolling>span,.active-turn-marker{opacity:1;animation:none}}.live-board .selectable{cursor:pointer}.live-board .terrain.selectable:hover{stroke:#f5d68d;stroke-width:.24}.live-board .live-edge.selectable{stroke-width:.14;stroke-linecap:round;pointer-events:none;filter:drop-shadow(0 0 .045px rgba(255,246,218,.72))}.live-board .live-vertex.selectable{stroke:#fff6da;stroke-width:.045;filter:drop-shadow(0 0 .05px rgba(245,214,141,.6))}.live-board .live-vertex.selectable:hover{stroke:var(--color-game-accent)}.realtime-game .board-area{position:relative}.realtime-game .turn-banner{position:absolute;top:16px;right:18px;z-index:3;width:min(380px,calc(100% - 36px));margin:0}.players-summary-card{position:absolute;top:16px;left:18px;z-index:3;width:min(210px,calc(100% - 36px));padding:10px;border:1px solid rgba(231,206,138,.5);border-radius:10px;background:#0d1e2fe6}.players-summary-card .section-label{margin:0 0 7px}.players-summary-card .player-card{margin:0 0 5px}.players-summary-card .player-card:last-child{margin-bottom:0}.game-shell .rulebook{margin:0 0 10px;border:1px solid rgba(231,206,138,.38);border-radius:8px;background:#d9a44114}.game-shell .rulebook summary{padding:9px 10px;color:#fff0cc;cursor:pointer;font-size:.82rem;font-weight:800}.game-shell .rulebook[open] summary{border-bottom:1px solid rgba(231,206,138,.2)}.game-shell .rulebook-content{display:grid;gap:9px;padding:10px;color:#c8bd9f;font-size:.8rem;line-height:1.35}.game-shell .rulebook-content section{display:grid;gap:3px}.game-shell .rulebook-content b{color:#f5d68d}.game-shell .rulebook-content p,.game-shell .rulebook-content ul{margin:0}.game-shell .rulebook-content ul{padding-left:16px}.game-shell .guided-actions{display:grid;gap:10px;margin-top:12px}.game-shell .guided-actions section,.game-shell .guided-actions label{display:grid;gap:7px}.game-shell .guided-actions h2{margin:0;font-size:.86rem}.game-shell .guided-actions select,.game-shell .guided-actions input{min-height:34px;color:var(--color-game-text);border:1px solid rgba(238,227,200,.22);border-radius:5px;background:#21374c}.game-shell .resource-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.game-shell .resource-controls label{color:#c8bd9f;font-size:.66rem}.game-shell .resource-controls input{width:100%;padding:3px 6px}.game-shell .port-rule{margin:2px 0;color:#f5d68d;font-size:.67rem;line-height:1.35}.game-shell .board-area .turn-banner{display:grid}.game-shell .command-panel h2+.action{border-color:#d9a441c2;background:#d9a44129}.game-shell .command-panel h2+.action .action-icon{color:#1d2b3a;background:#d9a441}.chat-composer input{height:46px;line-height:24px}.chat-composer button{height:46px}.players-panel .hand-label{margin-top:3px}.development-hand-label{margin-top:18px}.hand-development-grid{display:grid;gap:7px}.hand-development-grid>p{margin:0;color:#c8bd9f;font-size:.72rem}.hand-development-card{display:grid;gap:3px;padding:8px;border:1px solid rgba(217,164,65,.5);border-radius:7px;background:#d9a4411a}.hand-development-card b{color:#fff0cc;font-size:.75rem}.hand-development-card small{color:#c8bd9f;font-size:.75rem}.game-shell .players-panel:has(.hand-development-grid) .resource-grid{display:grid}.players-summary-card .player-card small{display:grid;gap:1px}.realtime-game .turn-banner{width:min(300px,calc(100% - 36px))}.players-summary-card .player-card.current{border:1px solid rgba(217,164,65,.88);background:#d9a44126}.players-summary-card .player-card.current b{color:#fff0cc}.mobile-table-controls,.mobile-actions-toggle,.mobile-players-panel{display:none}.command-panel .action-primary{border-color:#d9a441;color:#17243a;background:linear-gradient(135deg,#fff0cc,#d9a441)}.command-panel .action-secondary{border-color:#d7caaa73;color:#d7caaa;background:#0f23346b}.game-shell .section-label,.game-shell .player-card small,.event-log p,.chat-status{color:#d7caaa}.app-shell.game-shell:has(.realtime-game)>.topbar{display:none}.game-shell .player-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:64px;padding:9px 10px}.game-shell .player-card div{min-width:0}.game-shell .player-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-shell .player-card small{overflow:visible;font-size:.63rem;line-height:1.25;white-space:normal}.game-shell .player-card>strong{margin-left:0;white-space:nowrap}.game-shell .resource-grid{gap:7px}.game-shell .resource-chip{min-height:90px;padding:5px;grid-template-rows:36px 22px auto}.game-shell .resource-chip i{height:36px}.game-shell .resource-chip b{font-size:.95rem}.game-shell .resource-chip span{font-size:.54rem}.realtime-game .turn-banner{border-color:#d9a4419e;background:#0d1e2fe6}.realtime-game .turn-title{font-size:1.18rem}.live-board .robber{filter:drop-shadow(0 .08px .08px rgba(0,0,0,.55))}.game-shell{overflow-x:hidden}.game-shell .section-label,.game-shell .command-panel h2,.game-shell .event-log h2,.game-shell .chat-panel h2{font-family:Palatino Linotype,Georgia,serif;letter-spacing:.11em}.personal-summary{display:grid;gap:6px;margin-top:22px;padding:12px 10px;border:1px solid rgba(231,206,138,.32);border-radius:9px;background:linear-gradient(145deg,#d9a44121,#2f6e6a1f)}.personal-summary .section-label{margin:0 0 3px;color:#f5d68d}.personal-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(238,227,200,.09);color:#c8bd9f;font-size:.72rem}.personal-summary>div:last-child{border-bottom:0}.personal-summary b{color:#fff0cc;font-size:.92rem}.players-summary-card .player-card{position:relative}.players-summary-card .player-card.current{border-color:#f5d68d;background:#d9a44126}.active-turn-marker{position:absolute;top:7px;right:8px;transform:none;color:#fff0cc;font-size:.64rem;filter:drop-shadow(0 0 4px #d9a441);animation:active-turn-pulse 1.8s ease-in-out infinite}.players-summary-card .player-card.current>strong{color:#17243a;background:#fff0cc}@keyframes active-turn-pulse{50%{transform:scale(1.32);color:#f5d68d}}.live-board .harbor-marker{cursor:help}.live-board .harbor-edge{stroke:#fff0cc;stroke-width:.1;stroke-linecap:round;filter:drop-shadow(0 .03px .04px rgba(0,0,0,.45))}.live-board .harbor-connector{stroke:#d2a467;stroke-width:.055;stroke-linecap:round;pointer-events:none}.live-board .harbor-marker circle{fill:#fff8e9;stroke:#7b592e;stroke-width:.045;filter:drop-shadow(0 .04px .05px rgba(0,0,0,.35))}.live-board .harbor-marker .harbor-target{fill:#173e54;stroke:#fff0cc;stroke-width:.035}.live-board .harbor-marker .harbor-anchor-disc{fill:#173e54;stroke:#fff0cc;stroke-width:.025}.live-board .harbor-dock rect{fill:#d2a467;stroke:#76502d;stroke-width:.035;filter:drop-shadow(0 .035px .04px rgba(0,0,0,.42))}.live-board .harbor-dock line{stroke:#80542f;stroke-width:.02}.live-board .harbor-boat path:first-child{fill:#b5533c;stroke:#6d3828;stroke-width:.025}.live-board .harbor-boat path:last-child{fill:#f6ead1;stroke:#9b7140;stroke-width:.02}.live-board .harbor-badge rect{fill:#fff8e9;stroke:#7b592e;stroke-width:.04;filter:drop-shadow(0 .03px .04px rgba(0,0,0,.34))}.live-board .harbor-marker text{fill:#273845;font-size:.24px;font-weight:900;pointer-events:none}.live-board .harbor-marker .harbor-anchor{fill:#fff8e9;font-family:Segoe UI Symbol,Arial Unicode MS,sans-serif;font-size:.21px;font-weight:700}.live-board .harbor-marker .harbor-resource{fill:#fff7e6;font-size:.19px;paint-order:stroke;stroke:#173e54;stroke-width:.045}.event-log{padding:12px 10px;border:1px solid rgba(238,227,200,.16);border-radius:9px;background:#05121f33}.event-log h2,.chat-panel h2{margin:0 0 8px;color:#f5d68d;font-size:.77rem;text-transform:uppercase}.event-log-feed{max-height:154px;overflow:auto;padding-right:4px}.chat-status{margin:8px 0 0;color:#f5d68d;font-size:.68rem;line-height:1.35}.chat-panel{margin-top:14px;padding:12px 10px 0;border:1px solid rgba(47,110,106,.62);border-radius:9px;background:#2f6e6a1f}.chat-panel .chat-feed{min-height:110px;max-height:230px}.chat-empty{margin:0;color:#b9ad8c;font-size:.78rem;font-style:italic}.game-shell .resource-chip span{font-size:.75rem}.game-shell .player-card small,.personal-summary>div,.event-log p,.chat-status{font-size:.78rem}.hand-development-card small,.development-card small,.development-card-grid .development-card small{font-size:.75rem}.chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;flex:1 1 auto;min-height:0;margin-top:18px;padding-top:14px;border-top:1px solid rgba(238,227,200,.13)}.chat-tabs{display:flex;gap:10px;border-bottom:1px solid rgba(238,227,200,.13)}.chat-tabs button{min-width:0;padding:7px 10px 9px;border:0;border-bottom:2px solid transparent;color:#b9ad8c;background:transparent;font-weight:700}.chat-tabs button.active{border-color:#d9a441;color:#eee3c8}.chat-feed{display:grid;align-content:start;gap:10px;min-height:0;overflow:auto;padding:13px 4px 10px}.chat-feed article{max-width:92%;padding:9px 11px;border:1px solid rgba(238,227,200,.15);border-radius:8px;background:#eee3c812}.chat-feed article small{display:block;margin-bottom:4px;color:#8ca86e;font-size:.7rem;font-weight:700}.chat-feed article p,.system-message{margin:0;color:#eee3c8;font-size:.84rem;line-height:1.4}.chat-feed article.mine{justify-self:end;border-color:#3e958ea6;background:#2f6e6a7a}.chat-feed article.mine small{color:#e88967}.system-message{padding:3px 0;color:#c8bd9f;font-style:italic}.chat-composer{display:flex;gap:8px;padding-top:10px;border-top:1px solid rgba(238,227,200,.13)}.chat-composer input{min-width:0;color:#eee3c8;border-color:#eee3c82e;background:#eee3c80f}.chat-composer input::placeholder{color:#9c947f}.chat-composer button{flex:0 0 58px;border:0;border-radius:8px;color:#17243a;background:#d9a441;font-size:.72rem;font-weight:800}.waiting-instruction{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:5px;text-align:left}.waiting-instruction b{color:#f5d68d}.waiting-instruction span{min-width:0}.dice-result{color:#f5d68d;font-size:.78rem;font-weight:800}.target-hint{margin:0 0 10px;color:#c8bd9f;font-size:.74rem;line-height:1.35}.game-shell .status-message{min-height:0;margin:8px 0;padding:8px 10px;border-left:2px solid #d9a441;color:#f2dfb2;background:#d9a4411a;font-size:.77rem;line-height:1.35}.game-shell .status-message.waiting{border-color:#638fa3;color:#c8dde5;background:#3e738a2e}.event-log{margin-top:14px;padding-top:12px;border-top:1px solid rgba(238,227,200,.13)}.event-log h2{margin:0 0 8px;font-size:.85rem}.event-log p{margin:0;padding:6px 2px;border-bottom:1px solid rgba(238,227,200,.08);color:#c8bd9f;font-size:.72rem;line-height:1.35}.event-log p:last-child{border-bottom:0}.event-log b{color:#eee3c8}.game-shell .dice-roll-control{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;margin:4px 0 10px;border:1px solid #e7ce8a;border-radius:9px;color:#1c2b3d;background:linear-gradient(135deg,#fff6da,#e7ce8a)}.game-shell .dice-roll-control>span{display:grid;place-items:center;width:31px;height:31px;border-radius:7px;color:#fff6da;background:#21384e;font-size:1.35rem;line-height:1}.game-shell .dice-roll-control b{font-size:.86rem}.game-shell .dice-roll-control.rolling>span{animation:dice-toss .7s ease-in-out both}.game-shell .dice-roll-control:disabled{opacity:1}.game-shell .dice-roll-control.rolling{cursor:wait;background:#ead9ac}@keyframes dice-toss{0%{transform:translate(0) rotate(0)}28%{transform:translate(7px,-10px) rotate(110deg)}58%{transform:translate(-8px,-4px) rotate(225deg)}82%{transform:translate(4px,-2px) rotate(325deg)}to{transform:translate(0) rotate(360deg)}}.realtime-game .turn-banner{display:grid;gap:7px;text-align:center}.realtime-game .turn-meta{display:grid;gap:4px}.realtime-game .turn-meta>span{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:8px;text-align:left}.realtime-game .turn-meta b{color:var(--color-game-muted);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.realtime-game .turn-meta strong{min-width:0;color:var(--color-game-text);font-size:.84rem;overflow-wrap:anywhere}.realtime-game .turn-instruction{display:block;max-width:100%;line-height:1.3;overflow-wrap:anywhere}.realtime-game .turn-progress{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;row-gap:3px;max-width:100%;margin:0;padding:0;list-style:none}.realtime-game .turn-progress li{display:flex;align-items:center;gap:3px;color:#8f9aaa;font-size:.72rem;white-space:nowrap}.realtime-game .turn-progress li:not(:last-child):after{width:10px;height:1px;margin-left:2px;background:#506172;content:""}.realtime-game .turn-progress span{display:grid;width:15px;height:15px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.55rem}.realtime-game .turn-progress .complete{color:#c8bd9f}.realtime-game .turn-progress .current{color:#fff0cc;font-weight:800}.realtime-game .turn-progress .current span{color:#173e54;border-color:#f5d68d;background:#f5d68d}.realtime-game .contextual-help{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 8px;color:#e9ddbf;font-size:.78rem;line-height:1.35;text-align:left}.realtime-game .contextual-help button{width:20px;height:20px;padding:0;border:0;border-radius:50%;color:#173e54;background:#f5d68d;font-weight:900;line-height:1}.game-shell .development-card-grid{grid-template-columns:1fr}.game-shell .development-card-grid .development-card:not(:first-child){display:none}.game-shell .development-card-grid .development-card{min-height:0;aspect-ratio:16 / 9;padding:6px 8px}.game-shell .hand-label{margin-top:22px}.game-shell .resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.game-shell .resource-chip{min-height:104px;padding:7px 3px;display:grid;grid-template-rows:28px 26px auto;place-items:center;border:1px solid rgba(238,227,200,.14);border-radius:7px;background:#eee3c80f}.game-shell .resource-chip b{color:var(--color-game-text);font-size:1rem}.game-shell .resource-chip span{color:var(--color-game-muted);font-size:.58rem;text-transform:uppercase}.game-shell .resource-0{border-color:#4a8b578c}.game-shell .resource-1{border-color:#b5533c8c}.game-shell .resource-2{border-color:#d9a4418c}.game-shell .resource-3{border-color:#8ca86e8c}.game-shell .resource-4{border-color:#6c7688a6}.game-shell .resource-chip i{width:100%;height:28px;display:grid;place-items:center;border-radius:4px;font-style:normal;background-image:url(/assets/terrain-atlas-v2-BVmOnHfy.png);background-size:500% auto;background-repeat:no-repeat}.game-shell .resource-0 i{background-position:0 30%}.game-shell .resource-1 i{background-position:25% 30%}.game-shell .resource-2 i{background-position:75% 30%}.game-shell .resource-3 i{background-position:50% 30%}.game-shell .resource-4 i{background-position:100% 30%}.game-shell .resource-5 i{background:transparent}.game-shell .hand-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.game-shell .hand-actions button{padding:11px 6px;border:1px solid rgba(238,227,200,.25);border-radius:8px;color:var(--color-game-text);font-weight:700;background:transparent}.game-shell .hand-actions .primary{color:var(--color-game-text);background:#2f6e6a;border-color:#2f6e6a}.game-shell .board-area{isolation:isolate;background-color:#0e3b56;background-image:linear-gradient(125deg,rgba(120,202,216,.18),transparent 35%),repeating-linear-gradient(168deg,rgba(206,243,238,.09) 0 1px,transparent 1px 24px),repeating-linear-gradient(12deg,rgba(7,40,63,.2) 0 2px,transparent 2px 42px)}.game-shell .board-area:before{z-index:-1;opacity:.95;background-image:repeating-linear-gradient(0deg,rgba(214,246,239,.12) 0 1px,transparent 1px 31px),repeating-linear-gradient(90deg,rgba(5,43,67,.09) 0 1px,transparent 1px 58px)}.game-shell .command-panel{display:flex;flex-direction:column;min-height:0}.game-shell .command-panel>.panel-tabs{flex:0 0 auto}@media(min-width:1101px){.game-shell .game-layout{min-width:0;grid-template-columns:220px minmax(0,1fr) 300px}.game-shell .players-panel,.game-shell .command-panel{position:sticky;top:58px;min-width:0;max-height:calc(100dvh - 58px);overflow-y:auto}.game-shell .command-panel{overflow-x:hidden;scrollbar-color:rgba(217,164,65,.55) transparent}.event-log-feed,.chat-panel .chat-feed{scrollbar-color:rgba(217,164,65,.55) transparent}}.game-shell{--color-game-surface: #151c25;--color-game-text: #edf1f5;--color-game-muted: #aeb9c5;--color-game-accent: #d5af57;background:#151c25}.game-shell .topbar{border-color:#7096c059;background:#172231}.game-shell .topbar h1,.game-shell h2,.game-shell .turn-title,.game-shell .section-label,.game-shell .command-panel h2,.game-shell .event-log h2,.game-shell .chat-panel h2,.game-shell .game-brand strong,.personal-summary b,.chat-empty,.system-message{font-family:var(--font-sans)}.game-shell .players-panel,.game-shell .command-panel,.players-summary-card{padding:20px 16px;border-color:#7096c06b;background:#172231}.game-shell .players-panel,.game-shell .command-panel{gap:14px}.game-shell .board-area{background-color:#0e3b56;background-image:url(/assets/sea-background-muted-DgmA9MHa.jpg);background-size:cover;background-position:center}.game-shell .board-area:before{display:none}.realtime-game .live-board,.game-shell .board{filter:none}.game-shell .turn-banner,.game-shell .command-status,.personal-summary,.event-log,.chat-panel,.chat-feed article,.game-shell .resource-chip,.game-shell .player-card,.game-shell .development-deck,.hand-development-card{border-color:#7096c06b;background:#1c2a3a;-webkit-backdrop-filter:none;backdrop-filter:none}.game-shell .turn-banner{border-radius:5px}.game-shell .turn-title,.game-shell .turn-instruction,.game-shell .player-card b,.game-shell .player-card>strong,.game-shell .development-card span,.game-shell .hand-development-card b,.game-shell .event-log b,.chat-feed article p,.system-message{color:var(--color-game-text)}.game-shell .section-label,.game-shell .player-card small,.game-shell .development-card small,.game-shell .hand-development-card small,.personal-summary>div,.event-log p,.chat-status,.game-shell .port-rule,.target-hint,.hand-development-grid>p{color:var(--color-game-muted)}.game-shell .section-label,.game-shell .command-panel h2,.game-shell .event-log h2,.game-shell .chat-panel h2{color:var(--color-game-text);letter-spacing:.06em}.game-shell .player-card.current,.players-summary-card .player-card.current{border-color:var(--color-game-accent);background:#d5af5724}.players-summary-card .player-card.current>strong,.active-turn-marker{color:#172231;background:var(--color-game-accent);filter:none}.game-shell .resource-chip,.game-shell .resource-chip:hover{transform:none;background:#1c2a3a}.game-shell .resource-chip i{background-color:transparent}.game-shell .action,.game-shell .hand-actions button,.game-shell .action-secondary{border-color:#7096c094;color:var(--color-game-text);background:#1c2a3a}.game-shell .action:hover{transform:none;border-color:#97b9dfd1;background:#24364a}.game-shell .action-icon{border-color:#97b9df9e;border-radius:4px;color:var(--color-game-text)}.game-shell .command-panel h2+.action,.command-panel .action-primary,.game-shell .primary,.game-shell .hand-actions .primary,.game-shell .dice-roll-control,.chat-composer button{border-color:#c9a657;color:#1b2530;background:#c9a657}.game-shell .dice-roll-control.rolling{background:#c9a657}.game-shell .dice-roll-control>span{border-radius:4px;color:var(--color-game-text);background:#263a50}.game-shell .action-primary .action-icon,.game-shell .command-panel h2+.action .action-icon{color:#1b2530;background:transparent}.game-shell .personal-summary .section-label,.game-shell .dice-result,.game-shell .waiting-instruction b{color:var(--color-game-accent)}.live-board .harbor-boat,.live-board .harbor-anchor-disc,.live-board .harbor-anchor,.live-board .harbor-resource{display:none}.live-board .harbor-edge{stroke:#edf1f5bf;stroke-width:.06;filter:none}.live-board .harbor-badge rect{fill:#1c2a3a;stroke:#edf1f5b8;filter:none}.live-board .harbor-marker text{fill:#edf1f5}.live-board .live-edge.selectable,.live-board .live-vertex.selectable{filter:none}@media(max-width:1100px){.app-shell.game-shell .game-layout{display:block;min-height:100dvh;padding-bottom:76px}.app-shell.game-shell .players-panel:not(.mobile-players-panel){display:none}.app-shell.game-shell .board-area{min-height:calc(100dvh - 58px);padding:76px 12px 86px}.realtime-game .live-board{width:min(76dvh,94vw);max-height:calc(100dvh - 154px)}.realtime-game .turn-banner{top:12px;right:12px;left:12px;width:auto}.players-summary-card{display:none}.game-shell .mobile-table-controls{position:absolute;z-index:8;right:12px;bottom:12px;left:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.game-shell .mobile-table-control,.game-shell .mobile-actions-toggle{min-height:48px;border:1px solid rgba(245,214,141,.72);border-radius:10px;color:#fff0cc;background:#0d1e2ff2;font-weight:800}.game-shell .mobile-table-control.primary-control{color:var(--color-game-ink);border-color:var(--color-game-accent);background:var(--color-game-accent)}.app-shell.game-shell .command-panel{position:fixed;z-index:20;right:0;bottom:0;left:0;height:auto;min-height:0;max-height:min(58dvh,520px);padding:8px 16px calc(14px + env(safe-area-inset-bottom));overflow-y:auto;border:1px solid rgba(238,227,200,.22);border-bottom:0;border-radius:18px 18px 0 0;box-shadow:0 -14px 32px #03111c85}.app-shell.game-shell .command-panel.mobile-panel-reduced{max-height:68px;overflow:hidden}.game-shell .mobile-actions-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:0 14px;border:0;border-bottom:1px solid rgba(238,227,200,.14);background:transparent}.game-shell .mobile-actions-toggle span:last-child{color:#f5d68d;font-size:.8rem}.command-panel-content{padding-top:10px}.game-shell .mobile-players-panel{position:absolute;z-index:7;top:84px;right:12px;left:12px;display:none;height:auto;max-height:calc(100% - 172px);padding:14px;overflow:auto;border:1px solid rgba(245,214,141,.62);border-radius:12px;background:#0d1e2ff7;box-shadow:0 16px 32px #03111c73}.game-shell .mobile-players-panel.is-open{display:block}.game-shell .mobile-players-panel .resource-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.game-shell .mobile-players-panel .resource-chip{min-height:88px}.game-shell .mobile-players-panel .personal-summary{margin-top:14px}}@media(min-width:640px)and (max-width:1100px)and (orientation:landscape){.app-shell.game-shell .board-area{padding-right:352px}.realtime-game .live-board{width:min(78dvh,calc(100vw - 376px));max-height:calc(100dvh - 96px)}.app-shell.game-shell .command-panel{inset:58px 0 0 auto;width:min(340px,42vw);max-height:none;border-top:0;border-right:0;border-radius:16px 0 0}.app-shell.game-shell .command-panel.mobile-panel-reduced{width:164px;max-height:68px;border-radius:0 0 0 14px}.game-shell .mobile-table-controls{right:364px;left:12px;grid-template-columns:max-content max-content;justify-content:center}.game-shell .mobile-players-panel{right:364px}}@media(max-width:820px){.app-shell.game-shell .topbar{height:auto;padding:12px 14px}.app-shell.game-shell .game-layout{min-height:0;grid-template-columns:1fr;padding-bottom:68px}.app-shell.game-shell .players-panel{display:none}.app-shell.game-shell .command-panel{position:fixed;z-index:20;right:0;bottom:0;left:0;height:auto;min-height:0;max-height:min(46dvh,430px);padding:20px 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto;border:1px solid rgba(238,227,200,.18);border-bottom:0;border-left:0;border-radius:18px 18px 0 0;border-top:1px solid rgba(238,227,200,.1);box-shadow:0 -14px 32px #03111c6b}.app-shell.game-shell .command-panel:before{content:"";display:block;width:42px;height:4px;margin:-10px auto 14px;border-radius:999px;background:#eee3c859}.app-shell.game-shell .board-area{min-height:calc(100dvh - 58px);padding-bottom:68px}.app-shell.game-shell .board{width:96%;max-height:none}.app-shell.game-shell .chat-panel{min-height:300px}.app-shell.game-shell .chat-feed{max-height:340px}.app-shell.game-shell .command-panel .chat-panel{min-height:150px}.app-shell.game-shell .command-panel .chat-feed{max-height:190px}.app-shell.game-shell .players-summary-card{top:130px;left:12px;width:min(260px,calc(100% - 24px))}.realtime-game .turn-banner{top:12px;right:12px;width:calc(100% - 24px)}}.game-shell{background:#1a1d24!important;color:#cdd4df!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif!important}.game-shell .game-layout{min-height:calc(100vh - 58px);padding:24px!important;gap:24px!important;display:grid!important;grid-template-columns:280px minmax(0,1fr) 280px!important;grid-template-rows:minmax(0,1fr) auto!important;grid-template-areas:"left center right" "bottom bottom bottom"!important;background:#1a1d24!important}.game-shell .left-sidebar{grid-area:left;display:flex;flex-direction:column;gap:0}.game-shell .right-sidebar{grid-area:right;display:flex;flex-direction:column}.game-shell .bottom-bar{grid-area:bottom;display:grid;grid-template-columns:1fr 1fr;gap:24px}.game-shell .board-area{grid-area:center;background:#2cb1e1!important;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;overflow:hidden;border:4px solid #2389b0}.game-shell .board-area:before{display:none!important}.game-logo{font-size:32px;font-weight:800;color:#f1f3f5;margin:0 0 16px;letter-spacing:1px}.mockup-left-panel{display:flex;flex-direction:column;background:#21262d;border:1px solid #30363d;border-radius:8px;padding:0;overflow:hidden}.players-list-mockup{display:flex;flex-direction:column;border-bottom:1px solid #30363d;padding:16px;gap:8px}.mockup-player-row{display:flex;align-items:center;gap:12px;font-size:15px;padding:6px;border-radius:6px;border:1px solid transparent}.mockup-player-row.current{background:#d5a15326;border-color:#d5a15380}.mockup-color-dot{width:14px;height:14px;border-radius:50%;display:inline-block;background:#8b949e}.mockup-color-dot.red{background:#f85149}.mockup-color-dot.orange{background:#e38634}.mockup-color-dot.blue{background:#58a6ff}.mockup-color-dot.green{background:#3fb950}.mockup-player-name{flex-grow:1;color:#cdd4df}.mockup-you-tag{font-size:12px;color:#8b949e;margin-left:4px}.mockup-player-row.own-player .mockup-player-name{font-weight:800;color:#fff}.mockup-player-score{color:#8b949e}.mockup-section-header{font-size:13px;font-weight:700;color:#cdd4df;text-transform:uppercase;letter-spacing:.5px;padding:16px 16px 8px}.mockup-resources-list{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}.mockup-resource-row{display:flex;align-items:center;gap:12px}.mockup-res-icon{width:24px;height:24px;border-radius:4px;background-color:#505c6a;background-image:url(/assets/terrain-atlas-v2-BVmOnHfy.png);background-size:500% auto;background-repeat:no-repeat}.mockup-res-icon.icon-wood{background-position:0 35%}.mockup-res-icon.icon-brick{background-position:25% 35%}.mockup-res-icon.icon-wheat{background-position:50% 35%}.mockup-res-icon.icon-ore{background-position:75% 35%}.mockup-res-icon.icon-wool{background-position:100% 35%}.mockup-res-name{flex-grow:1;color:#cdd4df;font-size:14px}.mockup-res-count{font-size:15px;color:#cdd4df}.mockup-vp-section{margin-top:16px;padding:16px;background:#21262d;border:1px solid #30363d;border-radius:8px}.mockup-vp-header{font-size:13px;color:#8b949e;text-transform:uppercase}.mockup-vp-score{font-size:20px;margin-top:4px;color:#cdd4df}.mockup-dev-hand{display:flex;gap:4px;margin-top:12px}.mockup-dev-card{width:32px;height:48px;background:#3b4555;border-radius:4px;border:1px solid #556277;background-image:url(/assets/development-cards-atlas-B37lekR3.png);background-size:300% 200%}.mockup-dev-card.card-knight{background-position:0 0}.mockup-dev-card.card-victory_point{background-position:50% 0}.mockup-dev-card.card-road_building{background-position:100% 0}.mockup-dev-card.card-year_of_plenty{background-position:0 100%}.mockup-dev-card.card-monopoly{background-position:50% 100%}.mockup-right-panel{display:flex;flex-direction:column;height:100%}.mockup-action-list{display:flex;flex-direction:column;gap:8px}.mockup-action-btn{background:transparent;border:1px solid #30363d;border-radius:6px;color:#cdd4df;padding:10px 16px;text-align:left;display:flex;align-items:center;gap:12px;font-size:14px;cursor:pointer;transition:background .1s}.mockup-action-btn:hover:not(:disabled){background:#30363d}.mockup-action-btn:disabled{opacity:.5;cursor:not-allowed}.mockup-build-icon{font-size:16px;width:20px;text-align:center}.mockup-end-turn-btn{background:#9c895c;color:#1a1d24;font-size:16px;font-weight:800;text-transform:uppercase;border:none;border-radius:6px;padding:16px;width:100%;cursor:pointer;margin-top:24px;box-shadow:0 4px #736442}.mockup-end-turn-btn:hover:not(:disabled){background:#a89462}.mockup-end-turn-btn:active:not(:disabled){transform:translateY(4px);box-shadow:none}.mockup-end-turn-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 4px #4a412b}.mockup-turn-banner{background:#21262d;border:1px solid #30363d;border-radius:8px;padding:12px 24px;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:10;box-shadow:0 8px 16px #0006;width:90%;max-width:700px;margin:16px 0;flex-shrink:0}.mockup-turn-title{font-size:16px;color:#cdd4df;font-weight:700;text-transform:uppercase}.mockup-dice-roll{font-size:14px;color:#8b949e}.mobile-players-panel,.mobile-game-controls,.players-panel .resource-grid,.players-panel .hand-label,.players-panel .development-hand-label,.players-panel .hand-development-grid,.players-panel .personal-summary,.game-shell .rulebook,.game-shell .target-hint,.game-shell .guided-actions,.game-shell .trade-panel{display:none!important}.bottom-bar>div{background:#21262d;border:1px solid #30363d;border-radius:8px;padding:16px;min-height:150px}
