:root{--bg: #0e140f;--panel: #18221a;--line: #2a3a2e;--ink: #eef7ef;--dim: #9bb3a1;--accent: #5a9c4a;--accent2: #7ec46b;--chip: #20302492;--sel: #2c4a2c;--good: #2e6b2a;--bad: #6b2a2a}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(900px 560px at 50% -8%,#16241a,var(--bg));color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex;justify-content:center;-webkit-user-select:none;user-select:none}#app{width:100%;max-width:560px;padding:12px 12px 30px}header{text-align:center;margin-bottom:4px}h1{margin:0;font-size:30px;letter-spacing:7px;font-weight:800;color:var(--accent2)}.sub{margin:3px 0 0;color:var(--dim);font-size:13px}.bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center;margin:8px 0}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;overflow:hidden}.seg button{background:none;border:none;color:var(--dim);padding:6px 14px;font:600 13px system-ui;cursor:pointer}.seg button.active{background:var(--accent);color:#06160a}.btn{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:7px 15px;border-radius:999px;font:700 13px system-ui;cursor:pointer}.btn:hover{border-color:var(--accent2)}.btn.primary{background:var(--accent);color:#06160a;border-color:var(--accent)}.mini{background:none;border:none;color:var(--dim);cursor:pointer;font:700 13px system-ui}.mini:hover{color:#e07}.scoreboard{display:flex;gap:10px;justify-content:center;margin:8px 0}.readout{background:#0a120c;border:1px solid var(--line);border-radius:8px;padding:5px 18px;font:800 18px ui-monospace,monospace;color:var(--accent2);min-width:92px;text-align:center}.readout span{color:var(--dim);font-size:11px;display:block;font-weight:600;letter-spacing:.5px}.readout strong{font-weight:800}.prompt{text-align:center;color:var(--dim);font-size:13px;margin:6px 4px;min-height:18px}.stage{position:relative;min-height:200px}.status{text-align:center;color:var(--accent2);font-size:13px;margin-top:10px;min-height:18px}.sortwrap{display:flex;flex-direction:column;gap:14px}.tray{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--chip);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:76px;cursor:pointer;color:var(--ink);font:600 12px system-ui}.chip .emoji{font-size:26px;line-height:1}.chip .nm{font-size:12px}.chip .tag{font-size:10px;color:var(--accent2);background:#0c170d;padding:1px 6px;border-radius:6px}.chip.sel{border-color:var(--accent2);box-shadow:0 0 0 2px var(--accent2) inset}.chip.placed{opacity:.82}.buckets{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.bucket{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px dashed var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;color:var(--ink);font:700 13px system-ui}.bucket:hover{border-color:var(--accent2);border-style:solid}.bucket .bcount{background:var(--accent);color:#06160a;border-radius:999px;padding:0 8px;font-size:12px;min-width:20px;text-align:center}.buildwrap{display:flex;flex-direction:column;gap:12px}.groupshint{text-align:center;color:var(--dim);font-size:12px}.rules{display:flex;flex-direction:column;gap:6px}.rule{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px}.rule .ix{color:var(--dim);width:20px}.rule .q{flex:1;min-width:120px}.rule .arrow{color:var(--dim)}.rule .g{color:var(--accent2);font-weight:700}.rule .del{margin-left:auto}.elserow{border-style:dashed}.builder{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}select{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:600 12px system-ui;max-width:100%}.overlay{position:fixed;inset:0;background:#04080599;display:flex;align-items:center;justify-content:center;z-index:10}.overlay.hidden{display:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px 28px;text-align:center;box-shadow:0 18px 60px #0009}.card h2{margin:0 0 8px;color:var(--accent2)}.card p{margin:0 0 16px;color:var(--dim)}
