:root{--ink: #172033;--muted: #617086;--paper: #f4f0e7;--surface: #fffdf7;--surface-strong: #ffffff;--line: #d8d0c1;--blue: #245da8;--blue-soft: #e8f0ff;--red: #c84f3c;--red-soft: #ffece7;--gold: #e9ad3d;--green: #2f7f6f;--shadow: 0 22px 55px rgba(23, 32, 51, .14)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;color:var(--ink);overflow-x:hidden;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{border:0;font:inherit}button:focus-visible{outline:3px solid rgba(36,93,168,.35);outline-offset:3px}.app-shell{width:min(1180px,100%);min-height:100vh;margin:0 auto;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:stretch}.static-shell{width:min(760px,100%);min-height:100vh;margin:0 auto;padding:18px;display:grid;place-items:center}.static-page{border:1px solid rgba(216,208,193,.82);border-radius:18px;background:#fffdf7f2;box-shadow:var(--shadow);padding:28px;display:grid;gap:14px}.static-page h1{margin-bottom:4px}.static-page p{margin-bottom:0;color:var(--muted);font-weight:650;line-height:1.55}.static-action{margin-top:8px}.play-surface,.side-rail{border:1px solid rgba(216,208,193,.82);background:#fffdf7eb;box-shadow:var(--shadow)}.play-surface{min-width:0;border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:16px}.topbar,.duel-strip,.statusbar,.rack-head,.block-title,.wide-action,.status-actions{display:flex;align-items:center}.topbar{justify-content:space-between;gap:16px}.top-controls{display:grid;gap:8px;min-width:min(420px,52%)}.language-select{justify-self:end;min-height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);padding:0 8px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:850}.language-select select{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:850}.eyebrow{margin:0 0 5px;color:var(--green);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(34px,5vw,58px);line-height:.92;letter-spacing:0}h2{margin-bottom:0;font-size:18px;letter-spacing:0}.mode-switch{padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface-strong);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.mode-switch button,.wide-action,.statusbar button,.nickname-field input{min-height:40px;border-radius:10px;color:var(--ink);background:transparent;cursor:pointer;font-weight:850}.mode-switch button,.wide-action,.statusbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.mode-switch button.selected,.wide-action,.statusbar button{background:var(--ink);color:#fff}.mode-switch button.locked{color:var(--muted);cursor:not-allowed;opacity:.72}.turn-callout{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:10px 12px;display:grid;gap:3px}.turn-callout strong{font-size:18px}.turn-callout span{color:var(--muted);font-weight:750}.turn-callout.active{border-color:#2f7f6f6b;background:#eefaf6}.turn-callout.waiting{border-color:#245da83d;background:var(--blue-soft)}.turn-callout.setup{border-color:#e9ad3d73;background:#fff6db}.rules-entry button{width:100%;min-height:44px;border:1px solid rgba(216,208,193,.9);border-radius:12px;background:#fffdf7db;color:var(--ink);cursor:pointer;padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left}.rules-entry span{min-width:0;display:grid;gap:2px}.rules-entry small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}.rules-entry b{border-radius:8px;background:var(--ink);color:#fff;padding:6px 9px;font-size:12px;font-weight:900}.duel-strip{display:grid;grid-template-columns:1fr minmax(160px,auto) 1fr;gap:10px}.player-panel{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:12px;display:flex;align-items:center;gap:11px}.player-panel.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:950;flex:0 0 auto}.avatar.blue{background:var(--blue)}.avatar.red{background:var(--red)}.player-panel span,.compact,.history-item span,.operation span,.rack-head,.tool-block p{color:var(--muted)}.operation{border-radius:12px;background:var(--ink);color:#fff;padding:12px 14px;min-width:168px;display:grid;place-items:center;gap:4px;text-align:center}.operation span{color:#ffffffb8;font-size:12px;font-weight:800}.board-wrap{flex:1;display:grid;place-items:center;min-height:0}.board{width:min(100%,560px);aspect-ratio:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,1.3vw,10px)}.compact-board{width:min(100%,420px)}.cell{min-width:0;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fff8eb;color:var(--ink);cursor:pointer;font-size:clamp(19px,4vw,31px);font-weight:950;position:relative;transition:transform .14s ease,border-color .14s ease,background .14s ease}.cell:not(:disabled):hover{transform:translateY(-2px)}.cell.target{background:#fff0c2;border-color:var(--gold)}.cell.target:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold);position:absolute;right:8px;top:8px}.cell.claimed-p1{background:var(--blue);border-color:var(--blue);color:#fff}.cell.claimed-p2{background:var(--red);border-color:var(--red);color:#fff}.cell.winning{outline:4px solid var(--gold);outline-offset:-4px}.number-rack{display:grid;gap:9px}.rack-head{justify-content:space-between;font-size:13px;font-weight:800}.numbers{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:6px}.numbers button{min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:900}.numbers button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.numbers button:disabled,.cell:disabled{cursor:default}.statusbar{justify-content:space-between;gap:14px;min-height:54px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:10px 12px}.statusbar span{color:var(--muted);font-weight:750}.statusbar button{flex:0 0 auto;padding:0 13px}.status-actions{justify-content:flex-end;gap:8px}.footer-links{display:flex;gap:10px;justify-content:center}.footer-links button{min-height:34px;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;padding:0 10px}.footer-links button:hover{color:var(--ink)}.side-rail{border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}.tool-block{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:14px;display:grid;gap:11px}.result-block{background:var(--blue-soft);border-color:#245da840}.tool-block p{margin-bottom:0;line-height:1.45}.block-title{gap:8px}.invite-line{border:1px dashed var(--line);border-radius:8px;padding:10px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.wide-action{width:100%}.nickname-field{display:grid;gap:7px}.nickname-field span{color:var(--muted);font-size:13px;font-weight:800}.nickname-field input{width:100%;border:1px solid var(--line);background:var(--surface);padding:0 11px;font-weight:800}.history-list{display:grid;gap:8px}.daily-list{margin:0;padding:0;display:grid;gap:8px;list-style:none}.daily-item,.daily-empty{border:1px solid var(--line);border-radius:8px;min-height:42px;padding:9px 10px}.daily-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px}.daily-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-item span:last-child,.daily-empty{color:var(--muted);font-size:13px;font-weight:800}.daily-rank{width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:12px;font-weight:950}.history-item{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;justify-content:space-between;gap:10px}.history-item strong{text-transform:capitalize}.rules-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:#1720336b}.rules-sheet{width:min(520px,100%);border:1px solid rgba(216,208,193,.9);border-radius:14px;background:var(--surface-strong);box-shadow:var(--shadow);padding:18px;display:grid;gap:14px}.rules-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.rules-head h2{font-size:26px}.rules-head button{min-height:34px;border-radius:9px;background:var(--ink);color:#fff;cursor:pointer;padding:0 12px;font-weight:900}.rules-demo{border:1px solid rgba(216,208,193,.86);border-radius:12px;background:var(--surface);padding:12px;display:grid;grid-template-columns:1fr auto 1.15fr;gap:10px;align-items:center}.demo-players,.demo-sum{display:flex;align-items:center;justify-content:center;gap:7px;font-weight:950}.demo-token{width:30px;height:30px;border-radius:50%;color:#fff;display:grid;place-items:center;font-size:13px}.demo-token.blue{background:var(--blue)}.demo-token.red{background:var(--red)}.demo-sum{border-radius:10px;background:var(--ink);color:#fff;padding:10px}.demo-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.demo-board span{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:#fff8eb;display:grid;place-items:center;font-weight:950}.demo-board span.target{border-color:var(--gold);background:#fff0c2;color:var(--ink)}.rules-steps{margin:0;padding:0;display:grid;gap:8px;list-style:none;counter-reset:rules-step}.rules-steps li{min-height:42px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-weight:800;line-height:1.35;padding:9px 10px 9px 40px;position:relative}.rules-steps li:before{counter-increment:rules-step;content:counter(rules-step);width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:950;position:absolute;left:10px;top:9px}.result-dialog{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:#1720336b}.result-panel{width:min(360px,100%);border:1px solid rgba(216,208,193,.9);border-radius:12px;background:var(--surface-strong);box-shadow:var(--shadow);padding:18px;display:grid;gap:13px}.result-panel h2{font-size:28px}.result-panel p{margin-bottom:0;color:var(--muted);line-height:1.45;font-weight:750}.result-stats,.result-actions{display:grid;gap:8px}.result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.result-stats span{border:1px solid var(--line);border-radius:8px;min-height:38px;display:grid;place-items:center;color:var(--ink);font-weight:900;text-align:center}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.result-actions button{min-width:0;min-height:42px;border-radius:9px;background:var(--ink);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:900}.result-actions button:only-child{grid-column:1 / -1}@media(max-width:900px){.app-shell{grid-template-columns:1fr;width:min(390px,100%);max-width:100vw;padding:10px;overflow-x:hidden;margin:0}.static-shell{width:min(390px,100%);margin:0;padding:8px}.static-page{border-radius:14px;padding:18px}.play-surface,.side-rail{border-radius:14px;width:100%;max-width:100%}.play-surface{gap:9px}.play-surface>*,.side-rail>*{min-width:0}.topbar,.statusbar{align-items:stretch}.topbar{grid-template-columns:minmax(0,1fr) auto;display:grid}.topbar{gap:8px 10px;align-items:start}.statusbar{display:grid;grid-template-columns:1fr}.top-controls{display:contents}.language-select{grid-column:2;grid-row:1;justify-self:end;align-self:start;min-height:32px;max-width:132px;padding:0 7px;border-radius:10px}.language-select select{max-width:92px;font-size:12px}.turn-callout{padding:8px 10px;border-radius:10px;gap:1px}.turn-callout strong{font-size:16px}.turn-callout span,.rules-entry small{font-size:12px}.rules-entry button{min-height:38px;border-radius:10px;padding:7px 8px;gap:7px}.rules-entry b{padding:5px 8px}.rules-overlay{place-items:end center;padding:0}.rules-sheet{width:min(390px,100%);max-height:min(82vh,620px);overflow:auto;border-radius:18px 18px 0 0;padding:16px}.rules-demo{grid-template-columns:1fr;gap:8px}.rules-head h2{font-size:22px}.mode-switch{grid-column:1 / -1;grid-row:2;width:100%;min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px}.mode-switch button{min-width:0;min-height:34px;padding:0 5px;gap:4px;border-radius:8px;font-size:13px}.mode-switch svg{width:15px;height:15px}.duel-strip{grid-template-columns:minmax(0,1fr) 94px minmax(0,1fr);align-items:stretch;gap:6px}.player-panel{padding:8px;gap:7px;border-radius:10px}.player-panel h2{font-size:15px;line-height:1.05}.player-panel span{font-size:12px;line-height:1.1}.avatar{width:31px;height:31px;font-size:14px}.operation{width:100%;min-width:0;padding:7px 6px;gap:1px;border-radius:10px}.operation svg{width:14px;height:14px}.operation strong{font-size:15px;line-height:1.05}.operation span{font-size:10px}.board-wrap{width:100%;overflow:hidden}.board{width:100%;max-width:340px;gap:6px}.numbers{grid-template-columns:repeat(7,minmax(0,1fr))}.side-rail{box-shadow:none}.side-rail .result-block{display:none}}@media(max-width:430px){.app-shell{padding:8px}.play-surface,.side-rail{padding:12px}h1{font-size:32px}.cell{font-size:24px}.eyebrow{margin-bottom:2px;font-size:11px}.mode-switch button{font-size:12px}.duel-strip{grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr)}.player-panel{padding:7px}.player-panel h2,.operation strong{font-size:14px}}
