*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=midnight]{--bg: #0F172A;--surface: #1E293B;--surface-hover: #334155;--border: #334155;--border-strong: #94A3B8;--text: #F8FAFC;--text-dim: #94A3B8;--text-muted: #64748B;--accent: #3B82F6;--accent-dim: #1E3A8A;--danger: #EF4444;--success: #22C55E;--cell-bg: #1E293B;--cell-given: #F8FAFC;--cell-user: #60A5FA;--cell-selected: #1E3A8A;--cell-peer: #172554;--cell-conflict: #7F1D1D}[data-theme=cobalt]{--bg: #F3F4F6;--surface: #FFFFFF;--surface-hover: #F9FAFB;--border: #D1D5DB;--border-strong: #1F2937;--text: #111827;--text-dim: #4B5563;--text-muted: #6B7280;--accent: #2563EB;--accent-dim: #BFDBFE;--danger: #DC2626;--success: #16A34A;--cell-bg: #FFFFFF;--cell-given: #111827;--cell-user: #2563EB;--cell-selected: #BFDBFE;--cell-peer: #EFF6FF;--cell-conflict: #FEE2E2}[data-theme=amber]{--bg: #FEFCE8;--surface: #FFFFFF;--surface-hover: #FFFBEB;--border: #FEF08A;--border-strong: #422006;--text: #422006;--text-dim: #78350F;--text-muted: #A16207;--accent: #D97706;--accent-dim: #FDE047;--danger: #DC2626;--success: #059669;--cell-bg: #FFFFFF;--cell-given: #422006;--cell-user: #D97706;--cell-selected: #FDE047;--cell-peer: #FEF9C3;--cell-conflict: #FEE2E2}[data-theme=crimson]{--bg: #18181B;--surface: #27272A;--surface-hover: #3F3F46;--border: #3F3F46;--border-strong: #D4D4D8;--text: #FAFAFA;--text-dim: #A1A1AA;--text-muted: #71717A;--accent: #F43F5E;--accent-dim: #881337;--danger: #FBBF24;--success: #34D399;--cell-bg: #27272A;--cell-given: #FAFAFA;--cell-user: #F43F5E;--cell-selected: #881337;--cell-peer: #4C0519;--cell-conflict: #78350F}[data-theme=eink]{--bg: #E5E5E5;--surface: #FFFFFF;--surface-hover: #F5F5F5;--border: #A3A3A3;--border-strong: #000000;--text: #000000;--text-dim: #525252;--text-muted: #737373;--accent: #000000;--accent-dim: #D4D4D4;--danger: #000000;--success: #000000;--cell-bg: #FFFFFF;--cell-given: #000000;--cell-user: #525252;--cell-selected: #D4D4D4;--cell-peer: #F5F5F5;--cell-conflict: #D4D4D4}html{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}body{min-height:100dvh;min-height:100vh;overflow:hidden;background:var(--bg)}button{font:inherit;color:inherit;border:none;background:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{opacity:.35;pointer-events:none}.menu-screen{display:grid;place-items:center;min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.menu-content{display:grid;gap:20px;text-align:center;width:100%;max-width:340px}.menu-content h1{font-size:36px;font-weight:800;letter-spacing:-.02em}.menu-sub{color:var(--text-dim);font-size:15px}.diff-grid{display:grid;gap:12px}.diff-btn{width:100%;min-height:56px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-size:18px;font-weight:700;color:var(--text);transition:background .15s,border-color .15s}.diff-btn:active{background:var(--surface-hover);border-color:var(--accent)}.diff-btn:disabled{opacity:.5}.msg{position:absolute;top:calc(44px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:10;max-width:calc(100% - 32px);font-size:13px;padding:8px 12px;border-radius:8px;text-align:center;pointer-events:none}.msg-error{background:#ef444426;color:var(--danger)}.msg-success{background:#22c55e26;color:var(--success)}.msg-info{background:#3b82f626;color:var(--accent)}.player-screen{display:grid;grid-template-rows:auto 1fr auto;height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden;position:relative}.player-header{display:flex;align-items:center;gap:8px;padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top,6px));background:var(--surface);border-bottom:1px solid var(--border)}.header-right{display:flex;align-items:center;gap:4px}.header-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;font-size:17px;flex-shrink:0}.header-btn:active{background:var(--surface-hover)}.header-btn-active{color:var(--accent);background:var(--accent-dim)}.player-title{font-size:15px;font-weight:700;text-transform:capitalize;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-status{font-size:13px;color:var(--text-dim)}.board-wrap{display:grid;place-items:center;padding:8px;min-height:0}.board{display:grid;grid-template-columns:repeat(9,1fr);width:min(calc(100vw - 16px),calc(100dvh - 280px),440px);height:min(calc(100vw - 16px),calc(100dvh - 280px),440px);border:2px solid var(--border-strong);background:var(--border);gap:1px;border-radius:4px;overflow:hidden}.cell{display:grid;place-items:center;background:var(--cell-bg);aspect-ratio:1;min-width:0;min-height:0}.cell:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--border-strong)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--border-strong)}.cell-given .cell-value{color:var(--cell-given);font-weight:800}.cell-value{color:var(--cell-user);font-size:clamp(20px,7vmin,42px);line-height:1;font-weight:600}.cell-selected{background:var(--cell-selected)!important;outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.cell-peer{background:var(--cell-peer)!important}.cell-match{background:var(--accent-dim)!important}.cell-conflict .cell-value,.cell-incorrect .cell-value{color:var(--danger)!important}.candidates{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:80%;height:80%;color:var(--text-muted);font-size:clamp(8px,2.5vmin,13px);line-height:1}.candidates span{display:grid;place-items:center;min-width:0}.controls{background:var(--surface);border-top:1px solid var(--border);padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom,8px));display:grid;gap:8px}.action-row{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:6px}.action-btn{height:36px;min-height:36px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:18px;font-weight:700;color:var(--text-dim);transition:background .1s}.action-btn:active:not(:disabled){background:var(--surface-hover);border-color:var(--accent)}.action-restart{color:var(--danger)}.quick-active{color:var(--accent)!important;border-color:var(--accent)!important;background:var(--accent-dim)!important}.digit-row{display:grid;grid-template-columns:repeat(9,1fr);align-items:center;gap:5px}.digit-btn{height:40px;min-height:40px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:20px;font-weight:700;color:var(--text);transition:background .1s,border-color .1s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.digit-btn:active:not(:disabled){background:var(--surface-hover);border-color:var(--accent)}.digit-full{color:var(--text-muted)}.digit-active{border-color:var(--accent)!important;background:var(--accent-dim)!important}.digit-num{font-size:18px;line-height:1}.digit-count{font-size:9px;font-weight:400;line-height:1;opacity:.5}
