:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--surface-950: #071014;--surface-900: #0c161d;--surface-850: #0a141a;--surface-800: #14222b;--panel-border: #263842;--text-primary: #f4f7f2;--text-muted: #9fb0b8;--accent-cyan: #47d7ff;--accent-emerald: #3ce48a;--accent-amber: #f2aa3d;--danger: #ef5a54}*{box-sizing:border-box}body{margin:0;overflow-x:hidden;background:var(--surface-950);color:var(--text-primary)}button{font:inherit;letter-spacing:0}.app-shell{width:100vw;height:100vh;min-width:0;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr) 380px;grid-template-rows:64px minmax(0,1fr) 238px;grid-template-areas:"topbar topbar topbar" "roster board utility" "dock dock dock";overflow:hidden;background:#061016}.app-error-boundary{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#071014f0,#0c1c23e6),url(/assets/option-b/generated-assets/harbor-water-texture.png) center / cover;color:var(--text-primary)}.app-error-boundary section{width:min(520px,100%);display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;border:1px solid rgba(255,180,74,.42);border-radius:8px;background:#071014d1;box-shadow:0 18px 58px #00000070;padding:22px}.app-error-boundary svg{color:var(--accent-amber)}.app-error-boundary p,.app-error-boundary h1{margin:0}.app-error-boundary p{color:var(--accent-amber);font-size:.84rem;font-weight:800;text-transform:uppercase}.app-error-boundary h1{margin-top:4px;font-size:clamp(1.45rem,3vw,2rem);line-height:1.05}.app-error-boundary span{display:block;margin-top:8px;color:var(--text-muted);font-size:.82rem}.app-error-boundary button{grid-column:1 / -1;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(71,215,255,.42);border-radius:8px;background:#134a59b8;color:var(--text-primary);font-weight:800;cursor:pointer}.app-error-boundary button span{margin:0;color:inherit;font-size:.9rem}.topbar{grid-area:topbar;min-width:0;position:relative;display:grid;grid-template-columns:auto auto minmax(220px,1fr) auto;align-items:center;gap:24px;padding:7px 14px 7px 18px;border-bottom:1px solid #1e323c;background:#071014}.brand-lockup,.ranked-badge,.top-actions,.metric-pill,.metric-pill--wallet,.roster-rail,.player-row,.rail-command,.connection-row,.chat-input,.panel-heading,.action-dock,.resource-panel,.primary-actions,.legal-moves,.legal-moves>div,.legal-moves button,.dock-action,.resource-token{display:flex;align-items:center}.brand-lockup{gap:12px;min-width:0}.brand-lockup--button{border:0;background:transparent;color:var(--text-primary);cursor:pointer}.brand-lockup strong{font-size:1.48rem;line-height:1;white-space:nowrap}.brand-mark{width:40px;height:40px;display:grid;place-items:center}.brand-mark img{width:40px;height:40px}.ranked-badge{gap:9px;color:#dce6e7;font-size:.98rem}.turn-banner{width:min(336px,100%);height:58px;justify-self:center;display:flex;align-items:center;justify-content:center;gap:18px;color:var(--accent-emerald);background:linear-gradient(90deg,transparent 0 20px,rgba(24,111,77,.58) 20px calc(100% - 20px),transparent calc(100% - 20px)),#0b261d;border:3px solid var(--accent-emerald);clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%);box-shadow:inset 0 0 22px #3ce48a24}.turn-banner strong{font-size:1.3rem}.top-actions{justify-content:flex-end;gap:10px;min-width:0}.auth-status{height:36px;max-width:190px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #31444e;border-radius:8px;background:#101820;color:var(--text-primary);font-size:.86rem;white-space:nowrap}.auth-status>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.auth-status>span:last-child{color:var(--text-muted);font-size:.76rem}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(#061016d1,#061016e6),url(/assets/option-b/generated-assets/harbor-water-texture.png) center / cover}.auth-panel{width:min(420px,100%);display:grid;gap:18px;padding:28px;border:1px solid #31444e;border-radius:8px;background:#071014eb;box-shadow:0 18px 56px #00000057}.auth-panel span{color:var(--accent-emerald);font-weight:800;text-transform:uppercase;letter-spacing:0}.auth-panel h1{margin:0;font-size:1.7rem;line-height:1.15}.auth-primary{width:fit-content;min-height:40px;padding:0 18px;border:1px solid var(--accent-emerald);border-radius:8px;background:#123426;color:var(--text-primary);cursor:pointer}.metric-pill,.icon-button{height:36px;border:1px solid #31444e;background:#101820;color:var(--text-primary);border-radius:8px}.metric-pill{gap:8px;padding:0 12px;font-size:.9rem;white-space:nowrap}button.metric-pill{cursor:pointer}.metric-pill img{width:22px;height:22px}.mini-plus{width:22px;height:22px;display:grid;place-items:center;border:0;border-radius:6px;background:#f4f7f2;color:#101820}.icon-button{width:38px;display:grid;place-items:center;cursor:pointer}.icon-button:hover,.rail-command:hover,.dock-action:hover,.legal-moves button:hover{border-color:#47d7ffcc}.roster-rail{grid-area:roster;min-width:0;min-height:0;flex-direction:column;gap:8px;padding:10px 6px 8px;border-right:1px solid #1e323c;background:#071014eb}.collapse-button{width:calc(100% - 2px);height:34px;display:flex;justify-content:flex-end;align-items:center;padding:0 14px;border:1px solid var(--panel-border);background:#101c23e0;color:var(--text-primary);border-radius:8px}.player-list{flex:1;min-height:0;width:100%;display:grid;align-content:start;gap:6px;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(71,215,255,.42) transparent}.player-row{min-width:0;position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-areas:"crest meta" "timer timer";column-gap:12px;row-gap:8px;width:100%;min-height:96px;padding:9px 12px 7px;border:1px solid var(--panel-border);background:#081218ed;border-radius:8px}.player-row--current{border-color:#3ce48a9e}.player-row--cyan{--player-color: #4b9cff}.player-row--emerald{--player-color: #3ce48a}.player-row--amber{--player-color: #f2aa3d}.player-row--red{--player-color: #ef5a54}.player-order{position:absolute;left:8px;top:9px;z-index:2;min-width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--player-color);color:#fff;font-weight:800}.crest{grid-area:crest;align-self:center;width:58px;height:58px;border-radius:50%;filter:drop-shadow(0 0 12px color-mix(in srgb,var(--player-color) 60%,transparent))}.player-meta{grid-area:meta;min-width:0;display:grid;align-content:center;gap:5px}.player-meta strong{overflow-wrap:anywhere;font-size:1rem}.player-meta>span,.chat-message time,.log-row time,.engine-state span{color:var(--text-muted);font-size:.78rem}.resource-minis{display:flex;gap:4px;flex-wrap:nowrap}.resource-minis--cards{align-items:center;overflow:hidden}.resource-minis--cards .card-mini{flex-basis:22px;width:22px;height:28px}.resource-minis--cards .card-mini img{width:22px;height:28px}.resource-minis--cards .card-mini b{right:-4px;bottom:-4px;min-width:15px;height:15px;font-size:.58rem}.hidden-hand{gap:4px;flex-wrap:wrap}.hidden-hand span,.hidden-count,.achievement-chip{display:inline-grid;place-items:center;min-height:18px;padding:0 5px;border:1px solid rgba(71,215,255,.22);border-radius:999px;background:#07101480;color:var(--text-muted);font-size:.62rem;line-height:1;white-space:nowrap}.achievement-chip{color:var(--accent-amber);border-color:#f2aa3d52}.timer-row{grid-area:timer;display:grid;grid-template-columns:56px minmax(0,1fr) 6px 6px 6px;align-items:center;gap:8px}.timer-row strong{display:grid;place-items:center;height:28px;border-radius:6px;background:color-mix(in srgb,var(--player-color) 36%,#071014);color:var(--player-color);font-variant-numeric:tabular-nums}.timer-row span{height:6px;border-radius:999px;background:var(--player-color)}.timer-row i{width:6px;height:6px;border-radius:50%;background:var(--player-color)}.rail-command{justify-content:flex-start;gap:12px;width:100%;min-height:46px;padding:0 14px;border:1px solid var(--panel-border);background:#101c23eb;color:var(--text-primary);border-radius:8px;cursor:pointer}.rail-command:last-child{justify-content:space-between}.spectator-panel{width:100%;display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(71,215,255,.32);border-radius:8px;background:#101c23b8}.spectator-panel span{color:var(--text-muted);font-size:.82rem;line-height:1.28}.board-area{grid-area:board;min-width:0;min-height:0;position:relative;overflow:hidden;background:#061016}.board-stage{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(71,215,255,.12),transparent 42%),#071014}.board-stage:before,.board-stage:after{content:"";position:absolute;inset:-16%;pointer-events:none}.board-stage:before{background-image:linear-gradient(#06101633,#0610165c),var(--board-water);background-size:cover,620px 620px;opacity:.62;animation:harbor-water-drift 22s linear infinite}.board-stage:after{background:radial-gradient(circle at 18% 24%,rgba(71,215,255,.12),transparent 18%),radial-gradient(circle at 82% 72%,rgba(60,228,138,.1),transparent 16%),linear-gradient(115deg,rgba(6,16,22,.7),transparent 34%,rgba(6,16,22,.66));mix-blend-mode:screen;opacity:.56;animation:harbor-light-sweep 9s ease-in-out infinite alternate}.board-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.board-overlay,.board-legal-layer{position:absolute;inset:4% 6%;pointer-events:none}.board-tile-label{position:absolute;z-index:3;width:34px;height:34px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(250,226,169,.82);border-radius:50%;background:#071014c2;color:#f7e5b2;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 0 16px #07101461}.board-legal-layer{z-index:4}.board-legal-target{position:absolute;width:48px;height:48px;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;box-shadow:none;cursor:pointer;pointer-events:auto}.board-legal-target:after{content:none}.board-legal-target--edge{width:96px;height:42px;border-radius:999px;transform:translate(-50%,-50%) rotate(var(--target-angle, 0rad))}.board-legal-target--tile{width:86px;height:86px}.board-legal-target:disabled{cursor:progress;filter:grayscale(.4)}.board-legal-target:focus-visible{outline:2px solid rgba(71,215,255,.82);outline-offset:4px}.board-hud{position:absolute;left:50%;bottom:18px;z-index:5;min-width:min(440px,calc(100% - 36px));display:flex;align-items:center;justify-content:center;gap:14px;padding:9px 14px;border:1px solid rgba(71,215,255,.34);border-radius:8px;background:#071014b8;box-shadow:0 0 22px #47d7ff1f;transform:translate(-50%)}.board-hud span{color:var(--text-muted);font-size:.8rem}.board-hud strong,.dice-result{color:var(--accent-emerald)!important;font-variant-numeric:tabular-nums}.board-action-feedback{position:absolute;left:50%;bottom:68px;z-index:6;max-width:min(520px,calc(100% - 44px));padding:8px 13px;border:1px solid rgba(71,215,255,.44);border-radius:8px;background:#071014db;color:var(--text-primary);font-size:.8rem;font-weight:800;line-height:1.25;text-align:center;transform:translate(-50%);box-shadow:0 0 22px #47d7ff24;animation:action-feedback-pop .28s cubic-bezier(.2,.8,.2,1)}.board-action-feedback--pending{border-color:#f2aa3d85;color:#f6d485;box-shadow:0 0 20px #f2aa3d29}.board-action-feedback--success{border-color:#3ce48a8c;color:var(--accent-emerald);box-shadow:0 0 22px #3ce48a2e}.board-action-feedback--error{border-color:#ef5a5499;color:#ff9c94;box-shadow:0 0 24px #ef5a542e}.visual-state-chip{min-width:52px;display:inline-grid;place-items:center;padding:3px 8px;border:1px solid rgba(71,215,255,.28);border-radius:999px;background:#47d7ff1a;color:var(--text-primary)!important;font-size:.72rem!important}.visual-state-chip--robber,.visual-state-chip--discard,.visual-state-chip--error{border-color:#ef5a546b;background:#ef5a541f}.visual-state-chip--complete,.visual-state-chip--roll{border-color:#f2aa3d70;background:#f2aa3d21}.dice-result{animation:dice-result-pop .74s cubic-bezier(.2,.8,.2,1)}.dice-tray{position:absolute;left:22px;top:20px;z-index:5;display:grid;grid-template-columns:auto;grid-template-rows:auto auto auto;gap:8px;padding:10px 12px 12px;border:1px solid rgba(242,170,61,.46);border-radius:8px;background:linear-gradient(180deg,#071014c7,#071014eb),var(--effect-atlas, none);box-shadow:0 0 24px #f2aa3d29;animation:dice-tray-pop .72s cubic-bezier(.2,.8,.2,1)}.dice-tray--rolling{border-color:#47d7ffad;box-shadow:0 0 32px #47d7ff3d,0 0 20px #f2aa3d2e;animation:dice-roll-anticipation .62s ease-in-out infinite alternate}.dice-tray--locked{border-color:#9fb0b852;box-shadow:0 0 18px #07101466}.dice-tray strong{color:var(--accent-amber);font-size:.72rem;line-height:1;text-transform:uppercase;letter-spacing:0}.dice-faces{display:flex;align-items:center;gap:8px}.dice-tray--rolling:before{content:"";position:absolute;inset:-8px;border-radius:12px;background:linear-gradient(90deg,transparent,rgba(71,215,255,.28),transparent);filter:blur(4px);opacity:.76;transform:skew(-18deg);animation:dice-streak-sweep .52s linear infinite}.dice-tray span{position:relative;z-index:1;width:52px;height:52px;display:grid;place-items:center;border:2px solid #d5a84f;border-radius:8px;background:#f4e4bd;color:#071014;font-weight:900;font-variant-numeric:tabular-nums}.dice-tray img{width:50px;height:50px;display:block;object-fit:contain}.dice-tray--rolling span:first-child{animation:die-tumble-left .38s linear infinite}.dice-tray--rolling span:last-child{animation:die-tumble-right .42s linear infinite}.dice-roll-button{min-height:32px;border:1px solid rgba(242,170,61,.5);border-radius:8px;background:#f2aa3d24;color:var(--text-primary);font-size:.76rem;font-weight:800;cursor:pointer}.dice-roll-button:disabled{border-color:#9fb0b847;background:#0c161db8;color:var(--text-muted);cursor:not-allowed}.board-status{position:absolute;left:50%;bottom:20px;transform:translate(-50%);display:flex;gap:10px;align-items:center;padding:8px 14px;border:1px solid rgba(60,228,138,.45);background:#0710149e;border-radius:8px}.board-status span{color:var(--accent-emerald);font-size:.78rem}.board-fallback{position:absolute;inset:0;border:2px solid var(--accent-cyan);opacity:.35}@keyframes harbor-water-drift{0%{transform:translate3d(-2%,-2%,0) scale(1.04)}to{transform:translate3d(2%,2%,0) scale(1.04)}}@keyframes harbor-light-sweep{0%{transform:translate(-1.5%)}to{transform:translate(1.5%)}}@keyframes legal-target-pulse{0%,to{opacity:.78}50%{opacity:1}}@keyframes dice-result-pop{0%{filter:brightness(.85);transform:translateY(6px) scale(.94)}55%{filter:brightness(1.35);transform:translateY(-2px) scale(1.05)}to{filter:brightness(1);transform:translateY(0) scale(1)}}@keyframes dice-tray-pop{0%{opacity:0;transform:translateY(12px) scale(.86) rotate(-3deg)}60%{opacity:1;transform:translateY(-2px) scale(1.04) rotate(1deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes dice-roll-anticipation{0%{transform:translateY(0) scale(1)}to{transform:translateY(-3px) scale(1.04)}}@keyframes dice-streak-sweep{0%{transform:translate(-38px) skew(-18deg)}to{transform:translate(38px) skew(-18deg)}}@keyframes die-tumble-left{0%{transform:rotate(-24deg) translateY(-2px)}to{transform:rotate(336deg) translateY(2px)}}@keyframes die-tumble-right{0%{transform:rotate(18deg) translateY(2px)}to{transform:rotate(-342deg) translateY(-2px)}}@keyframes action-feedback-pop{0%{opacity:0;transform:translate(-50%,8px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes card-delta-pop{0%{opacity:0;transform:translateY(8px) scale(.82)}24%{opacity:1;transform:translateY(-3px) scale(1.08)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-gain-pulse{0%{filter:brightness(1);transform:translateY(0) scale(1)}45%{filter:brightness(1.26);transform:translateY(-3px) scale(1.05)}to{filter:brightness(1);transform:translateY(0) scale(1)}}@keyframes card-spend-pulse{0%{filter:brightness(1);transform:translateY(0) scale(1)}45%{filter:brightness(.82);transform:translateY(2px) scale(.96)}to{filter:brightness(1);transform:translateY(0) scale(1)}}.utility-rail{grid-area:utility;min-width:0;min-height:0;display:grid;grid-template-rows:38px minmax(300px,1fr) minmax(190px,266px);gap:8px;padding:14px 6px 12px;border-left:1px solid #1e323c;background:#071014f0}.connection-row{gap:8px}.latency-chip,.stable-chip{height:36px;display:flex;align-items:center;border:1px solid var(--panel-border);background:#101c23e6;border-radius:8px}.latency-chip{width:88px;justify-content:center;color:var(--accent-emerald)}.stable-chip{flex:1;min-width:0;padding:0 14px}.stable-chip:before{content:"";width:16px;height:16px;margin-right:10px;border-radius:50%;background:var(--accent-emerald)}.chat-panel,.game-log{min-width:0;min-height:0;border:1px solid var(--panel-border);background:#071014e6;border-radius:8px;overflow:hidden}.chat-panel{display:grid;grid-template-rows:54px minmax(0,1fr) 60px}.panel-tabs{height:54px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--panel-border)}.panel-tabs button{border:0;background:transparent;color:var(--text-muted);cursor:pointer}.panel-tabs button.is-active{color:var(--text-primary);box-shadow:inset 0 -2px 0 var(--accent-emerald)}.chat-stream{display:grid;align-content:start;gap:7px;overflow-y:auto;padding:12px 18px 4px}.chat-message{display:grid;gap:2px;font-size:.92rem}.chat-message div{display:flex;justify-content:space-between;gap:12px}.chat-message strong,.log-row strong{color:var(--accent-cyan)}.chat-message--WaveSeeker strong,.log-row:nth-of-type(2) strong{color:var(--accent-amber)}.chat-message--CoralKnight strong{color:#ff854f}.chat-message--HarborMaster strong{color:var(--accent-emerald)}.chat-message p,.log-row p{margin:0;color:var(--text-primary);line-height:1.24}.chat-input{height:46px;margin:0 12px 12px;justify-content:space-between;padding:0 12px;border:1px solid #40525b;border-radius:8px;color:var(--text-muted);background:#f4f7f20a}.chat-input input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text-primary)}.policy-shell{min-height:100vh;display:grid;place-items:center;padding:32px 18px;background:linear-gradient(#061016db,#061016f0),url(/assets/option-b/generated-assets/harbor-water-texture.png) center / cover}.policy-document{width:min(820px,100%);display:grid;gap:18px;padding:30px;border:1px solid #31444e;border-radius:8px;background:#071014f0;box-shadow:0 18px 56px #00000057}.policy-brand{width:fit-content;display:inline-flex;align-items:center;gap:10px;color:var(--text-primary);font-weight:800;text-decoration:none}.policy-brand img{width:32px;height:32px}.policy-kicker{margin:0;color:var(--accent-emerald);font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:0}.policy-document h1,.policy-document h2,.policy-document p{margin:0}.policy-document h1{font-size:2rem;line-height:1.1}.policy-document h2{margin-bottom:8px;color:#dce6e7;font-size:1rem}.policy-document p{color:var(--text-muted);line-height:1.6}.policy-lead{color:var(--text-primary)!important;font-size:1.02rem}.chat-input input::placeholder{color:var(--text-muted)}.chat-input button,.chat-state-panel button{display:grid;place-items:center;border:1px solid rgba(71,215,255,.34);background:#47d7ff1f;color:var(--text-primary);border-radius:8px;cursor:pointer}.chat-input button{width:34px;height:34px}.chat-state-panel{grid-row:2 / -1;min-height:0;display:grid;align-content:center;justify-items:start;gap:12px;padding:18px}.chat-state-panel svg{color:var(--accent-cyan)}.chat-state-panel p{margin:0;color:var(--text-muted);line-height:1.38}.chat-state-panel button{min-height:38px;padding:0 14px}.panel-heading{justify-content:space-between;height:44px;padding:0 14px;border-bottom:1px solid var(--panel-border)}button.panel-heading{width:100%;border-top:0;border-left:0;border-right:0;background:transparent;color:var(--text-primary);cursor:pointer}.game-log--collapsed .panel-heading svg{transform:rotate(-90deg)}.log-collapsed-copy{margin:0;padding:12px 14px;color:var(--text-muted);line-height:1.36}.log-row{display:grid;grid-template-columns:28px 64px minmax(0,1fr);align-items:center;gap:8px;padding:8px 14px}.log-symbol{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--accent-amber);color:#071014;font-size:.74rem;font-weight:800}.engine-state{display:flex;gap:10px;flex-wrap:wrap;padding:8px 14px 12px}.engine-state strong{color:#ffb8b4;font-size:.8rem}.action-dock{grid-area:dock;min-width:0;gap:12px;padding:0 6px 6px;border-top:1px solid #513f27;background:#071014f7}.resource-panel,.legal-moves{height:100%;border:1px solid var(--panel-border);background:#101c23e6;border-radius:8px}.resource-panel{display:grid;grid-template-rows:24px minmax(0,78px) minmax(0,56px) 30px 28px;width:min(760px,58vw);align-items:center;gap:3px;padding:6px 12px}.resource-panel>strong,.legal-moves strong{font-size:.95rem}.hand-panel-heading,.card-strip>div,.card-row,.card-action-strip,.card-selection-strip,.hidden-hand,.card-mini{display:flex;align-items:center}.hand-panel-heading,.card-strip>div{justify-content:space-between;min-width:0}.hand-panel-heading strong,.card-strip strong{font-size:.82rem}.hand-panel-heading span,.card-strip>div span{color:var(--text-muted);font-size:.72rem}.card-strip{min-width:0;display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center}.card-strip>div:first-child{display:grid;gap:1px}.card-row{min-width:0;gap:7px;overflow:hidden}.card-mini{position:relative;flex:0 0 48px;width:48px;height:58px;justify-content:center}.card-mini img{width:46px;height:58px;object-fit:contain;filter:drop-shadow(0 2px 7px rgba(0,0,0,.34))}.card-strip--resources .card-row{gap:10px}.card-strip--resources .card-mini{flex-basis:62px;width:62px;height:76px}.card-strip--resources .card-mini img{width:60px;height:76px}.card-strip--development .card-mini{flex-basis:44px;width:44px;height:56px}.card-strip--development .card-mini img{width:42px;height:56px}.card-mini b{position:absolute;right:-2px;bottom:-1px;min-width:20px;height:20px;display:grid;place-items:center;border:1px solid rgba(244,247,242,.34);border-radius:999px;background:#071014;color:var(--text-primary);font-size:.72rem;font-variant-numeric:tabular-nums}.card-mini-delta{position:absolute;top:-9px;right:-5px;min-width:24px;height:20px;display:grid;place-items:center;border:1px solid rgba(244,247,242,.42);border-radius:999px;background:#071014;box-shadow:0 8px 18px #00000052;color:var(--text-primary);font-size:.68rem;font-style:normal;font-weight:800;font-variant-numeric:tabular-nums;animation:card-delta-pop 1.05s cubic-bezier(.2,.8,.2,1)}.card-mini--delta-positive{animation:card-gain-pulse .9s cubic-bezier(.2,.8,.2,1)}.card-mini--delta-positive .card-mini-delta{border-color:#4fdc8db8;color:#9ff2c0}.card-mini--delta-negative{animation:card-spend-pulse .9s cubic-bezier(.2,.8,.2,1)}.card-mini--delta-negative .card-mini-delta{border-color:#ef7f75b8;color:#ffb5a8}.card-mini--empty{opacity:.64}.card-action-strip,.card-selection-strip{min-width:0;gap:5px;overflow:hidden}.deck-count,.card-action-strip button,.card-selection-strip button{min-width:0;height:30px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(71,215,255,.28);border-radius:8px;background:#07101494;color:var(--text-primary);font-size:.74rem;white-space:nowrap}.deck-count{flex:0 0 auto;padding:0 7px;color:var(--text-muted)}.resource-bank-count{max-width:170px;gap:4px;overflow:hidden;padding:0 6px}.resource-bank-count span{min-width:0;display:inline-flex;align-items:center;gap:2px;font-size:.68rem;font-variant-numeric:tabular-nums}.resource-bank-count img{width:20px;height:20px}.resource-bank-count b{color:var(--text-primary);font-weight:800}.deck-count img,.card-action-strip img,.card-selection-strip img{width:24px;height:24px;object-fit:contain}.card-action-strip button,.card-selection-strip button{max-width:132px;padding:0 7px;cursor:pointer}.card-action-strip button span,.card-selection-strip button span{min-width:0;overflow:hidden;text-overflow:ellipsis}.resource-token{gap:8px;font-variant-numeric:tabular-nums}.resource-token img{width:28px;height:28px;display:block}.resource-token--compact{gap:4px;font-size:.78rem}.resource-token--compact img{width:16px;height:16px}.resource-chip{min-width:54px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 8px;border:1px solid rgba(71,215,255,.22);border-radius:8px;background:#07101480;color:var(--text-primary);font-size:.82rem;font-variant-numeric:tabular-nums}.resource-chip b{color:var(--accent-cyan)}.resource-chip--wood b{color:#55d273}.resource-chip--brick b{color:#ef8a54}.resource-chip--sheep b{color:#9fe06f}.resource-chip--wheat b{color:#f2c35c}.resource-chip--ore b{color:#aab6c1}.resource-chip--compact{min-width:34px;gap:3px;padding:3px 4px;font-size:.62rem}.primary-actions{position:relative;flex:1;align-self:stretch;justify-content:center;gap:10px;padding-bottom:28px;background:linear-gradient(135deg,transparent 0 58px,rgba(16,28,35,.96) 58px calc(100% - 58px),transparent calc(100% - 58px))}.primary-actions p{position:absolute;bottom:10px;margin:0;color:var(--text-muted);font-size:.84rem}.dock-action{width:min(155px,22%);min-width:112px;height:108px;flex-direction:column;justify-content:center;gap:10px;padding:10px 8px;border:1px solid var(--panel-border);background:#14222b;color:var(--text-primary);border-radius:8px;cursor:pointer}.dock-action--selected{border-color:var(--accent-emerald);box-shadow:inset 0 0 0 1px var(--accent-emerald),0 0 22px #3ce48a2e}.dock-action span{width:100%;font-size:1.08rem;font-weight:800;line-height:1.08;overflow-wrap:anywhere;text-align:center}.legal-moves{width:420px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:36px minmax(0,1fr) 22px;grid-auto-rows:minmax(0,1fr);gap:0;padding:0 12px 12px;overflow:hidden}.legal-moves>div{grid-column:1 / -1;justify-content:space-between}.legal-moves>div span{min-width:34px;height:22px;display:grid;place-items:center;border-radius:999px;background:#3ce48a52;color:var(--accent-emerald);font-weight:800}.legal-moves button{flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:0;padding:5px 4px;border:0;border-left:1px solid var(--panel-border);background:transparent;color:var(--text-primary);cursor:pointer}.legal-moves button.is-active{color:var(--accent-emerald);box-shadow:inset 0 0 0 1px #3ce48a47}.legal-moves button:first-of-type{border-left:0}.legal-moves img,.legal-moves svg{width:36px;height:36px;flex:0 0 auto}.legal-moves button span{font-size:.74rem;color:var(--text-primary);line-height:1.12;text-align:center;white-space:normal;overflow-wrap:anywhere}.legal-empty{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;color:var(--text-muted);font-size:.84rem;text-align:center}.legal-more{grid-column:1 / -1;align-self:end;justify-self:center;margin:0;color:var(--text-muted);font-size:.72rem;line-height:1}button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.54}.workflow-workspace{grid-column:1 / -1;grid-row:2 / -1;min-width:0;min-height:0;overflow:auto;padding:24px;background:linear-gradient(180deg,#071014e0,#071014fa),#071014}.workflow-header,.workflow-status,.workflow-nav,.workflow-nav button,.workflow-panel-heading,.workflow-metrics,.workflow-actions,.workflow-metric,.workflow-title,.workflow-tags,.workflow-row{display:flex;align-items:center}.workflow-header{justify-content:space-between;gap:20px;margin:0 auto 18px;max-width:1240px}.workflow-header span,.workflow-panel-heading span,.workflow-copy,.workflow-row span,.workflow-metric span{color:var(--text-muted)}.workflow-header h1{margin:3px 0 0;font-size:1.8rem;line-height:1}.workflow-status{gap:8px;flex-wrap:wrap;justify-content:flex-end}.workflow-nav{max-width:1240px;margin:0 auto 14px;gap:8px;overflow-x:auto;scrollbar-width:none}.workflow-nav::-webkit-scrollbar{display:none}.workflow-nav button{flex:0 0 auto;min-height:38px;gap:8px;padding:0 12px;border:1px solid #31444e;border-radius:8px;background:#101c23db;color:var(--text-muted);cursor:pointer}.workflow-nav button.is-active{border-color:#3ce48a99;background:#12413294;color:var(--text-primary)}.workflow-status span,.workflow-tags span,.workflow-banner{border:1px solid var(--panel-border);background:#101c23db;border-radius:999px}.workflow-status span,.workflow-tags span{padding:8px 12px;font-size:.82rem}.workflow-banner{max-width:1240px;margin:0 auto 14px;padding:10px 14px;color:var(--accent-emerald);border-color:#3ce48a5c}.workflow-banner--error{color:#ffb8b4;border-color:#ef5a546b}.workflow-grid{max-width:1240px;margin:0 auto;display:grid;gap:14px}.workflow-grid--dashboard{grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr)}.workflow-grid--split{grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr)}.workflow-panel{min-width:0;border:1px solid var(--panel-border);border-radius:8px;background:#0c161de0;padding:18px}.workflow-panel--hero{grid-row:span 2;display:grid;align-content:start;gap:18px;min-height:280px;background:linear-gradient(135deg,#14222bf5,#081218f5),var(--surface-800)}.workflow-panel-heading{justify-content:space-between;gap:16px}.workflow-panel-heading strong{font-size:1.35rem}.workflow-title{gap:10px;margin-bottom:14px;color:var(--accent-cyan)}.workflow-metrics{gap:12px;flex-wrap:wrap}.workflow-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workflow-field-grid>div{min-height:76px;display:grid;align-content:center;gap:6px;padding:12px;border:1px solid #31444e;border-radius:8px;background:#071014b8}.workflow-field-grid span{color:var(--text-muted);font-size:.82rem}.workflow-metric{min-width:150px;min-height:76px;flex:1;gap:10px;padding:12px;border:1px solid #31444e;border-radius:8px;background:#071014b8}.workflow-metric strong{margin-left:auto;color:var(--text-primary);font-size:1.25rem}.workflow-actions{gap:10px;flex-wrap:wrap}.workflow-actions--stacked{align-items:flex-start;margin-top:14px}.workflow-actions button,.workflow-row button{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid rgba(60,228,138,.42);border-radius:8px;background:#124132b8;color:var(--text-primary);cursor:pointer}.workflow-actions button:hover,.workflow-row button:hover{border-color:var(--accent-emerald)}.workflow-danger{border-color:#ef5a5473!important;background:#4b1718b8!important}.workflow-table{display:grid;gap:8px}.workflow-row{justify-content:space-between;gap:12px;min-height:42px;padding:0 12px;border:1px solid rgba(38,56,66,.78);border-radius:8px;background:#0710148c}.workflow-row--lobby,.workflow-row--match,.workflow-row--score{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(120px,.9fr) minmax(64px,.5fr) minmax(90px,.7fr)}.workflow-row strong{color:var(--accent-emerald)}.workflow-copy{margin:0;line-height:1.42}.workflow-tags{gap:8px;flex-wrap:wrap;margin-top:14px}@media(max-width:1180px){.app-shell{grid-template-columns:94px minmax(0,1fr) 320px}.topbar{gap:14px}.brand-lockup strong,.ranked-badge,.player-meta,.timer-row,.rail-command span{display:none}.player-row{min-height:80px;grid-template-columns:1fr;place-items:center;padding:10px}.resource-panel,.legal-moves{width:300px}.resource-panel{grid-template-rows:24px minmax(0,64px) minmax(0,46px) 30px 28px}.card-strip{grid-template-columns:58px minmax(0,1fr);gap:6px}.card-strip--resources .card-row{gap:5px}.card-strip--resources .card-mini{flex-basis:42px;width:42px;height:54px}.card-strip--resources .card-mini img{width:40px;height:54px}.card-strip--development .card-mini{flex-basis:34px;width:34px;height:44px}.card-strip--development .card-mini img{width:32px;height:44px}.workflow-grid--dashboard,.workflow-grid--split{grid-template-columns:1fr}}@media(max-width:860px){.app-shell{overflow-x:hidden;overflow-y:auto;height:auto;min-height:100vh;grid-template-columns:1fr;grid-template-rows:64px minmax(420px,62vh) auto auto;grid-template-areas:"topbar" "board" "dock" "utility"}.topbar{display:grid;grid-template-columns:48px minmax(128px,168px) minmax(0,1fr);gap:8px;padding:8px 10px}.ranked-badge,.metric-pill:first-child,.top-actions .icon-button:last-child,.roster-rail{display:none}.turn-banner{position:static;transform:none;width:min(100%,168px);height:48px;gap:8px;border-width:2px}.turn-banner strong{font-size:1rem}.top-actions{margin-left:0;min-width:0;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;gap:8px}.top-actions::-webkit-scrollbar{display:none}.metric-pill--wallet{flex:0 0 auto;height:40px;padding:0 8px}.top-actions .icon-button{flex:0 0 auto}.metric-pill--wallet img{width:18px;height:18px}.utility-rail{grid-template-rows:38px auto auto;border-left:0;padding:10px}.action-dock{align-items:stretch;flex-wrap:wrap;gap:12px;padding:10px}.resource-panel,.legal-moves{height:auto;width:100%;min-height:116px}.resource-panel{grid-template-rows:34px 1fr;padding:8px 16px 14px}.primary-actions{order:-1;width:100%;flex:none;flex-wrap:wrap;padding:10px 0 34px}.dock-action{width:calc(50% - 8px);min-width:0}.dock-action span{font-size:1.48rem}.chat-panel{min-height:360px}.game-log{min-height:280px}.workflow-workspace{grid-row:2 / -1;padding:14px}.workflow-header{align-items:flex-start;flex-direction:column}.workflow-status{justify-content:flex-start}.workflow-panel--hero{min-height:0}.workflow-panel-heading,.workflow-row{align-items:flex-start;flex-direction:column}.workflow-field-grid,.workflow-row--lobby,.workflow-row--match,.workflow-row--score{grid-template-columns:1fr}}
