:root{--bg: #f6f7f9;--panel: #ffffff;--text: #16181d;--muted: #6b7280;--border: #e3e6eb;--accent: #2f6fdb;--accent-text: #ffffff;--bar-bg: #e9edf3;--bar: #2f9e5b;--late: #d64545;--event-bg: #fff6e0;--banner-bg: #e6f4ea;--seat-0: #2f6fdb;--seat-1: #d9822b;--seat-2: #8e5bd1;--seat-3: #2f9e8f;--risk-low: #2f9e5b;--risk-medium: #c99412;--risk-high: #d64545;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111317;--panel: #1a1d23;--text: #e8eaee;--muted: #9aa1ad;--border: #2b2f37;--accent: #5b8ff0;--bar-bg: #2a2f38;--bar: #3fbf73;--event-bg: #2e2716;--banner-bg: #17301f;color-scheme:dark}}:root[data-theme=dark]{--bg: #111317;--panel: #1a1d23;--text: #e8eaee;--muted: #9aa1ad;--border: #2b2f37;--accent: #5b8ff0;--bar-bg: #2a2f38;--bar: #3fbf73;--event-bg: #2e2716;--banner-bg: #17301f;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Sarabun,Leelawadee UI,Tahoma,system-ui,sans-serif;font-size:15px;line-height:1.45}.app{max-width:1400px;margin:0 auto;padding-block:16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}h1{font-size:20px;margin:0 0 8px}h2{font-size:15px;margin:0 0 8px}.muted{color:var(--muted);font-weight:400}.small{font-size:13px}.toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.controls label{display:inline-flex;align-items:center;gap:4px;font-size:14px}select,input,button{font:inherit;font-size:14px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:4px 10px}input[type=number]{width:90px}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.status{display:flex;flex-wrap:wrap;gap:16px;padding:8px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.last-move{flex-basis:100%;font-size:13px;color:var(--muted);min-width:0}.event,.banner{padding:8px 12px;border-radius:8px;margin-bottom:8px;background:var(--event-bg)}.banner{background:var(--banner-bg);font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"table panel" "table log";grid-template-rows:auto 1fr;gap:12px;align-items:start}.human-slot{grid-area:panel;min-width:0}.table-slot{grid-area:table;min-width:0}.layout>.log{grid-area:log}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"panel" "table" "log";grid-template-rows:auto}}.players{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}.player.active{outline:2px solid var(--accent)}.player header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.strategy{font-weight:600}.seat{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:6px;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.seat-0{background:var(--seat-0)}.seat-1{background:var(--seat-1)}.seat-2{background:var(--seat-2)}.seat-3{background:var(--seat-3)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.stats div{display:flex;flex-direction:column;font-size:13px}.stats b{font-size:20px}.staff{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.chip{font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);border-left-width:4px}.chip.role-designer{border-left-color:#8e6bd1}.chip.role-dev{border-left-color:#2f7fd8}.chip.role-tester{border-left-color:#2f9e5b}.chip.role-pm{border-left-color:#d98a1f}.chip.resting{opacity:.5;text-decoration:line-through}.project{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.project-head{display:flex;flex-direction:column;margin-bottom:4px}.project-title{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}.risk-low{background:var(--risk-low)}.risk-medium{background:var(--risk-medium)}.risk-high{background:var(--risk-high)}.late{color:var(--late);font-weight:700}.bar-row{display:grid;grid-template-columns:96px 1fr 40px;align-items:center;gap:6px;font-size:12px}.bar{height:8px;background:var(--bar-bg);border-radius:4px;overflow:hidden}.bar span{display:block;height:100%;background:var(--bar)}.bar-value{text-align:right;color:var(--muted)}.bugs{font-size:12px;margin-top:2px}.side{display:flex;flex-direction:column;gap:12px}.market{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.market li{display:flex;flex-direction:column;font-size:14px}.log ol{list-style:none;margin:0;padding:0;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.entry{display:flex;gap:6px;font-size:13px;align-items:flex-start}.entry.event{background:var(--event-bg);padding:2px 6px;border-radius:4px}.entry.round{font-weight:700;border-top:1px solid var(--border);padding-top:4px}.human-panel{border:2px solid var(--accent);display:flex;flex-direction:column;gap:10px}.human-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.human-head h2{margin:0}.human-body{display:flex;flex-direction:column;gap:8px}.human-body p{margin:0}.choice-row{display:flex;flex-wrap:wrap;gap:6px}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.option-list{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto}.option{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px}.option small{color:inherit;opacity:.8}.option:disabled{opacity:.45}.work-rows{display:flex;flex-direction:column;gap:6px}.work-row,.field{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;font-size:13px}.work-row select,.field select{width:100%;min-width:0}.preview{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.check{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:13px}.abandon summary{cursor:pointer;font-size:13px;color:var(--muted)}.error{color:var(--late);font-size:13px}.bot-help{align-self:flex-start;font-size:13px}.draw-line{background:var(--event-bg);border-radius:6px;padding:4px 8px}button.danger{border-color:var(--late);color:var(--late)}.attack-form{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:8px}.human-panel .option-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.lock-screen{border-style:dashed}.sim-tools{border:1px dashed var(--border);border-radius:8px;padding:4px 8px}.sim-tools>summary{cursor:pointer;font-size:13px;color:var(--muted);padding:2px 0}.sim-tools[open]>summary{margin-bottom:6px}.start-panel{border-style:solid}.start-seats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.start-seats li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.start-seat-name{min-width:8em}.turn-actions{padding-bottom:8px;border-bottom:1px solid var(--border)}.game-settings>summary{cursor:pointer;font-size:14px;padding:2px 0}.game-settings[open]>summary{margin-bottom:6px}@media(max-width:760px){.app{padding-block:10px;padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}h1{font-size:17px;margin-bottom:4px}.toolbar{gap:6px;margin-bottom:8px}.status{gap:4px 12px;padding:6px 10px;font-size:13px}.status .last-move{flex-basis:100%}button,select,input{min-height:40px}.controls label{font-size:13px}.human-panel .turn-actions{position:fixed;left:0;right:0;bottom:0;z-index:20;margin:0;padding:8px max(10px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px));background:var(--panel);border-top:2px solid var(--accent);box-shadow:0 -4px 14px #0000002e;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.human-panel .turn-actions button{min-height:46px;font-size:15px}.app:has(.turn-actions){padding-bottom:84px}.human-panel .turn-actions:has(.place-now){display:flex;flex-wrap:wrap}.human-panel .turn-actions:has(.place-now)>button{flex:1 1 0}.human-panel .turn-actions:has(.place-now)>.place-now{flex:1 1 100%;font-size:14px}.app:has(.place-now){padding-bottom:140px}.log ol{max-height:240px}}.swap-form{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px dashed var(--border);border-radius:8px}.layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"setup log" "table log" "panel log";grid-template-rows:auto auto 1fr}.setup-slot{grid-area:setup;min-width:0}.layout>.log{position:sticky;top:8px;align-self:start}.human-slot .human-panel{border-width:3px;border-radius:14px;box-shadow:0 -2px #0000000a,0 6px 18px #0000001f}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"setup" "table" "panel" "log";grid-template-rows:auto}.layout>.log{position:static}}.company-controls .human-panel{color:var(--ink);border:none;border-radius:12px;box-shadow:none;margin-top:4px}.company-controls .human-head .seat,.company-controls .human-head .muted{display:none}.company-controls .human-head h2{font-size:16px}.company-controls.detached{margin-top:8px}.company-controls.detached .human-panel{border:2px solid var(--accent)}.draw-choice.must-draw{border:2px solid var(--accent);border-radius:10px;padding:8px;background:var(--event-bg)}.rush-line.ready{font-weight:600}.attack-panel{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:10px}.attack-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.attack-steps li{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;background:var(--bar-bg);color:var(--muted);font-size:13px}.attack-steps li span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--panel);font-size:11px;font-weight:700}.attack-steps li.now{background:var(--late);color:#fff;font-weight:600}.attack-steps li.now span{color:var(--late)}.attack-steps li.done{color:var(--text)}.attack-hint{margin:0;padding:10px;border:2px dashed var(--late);border-radius:10px;font-weight:600}.attack-card-row{display:flex;gap:12px;align-items:flex-start}.attack-card-preview{flex:0 0 140px}.attack-card-preview .card{width:100%;min-height:120px}.attack-card-info{display:flex;flex-direction:column;gap:4px;min-width:0}.target-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.mini-board{--mb-seat: var(--muted);border:2px solid var(--border);border-left:6px solid var(--mb-seat);border-radius:10px;background:var(--panel);overflow:hidden}.mb-seat-0{--mb-seat: var(--seat-0)}.mb-seat-1{--mb-seat: var(--seat-1)}.mb-seat-2{--mb-seat: var(--seat-2)}.mb-seat-3{--mb-seat: var(--seat-3)}.mini-board.selected{border-color:var(--late);border-left-color:var(--late);box-shadow:0 0 0 3px color-mix(in srgb,var(--late) 25%,transparent)}.mini-board.off{opacity:.55}.mini-board-head{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border:none;border-radius:0;background:transparent;color:inherit;text-align:left;font:inherit;min-height:0}.mini-board-head:not(:disabled){cursor:pointer}.mini-board-head:not(:disabled):hover{background:var(--bar-bg)}.mini-board.selected .mini-board-head{background:color-mix(in srgb,var(--late) 12%,transparent)}.mini-board-head[aria-pressed=true]{color:inherit}.mb-stats{font-size:12px;color:var(--muted)}.mb-reason{margin:0;padding:0 10px 6px;font-size:12px;color:var(--late)}.mb-project{padding:0 10px 8px}.mb-name{font-size:13px;font-weight:600;margin-bottom:4px}.mb-empty{margin:0;padding:0 10px 8px;font-size:12px;color:var(--muted)}.mb-stages{display:flex;flex-direction:column;gap:3px}.mb-stage{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;background:var(--bar-bg)}.mb-stage.full{background:var(--banner-bg)}.mb-label{font-size:11px;color:var(--muted);min-width:64px}.mb-chip{font:inherit;font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--text);min-height:0}button.mb-chip.can{border-color:var(--late);cursor:pointer}button.mb-chip.can:hover{background:color-mix(in srgb,var(--late) 12%,var(--panel))}button.mb-chip.picked,button.mb-chip[aria-pressed=true]{background:var(--late);border-color:var(--late);color:#fff}button.mb-chip:disabled{opacity:.45}.mb-hint{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--late)}.own-board .mini-board{border-style:dashed}.attack-result{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--event-bg);border:1px solid var(--border)}.attack-result.ready{border:2px solid var(--late)}.human-panel .turn-actions .attack-now{background:var(--late);border-color:var(--late)}.human-panel .turn-actions .attack-now:disabled{background:var(--bar-bg);border-color:var(--border);color:var(--text)}@media(max-width:760px){.attack-card-preview{flex-basis:110px}.target-grid{grid-template-columns:minmax(0,1fr)}.human-panel .turn-actions:has(.attack-now){display:flex;flex-wrap:wrap}.human-panel .turn-actions:has(.attack-now)>button{flex:1 1 0}.human-panel .turn-actions:has(.attack-now)>.attack-now{flex:1 1 100%;font-size:14px}}.defend-panel .defend-title{margin:0;font-size:17px;font-weight:700;color:var(--late);display:flex;align-items:center;gap:6px}.defend-effect{font-weight:600}.defend-choices button{flex:1 1 auto}.clash-anchor{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:50;width:min(520px,calc(100vw - 32px));pointer-events:none}.clash-banner{pointer-events:auto;cursor:pointer;padding:10px 14px;border-radius:14px;background:var(--panel);color:var(--text);border:2px solid var(--late);box-shadow:0 10px 30px #00000040;display:flex;flex-direction:column;gap:4px}.clash-banner.blocked{border-color:var(--bar)}.clash-line{display:flex;align-items:center;gap:8px;font-weight:700}.clash-arrow{color:var(--late)}.clash-result{font-size:14px}.attack-confirm .attack-now{width:100%;min-height:44px;font-size:15px;color:#fff}.attack-confirm .attack-now{background:var(--late);border-color:var(--late)}.attack-confirm .attack-now:disabled{background:var(--bar-bg);border-color:var(--border);color:var(--text)}@media(min-width:761px){.human-panel .turn-actions .attack-now{display:none}}@media(max-width:760px){.attack-confirm{display:none}}.notice-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:16px;background:#0a0c1059}.notice-backdrop.notice-attack{background:#780a0a73;animation:notice-flash 1.2s ease-in-out 2}@keyframes notice-flash{50%{background:#aa141499}}.notice-card{width:min(380px,100%);padding:18px 20px 16px;border-radius:18px;background:var(--panel);color:var(--text);text-align:center;box-shadow:0 18px 50px #00000059;border:3px solid var(--accent);display:flex;flex-direction:column;gap:6px;align-items:center}.notice-card.notice-end{border-color:var(--bar)}.notice-card.notice-attack{border:4px solid var(--late);width:min(420px,100%)}.notice-icon{font-size:42px;line-height:1}.notice-attack .notice-icon{font-size:54px}.notice-title{font-family:Kanit,sans-serif;font-size:24px;font-weight:800;display:flex;align-items:center;gap:8px}.notice-attack .notice-title{color:var(--late);font-size:26px}.notice-detail{font-size:15px}.notice-attack .notice-detail{font-weight:600}.notice-blockers{font-size:13px;color:var(--muted)}.notice-card .notice-go,.notice-card button.primary.notice-go{margin-top:6px;width:100%;min-height:46px;font-size:16px;background:var(--late);border-color:var(--late)}.notice-timer{margin-top:6px;height:4px;width:100%;border-radius:2px;background:var(--accent);transform-origin:left;animation:notice-timer 2s linear forwards}.notice-end .notice-timer{background:var(--bar)}@keyframes notice-timer{to{transform:scaleX(0)}}.clash-banner.hit-me{border-width:3px;background:color-mix(in srgb,var(--late) 14%,var(--panel));animation:clash-shake .5s ease-in-out 2}.clash-banner.hit-me .clash-result{font-size:16px;font-weight:700}@keyframes clash-shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media(prefers-reduced-motion:reduce){.notice-backdrop.notice-attack,.clash-banner.hit-me{animation:none}}.online-home{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-width:900px}.online-card{display:flex;flex-direction:column;gap:10px}.online-card h2{margin:0;font-size:17px}.online-card input,.online-card select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text)}.online-card label{display:flex;align-items:center;gap:8px}.code-input{letter-spacing:.3em;text-transform:uppercase;font-weight:700}.room-code-card{align-items:flex-start}.room-code{margin:0;font-size:40px;font-weight:800;letter-spacing:.18em;font-family:Kanit,sans-serif}.room-link{margin:0;word-break:break-all;color:var(--muted)}.join-row{display:flex;flex-wrap:wrap;gap:8px}.join-row input{flex:1 1 160px}.online-error{margin:0 0 10px;padding:8px 12px;border-radius:8px;border:1px solid var(--late);background:color-mix(in srgb,var(--late) 10%,var(--panel));cursor:pointer}.online-app .toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}button.is-loading{cursor:progress;opacity:1!important}button.is-loading:before{content:"";display:inline-block;width:.95em;height:.95em;margin-right:.45em;vertical-align:-.12em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.online-app.busy .human-panel button:not(.is-loading),.online-app.busy .hand-picker .card,.online-app.busy .mini-board button{pointer-events:none;opacity:.55}.busy-bar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:center;pointer-events:none}.busy-bar:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:busy-slide 1.1s ease-in-out infinite}.busy-bar span{margin-top:6px;padding:3px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);box-shadow:0 4px 14px #0000002e;font-size:13px}@keyframes busy-slide{0%{background-position:-40% 0}to{background-position:140% 0}}@media(prefers-reduced-motion:reduce){button.is-loading:before,.busy-bar:before{animation-duration:2.5s}}.table{--felt: #1d4a42;--felt-light: #27604f;--rim: #4a3020;--paper: #fbf7ee;--paper-edge: #e3dccb;--ink: #1f1c17;--ink-soft: #6a6355;--pip: #d9d2c0;--pip-done: #2f9e5b;--gold: #d4a62a;--good: #2f6fdb;--bad: #c94040;position:relative;background:radial-gradient(ellipse at 50% 30%,var(--felt-light),var(--felt) 70%);border:10px solid var(--rim);border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:16px;color:var(--ink);box-shadow:inset 0 0 40px #00000059;min-width:0}.table-center{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start}@media(max-width:760px){.table-center{grid-template-columns:minmax(0,1fr)}}.deck-pile{width:72px;height:96px;border-radius:8px;background:repeating-linear-gradient(45deg,#2b3d6b,#2b3d6b 6px,#33497f 6px,#33497f 12px);border:3px solid var(--paper);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;box-shadow:3px 3px #16223f,6px 6px #00000040;flex-shrink:0}.deck-pile b{font-size:22px}.deck-pile.event-deck{background:repeating-linear-gradient(45deg,#6b2b2b,#6b2b2b 6px,#7f3333 6px,#7f3333 12px);box-shadow:3px 3px #3f1616,6px 6px #00000040}.market-row{display:flex;flex-wrap:wrap;gap:10px;min-width:0}.card{background:var(--paper);border:1px solid var(--paper-edge);border-radius:10px;box-shadow:0 3px 8px #0000004d;padding:8px 10px;color:var(--ink)}.card h3{margin:4px 0;font-size:14px;line-height:1.25;text-wrap:balance}.card-top{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:11px}.market-card{width:150px;min-height:112px;display:flex;flex-direction:column}.card-stats{display:flex;gap:8px;font-size:12px;margin-top:auto;font-variant-numeric:tabular-nums}.card-need{font-size:11px;color:var(--ink-soft)}.size-tag,.method,.due,.event-kind{border-radius:4px;padding:0 5px;background:#ece5d3}.method-waterfall{background:#dbe7fb}.method-agile{background:#fde7cf}.due.late{background:var(--bad);color:#fff;font-weight:700}.risk{font-size:11px;color:#fff;border-radius:4px;padding:0 5px}.risk-low{background:#2f9e5b}.risk-medium{background:#b9860f}.risk-high{background:var(--bad)}.event-slot{display:flex;gap:10px;align-items:flex-start;perspective:800px}.event-face-wrap{width:190px}.event-card{min-height:112px;border-top:5px solid var(--bad);transform-style:preserve-3d}.event-card.good{border-top-color:var(--good)}.event-card p{margin:0;font-size:12px;color:var(--ink-soft)}.event-card.placeholder{border-top-color:var(--paper-edge);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;font-size:13px;background:#fbf7ee8c}.companies{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.company{background:#00000038;border:2px solid rgba(255,255,255,.08);border-radius:14px;padding:10px;color:var(--paper);display:flex;flex-direction:column;gap:8px;min-width:0;transition:border-color .2s,box-shadow .2s}.company.active{border-color:var(--gold);box-shadow:0 0 0 3px #d4a62a59}.company-head{display:flex;align-items:center;gap:8px}.company-name{font-weight:700}.first-marker{margin-left:auto;font-size:11px;background:var(--gold);color:var(--ink);border-radius:999px;padding:0 8px}.company-stats{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.counter{position:relative;display:inline-flex;align-items:center;gap:4px;font-size:20px;font-variant-numeric:tabular-nums}.counter b{display:inline-block;min-width:1.5ch}.pop{position:absolute;left:100%;top:0;font-size:14px;font-weight:700;padding:0 4px;border-radius:4px;pointer-events:none;white-space:nowrap}.pop.up{color:#7df0a8}.pop.down{color:#ff9a9a}.salary{font-size:12px;opacity:.8}.bench{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;padding:4px 6px;border-radius:999px;background:#0003;align-items:center}.bench-empty,.no-projects{font-size:12px;opacity:.7;margin:0}.token{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:#e9dcc3;border:3px solid #b99b6b;box-shadow:0 2px #00000059;flex-shrink:0}.token.role-designer{background:#e7dcf7;border-color:#8e6bd1}.token.role-dev{background:#dbe8fb;border-color:#2f7fd8}.token.role-tester{background:#d9f1e2;border-color:#2f9e5b}.token.role-pm{background:#fbe6cc;border-color:#d98a1f}.token-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:1px}.token-name{font-size:10px;line-height:1;color:var(--paper);max-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-wrap.resting{filter:grayscale(1);opacity:.5}.table-staff{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}.deck-pile.staff-deck{background:#141414 var(--card-back) center 38% / 100% auto no-repeat;box-shadow:3px 3px #233416,6px 6px #00000040}.staff-card{width:150px;min-height:118px;display:flex;flex-direction:column;border-left:5px solid #b99b6b}.staff-card.role-designer{border-left-color:#8e6bd1}.staff-card.role-dev{border-left-color:#2f7fd8}.staff-card.role-tester{border-left-color:#2f9e5b}.staff-card.role-pm{border-left-color:#d98a1f}.staff-card .token{width:22px;height:22px;font-size:11px;border-width:2px}.trait-name{font-size:12px;font-weight:700}.trait-text{margin:0 0 4px;font-size:11px;line-height:1.3;color:var(--ink-soft)}.company-projects{display:flex;flex-direction:column;gap:8px}.project-card{padding:8px}.pm-slot{display:flex;gap:4px;margin-bottom:4px}.stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stage{background:#f1ebdc;border-radius:6px;padding:4px;display:flex;flex-direction:column;gap:4px;min-height:82px;min-width:0}.stage-name{font-size:10.5px;color:var(--ink-soft);line-height:1.2}.pips{display:flex;flex-wrap:wrap;gap:2px}.pip{width:9px;height:9px;border-radius:2px;background:var(--pip);transition:background-color .35s ease,transform .35s ease}.pip.done{background:var(--pip-done);transform:scale(1.08)}.pip-none{font-size:11px;color:var(--ink-soft)}.bugs{display:flex;flex-wrap:wrap;gap:1px;min-height:16px;font-size:13px}.bug{display:inline-block}.slot{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto}.slot .token{width:26px;height:26px;font-size:13px;border-width:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.pip{transition:none}}button.token-wrap,button.staff-card{font:inherit;color:inherit;cursor:pointer;text-align:left}button.token-wrap{background:none;border:0;padding:0}button.token-wrap:focus-visible,button.staff-card:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button.staff-card:hover{transform:translateY(-2px)}.piles{display:flex;flex-direction:column;gap:10px;align-items:center}.bank{width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f5d77a,#c99a22 70%);border:3px solid #8a6512;color:#3b2a06;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:0 3px #5e450c,0 6px 10px #00000059}.bank-coins{font-size:14px;letter-spacing:-4px}.coin-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:12px}.coin{position:absolute;left:-11px;top:-11px;font-size:20px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4))}.info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e0c8c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.info-card{--paper: #fbf7ee;--ink: #1f1c17;--ink-soft: #6a6355;width:min(360px,100%);background:var(--paper);color:var(--ink);border-left:6px solid #b99b6b;padding:14px 16px}.info-card.role-designer{border-left-color:#8e6bd1}.info-card.role-dev{border-left-color:#2f7fd8}.info-card.role-tester{border-left-color:#2f9e5b}.info-card.role-pm{border-left-color:#d98a1f}.info-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.info-head h3{margin:0;font-size:18px}.info-role{font-size:13px;color:var(--ink-soft)}.info-close{margin-left:auto;border:0;background:none;font-size:18px;cursor:pointer;color:var(--ink-soft)}.info-list{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:14px}.info-list dt{color:var(--ink-soft)}.info-list dd{margin:0}.token-wrap.expert .token{box-shadow:0 0 0 2px var(--gold),0 2px #00000059}.staff-card.expert,.info-card.expert{outline:3px solid var(--gold, #d4a62a);outline-offset:-1px;background:linear-gradient(160deg,#fff8e0,var(--paper) 45%)}.expert-tag{align-self:flex-start;font-size:10.5px;font-weight:700;color:#3b2a06;background:var(--gold);border-radius:999px;padding:0 7px}.deck-pile.tactic-deck{background:#141414 var(--card-back) center 38% / 100% auto no-repeat;box-shadow:3px 3px #2a163f,6px 6px #00000040}.hand{display:flex;flex-wrap:wrap;gap:4px}.tactic-chip{font-size:11.5px;padding:2px 8px;border-radius:6px;background:var(--paper);color:var(--ink);border-left:4px solid var(--bad);box-shadow:0 2px #0000004d}.tactic-chip.defense{border-left-color:var(--good)}.player-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.player-tabs{display:flex;gap:8px;overflow-x:auto;flex:1 1 auto;min-width:0;padding-bottom:2px}.player-tab{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"seat name" "seat stats";column-gap:8px;align-items:center;text-align:left;font:inherit;color:var(--paper);background:#00000040;border:2px solid rgba(255,255,255,.1);border-radius:12px;padding:6px 12px;cursor:pointer;flex:0 0 auto;min-width:170px}.player-tab .seat{grid-area:seat}.tab-name{grid-area:name;font-size:12px;opacity:.85;white-space:nowrap}.tab-stats{grid-area:stats;display:flex;gap:10px;align-items:center;font-size:13px}.tab-stats .counter{font-size:15px}.player-tab.viewed{background:#fbf7ee29;border-color:var(--paper)}.player-tab.active{border-color:var(--gold);box-shadow:0 0 0 3px #d4a62a59}.player-tab:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.turn-marker,.player-tab .first-marker{position:absolute;top:-9px;font-size:10px;border-radius:999px;padding:0 7px}.turn-marker{right:8px;background:var(--gold);color:var(--ink);font-weight:700}.player-tab .first-marker{left:8px;margin:0;background:var(--paper);color:var(--ink)}.follow{display:inline-flex;gap:6px;align-items:center;color:var(--paper);font-size:13px;white-space:nowrap}.section-label{margin:4px 0 0;font-size:12px;letter-spacing:.06em;color:var(--paper);opacity:.75}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.team-card{width:auto;min-height:150px}.team-card.resting{filter:grayscale(.9);opacity:.6}.team-salary{margin-left:auto;color:var(--ink-soft)}.team-status{margin-top:auto;font-size:11.5px;border-radius:6px;padding:2px 6px;background:#ece5d3}.team-status.is-busy{background:#d9f1e2}.team-status.is-resting{background:#f3d9d9}.company .company-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}.tactic-card{display:flex;flex-direction:column;gap:2px;width:190px;font-size:11.5px;padding:6px 10px;border-radius:8px;background:var(--paper);color:var(--ink);border-left:5px solid var(--bad);box-shadow:0 2px #0000004d}.tactic-card b{font-size:13px}@media(max-width:480px){.company .company-projects{grid-template-columns:minmax(0,1fr)}.team-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.player-tab{min-width:150px}}.deck-pile.discard-pile{background:repeating-linear-gradient(45deg,#555,#555 6px,#666 6px,#666 12px);box-shadow:3px 3px #333,6px 6px #00000040}.table-center .piles{flex-direction:row;flex-wrap:wrap}.draw-note{color:var(--paper);font-size:13px;display:flex;flex-direction:column;gap:4px;min-width:0}.draw-note p{margin:0}.muted-on-felt{opacity:.75}.hand-grid,.option-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.hand-grid .card,.option-cards .card{width:auto;min-height:120px}.card.selected{outline:3px solid var(--gold, #d4a62a);outline-offset:1px}.tactic-card{display:flex;flex-direction:column;text-align:left;font:inherit;cursor:default;border-left:5px solid var(--bad)}button.tactic-card:not(:disabled){cursor:pointer}.tactic-card.defense{border-left-color:var(--good)}.tactic-card:disabled{opacity:1}.stage-chips{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto}.stage-chip{font-size:10px;padding:0 6px;border-radius:999px;background:#ece5d3;color:var(--ink)}.stage-chip.stage-testing{background:#d9f1e2}.project-card{width:100%}.project-card.ready{box-shadow:0 0 0 3px var(--gold),0 3px 8px #0000004d}.ready-tag,.shield-tag{border-radius:4px;padding:0 6px;font-weight:700}.ready-tag{background:#d9f1e2}.ready-tag.blocked{background:#f3d9d9}.shield-tag{background:#dbe7fb;font-weight:400}.stage.full{background:#dff0e4}.stage.has-bugs{background:#f6dede}.mini-card{font:inherit;font-size:11px;border-radius:6px;border:1px solid var(--paper-edge);border-left:4px solid #b99b6b;background:var(--paper);color:var(--ink);padding:1px 6px;cursor:pointer;text-align:left}.mini-card.role-designer{border-left-color:#8e6bd1}.mini-card.role-dev{border-left-color:#2f7fd8}.mini-card.role-tester{border-left-color:#2f9e5b}.mini-card.role-pm{border-left-color:#d98a1f}.tab-project{font-size:11.5px;opacity:.9}.company .company-projects{grid-template-columns:minmax(0,1fr)}.human-panel{--paper: #fbf7ee;--paper-edge: #e3dccb;--ink: #1f1c17;--ink-soft: #6a6355;--gold: #d4a62a;--good: #2f6fdb;--bad: #c94040}.deck-pile.project-deck.size-M{background:repeating-linear-gradient(45deg,#2b6b4a,#2b6b4a 6px,#337f58 6px,#337f58 12px);box-shadow:3px 3px #163f2b,6px 6px #00000040}.deck-pile.project-deck.size-L{background:repeating-linear-gradient(45deg,#6b5a2b,#6b5a2b 6px,#7f6b33 6px,#7f6b33 12px);box-shadow:3px 3px #3f3416,6px 6px #00000040}.size-track{display:inline-flex;gap:3px}.size-badge{font-size:11px;padding:1px 6px;border-radius:999px;border:1px dashed currentColor;opacity:.55;white-space:nowrap}.size-badge.now{opacity:1;border-style:solid;font-weight:600}.size-badge.done{opacity:1;border-style:solid;background:#2f8f5b;border-color:#2f8f5b;color:#fff}.player-tabs .player-tab{flex:1 1 0;min-width:0}.player-tab .tab-stats{flex-wrap:wrap;row-gap:3px}.table-center{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"piles event" "note event"}.table-center>.piles{grid-area:piles}.table-center>.draw-note{grid-area:note}.table-center>:last-child{grid-area:event}@media(max-width:760px){.table-center{grid-template-columns:minmax(0,1fr);grid-template-areas:"piles" "note" "event"}}.card.card-back{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;aspect-ratio:63.5 / 88;padding:0;overflow:hidden;color:#fff;background:#141414;border:3px solid var(--paper);font-weight:600}.card.card-back img{width:100%;height:auto;object-fit:contain}.card.card-back .back-label{position:absolute;left:0;right:0;bottom:0;padding:3px 4px;font-size:11px;text-align:center}.card.staff-back .back-label{background:#3d5a2b}.card.tactic-back .back-label{background:#4b2b6b}button.staff-card,button.tactic-card{color:var(--ink)}.tactic-card.action{border-left-color:var(--gold)}.delay-tag{font-size:11px;padding:1px 6px;border-radius:999px;background:#fde7c4;color:#7a4a00}.table-center .deck-pile{width:62px;height:84px;font-size:11px;text-align:center;line-height:1.15;padding:0 2px}.table-center .deck-pile b{font-size:20px}@media(max-width:760px){.table-center .piles{gap:6px}.table-center .deck-pile{width:calc((100% - 18px)/4);height:64px;font-size:10px;box-shadow:2px 2px #00000059}.table-center .deck-pile b{font-size:17px}}@media(max-width:760px){.table{border-width:6px;border-radius:16px;padding:8px;gap:10px}.company{padding:8px}.hand-grid,.option-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:6px}.hand-grid>*,.option-cards>*{flex:0 0 148px;scroll-snap-align:start}.hand-grid .card,.option-cards .card{font-size:12px}.hand-grid .trait-text,.option-cards .trait-text{font-size:11px}.stages{grid-template-columns:repeat(2,minmax(0,1fr))}.stage{min-height:0}.player-tabs .player-tab{flex:0 0 auto;min-width:132px;padding:6px 8px}.player-tab .tab-name{display:none}.player-tab .tab-stats{gap:4px 8px;font-size:12px}.size-badge{font-size:10px;padding:0 4px}.player-bar{flex-wrap:wrap}}.staff-card .staff-art{margin:-8px -10px 6px;border-radius:9px 9px 0 0;overflow:hidden;aspect-ratio:2 / 1;background:#e9e4d6}.staff-card .staff-art img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.staff-card.expert .staff-art{box-shadow:inset 0 0 0 2px var(--gold, #d4a62a)}.info-card .info-art{display:block;width:calc(100% + 32px);margin:-14px -16px 10px;aspect-ratio:2 / 1;object-fit:cover;border-radius:10px 10px 0 0}.event-card .event-art{margin:-8px -10px 6px;border-radius:9px 9px 0 0;overflow:hidden;aspect-ratio:2 / 1}.event-card .event-art img{display:block;width:100%;height:100%;object-fit:cover}.card.card-back.staff-back,.card.card-back.tactic-back{background:#141414}.cost-tag{margin-left:auto;font-size:11px;font-weight:700;padding:0 6px;border-radius:999px;background:#fff1c2;color:#7a5200}.cost-tag:empty{display:none}.pair-tag{background:#d9f0e3;color:#1d5b3a}.staff-card.pair{border-color:#3f9a6a}.tactic-card.special{border-top:3px solid #b3261e;background:linear-gradient(#fff,#fff4f2)}.mini-card.pair{outline:1px dashed #3f9a6a}.action-dots{display:flex;align-items:center;gap:6px;margin:0 0 6px}.action-dots .dot{font-size:18px;line-height:1}.action-dots .dot.spent{opacity:.25;filter:grayscale(1)}.draw-line.event-line{font-weight:600}.staff-card,.hand-grid .staff-card,.option-cards .staff-card{aspect-ratio:63.5 / 88;min-height:0;height:auto;overflow:hidden}.staff-card .staff-art{aspect-ratio:3 / 2;flex:none}.staff-card h3{margin:2px 0 0}.staff-card .trait-text{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.6em;line-height:1.3;margin:2px 0;flex:none}.staff-card .stage-chips{margin-top:auto;flex:none}.info-card .info-art{aspect-ratio:3 / 2}.staff-card.has-face{padding:0;border:0;border-radius:5.2%/3.8%;background:none;box-shadow:0 3px 8px #00000059;overflow:hidden}.staff-card.has-face img{display:block;width:100%;height:100%;pointer-events:none}.staff-card.has-face.selected{outline:3px solid var(--gold, #d4a62a);outline-offset:2px}.info-card .info-face{display:block;width:100%;max-width:340px;height:auto;aspect-ratio:750 / 1039;margin:0 auto 10px}.staff-card .card-top{flex-wrap:nowrap;white-space:nowrap;overflow:hidden;font-size:10px}.staff-card .card-top>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;min-width:0}.card.dim{filter:saturate(.4) opacity(.5)}.card[aria-pressed=true]{color:var(--ink)}.tactic-card[aria-pressed=true]{background:var(--paper)}.tactic-card.special[aria-pressed=true]{background:linear-gradient(#fff,#fff4f2)}.mini-x2{display:inline-block;margin-left:4px;padding:0 4px;border-radius:4px;background:#f2c94c;color:#3a2a00;font-weight:700;font-size:10px;line-height:1.5}.deck-pile.staff-deck,.deck-pile.tactic-deck{justify-content:flex-end;padding-bottom:0;overflow:hidden}.deck-pile.staff-deck span,.deck-pile.staff-deck b,.deck-pile.tactic-deck span,.deck-pile.tactic-deck b{width:100%;text-align:center;line-height:1.25}.deck-pile.staff-deck span,.deck-pile.staff-deck b{background:#3d5a2beb}.deck-pile.tactic-deck span,.deck-pile.tactic-deck b{background:#4b2b6beb}
