*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:#f5f5f0;color:#222;min-height:100vh}.app{max-width:900px;margin:0 auto;padding:2rem 1rem}h1{font-size:2rem;margin-bottom:1.5rem;letter-spacing:-.5px}.input-section{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1.25rem;margin-bottom:2rem}.word-entry{display:flex;gap:.5rem}.word-entry input{flex:1;padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;outline:none;transition:border-color .15s}.word-entry input:focus{border-color:#555}.word-entry button{padding:.5rem 1rem;background:#333;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer}.word-entry button:disabled{opacity:.4;cursor:default}.word-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.chip{display:inline-flex;align-items:center;gap:.25rem;background:#eee;border-radius:20px;padding:.2rem .6rem;font-size:.9rem;font-weight:600;letter-spacing:.5px}.chip-remove{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;color:#888;padding:0}.chip-remove:hover{color:#c00}.actions{display:flex;gap:.5rem;margin-top:1rem}.generate-btn{padding:.55rem 1.25rem;background:#1a6eff;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;font-weight:600}.generate-btn:hover:not(:disabled){background:#0050d0}.generate-btn:disabled{opacity:.45;cursor:default}.clear-btn{padding:.55rem 1rem;background:none;color:#666;border:1px solid #ccc;border-radius:6px;font-size:1rem;cursor:pointer}.clear-btn:hover{background:#f0f0f0}.error{margin-top:.75rem;color:#c00;font-size:.9rem}.result-section{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}.result-toolbar{display:flex;align-items:center;gap:1rem}.toggle{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-track{width:36px;height:20px;background:#ccc;border-radius:20px;position:relative;transition:background .2s;flex-shrink:0}.toggle input:checked+.toggle-track{background:#1a6eff}.toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.grid-and-clues{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap}.crossword-grid{flex-shrink:0;display:inline-block;border:2px solid #333;line-height:0}.grid-row{display:flex}.grid-cell{width:40px;height:40px;border:1px solid #aaa;position:relative;display:flex;align-items:center;justify-content:center;background:#fff;transition:background .1s}.grid-cell.black{background:#222;border-color:#222}.grid-cell.active{background:#cde9ff}.cell-number{position:absolute;top:1px;left:2px;font-size:9px;line-height:1;color:#444;font-weight:700}.cell-letter{font-size:1.1rem;font-weight:700;line-height:1}.clues{display:flex;gap:2rem;flex-wrap:wrap}.clue-group h3{font-size:1rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem;border-bottom:2px solid #333;padding-bottom:.2rem}.clue-group ul{list-style:none;display:flex;flex-direction:column;gap:.35rem}.clue-group li{font-size:.9rem;cursor:default;padding:2px 4px;border-radius:4px}.clue-group li:hover{background:#e8f3ff}.answer{color:#888;font-style:italic;margin-left:.3rem;font-size:.8rem}
