:root{--bg: #ffffff;--bg-subtle: #f6f6f6;--bg-raised: #ffffff;--border: #e0e0e0;--border-strong: #c8c8c8;--text: #1a1a1a;--text-muted: #616161;--accent: #5046e5;--accent-contrast: #ffffff;--accent-subtle: #eeecfd;--danger: #b3261e;--focus: #5046e5;--radius: 6px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1f1f1f;--bg-subtle: #282828;--bg-raised: #2d2d2d;--border: #3d3d3d;--border-strong: #555555;--text: #f0f0f0;--text-muted: #a6a6a6;--accent: #8b84f5;--accent-contrast: #16151f;--accent-subtle: #302c52;--danger: #f2b8b5;--focus: #8b84f5}}:root[data-theme=dark]{--bg: #1f1f1f;--bg-subtle: #282828;--bg-raised: #2d2d2d;--border: #3d3d3d;--border-strong: #555555;--text: #f0f0f0;--text-muted: #a6a6a6;--accent: #8b84f5;--accent-contrast: #16151f;--accent-subtle: #302c52;--danger: #f2b8b5;--focus: #8b84f5}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;line-height:1.4;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.app{display:flex;flex-direction:column;height:100%;min-height:0}.toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 10px 8px;border-bottom:1px solid var(--border);background:var(--bg)}.row{display:flex;align-items:center;gap:8px}.search{position:relative;flex:1;display:flex;align-items:center}.search input{width:100%;padding:7px 30px;font:inherit;color:var(--text);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.search input:focus{border-color:var(--accent);outline:none}.search .glyph{position:absolute;left:8px;width:16px;height:16px;color:var(--text-muted);pointer-events:none}.search .clear{position:absolute;right:4px;display:grid;place-items:center;width:22px;height:22px;padding:0;color:var(--text-muted);background:none;border:0;border-radius:4px}.search .clear:hover{background:var(--border);color:var(--text)}.segmented{display:flex;flex:1;gap:2px;padding:2px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.segmented button{display:grid;flex:1;place-items:center;padding:5px 0;background:none;border:0;border-radius:4px;color:var(--text-muted)}.segmented button:hover{background:var(--border);color:var(--text)}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast)}.segmented svg{width:18px;height:18px}.color-field,.size-field{display:flex;align-items:center;gap:6px;padding:3px 6px 3px 3px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.color-field{flex:1;min-width:0}.swatch-input{flex:none;width:24px;height:24px;padding:0;background:none;border:1px solid var(--border-strong);border-radius:4px;cursor:pointer}.swatch-input::-webkit-color-swatch-wrapper{padding:2px}.swatch-input::-webkit-color-swatch{border:0;border-radius:2px}.color-field input[type=text],.size-field input{width:100%;min-width:0;padding:3px 0;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);background:none;border:0;outline:none}.color-field input[type=text]{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px}.color-field.invalid{border-color:var(--danger)}.size-field{flex:none;width:96px;padding-left:8px}.canvas-toggle{display:grid;flex:none;place-items:center;width:30px;height:30px;padding:0;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.canvas-toggle:hover{color:var(--text);border-color:var(--border-strong)}.canvas-toggle svg{width:16px;height:16px}.size-field input{width:36px;text-align:right}.size-field .unit{color:var(--text-muted)}.size-field .steppers{display:flex;flex-direction:column;margin-left:auto}.size-field .steppers button{display:grid;place-items:center;width:18px;height:11px;padding:0;color:var(--text-muted);background:none;border:0;line-height:1}.size-field .steppers button:hover{color:var(--text)}.swatches{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.swatches::-webkit-scrollbar{display:none}.swatches button{flex:none;width:19px;height:19px;padding:0;border:1px solid var(--border-strong);border-radius:4px}.swatches button[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent)}.chips{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.chips::-webkit-scrollbar{height:4px}.chips::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.chip{display:flex;flex:none;align-items:center;gap:4px;padding:3px 9px;font-size:12px;white-space:nowrap;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px}.chip:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.chip[aria-pressed=true]{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}.chip:disabled{opacity:.4;cursor:default}.chip svg{width:13px;height:13px}.chip-divider{flex:none;width:1px;margin:2px;background:var(--border)}.grid{flex:1;min-height:0;overflow-y:auto;padding:8px;background:var(--canvas)}.grid[data-canvas=light]{--canvas: #ffffff;--canvas-text: #6b6b6b;--canvas-hover: #f1f1f1;--canvas-border: #dcdcdc}.grid[data-canvas=dark]{--canvas: #1c1c1c;--canvas-text: #9a9a9a;--canvas-hover: #2b2b2b;--canvas-border: #3d3d3d}.grid-inner{position:relative;width:100%}.tile{position:absolute}.tile-main{display:grid;place-items:center;width:100%;height:100%;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius);color:inherit}.tile:hover .tile-main,.tile-main:focus-visible{background:var(--canvas-hover);border-color:var(--canvas-border)}.tile .glyph{width:30px;height:30px;margin-bottom:11px;pointer-events:none}.tile .name{position:absolute;right:3px;bottom:4px;left:3px;overflow:hidden;font-size:9px;line-height:1.2;color:var(--canvas-text);text-align:center;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.tile-action{position:absolute;display:none;place-items:center;width:20px;height:20px;padding:0;color:var(--canvas-text);background:var(--canvas);border:1px solid var(--canvas-border);border-radius:4px}.tile-action svg{width:12px;height:12px}.tile-action.fav{top:1px;right:1px}.tile-action.copy{top:1px;left:1px}.tile:hover .tile-action,.tile:focus-within .tile-action{display:grid}.tile-action:hover{border-color:var(--accent);color:var(--accent)}.tile-action.fav.on{display:grid;color:#eab308}.empty{display:grid;place-items:center;gap:8px;padding:44px 16px;color:var(--canvas-text, var(--text-muted));text-align:center}.empty svg{width:28px;height:28px;opacity:.5}.statusbar{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--border);background:var(--bg)}.statusbar .spacer{flex:1}.badge{padding:1px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;background:var(--accent-subtle);color:var(--accent)}.toast{padding:6px 10px;font-size:12px;border-top:1px solid var(--border)}.toast.ok{color:var(--text);background:var(--accent-subtle)}.toast.error{color:var(--danger);background:var(--bg-subtle)}.link{padding:0;font:inherit;color:var(--accent);background:none;border:0;text-decoration:underline;text-underline-offset:2px}.link:hover{text-decoration-thickness:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
