:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}html,body{background:var(--bg-color,#fff);color:var(--text-primary,#2c3e50);margin:0;padding:0}body{place-items:center;min-width:320px;min-height:100vh;display:flex}*{box-sizing:border-box}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}#root{width:100%}:root{--bg-color:#fff;--surface-bg:#f8f9fa;--text-primary:#2c3e50;--text-secondary:#495057;--text-tertiary:#6c757d;--primary-color:#007bff;--primary-hover:#0056b3;--border-color:#dee2e6;--border-hover:#007bff;--error-bg:#f8d7da;--error-text:#721c24;--error-border:#f5c6cb;--success-bg:#28a745;--success-border:#1e7e34;--complete-bg:#d4edda;--complete-border:#c3e6cb;--complete-text:#28a745;--warning-bg:#fff3cd;--warning-border:#ffeaa7;--warning-text:#856404;--grid-cell-bg:#fff;--grid-cell-hover:#e9ecef;--grid-selected:#b3d9ff;--grid-selected-border:#06c;--grid-found:#1e7e34;--grid-found-text:#fff;--grid-found-border:#155724;--grid-border:#dee2e6;--button-primary:#007bff;--button-primary-hover:#0056b3;--button-disabled:#6c757d;--shadow-color:#0000001a;--shadow-primary:#007bff33;--definition-bg:#f8f9fa;--definition-border:#007bff}@media (prefers-color-scheme:dark){:root{--bg-color:#1a1a1a;--surface-bg:#2d2d2d;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-tertiary:#999;--primary-color:#4d94ff;--primary-hover:#6ba3ff;--border-color:#444;--border-hover:#4d94ff;--error-bg:#dc354533;--error-text:#ff6b6b;--error-border:#dc35454d;--success-bg:#4daa5f;--success-border:#3d8a4d;--complete-bg:#4daa5f33;--complete-border:#4daa5f4d;--complete-text:#4daa5f;--warning-bg:#ffc10733;--warning-border:#ffc1074d;--warning-text:#ffc107;--grid-cell-bg:#3a3a3a;--grid-cell-hover:#4a4a4a;--grid-selected:#6ba3ff;--grid-selected-border:#4d94ff;--grid-found:#5cb85c;--grid-found-text:#000;--grid-found-border:#4daa5f;--grid-border:#555;--button-primary:#4d94ff;--button-primary-hover:#6ba3ff;--button-disabled:#555;--shadow-color:#0000004d;--shadow-primary:#4d94ff4d;--definition-bg:#3a3a3a;--definition-border:#4d94ff}}.app{background:var(--bg-color);max-width:1400px;min-height:100vh;color:var(--text-primary);margin:0 auto;padding:2rem}header{text-align:center;margin-bottom:2rem}header h1{color:var(--text-primary);margin:0;font-size:2.5rem}main{flex-direction:column;gap:2rem;display:flex}.controls{background:var(--surface-bg);box-shadow:0 2px 4px var(--shadow-color);border-radius:8px;padding:2rem}.controls h2{color:var(--text-primary);margin-top:0;margin-bottom:1.5rem}.controls-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.controls label{color:var(--text-secondary);flex-direction:column;gap:.5rem;font-weight:500;display:flex}.controls select{border:1px solid var(--border-color);background:var(--grid-cell-bg);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:.5rem;font-size:1rem}.controls select:focus{border-color:var(--border-hover);outline:none}.controls button{background:var(--button-primary);color:#fff;cursor:pointer;width:100%;box-shadow:0 2px 8px var(--shadow-primary);border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.controls button:hover:not(:disabled){background:var(--button-primary-hover);box-shadow:0 4px 12px var(--shadow-primary);transform:translateY(-2px)}.controls button:disabled{background:var(--button-disabled);cursor:not-allowed;transform:none}.controls button.loading{background:var(--button-disabled)}.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);border-radius:4px;padding:1rem}.wordsearch-result{flex-direction:column;gap:2rem;display:flex}.grid-container{flex-direction:column;align-items:center;gap:1rem;padding:0 10px;display:flex}@media (width<=768px){.grid-container{padding:0 15px}}.zoom-controls{background:var(--surface-bg);border-radius:4px;align-items:center;gap:1rem;padding:.5rem;display:flex}.zoom-label{color:var(--text-secondary);font-weight:500}.zoom-buttons{align-items:center;gap:.5rem;display:flex}.zoom-buttons button{background:var(--button-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.25rem .75rem;font-size:1rem;transition:background .2s}.zoom-buttons button:hover:not(:disabled){background:var(--button-primary-hover)}.zoom-buttons button:disabled{background:var(--button-disabled);cursor:not-allowed}.zoom-buttons span{text-align:center;min-width:50px;color:var(--text-primary);font-weight:500}.wordsearch-grid{border-collapse:collapse;-webkit-user-select:none;user-select:none;touch-action:none;margin:0 auto}.wordsearch-grid td{border:1px solid var(--grid-border);text-align:center;cursor:pointer;background-color:var(--grid-cell-bg);color:var(--text-primary);-webkit-user-select:none;user-select:none;touch-action:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:700;transition:background-color .1s}.wordsearch-grid td:hover{background-color:var(--grid-cell-hover)}.wordsearch-grid td.selected{background-color:var(--grid-selected);border:3px solid var(--grid-selected-border);box-shadow:inset 0 0 0 1px var(--grid-selected-border)}.wordsearch-grid td.found{background-color:var(--grid-found);color:var(--grid-found-text);border:3px solid var(--grid-found-border);font-weight:900}.wordsearch-grid.selecting{cursor:crosshair}.complete-message{text-align:center;color:var(--complete-text);background:var(--complete-bg);border:1px solid var(--complete-border);border-radius:4px;padding:1rem;font-size:1.5rem;font-weight:700}.words-list{background:var(--surface-bg);border-radius:8px;padding:1.5rem}.words-list-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.words-list h3{color:var(--text-primary);margin:0}.show-all-definitions-btn{background:var(--button-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:background .2s}.show-all-definitions-btn:hover{background:var(--button-primary-hover)}.words-list ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;padding:0;list-style:none;display:grid}.words-list li{background:var(--grid-cell-bg);border:1px solid var(--border-color);border-radius:4px;padding:.5rem}.words-list li.found{background:var(--grid-cell-hover)}.words-list li.found .word-item{color:var(--text-tertiary);text-decoration:line-through}.word-item{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.definition-toggle{cursor:pointer;color:var(--primary-color);background:0 0;border:none;justify-content:center;align-items:center;width:20px;height:20px;padding:.25rem;font-size:.8rem;display:flex}.definition-toggle:hover{color:var(--primary-hover)}.definition{background:var(--definition-bg);border-left:3px solid var(--definition-border);color:var(--text-secondary);margin-top:.5rem;padding:.5rem;font-size:.9rem;line-height:1.4}footer{border-top:1px solid var(--border-color);justify-content:center;gap:1rem;margin-top:2rem;padding:2rem 0;display:flex}footer a{color:var(--primary-color);font-weight:500;text-decoration:none}footer a:hover{color:var(--primary-hover);text-decoration:underline}@media (width<=768px){.app{padding:1rem}header h1{font-size:2rem}.words-list ul{grid-template-columns:1fr}.words-list-header{flex-direction:column;align-items:flex-start}.show-all-definitions-btn{width:100%}footer{flex-direction:column;align-items:center}}
