:root,[data-theme=classic]{--bg: #f3f4f6;--surface: #ffffff;--ink: #14181f;--ink-2: #5c6472;--muted: #9aa2b0;--line: #eceef1;--line-strong: #dcdfe5;--track: #eff0f3;--hover-bg: #eef0f3;--accent: #2f7dff;--accent-strong: #1f66e0;--accent-soft: #eef4ff;--on-accent: #ffffff;--etsy: #e8783f;--etsy-hover: #d96a33;--on-etsy: #ffffff;--danger: #f04444;--scrollbar: #d8dbe1;--r-card: 16px;--r-ctl: 10px;--r-chip: 8px;--shadow-card: 0 1px 2px rgba(var(--ink-rgb), .04), 0 10px 32px rgba(var(--ink-rgb), .07);--shadow-pop: 0 4px 12px rgba(var(--ink-rgb), .08), 0 18px 48px rgba(var(--ink-rgb), .14);--shadow-sm: 0 1px 3px rgba(var(--ink-rgb), .1);--ink-rgb: 20, 24, 31;--accent-rgb: 47, 125, 255;--etsy-rgb: 232, 120, 63}[data-theme=midnight]{--bg: #1a1625;--surface: #241f33;--ink: #f0ecf7;--ink-2: #b8adc8;--muted: #8a7fa0;--line: #352e47;--line-strong: #4a3f63;--track: #2d2740;--hover-bg: #352e47;--accent: #c77dff;--accent-strong: #b066f0;--accent-soft: #3a2a52;--on-accent: #1a1625;--etsy: #ff6b9d;--etsy-hover: #f55589;--on-etsy: #ffffff;--danger: #ff5c7a;--scrollbar: #4a3f63;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 32px rgba(0, 0, 0, .4);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .55);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--ink-rgb: 240, 236, 247;--accent-rgb: 199, 125, 255;--etsy-rgb: 255, 107, 157}[data-theme=emerald]{--bg: #0f1a14;--surface: #16261d;--ink: #e8f5ee;--ink-2: #a8c9b8;--muted: #7a9c8a;--line: #1f3328;--line-strong: #2d4a38;--track: #1a2c22;--hover-bg: #1f3328;--accent: #34d399;--accent-strong: #22c58a;--accent-soft: #14352a;--on-accent: #0f1a14;--etsy: #fbbf24;--etsy-hover: #f59e0b;--on-etsy: #1a1a1a;--danger: #f87171;--scrollbar: #2d4a38;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 32px rgba(0, 0, 0, .4);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .55);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--ink-rgb: 232, 245, 238;--accent-rgb: 52, 211, 153;--etsy-rgb: 251, 191, 36}[data-theme=rose]{--bg: #faf5f3;--surface: #ffffff;--ink: #2d1f24;--ink-2: #7a5c63;--muted: #a8909a;--line: #f0e6e4;--line-strong: #e0d0ce;--track: #f7eeec;--hover-bg: #f3e8e5;--accent: #e8798a;--accent-strong: #d65f72;--accent-soft: #fbeef0;--on-accent: #ffffff;--etsy: #d4a574;--etsy-hover: #c08f5e;--on-etsy: #2d1f24;--danger: #e0556b;--scrollbar: #e0d0ce;--shadow-card: 0 1px 2px rgba(45, 31, 36, .04), 0 10px 32px rgba(45, 31, 36, .07);--shadow-pop: 0 4px 12px rgba(45, 31, 36, .08), 0 18px 48px rgba(45, 31, 36, .14);--shadow-sm: 0 1px 3px rgba(45, 31, 36, .1);--ink-rgb: 45, 31, 36;--accent-rgb: 232, 121, 138;--etsy-rgb: 212, 165, 116}[data-theme=ocean]{--bg: #0a1628;--surface: #112240;--ink: #e6f1ff;--ink-2: #a8c5e0;--muted: #6d8ca8;--line: #1d3557;--line-strong: #2a4a6b;--track: #152843;--hover-bg: #1d3557;--accent: #38bdf8;--accent-strong: #0ea5e9;--accent-soft: #123a52;--on-accent: #0a1628;--etsy: #f97316;--etsy-hover: #ea580c;--on-etsy: #ffffff;--danger: #fb7185;--scrollbar: #2a4a6b;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 32px rgba(0, 0, 0, .4);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .55);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--ink-rgb: 230, 241, 255;--accent-rgb: 56, 189, 248;--etsy-rgb: 249, 115, 22}[data-theme=sunset]{--bg: #1c1814;--surface: #272019;--ink: #fdf6ec;--ink-2: #d4b896;--muted: #9c7f5e;--line: #3a2e22;--line-strong: #52402f;--track: #2f261d;--hover-bg: #3a2e22;--accent: #fb923c;--accent-strong: #f97316;--accent-soft: #3d2a1a;--on-accent: #1c1814;--etsy: #f43f5e;--etsy-hover: #e11d48;--on-etsy: #ffffff;--danger: #f43f5e;--scrollbar: #52402f;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 32px rgba(0, 0, 0, .4);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .55);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--ink-rgb: 253, 246, 236;--accent-rgb: 251, 146, 60;--etsy-rgb: 244, 63, 94}[data-theme=aurora]{--bg: #0d1117;--surface: #161b22;--ink: #e6edf3;--ink-2: #9ca7b4;--muted: #6e7681;--line: #21262d;--line-strong: #30363d;--track: #161b22;--hover-bg: #21262d;--accent: #7c3aed;--accent-strong: #6d28d9;--accent-soft: #1e1b4b;--on-accent: #ffffff;--etsy: #10b981;--etsy-hover: #059669;--on-etsy: #ffffff;--danger: #f43f5e;--scrollbar: #30363d;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 32px rgba(0, 0, 0, .5);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .5), 0 18px 48px rgba(0, 0, 0, .6);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--ink-rgb: 230, 237, 243;--accent-rgb: 124, 58, 237;--etsy-rgb: 16, 185, 129}[data-theme=mono]{--bg: #f5f5f5;--surface: #ffffff;--ink: #1a1a1a;--ink-2: #525252;--muted: #8a8a8a;--line: #e8e8e8;--line-strong: #d4d4d4;--track: #eeeeee;--hover-bg: #f0f0f0;--accent: #1a1a1a;--accent-strong: #000000;--accent-soft: #f0f0f0;--on-accent: #ffffff;--etsy: #1a1a1a;--etsy-hover: #000000;--on-etsy: #ffffff;--danger: #dc2626;--scrollbar: #d4d4d4;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 10px 32px rgba(0, 0, 0, .06);--shadow-pop: 0 4px 12px rgba(0, 0, 0, .08), 0 18px 48px rgba(0, 0, 0, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--ink-rgb: 26, 26, 26;--accent-rgb: 26, 26, 26;--etsy-rgb: 26, 26, 26}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}::selection{background:rgba(var(--accent-rgb),.18)}.topbar{position:sticky;top:0;z-index:100;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1480px;margin:0 auto;padding:10px 22px;display:grid;grid-template-columns:minmax(0,1fr) 472px;gap:24px;align-items:center}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.topbar-left .tabs{flex:1}.help-btn{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--accent);cursor:pointer;box-shadow:var(--shadow-sm);transition:color .16s,border-color .16s,transform .16s;position:relative}.help-btn:hover{color:var(--accent-strong);border-color:var(--accent);transform:translateY(-1px)}.help-btn:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid rgba(var(--accent-rgb),.45);animation:helpPulse 2.2s ease-out infinite;pointer-events:none}@keyframes helpPulse{0%{transform:scale(.9);opacity:.8}70%{transform:scale(1.25);opacity:0}to{transform:scale(1.25);opacity:0}}.brand{display:inline-flex;justify-self:end;align-items:center;gap:12px;min-width:0;height:44px;text-decoration:none}.brand-name{font-size:22px;font-weight:800;font-style:italic;letter-spacing:.5px;white-space:nowrap;background:linear-gradient(90deg,#ff4fb8,#c456ff 48%,#4f8bff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 4px rgba(255,79,184,.65)) drop-shadow(0 0 10px rgba(170,80,255,.5)) drop-shadow(0 0 20px rgba(79,139,255,.35));transition:filter .16s}.brand:hover .brand-name{filter:drop-shadow(0 0 6px rgba(255,79,184,.9)) drop-shadow(0 0 14px rgba(170,80,255,.75)) drop-shadow(0 0 26px rgba(79,139,255,.55))}.brand-logo{display:block;height:44px;width:44px;border-radius:10px;object-fit:cover;box-shadow:0 0 10px #aa50ff59;transition:transform .16s}.brand:hover .brand-logo{transform:scale(1.05)}.tabs{display:flex;gap:3px;background:var(--track);padding:4px;border-radius:12px;overflow:hidden;min-width:0}.tabs.locked{opacity:.5}.tabs.locked .tab{cursor:not-allowed}.locked-hint{position:fixed;top:68px;left:50%;transform:translate(-50%,-6px);background:#141821eb;color:#fff;font-size:13px;font-weight:600;letter-spacing:.01em;padding:10px 18px;border-radius:10px;box-shadow:0 10px 28px #00000047;z-index:9999;max-width:82vw;text-align:center;pointer-events:none;opacity:0;transition:opacity .18s ease,transform .18s ease}.locked-hint.show{opacity:1;transform:translate(-50%)}.tab{flex:1 1 0;min-width:0;border:none;background:transparent;color:var(--ink-2);padding:8px 6px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .16s,color .16s,box-shadow .16s;display:inline-flex;align-items:center;justify-content:center;gap:5px}.tab:hover{color:var(--ink)}.tab.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(var(--ink-rgb),.1),0 0 0 1px rgba(var(--ink-rgb),.04)}.tab-upload{color:var(--accent);font-weight:600}.tab-upload svg{flex:none}.tab-user{color:var(--ink)}.tab-user .tab-close{display:none;margin-left:2px;font-size:11px;opacity:.6}.tab-user:hover .tab-close,.tab-user.active .tab-close{display:inline}.layout{display:grid;grid-template-columns:minmax(0,1fr) 472px;gap:24px;padding:24px 22px 40px;max-width:1480px;margin:0 auto;align-items:start}.canvas-wrap{position:relative}.canvas{position:relative;width:100%;aspect-ratio:4 / 3;background:#0e1014;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card),0 0 0 1px rgba(var(--ink-rgb),.08);-webkit-user-select:none;user-select:none;touch-action:none}.bg-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat}.canvas-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0e1014;color:#ffffffd1;font-size:13px;letter-spacing:.4px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility .4s ease}.canvas-veil.show{opacity:1;visibility:visible;pointer-events:auto}.veil-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:#fff;animation:veilspin .8s linear infinite}@keyframes veilspin{to{transform:rotate(360deg)}}.elements-layer,.selection-layer,.ruler-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.elements-layer{z-index:1}.selection-layer{z-index:2}.ruler-layer{z-index:3}.elements-layer>*{pointer-events:auto}.selection-layer>*{pointer-events:none}.neon-el{position:absolute;transform-origin:0 0;cursor:move;white-space:nowrap;line-height:1}.neon-el .inner{display:inline-block;font-weight:400}.neon-text .inner.text-box{position:relative;overflow:visible}.neon-text svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none}.neon-text text.core{fill:#fff}.neon-text text.tg{fill:var(--neon)}.neon-text text.tg.tg1{fill:#fff;filter:blur(calc(1.5px * var(--glow, 1)))}.neon-text text.tg.tg2{filter:blur(calc(4px * var(--glow, 1)))}.neon-text text.tg.tg3{filter:blur(calc(8px * var(--glow, 1)))}.neon-text text.tg.tg4{filter:blur(calc(15px * var(--glow, 1)))}.neon-text text.tg.tg5{filter:blur(calc(28px * var(--glow, 1)))}.neon-icon .inner{color:var(--neon);filter:drop-shadow(0 0 calc(3px * var(--glow, 1)) var(--neon)) drop-shadow(0 0 calc(8px * var(--glow, 1)) var(--neon)) drop-shadow(0 0 calc(16px * var(--glow, 1)) var(--neon));display:inline-block}.neon-icon .inner svg{display:block;width:100%;height:100%}.neon-icon .inner img,.neon-icon .inner canvas{display:block;width:100%;height:100%;object-fit:contain}.hint{position:absolute;left:16px;bottom:16px;color:#ffffffeb;font-size:12.5px;line-height:1.45;background:#0e101485;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);padding:10px 14px;border-radius:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:62%}.ruler-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;cursor:pointer;white-space:nowrap}.canvas-auto{position:absolute;left:16px;bottom:16px;z-index:30;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;background:#0e10148c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);color:#fffffff0;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.canvas-auto[hidden]{display:none}.canvas-auto input{cursor:pointer;accent-color:var(--accent)}.canvas-multi{position:absolute;right:16px;bottom:16px;z-index:30;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;background:#0e10148c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);color:#fffffff0;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.canvas-multi input{cursor:pointer;accent-color:var(--accent)}.canvas-multi[hidden]{display:none}.flip-tool{position:absolute;z-index:6;display:flex;flex-direction:column;gap:6px;width:28px;height:96px;pointer-events:none}.flip-ico{position:relative;flex:1;width:100%;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:#0e10148c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fffffff0;cursor:pointer;pointer-events:auto;transition:background .15s,color .15s,border-color .15s}.flip-ico svg{width:15px;height:15px;flex:none}.flip-ico:hover{background:#ffffff2e}.flip-ico:active{background:#ffffff42}.flip-ico.active{background:rgba(var(--accent-rgb),.85);border-color:#ffffff8c;color:#fff}.flip-tip{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:5px 9px;border-radius:7px;background:#0e1014eb;border:1px solid rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .14s;z-index:10;box-shadow:0 2px 8px #00000059}.flip-tool.tip-right .flip-tip{right:auto;left:calc(100% + 8px)}.flip-ico:hover .flip-tip,.flip-ico:focus-visible .flip-tip{opacity:1}.preview-locked [data-id^=preview-]{pointer-events:none;cursor:default}.canvas-multi:has(input:checked){border-color:#7c8bffcc;box-shadow:0 0 10px #7c8bff59;color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:28px;background:#0a0c1075;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-overlay[hidden]{display:none}.modal-card{background:var(--surface);width:100%;max-width:580px;max-height:84vh;display:flex;flex-direction:column;border-radius:18px;box-shadow:var(--shadow-pop);overflow:hidden;animation:modalIn .18s ease}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.modal-grip{display:none}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 10px}.modal-head h2{font-size:18px;font-weight:700}.modal-close{flex:none;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--track);color:var(--ink-2);cursor:pointer;transition:background .16s,color .16s}.modal-close:hover{background:var(--line-strong);color:var(--ink)}.modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 22px 22px}.help-list{list-style:none;display:flex;flex-direction:column;gap:14px}.help-list h3{font-size:14.5px;font-weight:700;margin-bottom:3px}.help-list p{font-size:13.5px;line-height:1.65;color:var(--ink-2)}.help-list b{color:var(--ink);font-weight:600}.help-list kbd{display:inline-block;font-family:inherit;font-size:11.5px;line-height:1;padding:3px 6px;border-radius:6px;background:#fff;border:1px solid var(--line-strong);border-bottom-width:2px;color:var(--ink)}.help-note{margin-top:16px;font-size:12.5px;line-height:1.6;color:var(--ink-2);background:var(--track);border-radius:10px;padding:10px 12px}.help-example{margin-top:18px;border:1px solid var(--line-strong);border-radius:12px;padding:14px 16px;background:var(--track)}.help-example h3{font-size:14px;font-weight:700;margin-bottom:8px}.ex-steps{margin:0;padding-left:20px;font-size:13px;line-height:1.65;color:var(--ink-2)}.ex-steps li{margin-bottom:4px}.ex-steps b{color:var(--ink);font-weight:600}.help-fig{background:#0e1014;border-radius:10px;margin:8px 0 6px}.help-fig-canvas{height:92px;display:flex;align-items:center;justify-content:center}.hf-box{position:relative;width:128px;height:52px;border:1.5px dashed rgba(255,255,255,.55);border-radius:6px}.hf-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 6px #ffffffd9}.hf-dot.nw{left:-4px;top:-4px}.hf-dot.ne{right:-4px;top:-4px}.hf-dot.sw{left:-4px;bottom:-4px}.hf-dot.se{right:-4px;bottom:-4px}.hf-knob{position:absolute;left:50%;top:-14px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#7c8bff;box-shadow:0 0 6px #7c8bffe6}.hf-knob:after{content:"";position:absolute;left:50%;top:7px;width:1.5px;height:8px;margin-left:-.75px;background:#7c8bffcc}.help-fig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.help-fig-grid span{height:26px;border-radius:6px;background:linear-gradient(90deg,#ff4fb859,#4f8bff59);border:1px solid rgba(255,255,255,.25)}@media (max-width: 560px){.modal-overlay{align-items:flex-end;padding:0}.modal-card{max-width:100%;max-height:86vh;border-radius:20px 20px 0 0;animation:sheetIn .22s ease}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:none}}.modal-grip{display:block;width:40px;height:4px;border-radius:2px;background:var(--line-strong);margin:8px auto 0;flex:none}.modal-head{padding:10px 18px 8px}.modal-body{padding:2px 18px 20px}}.sel-box{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}.sel-frame{position:absolute;left:0;top:0;box-sizing:border-box;border:1.5px solid var(--accent)}.sel-stem{position:absolute;background:var(--accent);pointer-events:none}.handle{position:absolute;width:11px;height:11px;background:#fff;border:2px solid var(--accent);border-radius:3px;pointer-events:auto;box-shadow:0 1px 3px #00000059;transform-origin:center}.handle.nw,.handle.se{cursor:nwse-resize}.handle.ne,.handle.sw{cursor:nesw-resize}.handle.n,.handle.s{cursor:ns-resize}.handle.w,.handle.e{cursor:ew-resize}.handle.rot{border-radius:50%;background:#fff;cursor:grab}.handle.rot:active{cursor:grabbing}.handle.del{border-radius:50%;background:#e5484d;border:1.5px solid #fff;color:#fff;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;box-shadow:0 1px 4px #0006}.handle.del:hover{background:#d13438}.dim-line{position:absolute;background:var(--accent);pointer-events:none}.dim-h{height:1.5px}.dim-v{width:1.5px}.dim-arrow{position:absolute;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--accent);pointer-events:none}.dim-label{position:absolute;background:rgba(var(--accent-rgb),.92);color:var(--on-accent);font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 6px #00000040;letter-spacing:.2px}.sel-box.sel-group{border:1.5px dashed var(--accent);pointer-events:none;left:0;top:0;transform:none;border-radius:2px}.sel-box.sel-single{border:1.5px solid var(--accent);pointer-events:none;left:0;top:0;transform:none;border-radius:2px}.selection-box{position:absolute;border:1.5px solid var(--accent);background:rgba(var(--accent-rgb),.12);pointer-events:none;display:none}.panel{background:var(--surface);border-radius:var(--r-card);padding:22px;box-shadow:var(--shadow-card);border:1px solid rgba(var(--ink-rgb),.04);position:sticky;top:86px}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--track);padding:4px;border-radius:12px;margin-bottom:18px}.ptab{border:none;background:transparent;color:var(--ink-2);padding:9px 6px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:600;font-family:inherit;white-space:nowrap;transition:background .16s,color .16s,box-shadow .16s}.ptab:hover{color:var(--ink)}.ptab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(var(--ink-rgb),.1),0 0 0 1px rgba(var(--ink-rgb),.04)}.ptab-page.hidden{display:none}.panel-title{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:18px;line-height:1.5}.block{border-top:1px solid var(--line);padding:17px 0}.block:first-of-type{border-top:none;padding-top:0}.block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.block-label{font-size:13.5px;font-weight:600;color:var(--ink)}.block-actions{display:flex;gap:7px}.text-input,.select-btn{width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:14px;font-family:inherit;background:var(--surface);color:var(--ink);outline:none;transition:border-color .16s,box-shadow .16s}.text-input:focus,.select-btn:focus,.select-btn[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.16)}.text-input::placeholder{color:var(--muted)}.cur-font-name{font-size:13.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78px}.cur-color-name{font-weight:500;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis}.cur-color-dot{width:11px;height:11px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(var(--ink-rgb),.18)}.select-btn{text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.select-btn i{font-style:normal;color:var(--muted);font-size:12px}.dd{position:relative;display:inline-block}.block-actions .dd{display:inline-block}.block>.dd{display:block}.dd-trigger{border:1px solid transparent;background:var(--track);color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;padding:6px 9px;border-radius:var(--r-chip);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;transition:background .16s,color .16s,border-color .16s}.dd-trigger:hover{background:var(--hover-bg);color:var(--ink)}.dd-trigger i{font-style:normal;color:var(--muted);font-size:10px}.trig-tag{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.dd-panel{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop);z-index:200;min-width:260px;overflow:hidden}.dd-panel.open{display:block}.dd-head{padding:13px 16px 10px;font-size:13px;font-weight:600;color:var(--ink)}.font-panel{width:360px;max-width:calc(100vw - 32px);max-height:432px;overflow-y:auto;overflow-x:hidden;padding:0 12px 12px;display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.font-panel.open{display:grid}.font-panel .dd-head{grid-column:1 / -1;padding-left:4px;padding-right:4px}.font-cell{border:1px solid var(--line);border-radius:10px;padding:15px 6px;text-align:center;font-size:24px;cursor:pointer;color:var(--ink);background:var(--surface);position:relative;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;line-height:1;min-width:0;overflow:hidden;white-space:nowrap}.font-cell.font-pending{visibility:hidden}.font-cell:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px);overflow:visible;z-index:3}.font-cell.active{border-color:var(--ink);background:var(--ink);color:var(--surface)}.font-cell .fname{display:none;position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--surface);font-size:12px;font-weight:500;font-family:-apple-system,Segoe UI,sans-serif;padding:5px 10px;border-radius:6px;white-space:nowrap;z-index:5;box-shadow:var(--shadow-sm)}.font-cell:hover .fname{display:block}.font-panel .font-cell:nth-child(3n+2) .fname{left:0;transform:none}.font-panel .font-cell:nth-child(3n+1) .fname{left:auto;right:0;transform:none}.color-panel{width:264px;padding:0 14px 14px;overflow:visible}.color-grid .swatch:nth-child(4n+1) .cname{left:0;transform:none}.color-grid .swatch:nth-child(4n) .cname{left:auto;right:0;transform:none}.color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.swatch{aspect-ratio:1;border-radius:10px;cursor:pointer;position:relative;border:2px solid transparent;box-shadow:inset 0 0 0 1px rgba(var(--ink-rgb),.08);transition:transform .15s,box-shadow .15s}.swatch:hover{transform:scale(1.06)}.swatch.active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}.swatch .cname{display:none;position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--surface);font-size:12px;font-weight:500;padding:4px 9px;border-radius:6px;white-space:nowrap;z-index:2;box-shadow:var(--shadow-sm)}.swatch:hover .cname{display:block}.icon-panel{width:360px;max-width:calc(100vw - 32px);max-height:432px;overflow-y:auto;overflow-x:hidden;padding:0 12px 12px;display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.icon-panel.open{display:grid}.icon-panel .dd-head{grid-column:1 / -1;padding-left:4px;padding-right:4px}.icon-item{display:flex;flex-direction:column;gap:7px;cursor:pointer;min-width:0}.icon-thumb{aspect-ratio:1;border:1px solid var(--line);border-radius:10px;background:#161a21;display:flex;align-items:center;justify-content:center;padding:10px;color:#fff;filter:drop-shadow(0 0 2px var(--neon, #fff)) drop-shadow(0 0 6px var(--neon, #fff));transition:border-color .15s,box-shadow .15s,transform .15s;overflow:hidden}.icon-thumb svg{width:100%;height:100%;display:block}.icon-thumb img,.icon-thumb canvas{max-width:100%;max-height:100%;display:block}.icon-item:hover .icon-thumb{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.icon-item.active .icon-thumb{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.35)}.icon-name{font-size:12px;text-align:center;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-select-btn{display:flex;align-items:center;gap:10px}.icon-btn-thumb{display:none;width:30px;height:30px;flex:none;border-radius:7px;background:#161a21;padding:4px;color:#fff;filter:drop-shadow(0 0 2px var(--neon, #fff)) drop-shadow(0 0 5px var(--neon, #fff))}.select-btn.has-icon .icon-btn-thumb{display:flex;align-items:center;justify-content:center}.icon-btn-thumb svg{width:100%;height:100%;display:block}.icon-btn-thumb img,.icon-btn-thumb canvas{max-width:100%;max-height:100%;display:block}.icon-btn-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-select-btn i{margin-left:auto}.size-panel{width:280px;max-width:calc(100vw - 32px);padding:6px}.size-item{padding:10px 12px;cursor:pointer;border-radius:8px;font-size:13.5px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;transition:background .15s}.size-item:hover{background:var(--hover-bg)}.size-item.active{background:var(--accent-soft);font-weight:600;color:var(--accent)}.size-item .chk{opacity:0;transition:opacity .15s;color:var(--accent)}.size-item.active .chk{opacity:1}.dd-head.compare-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.compare-head .head-actions{display:flex;gap:6px;flex:none}.chip-btn{border:1px solid var(--border);background:var(--panel);color:var(--ink-2);padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.chip-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--surface)}.chip-btn-sm{padding:4px 10px;font-size:12px}.font-panel.inline{position:static;width:100%;max-width:none;max-height:none;overflow:visible;display:grid;margin-top:12px;padding:12px 10px 10px}#previewPanelHead.shake{color:var(--danger)}.line-del-btn{border:none;background:var(--track);color:var(--muted);cursor:pointer;font-size:13px;padding:3px 8px;border-radius:6px;margin-left:4px}.line-del-btn:hover{background:var(--danger-soft);color:var(--danger)}.line-group,.line-group .block{margin-bottom:0}@media (min-width: 480px){.line-group .block-head{flex-wrap:nowrap}.line-group .block-label{flex:none}.line-group .block-actions{flex-wrap:nowrap;min-width:0}.line-group .block-actions .dd{min-width:0}.line-group .cur-font-name,.line-group .cur-color-name{max-width:64px}}.preview-font-label{position:absolute;font-family:-apple-system,Segoe UI,Arial,sans-serif;font-size:12px;font-weight:600;color:#ffffffc7;letter-spacing:.3px;white-space:nowrap;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.8)}.line-composites{display:flex;flex-direction:column;gap:8px;margin-top:10px}.line-composite{background:var(--track);border:1px solid var(--line);border-radius:10px;padding:10px}.line-comp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.line-comp-title{font-size:13px;font-weight:700;color:var(--ink)}.line-comp-del{border:none;background:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px}.line-comp-del:hover{background:var(--danger-soft);color:var(--danger)}.line-comp-row{display:flex;gap:8px}.line-comp-row .dd{flex:1;min-width:0}.line-comp-colors{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.swatch.sm{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid rgba(255,255,255,.6);box-shadow:0 0 0 1px #00000026;transition:transform .12s,box-shadow .12s}.swatch.sm:hover{transform:scale(1.15)}.swatch.sm.active{box-shadow:0 0 0 2px var(--accent),0 0 0 4px #2f7dff40}.select-btn.sm{padding:7px 10px;font-size:12px}.font-panel.small{max-height:220px;overflow-y:auto}#createLineBtn{cursor:pointer}input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:var(--track);outline:none;margin:8px 0 2px;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 1px 4px rgba(var(--accent-rgb),.5);cursor:pointer;transition:transform .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 1px 4px rgba(var(--accent-rgb),.5);cursor:pointer}.summary-block{border-top:1px solid var(--line);padding-top:18px;margin-top:2px}.red-note{color:#e0413c;font-size:13px;font-weight:600;margin-bottom:10px}.summary{background:#f8f9fb;border:1px solid var(--line);border-radius:var(--r-ctl);padding:13px 14px;font-size:13px;line-height:1.7;color:var(--ink-2);margin-bottom:14px;white-space:pre-wrap;word-break:break-word}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.btn{border:none;border-radius:var(--r-ctl);padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .16s,box-shadow .16s,background .16s,opacity .16s}.btn:hover{opacity:1}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn.dark{background:var(--ink);color:var(--surface)}.btn.dark:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(var(--ink-rgb),.28)}.btn.orange{background:var(--etsy);color:var(--on-etsy)}.btn.orange:not(:disabled):hover{background:var(--etsy-hover);transform:translateY(-1px);box-shadow:0 8px 20px rgba(var(--etsy-rgb),.35)}.btn.full{width:100%}.font-panel::-webkit-scrollbar,.icon-panel::-webkit-scrollbar{width:8px}.font-panel::-webkit-scrollbar-thumb,.icon-panel::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:8px;border:2px solid var(--surface)}.theme-dd{position:relative}.theme-panel{position:fixed;z-index:200;width:300px;max-height:420px;overflow-y:auto;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);display:none}.theme-panel.open{display:block}.theme-panel .dd-head{font-size:13px;font-weight:700;color:var(--ink);padding:4px 4px 10px;margin-bottom:6px;border-bottom:1px solid var(--line)}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.theme-card{display:flex;flex-direction:column;gap:6px;padding:8px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;background:var(--surface);transition:border-color .15s,transform .15s,box-shadow .15s}.theme-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.2)}.theme-swatch{display:flex;height:28px;border-radius:6px;overflow:hidden;border:1px solid rgba(var(--ink-rgb),.1)}.theme-swatch span{flex:1}.theme-name{font-size:12px;font-weight:600;color:var(--ink);text-align:center;white-space:nowrap}.theme-card.active .theme-name{color:var(--accent)}.etsy-test-btn{margin-top:8px;width:100%;background:var(--track);color:var(--ink-2);border:1px dashed var(--line-strong);font-size:12.5px;font-weight:600}.etsy-test-btn:hover{background:var(--hover-bg);color:var(--ink);border-color:var(--accent)}.etsy-debug{margin-top:6px;padding:7px 9px;border-radius:var(--r-chip);background:var(--accent-soft);border:1px solid rgba(var(--accent-rgb),.25);display:flex;flex-direction:column;gap:3px}.etsy-debug-tag{font-size:10.5px;font-weight:700;color:var(--accent);letter-spacing:.02em}.etsy-debug-tag.warn{color:var(--danger)}.etsy-debug-url{font-size:10.5px;color:var(--ink-2);word-break:break-all;line-height:1.4}@media (max-width: 1024px){.topbar-inner{grid-template-columns:minmax(0,1fr) 452px}.layout{grid-template-columns:minmax(0,1fr) 452px;gap:18px}}@media (max-width: 900px){.topbar-inner{grid-template-columns:1fr;gap:10px;padding:10px 14px}.brand{height:38px;gap:10px}.brand-name{font-size:18px}.brand-logo{height:38px;width:38px}.help-btn{width:34px;height:34px}.layout{grid-template-columns:1fr;padding:16px 14px 32px}.panel{position:static}.canvas{aspect-ratio:4 / 3}}@media (max-width: 560px){.topbar-inner{padding:10px;gap:8px}.brand{height:34px;gap:8px}.brand-name{font-size:15px}.brand-logo{height:34px;width:34px;border-radius:8px}.help-btn{width:32px;height:32px}.tabs{gap:2px;padding:3px}.tab{padding:7px 4px;font-size:12px}.layout{padding:12px 10px 28px;gap:14px}.panel{padding:16px}.font-panel{width:min(300px,calc(100vw - 48px));grid-template-columns:repeat(2,minmax(0,1fr))}.font-panel .font-cell:nth-child(3n+2) .fname,.font-panel .font-cell:nth-child(3n+1) .fname{left:50%;right:auto;transform:translate(-50%)}.font-panel .font-cell:nth-child(2n) .fname{left:0;right:auto;transform:none}.font-panel .font-cell:nth-child(odd) .fname{left:auto;right:0;transform:none}.color-panel{width:min(264px,calc(100vw - 48px))}.icon-panel{width:min(320px,calc(100vw - 48px))}.hint{font-size:11.5px;max-width:calc(100% - 32px)}.line-comp-row{flex-direction:column}}
