/* Bright campaign boards. Load after the four original game style groups. */
.cb-board{--ag-ink:#314b47;--ag-muted:#66776e;--ag-surface:#fffaf0;--ag-border:#c8d4c5;--ag-accent:#488e80;max-width:640px;width:100%;margin-inline:auto;color:#314b47;font-family:inherit;box-sizing:border-box;isolation:isolate;line-height:1.5;touch-action:manipulation}
.cb-board *{box-sizing:border-box}.cb-board button{font:inherit;touch-action:manipulation}.cb-board button:not(.ag-cell):not(.ag-mine-cell):not(.ag-block-cell):not(.ag-path-cell):not(.cb-cargo):not(.ag-sol-card):not(.ag-sol-place){min-width:44px;min-height:44px;border-radius:13px;border:1px solid #bfcdbb;background:linear-gradient(160deg,#fffef6,#edf2e3);box-shadow:0 3px 0 #c1cdb8,inset 0 1px #fff;color:#36564c;padding:9px 13px;font-weight:700;cursor:pointer}.cb-board button:disabled{cursor:default}.cb-board button:focus-visible{outline:3px solid #126e86;outline-offset:3px;z-index:4}.cb-board button[aria-pressed=true]:not(.cb-cargo){outline:2px solid #548b7b;outline-offset:-3px}.cb-board .ag-help,.cb-board .ag-logic-help,.cb-board .ag-sol-help,.cb-dock-help{font-size:13px;line-height:1.65;color:#65776d;margin:0 0 18px}.cb-board .ag-game-stat{display:none}.cb-board .ag-keypad{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.cb-board .ag-keypad button{flex:0 1 48px;min-width:44px;min-height:46px}.cb-board .ag-logic-tools,.cb-board .ag-puzzle-controls{gap:10px;flex-wrap:wrap}.cb-board .ag-puzzle-status,.cb-board .ag-logic-status{font-size:13px;color:#61776a;text-align:center;margin:17px 0}.campaign-world-art{width:100%;height:auto;display:block}
/* Ceramic inset lattice, raised glazed number keys. */
.cb-sudoku .ag-sudoku{gap:3px;padding:9px;max-width:482px;border:1px solid #98b3a2;border-radius:20px;background:linear-gradient(140deg,#bdd2c0,#86aa9c);box-shadow:0 8px 0 #799c8a,0 14px 23px #4d6c481c,inset 0 2px #ecf6e6}
.cb-sudoku .ag-cell{background:linear-gradient(145deg,#fffef7,#e9f0df);border-radius:6px;box-shadow:inset 0 1px 1px #fff,0 2px 1px #6d8b7444;color:#4a8273;font-family:Georgia,serif;font-weight:600;min-height:28px}.cb-sudoku .ag-given{background:linear-gradient(145deg,#e2edda,#cfdfc7);color:#3d6657}.cb-sudoku .ag-box-left{border-left:2px solid #8da995}.cb-sudoku .ag-box-top{border-top:2px solid #8da995}.cb-sudoku .ag-selected{background:#fff7d8;box-shadow:inset 0 0 0 2px #ba9344,0 2px #a8b89b}.cb-sudoku .ag-conflict{background:#ffdcd3;color:#8f3734}
/* Exploration field, grass lids and excavated soil. Flags are actual SVG. */
.cb-minesweeper .ag-mine-board{gap:4px;padding:11px;border-radius:23px;border:3px solid #ae9e76;background:linear-gradient(140deg,#bdc8a0,#8ba27b);box-shadow:0 8px #8e805f,0 13px 24px #7b7e5420}.cb-minesweeper .ag-mine-cell{border:1px solid #86a87c;border-radius:9px;background:radial-gradient(ellipse at 25% 15%,#deebba 0,transparent 60%),linear-gradient(#b1d2a1,#91b383);box-shadow:inset 0 2px #e1eac4,0 3px #749267;position:relative;font-size:18px}.cb-minesweeper .ag-open{background:#f3e7c9;border:1px solid #d0bf99;box-shadow:inset 0 2px 4px #ac957b33;opacity:1}.cb-minesweeper .ag-mine{background:#f6be9e}.cb-minesweeper .ag-mine-cell svg{width:70%;height:80%;display:block;margin:auto;pointer-events:none}
/* Garden mosaics: each answer is a separately glazed tessera. */
.cb-nonogram .ag-nonogram{border:7px solid #d2ae8e;box-shadow:0 7px #af8b6b,0 13px 25px #9f76551c;border-radius:16px;padding:4px;background:#d9c9b2;gap:3px}.cb-nonogram .ag-cell{border-radius:4px;background:linear-gradient(135deg,#fffcf0,#efe4ce);box-shadow:inset 0 1px #fff,0 1px #c4b392}.cb-nonogram .ag-filled{background:radial-gradient(ellipse at 30% 20%,#c1d5a6,transparent 70%),linear-gradient(135deg,#74a98e,#4b8272);box-shadow:inset 0 2px #dce6c455,inset 0 -3px #2f6f5c55}.cb-nonogram .ag-cell.ag-filled:nth-child(3n){background:linear-gradient(140deg,#e3bb8b,#c78e6e)}.cb-nonogram .ag-cell.ag-filled:nth-child(5n){background:linear-gradient(140deg,#c8c4de,#929ac3)}.cb-nonogram .ag-row-clue,.cb-nonogram .ag-col-clue,.cb-nonogram .ag-clue-corner{background:#fbf0d9;color:#7e654e;border-radius:5px}.cb-nonogram .ag-selected{outline:2px solid #517b69;outline-offset:-2px}
/* Crown garden with numbered regions preserved for color-independent play. */
.cb-queens .ag-queens{padding:8px;gap:3px;border:2px solid #b2a4bd;border-radius:20px;background:#c4b6cb;box-shadow:0 7px #a292ad,0 14px 25px #77617a20}.cb-queens .ag-cell{border-radius:7px;box-shadow:inset 0 2px #fff7,0 2px #746c7533}.cb-queens .ag-region-label{font-weight:700;color:#526252;inset:4px auto auto 5px}.cb-queens .ag-queen-mark{display:grid;place-items:center;width:78%;height:80%;border:0;pointer-events:none}.cb-queens .ag-queen-mark svg{width:100%;height:100%;filter:drop-shadow(0 3px 1px #7c584a44)}.cb-queens .ag-region-left{border-left:2px solid #94849d}.cb-queens .ag-region-top{border-top:2px solid #94849d}.cb-queens .ag-conflict{outline:3px dashed #b55354;outline-offset:-3px}
/* Glass equation bench with glyph keys. */
.cb-equation .ag-equation-grid{gap:7px;background:linear-gradient(135deg,#e9e2f1e6,#f9f1fa);border:2px solid #c7b9d4;padding:15px;border-radius:23px;box-shadow:0 6px #c4b4d0,inset 0 2px #fff}.cb-equation .ag-equation-cell{min-height:43px;background:linear-gradient(150deg,#fffdfb,#e8deef);border:1px solid #c8b7d7;border-radius:9px;box-shadow:inset 0 2px #fff,0 2px #bdb1ca44;color:#776084;font-family:Georgia,serif;font-size:23px}.cb-equation .ag-feedback-correct{background:linear-gradient(#89b9a4,#649e88);color:#fff;border-bottom:4px solid #437c68}.cb-equation .ag-feedback-present{background:linear-gradient(#f0d392,#dbb35f);color:#624f2f;border-bottom:4px double #927239}.cb-equation .ag-feedback-absent{background:#a8a6b5;color:#fff;border-bottom:4px dotted #71707f}.cb-equation .ag-keypad button{background:linear-gradient(#fdf9ff,#e7ddef)!important;box-shadow:0 3px #b9a9c9!important;color:#78608b!important}
/* Physical wood and frosted-glass workshop pieces. */
.cb-blocks .ag-block-board{padding:9px;gap:4px;border:3px solid #d5b17c;border-radius:19px;background:repeating-linear-gradient(3deg,#edd2a4 0 9px,#e9c99a 10px 12px);box-shadow:0 7px #ad8658}.cb-blocks .ag-block-cell{border-radius:5px;background:#d0b58d;border:1px solid #c5a476;box-shadow:inset 0 2px 3px #82664133}.cb-blocks .ag-block-cell[aria-disabled=true]:not(.ag-filled){background:#d8bf9a}.cb-blocks .ag-block-cell.ag-filled,.cb-blocks .ag-piece-filled{background:linear-gradient(135deg,#d5eee5,#80b6b0 54%,#609a9a);border:1px solid #5f9591;box-shadow:inset 0 2px #f1ffff,0 3px #4c8583}.cb-blocks .ag-block-cell.ag-filled:nth-child(3n){background:linear-gradient(125deg,#f6d7aa,#dbac70);border-color:#ad854f;box-shadow:inset 0 2px #fff0c4,0 3px #aa8150}.cb-blocks .ag-piece{background:#fff5de!important;border-color:#d8bb8c!important}.cb-blocks .ag-piece-preview{gap:3px}
/* Glowing stepping stones and continuous trail segments. */
.cb-number-path .ag-path-grid{background:linear-gradient(145deg,#e0f0f3,#c2dce3);border:2px solid #a5c9d1;border-radius:24px;gap:5px;padding:12px;box-shadow:0 7px #97b6c2}.cb-number-path .ag-path-cell{border-radius:10px;background:linear-gradient(#f7fbf6,#dbe9e5);border:1px solid #afcbcc;box-shadow:inset 0 2px #fff,0 2px #a5c0c3}.cb-number-path .ag-path-used{background-color:#d4eee7!important;box-shadow:inset 0 0 14px #b2ded3}.cb-number-path .ag-path-cell span:not(:empty){background:#fff0b7;color:#59675b;box-shadow:0 2px 4px #a2aa8533;border:2px solid #fff9db}.cb-number-path .ag-path-head{outline:3px solid #438d94;outline-offset:-4px}.cb-number-path .ag-path-cell:before,.cb-number-path .ag-path-cell:after{background:#72b8b8;box-shadow:0 0 6px #7ebcb3}
/* Faceted crystal numbers on a soft stone tray. */
.cb-2048 .ag-2048-board{background:linear-gradient(135deg,#dfd6c4,#bcb4aa);border:3px solid #c7b692;border-radius:25px;gap:10px;padding:13px;box-shadow:0 8px #a99b83}.cb-2048 .ag-tile{position:relative;border-radius:15px;border:1px solid #c0b39a;font-family:Georgia,serif;box-shadow:inset 0 2px #fff9,inset 0 -5px #735f4225,0 3px #8b806744;overflow:hidden;text-shadow:0 1px #fff6}.cb-2048 .ag-tile:not(.ag-tile-0):before{content:'';position:absolute;inset:4px;clip-path:polygon(0 0,45% 0,0 70%,0 0,100% 0,100% 20%,20% 100%,0 100%);background:linear-gradient(135deg,#fff7,transparent);pointer-events:none}.cb-2048 .ag-tile-0{background:#bcb4a644;box-shadow:inset 0 2px 4px #8c806333;border-color:#b8ad9a}.cb-2048 .ag-tile-2{background:#edf5e0}.cb-2048 .ag-tile-4{background:#c9e5e0}.cb-2048 .ag-tile-8{background:#bad9e8}.cb-2048 .ag-tile-16{background:#d4c7e8}.cb-2048 .ag-tile-32{background:#e5bad2}.cb-2048 .ag-tile-64{background:#f0b6a4}.cb-2048 .ag-tile-128{background:#f4d48e}.cb-2048 .ag-tile-256{background:#e8c47b}.cb-2048 .ag-tile-2048{background:#708e88;color:white}
/* Tailored salon deck: woven felt, original printed backs. */
.cb-solitaire{max-width:900px}.cb-solitaire .ag-solitaire{background:radial-gradient(ellipse at 50% 20%,#7fb5a1,#4c8e7c);padding:18px;border:7px solid #dbbd8d;border-radius:27px;box-shadow:0 7px #ac8f69,inset 0 0 0 2px #e0ead133}.cb-solitaire .ag-sol-help,.cb-solitaire .ag-sol-status,.cb-solitaire .ag-sol-controls{color:#f5f6df}.cb-solitaire .ag-sol-card{background:linear-gradient(145deg,#fffef3,#f1e8d3)!important;border:1px solid #d9cbb1!important;border-radius:8px!important;box-shadow:0 3px 4px #194c4244!important}.cb-solitaire .ag-sol-red{color:#bd6c65!important}.cb-solitaire .ag-sol-black{color:#365d58!important}.cb-solitaire .ag-sol-back,.cb-solitaire .ag-sol-stock{background:repeating-linear-gradient(45deg,transparent 0 8px,#d3e3d944 8px 10px),repeating-linear-gradient(-45deg,#649a9c 0 8px,#b1d0bd 8px 10px)!important;border:3px solid #f8f0d8!important;box-shadow:inset 0 0 0 2px #548a89,0 3px #34675b!important}.cb-solitaire .ag-sol-stock{color:#fff7df!important}.cb-solitaire .ag-sol-stock span,.cb-solitaire .ag-sol-stock strong{background:#417b74d9;border-radius:4px;padding:0 3px}.cb-solitaire .ag-sol-suit{filter:drop-shadow(0 1px #fff)}
/* Clear glass perfume tubes: highlights, meniscus, alphabet identifiers. */
.cb-water-sort .ag-tubes{background:linear-gradient(#f4fbf7,#e6f2ed);padding:24px 12px 15px;border:1px solid #c9ded5;border-bottom:9px solid #c7b495;border-radius:24px;box-shadow:0 4px #ae9b7e}.cb-water-sort .ag-tubes .ag-tube{border-radius:14px!important;background:transparent!important;box-shadow:none!important;min-width:54px;padding:5px 7px 9px!important}.cb-water-sort .ag-tube-body{position:relative;border:3px solid #a8c7cb;border-top:4px solid #c4d9d9;border-radius:5px 5px 22px 22px;box-shadow:inset 5px 0 8px #fff9,3px 5px 6px #7f9d9e22;background:#f7fcfb}.cb-water-sort .ag-tube-body:after{content:'';position:absolute;inset:5px auto 13px 5px;width:5px;border-radius:8px;background:linear-gradient(#fffc,#fff4);pointer-events:none}.cb-water-sort .ag-water-layer{height:35px;text-shadow:0 1px 2px #354e5b66;border-top:2px solid #ffffff35;box-shadow:inset -5px 0 8px #48576a20;font-size:12px}.cb-water-sort .ag-water-empty{background:#edf7f5;border:0}.cb-water-sort .ag-water-color-0{background:#d78385}.cb-water-sort .ag-water-color-1{background:#639fc8}.cb-water-sort .ag-water-color-2{background:#76aa81}.cb-water-sort .ag-water-color-3{background:#d4a14e}.cb-water-sort .ag-water-color-4{background:#a28bbc}.cb-water-sort .ag-tube-selected{outline:3px solid #4d9b9b;outline-offset:2px;transform:translateY(-7px)}
/* Lumen Dock: 6x6 viewport with actual timber crates and a molded little skiff. */
.cb-dock-frame{position:relative;padding:13px;border:6px solid #ddc49a;border-radius:26px;background:repeating-linear-gradient(0deg,#c6b391 0 9px,#d6c3a0 9px 11px);box-shadow:0 8px #aa8b60,0 14px 28px #626b5220;max-width:510px;margin:0 auto 22px}.cb-dock-grid{position:relative;aspect-ratio:1;width:100%;min-width:0;border-radius:13px;background-color:#bedbd1;background-image:linear-gradient(#ffffff45 1px,transparent 1px),linear-gradient(90deg,#ffffff45 1px,transparent 1px);background-size:16.6667% 16.6667%;box-shadow:inset 0 2px 7px #507c6a33;touch-action:none}.cb-waterlane{position:absolute;top:33.3333%;height:16.6667%;inset-inline:0;background:repeating-linear-gradient(0deg,#a4d7d4 0 9px,#c1e7de 9px 11px);box-shadow:inset 0 3px 4px #6da7a344;pointer-events:none}.cb-dock-exit{position:absolute;right:-12px;top:39%;z-index:2;display:grid;place-items:center;width:30px;height:40px;border-radius:12px;background:#fbecb9;color:#6d9e8e;font-size:25px;font-weight:bold;border:2px solid #e7cc89}.cb-board .cb-cargo{position:absolute;left:calc(var(--x)*100%/6);top:calc(var(--y)*100%/6);width:calc(var(--w)*100%/6);height:calc(var(--h)*100%/6);padding:3px;border:0;background:none;box-shadow:none;border-radius:14px;touch-action:none;cursor:grab;user-select:none}.cb-cargo .piece-art{display:block;width:100%;height:100%;filter:drop-shadow(0 4px 2px #536d5244);pointer-events:none}.cb-cargo[aria-pressed=true]{outline:3px solid #fff4bd;outline-offset:-4px;filter:drop-shadow(0 0 3px #a28b51)}.cb-cargo:focus-visible{outline-color:#235e7b;outline-offset:-3px}.cb-cargo-label{position:absolute;bottom:8px;left:9px;background:#fff5dce6;color:#5d6c5a;min-width:19px;line-height:19px;border-radius:6px;font-size:10px;pointer-events:none;border:1px solid #a7956a55}.cb-dock-commands{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.cb-board[inert]{pointer-events:none}
@media(max-width:420px){.cb-board .ag-help,.cb-board .ag-logic-help,.cb-dock-help{font-size:12px}.cb-sudoku .ag-sudoku,.cb-queens .ag-queens{padding:5px;gap:2px;border-radius:14px}.cb-nonogram .ag-nonogram{gap:2px;border-width:5px}.cb-equation .ag-equation-grid{padding:9px;gap:5px}.cb-equation .ag-equation-cell{min-height:36px;font-size:18px}.cb-water-sort .ag-tubes{gap:5px;padding-inline:5px}.cb-solitaire .ag-solitaire{padding:8px;border-width:4px}.cb-dock-frame{padding:7px;border-width:5px}.cb-cargo-label{bottom:5px;left:6px;font-size:9px;line-height:15px;min-width:15px}.cb-board .ag-keypad button{min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.cb-board *,.cb-board *:before,.cb-board *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Variable-length equations wrap inside each guess without losing glyphs. */
.cb-equation .ag-equation-row{grid-template-columns:repeat(var(--cb-equation-cols,8),minmax(0,1fr));min-width:0}.cb-equation .ag-equation-row.cb-equation-wrapped{padding:5px;border:1px solid #cbbdd5;border-radius:10px;background:#ffffff40;row-gap:4px}.cb-equation .ag-equation-row.cb-equation-wrapped .ag-equation-cell{min-width:0}

/* Ten-column clue boards keep original 24px cells in a local horizontal viewport. */
.cb-board{min-width:0}.cb-nonogram{overflow-x:auto;padding-bottom:9px;scrollbar-width:thin;scrollbar-color:#b99b7c #f8ecda}.cb-nonogram .ag-nonogram.ag-n10{min-width:324px}.cb-nonogram:has(.ag-n10):after{content:"↔";display:block;text-align:center;color:#8d765d;font-size:20px;line-height:1.2}

.cb-equation .ag-keypad [data-key="backspace"],.cb-equation .ag-keypad [data-key="submit"]{flex:1 1 100px;min-width:100px;white-space:normal}

/* Finite Blocks targets come ONLY from outer.remainingTargets, never occupied-cell guesses. */
.cb-blocks .ag-block-cell{position:relative}.cb-blocks .ag-block-cell.cb-goal-block{outline:2px solid #fff2b6;outline-offset:-3px}.cb-blocks .ag-block-cell.cb-goal-block:after{content:'';position:absolute;inset:22%;background:#fff4bf;clip-path:polygon(50% 0,61% 34%,98% 35%,68% 57%,79% 95%,50% 74%,21% 95%,32% 57%,2% 35%,39% 34%);filter:drop-shadow(0 1px 1px #815d2c);pointer-events:none}.cb-block-goal-legend{font-size:12px;color:#7c674a;margin:10px 0 12px;padding:9px 12px;border-radius:10px;background:#fff1cd;border:1px solid #e5d1a3}

.cb-finite-supply{padding:10px 12px;border:1px dashed #cfb589;border-radius:13px;background:#faf2e2;font-size:12px;color:#7b684d;margin:12px 0}.cb-finite-supply p{margin:0 0 7px;font-weight:700}.cb-supply-list{display:flex;flex-wrap:wrap;gap:10px}.cb-supply-piece{display:grid;place-items:center;min-width:42px;min-height:42px;padding:5px;background:#fff9e9;border-radius:7px}.cb-supply-shape{display:grid;grid-template-columns:repeat(var(--supply-cols),9px);gap:2px}.cb-supply-shape i{width:9px;height:9px;border-radius:2px}.cb-supply-shape .cb-supply-filled{background:linear-gradient(135deg,#aed3c7,#78a6a0);box-shadow:inset 0 1px #e1f2df,0 1px #658d83}

/* Mechanics remain available without burying the board or duplicating the shell goal. */
.cb-inline-rules{margin:15px 0 0;border-top:1px solid #c8d4c5;padding-top:5px;color:#60766a;font-size:12px}.cb-inline-rules>summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;padding:8px 4px;font-weight:600}.cb-inline-rules>summary:focus-visible{outline:3px solid #126e86;outline-offset:2px;border-radius:7px}.cb-inline-rules[open]>p{padding:8px 4px;margin:0!important}.cb-solitaire .cb-inline-rules{color:#f3f2dd;border-color:#b7d1bc66}
/* The common campaign toolbar owns these, not local selection/mode controls. */
.campaign-shell .cb-board [data-tool="hint"],.campaign-shell .cb-board [data-action="undo"],.campaign-shell .cb-board [data-action="restart"],.campaign-shell .cb-board [data-continue]{display:none!important}
/* Card faces are dense board objects, not padded common command buttons. */
.cb-solitaire .ag-sol-card,.cb-solitaire .ag-sol-place{min-width:0;width:100%;padding:3px!important;word-break:normal;overflow-wrap:normal;line-height:1.15;font-size:12px}
.cb-solitaire .ag-sol-card{min-height:58px;gap:2px}.cb-solitaire .ag-sol-place{min-height:44px;font-size:10px;border-radius:7px;background:#d9e7cf;color:#416658}.cb-solitaire .ag-sol-place span{font-size:9px;white-space:nowrap}.cb-solitaire .ag-sol-rank{font-size:15px}.cb-solitaire .ag-sol-suit{font-size:17px}.cb-solitaire .ag-sol-stock span,.cb-solitaire .ag-sol-stock strong{display:block;padding:1px 2px;white-space:nowrap;word-break:normal;overflow-wrap:normal;font-size:11px;line-height:1.2}.cb-solitaire .ag-sol-top>.ag-sol-card[data-zone="waste"]{flex-direction:column;font-size:10px;gap:1px}.cb-solitaire .ag-sol-top>.ag-sol-card[data-zone="waste"]>span:not(.ag-sol-rank):not(.ag-sol-suit){font-size:10px;white-space:nowrap}.cb-solitaire .ag-sol-card small{font-size:9px;white-space:nowrap}.cb-solitaire .ag-sol-controls{font-size:12px}
@media(max-width:599px){.cb-solitaire .ag-sol-top{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-block:4px 12px}.cb-solitaire .ag-sol-spacer{display:none}.cb-solitaire .ag-sol-top>.ag-sol-card{height:68px;min-height:68px;padding:3px 1px!important;border-radius:7px!important}.cb-solitaire .ag-solitaire{padding:7px;border-width:4px;border-radius:19px}.cb-solitaire .ag-sol-tableau{gap:3px}.cb-solitaire .ag-sol-tableau .ag-sol-card{min-height:53px;flex-direction:column;gap:1px}.cb-solitaire .ag-sol-tableau .ag-sol-rank{font-size:13px}.cb-solitaire .ag-sol-tableau .ag-sol-suit{font-size:15px}.cb-solitaire .ag-sol-foundation>span:not(.ag-sol-rank):not(.ag-sol-suit){font-size:18px}.cb-solitaire .ag-sol-place{font-size:10px}.cb-solitaire .ag-sol-place span{font-size:8px}.cb-solitaire .ag-sol-stock span{font-size:9px}.cb-solitaire .ag-sol-status{font-size:12px}.cb-solitaire .ag-sol-controls button{font-size:11px!important;padding:7px!important}}
