:root{--radius: 10px;--shadow-soft: 0 1px 2px rgba(43, 34, 22, .05), 0 8px 22px rgba(43, 34, 22, .05);--shadow-pop: 0 14px 40px rgba(43, 34, 22, .16);--ease: cubic-bezier(.16, 1, .3, 1);--font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display: "SF Pro Display", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, monospace}:root,body[data-theme=teal]{color-scheme:light;--bg: #ece9e3;--chrome: #e3ded4;--panel: #f6f4ef;--surface: #fcfbf8;--line: #d8d2c6;--line-strong: #c4bca9;--line-soft: rgba(216, 210, 198, .5);--text: #191c20;--text-muted: #70757d;--accent: #17656a;--accent-hover: #114f54;--accent-soft: #e1efee;--gold: #eabf3f;--danger: #a33a30}body[data-theme=amber]{color-scheme:light;--bg: #f2ece2;--chrome: #eadfcf;--panel: #f8f3ec;--surface: #fdfaf5;--line: #ddcbb4;--line-strong: #c5ab88;--line-soft: rgba(221, 203, 180, .5);--text: #221c14;--text-muted: #8a7a64;--accent: #c96a2c;--accent-hover: #a9541f;--accent-soft: #f6e6d8;--gold: #e8a33d;--danger: #a33a30}body[data-theme=indigo]{color-scheme:light;--bg: #e9ecf1;--chrome: #dde2ea;--panel: #f4f6f9;--surface: #fbfcfe;--line: #ccd4e0;--line-strong: #aebbd0;--line-soft: rgba(204, 212, 224, .5);--text: #1a2030;--text-muted: #67718a;--accent: #3d5a80;--accent-hover: #2f4869;--accent-soft: #e2e8f2;--gold: #e0a63c;--danger: #a33a30}body[data-theme=plum]{color-scheme:light;--bg: #efe9ed;--chrome: #e5dce3;--panel: #f7f2f6;--surface: #fdfafc;--line: #d9cad6;--line-strong: #bda5ba;--line-soft: rgba(217, 202, 214, .5);--text: #231b22;--text-muted: #7d6f7b;--accent: #9c4f6b;--accent-hover: #823c57;--accent-soft: #f2e3ea;--gold: #e0a63c;--danger: #a33a30}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}#root{display:flex;flex-direction:column}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:var(--font-display)}.app-shell{min-height:100%;flex:1;display:flex;flex-direction:column}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line-soft)}.panel-head h4{margin:0;font-size:13.5px;font-weight:600}.panel-head-toggle{width:100%;border:0;border-bottom:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;background:transparent;font:inherit;color:inherit;cursor:pointer;transition:background .2s var(--ease)}.panel-head-toggle:hover{background:var(--panel)}.panel-head-toggle.collapsed{border-bottom-color:transparent;border-radius:var(--radius)}.panel-head-toggle .chev{width:10px;height:6px;flex:none;color:var(--text-muted);transition:transform .2s var(--ease)}.panel-head-toggle[aria-expanded=true] .chev{transform:rotate(180deg)}.btn{border:1px solid var(--line);background:var(--surface);padding:10px 18px;border-radius:8px;font-family:inherit;font-size:13.5px;color:var(--text);cursor:pointer;transition:all .2s var(--ease)}.btn:hover{border-color:var(--line-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:var(--shadow-soft)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.input-text{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-family:inherit;font-size:13px;color:var(--text)}.input-text:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}input[type=checkbox]{accent-color:var(--accent);cursor:pointer}select.lang,select.theme{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;border-radius:7px;padding:5px 26px 5px 9px;font-size:12px;color:var(--text-muted);cursor:pointer;font-family:inherit;transition:border-color .2s var(--ease),color .2s var(--ease)}select.lang:hover,select.theme:hover{border-color:var(--accent);color:var(--text)}select.lang:focus-visible,select.theme:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-1px}select.lang option,select.theme option{background:var(--surface);color:var(--text)}.divider{height:1px;background:var(--line-soft);margin:0;border:0}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--bg);padding:3px;border-radius:8px}.seg button{border:0;background:transparent;padding:6px 8px;border-radius:6px;font-family:inherit;font-size:12.5px;color:var(--text-muted);cursor:pointer;transition:all .2s var(--ease)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.num,[data-tabular]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;height:58px;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:28px;height:28px;border-radius:7px;background:var(--accent);display:grid;place-items:center;box-shadow:inset 0 0 0 2px #ffffff2e}.brand-mark:after{content:"";width:12px;height:12px;background:repeating-conic-gradient(#fff 0 25%,transparent 0 50%);background-size:6px 6px;border-radius:2px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.2px;white-space:nowrap}.steps{display:flex;gap:4px;margin:0 auto;background:var(--bg);padding:4px;border-radius:10px}.step-btn{display:flex;align-items:center;gap:7px;border:0;background:transparent;cursor:pointer;padding:8px 20px;border-radius:7px;font-family:inherit;font-size:13.5px;color:var(--text-muted);transition:background .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease)}.step-btn:hover{color:var(--text)}.step-btn.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--shadow-soft);position:relative}.step-btn.active:after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;background:var(--accent);border-radius:1px}.top-right{display:flex;align-items:center;gap:14px}.palette-tag{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted);white-space:nowrap}.palette-tag .dot{width:10px;height:10px;border-radius:3px;background:var(--accent)}.version-tag{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.app-footer{display:flex;justify-content:center;align-items:center;padding:12px 26px 16px;border-top:1px solid var(--line-soft);margin-top:auto}.stage{max-width:1920px;margin:0 auto;padding:16px 18px 32px;width:100%;flex:1}.step-panel{animation:step-in .4s var(--ease)}@keyframes step-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.section-title{font-family:var(--font-display);font-weight:700;font-size:17px;margin:0 0 4px}.section-sub{color:var(--text-muted);font-size:13px;margin:0 0 16px}.import-error{color:var(--danger);font-size:13px;margin-top:16px}.import-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}.param-group{padding:14px 16px;border-bottom:1px solid var(--line-soft)}.param-group:last-child{border-bottom:0}.param-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.param-label>span{font-size:12.5px;color:var(--text-muted)}.param-label b{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.field-label-with-help{display:inline-flex;align-items:center;gap:5px}.help-dot{position:relative;display:inline-grid;place-items:center;flex:none;width:16px;height:16px;border:1px solid rgba(23,101,106,.32);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;line-height:1;cursor:default;outline:none}.help-dot:after{position:absolute;left:calc(100% + 9px);top:50%;z-index:20;width:176px;padding:7px 9px;border:1px solid rgba(17,24,39,.12);border-radius:8px;background:#fffcf5fa;box-shadow:0 10px 24px #2c231424;color:var(--text);content:attr(data-tooltip);font-size:12px;font-weight:var(--weight-regular);line-height:1.45;opacity:0;pointer-events:none;text-align:left;transform:translate(-4px,-50%);transition:opacity .12s ease,transform .12s ease}.help-dot:before{position:absolute;left:calc(100% + 5px);top:50%;z-index:21;width:8px;height:8px;border-left:1px solid rgba(17,24,39,.12);border-bottom:1px solid rgba(17,24,39,.12);background:#fffcf5fa;content:"";opacity:0;pointer-events:none;transform:translate(-4px,-50%) rotate(45deg);transition:opacity .12s ease,transform .12s ease}.help-dot:hover:after,.help-dot:hover:before,.help-dot:focus-visible:after,.help-dot:focus-visible:before{opacity:1;transform:translateY(-50%)}.help-dot:focus-visible{box-shadow:0 0 0 3px #17656a1f}.image-preview{padding:16px}.image-preview img{width:100%;border-radius:8px;display:block}.image-preview.reupload{position:relative;cursor:pointer;border-radius:8px}.image-preview.reupload img{transition:opacity .15s ease}.image-preview.reupload:hover img,.image-preview.reupload:focus-visible img{opacity:.5}.reupload-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:6px 12px;border-radius:999px;background:#1d2926d1;color:#fffdf7;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}.image-preview.reupload:hover .reupload-hint,.image-preview.reupload:focus-visible .reupload-hint{opacity:1}.image-preview.reupload:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.image-preview.reupload:hover .empty-preview,.image-preview.reupload:focus-visible .empty-preview{border-color:var(--accent);color:var(--accent)}.empty-preview{min-height:120px;display:grid;place-items:center;color:var(--text-muted);font-size:13px;border:1px dashed var(--line);border-radius:8px}.preview-stage{position:relative;display:grid;place-items:center;min-height:520px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.preview-stage .checker{--s: 10px;background-image:linear-gradient(45deg,rgba(214,211,204,.28) 25%,transparent 25%),linear-gradient(-45deg,rgba(214,211,204,.28) 25%,transparent 25%),#fffdf8;background-size:var(--s) var(--s);position:absolute;inset:0}.beads-grid{position:relative;display:grid;grid-template-columns:repeat(var(--bead-cols, 16),20px);grid-template-rows:auto;gap:1px;filter:drop-shadow(0 8px 18px rgba(43,34,22,.22))}.beads-grid .bead{width:20px;height:20px;border-radius:999px;box-shadow:0 0 0 .5px #11182714}.preview-badge{position:absolute;top:14px;left:14px;background:#191c20b8;color:#fff;font-family:var(--font-mono);font-size:11px;padding:5px 10px;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3}.preview-badge-status{left:auto;right:14px}.cta-row{display:flex;justify-content:flex-end;margin-top:18px;gap:10px}.preview-grid{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}.print-stage{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);min-height:600px;display:grid;place-items:center;padding:40px}.paper{background:#fff;padding:28px;border-radius:3px;box-shadow:0 20px 50px #2b22162e;max-width:100%;overflow:auto}.paper-title{text-align:center;font-family:var(--font-display);font-weight:700;font-size:15px;margin-bottom:16px;color:#222}.paper-canvas-host canvas{display:block;max-width:100%;height:auto}.stat-row{display:flex;gap:10px}.stat{flex:1;background:var(--panel);border-radius:8px;padding:12px}.stat b{display:block;font-family:var(--font-mono);font-size:20px;font-variant-numeric:tabular-nums}.stat span{font-size:11.5px;color:var(--text-muted)}.usage-table{width:100%;border-collapse:collapse;font-size:12.5px}.usage-table th{text-align:left;color:var(--text-muted);font-weight:500;font-size:11.5px;padding:8px 10px;border-bottom:1px solid var(--line)}.usage-table td{padding:9px 10px;border-bottom:1px solid var(--line-soft)}.usage-table tr:last-child td{border-bottom:0}.usage-table .num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.switch-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text);cursor:pointer}.editor{display:grid;grid-template-columns:48px 1fr 268px;gap:12px;align-items:start}.tool-dock{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:var(--shadow-soft);position:sticky;top:74px}.tool-btn{width:38px;height:38px;border:0;background:transparent;border-radius:8px;cursor:pointer;font-size:18px;display:grid;place-items:center;transition:all .2s var(--ease);position:relative}.tool-btn:hover{background:var(--bg)}.tool-btn.on{background:var(--accent-soft);color:var(--accent)}.tool-btn.on:after{content:"";position:absolute;left:-7px;width:3px;height:20px;background:var(--accent);border-radius:2px}.tool-sep{height:1px;background:var(--line-soft);margin:4px 3px}.tool-popover{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:var(--shadow-pop);width:220px;z-index:60}.tool-popover-title{font-family:var(--font-display);font-weight:700;font-size:13px;margin-bottom:4px}.tool-popover-hint{color:var(--text-muted);font-size:11.5px;line-height:1.4;margin-bottom:8px}.tool-option-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text);margin-top:6px}.tool-option-row input[type=range]{flex:1;min-width:0}.tool-option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.tool-opt-chip{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 6px;font-family:inherit;font-size:12px;color:var(--text);cursor:pointer;transition:all .15s var(--ease)}.tool-opt-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.canvas-wrap{position:relative;width:100%;max-height:850px;min-width:0;min-height:280px;margin-inline:auto;display:grid;place-items:center;overflow:hidden}.canvas-wrap .workspace{position:relative;min-width:0;min-height:0;width:100%;height:100%;background:linear-gradient(180deg,#f0ede6,#e7e3da)}.canvas-wrap canvas{position:relative}.workspace .zoom-controls{position:absolute;right:12px;bottom:12px;z-index:4;display:flex;align-items:center;gap:2px;padding:3px;background:#191c20b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;box-shadow:0 4px 14px #11182733}.zoom-controls button{border:0;background:transparent;min-width:28px;height:28px;padding:0 9px;border-radius:999px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;color:#ffffffd9;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.zoom-controls button:hover{background:#ffffff2e;color:#fff}.zoom-controls button:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:-2px}.zoom-controls span{min-width:42px;padding:0 4px;font-family:var(--font-mono);font-size:11px;color:#ffffffeb;text-align:center;-webkit-user-select:none;user-select:none}.zoom-controls button.fit{font-size:12px;font-weight:500;margin-left:2px}.editor-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;margin-bottom:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.editor-toolbar .btn{padding:6px 10px;font-size:12px}.editor-toolbar select.theme{font-size:11.5px}.ref-float{position:absolute;top:14px;left:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-soft);font-size:12px;color:var(--text-muted);z-index:30;min-width:208px}.ref-float-thumb{width:34px;height:34px;border-radius:5px;object-fit:cover}.ref-opacity{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text);cursor:pointer}.ref-opacity input{width:110px}.ref-close{border:0;background:transparent;cursor:pointer;color:var(--text-muted);font-size:13px}.right-col{display:flex;flex-direction:column;gap:16px;position:sticky;top:74px}.tool-hint{background:var(--accent-soft);border:1px solid var(--line-soft);border-radius:var(--radius);padding:12px 14px;font-size:12.5px;color:var(--accent);line-height:1.5}.tabs{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);border-radius:8px;padding:3px;border-bottom:1px solid var(--line-soft)}.tabs button{border:0;background:transparent;padding:7px 4px;border-radius:6px;font-family:inherit;font-size:12px;color:var(--text-muted);cursor:pointer;transition:all .2s var(--ease)}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.swatch{aspect-ratio:1;border-radius:5px;cursor:pointer;border:2px solid transparent;transition:transform .15s var(--ease),border-color .15s var(--ease)}.swatch:hover{transform:scale(1.12)}.swatch.on{border-color:var(--accent);transform:scale(1.12)}.palette-mode-row{display:flex;gap:4px;margin-bottom:8px}.palette-mode-btn{flex:1;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 6px;font-family:inherit;font-size:11px;color:var(--text-muted);cursor:pointer}.palette-mode-btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.selected-color-info{margin-top:8px;font-size:11.5px;color:var(--text-muted)}.layer-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;background:var(--panel);font-size:12.5px;margin-bottom:6px;cursor:pointer}.layer-row.active{background:var(--accent-soft)}.layer-row .eye{opacity:.6}.layer-row .count-badge{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.adjust-hint{color:var(--text-muted);font-size:11.5px;margin:0 0 8px}.three-preview-card{padding:10px}.three-preview-placeholder{min-height:150px;background:var(--panel);border-radius:6px}.three-preview{position:relative;height:clamp(140px,18dvh,170px);min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 50% 72%,rgba(255,248,225,.07),transparent 46%),linear-gradient(180deg,#171817,#242422 62%,#2b2926)}.three-preview canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.three-preview canvas:active{cursor:grabbing}.three-preview-empty{position:absolute;inset:0;z-index:1;display:grid;place-items:center;align-content:center;gap:10px;padding:18px;color:#f7f2e8b8;text-align:center;pointer-events:none}.three-preview-empty-icon{display:grid;grid-template-columns:repeat(2,12px);gap:5px;opacity:.72}.three-preview-empty-icon span{width:12px;height:12px;border-radius:999px;background:#f7f2e838;box-shadow:inset 0 0 0 1px #f7f2e833}.three-preview-empty-icon span:nth-child(2){background:#17656a80}.three-preview-empty-icon span:nth-child(3){background:#ffcd4f85}.three-preview-empty p{max-width:140px;margin:0;font-size:11.5px;line-height:1.5}.preview-expand-button{position:absolute;right:8px;bottom:8px;z-index:1;display:grid;place-items:center;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;border-color:#11182729;border-radius:8px;background:#fffdf7e6;color:var(--accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 14px #271f141f}.preview-expand-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.three-preview-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:28px;background:#16181d7a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.three-preview-modal-panel{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1120px,calc(100vw - 56px));height:min(780px,calc(100vh - 56px));overflow:hidden;border:1px solid rgba(255,255,255,.38);border-radius:14px;background:radial-gradient(circle at 50% 72%,rgba(255,248,225,.07),transparent 46%),linear-gradient(180deg,#171817,#242422 62%,#2b2926);box-shadow:var(--shadow-pop)}.three-preview-modal-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.14);background:#090c12e6;color:#f7f2e8}.three-preview-modal-bar strong{font-size:13px;font-weight:600}.three-preview-modal-bar button{min-height:32px}.three-preview-modal-stage{position:relative;min-width:0;min-height:0}.three-preview-modal-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.three-preview-modal-stage canvas:active{cursor:grabbing}.tool-btn svg,.layer-eye svg,.layer-actions svg,.layer-drag-handle svg,.layer-rename-button svg,.tool-opt-chip svg,.usage-note-eye svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.tool-btn svg{width:20px;height:20px}.tool-opt-chip{display:flex;align-items:center;justify-content:center;gap:4px}.recent-colors-field{margin-bottom:8px}.recent-colors-field>span{font-size:11.5px;color:var(--text-muted);display:block;margin-bottom:4px}.recent-color-row{display:flex;gap:4px;flex-wrap:wrap}.recent-color-row button{width:22px;height:22px;border-radius:5px;border:2px solid transparent;padding:0;cursor:pointer}.recent-color-row button span{display:block;width:100%;height:100%;border-radius:3px}.recent-color-row button.active{border-color:var(--accent)}.palette-filter{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.palette-filter button{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:3px 8px;font-family:inherit;font-size:11px;color:var(--text-muted);cursor:pointer}.palette-filter button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.view-row{display:flex;gap:6px;margin-bottom:6px}.view-row button{flex:1;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 6px;font-family:inherit;font-size:12px;color:var(--text-muted);cursor:pointer}.view-row button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.view-toggle .switch-row{padding:4px 0}.layers-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.layers-header .btn{flex:1}.layer-solo-toggle{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 8px;font-family:inherit;font-size:11.5px;color:var(--text-muted);cursor:pointer}.layer-solo-toggle.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.layer-solo-toggle svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.layer-drag-handle{border:0;background:transparent;cursor:grab;color:var(--text-muted);display:grid;place-items:center;padding:0}.layer-eye{border:0;background:transparent;cursor:pointer;color:var(--text);display:grid;place-items:center;padding:0}.layer-title{display:flex;align-items:center;gap:6px;flex:1;min-width:0;cursor:pointer}.layer-title strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-rename-button{border:0;background:transparent;cursor:pointer;color:var(--text-muted);display:grid;place-items:center;padding:0}.layer-rename-button svg{width:13px;height:13px}.layer-name-editor{flex:1;min-width:0}.layer-name-editor input{width:100%;font-family:inherit;font-size:12.5px;padding:3px 6px;border:1px solid var(--accent);border-radius:5px;background:var(--surface);color:var(--text)}.layer-actions{display:flex;gap:2px}.mini-icon-toggle{border:0;background:transparent;cursor:pointer;color:var(--text-muted);display:grid;place-items:center;padding:3px;border-radius:4px}.mini-icon-toggle:hover{background:var(--bg)}.mini-icon-toggle.active{color:var(--accent)}.mini-icon-toggle.danger:hover{color:var(--danger)}.mini-icon-toggle svg{width:15px;height:15px}.usage-notes{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-muted)}.usage-note-eye{border:0;background:transparent;cursor:pointer;color:var(--text-muted);display:grid;place-items:center;padding:3px}.usage-note-eye.active{color:var(--accent)}.adjustment-effect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.adjustment-tool-card{border:1px solid var(--line-soft);border-radius:8px;padding:10px}.adjustment-tool-heading{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;margin-bottom:6px}.adjustment-tool-heading b{font-family:var(--font-mono);color:var(--accent)}.adjustment-tool-card input[type=range]{width:100%;accent-color:var(--accent)}.adjustment-tool-card .btn{width:100%;margin-top:6px}.status-pill{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-align:center;padding:6px}.notice-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:12.5px;color:var(--text);box-shadow:var(--shadow-pop);z-index:100}.refresh-preview{position:absolute;top:14px;right:14px}.import-hint{margin:8px 0 0;padding:8px 10px;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);font-size:12px;line-height:1.5}.input-num{width:64px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:12px}.input-num:focus{outline:none;border-color:var(--accent)}.size-times{color:var(--text-muted);font-size:12px}.tool-dock .tool-btn{position:relative}.tool-kbd{position:absolute;right:1px;bottom:1px;padding:0 3px;border-radius:4px;background:var(--line-soft);color:var(--text-muted);font-family:var(--font-mono);font-size:9px;line-height:12px;pointer-events:none}.brush-preview{display:flex;align-items:center;justify-content:center;height:44px;margin:6px 0;border-radius:var(--radius);background:var(--accent-soft)}.brush-preview span{display:block;border-radius:999px;background:var(--accent)}.brush-preview .brush-preview-dot{width:10px;height:10px}.clipboard-card{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}.clipboard-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.clipboard-card-head strong{font-size:12px}.clipboard-card-head .num{display:block;color:var(--text-muted);font-family:var(--font-mono);font-size:11px}.clipboard-reset{padding:4px 10px;font-size:11px}.clipboard-preview{display:grid;gap:1px;margin-top:8px;padding:8px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}.clipboard-preview span{border-radius:2px}.clipboard-empty{margin-top:8px;padding:14px 10px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--text-muted);font-size:11px;text-align:center}.hover-cell-field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding:8px 10px;border-radius:var(--radius);background:var(--accent-soft);font-size:12px}.hover-cell-field .num{color:var(--accent)}.hover-cell-empty{color:var(--text-muted);font-size:11px}.checkline{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);cursor:pointer}.checkline input{margin:0;accent-color:var(--accent)}.layer-count{flex-shrink:0}.usage-pack-setting{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font-size:12px}.usage-pack-control{display:flex;align-items:center;gap:6px}.usage-pack-stepper{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.usage-pack-stepper button{width:24px;height:26px;border:none;background:transparent;color:var(--text);font-size:14px;cursor:pointer}.usage-pack-stepper button:hover{background:var(--accent-soft)}.usage-pack-stepper input{width:58px;border:none;background:transparent;color:var(--text);font-family:var(--font-mono);font-size:12px;text-align:center}.usage-pack-stepper input:focus{outline:none}.usage-summary-card{margin-top:10px;padding:10px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}.usage-summary-head{display:flex;align-items:baseline;justify-content:space-between}.usage-summary-head strong{font-size:12px}.usage-summary-head span{color:var(--text-muted);font-size:11px}.usage-layer-actions{display:flex;gap:6px;margin-top:8px}.usage-layer-actions button{flex:1;padding:5px 0;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer}.usage-layer-actions button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.usage-layer-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.usage-layer-chips button{padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text-muted);font-size:10px;cursor:pointer}.usage-layer-chips button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.usage-no-layers{margin-top:8px;color:var(--text-muted);font-size:11px}.ref-show{position:absolute;top:14px;right:14px;z-index:30}.ref-float-head{display:flex;align-items:center;gap:8px}.ref-float-head span{flex:1;font-size:11px}.ref-controls{display:flex;flex-direction:column;gap:8px}.adjust-layer-name{margin:0 0 8px;color:var(--text-muted);font-size:11px}.adjust-tool-hint{display:block;margin:2px 0 6px;color:var(--text-muted);font-size:10px;line-height:1.4}@media(max-width:1320px){.editor{grid-template-columns:48px 1fr 248px}.preview-grid{grid-template-columns:1fr 280px}.import-layout{grid-template-columns:280px 1fr}}@media(max-width:980px){.stage{padding:12px 12px 96px}.topbar{position:static;flex-wrap:wrap;height:auto;min-height:58px;padding:8px 14px;gap:8px}.topbar .steps{order:2;flex:1 1 100%;margin:0}.topbar .top-right{order:1;flex-wrap:wrap;gap:8px}.editor{grid-template-columns:1fr;gap:12px;padding:12px;min-width:0}.editor>*{min-width:0}.canvas-wrap{width:100%}.tool-dock{position:fixed;inset:auto 14px 14px;transform:none;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:center;gap:4px;padding:6px;z-index:40}.tool-dock>div{display:flex;align-items:center;gap:2px}.right-col{position:static}.preview-grid,.import-layout{grid-template-columns:1fr;padding:12px}}
