:root{--bg: #1c1c1e;--surface: #2a2a2d;--text: #e8e8ea;--muted: #9a9aa0;--accent: #ffad05;--marked-bg: #3a3326;--marked-border: #7a6a3a;color-scheme:dark}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,sans-serif}.game{max-width:420px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 12px 12px;box-sizing:border-box}.card-wrap{position:relative}.card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.cell{min-height:80px;min-width:0;padding:4px 3px;font-size:13px;line-height:1.2;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere;word-break:normal;background:var(--surface);color:var(--text);border:1px solid #3a3a3e;border-radius:8px}.cell.marked{background:var(--marked-bg);border-color:var(--marked-border)}.cell.win{background:var(--accent);color:#1c1c1e;border-color:var(--accent);font-weight:600}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#1c1c1ed1;border-radius:8px;text-align:center}.banner{background:var(--accent);color:#1c1c1e;font-weight:700;text-align:center;padding:12px;border-radius:8px;margin-bottom:10px}.note{color:var(--muted);font-size:13px;margin:8px 0}.empty{text-align:center;color:var(--muted);margin-top:40vh}h2{font-size:14px;color:var(--muted);margin:18px 0 6px;font-weight:500}.list{list-style:none;margin:0;padding:0;font-size:14px}.list li{padding:4px 0;border-bottom:1px solid #2f2f33}.page{max-width:420px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px 16px;box-sizing:border-box}h1{font-size:20px;font-weight:600;margin:4px 0 12px}p{line-height:1.4}a{color:var(--accent)}.stack{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.field{min-height:44px;padding:8px 12px;font-size:16px;box-sizing:border-box;width:100%;background:var(--surface);color:var(--text);border:1px solid #3a3a3e;border-radius:8px}.btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:8px 14px;font-size:15px;text-decoration:none;background:var(--surface);color:var(--text);border:1px solid #3a3a3e;border-radius:8px}.btn.primary{background:var(--accent);color:#1c1c1e;border-color:var(--accent);font-weight:600}.btn:disabled{opacity:.5}.hint{background:var(--surface);color:var(--muted);font-size:13px;padding:10px 12px;border-radius:8px;margin:0}.error{color:#ff8a80;font-size:14px;margin:4px 0}.ok{color:var(--accent);font-size:14px}.copy{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.big{font-size:22px;margin:4px 0 12px}.code{font-family:ui-monospace,Menlo,monospace;font-size:28px;letter-spacing:.15em;color:var(--text);margin:0}.featured{background:var(--surface);padding:12px;border-radius:10px;border:1px solid var(--accent)}.featured h2{margin-top:0;color:var(--text)}.hint p{margin:0}.hint-title{color:var(--text)}.steps{margin:6px 0;padding-left:20px}.steps li{margin:3px 0}.hint-foot{margin-top:6px!important}.ended{text-align:center;font-size:15px;margin:0 0 10px}.list.players li{display:flex;flex-direction:column;gap:8px;padding:10px 0}.list.ranking li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;font-size:16px}.list.ranking .wins{color:var(--muted)}.shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.content{flex:1;padding-bottom:calc(60px + env(safe-area-inset-bottom))}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid #3a3a3e;padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;min-height:52px;font-size:14px;background:none;border:none;color:var(--muted)}.tab.active{color:var(--accent);font-weight:600}@media (max-width: 360px){.game{padding-left:8px;padding-right:8px}.card{gap:4px}}
