:root{font-family:Inter,system-ui,sans-serif;color:#1d2433;background:#f4f6fa}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.app-shell,.game-screen{width:min(1100px,100%);margin:0 auto;padding:24px}.hero{margin-bottom:20px}.hero h1{margin-bottom:6px}.hero p{color:#5f6878}.mode-tabs{display:flex;gap:8px;margin-bottom:16px}.mode-tabs button,.chip,.candidate,.game-header button{border:1px solid #ccd3df;background:#fff;border-radius:10px;padding:10px 14px}.mode-tabs button.active,.chip.active,.candidate.selected{border-color:#3659d9;background:#edf1ff}.panel,.start-panel,.result-panel{background:#fff;border:1px solid #dce1ea;border-radius:14px;padding:18px;margin:14px 0}.panel h2,.result-panel h2{margin-top:0}.panel select{width:100%;padding:10px;border-radius:8px;border:1px solid #ccd3df}.settings-panel{display:grid;gap:16px}.setting-field{display:grid;gap:7px}.setting-field label,.setting-checkbox strong{font-weight:700}.setting-field p{margin:0;color:#667085;font-size:.9rem}.setting-checkbox{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dce1ea;border-radius:10px;cursor:pointer}.setting-checkbox input{margin-top:3px}.setting-checkbox span{display:grid;gap:4px}.setting-checkbox small{color:#667085}.mechanic-group{margin-top:14px}.mechanic-group h3{font-size:.9rem;color:#657084}.chip-grid{display:flex;flex-wrap:wrap;gap:8px}.formula{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;padding:24px;border:2px solid #cfd7e8;border-radius:16px;background:#fff}.formula-side{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:46px}.formula-token{display:flex;align-items:center;gap:8px}.formula-token span,.formula-result{background:#edf1ff;border:1px solid #b9c7ff;padding:10px 12px;border-radius:10px}.operator,.equals{font-size:1.4rem}.formula-result{text-align:center;font-weight:700}.placeholder{color:#7d8797}.candidate-list{display:grid;gap:10px}.candidate{text-align:left;display:grid;gap:5px}.candidate-title{font-weight:700}.status{width:fit-content;padding:3px 7px;border-radius:999px;background:#eef0f4;font-size:.8rem}.status.exact,.status.playable{background:#e4f6e9}.status.conflict{background:#ffe6e6}.start-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.start-panel p{margin-bottom:0;color:#667085}.primary{border:0;border-radius:10px;padding:12px 22px;background:#3659d9;color:#fff;font-weight:700}.history-panel{display:grid;gap:18px}.history-panel h2,.history-panel h3,.history-panel h4{margin-top:0}.history-panel h3{margin-bottom:10px;font-size:1rem;color:#465268}.history-empty{margin:0;color:#667085}.history-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.history-stat-card{padding:14px;border:1px solid #dce1ea;border-radius:12px;background:#f9fafc}.history-stat-card h4{margin-bottom:10px}.history-stat-card dl,.history-entry-meta{display:grid;gap:7px;margin:0}.history-stat-card dl div,.history-entry-meta div{display:flex;justify-content:space-between;gap:12px}.history-stat-card dt,.history-entry-meta dt{color:#667085}.history-stat-card dd,.history-entry-meta dd{margin:0;text-align:right}.history-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.history-entry{padding:14px;border:1px solid #dce1ea;border-radius:12px}.history-entry-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-entry p{margin:10px 0;color:#465268}.history-outcome{padding:3px 8px;border-radius:999px;font-size:.8rem}.history-outcome.cleared{background:#e4f6e9;color:#24663a}.history-outcome.failed{background:#ffe9e6;color:#8a3328}.game-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.board{display:grid;width:min(500px,100%);gap:6px;margin:24px 0}.cell{aspect-ratio:1;border:1px solid #aeb8c8;border-radius:7px;background:#fff}.cell.occupied{background:#3659d9}.score-row{margin-top:16px;font-size:1.1rem}.modifier-note{margin:12px 0;padding:10px 12px;border-radius:8px;background:#eef5ff;color:#314d7c}.modifier-warning{margin:12px 0;padding:10px 12px;border-radius:8px;background:#fff0e8;color:#8a3c19}.cell.blocked{background:repeating-linear-gradient(135deg,#d6d9df,#d6d9df 6px,#bfc4cc 6px,#bfc4cc 12px);border-color:#a6acb5}.battle-status{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px}.squad-panel{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;padding:12px;border:1px solid #c8d2e5;border-radius:10px;background:#fff}.synergy-row{margin:12px 0;color:#465268}.battle-board{grid-template-columns:repeat(6,1fr)}.battle-cell{display:grid;place-items:center;padding:4px;font-size:.72rem;color:#fff}.battle-cell.enemy-zone{background:#fff4f1;border-color:#e7b5ac}.battle-cell.player-zone{background:#f1f5ff;border-color:#aabbea}.battle-cell.unit{background:#3659d9;border-color:#2945ab}.battle-cell.enemy-unit,.battle-cell.enemy-unit:disabled{background:#bd4a3b;border-color:#92382d;opacity:1}.defense-cell{display:grid;place-items:center;padding:3px;font-size:.7rem}.defense-cell.path-cell,.defense-cell.path-cell:disabled{background:#e8dcc5;border-color:#b89e72;color:#5f4928;opacity:1}.defense-cell.base-cell,.defense-cell.base-cell:disabled{background:#bd4a3b;border-color:#92382d;color:#fff}.defense-cell.tower-cell{background:#3659d9;border-color:#2945ab;color:#fff}.reduced-effects *,.reduced-effects *:before,.reduced-effects *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}@media(max-width:680px){.app-shell,.game-screen{padding:14px}.formula{grid-template-columns:1fr;text-align:center}.formula-side{justify-content:center}.equals{transform:rotate(90deg)}.start-panel,.game-header{align-items:stretch;flex-direction:column}.history-entry-header,.history-stat-card dl div,.history-entry-meta div{align-items:flex-start;flex-direction:column}.history-stat-card dd,.history-entry-meta dd{text-align:left}}.app-shell>*,.panel>*,.start-panel>*,.result-panel>*,.formula>*,.formula-side,.formula-token,.formula-token>span,.formula-result,.candidate,.candidate>*,.setting-field,.setting-checkbox,.setting-checkbox>span,.history-panel,.history-panel>*,.history-stat-card,.history-stat-card>*,.history-entry,.history-entry>*,.history-entry-header,.history-entry-header>*,.history-entry-meta,.history-entry-meta>*,.history-stat-card dd,.history-entry-meta dd{min-width:0}.hero,.panel,.start-panel,.result-panel,.formula,.formula-token>span,.formula-result,.candidate,.setting-field,.setting-checkbox,.history-stat-card,.history-entry,.history-entry-header,.history-entry-meta,.history-stat-card h4,.history-entry p,.history-entry time{overflow-wrap:anywhere;word-break:break-word}.mode-tabs button,.panel select,.chip,.candidate,.primary,.setting-checkbox{min-height:44px}.panel select,.candidate,.setting-checkbox{max-width:100%;width:100%}.start-panel>div,.setting-checkbox>span{min-width:0}.setting-checkbox input{flex:0 0 auto}.history-stat-card time,.history-entry time{max-width:100%}@media(max-width:680px){.mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mode-tabs button{width:100%;padding-inline:8px}.panel,.start-panel,.result-panel{padding:14px}.formula{padding:16px}.formula-token{flex-wrap:wrap;justify-content:center}.chip{flex:1 1 130px;min-width:0}.primary{width:100%}.history-stats{grid-template-columns:minmax(0,1fr)}}.game-header button{min-height:44px}.board,.board>*,.cell{min-width:0;max-width:100%}.battle-cell,.defense-cell{overflow-wrap:anywhere;word-break:break-word;line-height:1.05}@media(max-width:680px){.board{width:100%;gap:4px}.cell{min-height:32px;border-radius:5px}.battle-cell,.defense-cell{padding:2px}.battle-cell{font-size:clamp(.56rem,2.8vw,.7rem)}.defense-cell{font-size:clamp(.58rem,2.9vw,.7rem)}}button:focus-visible,select:focus-visible{outline:3px solid #ffbf47;outline-offset:3px;box-shadow:0 0 0 2px #1d2433}.setting-checkbox:has(input:focus-visible){outline:3px solid #ffbf47;outline-offset:3px;box-shadow:0 0 0 2px #1d2433}.setting-checkbox input:focus-visible{outline:2px solid #1d2433;outline-offset:2px}.mode-tabs button,.chip{display:inline-flex;align-items:center;justify-content:center;gap:8px}.candidate{grid-template-columns:auto minmax(0,1fr);align-items:start}.candidate>.selection-indicator{grid-column:1;grid-row:1 / span 8}.candidate>:not(.selection-indicator){grid-column:2}.selection-indicator{display:inline-grid;place-items:center;flex:0 0 auto;width:1.35em;height:1.35em;border:2px solid currentColor;border-radius:999px;font-size:.78em;font-weight:900;line-height:1;visibility:hidden}[aria-pressed=true]>.selection-indicator{visibility:visible}.mode-tabs button[aria-pressed=true],.chip[aria-pressed=true],.candidate[aria-pressed=true]{font-weight:700}
