:root{--font-display:"Cinzel", Georgia, "Times New Roman", serif;--font-body:"Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--board-bg:#fff;--board-sky-top:#8aa8c0;--board-sky-mid:#b8c8a8;--board-sky-bottom:#c8b898;--board-vignette:#5a5040;--board-mountain-light:#7a8898;--board-mountain-dark:#4a5668;--board-hill-light:#7a9468;--board-hill-dark:#4a6840;--board-water:#6aafd0;--board-water-dark:#4a8fb0;--board-water-shine:#d0eef8;--board-paper-dot:#8a7a60;--board-peak-light:#e8eef4;--board-map-border:#8a7a60;--board-city-fill:#fff;--board-city-body:#fff;--board-city-border:#c8bfb0;--board-label-bg:#fffffff0;--board-label-text:#2b2620;--board-link:#9a9080;--board-slot-empty:#ffffff8c;--board-slot-empty-fill:#fff;--board-slot-border:#c4b9a8;--card-shadow:0 2px 8px #2b26201f;--card-shadow-lift:0 8px 20px #2b262033;--ind-cotton-bg:#f5f0e6;--ind-cotton-border:#c4b59a;--ind-cotton-text:#5c4a32;--ind-goods-bg:#dceee3;--ind-goods-border:#6aab7a;--ind-goods-text:#1e5631;--ind-pottery-bg:#f5ddd0;--ind-pottery-border:#d4845a;--ind-pottery-text:#8b3a1a;--ind-coal-bg:#e8e8e8;--ind-coal-border:#666;--ind-coal-text:#2b2620;--ind-iron-bg:#ffe8d0;--ind-iron-border:#e87828;--ind-iron-text:#8a3810;--ind-brewery-bg:#fde68a;--ind-brewery-border:#d97706;--ind-brewery-text:#78350f;--card-location-bg:#dbeafe;--card-location-border:#2563eb;--card-location-text:#1e3a5f;--card-wild-bg:#fef3c7;--card-wild-border:#d97706;--card-wild-text:#78350f;--bg:#f4f1ea;--panel:#fff;--panel-2:#efece3;--text:#2b2620;--muted:#6f675c;--border:#d8d2c4;--accent:#8a5a2b;--human:#0f766e;--human-bg:#ccfbf1;--automa:#b91c1c;--automa-bg:#fee2e2;--canal:#3b82f6;--rail:#52525b;--highlight:#eab308;--card-select-glow:#5ab0c0;--build-slot-glow:#3dff6a;--danger:#b91c1c;--ok:#15803d;--p0:#0f766e;--p0-bg:#ccfbf1;--p1:#2563eb;--p1-bg:#dbeafe;--p2:#ca8a04;--p2-bg:#fef9c3;--p3:#9333ea;--p3-bg:#f3e8ff;--res-coal-fill:#1a1a1a;--res-coal-stroke:#5c5c5c;--res-iron-fill:#d86018;--res-iron-highlight:#f09040;--res-iron-stroke:#8a3810;--overlay-backdrop:color-mix(in srgb, var(--bg) 55%, transparent);--overlay-shadow:0 12px 40px #2b262038;--overlay-panel:#fff;--overlay-panel-2:#f5f2eb;--overlay-text:#2b2620;--overlay-muted:#6f675c;--overlay-border:#d8d2c4;--mat-tile-bg-top:#f8f4ec;--mat-tile-bg-bottom:#ebe4d8;--mat-tile-text:#2b2620;--mat-tile-border:#c4b59a;--board-valley:#d4c4a0;--board-valley-light:#e0d4b4;--board-forest:#4a6840;--board-contour:#5a46321f}:root[data-theme=dark]{--board-bg:#2a2e38;--board-sky-top:#343a48;--board-sky-mid:#323840;--board-sky-bottom:#3a3632;--board-vignette:#2e323c;--board-mountain-light:#5a6270;--board-mountain-dark:#404858;--board-hill-light:#4a6050;--board-hill-dark:#344840;--board-water:#4a7888;--board-water-dark:#3a5868;--board-water-shine:#7aa8b8;--board-paper-dot:#5a5668;--board-peak-light:#9aa4b0;--board-map-border:#525868;--board-city-fill:#3a3848;--board-city-body:#3a3848;--board-city-border:#5a5668;--board-label-bg:#3a3848eb;--board-label-text:#f0ebe0;--board-link:#7b7588;--board-slot-empty:#ffffff14;--board-slot-empty-fill:#4a4858;--board-slot-border:#5a5668;--card-shadow:0 2px 10px #00000047;--card-shadow-lift:0 10px 24px #00000052;--card-location-bg:#2e4568;--card-location-border:#60a5fa;--card-location-text:#dbeafe;--card-wild-bg:#6b4420;--card-wild-border:#fbbf24;--card-wild-text:#fef3c7;--bg:#2e323c;--panel:#3a3f4b;--panel-2:#454b58;--text:#f2ede4;--muted:#b8b2c4;--border:#565d6c;--accent:#d4a054;--human:#2dd4bf;--human-bg:#1f4f4a;--automa:#f87171;--automa-bg:#5f2a2a;--canal:#60a5fa;--rail:#a1a1aa;--highlight:#facc15;--card-select-glow:#6ec8e0;--build-slot-glow:#4dff78;--danger:#f87171;--ok:#4ade80;--p0:#2dd4bf;--p0-bg:#1f4f4a;--p1:#60a5fa;--p1-bg:#2e4568;--p2:#facc15;--p2-bg:#6b4a18;--p3:#c084fc;--p3-bg:#5a2878;--res-coal-fill:#4a4a4a;--res-coal-stroke:#f0f0f0;--res-iron-fill:#e87828;--res-iron-highlight:#ffb060;--res-iron-stroke:#ffd8a8;--overlay-backdrop:color-mix(in srgb, var(--bg) 78%, transparent);--overlay-shadow:0 12px 40px #00000052;--overlay-panel:var(--panel);--overlay-panel-2:var(--panel-2);--overlay-text:var(--text);--overlay-muted:var(--muted);--overlay-border:var(--border);--mat-tile-bg-top:#4a4438;--mat-tile-bg-bottom:#3a3428;--mat-tile-text:#f5f0e6;--mat-tile-border:#d4a017;--board-valley:#4a4438;--board-valley-light:#5a5448;--board-forest:#344840;--board-contour:#ffffff14;--ind-coal-bg:#3a3a3a;--ind-coal-border:#aaa;--ind-coal-text:#e8e8e8}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;text-rendering:optimizelegibility;margin:0;font-size:15px;font-weight:500}.app-title{font-family:var(--font-display);letter-spacing:.04em;margin:0;font-size:1.35rem;font-weight:700}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}button.selected{outline:2px solid var(--highlight)}.app{max-width:1400px;margin:0 auto;padding:10px}.topbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.topbar h1{color:var(--accent);margin:0;font-size:18px}.topbar .spacer{flex:1}.game-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:10px;min-height:0;display:grid}.app.in-game{box-sizing:border-box;flex-direction:column;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.app.in-game .game-layout.map-locked-layout{flex:1;min-height:0}.app.in-game .game-map-zone{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.app.in-game .board-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.app.in-game{max-height:100dvh;padding-bottom:0;overflow:hidden}.app.in-game .game-layout{flex:auto;min-height:0}.app.in-game .board-viewport-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.app.in-game .board-viewport{flex:1;height:auto!important;min-height:0!important;max-height:none!important}.app.in-game .board-pan-hint{flex-shrink:0}.side.side-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;scroll-padding-bottom:12px;overflow:hidden auto}.board-symbol-legend,.game-history,.game-history-reopen,.board-symbol-legend-reopen{flex-shrink:0}.game-hud{flex-direction:column;gap:10px;display:flex}.board-wrap{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:0;overflow:hidden}.board-viewport-wrap{position:relative}.board-viewport{touch-action:none;background:var(--panel-2);cursor:grab;-webkit-user-select:none;user-select:none;height:min(52vh,520px);min-height:280px;position:relative;overflow:hidden}.board-viewport.is-panning{cursor:grabbing}.board-pan-layer{transform-origin:0 0;backface-visibility:hidden;padding:6px;display:inline-block}.board-pan-layer svg{shape-rendering:geometricprecision;text-rendering:optimizelegibility;width:900px;max-width:none;height:auto;display:block}.board-zoom-toolbar{z-index:5;background:var(--panel);border:1px solid var(--border);border-radius:10px;gap:4px;padding:4px;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #0000001f}.board-zoom-toolbar button{min-width:36px;min-height:36px;padding:4px 10px;font-size:18px;font-weight:700;line-height:1}.board-pan-hint{color:var(--muted);text-align:center;border-top:1px solid var(--border);background:var(--panel);margin:0;padding:6px 10px 8px;font-size:11px}.side{flex-direction:column;gap:10px;min-width:0;display:flex}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:13px;font-weight:700}.stat-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.stat{background:var(--panel-2);white-space:nowrap;border-radius:8px;padding:3px 8px;font-size:13px}.stat b{font-size:15px}.hand{flex-wrap:wrap;gap:6px;display:flex}.card-chip{border:1px solid var(--border);background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;padding:6px 8px;font-size:13px}.card-chip.selected{outline:2px solid var(--highlight)}.card-chip.wild{border-style:dashed;border-color:var(--accent)}.actions{flex-wrap:wrap;gap:6px;display:flex}.option-list{flex-direction:column;gap:4px;max-height:260px;display:flex;overflow-y:auto}.option-list button{text-align:left;font-size:13px}.log{max-height:200px;color:var(--muted);flex-direction:column-reverse;gap:2px;font-size:12.5px;display:flex;overflow-y:auto}.log .recent{color:var(--text)}.gameover{background:color-mix(in srgb, var(--bg) 72%, transparent);z-index:30;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gameover .panel{text-align:center;max-width:420px;font-size:17px}.pass-panel{text-align:center;max-width:420px;padding:28px 24px}.pass-icon{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 16px;font-size:32px;display:flex}.pass-player{margin:0 0 12px;font-size:22px}.player-badge{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.tutorial-panel{flex-direction:column;width:min(720px,96vw);display:flex;overflow:hidden;text-align:left!important;max-width:min(720px,96vw)!important;max-height:92vh!important;padding:0!important;font-size:14px!important}.tutorial-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px 10px;display:flex}.tutorial-header h2{color:var(--accent);font-size:18px}.tutorial-progress{color:var(--muted);margin:4px 0 0;font-size:12px}.tutorial-progress-bar{background:var(--panel-2);height:3px}.tutorial-progress-fill{background:var(--accent);height:100%;transition:width .2s}.tutorial-layout{flex:1;grid-template-columns:200px 1fr;min-height:0;display:grid;overflow:hidden}.tutorial-index{border-right:1px solid var(--border);background:var(--panel-2);padding:8px;overflow-y:auto}.tutorial-index-toggle{width:100%;margin-bottom:8px;display:none}.tutorial-index-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.tutorial-index-list button{text-align:left;background:0 0;border:none;width:100%;padding:6px 8px;font-size:12px}.tutorial-index-list button.selected{background:var(--panel);color:var(--accent);font-weight:600}.tutorial-content{max-height:min(52vh,420px);padding:16px 18px;line-height:1.5;overflow-y:auto}.tutorial-step-title{color:var(--text);text-transform:none;letter-spacing:normal;margin:0 0 10px;font-size:20px}.tutorial-step-body{color:var(--text)}.tutorial-step-body a{color:var(--accent)}.tutorial-footer{border-top:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.tutorial-dots{flex-wrap:wrap;flex:1;justify-content:center;gap:4px;max-width:200px;display:flex}.tutorial-dot{background:var(--border);border:none;border-radius:50%;width:8px;min-width:8px;height:8px;padding:0}.tutorial-dot.active{background:var(--accent);transform:scale(1.15)}.tutorial-coach{z-index:60;padding:0 8px max(8px, env(safe-area-inset-bottom));pointer-events:none;position:fixed;bottom:0;left:0;right:0}.tutorial-coach-rail{pointer-events:auto;border:2px solid var(--accent);background:color-mix(in srgb, var(--panel) 92%, var(--bg));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:8px;max-width:640px;margin:0 auto;padding:6px 8px;display:flex;box-shadow:0 -4px 24px #00000047}.tutorial-coach-meta{text-align:left;cursor:pointer;min-width:0;color:var(--text);background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:2px 4px;display:flex}.tutorial-coach-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-size:10px;font-weight:700}.tutorial-coach-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.92rem;line-height:1.2;overflow:hidden}.tutorial-coach-wait{color:var(--accent);white-space:nowrap;flex:none;font-size:.72rem;font-weight:700}.tutorial-continue{white-space:nowrap;flex:none;margin:0;padding:8px 14px;font-size:.82rem}.tutorial-skip{flex:none;padding:6px 10px;font-size:11px}.tutorial-coach-sheet{pointer-events:auto;border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 96%, var(--bg));-webkit-overflow-scrolling:touch;border-radius:12px;max-width:640px;max-height:min(32vh,220px);margin:6px auto 0;padding:10px 12px;overflow-y:auto;box-shadow:0 6px 20px #00000038}.tutorial-coach-body{color:var(--text);margin:0;font-size:.88rem;line-height:1.45}.tutorial-coach-hint{color:var(--danger);margin:8px 0 0;font-size:13px}.tutorial-live-badge{font-weight:700;color:var(--accent)!important}.tutorial-focus{outline-offset:2px;animation:1.1s ease-in-out infinite tutorial-pulse;outline:3px solid var(--highlight)!important}.tutorial-focus[data-testid=board-viewport],.tutorial-focus[data-testid=board]{outline-offset:0;z-index:auto}@keyframes tutorial-pulse{0%,to{outline-color:var(--highlight)}50%{outline-color:var(--accent)}}@media (width<=900px){.game-layout.tutorial-active .game-play-dock{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}.strategy-panel{width:min(780px,96vw);max-width:min(780px,96vw)!important}.strategy-layout .tutorial-content{max-height:min(55vh,480px)}.strategy-subtitle{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px;font-size:13px;font-weight:600}.strategy-section{margin-bottom:14px}.strategy-section h4{color:var(--text);margin:0 0 4px;font-size:15px}.strategy-body{color:var(--text);font-size:14px;line-height:1.5}.strategy-quick-tips{background:var(--panel-2);border-bottom:1px solid var(--border);color:var(--muted);padding:8px 16px;font-size:13px}.strategy-tips-label{color:var(--accent);font-weight:700}.strategy-page-dots{flex-wrap:wrap;flex:1;justify-content:center;gap:4px;max-width:220px;display:flex}.setup-guides{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.setup-guides .primary{flex:1;min-width:160px}.concept-help-btn{min-width:2.25rem;font-weight:800}.concept-help-panel{width:min(640px,96vw);max-width:min(640px,96vw)!important}.concept-help-list{max-height:min(60vh,520px);padding:12px 16px 8px;overflow-y:auto}.concept-help-article{margin-bottom:16px}.concept-help-article h3{color:var(--accent);margin:0 0 6px;font-size:1.05rem}.concept-help-short{color:var(--muted);margin:0 0 10px;font-size:13px;font-weight:600;line-height:1.4}.concept-help-body{color:var(--text);font-size:14px;line-height:1.55}.game-layout.tutorial-active .side{padding-bottom:140px}@media (width<=900px){.game-layout.tutorial-active .side{padding-bottom:180px}.strategy-layout .tutorial-content{max-height:min(48vh,400px)}.strategy-page-dots{display:none}}.help-body{max-height:85vh;overflow-y:auto;text-align:left!important;max-width:640px!important;font-size:14px!important}.help-body h3{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:14px 0 4px;font-size:13px}.help-body p,.help-body ul{margin:4px 0;line-height:1.45}.help-body a{color:var(--accent)}.setup{flex-direction:column;gap:14px;max-width:560px;margin:8vh auto;display:flex}.mode-compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mode-compare-card{text-align:left;background:var(--panel-2);border:2px solid var(--border);cursor:pointer;color:inherit;font:inherit;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.mode-compare-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mode-compare-label{font-size:15px;font-weight:700}.mode-compare-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.mode-compare-stat{font-size:13px;line-height:1.35}.mode-compare-best{color:var(--muted);font-size:12px;line-height:1.35}.mode-intro-screen{z-index:120}.mode-intro-panel{text-align:left;max-width:520px;max-height:90vh;overflow-y:auto}.mode-intro-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0;font-size:12px}.mode-intro-subtitle{color:var(--muted);margin:4px 0 12px;font-size:14px}.mode-intro-facts{flex-direction:column;gap:10px;margin:0 0 14px;display:flex}.mode-intro-facts dt{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:2px;font-size:11px}.mode-intro-facts dd{margin:0;font-size:14px;line-height:1.45}.mode-intro-why h3{margin:0 0 6px;font-size:13px}.mode-intro-why ul{margin:0 0 12px;padding-left:1.2rem;font-size:14px;line-height:1.45}.mode-intro-compare{background:var(--panel-2);color:var(--muted);border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.4}.setup label{justify-content:space-between;align-items:center;gap:10px;display:flex}.setup select,.setup input{font:inherit;background:var(--panel-2);color:inherit;border:1px solid var(--border);border-radius:8px;padding:6px 10px}.training-scenario-objective{background:color-mix(in srgb, var(--accent) 12%, var(--panel));border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.training-scenario-badge{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;overflow:hidden}.training-dashboard-btn,.openings-guide-btn{font:inherit;border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:8px;padding:8px 12px}.training-dashboard{text-align:left;width:min(96vw,520px);max-width:520px}.training-dashboard-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.training-dashboard-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;display:grid}.training-dashboard-stat{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px}.training-dashboard-label{color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.training-dashboard-section{margin-top:12px;font-size:13px}.training-dashboard-section h3{margin:0 0 6px;font-size:14px}.training-dashboard-diff,.training-dashboard-mistakes{margin:0;padding-left:1.2rem}.training-dashboard-empty{color:var(--muted);font-size:13px}.training-dashboard-goals{margin:0;padding-left:1.2rem}.training-dashboard-goals .goal-met{color:var(--success,#2e7d32)}.training-dashboard-actions{flex-direction:column;gap:8px;margin:12px 0;display:flex}.training-summary-actions{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.training-coach-confidence{color:var(--muted);margin:0 0 8px;font-size:13px}.training-live-review-btn{width:100%;margin:6px 0}.weekly-goals-settings{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:8px;display:grid}.weekly-goals-settings label{flex-direction:column;gap:4px;font-size:12px;display:flex}.weekly-goals-settings input{font:inherit;padding:4px 8px}.training-review-launch{width:100%;margin:8px 0}.training-review-backdrop{z-index:1200;background:#000000b8;justify-content:center;align-items:stretch;padding:8px;display:flex;position:fixed;inset:0}.training-review{flex-direction:column;gap:10px;width:min(100%,960px);max-height:100%;display:flex;overflow:auto}.training-review-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.training-review-meta{color:var(--muted);margin:4px 0 0;font-size:13px}.training-review-filter{align-items:center;gap:8px;font-size:13px;display:flex}.training-review-filters{flex-wrap:wrap;gap:12px 16px;display:flex}.hotseat-coach-option{align-items:center;gap:8px;margin-top:8px;font-size:14px;display:flex}.training-review-body{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=720px){.training-review-body{grid-template-columns:1.2fr .8fr}}.training-review-map{min-height:280px}.training-review-side{flex-direction:column;gap:8px;display:flex}.training-review-hand{color:var(--muted);margin:0;font-size:13px}.training-review-nav{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.openings-panel .openings-intro{color:var(--muted);margin:8px 0 12px;font-size:13px;line-height:1.45}.openings-count-picker{gap:6px;margin-bottom:8px;display:flex}.openings-count-picker button{font:inherit;border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:999px;padding:4px 10px}.openings-count-picker button.active{background:color-mix(in srgb, var(--accent) 20%, var(--panel))}.openings-index{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.openings-index button{font:inherit;border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:8px;padding:4px 8px;font-size:11px}.openings-index button.selected{border-color:var(--accent)}.openings-plan-summary{color:var(--muted);margin:0 0 8px}.openings-plan ul{margin:0;padding-left:1.2rem;font-size:13px;line-height:1.45}.badge-human{color:var(--human);font-weight:700}.badge-automa{color:var(--automa);font-weight:700}.footer{text-align:center;max-width:760px;color:var(--muted);flex-direction:column;gap:4px;margin:18px auto 10px;font-size:12px;display:flex}.footer .disclaimer{opacity:.85}.footer a{color:var(--accent)}@media (width<=900px){.game-layout{grid-template-columns:1fr}.side{order:2}.tutorial-layout{grid-template-columns:1fr}.tutorial-index{border-right:none;border-bottom:1px solid var(--border);max-height:none}.tutorial-index-toggle{display:block}.tutorial-index:not(.open) .tutorial-index-list{display:none}.tutorial-content{max-height:min(45vh,360px)}.tutorial-dots{display:none}.topbar h1{font-size:16px}.option-list{max-height:190px}.mode-compare{grid-template-columns:1fr}body{font-size:14px}.app{padding:6px}}.game-card{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;transition:transform .18s,box-shadow .18s,opacity .15s;position:relative}.game-card-inner{border:2px solid var(--border);background:var(--panel);box-shadow:var(--card-shadow);border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:center;height:100%;display:flex;position:relative;overflow:hidden}.game-card-md .game-card-inner{width:76px;min-height:106px;padding:6px 4px 8px}.game-card-sm .game-card-inner{width:56px;min-height:78px;padding:4px 3px 6px}.game-card-lg .game-card-inner{width:100px;min-height:138px;padding:10px 8px 12px}.game-card-icon{justify-content:center;align-items:center;margin-bottom:4px;display:flex}.game-card-type{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:8px;font-weight:700}.game-card-title{font-size:10px;font-weight:800;font-family:var(--font-display);text-align:center;word-break:break-word;margin-top:2px;line-height:1.15}.game-card-location .game-card-title{font-size:11px}.game-card-stripe{border-radius:8px 0 0 8px;width:5px;position:absolute;top:0;bottom:0;left:0}.game-card-stripe.ind-cotton{background:var(--ind-cotton-border)}.game-card-stripe.ind-goods{background:var(--ind-goods-border)}.game-card-stripe.ind-pottery{background:var(--ind-pottery-border)}.game-card-stripe.ind-coal{background:var(--ind-coal-border)}.game-card-stripe.ind-iron{background:var(--ind-iron-border)}.game-card-stripe.ind-brewery{background:var(--ind-brewery-border)}.game-card-lg .game-card-title{font-size:12px}.game-card-dots{gap:3px;margin-top:4px;display:flex}.ind-dot{border-radius:50%;width:6px;height:6px}.game-card-back-pattern{opacity:.04;pointer-events:none;background:repeating-linear-gradient(45deg,currentColor 0 1px,#0000 1px 6px);position:absolute;inset:0}.game-card-location .game-card-inner{background:var(--card-location-bg);border-color:var(--card-location-border);color:var(--card-location-text)}.game-card.ind-cotton .game-card-inner{background:var(--ind-cotton-bg);border-color:var(--ind-cotton-border);color:var(--ind-cotton-text)}.game-card.ind-goods .game-card-inner{background:var(--ind-goods-bg);border-color:var(--ind-goods-border);color:var(--ind-goods-text)}.game-card.ind-pottery .game-card-inner{background:var(--ind-pottery-bg);border-color:var(--ind-pottery-border);color:var(--ind-pottery-text)}.game-card.ind-coal .game-card-inner{background:var(--ind-coal-bg);border-color:var(--ind-coal-border);color:var(--ind-coal-text)}.game-card.ind-iron .game-card-inner{background:var(--ind-iron-bg);border-color:var(--ind-iron-border);color:var(--ind-iron-text)}.game-card.ind-brewery .game-card-inner{background:var(--ind-brewery-bg);border-color:var(--ind-brewery-border);color:var(--ind-brewery-text)}.ind-cotton.ind-dot{background:var(--ind-cotton-border)}.ind-goods.ind-dot{background:var(--ind-goods-border)}.ind-pottery.ind-dot{background:var(--ind-pottery-border)}.ind-coal.ind-dot{background:var(--ind-coal-border)}.ind-iron.ind-dot{background:var(--ind-iron-border)}.ind-brewery.ind-dot{background:var(--ind-brewery-border)}.game-card-wild .game-card-inner{background:var(--card-wild-bg);border-color:var(--card-wild-border);color:var(--card-wild-text);border-style:dashed}.game-card.selected{z-index:5;transform:translateY(-12px)scale(1.06)}.game-card.selected .game-card-inner{outline:3px solid var(--card-select-glow);box-shadow:0 0 10px #5ab0c073, 0 0 22px #5ab0c040, var(--card-shadow-lift)}.game-card.card-location.selected .game-card-inner{outline-color:var(--card-location-border);box-shadow:0 0 12px color-mix(in srgb, var(--card-location-border) 55%, transparent), 0 0 24px color-mix(in srgb, var(--card-location-border) 30%, transparent), var(--card-shadow-lift)}.game-card.zone-orange.selected .game-card-inner{box-shadow:0 0 14px #c4883a80, 0 0 26px #c4883a40, var(--card-shadow-lift);outline-color:#c4883a}.game-card.zone-blueDark.selected .game-card-inner{box-shadow:0 0 14px #5a9fd88c, 0 0 26px #5a9fd84d, var(--card-shadow-lift);outline-color:#5a9fd8}.game-card.zone-cyan.selected .game-card-inner{box-shadow:0 0 14px #5ab0c08c, 0 0 26px #5ab0c04d, var(--card-shadow-lift);outline-color:#5ab0c0}.game-card.zone-red.selected .game-card-inner{box-shadow:0 0 14px #e0606080, 0 0 26px #e0606040, var(--card-shadow-lift);outline-color:#e06060}.game-card.zone-purple.selected .game-card-inner{box-shadow:0 0 14px #a888d080, 0 0 26px #a888d040, var(--card-shadow-lift);outline-color:#a888d0}.game-card.ind-cotton.selected .game-card-inner{outline-color:var(--ind-cotton-border);box-shadow:0 0 14px #c4b59a73, var(--card-shadow-lift)}.game-card.ind-goods.selected .game-card-inner{outline-color:var(--ind-goods-border);box-shadow:0 0 14px #6aab7a80, var(--card-shadow-lift)}.game-card.ind-pottery.selected .game-card-inner{outline-color:var(--ind-pottery-border);box-shadow:0 0 14px #d4845a80, var(--card-shadow-lift)}.game-card.ind-coal.selected .game-card-inner{box-shadow:0 0 14px #88888873, var(--card-shadow-lift);outline-color:#888}.game-card.ind-iron.selected .game-card-inner{outline-color:var(--ind-iron-border);box-shadow:0 0 14px #6b728073, var(--card-shadow-lift)}.game-card.ind-brewery.selected .game-card-inner{outline-color:var(--ind-brewery-border);box-shadow:0 0 14px #d977068c, var(--card-shadow-lift)}.game-card.disabled:not(.selected){opacity:.38;cursor:default;transform:none}.game-card.selected.disabled{opacity:1}.game-card:not(.disabled):hover{transform:translateY(-6px)}.hand-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin;margin:0 -4px;padding:8px 4px 4px;overflow:auto hidden}.hand-fan{gap:0;min-width:min-content;padding-bottom:4px;display:flex}.hand-fan .game-card{margin-left:-14px}.hand-fan .game-card:first-child{margin-left:0}.hand-heading{margin-top:12px;margin-bottom:0}.card-preview{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;margin:10px 0;padding:8px 10px;display:flex}.card-preview-label{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;flex-shrink:0;font-size:11px;font-weight:700}.card-preview .game-card{pointer-events:none}.action-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.action-tile{border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:6px 4px;font-size:11px;font-weight:600;transition:transform .12s,border-color .12s,background .12s;display:flex;position:relative}.action-tile:not(:disabled):active{transform:scale(.96)}.action-icon{font-size:18px;line-height:1}.action-tile.selected{background:var(--accent);color:var(--bg);border-color:var(--accent);outline:none}.action-tile.unavailable:not(:disabled){opacity:.55}.action-tile.recommended:not(.selected){border-color:#d4a020;box-shadow:0 0 0 2px #d4a02059}.action-rec-badge{color:#d4a020;font-size:10px;position:absolute;top:2px;right:4px}.action-intro-rec,.live-guide-line{color:#d4a020;font-weight:600}.live-guide-line{background:#d4a0201f;border:1px solid #d4a02059;border-radius:8px;margin:6px 0 4px;padding:6px 8px;font-size:13px}.mat-row-recommended{outline-offset:2px;border-radius:8px;outline:2px solid #d4a020}.option-btn.recommended:not(.selected){border-color:#d4a020;box-shadow:inset 3px 0 #d4a020}.play-assistant-list li.recommended-line{border-left:3px solid #d4a020;padding-left:8px}.player-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.player-stats{align-items:baseline;gap:12px;display:flex}.stat-money b{color:var(--ok);font-size:1.2rem}.stat-vp b{color:var(--accent);font-size:1.35rem}.stat-vp.vp-bump b{animation:.55s vp-pop}.stat-spent{color:var(--muted);white-space:nowrap;font-size:11px}.stat-spent b{color:var(--text);font-size:1rem}.stat-spent-leads b{color:var(--highlight)}.stat-spent-badge{background:var(--highlight);color:var(--bg);vertical-align:middle;border-radius:4px;margin-left:4px;padding:1px 4px;font-size:9px;font-weight:800;line-height:1.2;display:inline-block}.round-spending-topbar{flex-wrap:wrap;align-items:center;gap:4px;max-width:min(100%,440px);font-size:11px;line-height:1.3;display:inline-flex}.round-spending-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.round-spending-chip{align-items:center;gap:3px;display:inline-flex}.round-spending-chip.leads .round-spending-amount{color:var(--highlight)}.round-spending-sep{color:var(--muted);margin:0 2px}.round-spending-name{font-weight:700}.round-spending-amount{font-weight:800}@keyframes vp-pop{0%{transform:scale(1)}40%{color:var(--highlight);transform:scale(1.35)}to{transform:scale(1)}}.income-track{margin:8px 0 10px}.income-track-labels{color:var(--muted);justify-content:space-between;margin-bottom:3px;font-size:10px;display:flex}.income-track-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;height:10px;position:relative;overflow:visible}.income-track-fill{background:linear-gradient(90deg, var(--danger), var(--accent), var(--ok));opacity:.55;border-radius:999px;height:100%;transition:width .4s}.income-track-marker{background:var(--accent);border:2px solid var(--panel);border-radius:50%;width:14px;height:14px;margin-top:-7px;margin-left:-7px;transition:left .4s;position:absolute;top:50%;box-shadow:0 1px 4px #0003}.income-track-value{color:var(--muted);margin-top:4px;font-size:12px}.income-track-compact{margin:4px 0 0}.income-track-compact .income-track-bar{height:8px}.income-track-compact .income-track-marker{width:11px;height:11px;margin-top:-5px;margin-left:-5px}.income-track-compact .income-track-value{margin-top:2px;font-size:10px}.player-card{margin-bottom:0}.player-card-compact{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;margin-bottom:6px;padding:8px 10px}.player-card-compact:last-child{margin-bottom:0}.player-card-deck{color:var(--muted);margin-top:6px;font-size:11px}.player-network-supply{color:var(--muted);align-items:center;gap:6px;margin-top:6px;font-size:11px;display:inline-flex}.player-network-supply svg{color:var(--canal);flex-shrink:0}.player-network-supply b{color:var(--text);font-size:13px}.rivals-section{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.rivals-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:10px;font-weight:800}.muted-inline{color:var(--muted);font-size:12px}.markets-grid{grid-template-columns:1fr;gap:8px;display:grid}.side .markets-grid{grid-template-columns:1fr}.market-strip{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:10px;padding:8px}.market-strip.ind-coal{border-color:var(--ind-coal-border)}.market-strip.ind-iron{border-color:var(--ind-iron-border)}.markets-panel{min-width:0;overflow:visible}.market-strip-header{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.market-price{color:var(--ok);margin-left:auto}.market-hint{color:var(--muted);margin:0 0 8px;font-size:11px;line-height:1.35}.market-coal-note{border:1px solid color-mix(in srgb, var(--ind-coal-border) 55%, transparent);color:var(--muted);background:#2e2e2e14;border-radius:6px;margin:0 0 6px;padding:4px 6px;font-size:10px;line-height:1.35}.market-strip.ind-coal .market-coal-note{color:color-mix(in srgb, var(--ind-coal-text) 75%, var(--muted))}.market-strip-title{min-width:0;color:var(--text);flex:auto;line-height:1.2}.market-cubes{flex-wrap:nowrap;gap:3px;padding:2px 0;display:flex;overflow-x:auto}.market-ladder{flex-wrap:nowrap;gap:2px;padding:2px 0 4px;display:flex;overflow-x:auto}.market-ladder-cell{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.market-ladder-cell.buy-here .market-price{color:var(--accent);font-weight:700}.market-price{color:var(--muted);font-size:8px;font-weight:600;line-height:1}.market-cube{border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:14px;height:14px}.market-strip.ind-coal .market-cube.filled{background:#1a1a1a;border-color:#2b2620;box-shadow:inset 0 0 0 1px #ffffff1f}.market-strip.ind-iron .market-cube.filled{background:linear-gradient(145deg, var(--res-iron-highlight), var(--res-iron-fill));border-color:var(--res-iron-stroke);box-shadow:inset 0 1px #ffffff59}.market-cube.empty{background:var(--panel);border-color:var(--border);opacity:.85;border-style:dashed}.market-cube.sell-next{border-color:var(--ok);opacity:1;box-shadow:0 0 0 2px #4ade8059}.market-cube-legend{color:var(--muted);gap:10px;margin:4px 0 6px;font-size:9px;display:flex}.legend-filled{color:var(--text)}.legend-empty{color:var(--muted)}.market-stats{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:4px 8px;padding-top:4px;display:grid}.market-stat{flex-direction:column;gap:1px;font-size:10px;display:flex}.market-stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.market-stat-value{color:var(--text)}.market-stat-value b{font-size:13px}.market-stat-sell .market-stat-value b{color:var(--ok);font-size:15px}.market-stat-value.market-full b,.market-full{color:var(--danger);font-weight:700}.market-buy b{color:var(--accent)}.market-sell b{color:var(--ok)}.market-count{display:none}:root[data-theme=dark] .market-strip{--market-text:#f2ede4;--market-muted:#b8b2c4;--market-border:var(--border);background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);border-color:var(--market-border);color:var(--market-text);box-shadow:inset 0 1px #ffffff0a}:root[data-theme=dark] .market-strip.ind-coal{border-color:color-mix(in srgb, #888 35%, var(--market-border))}:root[data-theme=dark] .market-strip.ind-iron{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 88%, #8a5020) 0%, var(--panel-2) 100%);border-color:color-mix(in srgb, #ffd8a8 35%, var(--market-border))}:root[data-theme=dark] .market-coal-note{border-color:color-mix(in srgb, var(--market-border) 80%, transparent);color:var(--market-muted);background:#ffffff0f}:root[data-theme=dark] .market-strip.ind-coal .market-coal-note{color:var(--market-muted)}:root[data-theme=dark] .market-strip-title,:root[data-theme=dark] .legend-filled{color:var(--market-text)}:root[data-theme=dark] .market-cube-legend,:root[data-theme=dark] .legend-empty{color:var(--market-muted)}:root[data-theme=dark] .market-price{color:color-mix(in srgb, var(--market-muted) 90%, var(--market-text))}:root[data-theme=dark] .market-cube{border-color:var(--market-border)}:root[data-theme=dark] .market-strip.ind-coal .market-cube.filled{background:#3a3a3a;border-color:#888;box-shadow:inset 0 1px #ffffff1a}:root[data-theme=dark] .market-cube.empty{border-color:color-mix(in srgb, var(--market-muted) 55%, var(--market-border));background:#ffffff0d}:root[data-theme=dark] .market-stats{border-top-color:#ffffff0f}:root[data-theme=dark] .market-stat-label{color:color-mix(in srgb, var(--market-muted) 85%, var(--market-text))}:root[data-theme=dark] .market-stat-value{color:var(--market-text)}.option-btn{text-align:left;border-left-width:4px}.option-btn.ind-cotton{border-left-color:var(--ind-cotton-border)}.option-btn.ind-goods{border-left-color:var(--ind-goods-border)}.option-btn.ind-pottery{border-left-color:var(--ind-pottery-border)}.option-btn.ind-coal{border-left-color:var(--ind-coal-border)}.option-btn.ind-iron{border-left-color:var(--ind-iron-border)}.option-btn.ind-brewery{border-left-color:var(--ind-brewery-border)}.option-btn.option-network{border-left-color:var(--canal)}.player-mat{padding:8px 10px}.player-mat h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:12px}.player-mat-collapsible{padding:0;overflow:hidden}.player-mat-collapsible summary{cursor:pointer;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;font-size:12px;font-weight:700;list-style:none}.player-mat-summary{justify-content:space-between;align-items:center;gap:8px;display:flex}.player-mat-expand-btn{font:inherit;text-transform:none;letter-spacing:0;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:600}.player-mat-expand-btn:hover{border-color:var(--accent);color:var(--accent)}.player-mat-collapsible summary::-webkit-details-marker{display:none}.player-mat-collapsible summary:before{content:"▸ ";color:var(--accent)}.player-mat-collapsible[open] summary:before{content:"▾ "}.player-mat-collapsible .player-mat-grid{padding:0 10px 10px}.player-mat-grid{flex-direction:column;gap:4px;display:flex}.mat-row{flex-direction:column;gap:2px;display:flex}.mat-row-label{color:var(--text);align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.mat-row-name{flex:1;min-width:0}.mat-row-total{color:var(--muted);text-align:right;min-width:14px;font-size:10px}.mat-slots{flex-wrap:wrap;gap:4px;display:flex}.mat-tile{border:2px solid var(--mat-tile-border);background:linear-gradient(165deg, var(--mat-tile-bg-top) 0%, var(--mat-tile-bg-bottom) 55%, color-mix(in srgb, var(--mat-tile-bg-bottom) 85%, var(--panel-2)) 100%);width:54px;height:68px;box-shadow:var(--card-shadow), inset 0 1px 0 #ffffff40;color:var(--mat-tile-text);border-radius:7px;flex-shrink:0;position:relative;overflow:hidden}.mat-tile.available{border-color:var(--mat-tile-border);box-shadow:0 0 0 1px color-mix(in srgb, var(--mat-tile-border) 35%, transparent), var(--card-shadow-lift)}.mat-tile.empty{opacity:.38;border-color:var(--border);box-shadow:none}.mat-tile.era-locked{filter:saturate(.65)}.mat-tile-ban{z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 45%,#dc282826 0%,#0000 55%);position:absolute;inset:0}.mat-tile-ban:after{content:"";border:3px solid #e03030;border-radius:50%;width:34px;height:34px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0006}.mat-tile-ban:before{content:"";z-index:1;background:#e03030;border-radius:2px;width:28px;height:3px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.mat-tile-stack{z-index:4;background:color-mix(in srgb, var(--mat-tile-text) 82%, transparent);color:#ffe082;border:1px solid #d4a01759;border-radius:4px;padding:1px 4px;font-size:7px;font-weight:800;position:absolute;top:22px;left:3px}.mat-tile-top{z-index:2;justify-content:space-between;align-items:center;gap:2px;display:flex;position:absolute;top:3px;left:3px;right:3px}.mat-tile-badge{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 3px;font-size:7px;font-weight:800;line-height:1;display:inline-flex;position:relative;box-shadow:0 1px 2px #00000073}.mat-tile-cost{color:#3a2208;background:linear-gradient(145deg,#f0c040,#b87818)}.mat-tile-vp{color:#f5ecff;letter-spacing:-.02em;background:linear-gradient(145deg,#9b6ad8,#5a3090);border-radius:4px;min-width:15px}.mat-tile-icon{z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.mat-tile-side{z-index:2;flex-direction:column;gap:1px;font-size:6px;font-weight:700;display:flex;position:absolute}.mat-tile-resources{bottom:14px;left:3px}.mat-tile-rewards{align-items:flex-end;bottom:14px;right:3px}.mat-res{align-items:center;gap:1px;line-height:1;display:inline-flex}.mat-res-cube{border-radius:1px;width:5px;height:5px;display:inline-block}.mat-res-cube.coal{background:var(--res-coal-fill);border:1.5px solid var(--res-coal-stroke);box-shadow:0 0 0 1px color-mix(in srgb, var(--res-coal-stroke) 35%, transparent)}.mat-res-cube.iron{background:linear-gradient(145deg, var(--res-iron-highlight), var(--res-iron-fill));border:1.5px solid var(--res-iron-stroke);box-shadow:inset 0 1px #ffffff59}.mat-tile-income{color:var(--mat-tile-text);align-items:center;gap:1px;font-size:7px;font-weight:800;line-height:1;display:inline-flex}.mat-income-arrow{color:#2a7040;flex-shrink:0}:root[data-theme=dark] .mat-income-arrow{color:#4ade80}.mat-tile-beer-sell{z-index:2;color:#b45309;background:#b453091f;border:1px solid #b4530959;border-radius:4px;align-items:center;gap:1px;padding:1px 2px;font-size:6px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:20px;right:3px}.mat-beer-sell-sign{font-size:7px;font-weight:800;line-height:1}.mat-tile-linkvp{color:#eff6ff;letter-spacing:-.02em;min-width:15px;text-shadow:none;background:linear-gradient(145deg,#5a9fd8,#2563eb);border-radius:4px}.mat-tile-level{font-size:9px;font-weight:800;font-family:var(--font-display);color:#d4a017;text-shadow:0 1px 2px #000c;z-index:2;pointer-events:none;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.mat-row.ind-cotton .mat-tile.available{border-color:var(--ind-cotton-border)}.mat-row.ind-goods .mat-tile.available{border-color:var(--ind-goods-border)}.mat-row.ind-pottery .mat-tile.available{border-color:var(--ind-pottery-border)}.mat-row.ind-coal .mat-tile.available{border-color:var(--ind-coal-border);color:var(--ind-coal-text);background:linear-gradient(165deg,#f0f0f0 0%,#e0e0e0 55%,#d0d0d0 100%)}:root[data-theme=dark] .mat-row.ind-coal .mat-tile.available{color:#f0f0f0;background:linear-gradient(165deg,#5a5a5a 0%,#3a3a3a 55%,#2a2a2a 100%)}.mat-row.ind-iron .mat-tile.available{border-color:var(--res-iron-stroke);color:#5c3010;background:linear-gradient(165deg,#fff0e0 0%,#ffe0c0 55%,#ffd0a0 100%)}.mat-row.ind-brewery .mat-tile.available{border-color:var(--ind-brewery-border)}.player-mat-fullscreen{z-index:45;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}.player-mat-fullscreen-backdrop{background:color-mix(in srgb, var(--bg) 78%, transparent);cursor:pointer;border:none;position:absolute;inset:0}.player-mat-fullscreen-panel{z-index:1;text-align:left;flex-direction:column;width:min(100%,720px);max-height:100%;margin:auto;padding:0;display:flex;position:relative;overflow:hidden}.player-mat-fullscreen-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.player-mat-fullscreen-header h2{margin:0;font-size:15px;font-weight:700}.player-mat-fullscreen-panel .player-mat-grid{flex:1;min-height:0;padding:14px;overflow-y:auto}.player-mat-grid-large{gap:12px}.player-mat-grid-large .mat-row{gap:6px}.player-mat-grid-large .mat-row-label{font-size:13px}.player-mat-grid-large .mat-row-label svg{width:18px!important;height:18px!important}.player-mat-grid-large .mat-slots{gap:8px}.player-mat-grid-large .mat-tile{border-radius:9px;width:88px;height:112px}.player-mat-grid-large .mat-tile-top{padding:4px 5px}.player-mat-grid-large .mat-tile-badge{padding:1px 4px;font-size:11px}.player-mat-grid-large .mat-tile-icon svg{width:36px!important;height:36px!important}.player-mat-grid-large .mat-tile-side{font-size:10px}.player-mat-grid-large .mat-tile-level{font-size:12px}.player-mat-grid-large .mat-tile-stack{padding:2px 5px;font-size:11px;top:30px}.player-mat-grid-large .mat-tile-income{font-size:10px}.player-mat-grid-large .mat-income-arrow{width:12px;height:12px}.player-mat-grid-large .mat-tile-beer-sell{font-size:9px;top:26px;right:5px}.era-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:700}.era-badge.era-canal{color:var(--canal);background:#3b82f626;border:1px solid #3b82f659}.era-badge.era-rail{color:var(--rail);background:#52525b26;border:1px solid #52525b59}.merchant-ring{color:var(--text)}.merchant-ring-slot{justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.merchant-ring-slot.blank{opacity:.4;font-size:10px}.merchant-beer-row{justify-content:center;gap:1px;width:100%;display:flex}.merchant-beer{opacity:.25;font-size:9px}.merchant-beer.filled{opacity:1}.board-symbol-legend{padding:0;overflow:visible}.board-symbol-legend-summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:700;list-style:none;display:flex}.board-symbol-legend>summary::-webkit-details-marker{display:none}.board-symbol-legend-summary::-webkit-details-marker{display:none}.board-symbol-legend-summary:before{content:"▸ ";font-size:10px}.board-symbol-legend[open] .board-symbol-legend-summary:before{content:"▾ "}.board-symbol-legend-actions{align-items:center;gap:4px;display:inline-flex}.board-symbol-legend-expand{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;text-transform:none;letter-spacing:0;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;line-height:1.2}.board-symbol-legend-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 8px;font-size:16px;line-height:1}.board-symbol-legend-list{flex-direction:column;gap:6px;max-height:min(28vh,200px);margin:0;padding:0 10px 8px;list-style:none;display:flex;overflow-y:auto}.board-symbol-legend-list.is-expanded,.board-symbol-legend.is-expanded .board-symbol-legend-list{max-height:min(55dvh,420px)}.board-symbol-legend-reopen{text-align:left;border:1px dashed var(--border);background:var(--panel-2);width:100%;color:var(--muted);cursor:pointer;border-radius:10px;padding:8px 10px;font-size:12px}.board-symbol-legend-list li{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.board-symbol-sample{flex-shrink:0;justify-content:center;align-items:center;width:28px;min-height:28px;display:flex}.board-symbol-sample-text{color:var(--text);font-size:13px;font-weight:800;line-height:1}.board-symbol-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.board-symbol-meta strong{color:var(--text);font-size:12px;font-weight:700}.board-symbol-meta span:last-child{color:var(--muted);font-size:11px;line-height:1.35}.board-symbol-cubes{align-items:center;gap:2px;display:inline-flex}.board-symbol-cube-lg.mat-res-cube{border-radius:2px;width:12px;height:12px}.board-symbol-owner-dot{background:var(--p0);border:2px solid var(--panel);width:12px;height:12px;box-shadow:0 0 0 1px var(--border);border-radius:50%;display:inline-block}.board-symbol-linkvp{color:#9333ea;font-size:13px;font-weight:800}:root[data-theme=dark] .board-symbol-linkvp{color:#c084fc}.era-score-backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.era-score-modal{width:min(480px,100%);max-height:min(90dvh,640px);padding:20px;overflow-y:auto;box-shadow:0 20px 50px #00000059}.era-score-modal h2{font-family:var(--font-display);margin:0 0 8px;font-size:1.25rem}.era-score-result{color:var(--accent);margin:0 0 12px;font-size:1.05rem;font-weight:700}.era-score-table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:13px}.era-score-table th,.era-score-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.era-score-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px}.era-score-ranking{margin:0 0 16px;padding-left:20px;font-size:14px}.era-score-continue{width:100%;padding:12px;font-size:15px}.automa-feed{padding:8px 10px}.automa-feed h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:11px}.automa-feed-list{color:var(--text);margin:0;padding-left:16px;font-size:12px;line-height:1.35}.automa-feed-list li{margin-bottom:4px}.automa-feed-list li:last-child{margin-bottom:0}@media (width<=900px){.era-score-modal{padding:14px}.era-score-table{font-size:12px}.era-score-table th:nth-child(2),.era-score-table td:nth-child(2),.era-score-table th:nth-child(3),.era-score-table td:nth-child(3){display:none}}.board-svg{background:var(--board-bg);border-radius:12px;box-shadow:0 4px 24px #2b26202e}.board-map-art{pointer-events:none}.board-map-art .board-map-surface{fill:var(--board-bg)}.board-map-art .board-map-frame{fill:none;stroke:var(--board-map-border);stroke-width:2px}:root[data-theme=dark] .board-svg{box-shadow:0 8px 32px #00000073}.board-highlight-pulse rect,.board-highlight-pulse line{animation:1s ease-in-out infinite board-highlight-stroke}.board-slot-build-target .board-slot-glow-ring{animation:1.2s ease-in-out infinite board-slot-glow-pulse}.board-slot-build-target rect:not(.board-slot-glow-ring),.board-slot-build-target circle{filter:drop-shadow(0 0 3px var(--build-slot-glow)) drop-shadow(0 0 7px #3dff6a73)}.card-focus-hint{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.35}.card-focus-hint strong{color:var(--accent)}.board-city-card-focus .city-banner-active,.board-city-card-focus .city-label{filter:drop-shadow(0 0 6px #ffffff40)}.board-city-card-focus rect:not(.board-city-focus-ring){filter:drop-shadow(0 0 8px #ffffff1f)}.board-city-focus-ring{animation:1.1s ease-in-out infinite board-city-focus-pulse}@keyframes board-city-focus-pulse{0%,to{stroke-opacity:1;stroke-width:2.5px}50%{stroke-opacity:.65;stroke-width:3.5px}}.board-city-card-target .city-banner-active{filter:drop-shadow(0 0 4px var(--card-select-glow)) drop-shadow(0 0 10px #5ab0c08c)}.board-city-card-target .city-label{paint-order:stroke fill;stroke:#00000059;stroke-width:2px}@keyframes board-slot-glow-pulse{0%,to{stroke-opacity:1;stroke-width:2px}50%{stroke-opacity:.75;stroke-width:3px}}@keyframes board-highlight-stroke{0%,to{stroke-width:3px}50%{stroke-width:4px}}.board-training-pro line{stroke-width:9px;stroke-dasharray:8 5;animation:1.2s ease-in-out infinite board-training-pro-stroke;stroke:var(--accent)!important}.board-training-pro-slot .board-slot-glow-ring{stroke:var(--accent);stroke-dasharray:5 3;animation:1.2s ease-in-out infinite board-training-pro-stroke}.board-training-pro-slot rect,.board-training-pro-slot circle{stroke:var(--accent)!important}@keyframes board-training-pro-stroke{0%,to{stroke-opacity:1}50%{stroke-opacity:.65}}.tile-flipped{opacity:.72}.toast-stack{z-index:100;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;top:56px;right:12px}.toast{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;animation:.25s toast-in,.3s 2.4s forwards toast-out;box-shadow:0 4px 16px #00000026}.toast-vp{border-color:var(--accent);color:var(--accent)}.toast-coin{border-color:var(--ok);color:var(--ok)}.toast-era{border-color:var(--canal);color:var(--canal)}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(-8px)}}.log-line.recent{border-left:3px solid var(--accent);padding-left:6px}.farm-label{paint-order:stroke fill;stroke:var(--board-label-bg);stroke-width:3px;stroke-linejoin:round}.board-linkvp-badge{pointer-events:none}.board-linkvp-badge path{filter:drop-shadow(0 0 2px #6ec8e899)}.link-transport-marker{filter:drop-shadow(0 1px 2px #00000073)}.merchant-bonus-glyph path,.merchant-bonus-glyph circle{filter:drop-shadow(0 0 1px #ffffff40)}.merchant-board-face .beer-mug-map.available,.tile-resource-badge .beer-mug-map.available{filter:drop-shadow(0 0 2px #facc158c)}.merchant-board-face .beer-mug-map.spent,.tile-resource-badge .beer-mug-map.spent{opacity:.35}.resource-cube.coal{fill:var(--res-coal-fill);stroke:var(--res-coal-stroke)}.resource-cube.iron{fill:var(--res-iron-fill);stroke:var(--res-iron-stroke)}.game-card.zone-orange .game-card-inner{color:#5c3d1e;background:#fff4e6;border-color:#c4883a}.game-card.zone-blueDark .game-card-inner{color:#1e3a5f;background:#e8f0ff;border-color:#3a6898}.game-card.zone-cyan .game-card-inner{color:#1a4048;background:#e6f7fa;border-color:#5ab0c0}.game-card.zone-red .game-card-inner{color:#5c2020;background:#ffecec;border-color:#a84848}.game-card.zone-purple .game-card-inner{color:#3d2858;background:#f3ecff;border-color:#9078b0}:root[data-theme=dark] .game-card.zone-orange .game-card-inner{color:#fff8eb;background:#3d3020;border-color:#c4883a}:root[data-theme=dark] .game-card.zone-blueDark .game-card-inner{color:#e8f0ff;background:#1a2840;border-color:#3a6898}:root[data-theme=dark] .game-card.zone-cyan .game-card-inner{color:#e8ffff;background:#1a3038;border-color:#5ab0c0}:root[data-theme=dark] .game-card.zone-red .game-card-inner{color:#ffe8e8;background:#301818;border-color:#a84848}:root[data-theme=dark] .game-card.zone-purple .game-card-inner{color:#f0e8ff;background:#281838;border-color:#9078b0}.game-card-zone-band{border-radius:8px 8px 0 0;height:14px;position:absolute;top:0;left:0;right:0}.location-slot-icons{flex-wrap:wrap;justify-content:center;gap:2px;max-width:100%;margin-top:3px;display:flex}.location-slot-cell{background:var(--board-slot-empty-fill,#fff);border:1px solid var(--board-slot-border);border-radius:4px;justify-content:center;align-items:center;gap:1px;padding:2px;display:flex}:root[data-theme=dark] .location-slot-cell{background:#3a3848;border-color:#ffffff26}.location-slot-icons-sm .location-slot-cell{min-width:14px;min-height:14px}.location-slot-icons-md .location-slot-cell{min-width:16px;min-height:16px}.zone-legend{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.zone-legend-chip{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:700}.board-city-selected rect:first-of-type{filter:drop-shadow(0 0 6px var(--card-select-glow))}.city-map-overlay{z-index:40;justify-content:center;align-items:center;padding:8px;display:flex;position:absolute;inset:0}.city-overlay-backdrop{background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;border:none;position:absolute;inset:0}.city-overlay-panel{z-index:1;border:1px solid var(--border);background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);width:min(100%,560px);max-height:96%;box-shadow:var(--overlay-shadow);color:var(--text);pointer-events:auto;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:12px 14px;display:flex;position:relative;overflow-y:auto}.city-overlay-cross{grid-template-rows:auto auto auto;grid-template-columns:1fr minmax(120px,140px) 1fr;place-items:stretch stretch;gap:8px;width:100%;display:grid}.slot-pos-top{grid-area:1/2}.slot-pos-right{grid-area:2/3}.slot-pos-bottom{grid-area:3/2}.slot-pos-left{grid-area:2/1}.slot-pos-single{grid-area:3/2}.slots-2 .slot-pos-top{grid-area:1/1/auto/4}.slots-2 .slot-pos-bottom{grid-area:3/1/auto/4}.city-overlay-empty-msg{text-align:center;grid-column:1/-1;padding:8px;font-size:11px}.city-overlay-center{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;grid-area:2/2;align-items:center;gap:6px;padding:10px 8px;display:flex}.city-overlay-ribbon{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:800}.city-overlay-zone-label{text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:700}.city-overlay-section{flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:4px;display:flex}.city-overlay-section-mats{flex-flow:row;justify-content:center;align-items:flex-start;gap:6px;display:flex}.city-overlay-section-mats.mats-2{gap:4px}.city-overlay-option{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px;display:flex}.city-overlay-build-hint{text-align:center;color:#3dba6a;text-transform:uppercase;letter-spacing:.04em;grid-column:1/-1;margin:0;padding:4px 8px;font-size:10px;font-weight:700}.city-overlay-ind-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:center;font-size:8px;font-weight:700;line-height:1.1}.city-overlay-option.can-build{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, var(--panel));box-shadow:0 0 0 2px color-mix(in srgb, var(--ok) 40%, transparent), 0 0 18px color-mix(in srgb, var(--ok) 20%, transparent);cursor:pointer}.city-overlay-option.can-build .mat-tile{box-shadow:0 0 14px #3dba6aa6}.city-overlay-option .mat-tile{width:54px;height:68px}.city-overlay-cost{color:#f0c040;text-align:center;margin:0;font-size:10px;font-weight:700}.city-overlay-build-btn{border-radius:999px;width:100%;min-width:54px;padding:6px 8px;font-size:11px;font-weight:800}.city-overlay-blocked-msg{color:#ff6b6b;text-align:left;text-transform:none;letter-spacing:0;max-width:100%;margin:0;padding:4px 2px 0;font-size:11px;font-weight:700;line-height:1.35}.city-overlay-inspect-hint{width:100%;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;margin:0 0 6px;padding:6px 10px;font-size:12px;line-height:1.4}.city-overlay-reqs-toggle{border:1px solid var(--border);background:var(--panel);color:var(--accent);cursor:pointer;border-radius:999px;width:100%;margin-top:4px;padding:4px 8px;font-size:10px;font-weight:700}.city-overlay-reqs{background:var(--panel);border:1px solid var(--border);text-align:left;border-radius:8px;flex-direction:column;gap:4px;width:100%;max-width:220px;margin:6px 0 0;padding:6px 8px;list-style:none;display:flex}.city-overlay-reqs li{align-items:flex-start;gap:6px;font-size:11px;line-height:1.35;display:flex}.city-overlay-reqs .req-mark{flex-shrink:0;width:12px;font-weight:800}.city-overlay-reqs .req-ok{color:var(--ok)}.city-overlay-reqs .req-fail{color:#ff6b6b}.city-overlay-no-tile{width:54px;height:68px;color:var(--muted);border:1px dashed var(--border);background:var(--panel-2);border-radius:8px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.city-overlay-option.is-expanded{max-width:240px}.city-overlay-option.blocked{opacity:1;border-color:#e0303059}.city-overlay-confirm{flex-direction:column;align-items:center;gap:4px;width:100%;padding-top:2px;display:flex}.city-overlay-confirm-text{text-align:center;color:var(--text);margin:0;font-size:9px;font-weight:700;line-height:1.25}.city-overlay-confirm-actions{flex-direction:column;gap:4px;width:100%;display:flex}.city-overlay-build-cancel{background:var(--panel-2)!important;color:var(--muted)!important;border:1px solid var(--border)!important}.city-overlay-hint{text-align:center;margin:0;font-size:8px}.city-overlay-links{text-align:center;padding:0 8px;font-size:10px}.city-overlay-cancel{border:2px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;padding:10px 28px;font-size:13px;font-weight:700}.city-overlay-cancel:hover{border-color:var(--accent)}@media (width<=900px) and (orientation:landscape){.city-overlay-cross{grid-template-columns:1fr minmax(96px,110px) 1fr;gap:4px}.city-overlay-option{gap:3px;padding:4px}.city-overlay-option .mat-tile{width:48px;height:60px}.city-overlay-build-btn{min-width:48px;padding:5px 6px;font-size:10px}.city-overlay-ribbon{padding:3px 8px;font-size:11px}}.merchant-overlay-panel{z-index:1;border:1px solid var(--border);background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);width:min(100%,360px);max-height:92%;box-shadow:var(--overlay-shadow);color:var(--text);pointer-events:auto;border-radius:14px;padding:16px 18px 14px;position:relative;overflow-y:auto}.merchant-overlay-title{font-family:var(--font-display);text-align:center;letter-spacing:.04em;margin:0 0 12px;font-size:1.15rem}.merchant-overlay-section{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:10px}.merchant-overlay-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.merchant-overlay-section h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:6px;margin:0 0 6px;font-size:10px;font-weight:800;display:flex}.merchant-overlay-section p{color:var(--text);margin:0;font-size:13px;line-height:1.4}.merchant-overlay-buys{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.merchant-overlay-slots{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.merchant-overlay-slots li{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.merchant-overlay-slots li.is-blank{opacity:.55}.merchant-slot-icon-wrap{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.merchant-slot-icon.blank{color:var(--muted);font-size:16px}.merchant-slot-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.merchant-slot-name{color:var(--text);font-size:13px;font-weight:700;line-height:1.25}.merchant-slot-detail{color:var(--muted);font-size:11px;line-height:1.35}.merchant-slot-icon-wrap-lg{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.merchant-slot-icon.is-blank{opacity:.4}.merchant-bonus-icon-only{justify-content:center;align-items:center;display:flex}.merchant-bonus-display{background:var(--panel-2);border:1px dashed var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:10px;display:flex}.merchant-bonus-display p{text-align:center;color:var(--text);margin:0;font-size:12px;font-weight:600}.merchant-ring-map{flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.merchant-stack-blank{color:var(--muted);font-size:10px}.merchant-slot-beer{align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.merchant-slot-beer.available{color:var(--ok)}.merchant-slot-beer.spent{color:var(--muted)}.merchant-slot-beer.spent .beer-mug-icon{opacity:.35;filter:grayscale()}.merchant-beer-summary{border-top:1px dashed var(--border);flex-direction:column;align-items:center;gap:6px;margin:10px 0 0;padding-top:8px;display:flex}.merchant-beer-summary p{color:var(--muted);text-align:center;margin:0;font-size:12px}.merchant-beer-summary strong{color:var(--ok);font-size:14px}.beer-mug-icon{vertical-align:middle;justify-content:center;align-items:center;line-height:0;display:inline-flex}.beer-mug-icon.available{filter:drop-shadow(0 0 2px #facc1573)}.beer-mug-icon.spent{opacity:.35;filter:grayscale()}.beer-mug-row{align-items:center;gap:4px;display:inline-flex}.merchant-overlay-buys li{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.merchant-overlay-buy-any{color:var(--muted);font-style:italic}.merchant-overlay-ring{justify-content:center;margin-top:4px;display:flex}.merchant-overlay-coal p{color:var(--muted);font-size:12px}.city-overlay-slot-guide{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;margin-bottom:4px;padding:10px 12px}.city-overlay-slot-guide h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:10px;font-weight:800}.city-slot-guide-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.city-slot-guide-item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.city-slot-guide-item.is-empty{opacity:.85}.city-slot-guide-icon{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.city-slot-guide-empty-icon{color:var(--muted);font-size:18px;line-height:1}.city-slot-guide-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.city-slot-guide-meta strong{color:var(--text);font-size:13px;font-weight:700;line-height:1.25}.city-slot-guide-owner{color:var(--muted);font-size:11px}.city-slot-guide-detail{color:var(--text);font-size:11px;line-height:1.35}.city-slot-guide-resource{align-items:center;gap:6px;display:flex}.city-slot-guide-resource .mat-res-cube{flex-shrink:0;width:10px;height:10px}.city-slot-guide-resource .board-symbol-cubes{flex-shrink:0}.city-slot-guide-icons{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}:root[data-theme=dark] .city-map-overlay .city-overlay-panel,:root[data-theme=dark] .merchant-map-overlay .merchant-overlay-panel{background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);color:var(--text);border-color:var(--border)}:root[data-theme=dark] .city-overlay-slot-guide,:root[data-theme=dark] .city-overlay-center,:root[data-theme=dark] .city-overlay-cancel{background:var(--panel);color:var(--text);border-color:var(--border)}:root[data-theme=dark] .city-slot-guide-item,:root[data-theme=dark] .city-overlay-option,:root[data-theme=dark] .merchant-overlay-slots li{background:var(--panel-2);color:var(--text);border-color:var(--border)}:root[data-theme=dark] .city-overlay-option.can-build{background:color-mix(in srgb, var(--ok) 12%, var(--panel))}:root[data-theme=dark] .city-slot-guide-meta strong,:root[data-theme=dark] .city-slot-guide-detail,:root[data-theme=dark] .city-overlay-slot-guide h4{color:var(--text)}:root[data-theme=dark] .city-slot-guide-owner,:root[data-theme=dark] .city-overlay-zone-label,:root[data-theme=dark] .city-overlay-ind-label{color:var(--muted)}.mat-tile,.player-mat,.player-mat-summary,.board-svg,.board-svg text{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mat-tile{cursor:pointer;touch-action:manipulation}.mat-tile-info-active{outline:2px solid var(--accent,#5ab0c0);outline-offset:1px;z-index:2}.tap-info-bubble{left:50%;bottom:max(12px, env(safe-area-inset-bottom));z-index:9000;border:1px solid var(--border);background:var(--panel);width:min(92vw,420px);color:var(--text);pointer-events:auto;border-radius:12px;padding:10px 36px 10px 14px;font-size:13px;line-height:1.45;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000047}.tap-info-bubble.map-tap-info{bottom:max(56px, calc(env(safe-area-inset-bottom) + 44px))}.tap-info-text{margin:0}.tap-info-close{width:28px;height:28px;color:var(--muted);cursor:pointer;touch-action:manipulation;z-index:1;background:0 0;border:none;border-radius:8px;font-size:20px;line-height:1;position:absolute;top:6px;right:8px}.player-mat-era-note{border:1px solid color-mix(in srgb, var(--canal) 40%, var(--border));background:color-mix(in srgb, var(--canal) 8%, var(--panel));color:var(--text);border-radius:8px;margin:0 0 8px;padding:6px 8px;font-size:12px;line-height:1.4}.topbar-assistant-btn{letter-spacing:.02em;border-radius:8px;align-items:center;gap:4px;font-weight:700;display:inline-flex;min-width:auto!important;padding:5px 10px!important;font-size:11px!important}.topbar-assistant-btn.active{background:color-mix(in srgb, var(--accent,#5ab0c0) 18%, var(--panel));border-color:var(--accent,#5ab0c0);color:var(--text)}.assistant-btn-icon{font-size:14px;line-height:1}.play-assistant{border:1px solid color-mix(in srgb, var(--accent,#5ab0c0) 35%, var(--border));background:linear-gradient(180deg, var(--panel) 0%, color-mix(in srgb, var(--accent,#5ab0c0) 6%, var(--panel)) 100%)}.play-assistant-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.play-assistant-header h3{margin:0;font-size:14px}.play-assistant-meta{color:var(--muted);margin:0;font-size:11px}.play-assistant-close{flex-shrink:0;padding:2px 8px;font-size:11px}.play-assistant-refresh{color:var(--accent,#5ab0c0);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}.play-assistant-list{margin:0;padding-left:1.1rem}.play-assistant-list li{margin-bottom:6px;font-size:13px;line-height:1.35}.play-assistant-list li strong{color:var(--accent,#5ab0c0)}.play-assistant-note{color:var(--muted);margin:0 0 8px;font-size:12px}.play-assistant-reason{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.35;display:block}.action-intro-hint{color:var(--text);background:var(--panel-alt,#ffffff0a);border-left:3px solid var(--accent,#c9a227);border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:13px;line-height:1.4}.option-btn .option-reason{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;line-height:1.3;display:block}.topbar-layout-btn{min-width:36px;line-height:1;padding:5px 8px!important;font-size:15px!important}.topbar-layout-btn.active{background:color-mix(in srgb, var(--accent,#5ab0c0) 15%, var(--panel));border-color:var(--accent,#5ab0c0)}.canal-era-warning{border:1px solid color-mix(in srgb, var(--canal) 35%, var(--border));background:color-mix(in srgb, var(--canal) 8%, var(--panel));border-radius:10px;padding:8px 10px}.canal-era-warning-urgent{border-color:color-mix(in srgb, #f59e0b 55%, var(--border));background:color-mix(in srgb, #f59e0b 12%, var(--panel));box-shadow:0 0 0 1px #f59e0b26}.canal-era-warning-title{letter-spacing:.02em;margin:0 0 4px;font-size:12px;font-weight:800}.canal-era-warning-body{color:var(--text);margin:0 0 4px;font-size:12px;line-height:1.4}.canal-era-warning-meta{color:var(--muted);margin:0;font-size:11px;font-weight:700}.canal-era-warning-urgent .canal-era-warning-meta{color:#b45309}.map-era-alert{border-color:color-mix(in srgb, #f59e0b 45%, var(--border));background:linear-gradient(180deg, var(--panel) 0%, color-mix(in srgb, #f59e0b 10%, var(--panel)) 100%)}.board-symbol-legend,.game-history,.game-history-reopen,.board-symbol-legend-reopen{flex-shrink:0;scroll-margin-bottom:8px}.game-history{padding:0;overflow:visible}.game-history-summary{cursor:pointer;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:700;list-style:none;display:flex}.game-history-actions{align-items:center;gap:4px;display:inline-flex}.game-history-expand{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;text-transform:none;letter-spacing:0;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;line-height:1.2}.game-history-summary::-webkit-details-marker{display:none}.game-history-summary:before{content:"▸ ";font-size:10px}.game-history[open] .game-history-summary:before{content:"▾ "}.game-history-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 8px;font-size:16px;line-height:1}.game-history-legend{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:0 10px 8px;display:flex}.game-history-legend-item{opacity:.95;white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.game-history-log{max-height:min(32vh,220px);padding:8px 10px;font-size:12px;line-height:1.4;overflow-y:auto}.game-history-log.is-expanded,.game-history.is-expanded .game-history-log{max-height:min(65dvh,520px)}.game-history-line{border-left:3px solid var(--border);background:color-mix(in srgb, var(--panel-2) 70%, transparent);border-radius:0 6px 6px 0;margin-bottom:6px;padding:4px 6px 4px 8px}.game-history-line:last-child{margin-bottom:0}.game-history-legend-item.game-history-line-p0,.game-history-line-p0{color:var(--p0);border-left-color:var(--p0);background:color-mix(in srgb, var(--p0-bg) 55%, var(--panel))}.game-history-legend-item.game-history-line-p1,.game-history-line-p1{color:var(--p1);border-left-color:var(--p1);background:color-mix(in srgb, var(--p1-bg) 55%, var(--panel))}.game-history-legend-item.game-history-line-p2,.game-history-line-p2{color:var(--p2);border-left-color:var(--p2);background:color-mix(in srgb, var(--p2-bg) 55%, var(--panel))}.game-history-legend-item.game-history-line-p3,.game-history-line-p3{color:var(--p3);border-left-color:var(--p3);background:color-mix(in srgb, var(--p3-bg) 55%, var(--panel))}.game-history-legend-item.game-history-line-system,.game-history-line-system{color:var(--muted);border-left-color:var(--muted);background:0 0;font-style:italic}.game-history-empty{color:var(--muted);margin:0;font-size:12px}.game-history-reopen{text-align:left;border:1px dashed var(--border);background:var(--panel-2);width:100%;color:var(--muted);cursor:pointer;border-radius:10px;padding:8px 10px;font-size:12px}.training-coach{border-left:4px solid var(--accent,#5ab0c0);margin-top:8px}.training-coach-excellent{border-left-color:#3a9d5c}.training-coach-good{border-left-color:#5ab0c0}.training-coach-ok{border-left-color:#c9a227}.training-coach-mistake{border-left-color:#c45c4a}.training-coach-header{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.training-coach-header h3{margin:0;font-size:15px}.training-coach-meta{color:var(--muted);margin:2px 0 0;font-size:11px}.training-coach-badge{white-space:nowrap;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:700}.training-coach-badge-excellent{background:color-mix(in srgb, #3a9d5c 20%, var(--panel));color:#3a9d5c}.training-coach-badge-good{background:color-mix(in srgb, var(--accent) 18%, var(--panel));color:var(--accent)}.training-coach-badge-ok{background:color-mix(in srgb, #c9a227 18%, var(--panel));color:#a88412}.training-coach-badge-mistake{background:color-mix(in srgb, #c45c4a 18%, var(--panel));color:#c45c4a}.training-coach-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.training-coach-summary{margin:0 0 10px;font-size:13px;line-height:1.4}.training-coach-belief{background:color-mix(in srgb, #c9a227 12%, var(--panel));border:1px dashed var(--border);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:12px;line-height:1.4}.training-coach-compare{flex-direction:column;gap:10px;display:flex}.training-coach-line{font-size:12px;line-height:1.35}.training-coach-line ul{color:var(--muted);margin:4px 0 0;padding-left:1.1rem}.training-coach-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px;font-size:10px;display:block}.training-coach-best strong{color:var(--accent)}.training-coach-alts{margin-top:8px;font-size:12px}.training-coach-alts summary{cursor:pointer;color:var(--muted)}.training-coach-score{color:var(--muted);font-size:11px}.training-summary{background:var(--panel-2);border:1px solid var(--border);text-align:left;border-radius:10px;margin:12px 0;padding:10px 12px}.training-summary h3{margin:0 0 6px;font-size:15px}.training-summary-meta{color:var(--muted);margin:0 0 8px;font-size:12px}.training-summary-bars{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.training-bar{border-radius:999px;padding:3px 8px;font-size:11px}.training-bar-excellent{background:color-mix(in srgb, #3a9d5c 18%, var(--panel));color:#3a9d5c}.training-bar-good{background:color-mix(in srgb, var(--accent) 15%, var(--panel))}.training-bar-ok{background:color-mix(in srgb, #c9a227 15%, var(--panel))}.training-bar-mistake{background:color-mix(in srgb, #c45c4a 15%, var(--panel));color:#c45c4a}.training-summary-issues ul,.training-summary-moves ol{margin:4px 0 0;padding-left:1.2rem;font-size:12px}.training-career{border-top:1px solid var(--border);margin-top:10px;padding-top:8px;font-size:12px}.training-career p{color:var(--muted);margin:4px 0 0}.coach-dock{pointer-events:auto;flex-direction:column;gap:6px;width:100%;display:flex}.coach-dock-map{z-index:36;width:auto;max-width:calc(100% - 12px);position:absolute;bottom:6px;left:6px;right:6px}.coach-dock-in-panel{border-bottom:1px solid var(--border);margin:0 0 10px;padding-bottom:10px;position:relative}.coach-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:700}.coach-rail{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--panel) 94%, var(--bg) 6%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;align-items:stretch;gap:0;min-height:44px;display:flex;box-shadow:0 4px 18px #00000038}.coach-dock[data-kind=block] .coach-rail{border-color:color-mix(in srgb, var(--danger) 50%, var(--border));background:color-mix(in srgb, var(--panel) 88%, var(--danger) 12%)}.coach-dock[data-kind=postmove] .coach-rail,.coach-dock[data-kind=choice] .coach-rail,.coach-dock[data-kind=fork] .coach-rail{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.coach-dock[data-kind=pattern] .coach-rail{border-color:color-mix(in srgb, var(--warning,#c9a227) 45%, var(--border))}.coach-dock[data-kind=plan] .coach-rail{border-color:color-mix(in srgb, var(--accent) 32%, var(--border))}.coach-dock[data-kind=scenario] .coach-rail{border-color:color-mix(in srgb, #3a8f5c 42%, var(--border))}.coach-rail-score{background:color-mix(in srgb, var(--accent) 16%, var(--panel));border-right:1px solid var(--border);border-radius:12px 0 0 12px;flex:none;justify-content:center;align-items:center;min-width:50px;padding:4px 8px;display:flex}.coach-rail-main{text-align:left;cursor:pointer;min-width:0;color:var(--text);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;gap:3px;padding:8px 10px;display:flex}.coach-rail-headline{-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:.86rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.coach-rail-sub{color:var(--muted);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:.74rem;line-height:1.35;display:-webkit-box;overflow:hidden}.coach-rail-actions{border-left:1px solid var(--border);border-radius:0 12px 12px 0;flex:none;align-items:stretch;display:flex;overflow:hidden}.coach-rail-icon{border:none;border-left:1px solid color-mix(in srgb, var(--border) 65%, transparent);width:38px;min-height:44px;color:var(--text);cursor:pointer;touch-action:manipulation;background:0 0;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:flex}.coach-rail-icon:first-child{border-left:none}.coach-rail-expand{color:var(--accent);font-size:.78rem;font-weight:700}.coach-sheet{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 98%, var(--bg));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;flex-direction:column;min-height:0;max-height:min(50dvh,360px);display:flex;overflow:hidden;box-shadow:0 8px 28px #00000047}.coach-tabs{border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:none;gap:4px;padding:6px 8px 0;display:flex;overflow-x:auto}.coach-tabs::-webkit-scrollbar{display:none}.coach-tab{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px 8px 0 0;flex:none;padding:7px 12px;font-size:.7rem;font-weight:700}.coach-tab.active{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel))}.coach-sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding:10px 12px 12px;overflow:hidden auto}.coach-pane{gap:8px;display:grid}.training-hint-reopen{z-index:35;border:1px solid var(--accent);background:color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);color:var(--text);cursor:pointer;pointer-events:auto;border-radius:999px;margin:0;padding:8px 14px;font-size:.78rem;font-weight:700;position:absolute;bottom:8px;left:8px;box-shadow:0 4px 16px #00000038}.app.in-game .game-map-zone:has(.coach-dock-open){padding-bottom:min(52dvh,380px)}.app.in-game .game-map-zone:has(.coach-dock-map){overflow:visible}.training-hint-plan{margin:0;padding-left:18px;font-size:.78rem;line-height:1.45}.training-hint-plan li{margin-bottom:6px}.training-hint-plan-phase{min-width:4.5rem;color:var(--accent);font-weight:700;display:inline-block}.training-hint-plan-label{margin-right:6px}.training-hint-plan-pct{color:var(--accent)}.training-hint-plan-reason{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.35}.training-scenario-status{text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.75rem;font-weight:700}.training-scenario-status[data-status=completed]{color:#3a8f5c}.training-scenario-status[data-status=on-track]{color:var(--accent)}.training-hint-drill{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));color:var(--text);cursor:pointer;text-align:left;border-radius:8px;width:100%;margin-top:4px;padding:8px 10px;font-size:.78rem;font-weight:600}.training-hint-pct{color:var(--accent);font-size:1.1rem;font-weight:700;line-height:1.1;display:block}.training-hint-detail{color:var(--text);word-break:break-word;margin:0;font-size:.84rem;line-height:1.4}.training-hint-best{color:var(--muted);word-break:break-word;margin:0;font-size:.8rem;line-height:1.35}.training-hint-best-label{color:var(--accent);font-weight:700}.training-hint-alts{flex-wrap:wrap;gap:6px;display:flex}.training-hint-alt{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 9px;font-size:.72rem}.training-hint-alt strong{color:var(--accent)}.training-hint-numeric-line{background:color-mix(in srgb, var(--bg) 88%, var(--accent) 12%);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.training-hint-numeric-head{justify-content:space-between;gap:8px;font-size:.8rem;font-weight:700;display:flex}.training-hint-numeric-head strong{color:var(--accent)}.training-hint-numeric-bullets{color:var(--muted);margin:6px 0 0;padding-left:18px;font-size:.76rem;line-height:1.4}.training-hint-board-summary{color:var(--muted);background:color-mix(in srgb, var(--bg) 90%, var(--panel));border:1px solid var(--border);word-break:break-word;border-radius:8px;margin:0;padding:8px 10px;font-size:.76rem;line-height:1.4}.training-hint-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin:0 0 4px;font-size:.72rem;font-weight:800;list-style:none}.training-hint-strategies{gap:8px;display:grid}.training-hint-strategy-theme{border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 88%, var(--accent) 12%);border-radius:8px;padding:8px 10px;font-size:.78rem;line-height:1.4}.training-hint-strategy-theme strong{color:var(--text);margin-bottom:4px;display:block}.training-hint-strategy-theme p{color:var(--muted);word-break:break-word;margin:0}.training-hint-card-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.training-hint-card-line{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:8px 10px;font-size:.76rem;line-height:1.4}.training-hint-card-head{justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.training-hint-card-head strong{color:var(--accent)}.training-hint-card-play{color:var(--text);word-break:break-word;font-weight:600;display:block}.training-hint-card-strategy{color:var(--muted);word-break:break-word;margin-top:4px;font-size:.74rem;display:block}@media (width>=900px){.coach-dock-map{width:min(440px,100% - 24px);bottom:12px;left:auto;right:12px}.training-hint-reopen{bottom:12px;left:auto;right:12px}.coach-sheet{max-height:min(55vh,400px)}}.setup-training-mode{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);border-radius:10px;align-items:flex-start;gap:10px;margin:12px 0;padding:10px 12px;font-size:.88rem;display:flex}.setup-training-mode input{margin-top:3px}.setup-training-mode strong{margin-bottom:4px;display:block}@media (width<=900px){.app.in-game{max-width:100%;padding:4px 4px 0}.app.in-game .footer{display:none}.app.in-game .topbar{border-bottom:1px solid var(--border);gap:4px;margin-bottom:4px;padding-bottom:4px}.app.in-game .app-title{letter-spacing:.06em;flex:auto;min-width:0;font-size:.95rem}.app.in-game .topbar .stat{white-space:normal;flex:100%;order:10;padding:4px 8px;font-size:11px;line-height:1.3}.app.in-game .topbar button[data-testid=undo],.app.in-game .topbar button[data-testid=new-game]{padding:5px 8px;font-size:11px}.topbar-ingame-tools{gap:4px;display:flex}.topbar-compact-btn{min-width:36px;line-height:1;padding:5px 8px!important;font-size:16px!important}.hand-fan .game-card{margin-left:-12px}.game-card-md .game-card-inner{width:70px;min-height:92px}.game-card:not(.disabled){opacity:1}.game-card.selected{z-index:8;transform:translateY(-12px)scale(1.06)}.game-card.selected .game-card-inner{outline:3px solid var(--card-select-glow);box-shadow:0 0 10px #5ab0c080, 0 0 20px #5ab0c047, var(--card-shadow-lift)}.game-card.zone-blueDark.selected .game-card-inner{box-shadow:0 0 14px #5a9fd899, 0 0 24px #5a9fd852, var(--card-shadow-lift);outline-color:#5a9fd8}.game-card.zone-orange.selected .game-card-inner{box-shadow:0 0 14px #c4883a8c, 0 0 24px #c4883a47, var(--card-shadow-lift);outline-color:#c4883a}.game-card.zone-cyan.selected .game-card-inner{box-shadow:0 0 14px #5ab0c099, 0 0 24px #5ab0c052, var(--card-shadow-lift);outline-color:#5ab0c0}.game-card.zone-red.selected .game-card-inner{box-shadow:0 0 14px #e060608c, 0 0 24px #e0606047, var(--card-shadow-lift);outline-color:#e06060}.game-card.zone-purple.selected .game-card-inner{box-shadow:0 0 14px #a888d08c, 0 0 24px #a888d047, var(--card-shadow-lift);outline-color:#a888d0}.hand-scroll{padding-top:14px}.app.in-game .topbar .spacer{display:none}.game-layout{gap:6px}.side{flex-direction:column;gap:6px;display:flex}.game-hud{grid-template-columns:1fr 1fr;gap:6px;display:grid}.game-hud .player-panel,.game-hud .markets-panel,.game-hud .player-mat{grid-column:1/-1;margin:0;padding:8px}.player-mat h3{font-size:11px}.mat-row-label{font-size:9px}.mat-tile{width:48px;height:60px}.player-header{margin-bottom:4px}.player-panel .income-track-labels,.player-card-human .income-track-value{display:none}.player-card-compact .income-track-value{display:block}.player-panel .income-track{margin:4px 0 6px}.player-panel .income-track-bar{height:8px}.rivals-row{font-size:11px;gap:4px!important}.rivals-row .stat{padding:2px 6px;font-size:11px}.markets-grid{grid-template-columns:1fr;gap:6px}.market-strip{padding:6px}.market-strip-header{margin-bottom:4px;font-size:11px}.market-hint{display:none}.market-cube-legend{margin:2px 0 4px;font-size:8px}.market-stats{grid-template-columns:1fr 1fr;gap:2px 6px}.market-stat-label{font-size:9px}.market-stat-sell .market-stat-value b{font-size:14px}.market-cubes{gap:2px}.market-cube{width:11px;height:11px}.board-viewport{height:min(42vh,360px)!important;min-height:220px!important}html[data-layout=landscape] .board-viewport{height:auto!important;min-height:0!important;max-height:none!important}.board-pan-hint{padding:4px 8px;font-size:10px;display:block}.board-zoom-toolbar{opacity:.92;transform-origin:100% 0;transform:scale(.9)}.game-play-dock{z-index:40;padding:8px 8px calc(10px + env(safe-area-inset-bottom,0px));border:1px solid var(--border);background:linear-gradient(180deg, var(--panel) 0%, var(--bg) 100%);border-bottom:none;border-radius:14px 14px 0 0;margin:0 -4px;position:sticky;bottom:0;box-shadow:0 -10px 28px #00000047}.game-play-dock h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px}.hand-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:8px;font-size:12px}.card-preview{display:none}.action-grid{gap:4px}.action-tile{border-radius:8px;min-height:46px;padding:4px 2px}.action-icon{font-size:16px}.action-label{font-size:9px}.hand-scroll{margin:0;padding:6px 0 2px}.option-list{max-height:130px;margin-top:6px!important}.log-collapsible{padding:0;overflow:hidden}.log-collapsible summary{cursor:pointer;color:var(--muted);padding:8px 10px;font-size:12px;font-weight:700;list-style:none}.log-collapsible summary::-webkit-details-marker{display:none}.log-collapsible summary:before{content:"▸ ";color:var(--accent)}.log-collapsible[open] summary:before{content:"▾ "}.log-collapsible .log{max-height:100px;padding:0 10px 8px}.game-layout.tutorial-active .game-play-dock{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.tutorial-coach-body{font-size:13px;line-height:1.4}.toast-stack{top:auto;bottom:calc(180px + env(safe-area-inset-bottom,0px));left:8px;right:8px}.toast{text-align:center}}@media (width<=900px) and (orientation:landscape){.app.in-game{flex-direction:column;height:100dvh;max-height:100dvh;padding:2px 4px 0;display:flex;overflow:hidden}.app.in-game .topbar{flex-wrap:nowrap;flex-shrink:0;align-items:center;margin-bottom:2px;padding-bottom:2px}.app.in-game .app-title{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:28vw;font-size:.85rem;overflow:hidden}.app.in-game .topbar .stat{white-space:nowrap;text-overflow:ellipsis;flex:auto;order:0;padding:2px 6px;font-size:10px;line-height:1.2;overflow:hidden}.era-badge{padding:2px 6px;font-size:9px}.player-mat{padding:4px 6px}.player-mat-grid{gap:2px}.app.in-game .topbar .spacer{flex:0 0 4px;display:block}.app.in-game .topbar button[data-testid=undo],.app.in-game .topbar button[data-testid=new-game]{padding:4px 6px;font-size:10px}.game-layout{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(240px,34vw,320px);align-items:stretch;gap:4px;min-height:0;display:grid}.game-map-zone{flex-direction:column;min-width:0;min-height:0;display:flex}.board-wrap,.board-viewport-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.board-viewport{flex:1;height:auto!important;min-height:0!important;max-height:none!important}.board-pan-hint{display:none}.board-zoom-toolbar{transform:scale(.85)}.side{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-left:1px solid var(--border);order:0;min-width:0;min-height:0;scroll-padding-bottom:12px;overflow:hidden auto}.game-hud{flex-direction:column;gap:4px;display:flex}.game-hud .player-panel,.game-hud .markets-panel{padding:6px}.player-header{margin-bottom:2px}.player-panel .income-track{margin:2px 0 4px}.markets-grid{gap:4px}.market-strip{padding:5px}.market-cube-legend{display:none}.game-play-dock{z-index:auto;border:1px solid var(--border);box-shadow:none;background:var(--panel);border-radius:10px;margin:0;padding:6px;position:static}.game-play-dock h3,.hand-heading{margin:0 0 4px;font-size:10px}.action-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.action-tile{border-radius:7px;min-height:38px;padding:2px 1px}.action-icon{font-size:14px}.action-label{font-size:8px;line-height:1.1}.game-card-md .game-card-inner{width:56px;min-height:72px}.hand-fan .game-card{margin-left:-14px}.hand-fan .game-card:first-child{margin-left:0}.hand-scroll{padding:4px 0 0}.option-list{max-height:72px;margin-top:4px!important}.log-collapsible summary{padding:4px 8px;font-size:11px}.log-collapsible .log{max-height:56px;font-size:11px}.game-layout.tutorial-active .game-play-dock{padding-bottom:6px}.tutorial-coach{left:auto;right:max(4px, env(safe-area-inset-right));bottom:max(4px, env(safe-area-inset-bottom));width:min(320px,40vw);padding:4px}.tutorial-coach-sheet{max-height:min(50dvh,220px)}.tutorial-coach-title{font-size:14px}.tutorial-coach-body{font-size:12px;line-height:1.35}.tutorial-continue{margin-top:8px;padding:8px;font-size:13px}.toast-stack{bottom:8px;left:8px;right:calc(clamp(240px,34vw,320px) + 12px)}.setup{max-height:calc(100dvh - 48px);overflow-y:auto}}@media (width<=900px){html[data-layout=landscape] .app.in-game{flex-direction:column;height:100dvh;max-height:100dvh;padding:2px 4px 0;display:flex;overflow:hidden}html[data-layout=landscape] .app.in-game .topbar{flex-wrap:nowrap;flex-shrink:0;align-items:center;margin-bottom:2px;padding-bottom:2px}html[data-layout=landscape] .app.in-game .app-title{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:28vw;font-size:.85rem;overflow:hidden}html[data-layout=landscape] .app.in-game .topbar .stat{white-space:nowrap;text-overflow:ellipsis;flex:auto;order:0;padding:2px 6px;font-size:10px;line-height:1.2;overflow:hidden}html[data-layout=landscape] .game-layout{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(180px,30vw,280px);align-items:stretch;gap:4px;min-height:0;display:grid}html[data-layout=landscape] .game-map-zone{flex-direction:column;min-width:0;min-height:0;display:flex}html[data-layout=landscape] .board-wrap,html[data-layout=landscape] .board-viewport-wrap{flex-direction:column;flex:1;min-height:0;display:flex}html[data-layout=landscape] .board-viewport{flex:1;height:auto!important;min-height:0!important;max-height:none!important}html[data-layout=landscape] .board-pan-hint{display:none}html[data-layout=landscape] .side{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-left:1px solid var(--border);order:0;min-width:0;min-height:0;scroll-padding-bottom:12px;overflow:hidden auto}html[data-layout=landscape] .game-play-dock{z-index:auto;border:1px solid var(--border);box-shadow:none;background:var(--panel);border-radius:10px;margin:0;padding:6px;position:static}html[data-layout=landscape] .toast-stack{bottom:8px;left:8px;right:calc(clamp(180px,30vw,280px) + 12px)}html[data-layout=portrait] .game-layout{flex-direction:column;display:flex}}:root[data-a11y=large]{font-size:18px}:root[data-a11y=large] .app-title{font-size:1.35rem}:root[data-a11y=large] .panel h3,:root[data-a11y=large] .tutorial-coach-title{font-size:16px}:root[data-a11y=large] .game-card-md .game-card-inner{width:82px;min-height:108px}:root[data-a11y=large] .game-card-title{font-size:13px}:root[data-a11y=large] .action-tile{min-height:52px;font-size:13px}:root[data-a11y=large] .market-stat-label{font-size:11px}:root[data-a11y=large] .market-stat-value b,:root[data-a11y=large] .tutorial-coach-body{font-size:16px}.first-visit-banner{border:1px solid var(--accent);background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);margin-bottom:10px}.first-visit-banner p{margin:0 0 10px;line-height:1.45}.first-visit-banner .actions{flex-wrap:wrap;gap:8px;display:flex}.project-credits{border:1px solid var(--border);background:var(--panel);max-width:760px;color:var(--muted);border-radius:10px;margin:16px auto 8px;padding:12px 14px;font-size:13px;line-height:1.45}.project-credits-title{color:var(--text);margin:0 0 8px;font-size:14px;font-weight:700}.project-credits-lead{margin:0 0 8px}.project-credits-lead a,.project-credits-repo a,.project-credits-upstream a,.project-credits-meta a{color:var(--accent)}.project-credits-repo{word-break:break-word;margin:0 0 6px}.project-credits-upstream{opacity:.92;margin:0 0 8px;font-size:12px}.project-credits-details{margin:0 0 8px}.project-credits-details summary{cursor:pointer;color:var(--text);font-weight:600}.project-credits-details ul{margin:8px 0 0;padding-left:1.2rem}.project-credits-details li{margin-bottom:4px}.project-credits-disclaimer{opacity:.9;margin:0 0 6px;font-size:12px}.project-credits-meta{margin:0;font-size:12px}.pwa-update-banner{left:50%;bottom:max(12px, env(safe-area-inset-bottom,12px));z-index:200;border:1px solid var(--border);background:var(--panel);max-width:min(520px,100vw - 24px);color:var(--text);border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #00000047}.pwa-update-banner .primary{padding:5px 12px;font-size:13px}.pwa-update-banner button:not(.primary){padding:5px 10px;font-size:13px}
