.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);border-radius:12px;padding:32px 24px;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:20px;box-shadow:var(--shadow);font-family:var(--sans)}.towers-board{display:grid;grid-template-columns:minmax(28px,.56fr) repeat(5,minmax(36px,1fr)) minmax(28px,.56fr);grid-template-rows:minmax(28px,.56fr) repeat(5,minmax(36px,1fr)) minmax(28px,.56fr);gap:var(--tw-board-gap);padding:2px;border-radius:6px;width:var(--tw-board-size);max-width:100%;aspect-ratio:1;box-sizing:border-box;touch-action:manipulation}.towers-clue,.towers-corner{display:flex;align-items:center;justify-content:center;user-select:none}.towers-cell{position:relative;background:var(--tw-cell-bg);cursor:pointer;user-select:none;transition:background .1s,box-shadow .1s;outline:none;min-width:0;min-height:0;-webkit-tap-highlight-color:transparent}.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{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(1.55rem,calc(var(--tw-board-size) / 12),2.25rem);font-weight:300;transition:color .2s}.towers-candidates{position:absolute;inset:4px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);font-size:clamp(.58rem,calc(var(--tw-board-size) / 42),.75rem);color:var(--tw-candidate);font-weight:400}.towers-cand{display:flex;align-items:center;justify-content:center;visibility:hidden}.towers-cand.on{visibility:visible}.towers-cell.has-answer .towers-candidates{display:none}.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{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.towers-clue-input{position:absolute;inset:0;width:100%;height:100%;background:transparent;border:1px dashed transparent;border-radius:4px;color:var(--tw-text);font:inherit;font-size:clamp(.9rem,calc(var(--tw-board-size) / 25),1.15rem);text-align:center;padding:0;outline:none;display:none}.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:transparent}.towers-board.won .towers-cell .towers-answer{color:var(--tw-win)}.towers-entry-panel{width:min(456px,100%);display:grid;gap:10px;& button{min-height:42px;touch-action:manipulation}}.towers-entry-modes,.towers-entry-values{display:grid;gap:8px}.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;display:flex;align-items:center;justify-content:center}}.towers-icon{flex:0 0 25px;display:block;width:25px;height:25px;min-width:25px;inline-size:25px;block-size:25px;stroke-width:2.55}.towers-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}.towers-toggles{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.towers-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--tw-text-dim);font-size:.9rem;cursor:pointer;user-select:none}.towers-toggle input{accent-color:var(--tw-accent);width:14px;height:14px;cursor:pointer;margin:0}.towers-app button,.towers-app select{background:var(--tw-btn);color:var(--tw-text);border:none;padding:10px 18px;border-radius:4px;font-size:.95rem;cursor:pointer;font-family:inherit;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;-webkit-appearance:none;padding-right:28px;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) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat}.towers-app input#towers-seed-input{background:var(--tw-btn);color:var(--tw-text);border:none;padding:10px 12px;border-radius:4px;font-size:.95rem;font-family:var(--mono);width:120px;outline:none}.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);font-size:.95rem;min-height:1.2em;letter-spacing:.05em}.towers-status.won{color:var(--tw-win)}.towers-hint{color:var(--tw-text-dim);font-size:.85rem;text-align:center;max-width:460px;line-height:1.5;margin:0}.towers-app kbd{background:var(--tw-btn);border-radius:3px;padding:1px 6px;font-size:.78rem;color:var(--tw-text);font-family:inherit}@media(pointer:fine)and (min-width:700px){.towers-entry-panel{width:min(360px,100%)}.towers-entry-panel button{min-height:36px;padding-block:8px}}@media(max-width:520px){.towers-app{--tw-board-size: min(456px, calc(100vw - 52px) );--tw-board-gap: 1px;border-radius:8px;padding:20px 10px;gap:16px}.towers-entry-values{grid-template-columns:repeat(5,minmax(0,1fr));#towers-erase{grid-column:1 / -1}}.towers-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;& button,select,input#towers-seed-input{width:100%}}.towers-toggles{justify-content:flex-start;width:100%;gap:10px}.towers-hint{max-width:100%;text-align:left}}
