:root{color:#1f2823;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{width:min(1500px,100%);margin:0 auto;padding:24px}.top-bar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.eyebrow{color:#50705e;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}h1,h2,p{margin:0}h1{font-size:2rem;line-height:1.05}h2{font-size:.95rem}.match-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.match-meta span,.match-meta button{color:#2d3a32;background:#fff;border:1px solid #cad8ce;border-radius:999px;padding:8px 12px;font-size:.85rem;font-weight:700}.match-meta button{cursor:pointer}.match-ceremony{background:#fff;border:1px solid #d7e0da;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;min-width:0;margin-bottom:18px;padding:12px 14px;display:flex;box-shadow:0 8px 18px #1f28230f}.match-ceremony div{gap:3px;min-width:0;display:grid}.match-ceremony span{color:#64766c;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:900}.match-ceremony strong{color:#1f2823;font-size:1.05rem}.match-ceremony p{color:#506258;max-width:720px;font-size:.9rem;font-weight:700;line-height:1.35}.match-ceremony.practice{background:#f8faf8}.match-ceremony.waiting{background:#fff6e8;border-color:#d99b45}.match-ceremony.live{background:#eefaf3;border-color:#8fd8ad}.match-ceremony.complete{background:#fff0f2;border-color:#c43d4b}.arena{grid-template-columns:minmax(280px,1fr) minmax(300px,380px) minmax(280px,1fr);align-items:start;gap:18px;display:grid}.board-panel,.control-panel{background:#fff;border:1px solid #d7e0da;border-radius:8px;min-width:0;box-shadow:0 10px 25px #1f282314}.board-panel{padding:16px}.board-panel.impact-mistake{border-color:#c43d4b;animation:.46s ease-out board-impact;box-shadow:0 12px 30px #80162333}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-header p{color:#617267;margin-top:4px;font-size:.86rem}.panel-header strong{color:#16734d}.sudoku-board{aspect-ratio:1;border:3px solid #24352c;grid-template-columns:repeat(9,minmax(0,1fr));width:100%;display:grid}.sudoku-cell{color:#1f2823;cursor:pointer;background:#fff;border:1px solid #cbd6cf;place-items:center;min-width:0;padding:0;font-size:clamp(1rem,3vw,1.8rem);font-weight:700;display:grid;position:relative}.sudoku-cell:nth-child(3n){border-right-width:2px;border-right-color:#24352c}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom-width:2px;border-bottom-color:#24352c}.sudoku-cell:nth-child(9n){border-right-width:1px}.sudoku-cell.given{background:#eef4f0}.sudoku-cell.selected{z-index:2;background:#dcefe5;outline:3px solid #15804f}.sudoku-cell.mistaken{color:#8c1224;z-index:3;background:#ffecef;outline:3px solid #d72f45;animation:.52s ease-out cell-mistake}.sudoku-cell.opponent-cursor{outline-offset:-5px;z-index:2;outline:3px solid #2d8bd6}.sudoku-cell.opponent-cursor:before{content:"";background:#2d8bd6;border-radius:999px;width:7px;height:7px;position:absolute;top:5px;right:5px;box-shadow:0 0 0 3px #2d8bd629}.sudoku-cell.fogged{color:#506259;background:#d5ddd8}.sudoku-cell.private-value span{aspect-ratio:1;background:#6a7a71;border-radius:4px;width:28%}.sudoku-cell.hinted{color:#0d7148;background:#e7f7ee}.sudoku-cell.hinted:before{content:"";background:#14a35f;border-radius:999px;width:7px;height:7px;position:absolute;top:5px;right:5px}.sudoku-cell.shielded:after{content:"";pointer-events:none;border:2px solid #2d8bd6;border-radius:4px;position:absolute;inset:4px}.board-effect-bar{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.board-effect-badge{color:#1f2823;background:#f8faf8;border:1px solid #d7e0da;border-radius:8px;grid-template-columns:auto minmax(0,1fr);gap:8px;min-width:min(190px,100%);padding:8px;display:grid;position:relative;overflow:hidden}.board-effect-badge.fog{background:#eef2ef;border-color:#86958d}.board-effect-badge.hint{background:#edfaf2;border-color:#7fc99e}.board-effect-badge.shield{background:#eef7ff;border-color:#87b9e6}.board-effect-badge.ending-soon{background:#fff6e8;border-color:#d99b45}.board-effect-icon{aspect-ratio:1;color:#1f2823;background:#fff;border:1px solid #c9d8cf;border-radius:8px;place-items:center;width:34px;font-weight:950;display:grid}.board-effect-badge strong,.board-effect-badge small{min-width:0;display:block}.board-effect-badge small{color:#64766c;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;overflow:hidden}.board-effect-meter{background:#1f28231f;border-radius:999px;grid-column:1/-1;height:4px;overflow:hidden}.board-effect-meter span{width:var(--effect-progress,100%);border-radius:inherit;background:#16734d;height:100%;display:block}.board-effect-badge.fog .board-effect-meter span{background:#6a7a71}.board-effect-badge.hint .board-effect-meter span{background:#14a35f}.board-effect-badge.shield .board-effect-meter span{background:#2d8bd6}.board-effect-badge.ending-soon .board-effect-meter span{background:#d99b45}.control-panel{gap:16px;padding:16px;display:grid;overflow:hidden}.control-panel.impact-failure{border-color:#c43d4b;animation:.46s ease-out control-failure;box-shadow:0 12px 30px #8016232e}.control-panel.impact-blocked{border-color:#2d8bd6;animation:.46s ease-out control-blocked;box-shadow:0 12px 30px #195b9129}.control-panel section{gap:10px;min-width:0;display:grid}.remote-panel{background:#f8faf8;border:1px solid #d7e0da;border-radius:8px;padding:10px}.remote-panel label{color:#64766c;gap:5px;font-size:.72rem;font-weight:800;display:grid}.remote-panel input{color:#1f2823;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #c9d8cf;border-radius:8px;padding:8px;font-size:.82rem}.match-status-banner{background:#fff;border:1px solid #d7e0da;border-radius:8px;gap:3px;padding:10px;display:grid}.match-status-banner strong{color:#1f2823}.match-status-banner span{color:#64766c;font-size:.8rem}.match-status-banner.local{background:#f8faf8;border-color:#d7e0da}.match-status-banner.waiting{background:#fff6e8;border-color:#d99b45}.match-status-banner.active{background:#eefaf3;border-color:#8fd8ad}.match-status-banner.complete{background:#fff0f2;border-color:#c43d4b}.remote-guidance{color:#5f4a27;background:#fff6e8;border:1px solid #d99b45;border-radius:8px;gap:8px;margin:0;padding:8px 10px;font-size:.78rem;font-weight:800;line-height:1.35;display:grid}.remote-guidance button{color:#1f2823;cursor:pointer;font:inherit;background:#fff;border:1px solid #d99b45;border-radius:8px;justify-self:start;padding:6px 8px;font-size:.78rem;font-weight:900}.setup-actions{display:grid}.setup-actions button,.invite-row button{color:#1f2823;cursor:pointer;min-width:0;font:inherit;background:#fff;border:1px solid #c9d8cf;border-radius:8px;padding:8px;font-size:.82rem;font-weight:800}.setup-actions button:disabled,.invite-row button:disabled,.setup-remote-actions button:disabled,.power-grid button:disabled,.wide-button:disabled{cursor:not-allowed;opacity:.55}.modal-backdrop{z-index:20;background:#1f282347;place-items:start center;padding:72px 20px 24px;display:grid;position:fixed;inset:0;overflow-y:auto}.setup-modal{background:#fbfdfb;border:1px solid #c9d8cf;border-radius:8px;gap:16px;width:min(720px,100%);padding:18px;display:grid;box-shadow:0 24px 70px #1f282338}.setup-modal>header{justify-content:space-between;align-items:start;gap:16px;display:flex}.setup-modal h2,.setup-modal h3{margin:0}.setup-modal p{color:#64766c;margin:0;font-size:.86rem;line-height:1.4}.icon-button{color:#1f2823;cursor:pointer;font:inherit;background:#fff;border:1px solid #c9d8cf;border-radius:8px;padding:8px 10px;font-weight:900;line-height:1}.setup-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.setup-options section{background:#fff;border:1px solid #d7e0da;border-radius:8px;align-content:start;gap:10px;min-width:0;padding:12px;display:grid}.setup-options label{color:#64766c;gap:5px;font-size:.72rem;font-weight:800;display:grid}.setup-options input,.setup-options select{color:#1f2823;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #c9d8cf;border-radius:8px;padding:8px;font-size:.82rem}.match-config-controls{gap:8px;display:grid}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.preset-grid button{color:#1f2823;cursor:pointer;min-width:0;font:inherit;text-align:left;background:#fff;border:1px solid #c9d8cf;border-radius:8px;gap:4px;padding:8px;display:grid}.preset-grid button.active{background:#eefaf3;border-color:#15804f}.preset-grid button:disabled{cursor:not-allowed;opacity:.55}.preset-grid strong{font-size:.8rem;line-height:1.1}.preset-grid span{color:#64766c;font-size:.7rem;font-weight:700;line-height:1.25}.setup-modal .preset-readout,.setup-modal .power-set-readout{color:#4f6759;font-size:.74rem;font-weight:900}.setup-options .setup-checkbox{color:#1f2823;background:#f8faf8;border:1px solid #d7e0da;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.setup-checkbox input{width:auto}.setup-remote-actions{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.setup-remote-actions button{color:#1f2823;cursor:pointer;min-width:0;font:inherit;background:#fff;border:1px solid #c9d8cf;border-radius:8px;padding:8px;font-size:.82rem;font-weight:800}.setup-modal .setup-status{color:#1f2823;background:#f8faf8;border:1px solid #c9d8cf;border-radius:8px;padding:8px 10px;font-size:.78rem;font-weight:800;line-height:1.35}.setup-modal .setup-status.danger{color:#8c1224;background:#fff0f2;border-color:#ef9aa5}.section-header{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.section-header h2{min-width:0}.section-header>kbd{flex:none}kbd{color:#415249;background:#f5f8f6;border:1px solid #b8c8be;border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;min-width:1.45rem;min-height:1.45rem;padding:3px 6px;font-family:inherit;font-size:.72rem;font-weight:900;line-height:1;display:inline-flex}.score-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.metric{background:#f8faf8;border:1px solid #d7e0da;border-radius:8px;min-width:0;padding:10px}.metric span{color:#64766c;font-size:.72rem;font-weight:700;display:block}.metric strong{margin-top:4px;font-size:1.35rem;display:block}.digit-pad,.segmented,.power-grid{gap:8px;min-width:0;display:grid}.digit-pad{grid-template-columns:repeat(9,minmax(0,1fr))}.digit-pad button,.segmented button,.power-grid button,.wide-button{color:#1f2823;cursor:pointer;background:#fff;border:1px solid #c9d8cf;border-radius:8px;min-width:0;font-weight:800}.remote-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.remote-meta div{background:#fff;border:1px solid #d7e0da;border-radius:8px;min-width:0;padding:8px}.remote-meta dt{color:#64766c;font-size:.68rem;font-weight:800}.remote-meta dd{color:#1f2823;text-overflow:ellipsis;margin:2px 0 0;font-size:.86rem;font-weight:800;overflow:hidden}.invite-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.digit-pad button{aspect-ratio:1}.digit-pad button:disabled{cursor:not-allowed;opacity:.45}.segmented{grid-template-columns:repeat(auto-fit,minmax(82px,1fr))}.segmented button{overflow-wrap:anywhere;white-space:normal;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:38px;padding:8px;font-size:.8rem;display:inline-flex}.segmented button.active{color:#fff;background:#16734d;border-color:#16734d}.target-readout,.empty-state{color:#64766c;font-size:.86rem}.power-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.power-grid button{text-align:left;align-content:start;gap:4px;min-height:68px;padding:10px;display:grid}.power-grid button kbd{justify-self:start}.power-grid button kbd,.wide-button kbd{margin-left:4px}.power-grid span{color:#64766c;font-size:.78rem;font-weight:700}.wide-button{width:100%;padding:10px}.effect-list{gap:8px;display:grid}.effect-pill{background:#f8faf8;border:1px solid #d7e0da;border-radius:8px;gap:6px;padding:10px;display:grid}.effect-pill.fog{background:#edf1ee;border-color:#aeb9b3}.effect-pill.hint{background:#eefaf3;border-color:#8fd8ad}.effect-pill.shield{background:#eef6fc;border-color:#a7cbea}.effect-pill.ending-soon{background:#fff6e8;border-color:#d99b45}.effect-pill-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.effect-pill-header span{color:#415249;font-size:.78rem;font-weight:900}.effect-pill p,.effect-note{color:#64766c;margin:0;font-size:.82rem}.effect-meter{background:#dfe8e2;border-radius:999px;height:5px;overflow:hidden}.effect-meter span{width:var(--effect-progress,100%);border-radius:inherit;background:#16734d;height:100%;display:block}.effect-pill.fog .effect-meter span{background:#6a7a71}.effect-pill.hint .effect-meter span{background:#14a35f}.effect-pill.shield .effect-meter span{background:#2d8bd6}.effect-pill.ending-soon .effect-meter span{background:#c56f24}.event-log{color:#415249;gap:8px;max-height:210px;margin:0;padding:0;font-size:.84rem;list-style:none;display:grid;overflow:auto}.event-row{background:#f8faf8;border:1px solid #0000;border-radius:8px;grid-template-columns:8px 1fr;align-items:start;gap:8px;padding:8px 9px;display:grid}.event-marker{background:#a7b8ad;border-radius:999px;width:8px;height:8px;margin-top:.35rem}.event-row.good{background:#f3faf5;border-color:#cfe4d5}.event-row.good .event-marker{background:#16734d}.event-row.bad{color:#1d557f;background:#eef6fc;border-color:#a7cbea}.event-row.bad .event-marker{background:#2d8bd6}.event-row.danger{color:#7d1223;background:#fff3f5;border-color:#efb1ba;font-weight:800;animation:.52s ease-out event-danger}.event-row.danger .event-marker{background:#d72f45;box-shadow:0 0 0 4px #d72f4524}@keyframes board-impact{0%{transform:translate(0)}20%{transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}to{transform:translate(0)}}@keyframes cell-mistake{0%{transform:scale(1)}35%{transform:scale(.9)}65%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes control-failure{0%{transform:translateY(0)}35%{transform:translateY(4px)}70%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes control-blocked{0%{transform:scale(1)}45%{transform:scale(.985)}to{transform:scale(1)}}@keyframes event-danger{0%{transform:translate(0)}35%{transform:translate(4px)}70%{transform:translate(-2px)}to{transform:translate(0)}}@media (width<=1100px){.arena{grid-template-columns:1fr}.control-panel{order:-1}}@media (width<=650px){.app-shell{padding:14px}.top-bar{flex-direction:column;align-items:flex-start}.match-meta{justify-content:flex-start}.match-ceremony{flex-direction:column;align-items:flex-start}.score-strip,.power-grid,.setup-options{grid-template-columns:1fr}.digit-pad{grid-template-columns:repeat(9,minmax(28px,1fr))}}
