.crossword-form{display:grid;gap:20px;margin-top:16px}.clue-grid,.clue-row{display:grid;gap:12px}.clue-row{align-items:center;grid-template-columns:2fr 1fr auto}.clue-remove{background:var(--button-muted-bg);border:1px solid var(--button-muted-border);border-radius:10px;color:var(--button-muted-text);cursor:pointer;font-size:18px;justify-self:end;line-height:1;padding:10px 12px}.clue-remove:hover{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.crossword-grid{position:relative;--cell-size:min(36px,calc((100% - (var(--grid-cols) - 1)*var(--grid-gap))/var(--grid-cols)),calc((60vh - var(--grid-max-height-padding))/var(--grid-rows)));display:grid;gap:var(--grid-gap);grid-template-columns:repeat(var(--grid-cols),minmax(0,var(--cell-size)));margin-top:16px;max-width:100%;width:100%}.crossword-cell{align-items:center;aspect-ratio:1/1;background:#fff;border:1.5px solid #cbd5e1;border-radius:3px;color:#111827;display:flex;font-weight:600;justify-content:center;position:relative;transition:background-color .3s ease,border-color .3s ease,transform .1s ease}.crossword-cell.is-empty{background:var(--bg,#f8fafc);border:1px solid transparent;color:transparent}.cell-input.is-locked,.crossword-cell.word-correct{background:#129b44;border:1px solid rgba(34,197,94,.6);color:#fff}.cell-input.is-locked{border-radius:inherit;cursor:default;opacity:.9;-webkit-user-select:none;user-select:none}.crossword-cell.is-active-word{background:#eef2ff;border-color:#4f46e54d}.crossword-cell:has(.cell-input:focus){background:#fff!important;border-color:transparent!important;box-shadow:0 0 0 2px var(--primary,#4f46e5)!important;z-index:20}.clue-item.is-active-clue{background:#3b82f60f;border-left:4px solid #3b82f6;padding-left:12px;transition:all .2s ease}.clue-item.is-solved-clue{background:#22c55e0d;opacity:.5;text-decoration:line-through;transition:all .4s ease}.clue-item.is-solved-clue:before{color:#166534;content:"✓ ";font-weight:700}.crossword-cell.word-wrong{animation:shake .4s ease-in-out;background:#ef44442e;border:1px solid rgba(239,68,68,.55)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.crossword-cell.is-active-clue{box-shadow:0 0 0 2px #3b82f680}.cell-input{background:transparent;border:0;color:inherit;font-size:clamp(.6rem,calc(var(--cell-size)*.6),1.4rem);font-weight:600;height:100%;text-align:center;text-transform:uppercase;width:100%}.cell-input:focus{outline:none}.cell-input.is-solution{color:#111827}.clue-banner{background:#0f172a0a;border-radius:8px;font-size:.9rem;margin-top:12px;min-height:48px;padding:10px 12px}.clue-banner.is-empty{visibility:hidden}.toggle-row{margin:12px 0}.toggle{align-items:center;display:inline-flex;font-size:.9rem;gap:8px}.crossword-layout{align-items:start;display:grid;gap:24px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.crossword-pattern{display:flex;flex-direction:column;overflow-x:auto;padding:10px;width:100%;-webkit-overflow-scrolling:touch}@media (max-width:1024px){.crossword-layout{grid-template-columns:1fr}.crossword-cell:has(.cell-input:focus){background:#fff!important;box-shadow:0 4px 15px #0003!important;transform:scale(1.2);transition:transform .1s ease-in-out;z-index:50}}.crossword-clues{display:flex;flex-direction:column;gap:12px}@media (max-width:960px){.crossword-layout{grid-template-columns:1fr}}.cell-number{color:#64748b;font-size:.65rem;left:3px;line-height:1;pointer-events:none;position:absolute;top:2px}@media print{.btn-gradient,.btn-secondary,.search-area,.support-link-wrapper{display:none!important}.clue-answer{visibility:hidden}.crossword-cell.is-empty{background:#f3f4f6;color:transparent}.crossword-cell{background:#fff;border:1px solid #e5e7eb}.cell-input{color:transparent}body.print-solutions .cell-input{color:#111827}}.clue-columns{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.clue-question{display:block;font-weight:600}.clue-meta{color:#6b7280;font-size:13px}@media (max-width:640px){.clue-row{grid-template-columns:1fr}.clue-remove{justify-self:start}}.crossword-layout.is-full-width{grid-template-columns:1fr}.crossword-layout.is-full-width .crossword-clues{margin-top:24px}@media (prefers-color-scheme:dark){.crossword-cell{background:#1e293b;border-color:#475569;color:#f1f5f9}.crossword-cell.is-empty{background:var(--bg,#0c1222);border-color:transparent}.crossword-cell.is-active-word{background:#818cf81f;border-color:#818cf84d}.crossword-cell:has(.cell-input:focus){background:#1e293b!important;box-shadow:0 0 0 2px var(--primary,#818cf8)!important}.cell-number{color:#94a3b8}.cell-input.is-solution{color:#f1f5f9}.clue-banner{background:#ffffff0d}}
