.towers-app{--tw-bg:#1a1d24;--tw-cell-bg:#2d323d;--tw-cell-bg-hover:#353b48;--tw-cell-active:#4a6fa5;--tw-cell-active-bg:#2d3e5c;--tw-given-bg:#1f2229;--tw-text:#e6e8eb;--tw-text-dim:#8a93a3;--tw-candidate:#7a8499;--tw-accent:#6fb3ff;--tw-win:#6fff9e;--tw-btn:#3a4150;--tw-btn-hover:#4a5260;--tw-board-size:min(456px, calc(100vw - 56px));--tw-board-gap:2px;background:var(--tw-bg);color:var(--tw-text);box-sizing:border-box;width:100%;box-shadow:var(--shadow);font-family:var(--sans);border-radius:12px;flex-direction:column;align-items:center;gap:20px;padding:32px 24px;display:flex}.towers-board{gap:var(--tw-board-gap);width:var(--tw-board-size);aspect-ratio:1;box-sizing:border-box;touch-action:manipulation;border-radius:6px;grid-template-rows:minmax(28px,.56fr) repeat(5,minmax(36px,1fr)) minmax(28px,.56fr);grid-template-columns:minmax(28px,.56fr) repeat(5,minmax(36px,1fr)) minmax(28px,.56fr);max-width:100%;padding:2px;display:grid}.towers-clue,.towers-corner{user-select:none;justify-content:center;align-items:center;display:flex}.towers-cell{background:var(--tw-cell-bg);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;outline:none;min-width:0;min-height:0;transition:background .1s,box-shadow .1s;position:relative}.towers-cell:hover{background:var(--tw-cell-bg-hover)}.towers-cell.active{background:var(--tw-cell-active-bg);box-shadow:inset 0 0 0 2px var(--tw-cell-active)}.towers-answer{font-size:clamp(1.55rem, calc(var(--tw-board-size) / 12), 2.25rem);justify-content:center;align-items:center;font-weight:300;transition:color .2s;display:flex;position:absolute;inset:0}.towers-candidates{font-size:clamp(.58rem, calc(var(--tw-board-size) / 42), .75rem);color:var(--tw-candidate);grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);font-weight:400;display:grid;position:absolute;inset:4px}.towers-cand{visibility:hidden;justify-content:center;align-items:center;display:flex}.towers-cand.on{visibility:visible}.towers-cell.has-answer .towers-candidates,.towers-cell:not(.has-answer) .towers-answer{display:none}.towers-cell.given{background:var(--tw-given-bg);cursor:default}.towers-cell.given .towers-answer{color:var(--tw-accent)}.towers-cell.given:hover{background:var(--tw-given-bg)}.towers-clue{color:var(--tw-text-dim);font-size:clamp(.9rem, calc(var(--tw-board-size) / 25), 1.15rem);font-weight:400;transition:opacity .2s;position:relative}.towers-clue.satisfied{opacity:.25}.towers-clue-display{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.towers-clue-input{width:100%;height:100%;color:var(--tw-text);font:inherit;font-size:clamp(.9rem, calc(var(--tw-board-size) / 25), 1.15rem);text-align:center;background:0 0;border:1px dashed #0000;border-radius:4px;outline:none;padding:0;display:none;position:absolute;inset:0}.towers-board.editing .towers-clue-display{display:none}.towers-board.editing .towers-clue-input{display:block}.towers-board.editing .towers-clue-input:hover{border-color:var(--tw-btn-hover)}.towers-board.editing .towers-clue-input:focus{border-color:var(--tw-accent);background:var(--tw-cell-active-bg)}.towers-board.editing .towers-cell:not(.has-answer){box-shadow:inset 0 0 0 1px var(--tw-btn)}.towers-board.editing .towers-cell.active{box-shadow:inset 0 0 0 2px var(--tw-cell-active)}.towers-corner{background:0 0}.towers-board.won .towers-cell .towers-answer{color:var(--tw-win)}.towers-entry-panel{gap:10px;width:min(456px,100%);display:grid;& button{touch-action:manipulation;min-height:42px}}.towers-entry-modes,.towers-entry-values{gap:8px;display:grid}.towers-entry-modes{grid-template-columns:repeat(2,minmax(0,1fr));& button[aria-pressed=true]{background:var(--tw-cell-active);color:#fff}}.towers-entry-values{grid-template-columns:repeat(5,minmax(0,1fr)) minmax(44px,.72fr);& button{padding-inline:0}& #towers-erase{grid-column:span 1;justify-content:center;align-items:center;display:flex}}.towers-icon{width:25px;min-width:25px;height:25px;stroke-width:2.55px;flex:0 0 25px;block-size:25px;inline-size:25px;display:block}.towers-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.towers-toggles{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.towers-toggle{color:var(--tw-text-dim);cursor:pointer;user-select:none;align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.towers-toggle input{accent-color:var(--tw-accent);cursor:pointer;width:14px;height:14px;margin:0}.towers-app button,.towers-app select{background:var(--tw-btn);color:var(--tw-text);cursor:pointer;border:none;border-radius:4px;padding:10px 18px;font-family:inherit;font-size:.95rem;transition:background .1s}.towers-app button{min-width:44px}.towers-app button:hover:not(:disabled),.towers-app select:hover{background:var(--tw-btn-hover)}.towers-app button:disabled{opacity:.4;cursor:not-allowed}.towers-app select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--tw-text-dim) 50%), linear-gradient(135deg, var(--tw-text-dim) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.towers-app input#towers-seed-input{background:var(--tw-btn);color:var(--tw-text);font-size:.95rem;font-family:var(--mono);border:none;border-radius:4px;outline:none;width:120px;padding:10px 12px}.towers-app input#towers-seed-input:focus{background:var(--tw-btn-hover)}.towers-app input#towers-seed-input::placeholder{color:var(--tw-text-dim)}.towers-status{color:var(--tw-text-dim);letter-spacing:.05em;min-height:1.2em;font-size:.95rem}.towers-status.won{color:var(--tw-win)}.towers-hint{color:var(--tw-text-dim);text-align:center;max-width:460px;margin:0;font-size:.85rem;line-height:1.5}.towers-app kbd{background:var(--tw-btn);color:var(--tw-text);border-radius:3px;padding:1px 6px;font-family:inherit;font-size:.78rem}@media (pointer:fine) and (width>=700px){.towers-entry-panel{width:min(360px,100%)}.towers-entry-panel button{min-height:36px;padding-block:8px}}@media (width<=520px){.towers-app{--tw-board-size:min(456px, calc(100vw - 52px));--tw-board-gap:1px;border-radius:8px;gap:16px;padding:20px 10px}.towers-entry-values{grid-template-columns:repeat(5,minmax(0,1fr));& #towers-erase{grid-column:1/-1}}.towers-controls{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid;& button,& select,& input#towers-seed-input{width:100%}}.towers-toggles{justify-content:flex-start;gap:10px;width:100%}.towers-hint{text-align:left;max-width:100%}}
