:root{--green: #6aaa64;--green-dark: #538d4e;--yellow: #c9b458;--yellow-dark: #b59f3b;--gray: #787c7e;--bg: #ffffff;--fg: #1a1a1b;--muted: #6b6f72;--border: #d3d6da;--tile-bg: #ffffff;--chip-bg: #efefef;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #121213;--fg: #ffffff;--muted: #a8abae;--border: #3a3a3c;--tile-bg: #1a1a1b;--chip-bg: #2a2a2c}}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;padding:24px 16px 48px}.header{text-align:center;margin-bottom:16px}.header h1{margin:0;font-size:32px;letter-spacing:1px}.tagline{margin:4px 0 0;color:var(--muted);font-size:14px}.form{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--border);border-radius:8px}.row{display:flex;flex-direction:column;gap:6px}.row-label{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.tiles{display:flex;gap:8px}.tile{width:56px;height:56px;border:2px solid var(--border);border-radius:4px;background:var(--tile-bg);color:var(--fg);font-size:28px;font-weight:700;text-align:center;text-transform:uppercase;padding:0;outline:none;transition:border-color .1s,background .1s}.tile:focus{border-color:var(--fg)}.tiles-green .tile:not(:placeholder-shown):not(:invalid){background:var(--green);border-color:var(--green-dark);color:#fff}.tiles-yellow .tile:not(:placeholder-shown):not(:invalid){background:var(--yellow);border-color:var(--yellow-dark);color:#fff}.absent{display:flex;flex-direction:column;gap:6px}.absent-input{width:100%;padding:10px 12px;font-size:18px;border:1px solid var(--border);border-radius:4px;background:var(--tile-bg);color:var(--fg);letter-spacing:2px;text-transform:uppercase;outline:none}.absent-input:focus{border-color:var(--fg)}.chips{display:flex;flex-wrap:wrap;gap:6px;min-height:24px}.chips-empty{color:var(--muted);font-size:13px;font-style:italic}.chip{background:var(--chip-bg);color:var(--fg);padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.toggle-btn{flex:1;background:transparent;color:var(--fg);padding:10px 12px;font-size:14px;font-weight:500;border:none;cursor:pointer}.toggle-btn+.toggle-btn{border-left:1px solid var(--border)}.toggle-btn.is-on{background:var(--green);color:#fff}.toggle-btn .count{color:var(--muted);font-weight:400}.toggle-btn.is-on .count{color:#fffc}.actions{display:flex;gap:8px}.btn{flex:1;padding:12px 16px;font-size:16px;font-weight:600;border-radius:6px;border:1px solid transparent;cursor:pointer}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-ghost{background:transparent;color:var(--fg);border-color:var(--border)}.btn-ghost:hover{background:var(--chip-bg)}.results{margin-top:20px}.results-idle,.results-empty{padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:8px}.results-meta{font-size:14px;color:var(--muted);margin-bottom:8px}.word-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}.word{background:var(--chip-bg);border-radius:4px;padding:8px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;font-weight:600;text-align:center;letter-spacing:1px}.footer{margin-top:24px;text-align:center;color:var(--muted);font-size:12px}.gh-ribbon{position:fixed;top:0;right:0;width:160px;height:160px;overflow:hidden;pointer-events:none;z-index:100}.gh-ribbon-text{position:absolute;top:32px;right:-48px;width:200px;pointer-events:auto;display:block;padding:6px 0;text-align:center;transform:rotate(45deg);background:var(--green);color:#fff;font-size:13px;font-weight:600;letter-spacing:.3px;text-decoration:none;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(0,0,0,.15);box-shadow:0 2px 6px #0003}.gh-ribbon:hover .gh-ribbon-text{background:var(--green-dark)}@media (max-width: 480px){.gh-ribbon{width:120px;height:120px}.gh-ribbon-text{top:22px;right:-56px;font-size:11px;padding:4px 0}}
