:root{--ink: #0f1115;--ink-2: #171a21;--ink-3: #1f232c;--line: #2a2f3a;--line-soft: #e3e5e9;--paper: #f3f4f6;--paper-2: #ffffff;--text: #e8eaee;--text-dim: #9aa1ad;--text-ink: #1b1e25;--text-ink-dim: #6b7280;--accent: #3b82f6;--accent-2: #fad200;--radius: 10px;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--header-h: 52px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);color:var(--text-ink);background:var(--paper);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh}.app-header{height:var(--header-h);background:var(--ink);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 20px;gap:24px;flex:none}.header-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text);letter-spacing:-.01em;flex:none}.tabs{display:flex;gap:4px}.tab{display:flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:13px;font-weight:500;padding:7px 14px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .12s}.tab:hover{color:var(--text);background:var(--ink-2)}.tab.active{color:var(--text);background:var(--ink-3);border-color:var(--line)}.tab svg{flex:none}.app-body{display:grid;grid-template-columns:300px 1fr;flex:1;min-height:0;overflow:hidden}.rail{background:var(--ink);color:var(--text);padding:20px 18px 24px;display:flex;flex-direction:column;gap:20px;border-right:1px solid var(--line);overflow-y:auto}.field{display:flex;flex-direction:column;gap:8px}.field>label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);display:flex;justify-content:space-between;align-items:baseline}.field .val{color:var(--accent-2);font-weight:700}.dropzone{border:1.5px dashed var(--line);border-radius:var(--radius);padding:18px 12px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--ink-2);color:var(--text-dim);font-size:12.5px}.dropzone:hover,.dropzone.drag{border-color:var(--accent);color:var(--text);background:var(--ink-3)}.dropzone strong{color:var(--text);display:block;font-size:13px;margin-bottom:3px}.dropzone input{display:none}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:var(--line);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:4px;background:var(--accent);cursor:pointer;border:2px solid var(--ink);box-shadow:0 0 0 1px var(--accent)}.seg{display:flex;gap:5px}.seg button{flex:1;font-family:var(--font-body);font-size:12px;padding:8px 6px;border-radius:7px;border:1px solid var(--line);background:var(--ink-2);color:var(--text-dim);cursor:pointer;transition:all .12s}.seg button:hover{color:var(--text)}.seg button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.rail-foot{margin-top:auto;font-size:11px;color:var(--text-dim);line-height:1.5}.custom-palette{gap:8px}.custom-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}button.micro{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:6px;border:1px solid var(--line);background:var(--ink-2);color:var(--text-dim);cursor:pointer;transition:all .1s}button.micro:hover{color:var(--text);border-color:var(--accent)}.color-grid{display:flex;flex-direction:column;gap:1px;max-height:300px;overflow-y:auto;padding-right:2px}.color-grid::-webkit-scrollbar{width:3px}.color-grid::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.color-item{display:flex;align-items:center;gap:8px;padding:4px 7px;border-radius:6px;cursor:pointer;transition:background .1s;border:1px solid transparent}.color-item:hover{background:var(--ink-2)}.color-item.checked{background:var(--ink-3);border-color:var(--line)}.color-item input[type=checkbox]{display:none}.color-chip{width:18px;height:18px;border-radius:4px;flex:none;box-shadow:inset 0 0 0 1px #ffffff1a,0 0 0 1px #0003}.color-item.checked .color-chip{box-shadow:inset 0 0 0 1px #ffffff26,0 0 0 2px var(--accent)}.color-name{font-size:12px;color:var(--text-dim);flex:1}.color-item.checked .color-name{color:var(--text)}.work{padding:24px 28px 40px;overflow-y:auto}.empty{height:100%;display:grid;place-items:center;color:var(--text-ink-dim)}.empty .inner{text-align:center;max-width:360px}.empty .mark{font-size:0;margin-bottom:16px}.empty h2{font-family:var(--font-display);font-weight:600;font-size:20px;margin:0 0 8px;color:var(--text-ink)}.empty p{margin:0;font-size:13.5px;line-height:1.55}.views{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.panel{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:13px;overflow:hidden}.panel .head{display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border-bottom:1px solid var(--line-soft)}.panel .head h3{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-ink-dim);margin:0}.panel .body{padding:14px;display:grid;place-items:center;background:#fafbfc;min-height:200px}.panel img,.panel canvas{max-width:100%;height:auto;display:block;border-radius:5px}.panel.render .body{background:var(--paper)}.btn{font-family:var(--font-body);font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:8px;border:1px solid var(--line-soft);background:var(--paper-2);color:var(--text-ink);cursor:pointer;transition:all .12s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#2f6fe0;color:#fff}.btn:disabled{opacity:.45;cursor:default}.btn.large{padding:11px 22px;font-size:14px}.inventory{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:13px;overflow:hidden}.inv-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;gap:10px}.inv-head .title{display:flex;align-items:baseline;gap:12px}.inv-head h3{font-family:var(--font-display);font-weight:600;font-size:15px;margin:0}.inv-head .total{font-family:var(--font-mono);font-size:12px;color:var(--text-ink-dim)}.inv-head .total b{color:var(--accent);font-size:14px}.inv-actions{display:flex;gap:7px}table.inv{width:100%;border-collapse:collapse}table.inv th,table.inv td{text-align:left;padding:8px 18px;font-size:12.5px}table.inv th{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ink-dim);font-weight:400;border-bottom:1px solid var(--line-soft)}table.inv td{border-bottom:1px solid #f1f2f4}table.inv tr:last-child td{border-bottom:none}table.inv td.num{font-family:var(--font-mono);text-align:right}.swatch{display:inline-flex;align-items:center;gap:9px}.chip{width:16px;height:16px;border-radius:4px;flex:none;box-shadow:inset 0 0 0 1px #0000001f}.bar-cell{width:32%}.bar{height:6px;border-radius:3px;background:var(--accent);opacity:.8}.editor-layout{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0;overflow:hidden}.editor-rail{background:var(--ink);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 14px;gap:14px;overflow-y:auto}.editor-rail-top{display:flex;flex-direction:column;gap:14px;flex:1}.editor-rail-foot{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.tool-row{display:flex;gap:6px}.tool-row .btn{flex:1;padding:7px 6px;font-size:12px}.selected-preview{border-radius:8px;padding:10px 12px;font-size:13px;font-weight:600;text-align:center;min-height:40px;display:grid;place-items:center}.color-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.picker-chip{width:100%;aspect-ratio:1;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .1s;box-shadow:inset 0 0 0 1px #ffffff1a,0 0 0 1px #0003}.picker-chip:hover{transform:scale(1.12)}.picker-chip.selected{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.picker-chip.eraser{background:#fff;color:#999;font-size:11px;font-weight:700;box-shadow:inset 0 0 0 1px #ddd}.picker-chip.eraser.selected{border-color:var(--accent)}.editor-canvas-wrap{overflow:auto;background:#e8e9ec;display:flex;align-items:flex-start;justify-content:flex-start;padding:20px}.editor-canvas{display:block;cursor:crosshair;image-rendering:pixelated;flex:none}.editor-setup{flex:1;display:grid;place-items:center;background:var(--paper)}.setup-card{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:16px;padding:36px 40px;text-align:center;max-width:380px;width:100%}.setup-card h2{font-family:var(--font-display);font-weight:700;font-size:22px;margin:0 0 8px}.setup-card p{color:var(--text-ink-dim);font-size:14px;margin:0 0 24px}.setup-row{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:12px}.setup-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-ink-dim)}.setup-row input[type=number]{width:80px;padding:8px 10px;border-radius:8px;border:1px solid var(--line-soft);font-size:18px;font-family:var(--font-display);font-weight:600;text-align:center;outline:none;transition:border-color .12s}.setup-row input[type=number]:focus{border-color:var(--accent)}.setup-x{font-size:20px;color:var(--text-ink-dim);font-weight:300}.setup-hint{color:var(--text-ink-dim);font-size:13px;margin-bottom:20px;font-family:var(--font-mono)}@media(max-width:900px){.app-body{grid-template-columns:1fr}.rail{border-right:none;border-bottom:1px solid var(--line)}.views,.editor-layout{grid-template-columns:1fr}}.editor-canvas-scaler{position:relative;flex:none}.editor-canvas{display:block;cursor:crosshair;image-rendering:pixelated;image-rendering:crisp-edges}.zoom-row{display:flex;align-items:center;gap:0;background:var(--ink-2);border:1px solid var(--line);border-radius:8px;overflow:hidden}.zoom-btn{flex:none;width:34px;height:32px;padding:0;border-radius:0;border:none;background:transparent;font-size:18px;font-weight:400;color:var(--text-dim);border-right:1px solid var(--line)}.zoom-btn:last-child{border-right:none;border-left:1px solid var(--line)}.zoom-btn:hover:not(:disabled){background:var(--ink-3);color:var(--text);border-color:var(--line)}.zoom-btn:disabled{opacity:.3;cursor:default}.zoom-label{flex:1;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--text)}.ref-section{border-top:1px solid var(--line);padding-top:14px}.ref-upload{display:flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:8px;border:1.5px dashed var(--line);background:var(--ink-2);color:var(--text-dim);font-size:12px;cursor:pointer;transition:all .12s;text-align:center}.ref-upload:hover{border-color:var(--accent);color:var(--text)}.ref-upload input{display:none}.ref-controls{display:flex;gap:6px}.ref-toggle{flex:1;font-size:12px;padding:6px 8px;border-color:var(--line);background:var(--ink-2);color:var(--text-dim)}.ref-toggle.active{border-color:var(--accent);color:var(--accent);background:var(--ink-3)}.ref-toggle:hover{border-color:var(--accent);color:var(--accent)}.ref-remove{padding:6px 10px;font-size:12px;border-color:var(--line);background:var(--ink-2);color:var(--text-dim)}.ref-remove:hover{border-color:#e05252;color:#e05252}.editor-canvas-wrap{background-image:linear-gradient(45deg,#d0d2d6 25%,transparent 25%),linear-gradient(-45deg,#d0d2d6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d0d2d6 75%),linear-gradient(-45deg,transparent 75%,#d0d2d6 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;background-color:#e4e5e8}
