.crossword-form{display:grid;gap:20px;margin-top:16px}.clue-grid{display:grid;gap:12px}.clue-row{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:center}.clue-remove{border:1px solid var(--button-muted-border);border-radius:10px;background:var(--button-muted-bg);color:var(--button-muted-text);font-size:18px;padding:10px 12px;cursor:pointer;line-height:1;justify-self:end}.clue-remove:hover{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.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;grid-template-columns:repeat(var(--grid-cols),minmax(0,var(--cell-size)));gap:var(--grid-gap);margin-top:16px;width:100%;max-width:100%}.crossword-cell{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;background:#f4f4f6;border-radius:2px;font-weight:600;color:#111827;position:relative;transition:background-color .3s ease,border-color .3s ease,transform .1s ease}.crossword-cell.is-empty{background:#0f172a0a;border:1px dashed rgba(0,0,0,.08);color:transparent}.crossword-cell.word-correct{background:#129b44;border:1px solid rgba(34,197,94,.6);color:#fff}.cell-input.is-locked{cursor:default;-webkit-user-select:none;user-select:none;opacity:.9;background:#129b44;border:1px solid rgba(34,197,94,.6);color:#fff;border-radius:inherit}.crossword-cell.is-active-word{background:#e3f2fd;box-shadow:inset 0 0 0 1px #3b82f64d}.crossword-cell:has(.cell-input:focus){background:#fff!important;box-shadow:0 0 0 2px #3b82f6!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{opacity:.5;text-decoration:line-through;background:#22c55e0d;transition:all .4s ease}.clue-item.is-solved-clue:before{content:"✓ ";color:#166534;font-weight:700}.crossword-cell.word-wrong{background:#ef44442e;border:1px solid rgba(239,68,68,.55);animation:shake .4s ease-in-out}@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{width:100%;height:100%;border:0;background:transparent;text-align:center;font-weight:600;font-size:clamp(.6rem,calc(var(--cell-size) * .6),1.4rem);color:inherit;text-transform:uppercase}.cell-input:focus{outline:none}.cell-input.is-solution{color:#111827}.clue-banner{margin-top:12px;padding:10px 12px;background:#0f172a0a;border-radius:8px;font-size:.9rem;min-height:48px}.clue-banner.is-empty{visibility:hidden}.toggle-row{margin:12px 0}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}.crossword-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:start}.crossword-pattern{display:flex;flex-direction:column;width:100%;overflow-x:auto;padding:10px;-webkit-overflow-scrolling:touch}@media (max-width: 1024px){.crossword-layout{grid-template-columns:1fr}.crossword-cell:has(.cell-input:focus){transform:scale(1.2);z-index:50;transition:transform .1s ease-in-out;box-shadow:0 4px 15px #0003!important;background:#fff!important}}.crossword-clues{display:flex;flex-direction:column;gap:12px}@media (max-width: 960px){.crossword-layout{grid-template-columns:1fr}}.cell-number{position:absolute;top:2px;left:3px;font-size:.65rem;color:#64748b;line-height:1;pointer-events:none}@media print{.btn-secondary,.btn-gradient,.support-link-wrapper,.search-area{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{font-size:13px;color:#6b7280}@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}
