:root{--bg: #ffffff;--surface: #ffffff;--text: #121212;--muted: #7a7a7a;--tile: #efefe6;--tile-selected: #5a594e;--tile-selected-text: #ffffff;--border: #d9d9d0;--primary: #121212;--primary-text: #ffffff;--hover: #f2f2f2;--panel: #f6f6ef;--danger: #c0392b;--radius: 8px;--maxw: 620px;font-family:Libre Franklin,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}:root[data-theme=dark]{--bg: #14140f;--surface: #1e1e18;--text: #ece9e0;--muted: #9a978d;--tile: #2b2b24;--tile-selected: #6f6d5c;--tile-selected-text: #14140f;--border: #3a3a32;--primary: #ece9e0;--primary-text: #14140f;--hover: #26261f;--panel: #201f18;--danger: #e57a6d}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease}#root{min-height:100vh}.app{max-width:var(--maxw);margin:0 auto;padding:20px 16px 48px}.btn{font-family:inherit;font-size:15px;font-weight:600;padding:12px 18px;border:1px solid var(--text);border-radius:999px;background:var(--bg);color:var(--text);cursor:pointer;transition:transform .05s ease,background .15s ease,opacity .15s ease}.btn:hover:not(:disabled){background:var(--hover)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-ghost{border-color:transparent;padding:10px 12px}.btn-ghost:hover:not(:disabled){background:var(--hover)}.btn-danger{color:var(--danger)}.btn-wide{width:100%}.menu-topbar{display:flex;justify-content:flex-end;margin-bottom:4px}.theme-toggle{font-size:20px;line-height:1;padding:8px 10px;border-radius:999px}.menu-header{text-align:center;margin-bottom:24px}.menu-header h1{font-size:40px;letter-spacing:-.5px;margin:8px 0 4px}.tagline{color:var(--muted);margin:0}.btn-create{display:block;width:100%;margin-bottom:28px;font-size:16px;padding:16px}.empty-state{text-align:center;padding:40px 0;border:1px dashed var(--border);border-radius:var(--radius)}.muted{color:var(--muted)}.board-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.board-card{border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.board-card-main{display:flex;align-items:center;gap:14px;min-width:0}.board-card-swatches{display:grid;grid-template-columns:1fr 1fr;gap:3px;flex-shrink:0}.swatch{width:16px;height:16px;border-radius:3px}.board-card-text h2{margin:0 0 2px;font-size:18px}.board-card-text p{margin:0;font-size:13px}.board-card-actions{display:flex;gap:8px;flex-shrink:0}.board-card-actions .btn{padding:9px 14px;font-size:14px}.editor-header,.game-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.editor-header h1,.game-title{font-size:20px;margin:0;text-align:center;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field{display:block;margin-bottom:8px}.field-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.input{width:100%;font-family:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.input:focus{outline:none;border-color:var(--text)}.input-title{font-size:18px;font-weight:600}.help-text{color:var(--muted);font-size:14px;margin:8px 0 20px}.category-block{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:0 0 16px}.category-block legend{font-weight:700;padding:0 8px;display:flex;align-items:center;gap:8px}.cat-dot{width:14px;height:14px;border-radius:50%;display:inline-block}.input-catname{font-weight:600;margin-bottom:10px}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.error-list{background:#fdecea;border:1px solid #f5c6cb;color:#a4262c;border-radius:var(--radius);padding:12px 12px 12px 30px;font-size:14px;margin:16px 0}.editor-footer{margin-top:20px}.instruction{text-align:center;color:var(--muted);margin:4px 0 16px}.solved-stack{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.solved-row{border-radius:var(--radius);padding:14px;text-align:center;color:#121212;animation:pop .3s ease}.solved-name{font-weight:800;text-transform:uppercase;letter-spacing:.5px;font-size:15px}.solved-items{font-size:14px;margin-top:2px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 16px}.tile{aspect-ratio:1 / 1;border:none;border-radius:var(--radius);background:var(--tile);color:var(--text);font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;text-align:center;transition:transform .05s ease,background .1s ease,color .1s ease;overflow:hidden}.tile:active{transform:scale(.95)}.tile-text{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;line-height:1.15;max-height:100%}.tile-selected{background:var(--tile-selected);color:var(--tile-selected-text)}.shake{animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.mistakes{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 18px}.mistakes-label{color:var(--muted);font-size:14px}.mistakes-dots{display:flex;gap:8px}.dot{width:16px;height:16px;border-radius:50%}.dot-full{background:var(--text)}.dot-empty{background:var(--border)}.controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.toast{text-align:center;background:var(--text);color:var(--bg);padding:8px 16px;border-radius:999px;width:fit-content;margin:0 auto 14px;font-weight:600;font-size:14px;animation:pop .2s ease}.hints-box{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;margin-bottom:14px;font-size:14px}.hints-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.hint-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.hint-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;background:var(--surface);border:1px solid var(--border)}.hint-num{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);flex-shrink:0}.hint-value{font-weight:700;margin-left:auto}.hint-item.locked .hint-value{color:var(--muted);font-weight:500;font-style:italic;opacity:.6}.hint-item.revealed{border-color:var(--text)}.hint-alldone{font-size:13px;margin:4px 0 0}.btn-small{padding:7px 12px;font-size:13px}.result{text-align:center;font-size:18px;font-weight:700;padding:16px;border-radius:var(--radius);margin:12px 0 20px}.result-win{background:#eaf6e6;color:#2b7a2b}.result-lose{background:var(--hover);color:var(--text)}:root[data-theme=dark] .result-win{background:#1f3320;color:#8fd28f}:root[data-theme=dark] .error-list{background:#3a1f1c;border-color:#5c2b27;color:#f0a99f}.game-author{font-size:14px;color:var(--muted);white-space:nowrap}.field-row{display:flex;gap:12px}.field-row .field{flex:1;margin-bottom:8px}.centered-state{text-align:center;padding:60px 16px;max-width:460px;margin:0 auto}.centered-state h1{margin-bottom:8px}.centered-state code{background:var(--hover);padding:2px 6px;border-radius:4px}.login-form{display:flex;gap:8px;margin:20px 0 8px}.login-form .input{flex:1}.error-text{color:var(--danger);font-size:14px}.link-back{display:inline-block;margin-top:16px;text-decoration:none}.admin-section{margin-bottom:32px}.admin-section h2{font-size:18px;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:16px}.settings-form{display:flex;flex-direction:column;gap:12px;max-width:380px}.settings-actions{display:flex;align-items:center;gap:12px}.saved-msg{color:#2b7a2b;font-weight:600;font-size:14px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.admin-table a{color:var(--text);font-weight:600}@media (max-width: 480px){.menu-header h1{font-size:32px}.tile{font-size:12px}.board-card{flex-direction:column;align-items:stretch}.board-card-actions{justify-content:space-between}.field-row{flex-direction:column;gap:0}}
