:root{--bg1:#081a2a;--bg2:#0b2f3a;--card:#0f2534;--paper:#ffffff;--ink:#0f172a;--muted:#475569;--jm:#21d4c2;--jm2:#ff4d6d;--jm3:#ffd166;--ring: rgba(33,212,194,.55);--paper-border: rgba(2,6,23,.1);--shadow: 0 12px 28px rgba(0,0,0,.22);--grid:#c9c2b2;--grid-bold:#544a3a;--radius: 16px;--radius-sm: 12px;--cell: 28px;--cell-lg: 30px;--ok:#22c55e;--bad:#ef4444}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:#eef4ff;background:radial-gradient(1200px 600px at 15% -10%,rgba(33,212,194,.22),transparent 60%),radial-gradient(900px 520px at 90% 0%,rgba(255,77,109,.18),transparent 60%),linear-gradient(180deg,var(--bg1),var(--bg2))}.container{max-width:1180px;margin:0 auto;padding:14px 14px 28px}.section{margin:18px 0}.section>h3{margin:0 0 10px;font-size:16px;font-weight:800;letter-spacing:.2px;color:#eef4ff;display:flex;align-items:center;gap:10px}.section>h3:before{content:"";width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--jm),var(--jm2));box-shadow:0 0 0 3px #ffffff0f}.grid-2{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 980px){.grid-2{grid-template-columns:1fr 1fr;gap:18px 18px}}.header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:var(--radius);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);box-shadow:0 6px 18px #00000029;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:10px}.brand .dot{width:12px;height:12px;border-radius:999px;background:linear-gradient(135deg,var(--jm),var(--jm2));box-shadow:0 0 0 3px #ffffff12}.brand .title{font-size:16px;font-weight:900;letter-spacing:.4px;text-transform:lowercase;color:#f3f7ff}.brand .sub{font-size:12px;color:#f3f7ffc7;margin-top:1px}.header-right{display:flex;align-items:center;gap:10px}select{background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#f3f7ff;padding:8px 10px;border-radius:999px;outline:none}select:focus-visible{box-shadow:0 0 0 4px var(--ring);border-color:#21d4c28c}select option{color:#0b1220;background:#fff}.card{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:12px;box-shadow:0 10px 24px #0000002e}.board{background:#ffffff1a;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:12px;box-shadow:0 14px 34px #00000047;overflow:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;max-width:100%}.small{font-size:13px;color:#f3f7ffb8}.card .small{color:#f3f7ffc7}.solved{color:var(--jm3);font-weight:900}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar--scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.toolbar .spacer{flex:1 1 auto;min-width:8px}.btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff14;color:#f3f7ff;font-weight:800;letter-spacing:.2px;transition:transform .04s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:hover{background:#ffffff1f;border-color:#ffffff38}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring);border-color:#21d4c28c}.btn.primary{background:linear-gradient(135deg,#21d4c2f2,#21d4c28c);border-color:#21d4c28c;color:#06131f}.btn.primary:hover{background:linear-gradient(135deg,#21d4c2,#ff4d6da6);border-color:#fff3}.btn.ghost{background:transparent;border-color:#ffffff24}.btn.sm{padding:6px 10px;font-size:14px}@media (max-width: 560px){.toolbar{flex-wrap:nowrap;overflow-x:auto}.toolbar{-webkit-overflow-scrolling:touch}}.row{display:flex}.cell{width:var(--cell);height:var(--cell);border:1px solid var(--grid);display:flex;align-items:center;justify-content:center;background:#fbf7ef;color:#0b1220;font-weight:800;line-height:1}.cell.block{background:#111;color:#111}.kbd{border:1px solid rgba(2,6,23,.18);border-bottom-width:2px;border-radius:8px;padding:2px 6px;background:#fff;color:#0b1220}.cell.focus{outline:2px solid rgba(33,212,194,.85);outline-offset:-2px}.sudoku .board{background:#ffffff1f}.sudoku .cell.l3{border-left-width:2px;border-left-color:var(--grid-bold)!important}.sudoku .cell.t3{border-top-width:2px;border-top-color:var(--grid-bold)!important}.sudoku .cell.rEdge{border-right-width:2px;border-right-color:var(--grid-bold)!important}.sudoku .cell.bEdge{border-bottom-width:2px;border-bottom-color:var(--grid-bold)!important}.sudoku .cell{color:#0b1220}.sudoku .cell.given{color:#0b1220;font-weight:900}.sudoku .cell.note{color:#475569;font-weight:700}.nonogram .board{background:#ffffff1a}.nonogram .clue-pill{display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;font-size:12px;font-weight:900;line-height:1;border-radius:999px;background:#21d4c22e;border:1px solid rgba(33,212,194,.35);color:#eaf2ff}.nonogram .clue-pill.hl{background:#ffd16699;border-color:#ffd166d9;color:#0b1220}.nonogram .cell.l5{border-left-width:2px;border-left-color:var(--grid-bold)!important}.nonogram .cell.t5{border-top-width:2px;border-top-color:var(--grid-bold)!important}.nonogram .cell.rEdge{border-right-width:2px;border-right-color:var(--grid-bold)!important}.nonogram .cell.bEdge{border-bottom-width:2px;border-bottom-color:var(--grid-bold)!important}.wordsearch .board{touch-action:none!important}.wordsearch .cell{touch-action:none!important;pointer-events:auto}.kakurasu .board{background:#ffffff1a;overflow:auto;max-width:100%}.kakurasu .kak-cell,.kakurasu .kak-clue{width:44px;height:44px}@media (max-width: 520px){.kakurasu .kak-cell,.kakurasu .kak-clue{width:38px;height:38px}}.kakurasu .kak-clue,.kakurasu .cell.clue{background:#21d4c22e;border-color:#21d4c24d;color:#eaf2ff;font-weight:900}.kakurasu .cell.clue.ok,.kakurasu .cell.clue.correct,.kakurasu .cell.clue.good{color:var(--ok)!important}.kakurasu .cell.clue.bad,.kakurasu .cell.clue.wrong,.kakurasu .cell.clue.error{color:var(--bad)!important}.kakurasu .cell.xmark{background:#fbf7ef;color:#b91c1c;font-size:18px;font-weight:900}.logic,.logic .card,.logic .board{color:#eef4ff}.logic .muted{color:#eef4ffbf}.logic input,.logic button{color:inherit}.puzzle-footer{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:8px}.puzzle-footer .hint{margin-right:auto;color:#f3f7ffb8;font-size:13px}@media print{body{background:#fff;color:#000}.header,.toolbar,.small,.puzzle-footer{display:none!important}.card,.board{border:none!important;box-shadow:none!important}.cell{border:1px solid #000!important;background:#fff!important}}.board{scrollbar-width:thin;scrollbar-color:rgba(2,6,23,.22) transparent}.board::-webkit-scrollbar{width:8px;height:8px}.board::-webkit-scrollbar-thumb{background:#02061738;border-radius:999px}.board::-webkit-scrollbar-track{background:transparent}.section .card{overflow:auto;max-width:100%}.board{max-width:100%;overflow:auto}.board table,.board .grid,.board .grid-wrap,.board .gridContainer,.board .sudoku-grid,.board .nonogram-grid,.board .kakurasu-grid{width:max-content;max-width:none}
