.control-card:hover{border-color:rgb(var(--accent-rgb)/.35);box-shadow:var(--shadow-soft)}.step-num{background:var(--accent-gradient);color:#fff;display:inline-flex;box-shadow:0 2px 6px rgb(var(--accent-rgb)/.35);border-radius:50%;justify-content:center;align-items: center;width:24px;height:24px;font-size:12px;font-weight:800}.upload-text{color:var(--text-secondary);font-size:13px}.upload-text strong{color:var(--accent)}.worksheet-gallery--pixel img{image-rendering:pixelated}.layout-modes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.mode-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--border-radius-sm);font-family:var(--font-body);cursor:pointer;text-align:center;background:#7a5e3e0a;padding:9px 4px;transition:all .2s;font-size:11px;font-weight:700}.mode-btn:hover{color:var(--text-primary);background:#7a5e3e1a}.mode-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 10px rgb(var(--accent-rgb)/.35)}.palette-edit-wrap{position:relative;margin-top:8px}.palette-edit-wrap:after{content:"";position:absolute;pointer-events:none;border-radius:0 0 var(--border-radius-sm)var(--border-radius-sm);background:linear-gradient(to bottom,#fdf8f000,var(--bg-card));opacity:0;height:32px;transition:opacity .2s;bottom:0;left:0;right:4px}.palette-edit-wrap.can-scroll-down:after{opacity:1}.palette-edit-grid{display:flex;overflow-y:auto;flex-direction:column;gap:8px;max-height:220px;padding-right:4px}.palette-chip{display:flex;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:#7a5e3e0a;justify-content:space-between;align-items: center;gap:10px;padding:7px 11px;transition:all .2s}.palette-chip.excluded{opacity:.4;background:#7a5e3e14;border-style:dashed}.palette-chip-left{display:flex;flex:1;align-items: center;gap:10px}.palette-chip-swatch-container{position:relative;overflow:hidden;cursor:pointer;border:2px solid #fffc;border-radius:50%;flex-shrink:0;width:24px;height:24px;transition:transform .1s;box-shadow:0 2px 5px #7a5e3e40}.palette-chip-swatch-container:hover{transform:scale(1.1)}.palette-chip-swatch-container input[type=color]{position:absolute;cursor:pointer;background:0 0;border:none;width:34px;height:34px;margin:0;padding:0;top:-5px;left:-5px}.palette-chip-info{display:flex;flex-direction:column}.palette-chip-name{color:var(--text-primary);font-size:12px;font-weight:700}.palette-chip-math{display:inline-flex;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items: center;gap:4px;margin-top:1px;padding:0;transition:color .15s;font-family:inherit;font-size:10px;font-weight:700}.palette-chip-math:hover:not(:disabled){color:var(--accent)}.palette-chip-math:disabled{cursor:default}.palette-chip-math-edit{opacity:.6;font-size:9px}.palette-chip-math:disabled .palette-chip-math-edit{display:none}.number-popover{position:fixed;z-index:1000;display:flex;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);flex-direction:column;gap:8px;width:232px;max-height:60vh;padding:12px;box-shadow:0 10px 30px #7a5e3e47}.number-popover-head{display:flex;justify-content:space-between;align-items: center;gap:8px}.number-popover-title{display:flex;color:var(--text-primary);align-items: center;gap:7px;font-size:13px;font-weight:800}.number-popover-swatch{border:2px solid #fffc;border-radius:50%;flex-shrink:0;width:16px;height:16px;box-shadow:0 1px 3px #7a5e3e4d}.number-popover-auto{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);border:1px solid var(--border-color);cursor:pointer;background:#7a5e3e14;border-radius:999px;padding:3px 9px;transition:all .15s;font-family:inherit;font-size:10px;font-weight:800}.number-popover-auto.active{color:#fff;background:var(--accent);border-color:var(--accent)}.number-popover-hint{color:var(--text-muted);font-size:10px;line-height:1.35}.number-popover-grid{display:grid;grid-template-columns:repeat(5,1fr);overflow-y:auto;gap:5px;padding-right:2px}.number-chip{font-family:var(--font-heading);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:#7a5e3e0d;border-radius:7px;padding:6px 0;transition:all .12s;font-size:12px;font-weight:700}.number-chip:hover:not(.disabled):not(.selected){background:#7a5e3e1f;border-color:#d8c3a5}.number-chip.selected{color:#fff;background:var(--accent);border-color:var(--accent)}.number-chip.disabled{opacity:.32;cursor:not-allowed}.palette-chip-action{color:var(--text-muted);cursor:pointer;display:inline-flex;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items: center;width:28px;height:28px;transition:all .2s;font-size:16px;font-weight:700}.palette-chip-action svg{display:block}.palette-chip-action:hover{color:#d1584a;background:#d1584a1f}.palette-chip.excluded .palette-chip-action:hover{color:var(--accent-green);background:#8aa06f26}.palette-chip-added{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);background:rgb(var(--accent-rgb)/.14);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:800}.btn-add-color{justify-content:center;width:100%;margin-top:10px}.operation-toggle{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.op-btn[data-op=number]{grid-column:1/-1}.op-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--border-radius-sm);font-family:var(--font-body);cursor:pointer;text-align:center;background:#7a5e3e0a;padding:11px 6px;transition:all .2s;font-size:12px;font-weight:700}.op-btn:hover{color:var(--text-primary);background:#7a5e3e1a}.op-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 10px rgb(var(--accent-rgb)/.35)}.difficulty-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.diff-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--border-radius-sm);font-family:var(--font-body);cursor:pointer;text-align:center;background:#7a5e3e0a;padding:9px 4px;transition:all .2s;font-size:11px;font-weight:700}.diff-btn:hover{color:var(--text-primary);background:#7a5e3e1a}.diff-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 10px rgb(var(--accent-rgb)/.35)}.control-card[inert]{opacity:.5;filter:grayscale(.6);transition:opacity .3s,filter .3s}.btn-text{color:var(--text-secondary);border-radius:var(--border-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 12px;font-size:12px;font-weight:600}.btn-text:hover{color:var(--text-primary);border-color:var(--border-color);background:#7a5e3e0d}.empty-state.drag-over{border-color:var(--accent);background:rgb(var(--accent-rgb)/.07)}.empty-state h2{font-family:var(--font-heading);color:var(--text-primary);font-size:24px;font-weight:700}.empty-state p{font-size:15px;line-height:1.6}.edit-hint{background:rgb(var(--accent-rgb)/.1);border:1px solid rgb(var(--accent-rgb)/.3);color:var(--text-secondary);border-radius:999px;width:-moz-fit-content;width:fit-content;margin:0 auto 16px;padding:9px 18px;font-size:13px;font-weight:600}.worksheet-layout-preview{display:flex;flex:1;justify-content:center;width:100%}.sheet-body{display:flex;flex-direction:column}.grid-outer-container{display:flex;border-radius:var(--border-radius-sm);background:#faf3e8;border:1px dashed #d8c3a5;flex:1;justify-content:center;align-items: center;min-height:500px;margin-bottom:16px;padding:6px}.math-grid-container{display:grid;background-color:#fff;border-top:1px solid #d8c3a5;border-left:1px solid #d8c3a5;box-shadow:0 4px 10px -2px #7a5e3e1f}.grid-cell{display:flex;color:#6b5c4a;user-select:none;position:relative;cursor:default;white-space:nowrap;overflow:hidden;border-bottom:1px solid #d8c3a5;border-right:1px solid #d8c3a5;justify-content:center;align-items: center;transition:background-color .1s,color .1s;font-size:9px;font-weight:700;line-height:1}.grid-cell.editable{cursor:pointer}.grid-cell:after{content:"";position:absolute;pointer-events:none;border:1px solid #0000;transition:border-color .1s;inset:0}.grid-cell.editable:hover:after{border-color:var(--accent);background-color:rgb(var(--accent-rgb)/.15)}.grid-cell.blank{background-color:#0000;border-color:#efe4d3}.legend-container{border-top:2px solid #d8c3a5;padding-top:12px}.legend-container h3{color:#4b3f33;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:13px;font-weight:700;line-height:1.5}.legend-items{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;color:#4b3f33;cursor:pointer;user-select:none;background:#faf3e8;border:1px solid #ecdfcc;border-radius:10px;align-items: center;gap:8px;padding:6px 11px;transition:all .2s;font-size:11px;font-weight:700;line-height:1.5}.legend-item:hover{background:#f5ebda;border-color:#d8c3a5;transform:translateY(-1px)}.legend-item.active{border-color:var(--accent);box-shadow:0 2px 6px rgb(var(--accent-rgb)/.18);background:#fbeee5}.color-swatch{border:1px solid #4b3f3326;border-radius:6px;flex-shrink:0;width:18px;height:18px}.legend-text{display:flex;align-items: center;gap:6px}.legend-equals{color:#b3a390}.legend-color-name{color:#8a7663;font-size:10px;font-weight:600}.printable-page.mode-drawing .worksheet-header,.printable-page.mode-drawing .legend-container{display:none}.printable-page.mode-drawing .grid-outer-container{margin:0}.grid-cell.colored{text-shadow:0 0 2px #fffc;color:#0000004d!important}.original-image-container{display:flex;border-radius:var(--border-radius-md);background:#7a5e3e0f;justify-content:center;align-items: center;width:100%;height:100%;padding:20px}.original-image-container img{object-fit:contain;border-radius:var(--border-radius-sm);max-width:100%;max-height:600px;box-shadow:0 12px 30px #7a5e3e38}.loading-overlay{position:fixed;backdrop-filter:blur(8px);display:flex;z-index:1000;opacity:0;pointer-events:none;background:#f4ebddd9;justify-content:center;align-items: center;transition:opacity .3s;inset:0}.loading-overlay.active{opacity:1;pointer-events:all}.loader{text-align:center;color:var(--text-primary)}.spinner{border:4px solid rgb(var(--accent-rgb)/.2);border-top:4px solid var(--accent);animation:1s linear infinite spin;border-radius:50%;width:50px;height:50px;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}@media print{.grid-outer-container{background:0 0!important;border:none!important;padding:0!important}.math-grid-container{box-shadow:none!important;background-color:#fff!important;border-top:1px solid #000!important;border-left:1px solid #000!important;max-width:100%!important}.grid-cell{color:#000!important;border-bottom:1px solid #000!important;border-right:1px solid #000!important}body.print-worksheet-mode .grid-cell{background-color:#0000!important}.legend-container{border-top:2px solid #000!important}.legend-item{color:#000!important;background:#fff!important;border:1px solid #000!important}.color-swatch{border:1px solid #000!important}.legend-color-name,.legend-equals{color:#000!important}}.btn-undo{flex-shrink:0;margin-inline-start:auto;padding:8px 16px;font-size:13px}.btn-undo:disabled{opacity:.4;cursor:not-allowed}button.grid-cell{appearance:none;-webkit-appearance:none;font:inherit;text-align:center;color:#6b5c4a;background:0 0;border:1px solid #d8c3a5;border-top:none;border-left:none;border-radius:0;font-weight:700;line-height:1}.grid-cell.editable:focus-visible{outline:3px solid #1d4ed8;outline-offset:-3px;z-index:2}button.legend-item{appearance:none;-webkit-appearance:none;text-align:left;font-family:inherit;font-size:11px}button.legend-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media screen and (max-width:1180px){.printable-page{max-width:100%}.grid-outer-container{overflow-x:auto;justify-content:flex-start}}@media screen and (max-width:760px){.workspace-header{flex-wrap:wrap;gap:8px;height:auto;padding:8px 16px}.tabs{flex-wrap:wrap;height:auto}.tab-btn{padding:8px 10px;font-size:13px}.workspace-body{padding:12px}.printable-page{border-radius:var(--border-radius-sm);width:100%;min-height:0;padding:14px}.brand{padding:0 16px}.control-card{padding:16px}}@media (hover:none) and (pointer:coarse){.legend-item,.palette-chip-action,.tab-btn,.op-btn,.diff-btn{min-height:44px}}
