:root{--bg:#0f172a;--panel:#111827;--text:#e5e7eb;--muted:#9ca3af;--accent:#22c55e;--locked:#f59e0b}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:linear-gradient(180deg,#0b1223,#0f172a);color:var(--text)}
.app{max-width:920px;margin:0 auto;padding:1rem}.subtitle{color:var(--muted)}
.panel{background:var(--panel);padding:1rem;border-radius:14px;margin:1rem 0;border:1px solid #1f2937}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:1rem;flex-wrap:wrap}
.tile_grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:.75rem;margin:.8rem 0}
.tile{background:#0b1223;border:1px solid #334155;border-radius:12px;padding:.55rem;display:flex;flex-direction:column;gap:.45rem}
.tile input{width:100%;font-size:1.5rem;text-align:center;text-transform:lowercase;padding:.4rem;border-radius:10px;border:1px solid #374151;background:#111827;color:var(--text)}
.tile button{border:1px solid #374151;background:#1f2937;color:var(--text);border-radius:10px;padding:.35rem;cursor:pointer}
.tile.locked{outline:2px solid var(--locked)}
button{padding:.5rem .8rem;border-radius:10px;border:none;background:var(--accent);color:#052e16;cursor:pointer;font-weight:600}
button.secondary{background:#374151;color:var(--text)}
.segmented{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}.segmented button{background:#1f2937;color:var(--text)}.segmented button.active{background:var(--accent);color:#052e16}
label{display:flex;flex-direction:column;gap:.3rem;margin:.4rem 0}input,select{padding:.45rem;border-radius:8px;border:1px solid #374151;background:#0b1223;color:var(--text)}
.group_title{font-size:1rem;margin:.8rem 0 .5rem}.result_item{padding:.45rem .6rem;border-bottom:1px solid #1f2937}.exact{color:#bbf7d0}.close{color:#fde68a}
