/* Logic atelier: ink lattice, stitched picture, numbered garden. */
.ag-logic{max-width:38rem;margin-inline:auto;touch-action:manipulation;color:var(--ag-ink,#243d35)}
.ag-logic-help{font-size:.9rem;line-height:1.6;margin-block:0 1rem;color:var(--ag-muted,#59665d)}
.ag-sudoku,.ag-queens{display:grid;gap:1px;background:var(--ag-border,#85968b);border:2px solid var(--ag-ink,#314b3e);border-radius:9px;overflow:hidden;margin-inline:auto;max-width:30rem}
.ag-n4{grid-template-columns:repeat(4,minmax(24px,1fr))}.ag-n5{grid-template-columns:repeat(5,minmax(24px,1fr))}.ag-n6{grid-template-columns:repeat(6,minmax(24px,1fr))}.ag-n8{grid-template-columns:repeat(8,minmax(24px,1fr))}.ag-n9{grid-template-columns:repeat(9,minmax(24px,1fr))}
.ag-logic .ag-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:24px;min-height:28px;width:100%;padding:1px;border:0;border-radius:0;background:var(--ag-surface,#fbf8f0);color:var(--ag-ink,#263e35);font:inherit;font-size:clamp(1rem,4vw,1.6rem);cursor:pointer;box-sizing:border-box}
.ag-logic .ag-cell:disabled{opacity:1;cursor:default}.ag-logic .ag-given{background:#e4e9df;font-weight:800;color:#293f34}.ag-logic .ag-selected{box-shadow:inset 0 0 0 3px var(--ag-accent,#277460);z-index:1}.ag-logic .ag-cell:focus-visible{outline:3px solid #c56d22;outline-offset:-4px;z-index:2}.ag-logic .ag-conflict{color:var(--ag-danger,#a51d2a);background:#ffe1df;box-shadow:inset 0 0 0 2px var(--ag-danger,#af2636)}.ag-logic .ag-box-left{border-left:2px solid var(--ag-ink,#314b3e)}.ag-logic .ag-box-top{border-top:2px solid var(--ag-ink,#314b3e)}.ag-pencil{font-size:.58rem;line-height:1.4;word-spacing:2px;padding:2px;color:var(--ag-muted,#506d60)}
.ag-keypad,.ag-logic-tools{display:flex;flex-wrap:wrap;gap:6px;margin-block:12px;justify-content:center}.ag-keypad button,.ag-logic-tools button{font:inherit;min-height:44px;min-width:44px;padding:8px 12px;color:inherit;background:var(--ag-surface,#fbf8f0);border:1px solid var(--ag-border,#7d9386);border-radius:9px;cursor:pointer}.ag-keypad button:disabled,.ag-logic-tools button:disabled{opacity:.45;cursor:default}.ag-logic-tools button[aria-pressed=true]{background:#d4e7d9;color:#173d2a;border-color:var(--ag-good,#26734d);box-shadow:inset 0 -3px var(--ag-good,#26734d)}.ag-logic-status{min-height:1.5em;font-size:.9rem;line-height:1.5}
.ag-nonogram{display:grid;gap:1px;max-width:34rem;margin-inline:auto;align-items:stretch;background:#a28a71;border:2px solid #79644f;border-radius:6px;overflow:hidden}.ag-nonogram.ag-n5{grid-template-columns:52px repeat(5,minmax(24px,1fr))}.ag-nonogram.ag-n10{grid-template-columns:52px repeat(10,minmax(24px,1fr))}.ag-clue-corner,.ag-row-clue,.ag-col-clue{background:#efe5d7;color:#503b29;font-size:.82rem;font-weight:700}.ag-row-clue{display:flex;align-items:center;justify-content:flex-end;padding:3px;white-space:pre;word-spacing:3px}.ag-col-clue{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;padding:5px 1px;line-height:1.15}.ag-logic .ag-filled{background:#376b68;box-shadow:inset 0 0 0 2px #285250}.ag-logic .ag-filled.ag-selected{box-shadow:inset 0 0 0 3px #efb56b}.ag-logic .ag-crossed{color:#887259;font-size:1.4rem}.ag-logic .ag-n10 .ag-cell{min-height:24px}
.ag-logic .ag-region-0{background:#f7d9a1}.ag-logic .ag-region-1{background:#c1e3d3}.ag-logic .ag-region-2{background:#d7cef1}.ag-logic .ag-region-3{background:#b9dfef}.ag-logic .ag-region-4{background:#f3c7d2}.ag-logic .ag-region-5{background:#dfe8a9}.ag-logic .ag-region-6{background:#c9d2df}.ag-logic .ag-region-7{background:#eec8ab}.ag-logic .ag-region-left{border-left:2px solid #40564b}.ag-logic .ag-region-top{border-top:2px solid #40564b}.ag-region-label{position:absolute;inset:2px auto auto 4px;font-size:.63rem;line-height:1;color:#31463b}.ag-queen-mark{font-family:Georgia,serif;font-weight:800;font-size:clamp(1rem,5vw,2rem);line-height:1;border-bottom:2px solid currentColor}.ag-logic .ag-queen.ag-conflict{background:#ffd8d8;color:var(--ag-danger,#971b2c)}
@media(max-width:420px){.ag-logic-help{font-size:.82rem}.ag-keypad{gap:4px}.ag-keypad button{padding:6px;min-width:36px;flex:1}.ag-nonogram.ag-n10{grid-template-columns:46px repeat(10,minmax(24px,1fr))}.ag-row-clue,.ag-col-clue{font-size:.7rem;word-spacing:1px}.ag-region-label{font-size:.56rem}.ag-pencil{font-size:.52rem;word-spacing:0}}
@media(prefers-reduced-motion:no-preference){.ag-keypad button,.ag-logic-tools button{transition:background-color .12s}}
