.account-dropdown-wrap{position:relative;display:flex;align-items:center;gap:4px}.account-badge{display:inline-flex;align-items:center;gap:5px;padding:.35rem .6rem;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;white-space:nowrap;max-width:150px;overflow:hidden;border:1px solid rgba(34,197,94,.2);background:var(--success-bg);color:var(--success)}.account-badge-label{overflow:hidden;text-overflow:ellipsis}.account-hamburger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.account-hamburger:hover{background:var(--bg-hover);border-color:var(--border-input)}.account-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:2000;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:220px;padding:6px;animation:popoverIn .15s ease-out}.account-menu-header{padding:8px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}.account-menu-email{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-status{font-size:var(--font-2xs);color:var(--success);margin-top:2px}.account-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;background:transparent;color:var(--text-primary);font-size:var(--font-base);font-weight:500;cursor:pointer;border-radius:var(--radius-sm);text-align:left;transition:background var(--transition-fast);text-decoration:none}.account-menu-item:hover{background:var(--bg-hover)}.account-menu-item svg{flex-shrink:0;width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.account-menu-item--badge{margin-left:auto;background:var(--accent-muted);color:var(--accent);font-size:var(--font-2xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-full)}.account-menu-divider{height:1px;background:var(--border);margin:4px 0}.account-menu-item--danger{color:var(--danger)}.account-menu-item--danger:hover{background:var(--danger-muted)}.cart-preview-wrap{position:relative}.cart-preview-btn{display:flex;align-items:center;gap:6px;background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-base);font-weight:600;transition:background var(--transition-fast);white-space:nowrap;position:relative}.cart-preview-btn:hover{background:var(--bg-hover)}.cart-preview-badge{position:absolute;top:-5px;right:-5px;background:var(--danger);color:#fff;font-size:var(--font-2xs);font-weight:700;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px}.cart-preview-label{color:var(--text-primary)}.cart-preview-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-strong);z-index:9999;overflow:hidden}.cart-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.cart-preview-header-title{font-weight:700;font-size:var(--font-md);color:var(--text-primary)}.cart-preview-refresh{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex}.cart-preview-refresh:hover{color:var(--text-primary)}.cart-spin{animation:cart-spin-anim .8s linear infinite}@keyframes cart-spin-anim{to{transform:rotate(360deg)}}.cart-preview-empty{padding:24px 16px;text-align:center;font-size:var(--font-base);color:var(--text-muted)}.cart-preview-items{max-height:240px;overflow-y:auto;padding:4px 0}.cart-preview-item{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 16px;gap:8px}.cart-preview-item+.cart-preview-item{border-top:1px solid var(--border)}.cart-preview-item-info{flex:1;min-width:0}.cart-preview-item-title{font-size:var(--font-base);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-preview-item-meta{font-size:var(--font-xs);color:var(--text-muted);margin-top:2px}.cart-preview-item-price{font-size:var(--font-base);font-weight:600;color:var(--success);flex-shrink:0}.cart-preview-footer{border-top:1px solid var(--border);padding:12px 16px}.cart-preview-notice{margin:0 0 10px;font-size:var(--font-xs);color:var(--text-secondary);line-height:1.35}.cart-preview-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:var(--font-base);color:var(--text-secondary)}.cart-preview-total-amount{font-weight:700;font-size:var(--font-lg);color:var(--success)}.cart-preview-goto{display:block;width:100%;border:none;text-align:center;background:var(--accent);color:#fff;padding:8px 16px;border-radius:var(--radius-md);font-weight:600;font-size:var(--font-base);text-decoration:none;cursor:pointer;transition:background var(--transition-fast)}.cart-preview-goto:hover{background:var(--accent-hover)}.chunk-load{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:color-mix(in srgb,var(--bg-elevated, #0f172a) 72%,rgba(0,0,0,.5));contain:layout style paint}.chunk-load--embed{position:absolute;inset:0;z-index:1;padding:.6rem;background:color-mix(in srgb,var(--bg-elevated, #0f172a) 65%,rgba(0,0,0,.35));border-radius:inherit;contain:layout style}.chunk-load--embed .chunk-load__card--embed{min-width:0;width:100%;max-width:none;padding:.85rem .9rem;gap:.55rem}.chunk-load--embed .chunk-load__ring{width:28px;height:28px}.chunk-load--embed .chunk-load__pct{font-size:.95rem}.chunk-load__card{display:flex;flex-direction:column;align-items:center;gap:.75rem;min-width:min(200px,80vw);max-width:320px;padding:1.25rem 1.5rem;border-radius:var(--radius-md, 12px);background:var(--bg-panel, #1e293b);border:1px solid var(--border-strong, rgba(148, 163, 184, .25));box-shadow:var(--shadow-lg, 0 18px 40px rgba(0, 0, 0, .45))}.chunk-load__ring{width:36px;height:36px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent, #6366f1) 18%,transparent);border-top-color:var(--accent, #6366f1);animation:chunk-load-spin .75s linear infinite;flex-shrink:0;will-change:transform}.chunk-load__bar{width:100%;height:3px;border-radius:2px;background:var(--bg-input, #334155);overflow:hidden}.chunk-load__bar-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent, #6366f1) 80%,#fff) 0%,var(--accent, #6366f1) 100%);transition:width .12s ease-out}.chunk-load__meta{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.chunk-load__pct{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary, #f8fafc);line-height:1.1;letter-spacing:.02em}.chunk-load__name{font-size:var(--font-xs, .75rem);font-weight:600;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.06em}.chunk-load--reduced .chunk-load__ring{animation:none;border-color:color-mix(in srgb,var(--accent, #6366f1) 40%,transparent);border-top-color:var(--accent, #6366f1);opacity:.9}.chunk-load--reduced .chunk-load__bar-fill{transition:none}@media(prefers-reduced-motion:reduce){.chunk-load__ring{animation:none;border-color:color-mix(in srgb,var(--accent, #6366f1) 40%,transparent);border-top-color:var(--accent, #6366f1)}.chunk-load__bar-fill{transition:none}}@keyframes chunk-load-spin{to{transform:rotate(360deg)}}.toolbar{display:flex;flex-direction:column;gap:0;background:var(--bg-panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);min-height:132px;height:auto}.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.25rem}.toolbar-row-menubar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:transparent;border-bottom:none;border-top:none;min-height:32px;padding:.3rem 1.25rem .25rem}.toolbar-menubar-menus{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;flex:1 1 auto}.toolbar-dev-turnaround-slot{display:flex;align-items:center;flex-shrink:0}.toolbar-menu{position:relative}.toolbar-menu-item{border:0;background:transparent;color:var(--text-secondary);font-size:var(--font-sm);padding:.24rem .48rem;border-radius:var(--radius-sm);cursor:pointer}.toolbar-menu-item:hover,.toolbar-menu-item.is-open{background:var(--bg-hover);color:var(--text-primary)}.toolbar-menu-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:210px;display:flex;flex-direction:column;gap:.2rem;padding:.4rem;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-lg);z-index:220}.toolbar-menu-action{border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:var(--font-sm);text-align:left;padding:.35rem .5rem;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.toolbar-menu-action:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.toolbar-menu-action:disabled{opacity:.45;cursor:not-allowed}.toolbar-menu-action.danger{color:var(--danger)}.toolbar-row-primary{padding:.35rem 1.25rem;border-bottom:none;min-height:52px;height:auto;display:flex;align-items:center}.toolbar-row-arrange{padding:0 1.25rem;border-top:1px solid var(--border);background:var(--bg-panel);border-bottom:1px solid var(--border);height:48px;display:flex;align-items:center}.toolbar-row-arrange,.toolbar-row-arrange .toolbar-field-label,.toolbar-row-arrange .toolbar-margin-label,.toolbar-row-arrange .toolbar-margin-unit{color:var(--text-secondary)}.toolbar-row-arrange .toolbar-btn,.toolbar-row-arrange .toolbar-variant-select,.toolbar-row-arrange .toolbar-bg-select,.toolbar-row-arrange .toolbar-margin-input,.toolbar-row-arrange .toolbar-arrange-toggle{background:var(--bg-input);border-color:var(--border-strong);color:var(--text-primary)}.toolbar-row-arrange .toolbar-btn:hover:not(:disabled),.toolbar-row-arrange .toolbar-arrange-toggle:hover{background:var(--bg-hover);border-color:var(--border-strong)}.toolbar-row-arrange .toolbar-nest-btn{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 1px 3px #2563eb4d}.toolbar-row-arrange .toolbar-nest-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 6px #2563eb59}.toolbar-row-arrange .toolbar-autobuild-btn{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 1px 3px #2563eb4d}.toolbar-row-arrange .toolbar-autobuild-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 2px 6px #2563eb59}.toolbar-row-arrange:not(.is-expanded){padding:.35rem 1.25rem}.toolbar-arrange-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .6rem;font-size:var(--font-base);font-weight:600;color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.toolbar-arrange-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.toolbar-arrange-collapse{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:.25rem;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.toolbar-arrange-collapse:hover{color:var(--text-primary);background:var(--bg-hover)}.toolbar-arrange-content{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:.55rem;height:100%}.toolbar-left{min-width:0;flex:1}.toolbar-right{margin-left:auto;gap:.45rem;flex-wrap:wrap;align-items:center;justify-content:flex-end;max-width:100%}.toolbar-product-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem .4rem;min-width:0;flex:0 1 auto}.toolbar-cta-block{display:block;min-width:0;flex:0 1 auto}.toolbar-cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.22rem .4rem}.toolbar-cta-primary{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;min-width:0}.toolbar-dev-inline{display:flex;align-items:center;flex-shrink:0}.toolbar-secondary-group{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.4rem;flex-shrink:0}.toolbar-turnaround-inline{display:inline-flex;align-items:center;gap:.3rem;max-width:min(200px,26vw);color:var(--ta-text, var(--text-muted));font-size:var(--font-xs);font-weight:500;line-height:1.25;padding:.2rem .5rem;border-radius:8px;background:var( --ta-bg, color-mix(in srgb, var(--ta-glow, #818cf8) 14%, transparent) );box-sizing:border-box}.toolbar-turnaround-inline__icon{flex-shrink:0;color:inherit;opacity:.95}.toolbar-turnaround-inline__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-turnaround-inline--anim-none{filter:drop-shadow(0 0 2px var(--ta-glow, #818cf8)) drop-shadow(0 0 8px color-mix(in srgb,var(--ta-glow, #818cf8) 45%,transparent))}.toolbar-turnaround-inline--anim-glowPulse{animation:toolbar-turnaround-glow-pulse 2.4s ease-in-out infinite}.toolbar-turnaround-inline--anim-strongGlowPulse{animation:toolbar-turnaround-glow-strong 1.75s ease-in-out infinite}@keyframes toolbar-turnaround-glow-pulse{0%,to{filter:drop-shadow(0 0 2px var(--ta-glow, #818cf8)) drop-shadow(0 0 6px color-mix(in srgb,var(--ta-glow, #818cf8) 40%,transparent))}50%{filter:drop-shadow(0 0 5px var(--ta-glow, #818cf8)) drop-shadow(0 0 14px color-mix(in srgb,var(--ta-glow, #818cf8) 55%,transparent))}}@keyframes toolbar-turnaround-glow-strong{0%,to{filter:drop-shadow(0 0 4px var(--ta-glow, #818cf8)) drop-shadow(0 0 12px color-mix(in srgb,var(--ta-glow, #818cf8) 50%,transparent))}50%{filter:drop-shadow(0 0 10px var(--ta-glow, #818cf8)) drop-shadow(0 0 22px color-mix(in srgb,var(--ta-glow, #818cf8) 70%,transparent))}}@media(prefers-reduced-motion:reduce){.toolbar-turnaround-inline--anim-glowPulse,.toolbar-turnaround-inline--anim-strongGlowPulse{animation:none;filter:drop-shadow(0 0 2px var(--ta-glow, #818cf8)) drop-shadow(0 0 8px color-mix(in srgb,var(--ta-glow, #818cf8) 45%,transparent))}}.toolbar-mobile-cta-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 8px;max-width:100%}.toolbar-mobile-right .toolbar-turnaround-inline{max-width:110px;font-size:.7rem}.toolbar-meta{min-width:180px;display:flex;align-items:center;gap:1rem;height:100%}.toolbar-title{display:flex;align-items:center;gap:.5rem;font-size:var(--font-lg);font-weight:700;color:var(--text-primary);height:100%}.toolbar-title-logo-wrap{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:6px;background:var(--builder-logo-bg, transparent);flex-shrink:0;overflow:hidden}.toolbar-title-logo-img{width:1.35rem;height:1.35rem;object-fit:contain}.toolbar-title-text{font-size:var(--font-lg);font-weight:700}.toolbar-subtitle{display:none}.toolbar-field-label{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-weight:700}.toolbar-variant-label{display:flex;flex-direction:column;gap:.2rem;margin-left:1rem;padding-left:1rem;border-left:1px solid var(--border)}.toolbar-variant-select{background:transparent;color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--font-base);padding:.5rem .65rem;font-weight:600;min-width:200px;transition:border-color var(--transition-fast)}.toolbar-variant-select option{background:var(--bg-panel);color:var(--text-primary)}.toolbar-variant-select:hover{border-color:var(--border-input)}.toolbar-variant-select:focus,.toolbar-margin-input:focus,.toolbar-bg select:focus{outline:2px solid var(--ring-accent);outline-offset:1px}.toolbar-variant-select:disabled{background:var(--bg-input);color:var(--text-muted);border-color:var(--border);cursor:not-allowed;opacity:.7}.toolbar-size-badge{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.42rem .72rem;font-size:var(--font-base);font-weight:600}.toolbar-btn{background:transparent;color:var(--text-secondary);border:1px solid transparent;border-radius:var(--radius-md);padding:.5rem .8rem;cursor:pointer;font-size:var(--font-base);font-weight:600;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.toolbar-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn:active:not(:disabled){transform:translateY(1px)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.danger{color:var(--danger)}.toolbar-btn.danger:hover:not(:disabled){background:var(--danger-muted);border-color:var(--danger)}.toolbar-divider{width:1px;height:24px;background:var(--border-strong);flex-shrink:0;opacity:.6}.toolbar-bg-inline{display:inline-flex;align-items:center;gap:.35rem}.toolbar-bg-inline .toolbar-field-label{font-size:var(--font-xs)}.toolbar-bg-select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);padding:.36rem .5rem;font-weight:600;transition:border-color var(--transition-fast)}.toolbar-bg-select:focus{outline:2px solid var(--ring-accent);outline-offset:1px}.toolbar-autobuild-btn-center{display:inline-flex;align-items:center;gap:.3rem;background:transparent;color:var(--accent);border:1px solid var(--accent);padding:.5rem .85rem;font-size:var(--font-base);white-space:nowrap;border-radius:var(--radius-md);transition:opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:none}.toolbar-autobuild-btn-center:hover:not(:disabled){background:var(--accent-muted);transform:translateY(-1px)}.toolbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;padding:0;box-sizing:border-box;flex-shrink:0}.toolbar-save-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;padding:0;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:none;box-sizing:border-box;flex-shrink:0}.toolbar-save-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-input)}.toolbar-save-btn svg{color:var(--text-secondary)}.toolbar-save-btn:hover:not(:disabled) svg{color:var(--text-primary)}.toolbar-user-group{display:flex;align-items:center}.toolbar-login-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:38px;padding:.45rem .8rem;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-strong);text-decoration:none;cursor:pointer;font-family:inherit;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);box-shadow:none}.toolbar-login-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-input)}.toolbar-cart-group{display:flex;align-items:center;gap:.45rem}.toolbar-checkout-hint{font-size:var(--font-2xs, .65rem);font-weight:600;color:var(--text-muted);white-space:nowrap;text-align:right;max-width:min(280px,40vw);line-height:1.3}.toolbar-checkout-hint--inline{text-align:left;max-width:min(180px,20vw);line-height:1.2;white-space:normal;display:block;padding:.1rem 0}.toolbar-checkout-hint.is-warn{color:var(--warning)}.toolbar-checkout-hint.is-blocked{color:var(--text-muted)}.toolbar-add-cart{background:#1d4ed8;color:#f8fafc;border:none;padding:.52rem 1.05rem;min-height:40px;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:700;white-space:nowrap;box-shadow:0 1px 2px #0f172a38;transition:background var(--transition-fast),box-shadow var(--transition-fast)}[data-theme=dark] .toolbar-add-cart{background:#1e3a8a;color:#f8fafc;box-shadow:0 1px 2px #00000059}.toolbar-add-cart:hover:not(:disabled){background:#1e3a8a;color:#fff;box-shadow:0 2px 6px #0f172a38;filter:none}[data-theme=dark] .toolbar-add-cart:hover:not(:disabled){background:#172554;color:#fff}.toolbar-add-cart:active:not(:disabled){background:#1e40af}[data-theme=dark] .toolbar-add-cart:active:not(:disabled){background:#0f172a}.toolbar-add-cart:disabled{opacity:.45;cursor:not-allowed}.toolbar-secondary-group .cart-preview-btn{min-height:38px;padding:0 .75rem;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);box-shadow:none;font-size:var(--font-sm);font-weight:600;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.toolbar-secondary-group .cart-preview-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-input)}.toolbar-secondary-group .cart-preview-label{color:var(--text-primary);font-weight:600}.toolbar-secondary-group .account-badge{max-width:150px;min-height:38px;padding:.35rem .7rem;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-weight:600;font-size:var(--font-xs)}.toolbar-secondary-group .account-badge svg{color:var(--text-muted);flex-shrink:0}.toolbar-secondary-group .account-hamburger{width:38px;height:38px;min-width:38px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary)}.toolbar-secondary-group .account-hamburger:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-input)}.toolbar-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spinnerRotate .6s linear infinite;vertical-align:middle;margin-right:4px}.toolbar-tools-wrap{position:relative}.toolbar-tools-trigger{display:inline-flex;align-items:center;gap:.32rem}.toolbar-halftone-trigger{white-space:nowrap}.toolbar-tools-trigger.is-open{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.toolbar-tools-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:1200;width:min(460px,84vw);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:.65rem;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;animation:popoverIn .15s ease-out}.toolbar-halftone-backdrop{position:fixed;inset:0;z-index:10020;border:0;background:var(--overlay)}.toolbar-halftone-modal{position:fixed;z-index:10021;width:min(1080px,96vw);max-height:min(90vh,980px);left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:.6rem;padding:.75rem;overflow:hidden}.toolbar-halftone-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.toolbar-halftone-head:not(.toolbar-halftone-head--studio) span{font-size:var(--font-md);font-weight:700;color:var(--text-primary)}.toolbar-halftone-box{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.75rem;background:var(--bg-panel);overflow:auto;display:flex;flex-direction:column;gap:.6rem;min-height:140px}.toolbar-halftone-content{display:grid;grid-template-columns:minmax(460px,1.15fr) minmax(360px,1fr);gap:1rem;min-height:0;overflow:hidden}.toolbar-halftone-preview{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-panel);padding:.5rem;display:flex;flex-direction:column;gap:.45rem;min-height:0;flex:1}.toolbar-halftone-preview-label{font-size:var(--font-xs);color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.toolbar-halftone-draft-pill{font-size:10px;letter-spacing:0;text-transform:none;font-weight:700;border-radius:999px;border:1px solid rgba(80,170,255,.4);color:#6fb4ff;background:#50aaff1f;padding:2px 8px}.toolbar-halftone-preview .halftone-preview-viewport{height:clamp(280px,55vh,650px)}.toolbar-halftone-preview-empty{flex:1;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-sm);display:flex;align-items:center;justify-content:center;min-height:140px}.toolbar-halftone-backdrop--studio{padding:clamp(10px,2vw,22px);padding-bottom:calc(clamp(10px,2vw,22px) + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 18% 12%,rgb(79 70 229 / .22),transparent 32%),radial-gradient(circle at 84% 18%,rgb(14 165 233 / .18),transparent 28%),#0f172a75;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.toolbar-halftone-modal.toolbar-halftone-modal--studio{width:min(1260px,96vw);height:min(92vh,940px);max-height:92vh;padding:0;gap:0;border-radius:22px;border:1px solid #e2e8f0;background:#f8fafc;box-shadow:0 30px 80px -35px #0f172a8c,0 10px 24px -18px #0f172a59;overflow:hidden}.toolbar-halftone-head--studio{flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#fffffff5,#eef2ffe6),#f1f5f9}.toolbar-halftone-head-brand{display:flex;align-items:center;gap:12px;min-width:0}.toolbar-halftone-head-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 10px 24px -16px #4f46e5e6}.toolbar-halftone-head-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.toolbar-halftone-head-title{font-size:1.05rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.toolbar-halftone-head-sub{font-size:.8125rem;font-weight:500;color:#64748b;line-height:1.35}.toolbar-halftone-close--studio{border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:12px;width:40px;height:40px;font-size:1.35rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0;box-shadow:0 1px 2px #0f172a0a}.toolbar-halftone-close--studio:hover{color:#0f172a;border-color:#cbd5e1}.toolbar-halftone-modal--studio .toolbar-halftone-content{display:flex;flex-direction:row;flex:1;min-height:0;gap:0;overflow:hidden}.toolbar-halftone-modal--studio .toolbar-halftone-box{width:clamp(300px,36vw,480px);min-width:280px;flex-shrink:0;margin:0;border:none;border-radius:0;background:#fff;border-right:1px solid #e2e8f0;padding:18px 16px 0;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;scroll-padding-bottom:10rem}.toolbar-halftone-modal--studio .toolbar-halftone-box::-webkit-scrollbar{width:10px}.toolbar-halftone-modal--studio .toolbar-halftone-box::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid #fff}.toolbar-halftone-modal--studio .toolbar-halftone-preview{flex:1;min-width:0;min-height:0;border:none;border-radius:0;padding:0;background:radial-gradient(circle at 50% 22%,rgb(255 255 255 / .72),transparent 30%),linear-gradient(135deg,#dbeafe,#e2e8f0 50%,#ede9fe);display:flex;flex-direction:column}.toolbar-halftone-modal--studio .toolbar-halftone-preview-label{flex-shrink:0;padding:12px 18px;border-bottom:1px solid #e2e8f0;background:#f8fafceb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#475569}.toolbar-halftone-modal--studio .toolbar-halftone-draft-pill{border-color:#818cf873;color:#4338ca;background:#eef2fff2}.toolbar-halftone-modal--studio .toolbar-halftone-preview>*:not(.toolbar-halftone-preview-label):not(.toolbar-halftone-preview-empty){flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center}.toolbar-halftone-modal--studio .toolbar-halftone-preview .halftone-preview-viewport{flex:1 1 auto;width:auto!important;max-width:calc(100% - clamp(24px,5vw,56px));height:min(52vh,560px)!important;max-height:min(58vh,620px);margin:clamp(16px,3vw,40px) auto;align-self:center;border-radius:16px;border:1px solid rgb(79 70 229 / .22);box-shadow:0 24px 80px -48px #0f172a8c,inset 0 0 0 1px #ffffff80}.toolbar-halftone-modal--studio .toolbar-halftone-preview-empty{flex:1;margin:clamp(16px,3vw,40px);min-height:200px;border-radius:16px;border:1px dashed #cbd5e1;background:#ffffff8c;color:#64748b}@media(max-width:980px){.toolbar-halftone-modal--studio .toolbar-halftone-content{flex-direction:column;overflow:auto}.toolbar-halftone-modal--studio .toolbar-halftone-preview{order:-1;flex:1 1 auto;min-height:min(42vh,360px)}.toolbar-halftone-modal--studio .toolbar-halftone-box{order:0;width:100%;min-width:0;max-height:46%;flex-shrink:0;border-right:none;border-top:1px solid #e2e8f0}.toolbar-halftone-modal--studio .toolbar-halftone-preview .halftone-preview-viewport{height:min(36vh,400px)!important;max-height:min(42vh,480px)}}.toolbar-mobile-halftone-backdrop--studio{background:radial-gradient(circle at 18% 12%,rgb(79 70 229 / .22),transparent 32%),radial-gradient(circle at 84% 18%,rgb(14 165 233 / .18),transparent 28%),#0f172a75;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.toolbar-mobile-halftone-modal--studio{border-radius:20px;border:1px solid #e2e8f0;background:#f8fafc;box-shadow:0 24px 64px -28px #0f172a80,0 10px 24px -18px #0f172a59;padding:0;gap:0;overflow:hidden;display:flex;flex-direction:column}.toolbar-mobile-halftone-head--studio{flex-shrink:0;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#fffffff5,#eef2ffe0),#f1f5f9}.toolbar-mobile-halftone-head-brand{display:flex;align-items:center;gap:10px;min-width:0}.toolbar-mobile-halftone-head-icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 20px -14px #4f46e5e6}.toolbar-mobile-halftone-head-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.toolbar-mobile-halftone-head-title{font-size:1rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.toolbar-mobile-halftone-head-sub{font-size:.75rem;font-weight:500;color:#64748b;line-height:1.35}.toolbar-mobile-halftone-modal--studio .toolbar-mobile-halftone-preview{flex:0 0 auto;border:none;border-radius:0;border-bottom:1px solid #e2e8f0;background:radial-gradient(circle at 50% 22%,rgb(255 255 255 / .72),transparent 30%),linear-gradient(135deg,#dbeafe,#e2e8f0 45%,#ede9fe)}.toolbar-mobile-halftone-modal--studio .toolbar-mobile-halftone-box{border:none;border-radius:0;background:#fff;flex:1;min-height:0;overflow:auto;padding:12px 14px 0;padding-bottom:env(safe-area-inset-bottom,0px);scroll-padding-bottom:calc(10rem + env(safe-area-inset-bottom,0px))}.raster-modal-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0}.raster-modal-smart-card{display:flex;flex-direction:column;gap:.35rem;padding:.65rem .75rem;border:1px solid rgba(99,102,241,.22);border-radius:var(--radius-md);background:linear-gradient(180deg,#6366f114,#6366f108)}.raster-modal-smart-title{font-size:var(--font-sm);font-weight:700;color:var(--text-primary)}.raster-modal-smart-chips{display:flex;flex-wrap:wrap;gap:.35rem}.raster-modal-smart-chip{font-size:var(--font-xs);padding:.2rem .45rem;border-radius:var(--radius-full);background:#6366f11f;color:var(--text-secondary);border:1px solid rgba(99,102,241,.18)}.raster-modal-note{font-size:var(--font-xs);color:var(--text-muted)}.raster-modal-note--warn{color:var(--accent)}.raster-modal-section{display:flex;flex-direction:column;gap:.35rem}.raster-modal-section--advanced{gap:.4rem}.raster-modal-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.raster-modal-field-label{font-size:var(--font-sm);font-weight:600;color:var(--text-primary)}.raster-modal-section--step{border-top:1px solid var(--border);padding-top:.85rem;margin-top:.15rem}.raster-modal-hint--preset-detail{line-height:1.45}.raster-modal-select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);padding:.4rem 2rem .4rem .5rem;font-weight:500;width:100%;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:14px}.raster-modal-select--primary{font-size:var(--font-md);font-weight:600;padding:.5rem 2.25rem .5rem .6rem;background-size:16px}.raster-modal-preset-select{min-height:44px;line-height:1.35}.toolbar-halftone-modal--studio .raster-modal-preset-select,.toolbar-mobile-halftone-modal--studio .raster-modal-preset-select{min-height:46px}.raster-modal-select:hover:not(:disabled){border-color:var(--border)}.raster-modal-select:focus{outline:2px solid var(--ring-accent);outline-offset:1px}.raster-modal-hint{font-size:var(--font-xs);color:var(--text-muted)}.raster-modal-presets{display:flex;flex-wrap:nowrap;gap:.3rem;width:max-content}.raster-modal-presets-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:2px;mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.raster-modal-preset{font-size:var(--font-xs);padding:.32rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;white-space:nowrap;flex:0 0 auto;transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base)}.raster-modal-preset:hover:not(:disabled){border-color:var(--border);color:var(--text-primary)}.raster-modal-preset.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.raster-modal-preset:disabled{opacity:.6;cursor:not-allowed}.raster-modal-backgrounds{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.raster-modal-bg-option{font-size:var(--font-xs);padding:.36rem .5rem;text-align:left;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base)}.raster-modal-bg-option:hover:not(:disabled){border-color:var(--border);color:var(--text-primary)}.raster-modal-bg-option.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.raster-modal-bg-option:disabled{opacity:.6;cursor:not-allowed}.raster-modal-fields{display:flex;flex-direction:column;gap:.4rem}.raster-modal-field{display:flex;flex-direction:column;gap:.2rem;font-size:var(--font-xs);color:var(--text-secondary)}.raster-modal-field input[type=range]{width:100%}.raster-modal-row{display:flex;flex-wrap:wrap;gap:.3rem}.raster-modal-btn{font-size:var(--font-sm);padding:.4rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base),color var(--transition-base)}.raster-modal-btn:hover:not(:disabled){border-color:var(--border);background:var(--bg-card)}.raster-modal-btn:disabled{opacity:.6;cursor:not-allowed}.raster-modal-btn--accent{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.raster-modal-btn--accent:hover:not(:disabled){background:rgba(var(--accent-rgb, 99 102 241),.15)}.raster-modal-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.raster-modal-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.raster-modal-btn--ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.raster-modal-btn--ghost:hover:not(:disabled){color:var(--text-secondary)}.raster-modal-toggle{font-size:var(--font-xs);color:var(--text-muted);background:none;border:none;cursor:pointer;padding:.2rem 0;text-decoration:underline}.raster-modal-toggle:hover{color:var(--text-secondary)}.raster-modal-advanced{display:flex;flex-direction:column;gap:.4rem;padding-top:.25rem}.raster-modal-safety{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.4rem .5rem;font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-card)}.raster-modal-safety-tip{display:block;margin-top:.2rem;color:var(--text-muted)}.raster-modal-safety--safe{border-color:#22c55e59}.raster-modal-safety--caution{border-color:#eab30859}.raster-modal-safety--high_risk{border-color:#ef444466}.raster-modal-progress{display:flex;flex-direction:column;gap:.2rem;font-size:var(--font-xs);color:var(--text-muted)}.raster-modal-progress-bar{width:100%;height:6px;border-radius:var(--radius-full);background:var(--bg-card);overflow:hidden}.raster-modal-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#7c3aed);transition:width var(--transition-base)}.raster-modal-knockout-presets{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.35rem}.raster-modal-knockout-btn{font-size:var(--font-xs);padding:.32rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base)}.raster-modal-knockout-btn:hover{border-color:var(--border);background:var(--bg-card)}.raster-modal-knockout-btn.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.raster-modal-bg-picker-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.raster-modal-eyedropper{display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}.raster-modal-eyedropper.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.raster-modal-picked-color{display:inline-flex;align-items:center;gap:.3rem;padding:3px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card)}.raster-modal-picked-swatch{display:block;width:18px;height:18px;border-radius:3px;border:1px solid var(--border);flex-shrink:0}.raster-modal-picked-hex{font-size:var(--font-xs);font-weight:600;font-family:monospace;color:var(--text-primary);text-transform:uppercase}.raster-modal-picked-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.raster-modal-picked-clear:hover{color:var(--text-primary);border-color:var(--border-strong)}.raster-modal-group-legend{display:flex;flex-wrap:wrap;gap:.25rem}.raster-modal-group-pill{font-size:10px;padding:2px 6px;border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-muted);background:var(--bg-input)}.raster-modal-actions{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.25rem;border-top:1px solid var(--border)}.toolbar-halftone-modal--studio .raster-modal-panel,.toolbar-mobile-halftone-modal--studio .raster-modal-panel{gap:1rem}.toolbar-halftone-modal--studio .raster-modal-section,.toolbar-mobile-halftone-modal--studio .raster-modal-section{gap:.5rem}.toolbar-halftone-modal--studio .raster-modal-section--step,.toolbar-mobile-halftone-modal--studio .raster-modal-section--step{border-top-color:#e2e8f0;padding-top:1rem;margin-top:.2rem}.toolbar-halftone-modal--studio .raster-modal-field-label,.toolbar-mobile-halftone-modal--studio .raster-modal-field-label{color:#334155;font-size:.8125rem}.toolbar-halftone-modal--studio .raster-modal-bg-mode-row,.toolbar-mobile-halftone-modal--studio .raster-modal-bg-mode-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;margin-bottom:.35rem}.toolbar-halftone-modal--studio .raster-modal-bg-mode-row>.raster-modal-btn.raster-modal-eyedropper,.toolbar-mobile-halftone-modal--studio .raster-modal-bg-mode-row>.raster-modal-btn.raster-modal-eyedropper{flex:0 0 auto;border-radius:10px}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented{display:flex;flex:1 1 180px;min-width:0;flex-wrap:nowrap;gap:0;margin-bottom:0;border-radius:10px;overflow:hidden;border:2px solid #cbd5e1;box-shadow:0 1px 3px #0f172a14}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn{flex:1 1 0;min-width:0;border-radius:0;border:none;box-shadow:none;margin:0;min-height:44px;padding:.4rem .3rem;font-size:.6875rem;border-right:1px solid #e2e8f0}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn:last-child,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn:last-child{border-right:none}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn.is-active,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn.is-active{box-shadow:inset 0 0 0 1px #6366f159;z-index:1}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn:hover:not(:disabled){border-color:transparent;box-shadow:none;background:#f1f5f9}.toolbar-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn.is-active:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-presets--segmented .raster-modal-knockout-btn.is-active:hover:not(:disabled){background:#eef2ff}.toolbar-halftone-modal--studio .raster-modal-btn--full-width,.toolbar-mobile-halftone-modal--studio .raster-modal-btn--full-width{display:flex;width:100%;justify-content:center;align-items:center;box-sizing:border-box;margin-top:.15rem}.toolbar-halftone-modal--studio .raster-modal-bg-picker-row--swatch,.toolbar-mobile-halftone-modal--studio .raster-modal-bg-picker-row--swatch{margin-top:.25rem;margin-bottom:0}.toolbar-halftone-modal--studio .raster-modal-label{color:#64748b;font-weight:800}.toolbar-halftone-modal--studio .raster-modal-hint,.toolbar-halftone-modal--studio .raster-modal-note{color:#64748b}.toolbar-halftone-modal--studio .raster-modal-field{color:#475569}.toolbar-halftone-modal--studio .raster-modal-select,.toolbar-mobile-halftone-modal--studio .raster-modal-select{background:#f8fafc;color:#0f172a;border:2px solid #cbd5e1;border-radius:10px;accent-color:#4f46e5;cursor:pointer;box-shadow:inset 0 1px 2px #0f172a0f,0 1px 3px #0f172a14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 10 12 16 18 10'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;background-size:18px;padding:.4rem 2.75rem .4rem .55rem;transition:border-color .15s ease,box-shadow .15s ease}.toolbar-halftone-modal--studio .raster-modal-select--primary,.toolbar-mobile-halftone-modal--studio .raster-modal-select--primary{padding:.5rem 2.85rem .5rem .65rem;background-size:18px}.toolbar-halftone-modal--studio .raster-modal-select:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-select:hover:not(:disabled){border-color:#818cf8;box-shadow:inset 0 1px 2px #0f172a0f,0 2px 8px #4f46e52e}.toolbar-halftone-modal--studio .raster-modal-select:focus,.toolbar-halftone-modal--studio .raster-modal-select:focus-visible,.toolbar-mobile-halftone-modal--studio .raster-modal-select:focus,.toolbar-mobile-halftone-modal--studio .raster-modal-select:focus-visible{outline:2px solid rgb(99 102 241 / .45);outline-offset:2px}.toolbar-halftone-modal--studio .raster-modal-preset,.toolbar-mobile-halftone-modal--studio .raster-modal-preset{border-radius:999px;border:2px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer;box-shadow:0 1px 3px #0f172a0f;transition:border-color .15s ease,box-shadow .15s ease,color .15s ease,background .15s ease}.toolbar-halftone-modal--studio .raster-modal-preset:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-preset:hover:not(:disabled){border-color:#c7d2fe;color:#312e81;box-shadow:0 3px 10px #4f46e51f}.toolbar-halftone-modal--studio .raster-modal-preset.is-active,.toolbar-mobile-halftone-modal--studio .raster-modal-preset.is-active{border-color:#4f46e5;color:#fff;background:linear-gradient(135deg,#4f46e5,#2563eb);box-shadow:0 8px 18px -14px #312e81,0 2px 6px #312e8140}.toolbar-halftone-modal--studio .raster-modal-knockout-btn,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-btn{border-radius:10px;border:2px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;box-shadow:0 1px 3px #0f172a1a;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}.toolbar-halftone-modal--studio .raster-modal-knockout-btn:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-btn:hover:not(:disabled){border-color:#818cf8;box-shadow:0 3px 10px #4f46e524}.toolbar-halftone-modal--studio .raster-modal-knockout-btn.is-active,.toolbar-mobile-halftone-modal--studio .raster-modal-knockout-btn.is-active{border-color:#6366f1;color:#3730a3;background:#eef2ff;box-shadow:0 1px 3px #0f172a14,0 0 0 1px #6366f133}.toolbar-halftone-modal--studio .raster-modal-btn,.toolbar-mobile-halftone-modal--studio .raster-modal-btn{border-radius:10px;border:2px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;box-shadow:0 1px 3px #0f172a1a;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease,filter .15s ease}.toolbar-halftone-modal--studio .raster-modal-btn:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-btn:hover:not(:disabled){border-color:#94a3b8;box-shadow:0 3px 10px #0f172a1f}.toolbar-halftone-modal--studio .raster-modal-btn--accent,.toolbar-mobile-halftone-modal--studio .raster-modal-btn--accent{border:2px solid #818cf8;background:#eef2ff;color:#3730a3;box-shadow:0 1px 4px #4f46e51f}.toolbar-halftone-modal--studio .raster-modal-btn--accent:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-btn--accent:hover:not(:disabled){border-color:#6366f1;box-shadow:0 4px 12px #4f46e52e;background:#e0e7ff}.toolbar-halftone-modal--studio .raster-modal-btn--primary,.toolbar-mobile-halftone-modal--studio .raster-modal-btn--primary{border:2px solid #4338ca;background:linear-gradient(135deg,#4f46e5,#2563eb);color:#fff;border-radius:12px;font-weight:700;padding:.5rem 1rem;box-shadow:0 4px 14px #312e8159,0 2px 4px #0f172a1f}.toolbar-halftone-modal--studio .raster-modal-btn--primary:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-btn--primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 6px 20px #312e8166,0 2px 6px #0f172a24}.toolbar-halftone-modal--studio .raster-modal-btn--ghost,.toolbar-mobile-halftone-modal--studio .raster-modal-btn--ghost{color:#64748b;border:2px solid transparent;background:transparent;box-shadow:none}.toolbar-halftone-modal--studio .raster-modal-btn--ghost:hover:not(:disabled),.toolbar-mobile-halftone-modal--studio .raster-modal-btn--ghost:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#e2e8f0;box-shadow:0 1px 3px #0f172a14}.toolbar-halftone-modal--studio .raster-modal-eyedropper.raster-modal-btn,.toolbar-mobile-halftone-modal--studio .raster-modal-eyedropper.raster-modal-btn{min-height:44px;padding:.45rem .75rem}.toolbar-halftone-modal--studio .raster-modal-eyedropper.raster-modal-btn.is-active,.toolbar-mobile-halftone-modal--studio .raster-modal-eyedropper.raster-modal-btn.is-active{border-color:#6366f1;color:#3730a3;background:#eef2ff;box-shadow:0 2px 8px #4f46e526,0 0 0 1px #6366f138}.toolbar-halftone-modal--studio .raster-modal-toggle{color:#6366f1;font-weight:600}.toolbar-halftone-modal--studio .raster-modal-safety{background:#f8fafcfa;border-radius:12px}.toolbar-halftone-modal--studio .raster-modal-safety-tip{color:#64748b}.toolbar-halftone-modal--studio .raster-modal-progress-bar{background:#e2e8f0}.toolbar-halftone-modal--studio .raster-modal-progress-fill{background:linear-gradient(90deg,#4f46e5,#2563eb)}.toolbar-halftone-modal--studio .raster-modal-field input[type=range]{accent-color:#4f46e5}.toolbar-halftone-modal--studio .raster-modal-smart-card{border-color:#818cf859;border-radius:14px;background:linear-gradient(135deg,#eef2fff2,#f1f5f9eb);padding:.45rem .55rem;gap:.22rem}.toolbar-mobile-halftone-modal--studio .raster-modal-smart-card{padding:.45rem .55rem;gap:.22rem}.toolbar-halftone-modal--studio .raster-modal-smart-card .raster-modal-smart-chips,.toolbar-mobile-halftone-modal--studio .raster-modal-smart-card .raster-modal-smart-chips{gap:.25rem}.toolbar-halftone-modal--studio .raster-modal-smart-card .raster-modal-smart-chip,.toolbar-mobile-halftone-modal--studio .raster-modal-smart-card .raster-modal-smart-chip{font-size:.65rem;padding:.12rem .38rem}.toolbar-halftone-modal--studio .raster-modal-smart-title{color:#0f172a}.toolbar-halftone-modal--studio .raster-modal-smart-chip{background:#eef2ffe6;border-color:#818cf847;color:#475569}.toolbar-halftone-modal--studio .raster-modal-actions{position:sticky;bottom:0;z-index:3;flex-wrap:nowrap;gap:.5rem;padding:12px 0 max(10px,env(safe-area-inset-bottom,0px));margin:.35rem 0 0;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;background:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #e2e8f0;box-shadow:none}.toolbar-mobile-halftone-modal--studio .raster-modal-actions{position:sticky;bottom:0;z-index:3;padding:12px 0 max(10px,env(safe-area-inset-bottom,0px));margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;background:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #e2e8f0;box-shadow:none}.toolbar-raster-presets{display:flex;flex-wrap:wrap;gap:.3rem}.toolbar-raster-preset{font-size:var(--font-xs);padding:.32rem .45rem}.toolbar-raster-preset.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-raster-backgrounds{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.toolbar-raster-bg-option{font-size:var(--font-xs);padding:.34rem .42rem;text-align:left}.toolbar-raster-bg-option.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-raster-best-btn{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.toolbar-raster-risk{border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.35rem .45rem;font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-card)}.toolbar-raster-risk--safe{border-color:#22c55e59}.toolbar-raster-risk--caution{border-color:#eab30859}.toolbar-raster-risk--high_risk{border-color:#ef444466}.toolbar-raster-grid{display:grid;grid-template-columns:1fr;gap:.35rem}.toolbar-raster-field{display:flex;flex-direction:column;gap:.2rem;font-size:var(--font-xs);color:var(--text-secondary)}.toolbar-raster-field input[type=range]{width:100%}.toolbar-raster-select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);padding:.34rem .42rem;font-weight:600}.toolbar-raster-progress{display:flex;flex-direction:column;gap:.2rem;font-size:var(--font-xs);color:var(--text-muted)}.toolbar-raster-progress-bar{width:100%;height:6px;border-radius:var(--radius-full);background:var(--bg-card);overflow:hidden}.toolbar-raster-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#7c3aed);transition:width var(--transition-base)}.toolbar-tool-group{background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.5rem;display:flex;flex-direction:column;gap:.4rem}.toolbar-tool-title{margin:0;font-size:var(--font-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.toolbar-tool-row{display:flex;flex-wrap:wrap;gap:.3rem}.toolbar-align-btn{min-width:32px!important;padding:.3rem .4rem!important}.toolbar-align-btn svg{display:block}.toolbar-align-sep{width:1px;align-self:stretch;background:var(--border-strong);margin:0 .1rem;opacity:.6}.toolbar-layout-btns{display:flex;flex-direction:column;gap:.3rem}.toolbar-layout-btn{display:flex!important;align-items:center;gap:.45rem;width:100%;padding:.4rem .6rem!important;font-size:var(--font-sm);justify-content:flex-start}.toolbar-layout-btn svg{flex-shrink:0}.toolbar-layout-btn span{white-space:nowrap}.toolbar-tool-note{font-size:var(--font-xs);color:var(--text-muted)}.toolbar-color-knockout-row{display:flex;align-items:center;gap:.5rem}.toolbar-color-input{width:40px;height:34px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-input);padding:2px}.toolbar-bg{display:flex;flex-direction:column;gap:.2rem}.toolbar-bg select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);padding:.4rem .55rem;transition:border-color var(--transition-fast)}.toolbar-nest-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .85rem;font-size:var(--font-base);font-weight:600;white-space:nowrap;border-radius:var(--radius-md);transition:opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.toolbar-nest-btn:hover:not(:disabled){transform:translateY(-1px)}.toolbar-margin-label{display:inline-flex;align-items:center;gap:.28rem;color:var(--text-secondary);font-size:var(--font-sm)}.toolbar-margin-input{width:64px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);padding:.34rem .4rem;text-align:center;transition:border-color var(--transition-fast)}.toolbar-margin-input::-webkit-inner-spin-button,.toolbar-margin-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.toolbar-margin-unit{font-size:var(--font-xs);color:var(--text-muted)}.toolbar-suggestion{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .7rem;background:var(--success-bg);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);color:var(--success);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;margin-left:.3rem}.toolbar-suggestion:hover{background:#22c55e26;border-color:#22c55e59}.toolbar-suggestion svg{flex-shrink:0;color:var(--success)}.toolbar-suggestion-text{display:inline}.toolbar-suggestion-text strong{font-weight:700}.toolbar-autobuild-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .85rem;font-size:var(--font-base);font-weight:600;white-space:nowrap;border-radius:var(--radius-md);transition:opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.toolbar-autobuild-btn:hover:not(:disabled){transform:translateY(-1px)}.toolbar-shortcuts-toggle{display:inline-flex;align-items:center;gap:.35rem}.shortcuts-popover{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-input);padding:.5rem}.shortcuts-popover--inline{position:static;box-shadow:none}.shortcuts-header{font-size:var(--font-sm);color:var(--text-primary);font-weight:700;margin-bottom:.35rem}.shortcuts-list{display:flex;flex-direction:column;gap:.22rem}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.shortcut-keys{background:var(--bg-card);color:var(--accent);border:1px solid var(--border-strong);border-radius:4px;font-size:var(--font-xs);font-weight:700;padding:.08rem .34rem}.shortcut-label{color:var(--text-secondary);font-size:var(--font-sm)}.toolbar--mobile{padding:0;display:flex;flex-direction:column}.toolbar-row-mobile{display:flex;align-items:center;gap:6px;padding:5px 8px}.toolbar-row-mobile-secondary{padding:3px 8px 4px;border-top:1px solid var(--border);gap:4px}.toolbar-mobile-left{flex:1;min-width:0}.toolbar-variant-select--mobile{width:100%;min-width:0;font-size:var(--font-sm);padding:.35rem .5rem}.toolbar-mobile-right{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px 8px;flex-shrink:0;max-width:min(100%,72vw)}.toolbar-mobile-divider{width:1px;height:18px;background:var(--border);flex-shrink:0;opacity:.6}.toolbar-mobile-spacer{flex:1}.toolbar-mobile-quick-text{border:1px solid var(--accent);background:var(--accent-muted);color:var(--accent);border-radius:var(--radius-md);min-height:32px;padding:0 10px;font-size:var(--font-xs);font-weight:700}.toolbar-mobile-performance-toggle{border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);border-radius:var(--radius-md);min-height:32px;padding:0 10px;font-size:var(--font-xs);font-weight:700}.toolbar-mobile-performance-toggle.is-fast{border-color:var(--warning);color:var(--warning);background:var(--warning-muted)}.toolbar-mobile-performance-toggle.is-auto{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-mobile-more-hint{position:absolute;right:0;bottom:calc(100% + 6px);font-size:10px;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 7px;box-shadow:var(--shadow-md);white-space:nowrap;z-index:1401}.toolbar-performance-toggle.is-fast{border-color:var(--warning);color:var(--warning);background:var(--warning-muted)}.toolbar-performance-toggle.is-auto{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-selection-hint{font-size:var(--font-xs);font-weight:600;padding:0 8px;min-height:30px;display:inline-flex;align-items:center;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input)}.toolbar-selection-hint.is-ok{color:var(--success);border-color:#22c55e40;background:color-mix(in srgb,var(--success-bg) 72%,transparent 28%)}.toolbar-selection-hint.is-warn{color:var(--warning);border-color:#f59e0b40;background:var(--warning-muted)}.toolbar-selection-hint.is-info{color:var(--text-secondary)}.toolbar-icon-btn--sm{width:32px!important;height:32px!important;min-width:32px;min-height:32px;padding:0!important}.toolbar-add-cart--mobile{display:inline-flex;align-items:center;gap:4px;padding:.4rem .65rem;font-size:var(--font-sm);min-height:34px;position:relative}.toolbar-btn.toolbar-go-cart-mobile{display:inline-flex;align-items:center;gap:3px;padding:.4rem .55rem;font-size:var(--font-xs);min-height:34px;white-space:nowrap;position:relative;background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-md);box-shadow:none;transform:none}.toolbar-btn.toolbar-go-cart-mobile:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-input);transform:none}.toolbar-mobile-cart-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:.6rem;font-weight:800;line-height:16px;text-align:center;padding:0 4px;box-shadow:0 0 0 2px var(--bg-panel),0 0 8px #ef444466}.toolbar-mobile-more-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:1400;width:min(340px,90vw);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:10px;display:flex;flex-direction:column;gap:8px;max-height:80vh;overflow:auto;animation:popoverIn .15s ease-out}.toolbar-mobile-halftone-trigger.is-open{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.toolbar-mobile-more-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;min-height:44px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.toolbar-mobile-more-btn:active:not(:disabled){background:var(--bg-hover)}.toolbar-mobile-more-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-mobile-more-row{display:flex;align-items:center;gap:8px;padding:4px 0}.toolbar-mobile-color-knockout{border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:8px;display:flex;flex-direction:column;gap:8px;background:var(--bg-panel)}.toolbar-mobile-color-row{display:flex;align-items:center;gap:8px}.toolbar-mobile-color-row .toolbar-mobile-more-btn{flex:1}.toolbar-mobile-color-slider{display:flex;flex-direction:column;gap:4px;font-size:var(--font-xs);color:var(--text-secondary)}.toolbar-mobile-halftone-box{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:8px;background:var(--bg-panel);min-height:120px}.toolbar-mobile-halftone-backdrop{position:fixed;inset:0;z-index:4200;border:0;background:var(--overlay)}.toolbar-mobile-halftone-modal{position:fixed;z-index:4201;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));bottom:max(10px,env(safe-area-inset-bottom));background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:10px;padding:10px;overflow:auto}.toolbar-mobile-halftone-head{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:0;background:var(--bg-elevated);padding-bottom:4px;z-index:1}.toolbar-mobile-halftone-head span{font-size:var(--font-md);font-weight:700;color:var(--text-primary)}.toolbar-mobile-halftone-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.toolbar-mobile-halftone-tab{min-height:34px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-xs);font-weight:700}.toolbar-mobile-halftone-tab.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.toolbar-mobile-halftone-preview{position:relative;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-panel);overflow:hidden;min-height:220px}.toolbar-mobile-halftone-preview .halftone-preview-viewport{height:clamp(200px,34vh,320px)}@media(min-width:768px)and (max-width:1366px)and (pointer:coarse){.toolbar-mobile-halftone-modal{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));bottom:max(14px,env(safe-area-inset-bottom));max-width:940px;margin:0 auto;padding:12px}.toolbar-mobile-halftone-preview .halftone-preview-viewport{height:clamp(250px,42vh,480px)}}.toolbar-mobile-halftone-preview-empty{min-height:220px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--font-sm)}.toolbar-mobile-knockout-confirm{position:fixed;z-index:4202;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:12px;display:flex;flex-direction:column;gap:10px}.toolbar-mobile-knockout-title{font-size:var(--font-base);font-weight:600;color:var(--text-primary)}.toolbar-mobile-knockout-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.toolbar-mobile-more-btn--cancel{background:var(--danger-muted);border-color:#ef444433;color:var(--danger)}@media(max-width:380px){.toolbar-mobile-knockout-actions{grid-template-columns:1fr}}.toolbar-mobile-more-label{font-size:var(--font-xs);font-weight:600;color:var(--text-secondary);white-space:nowrap}.toolbar--tablet .toolbar-row{gap:.5rem;padding:.45rem .65rem}.toolbar--tablet .toolbar-row-menubar{display:none}.toolbar--tablet .toolbar-row-primary{padding-top:.5rem;padding-bottom:.45rem;flex-wrap:wrap}.toolbar--tablet .toolbar-meta{display:none}.toolbar--tablet .toolbar-variant-select{min-width:0;max-width:180px;font-size:var(--font-sm);padding:.4rem .5rem;overflow:hidden;text-overflow:ellipsis}.toolbar--tablet .toolbar-left{flex:0 1 auto;min-width:0;overflow:hidden}.toolbar--tablet .toolbar-right{gap:.4rem;flex-wrap:wrap;min-width:0;overflow:hidden;justify-content:flex-end}.toolbar--tablet .toolbar-right .toolbar-btn,.toolbar--tablet .toolbar-right .toolbar-icon-btn,.toolbar--tablet .toolbar-add-cart,.toolbar--tablet .toolbar-save-btn{min-width:0;overflow:hidden;text-overflow:ellipsis}.toolbar--tablet .toolbar-btn{padding:.45rem .65rem;font-size:var(--font-sm);min-height:40px}.toolbar--tablet .toolbar-icon-btn{width:40px;height:40px}.toolbar--tablet .toolbar-add-cart{padding:.55rem .85rem;font-size:var(--font-base)}.toolbar--tablet .toolbar-save-btn.toolbar-icon-btn{max-width:40px;min-width:40px;width:40px;height:40px;padding:0;font-size:inherit;flex-shrink:0}.toolbar--tablet .toolbar-login-btn{padding:.45rem .65rem;font-size:var(--font-sm)}.toolbar--tablet .toolbar-row-arrange{padding:.4rem .65rem}.toolbar--tablet .toolbar-arrange-content{gap:.55rem;flex-wrap:wrap}.toolbar--tablet .toolbar-autobuild-btn-center,.toolbar--tablet .toolbar-nest-btn{padding:.45rem .7rem;font-size:var(--font-sm)}.toolbar--tablet .toolbar-margin-label{font-size:var(--font-xs)}.toolbar--tablet .toolbar-margin-input{width:54px;font-size:var(--font-xs);padding:.3rem .35rem}.toolbar--tablet .toolbar-suggestion{font-size:var(--font-xs);padding:.3rem .55rem}.toolbar--tablet .toolbar-tools-panel{width:min(380px,90vw)}.toolbar--tablet .toolbar-tools-trigger{font-size:var(--font-sm);padding:.45rem .65rem}.toolbar--tablet .toolbar-halftone-trigger{width:40px;height:40px;padding:0;justify-content:center;font-size:0}.toolbar--tablet .toolbar-halftone-modal--studio{width:min(980px,96vw);height:min(90vh,900px);max-height:92vh}@media(max-width:900px){.toolbar-halftone-content{grid-template-columns:1fr}.toolbar-halftone-preview-image{max-height:180px;aspect-ratio:auto}}@media(min-width:768px)and (max-width:1023px)and (orientation:portrait){.toolbar--tablet .toolbar-row-primary{min-width:0;overflow:hidden}.toolbar--tablet .toolbar-right{flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.toolbar--tablet .toolbar-add-cart{padding:.5rem .7rem;font-size:var(--font-sm)}.toolbar--tablet .toolbar-variant-select{max-width:160px}.toolbar--tablet .toolbar-save-btn.toolbar-icon-btn{max-width:40px;min-width:40px;width:40px;height:40px;padding:0;overflow:hidden;justify-content:center}.toolbar--tablet .toolbar-save-btn.toolbar-icon-btn svg{flex-shrink:0}.toolbar--tablet .toolbar-arrange-content{gap:.4rem}.toolbar--tablet .toolbar-bg-inline .toolbar-field-label,.toolbar--tablet .toolbar-suggestion-text{display:none}.toolbar--tablet .toolbar-suggestion{padding:.3rem .45rem}}@media(min-width:768px)and (max-width:1023px)and (orientation:landscape){.toolbar--tablet .toolbar-variant-select{max-width:200px}}@media(max-width:767px){.toolbar-row-menubar{display:none}}.canvas-wrapper{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--canvas-viewport);display:flex;flex-direction:column;user-select:none;-webkit-user-select:none}.canvas-wrapper.is-color-pick,.canvas-wrapper.is-color-pick .canvas-viewport,.canvas-wrapper.is-color-pick .sheet,.canvas-wrapper.is-color-pick .placed-object{cursor:crosshair!important}.ruler-row{display:flex;flex-shrink:0;z-index:11}.ruler-body-row{display:flex;flex:1;min-height:0}.canvas-viewport{flex:1;min-width:0;overflow:auto;padding:40px;user-select:none;-webkit-user-select:none}.canvas-viewport--transform{overflow:auto;position:relative;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.canvas-transform-wrapper{will-change:transform;transform-origin:0 0}.canvas-wrapper.is-pan-ready .canvas-viewport{cursor:grab}.canvas-wrapper.is-panning .canvas-viewport{cursor:grabbing;-webkit-user-select:none;user-select:none}.sheet{position:relative;margin:auto;border:2px solid var(--sheet-border);border-radius:2px;box-shadow:0 0 0 1px #47556933,0 4px 12px #00000040,0 12px 40px #00000059;overflow:visible;user-select:none;-webkit-user-select:none}.sheet-bg-transparent{background-image:linear-gradient(45deg,#e0e0e0 25%,transparent 25%),linear-gradient(-45deg,#e0e0e0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e0e0e0 75%),linear-gradient(-45deg,transparent 75%,#e0e0e0 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;background-color:#f0f0f0}.sheet-bg-white{background:#fff}.sheet-bg-gray{background:#bfbfbf}.sheet-bg-black{background:#1a1a1a}.canvas-empty-card{width:min(400px,calc(100vw - 32px))}.canvas-empty-card--fixed{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9999}.canvas-empty-card,.canvas-empty-card--fixed{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:44px 24px 24px;display:flex;flex-direction:column;align-items:stretch;gap:16px;z-index:15;text-align:center;box-shadow:var(--shadow-lg)}.canvas-empty-card-close{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.canvas-empty-card-close:hover{color:var(--text-primary);border-color:var(--border);background:var(--bg-card)}.canvas-empty-card-title{font-size:var(--font-lg);font-weight:700;color:var(--text-primary)}.canvas-empty-card-subtitle{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:4px}.canvas-empty-card-options{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.canvas-empty-card-option{position:relative;width:100%;padding:14px 16px;border-radius:var(--radius-md);border:1.5px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;transition:background .2s,border-color .2s,box-shadow .2s}.canvas-empty-card-option:hover{background:var(--bg-hover);border-color:var(--border);box-shadow:var(--shadow-sm)}.canvas-empty-card-option-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);margin-bottom:4px}.canvas-empty-card-option-label{font-weight:600;font-size:var(--font-base)}.canvas-empty-card-option-desc{font-weight:400;font-size:var(--font-xs);color:var(--text-secondary);line-height:1.35}.canvas-empty-card-option--recommended{background:linear-gradient(135deg,#22c55e14,#22c55e0a);border-color:#22c55e59}.canvas-empty-card-option--recommended .canvas-empty-card-option-icon{background:#22c55e26;color:var(--success, #16a34a)}.canvas-empty-card-option--recommended .canvas-empty-card-option-label{color:var(--success, #16a34a)}.canvas-empty-card-option:not(.canvas-empty-card-option--recommended) .canvas-empty-card-option-icon{background:#0000000f;color:var(--text-secondary)}[data-theme=dark] .canvas-empty-card-option:not(.canvas-empty-card-option--recommended) .canvas-empty-card-option-icon{background:#ffffff14;color:var(--text-secondary)}.canvas-empty-card-option--recommended:hover{background:linear-gradient(135deg,#22c55e24,#22c55e14);border-color:#22c55e80;box-shadow:0 0 0 3px #22c55e26}.canvas-empty-card-option-badge{position:absolute;top:10px;right:12px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--success, #16a34a);padding:2px 6px;border-radius:var(--radius-sm);background:#22c55e33}.sheet.sheet--pixel-grid:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.34) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.34) 1px,transparent 1px),linear-gradient(to right,rgba(0,0,0,.2) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.2) 1px,transparent 1px);background-size:var(--pixel-grid-size, 16px) var(--pixel-grid-size, 16px),var(--pixel-grid-size, 16px) var(--pixel-grid-size, 16px),var(--pixel-grid-size, 16px) var(--pixel-grid-size, 16px),var(--pixel-grid-size, 16px) var(--pixel-grid-size, 16px);z-index:10}.selection-marquee{position:absolute;border:1.5px dashed var(--selection-marquee-border);background:var(--selection-marquee-fill);pointer-events:none;z-index:1001}body.halftone-modal-open .canvas-viewport{pointer-events:none!important}body.halftone-modal-open .selection-marquee,body.halftone-modal-open .resize-handle,body.halftone-modal-open .selection-chrome,body.halftone-modal-open .selection-action-bar,body.halftone-modal-open .precision-pill-wrap,body.halftone-modal-open .object-label{visibility:hidden!important}body.halftone-modal-open .placed-object.selected{visibility:hidden!important;border-color:transparent!important;box-shadow:none!important;outline:none!important}.grid-line{position:absolute;pointer-events:none}.grid-line-v{top:0;bottom:0;width:1px;background:#64748b1a}.grid-line-h{left:0;right:0;height:1px;background:#64748b1a}.placed-object{position:absolute;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:2px solid transparent;border-radius:2px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.placed-object:hover{border-color:var(--placed-object-hover-border)}.placed-object.selected{border-color:var(--placed-object-selected-border);border-width:2px;box-shadow:0 2px 12px var(--placed-object-selected-glow)}.placed-object.selected.dpi-low{border-color:#ef444480;box-shadow:0 0 0 2px #ef44441f}.placed-object.selected.dpi-ok{border-color:#eab30880;box-shadow:0 0 0 2px #eab3081f}.placed-object.selected.dpi-optimum{border-color:#22c55e80;box-shadow:0 0 0 2px #22c55e1f}.placed-object.placed-object--text{border-radius:0;box-shadow:none!important;border-width:1px;border-style:solid;border-color:transparent}.placed-object.placed-object--text:hover{border-color:var(--placed-object-hover-border)}.placed-object.placed-object--text.selected{border-width:1px;border-color:transparent;box-shadow:none!important;outline:2px solid var(--placed-object-selected-border);outline-offset:2px}.placed-object.placed-object--text.selected.dpi-low{outline-color:#ef4444d9}.placed-object.placed-object--text.selected.dpi-ok{outline-color:#eab308e6}.placed-object.placed-object--text.selected.dpi-optimum{outline-color:#22c55ed9}.placed-object:active{cursor:grabbing}.canvas-wrapper.is-color-pick .placed-object:active{cursor:crosshair!important}.placed-object img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.canvas-wrapper.is-pixel-zoom .placed-object{overflow:hidden}.canvas-wrapper.is-pixel-zoom .placed-object img,.canvas-wrapper.is-pixel-zoom .placed-object canvas{image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}.canvas-wrapper.is-pixel-zoom .canvas-transform-wrapper--pixel-zoom{image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}.selection-chrome{position:absolute;inset:0;pointer-events:none;z-index:4}.selection-chrome>*{pointer-events:auto}@keyframes selection-chrome-in{0%{opacity:0}to{opacity:1}}@keyframes precision-pill-appear{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.selection-chrome:not(.selection-chrome--text){animation:selection-chrome-in .18s ease-out}.selection-chrome--text{position:absolute;top:-44px;left:50%;transform:translate(-50%);width:max-content;z-index:4}.selection-chrome--text .selection-action-bar{position:static;transform:none}.selection-action-bar{position:absolute;top:-46px;left:50%;transform:translate(-50%);display:flex;align-items:stretch;background:var(--selection-action-bar-bg);border:1px solid var(--selection-action-bar-border);border-radius:10px;box-shadow:var(--selection-action-bar-shadow);overflow:hidden;transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.selection-action-bar__btn{display:flex;align-items:center;justify-content:center;width:36px;height:34px;padding:0;margin:0;border:none;background:transparent;color:var(--selection-action-bar-text);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.selection-action-bar__btn:hover{background:var(--selection-action-bar-hover-bg);color:var(--selection-action-bar-hover-text)}.selection-action-bar__btn--danger{color:var(--selection-action-bar-danger)}.selection-action-bar__btn--danger:hover{background:var(--selection-action-bar-danger-hover-bg);color:var(--selection-action-bar-danger-hover-text)}.selection-action-bar__btn+.selection-action-bar__btn{border-left:1px solid var(--selection-action-bar-sep)}.selection-action-bar__btn svg{pointer-events:none}.resize-handle{position:absolute;width:40px;height:40px;padding:0;margin:0;border:none;border-radius:0;background:transparent;z-index:3;cursor:nwse-resize;display:flex;align-items:center;justify-content:center;box-shadow:none}.resize-handle__dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--resize-handle-dot-ring);background:var(--accent);box-shadow:var(--shadow-sm);pointer-events:none;transition:transform var(--transition-fast),background var(--transition-fast)}.resize-handle:hover .resize-handle__dot,.resize-handle:focus-visible .resize-handle__dot{background:var(--accent-hover);transform:scale(1.12)}.resize-handle-nw{top:-20px;left:-20px;cursor:nwse-resize}.resize-handle-ne{top:-20px;right:-20px;cursor:nesw-resize}.resize-handle-sw{bottom:-20px;left:-20px;cursor:nesw-resize}.resize-handle-se{bottom:-20px;right:-20px;cursor:nwse-resize}.resize-handle--text-pill{width:22px;height:18px;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.18);box-shadow:0 1px 3px #0000001f;top:50%;transform:translateY(-50%);cursor:ew-resize;z-index:4}.resize-handle--text-pill:hover,.resize-handle--text-pill:focus-visible{background:#f8fafc;border-color:#3b82f673;box-shadow:0 2px 6px #00000024}.resize-handle-mid-w{left:-11px;right:auto}.resize-handle-mid-e{right:-11px;left:auto}.resize-handle--text-pill .resize-handle__dot{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.precision-pill-wrap{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;z-index:5;pointer-events:none;animation:precision-pill-appear .22s ease-out}.precision-pill-wrap>*{pointer-events:auto}.precision-pill-wrap>.precision-pill__dpi-subtle{pointer-events:none}.precision-pill{--pill-w-locked: 223px;--pill-w-unlocked: 302px;width:var(--pill-w-unlocked);max-width:calc(100vw - 24px);background:var(--precision-pill-bg);border:1px solid var(--precision-pill-border);border-radius:999px;padding:5px 8px 5px 10px;box-shadow:var(--precision-pill-shadow);transition:width .24s ease,box-shadow var(--transition-fast),background var(--transition-base),border-color var(--transition-base)}.precision-pill--locked{width:var(--pill-w-locked)}.precision-pill__row{display:flex;align-items:center;gap:5px;justify-content:space-between}.precision-pill__col{display:flex;flex-direction:column;align-items:center;gap:0;min-width:0;flex:1;border-radius:12px;padding:3px 5px 4px;transition:opacity .22s ease,filter .22s ease,background .18s ease,transform .18s ease}.precision-pill__col--driver{background:var(--precision-pill-driver-bg);opacity:1;filter:none}.precision-pill__col--driver .precision-pill__label{color:var(--precision-pill-label-accent)}.precision-pill__col--follower{opacity:.32;filter:grayscale(.45);cursor:pointer;transform:scale(.97)}.precision-pill__col--follower:hover{opacity:.5;filter:grayscale(.25)}.precision-pill__col--follower:focus-visible{outline:2px solid var(--precision-pill-follower-outline);outline-offset:1px}.precision-pill__col--follower .precision-pill__label{color:var(--precision-pill-label-muted)}.precision-pill__col--independent{opacity:1;filter:none}.precision-pill__col--independent .precision-pill__label{color:var(--precision-pill-label-accent)}.precision-pill__label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.1}.precision-pill__input{width:100%;max-width:70px;border:none;border-radius:6px;background:var(--precision-pill-input-bg);color:var(--precision-pill-input-text);font-size:16px;font-weight:700;text-align:center;padding:2px 3px;line-height:1.25}.precision-pill__input:focus{outline:2px solid var(--precision-pill-input-focus-ring);outline-offset:0}.precision-pill__readonly{font-size:16px;font-weight:700;color:var(--precision-pill-readonly);line-height:1.35;min-height:1.35em;-webkit-user-select:none;user-select:none}.precision-pill__unit{font-size:10px;font-weight:600;color:var(--precision-pill-unit);line-height:1;margin-top:1px}.precision-pill__link{flex-shrink:0;display:flex;align-items:center;color:var(--precision-pill-link);opacity:.9;padding:0 2px}.precision-pill__dot-sep{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--precision-pill-dot);margin:0 2px}.precision-pill__lock{flex-shrink:0;width:34px;height:34px;border:none;border-radius:50%;background:var(--accent);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-left:2px;transition:background var(--transition-fast),transform var(--transition-fast);box-shadow:var(--precision-pill-lock-shadow)}.precision-pill__lock:hover{background:var(--accent-hover);transform:scale(1.03)}.precision-pill__lock:not(.is-locked){background:var(--precision-pill-lock-unlocked-bg);box-shadow:none;color:var(--precision-pill-lock-unlocked-text)}.precision-pill__lock:not(.is-locked):hover{background:var(--precision-pill-lock-unlocked-hover)}.precision-pill__dpi-subtle{display:flex;align-items:center;justify-content:center;padding:5px 14px;border-radius:999px;background:var(--precision-pill-dpi-chip-bg);border:1px solid var(--precision-pill-dpi-chip-border);box-shadow:var(--precision-pill-dpi-chip-shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.precision-pill__dpi{font-size:12px;font-weight:800;letter-spacing:.06em;text-shadow:var(--precision-pill-dpi-text-shadow);white-space:nowrap}.precision-pill__dpi--low{color:#f87171}.precision-pill__dpi--ok{color:#fbbf24}.precision-pill__dpi--optimum{color:#4ade80}.precision-pill-wrap.dpi-low .precision-pill{box-shadow:0 7px 29px var(--precision-pill-dpi-ambient),0 0 0 1px var(--precision-pill-dpi-ring-low)}.precision-pill-wrap.dpi-ok .precision-pill{box-shadow:0 7px 29px var(--precision-pill-dpi-ambient),0 0 0 1px var(--precision-pill-dpi-ring-ok)}.precision-pill-wrap.dpi-optimum .precision-pill{box-shadow:0 7px 29px var(--precision-pill-dpi-ambient),0 0 0 1px var(--precision-pill-dpi-ring-optimum)}.object-label{position:absolute;top:calc(100% + 8px);left:0;right:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;color:var(--object-label-color);background:var(--object-label-bg);padding:6px 10px;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);pointer-events:none}.object-label>*{pointer-events:auto}.object-label--text{justify-content:flex-start;gap:6px;overflow:visible}.object-label--size-editor{justify-content:center;align-items:stretch;flex-direction:column;gap:4px;overflow:visible;white-space:normal;padding:5px 8px;border-radius:10px}.object-label-size-controls{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.object-label-size-mode{border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-size:12px;font-weight:600;padding:0 8px;min-width:84px;height:30px}.object-label-size-input{width:68px;min-width:68px;max-width:68px;height:30px;min-height:30px;text-align:center;padding:0 6px}.object-label-size-meta{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:10px;font-weight:600;line-height:1}.object-label-size-meta-sep{color:var(--text-secondary);opacity:.7}.object-label-size-dpi{color:var(--text-secondary);font-weight:700}.object-label-size-dpi--low{color:#fca5a5}.object-label-size-dpi--ok{color:#fcd34d}.object-label-size-dpi--optimum{color:#86efac}.object-label--text .object-label-text-input{flex:1;min-width:60px;max-width:180px;margin-right:4px}.object-label-sep{width:1px;height:16px;background:var(--border);opacity:.6;margin:0 8px;flex-shrink:0}.object-label-unit{font-size:11px;font-weight:700;opacity:.55;margin-right:2px;flex-shrink:0;letter-spacing:.02em}.object-label--text .object-label-text-input--height{width:64px;min-width:56px;max-width:88px;flex:0 0 auto}.object-label-size{pointer-events:none}.object-label-lock{flex-shrink:0;width:24px;height:24px;padding:0;margin:0;border:none;border-radius:6px;background:#ffffff1f;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.object-label-lock:hover{background:#ffffff38}.object-label-lock.is-locked{background:#3b82f666;color:#fff}.object-label-lock.is-locked:hover{background:#3b82f68c}.object-label-text-input{border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:12px;padding:4px 8px;font-weight:500;resize:none;min-height:26px;line-height:1.2}.object-label-text-input::placeholder{color:var(--text-muted)}.object-label-text-btn{border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:11px;font-weight:600;padding:4px 8px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.object-label-text-btn:hover{background:var(--bg-hover)}.object-label-text-btn.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.object-label-more-toggle{min-width:30px;padding:4px 7px}.object-label-more-anchor{position:relative;display:inline-flex}.object-label-more-panel{position:absolute;right:0;bottom:calc(100% + 8px);min-width:220px;display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:10px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--bg-elevated) 92%,#000 8%);box-shadow:0 10px 24px #00000047;z-index:6}.object-label-more-row{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary)}.object-label-more-apply{width:100%;justify-content:center}.object-label-text-color{width:24px;height:24px;border:1px solid var(--border-strong);border-radius:6px;background:transparent;padding:0;cursor:pointer}.object-label.dpi-low{color:#fecaca;border:1px solid rgba(239,68,68,.4)}.object-label.dpi-ok{color:#fde68a;border:1px solid rgba(234,179,8,.4)}.object-label.dpi-optimum{color:#bbf7d0;border:1px solid rgba(34,197,94,.4)}.object-assist-hint{position:absolute;left:50%;bottom:-54px;transform:translate(-50%);padding:4px 8px;border-radius:999px;border:1px solid rgba(37,99,235,.5);background:color-mix(in srgb,var(--bg-elevated) 84%,#3b82f6 16%);color:var(--text-primary);font-size:10px;font-weight:700;letter-spacing:.01em;white-space:nowrap;pointer-events:none;z-index:4;box-shadow:0 2px 8px #0f172a33}.placed-object.warn-overlap{outline:2px solid rgba(234,179,8,.65);outline-offset:3px}.placed-object.warn-overlap:after{content:"";position:absolute;inset:0;background:#eab3081a;pointer-events:none;z-index:0}.placed-object.warn-clipped{box-shadow:inset 0 0 0 2px #ef4444d1}.placed-object.warn-background:before{content:"";position:absolute;inset:0;border:3px solid rgba(168,85,247,.4);border-radius:2px;pointer-events:none;z-index:1}.warn-badges{position:absolute;top:-2px;right:-2px;display:flex;gap:3px;z-index:3;pointer-events:none;transform:translateY(-100%)}.warn-badge{font-size:10px;font-weight:700;letter-spacing:.02em;padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap;line-height:1.4}.warn-badge-overlap{background:#eab308d9;color:#1a1400}.warn-badge-bg{background:#a855f7d9;color:#fff}.warn-badge-clipped{background:#ef4444eb;color:#fff}.sheet-badge{position:absolute;top:.75rem;right:.75rem;font-size:var(--font-base);color:var(--text-primary);background:var(--badge-bg);border:1px solid var(--badge-border);border-radius:var(--radius-md);padding:.4rem .65rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:10;box-shadow:var(--shadow-sm)}.is-touch .selection-action-bar__btn{width:44px;height:42px}.canvas-wrapper.is-touch .canvas-viewport{touch-action:none}.canvas-wrapper.is-touch.is-tier-phone .resize-handle{width:48px;height:48px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle__dot{width:18px;height:18px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-nw{top:-24px;left:-24px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-ne{top:-24px;right:-24px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-sw{bottom:-24px;left:-24px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-se{bottom:-24px;right:-24px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle--text-pill{width:28px;height:22px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-mid-w{left:-14px}.canvas-wrapper.is-touch.is-tier-phone .resize-handle-mid-e{right:-14px}.canvas-wrapper.is-touch.is-tier-tablet .selection-action-bar__btn{width:48px;height:44px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle{width:52px;height:52px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle__dot{width:20px;height:20px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-nw{top:-26px;left:-26px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-ne{top:-26px;right:-26px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-sw{bottom:-26px;left:-26px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-se{bottom:-26px;right:-26px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle--text-pill{width:30px;height:24px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-mid-w{left:-15px}.canvas-wrapper.is-touch.is-tier-tablet .resize-handle-mid-e{right:-15px}.resize-handle:active .resize-handle__dot{background:var(--accent-hover);transform:scale(1.18)}.selection-action-bar__btn:active{background:#3b82f624}@media(max-width:767px){.canvas-viewport{padding:8px;overscroll-behavior:contain}.sheet-badge{font-size:var(--font-xs);padding:.3rem .5rem}}@media(min-width:768px)and (max-width:1023px){.canvas-viewport{overscroll-behavior:contain}}.selection-action-bar__btn--active{color:#3b82f6;background:#3b82f61f}.selection-action-bar__btn--disabled{opacity:.35;cursor:not-allowed}.resize-handle--locked .resize-handle__dot{opacity:.3;cursor:not-allowed}.resize-handle--text-pill.resize-handle--locked{opacity:.35;cursor:not-allowed}.resize-handle--locked:hover .resize-handle__dot,.resize-handle--locked:focus-visible .resize-handle__dot{transform:none;background:var(--accent)}.protected-hint{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);background:#1a1a1a;color:#fff;font-size:11px;padding:3px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;animation:protected-hint-in .15s ease-out;z-index:10}@keyframes protected-hint-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.aspect-unlock-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1a1a1a;color:#fff;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.4;white-space:nowrap;z-index:20;box-shadow:0 4px 16px #0000004d;animation:protected-hint-in .15s ease-out}.aspect-unlock-tooltip__msg{display:block;margin-bottom:6px}.aspect-unlock-tooltip__btns{display:flex;gap:6px;justify-content:flex-end}.aspect-unlock-tooltip__btns button{border:none;border-radius:4px;padding:3px 10px;font-size:11px;cursor:pointer;background:#ffffff1f;color:#ccc}.aspect-unlock-tooltip__btns button:hover{background:#fff3}.aspect-unlock-tooltip__btns button.aspect-unlock-tooltip__confirm{color:#fca5a5}.aspect-unlock-tooltip__btns button.aspect-unlock-tooltip__confirm:hover{background:#ff646433}.context-menu{position:fixed;z-index:2500;min-width:210px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:6px;animation:popoverIn .12s ease-out}.context-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:12px;font-weight:600;text-align:left;padding:8px 10px;cursor:pointer;transition:background var(--transition-fast)}.context-menu-item:hover:not(:disabled){background:var(--bg-hover)}.context-menu-item:disabled{opacity:.4;cursor:not-allowed}.context-menu-item.is-danger{color:var(--danger)}.context-menu-item.is-danger:hover:not(:disabled){background:var(--danger-muted)}.context-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu-shortcut{font-size:11px;color:var(--text-muted);font-weight:700}.context-menu-separator{height:1px;margin:5px 4px;background:var(--border)}@media(pointer:coarse){.context-menu{min-width:240px}.context-menu-item{padding:12px 14px;min-height:44px;font-size:13px}.context-menu-shortcut{display:none}}.ppl-loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden;border-radius:inherit;background:#f8fafcb8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.ppl-loading__shimmer{position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);background-size:220% 100%;animation:ppl-shimmer 1.15s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.ppl-loading__shimmer{animation:none;opacity:.35}}@keyframes ppl-shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.ppl-loading__pct{position:relative;z-index:1;padding:.2em .45em;border-radius:6px;font-size:max(11px,min(2.8vmin,15px));font-weight:600;font-variant-numeric:tabular-nums;color:#1e293b;background:#ffffffe0;box-shadow:0 1px 3px #0f172a1f}.ruler-area{position:sticky;z-index:10;pointer-events:none}.ruler-area--horizontal{top:0;left:0;height:20px;overflow:hidden;flex:1;min-width:0}.ruler-area--vertical{top:0;left:0;width:26px;overflow:hidden}.ruler-corner{position:sticky;top:0;left:0;width:26px;height:20px;background:var(--bg-panel);border-right:1px solid var(--border);border-bottom:1px solid var(--border);z-index:12;flex-shrink:0}.canvas-ruler{position:relative;background:var(--bg-panel);flex-shrink:0}.canvas-ruler--horizontal{height:20px;border-bottom:1px solid var(--border)}.canvas-ruler--vertical{width:26px;border-right:1px solid var(--border)}.ruler-tick,.ruler-subtick{position:absolute}.canvas-ruler--horizontal .ruler-tick,.canvas-ruler--horizontal .ruler-subtick{top:0;width:1px;background:var(--text-muted);opacity:.35}.canvas-ruler--horizontal .ruler-tick{height:10px}.canvas-ruler--horizontal .ruler-subtick{height:5px;opacity:.2}.canvas-ruler--vertical .ruler-tick,.canvas-ruler--vertical .ruler-subtick{left:0;height:1px;background:var(--text-muted);opacity:.35}.canvas-ruler--vertical .ruler-tick{width:10px}.canvas-ruler--vertical .ruler-subtick{width:5px;opacity:.2}.canvas-ruler--vertical .ruler-label{left:10px;min-width:18px}.ruler-label{position:absolute;font-size:9px;color:var(--text-muted);font-family:system-ui,sans-serif;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.canvas-ruler--horizontal .ruler-label{top:10px;left:3px}.canvas-ruler--vertical .ruler-label{left:10px;top:2px}@media(max-width:768px){.ruler-area--horizontal{height:16px}.ruler-area--vertical{width:22px}.ruler-corner{width:22px;height:16px}.canvas-ruler--horizontal{height:16px}.canvas-ruler--vertical{width:22px}.ruler-label{font-size:8px}.canvas-ruler--horizontal .ruler-tick{height:8px}.canvas-ruler--horizontal .ruler-subtick{height:4px}.canvas-ruler--vertical .ruler-tick{width:8px}.canvas-ruler--vertical .ruler-subtick{width:4px}.canvas-ruler--horizontal .ruler-label{top:8px}.canvas-ruler--vertical .ruler-label{left:6px;min-width:16px}}.empty-start-welcome{margin:0 0 1rem;font-size:.95rem;line-height:1.45;color:var(--text-secondary, #5c5f6a);white-space:pre-wrap}.empty-start-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px}.empty-start-modal{position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden;width:min(952px,calc(100vw - 48px));height:min(90vh,920px);max-height:min(90vh,920px);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:52px 32px 28px;box-shadow:var(--shadow-lg)}.empty-start-close{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.empty-start-close:hover{color:var(--text-primary);border-color:var(--border);background:var(--bg-card)}.empty-start-title{font-size:var(--font-lg);font-weight:700;color:var(--text-primary);margin:0 0 4px;text-align:center;flex-shrink:0}.empty-start-subtitle{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 24px;text-align:center;flex-shrink:0}.empty-start-sections{display:flex;flex-direction:column;gap:24px;flex:1 1 0;min-height:280px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overflow-anchor:auto}.empty-start-section{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.empty-start-section--actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-strong);flex-shrink:0}.empty-start-section-title{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);margin:0}.empty-start-section--upload .empty-start-section-title{font-size:var(--font-base);color:var(--text-primary)}.empty-start-upload-desc{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 4px}.empty-start-upload-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 20px;border:2px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-input);color:var(--accent);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.empty-start-upload-btn:hover:not(:disabled){background:#3b82f614;border-color:var(--accent)}.empty-start-upload-btn:disabled{opacity:.6;cursor:not-allowed}.empty-start-upload-btn-icon{display:flex;align-items:center;justify-content:center}.empty-start-loading{display:flex;justify-content:center;padding:16px}.empty-start-loading .spinner{width:24px;height:24px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:emptyStartSpin .8s linear infinite}@keyframes emptyStartSpin{to{transform:rotate(360deg)}}.empty-start-design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.empty-start-design-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-xs);cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s}.empty-start-design-card:hover{background:var(--bg-hover);border-color:var(--border);box-shadow:var(--shadow-sm)}.empty-start-design-thumb{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:#0000000f;color:var(--text-secondary)}[data-theme=dark] .empty-start-design-thumb{background:#ffffff14}.empty-start-design-name{font-weight:600;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.empty-start-design-meta,.empty-start-design-date{font-size:.7rem;color:var(--text-secondary)}.empty-start-place-bar{flex-shrink:0;padding:12px 0 4px}.empty-start-place-selected{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;margin-top:12px;font-size:var(--font-base);font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;box-shadow:0 2px 8px #3b82f659}.empty-start-place-selected:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f673}.empty-start-place-selected:active{transform:translateY(0)}.empty-start-place-selected-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.empty-start-uploads-empty{font-size:var(--font-sm);color:var(--text-secondary);margin:0;padding:12px 0}.empty-start-asset-scroll{max-height:320px;overflow-y:auto;overflow-x:hidden;padding-right:6px}.empty-start-asset-scroll::-webkit-scrollbar{width:6px}.empty-start-asset-scroll::-webkit-scrollbar-track{background:var(--bg-input);border-radius:3px}.empty-start-asset-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.empty-start-asset-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.empty-start-asset-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.empty-start-asset-thumb{position:relative;aspect-ratio:1;padding:0;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s;touch-action:manipulation}.empty-start-asset-thumb:hover{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.empty-start-asset-thumb.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f666}.empty-start-asset-badge{position:absolute;top:4px;right:4px;display:flex;align-items:center;gap:3px;background:var(--accent);color:#fff;border-radius:5px;padding:3px 5px;font-size:.875rem;font-weight:700;min-width:24px;height:24px;box-sizing:border-box}.empty-start-asset-qty{line-height:1}.empty-start-asset-clear{display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:#ffffff4d;color:var(--danger);border-radius:2px;cursor:pointer;transition:background .15s}.empty-start-asset-clear:hover{background:var(--danger-muted);color:var(--danger)}.empty-start-asset-clear:focus-visible{outline:2px solid #fff;outline-offset:1px}.empty-start-asset-thumb img{width:100%;height:100%;object-fit:cover;display:block}.empty-start-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.empty-start-options{display:flex;flex-direction:column;gap:10px;width:100%}@media(min-width:420px){.empty-start-options{flex-direction:row;align-items:stretch;gap:16px}}.empty-start-option{position:relative;flex:1;min-width:0;padding:14px 18px;border-radius:var(--radius-md);border:2px solid var(--border-strong);background:var(--bg-card);color:var(--text-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;box-shadow:0 1px 3px #0000000f;transition:background .2s,border-color .2s,box-shadow .2s}[data-theme=dark] .empty-start-option{box-shadow:0 1px 4px #0003}.empty-start-option:hover{background:var(--bg-hover);border-color:var(--border);box-shadow:0 2px 8px #0000001a}[data-theme=dark] .empty-start-option:hover{box-shadow:0 2px 8px #00000059}.empty-start-option-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);margin-bottom:2px}.empty-start-option-label{font-weight:700;font-size:.9375rem}.empty-start-option-desc{font-weight:400;font-size:var(--font-xs);color:var(--text-secondary);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.empty-start-option--recommended{background:linear-gradient(135deg,#22c55e1f,#22c55e0f);border-color:#22c55e80;box-shadow:0 1px 4px #22c55e26}.empty-start-option--recommended .empty-start-option-icon{background:#22c55e33;color:var(--success, #16a34a)}.empty-start-autobuild-hero{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:2px;margin-top:2px}.empty-start-autobuild-shell{position:relative;display:inline-flex;align-items:stretch}.empty-start-autobuild-face{position:relative;z-index:0;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:10px;background:#fff;animation:empty-start-autobuild-glow 4.5s ease-in-out infinite;box-shadow:inset 0 0 0 1px #22c55e47,0 0 0 1px #22c55e1f,0 1px 2px #0000000d,0 4px 14px #22c55e24,0 0 28px #4ade8033,0 0 52px #22c55e14}@keyframes empty-start-autobuild-glow{0%,to{box-shadow:inset 0 0 0 1px #22c55e42,0 0 0 1px #22c55e1a,0 1px 2px #0000000d,0 4px 12px #22c55e1f,0 0 22px #4ade8029,0 0 44px #22c55e0f}50%{box-shadow:inset 0 0 0 1px #22c55e57,0 0 0 1px #22c55e29,0 1px 2px #0000000d,0 5px 18px #22c55e33,0 0 34px #4ade8047,0 0 60px #22c55e1f}}[data-theme=dark] .empty-start-autobuild-face{background:#161c24;animation:empty-start-autobuild-glow-dark 4.5s ease-in-out infinite;box-shadow:inset 0 0 0 1px #4ade8038,0 0 0 1px #22c55e24,0 1px 3px #0006,0 4px 16px #22c55e1f,0 0 32px #4ade8024,0 0 56px #16a34a1a}@keyframes empty-start-autobuild-glow-dark{0%,to{box-shadow:inset 0 0 0 1px #4ade802e,0 0 0 1px #22c55e1a,0 1px 3px #0006,0 4px 12px #22c55e14,0 0 26px #4ade801a,0 0 48px #16a34a0f}50%{box-shadow:inset 0 0 0 1px #4ade804d,0 0 0 1px #22c55e2e,0 1px 3px #0006,0 5px 20px #22c55e29,0 0 38px #4ade8033,0 0 64px #16a34a24}}.empty-start-autobuild-emoji-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.35em;height:1.35em}.empty-start-autobuild-emoji-wrap:before{content:"";position:absolute;inset:-35%;border-radius:50%;background:radial-gradient(circle at 50% 65%,rgba(255,140,0,.55) 0%,rgba(255,69,0,.35) 35%,rgba(255,200,0,.15) 55%,transparent 72%);animation:empty-start-flame-core .42s ease-in-out infinite alternate;z-index:0;pointer-events:none}.empty-start-autobuild-emoji{position:relative;z-index:1;font-size:1.15rem;line-height:1;display:inline-flex;transform-origin:50% 85%;animation:empty-start-flame-flicker .28s steps(2,end) infinite,empty-start-flame-dance .55s ease-in-out infinite alternate;filter:brightness(1.12) contrast(1.12) drop-shadow(0 -2px 4px rgba(255,220,100,.65)) drop-shadow(0 2px 6px rgba(255,80,0,.55)) drop-shadow(0 4px 10px rgba(255,40,0,.35))}@keyframes empty-start-flame-core{0%{transform:scale(.92);opacity:.85;filter:blur(1px)}to{transform:scale(1.08);opacity:1;filter:blur(.5px)}}@keyframes empty-start-flame-flicker{0%{filter:brightness(1.08) contrast(1.1) drop-shadow(0 -1px 3px rgba(255,230,120,.7)) drop-shadow(0 2px 5px rgba(255,90,0,.5))}to{filter:brightness(1.22) contrast(1.22) drop-shadow(0 -3px 6px rgba(255,200,60,.85)) drop-shadow(0 3px 8px rgba(255,50,0,.65)) drop-shadow(0 1px 3px rgba(255,180,0,.5))}}@keyframes empty-start-flame-dance{0%{transform:translateY(0) rotate(-4deg) scaleY(1)}to{transform:translateY(-1px) rotate(4deg) scaleY(1.06)}}.empty-start-autobuild-title{font-size:.6875rem;font-weight:800;letter-spacing:.1em;color:var(--success, #16a34a);text-transform:uppercase;line-height:1.2;text-shadow:0 0 8px rgba(250,204,21,.35),0 0 14px rgba(34,197,94,.28)}@media(prefers-reduced-motion:reduce){.empty-start-autobuild-face,[data-theme=dark] .empty-start-autobuild-face{animation:none}.empty-start-autobuild-emoji-wrap:before{animation:none;opacity:.7}.empty-start-autobuild-emoji{animation:none;filter:drop-shadow(0 2px 4px rgba(255,100,0,.45))}}.empty-start-option--recommended .empty-start-option-label{color:var(--success, #16a34a)}.empty-start-option:not(.empty-start-option--recommended){border-color:var(--accent);background:linear-gradient(135deg,#3b82f60f,#3b82f605)}.empty-start-option:not(.empty-start-option--recommended) .empty-start-option-icon{background:#3b82f61f;color:var(--accent)}.empty-start-option:not(.empty-start-option--recommended) .empty-start-option-label{color:var(--accent)}[data-theme=dark] .empty-start-option:not(.empty-start-option--recommended) .empty-start-option-icon{background:#3b82f62e;color:var(--accent)}.empty-start-option-badge{position:absolute;top:6px;right:10px;font-size:.6rem;font-weight:700;color:var(--success, #16a34a);text-transform:uppercase;letter-spacing:.03em}.empty-start-option--recommended:hover{background:linear-gradient(135deg,#22c55e2e,#22c55e1a);border-color:#22c55ea6;box-shadow:0 2px 10px #22c55e40}.empty-start-option:not(.empty-start-option--recommended):hover{background:linear-gradient(135deg,#3b82f61a,#3b82f60d);border-color:var(--accent);box-shadow:0 2px 8px #3b82f633}@media(max-width:767px){.empty-start-overlay{padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));align-items:flex-end}.empty-start-modal{width:100%;max-width:none;max-height:calc(100dvh - 24px);margin-bottom:0;padding:20px 16px calc(24px + env(safe-area-inset-bottom,0px));padding-top:44px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.empty-start-close{top:max(10px,env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px))}.empty-start-title{font-size:var(--font-base);margin-bottom:2px}.empty-start-subtitle{font-size:.8125rem;margin-bottom:16px}.empty-start-sections{gap:14px;min-height:0;flex:1 1 0}.empty-start-section--upload .empty-start-section-title{font-size:var(--font-sm)}.empty-start-upload-btn{padding:14px 16px;font-size:var(--font-sm)}.empty-start-section--actions{flex-shrink:0;margin-top:10px;padding-top:10px}.empty-start-asset-scroll{max-height:180px}.empty-start-asset-grid{grid-template-columns:repeat(4,1fr);gap:6px}.empty-start-option--recommended{padding-top:19px}.empty-start-autobuild-hero{margin-bottom:-6px}.empty-start-autobuild-face{padding:5px 10px;gap:4px;animation:none;box-shadow:inset 0 0 0 1px #22c55e47,0 0 0 1px #22c55e1a,0 1px 2px #0000000d,0 3px 10px #22c55e1f}.empty-start-autobuild-title{font-size:clamp(.6875rem,2vw,.8125rem)}.empty-start-autobuild-emoji-wrap{width:1.18em;height:1.18em}.empty-start-autobuild-emoji{font-size:.95rem;filter:brightness(1.08) contrast(1.08) drop-shadow(0 -1px 3px rgba(255,220,100,.55)) drop-shadow(0 2px 5px rgba(255,80,0,.45)) drop-shadow(0 3px 8px rgba(255,40,0,.28))}[data-theme=dark] .empty-start-autobuild-face{animation:none;box-shadow:inset 0 0 0 1px #4ade8038,0 0 0 1px #22c55e1f,0 1px 3px #00000059,0 3px 12px #22c55e1a,0 0 20px #4ade8014}.empty-start-option:not(.empty-start-option--recommended) .empty-start-option-icon svg{width:18px;height:18px}.empty-start-place-selected{padding:12px 16px;font-size:var(--font-sm)}.empty-start-place-bar{padding:12px 0 8px}.empty-start-options{flex-direction:column;gap:6px}.empty-start-option{padding:9px 10px;gap:3px;min-height:44px}.empty-start-option-icon{width:27px;height:27px}.empty-start-option-label{font-size:.78rem}.empty-start-option-desc{font-size:.663rem;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.empty-start-option-badge{top:5px;right:8px;font-size:.58rem}}@media(min-width:768px)and (max-width:1023px){.empty-start-overlay{padding:20px}.empty-start-modal{width:min(640px,calc(100vw - 40px));max-height:min(85vh,720px);padding:48px 24px 28px}.empty-start-asset-scroll{max-height:240px}.empty-start-asset-grid{grid-template-columns:repeat(6,1fr);gap:8px}.empty-start-section--actions{margin-top:16px;padding-top:16px}}@media(min-width:1024px){.empty-start-modal{width:min(952px,calc(100vw - 48px));max-height:min(90vh,920px);padding:52px 32px 28px}.empty-start-options{align-items:stretch;gap:20px}.empty-start-option{padding:16px 20px}.empty-start-option-icon{width:34px;height:34px}}.left-panel{width:260px;padding:0;background:var(--bg-panel);border-right:1px solid var(--border);box-shadow:inset -1px 0 0 var(--border);display:flex;flex-direction:column;gap:0;-webkit-user-select:none;user-select:none;position:relative;transition:width var(--transition-slow)}.lp-drive-lazy{position:relative;flex:1 1 auto;min-height:200px;min-width:0;display:flex;flex-direction:column;overflow:hidden}.lp-guest-banner{position:relative;flex-shrink:0;padding:10px 28px 10px 10px;margin:0;background:linear-gradient(135deg,#6366f11f,#3b82f614);border-bottom:1px solid var(--border-strong);font-size:var(--font-sm);line-height:1.4;color:var(--text-primary)}.lp-guest-banner__dismiss{position:absolute;top:4px;right:4px;width:26px;height:26px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.lp-guest-banner__dismiss:hover{background:var(--bg-hover);color:var(--text-primary)}.lp-guest-banner__text{margin:0 0 8px}.lp-guest-banner__login{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-md);border:1px solid var(--accent);background:var(--bg-elevated);color:var(--accent);font-size:var(--font-sm);font-weight:600;cursor:pointer}.lp-guest-banner__login:hover{background:var(--bg-hover)}.left-panel.has-guest-banner .lp-collapse-btn{top:52px;transform:translateY(0)}.lp-collapse-btn{position:absolute;top:50%;right:-12px;transform:translateY(-50%);width:20px;height:28px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;border:1px solid var(--border);border-left:none;background:var(--bg-panel);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background var(--transition-fast),color var(--transition-fast)}.lp-collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.left-panel-strip{width:48px;padding:.5rem 0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:.35rem;-webkit-user-select:none;user-select:none}.lp-strip-expand{width:36px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background var(--transition-fast),color var(--transition-fast)}.lp-strip-expand:hover{background:var(--bg-hover);color:var(--text-primary)}.lp-strip-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.lp-strip-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.lp-strip-btn.is-active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.lp-strip-upload{background:var(--accent);border-color:var(--accent);color:#fff}.lp-strip-upload:hover:not(:disabled){background:var(--accent-hover);color:#fff}.lp-strip-count{font-size:var(--font-2xs);color:var(--text-muted);margin-top:auto}.lp-header{display:flex;align-items:center;gap:8px;padding:10px 10px 12px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;position:relative;z-index:3}.lp-title{font-size:var(--font-md);font-weight:700;color:var(--text-primary)}.lp-count{flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--text-secondary);padding:4px 8px;line-height:1.2;background:var(--bg-input);border:1px solid var(--border);border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}.lp-library-select-wrap{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.lp-library-select-label{font-size:var(--font-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);line-height:1}.lp-library-select{width:100%;margin:0;padding:8px 32px 8px 10px;font-size:var(--font-sm);font-weight:600;line-height:1.3;color:var(--text-primary);background-color:var(--bg-input);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;appearance:none;-webkit-appearance:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.lp-library-select:hover{border-color:var(--border-strong);background-color:var(--bg-elevated)}.lp-library-select:focus{outline:none}.lp-library-select:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}.lp-toolbar{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.lp-upload-btn{font-size:var(--font-base);font-weight:600;padding:.75rem;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),transform var(--transition-fast);width:100%}.lp-upload-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.lp-upload-btn.is-full{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-strong);cursor:default}.lp-text-btn{font-size:var(--font-base);font-weight:600;padding:.68rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);cursor:pointer;width:100%;transition:border-color var(--transition-fast),background var(--transition-fast)}.lp-text-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.lp-spacer{flex:1}.lp-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;padding:0;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.lp-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.lp-icon-btn.is-active{background:var(--bg-card);color:var(--text-primary);border-color:var(--accent)}.lp-sort{font-size:var(--font-xs);padding:.26rem .35rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);cursor:pointer;max-width:88px}.lp-search-container{position:relative;width:100%}.lp-search-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.lp-search{width:100%;padding:.6rem 1rem .6rem 2.2rem;font-size:var(--font-sm);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:transparent;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.lp-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring-accent)}.lp-search::placeholder{color:var(--text-muted)}.lp-organize-row{display:flex;align-items:end;justify-content:space-between;gap:.5rem}.lp-sort-wrap{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.lp-sort-label{font-size:var(--font-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.lp-sort-select{width:100%;padding:.45rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-xs)}.lp-view-toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.lp-view-btn{border:none;background:var(--bg-input);color:var(--text-secondary);font-size:var(--font-xs);padding:.45rem .6rem;cursor:pointer}.lp-view-btn+.lp-view-btn{border-left:1px solid var(--border-strong)}.lp-view-btn.is-active{background:var(--accent-muted);color:var(--accent);font-weight:700}.lp-bulk{display:flex;align-items:center;gap:.25rem;padding:.25rem .35rem;border-radius:var(--radius-md);background:var(--accent-muted);font-size:var(--font-xs)}.lp-bulk-count{font-weight:600;color:var(--text-primary);margin-right:auto}.lp-bulk-btn{font-size:var(--font-2xs);padding:.2rem .44rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.lp-bulk-btn:hover{background:var(--bg-hover)}.lp-bulk-delete{border-color:var(--danger);color:var(--danger)}.lp-bulk-delete:hover{background:var(--danger);color:#fff}.lp-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;min-height:180px;padding:1.5rem 1rem;margin:.25rem 0;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-input);text-align:center;cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base)}.lp-upload-zone:hover,.lp-upload-zone:focus{outline:none;border-color:#3b82f659;background:var(--accent-muted)}.lp-upload-zone.is-dragover{border-color:var(--accent);background:var(--accent-muted);box-shadow:inset 0 0 0 2px #3b82f626}.lp-upload-icon{color:var(--text-muted);opacity:.6;transition:color var(--transition-fast),opacity var(--transition-fast)}.lp-upload-zone:hover .lp-upload-icon,.lp-upload-zone.is-dragover .lp-upload-icon{color:var(--accent);opacity:1}.lp-upload-title{margin:0;font-size:var(--font-md);font-weight:600;color:var(--text-primary)}.lp-upload-hint{font-size:var(--font-sm);color:var(--text-muted)}.lp-no-results{text-align:center;font-size:var(--font-sm);color:var(--text-muted);padding:.8rem 0;margin:0}.lp-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;display:flex;flex-direction:column;gap:.15rem}.lp-content.lp-content--asset-scroll{overflow:hidden}.lp-asset-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.up-group-head{display:flex;align-items:center;gap:.25rem;width:100%;padding:.5rem 1rem;background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;transition:color var(--transition-fast)}.up-group-head:hover{color:var(--text-primary)}.up-chev{display:none}.up-group-label{flex:1;text-align:left}.up-group-n{display:none}.up-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem 1rem}.up-list{display:flex;flex-direction:column;gap:.5rem;padding:0 1rem 1rem}.up-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-lg);border:none;background:var(--bg-surface);cursor:grab;overflow:hidden;padding:0;transition:box-shadow var(--transition-fast),transform var(--transition-fast);box-shadow:none}.up-thumb:active{cursor:grabbing}.up-thumb:hover{box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.up-thumb.is-selected{box-shadow:0 0 0 2px var(--accent)}.up-thumb-img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.up-thumb.is-list{aspect-ratio:auto;display:flex;align-items:center;gap:.5rem;padding:.3rem;border-radius:var(--radius-md);cursor:pointer}.up-thumb.is-list:hover{transform:none}.up-thumb.is-list .up-thumb-img{width:52px;height:52px;border-radius:var(--radius-sm);flex-shrink:0;object-fit:cover}.up-thumb-list-body{display:flex;flex-direction:column;gap:.35rem;min-width:0;flex:1}.up-thumb-list-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap}.up-thumb-list-actions .up-thumb-action{flex:1;min-width:0;min-height:26px;padding:0 .4rem;font-size:var(--font-2xs);font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.up-thumb-list-actions .up-thumb-action:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.up-thumb-list-actions .up-thumb-action:first-of-type{background:var(--accent);border-color:var(--accent);color:#fff}.up-thumb-list-actions .up-thumb-action:first-of-type:hover{background:var(--accent-hover);color:#fff}.up-thumb-x--list{position:static;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.up-thumb-x--list:hover{background:var(--danger);border-color:var(--danger);color:#fff}.up-thumb-meta{display:flex;flex-direction:column;min-width:0;flex:1}.up-thumb-name{font-size:var(--font-xs);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-thumb-size{font-size:var(--font-2xs);color:var(--text-secondary)}.up-thumb-date{font-size:var(--font-2xs);color:var(--text-muted)}.up-group--uploading{margin-bottom:.35rem}.up-group--uploading .upload-progress-status{margin:0 4px 4px}.up-group-head--static{cursor:default}.up-thumb-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);border-radius:var(--radius-sm)}.up-thumb-placeholder-spinner{width:22px;height:22px;border:2.5px solid #94a3b8;border-top-color:var(--accent);border-radius:50%;animation:up-batch-spin .7s linear infinite}.up-thumb-placeholder-label{font-size:.68rem;font-weight:700;color:#475569;letter-spacing:.04em;text-transform:uppercase}.up-thumb--uploading{cursor:default}.up-thumb--uploading:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs);transform:none}@keyframes up-batch-spin{to{transform:rotate(360deg)}}.up-progress-wrap{position:absolute;left:6px;right:6px;bottom:6px;height:6px;border-radius:var(--radius-full);background:#0f172a80;overflow:hidden}.up-progress-wrap--indeterminate .up-progress-bar{animation:up-progress-pulse 1.1s ease-in-out infinite}@keyframes up-progress-pulse{0%,to{opacity:.65;filter:brightness(1)}50%{opacity:1;filter:brightness(1.15)}}.up-progress-bar{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent),var(--success));transition:width var(--transition-base)}.up-progress-bar.is-error{background:var(--danger)}.up-progress-label{position:absolute;left:8px;top:6px;font-size:.62rem;font-weight:700;color:#fff;background:#0f172ab3;border-radius:var(--radius-full);padding:1px 6px;z-index:1}.up-thumb.is-list.up-thumb--uploading{padding-right:.45rem}.up-thumb.is-list.up-thumb--uploading .up-progress-wrap{left:60px;right:10px;bottom:8px}.up-thumb.is-list.up-thumb--uploading .up-progress-label{left:auto;right:10px;top:8px}.up-thumb-x{position:absolute;top:3px;right:3px;width:20px;height:20px;display:none;align-items:center;justify-content:center;font-size:12px;line-height:1;background:#000000b3;color:#fff;border-radius:var(--radius-sm);cursor:pointer;z-index:2;transition:background var(--transition-fast)}.up-thumb-x:hover{background:var(--danger)}.up-thumb:hover .up-thumb-x{display:flex}@media(hover:none),(pointer:coarse){.up-thumb .up-thumb-x{display:flex}}@keyframes deleteShake{0%,to{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}.up-thumb--delete-mode{animation:deleteShake .4s ease-in-out infinite;cursor:pointer}.up-thumb--delete-mode:nth-child(2n){animation-delay:.15s}.up-thumb--delete-selected{box-shadow:0 0 0 3px #ef4444;animation:none;transform:scale(.95);opacity:.85}.lp-bulk--delete{background:#ef44441f;border-color:#ef44444d}.lp-delete-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;margin-left:.25rem}.lp-delete-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.lp-delete-toggle.is-active{background:#ef444426;border-color:#ef4444;color:#ef4444}@media(prefers-reduced-motion:reduce){.up-thumb--delete-mode{animation:none;border:2px dashed #ef4444}}.up-thumb-check{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--radius-sm);border:1.5px solid rgba(255,255,255,.7);background:#0000004d;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;z-index:2;transition:background var(--transition-fast),border-color var(--transition-fast)}.up-thumb-check.checked{background:var(--accent);border-color:var(--accent)}.up-thumb-actions{position:absolute;left:6px;right:6px;bottom:6px;display:flex;gap:6px;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:2}.up-thumb:hover .up-thumb-actions,.up-thumb:focus-visible .up-thumb-actions{opacity:1;pointer-events:auto}.up-thumb-action{flex:1;min-height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bg-elevated) 88%,#000 12%);color:var(--text-primary);font-size:11px;font-weight:700;cursor:pointer}.panel-header{display:flex;flex-direction:column;gap:.2rem}.panel-title{margin:0;font-size:var(--font-md);color:var(--text-primary)}.panel-subtitle{margin:0;font-size:var(--font-xs);color:var(--text-secondary)}.panel-section{display:flex;flex-direction:column;gap:.5rem}.panel-section-title{margin:0;font-size:var(--font-2xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.panel-section--actions{gap:.45rem}.upload-zone{border:1px dashed var(--border-input);border-radius:var(--radius-md);padding:1.2rem;text-align:center;color:var(--text-secondary);font-size:var(--font-md);background:var(--bg-input);transition:border-color var(--transition-fast),color var(--transition-fast)}.upload-zone:hover{border-color:var(--border-strong);color:var(--text-primary)}.upload-zone button{display:block;margin:.5rem auto 0;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-strong);padding:.4rem 1rem;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-base);transition:background var(--transition-fast)}.upload-zone button:hover{background:var(--bg-hover)}.asset-tray{border-top:1px solid var(--border-strong);padding-top:.5rem}.asset-list{display:flex;flex-direction:column;gap:.35rem;max-height:190px;overflow:auto}.asset-empty{margin:0;font-size:var(--font-xs);color:var(--text-muted)}.asset-item{display:flex;align-items:center;gap:.45rem;text-align:left;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.35rem;cursor:grab;color:var(--text-primary);transition:background var(--transition-fast)}.asset-item:active{cursor:grabbing}.asset-item:hover{background:var(--bg-hover)}.asset-thumb{width:36px;height:36px;border-radius:var(--radius-sm);background-color:var(--bg-elevated);background-position:center;background-size:cover;border:1px solid var(--border-input)}.asset-meta{display:flex;flex-direction:column;min-width:0}.asset-name{font-size:var(--font-xs);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-size{font-size:var(--font-2xs);color:var(--text-secondary)}.duplicate-btn,.auto-nest-btn{color:var(--text-primary);border:1px solid var(--border-strong);padding:.55rem .8rem;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-base)}.duplicate-btn{background:var(--accent-muted)}.duplicate-btn:hover:not(:disabled){background:var(--accent-muted);border-color:var(--accent)}.auto-nest-btn{background:var(--accent-muted)}.auto-nest-btn:hover:not(:disabled){background:var(--accent-muted);border-color:var(--accent)}.duplicate-btn:disabled,.auto-nest-btn:disabled{opacity:.5;cursor:not-allowed}.quick-help{margin:0;padding-left:1rem;color:var(--text-muted);font-size:var(--font-sm);line-height:1.5}.left-panel--mobile{width:100%;border-right:none;border-radius:0;box-shadow:none;padding:.5rem .75rem}.left-panel--mobile .up-grid{grid-template-columns:repeat(2,1fr);gap:.45rem}.left-panel--mobile .up-thumb{min-height:80px}.left-panel--mobile .up-thumb-actions{opacity:1;pointer-events:auto}.left-panel--mobile .up-thumb-x--list{width:28px;height:28px;font-size:16px}.left-panel--mobile .lp-upload-btn{padding:.5rem .75rem;font-size:var(--font-base);min-height:44px}.left-panel--mobile .up-thumb-x{width:28px;height:28px;font-size:16px;display:flex}.left-panel--mobile .lp-icon-btn{width:36px;height:36px}@media(min-width:420px){.left-panel--mobile .up-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:768px)and (max-width:1023px){.left-panel{font-size:var(--font-base)}.lp-upload-btn{min-height:40px;font-size:var(--font-base)}.up-thumb{min-height:64px}.up-thumb-meta,.up-thumb-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.up-thumb-x{width:24px;height:24px}.lp-icon-btn{width:34px;height:34px}}.rp{width:260px;background:#f3f6fb;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-user-select:none;user-select:none;position:relative;transition:width var(--transition-slow)}.rp-collapse-btn{position:absolute;top:50%;left:-12px;transform:translateY(-50%);width:20px;height:28px;border-radius:var(--radius-sm) 0 0 var(--radius-sm);border:1px solid var(--border);border-right:none;background:var(--bg-panel);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background var(--transition-fast),color var(--transition-fast)}.rp-collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-strip{width:48px;padding:.5rem 0;background:var(--bg-panel);border-left:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:.35rem;-webkit-user-select:none;user-select:none}.rp-strip-expand{width:36px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background var(--transition-fast),color var(--transition-fast)}.rp-strip-expand:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-strip-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.rp-strip-count{font-size:var(--font-2xs);font-weight:700;color:var(--text-secondary);background:var(--bg-input);border-radius:var(--radius-full);padding:.1rem .35rem;margin-top:auto}.rp-layers{display:flex;flex-direction:column;flex:0 0 auto;min-height:unset;padding:1rem}.rp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.rp-title{font-size:var(--font-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.rp-badge{font-size:var(--font-2xs);font-weight:700;background:transparent;color:var(--text-primary);border-radius:var(--radius-full);padding:0;min-width:auto;text-align:right}.rp-empty-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:1.5rem .75rem;margin:0;border-radius:0;background:transparent;border:none;text-align:center;height:100%}.rp-empty-tip{margin:0;font-size:var(--font-sm);font-weight:500;color:var(--text-muted)}.rp-empty-hint{display:none}.rp-list{display:flex;flex-direction:column;gap:.5rem;overflow:visible;flex:0 0 auto;min-height:unset}.rp-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:var(--radius-md);cursor:pointer;background:var(--bg-surface);border:1px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast)}.rp-row:hover{background:var(--bg-hover)}.rp-row.is-sel{background:var(--accent-muted);border-color:var(--accent)}.rp-thumb-wrap{position:relative;flex-shrink:0}.rp-thumb{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-panel) center/contain no-repeat;display:block;border:1px solid var(--border-strong);transition:border-color var(--transition-fast)}.rp-row.is-sel .rp-thumb{border-color:var(--accent)}.rp-warn{position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:#facc15;color:#1a1a1a;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:help;box-shadow:0 0 6px #facc1580}.rp-warn svg{width:14px;height:14px}.rp-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.rp-row-name{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-row-dims{font-size:var(--font-xs);color:var(--text-secondary)}.rp-cycle{color:var(--accent);font-weight:600}.rp-qty{font-size:var(--font-xs);font-weight:700;color:var(--text-primary);background:transparent;border-radius:0;padding:0;flex-shrink:0}.rp-dpi{font-size:var(--font-xs);font-weight:700;border-radius:3px;padding:0;flex-shrink:0;background:transparent!important}.rp-dpi--low{color:#ef4444}.rp-dpi--ok{color:#eab308}.rp-dpi--optimum{color:#22c55e}.rp-row-btns{display:flex;flex-direction:column;gap:2px;opacity:0;transition:opacity var(--transition-fast)}.rp-row:hover .rp-row-btns,.rp-row.is-sel .rp-row-btns{opacity:1}.rp-row-btns button{background:none;border:none;color:var(--text-secondary);width:24px;height:24px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:var(--font-xs);transition:background var(--transition-fast),color var(--transition-fast)}.rp-row-btns button:hover{background:var(--bg-hover);color:var(--text-primary)}.rp-row-del:hover{color:var(--danger)!important;background:var(--danger-muted)!important}.rp-insp{border-bottom:1px solid var(--border);padding:.85rem .9rem;flex-shrink:0;display:flex;flex-direction:column;gap:.65rem;min-height:220px;background:#f8faff}.rp-head--elements{margin-bottom:.35rem}.rp-head--text{margin-bottom:.1rem}.rp-text-head-label{display:inline-flex;align-items:center;gap:.42rem;font-size:1.05rem;font-weight:800;color:#1f3357}.rp-text-head-label svg{color:#3b82f6}.rp-dpi-chip{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.3rem .55rem;font-size:.78rem;font-weight:700;letter-spacing:.01em}.rp-dpi-chip svg{width:13px;height:13px}.rp-dpi-chip--low{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.rp-dpi-chip--ok{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.rp-dpi-chip--optimum{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.rp-empty-card--elements{flex:1;justify-content:center;margin:0}.rp-empty-icon{color:var(--text-muted);margin-bottom:.5rem}.rp-dpi-bar{display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-md);padding:.5rem .7rem;font-size:var(--font-sm);font-weight:600;margin-bottom:.35rem}.rp-dpi-bar--low{background:var(--danger-muted);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent)}.rp-dpi-bar--ok{background:var(--warning-muted);color:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 40%,transparent)}.rp-dpi-bar--optimum{background:var(--success-bg);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 35%,transparent)}.rp-dpi-qual{font-weight:600}.rp-props{display:flex;flex-direction:column;gap:.75rem}.rp-props--text{gap:.6rem}.rp-props--text .rp-prop>span{width:40px}.rp-text-sections{display:flex;flex-direction:column;gap:0;border:1px solid #d9e1ee;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 1px 1px #0f172a08}.rp-dd{border:0;border-top:1px solid #e4eaf4;border-radius:0;background:transparent;overflow:visible;box-shadow:none}.rp-dd:first-child{border-top:0}.rp-dd-head{width:100%;border:0;background:#fff;color:#1f3357;display:flex;align-items:center;justify-content:space-between;padding:.78rem .85rem;font-size:1rem;font-weight:700;cursor:pointer}.rp-dd-head:hover{background:#f5f8fd}.rp-dd-title{display:inline-flex;align-items:center;gap:.45rem;letter-spacing:.01em;color:#273b5f}.rp-dd-chevron{color:#8fa2bf;font-size:1rem;transition:transform var(--transition-fast)}.rp-dd-chevron.is-open{transform:rotate(180deg)}.rp-dd-body{border-top:1px solid #e2e8f3;padding:.7rem .72rem .78rem;display:flex;flex-direction:column;gap:.55rem;background:#fff}.rp-prop--wide{align-items:flex-start}.rp-prop-row{display:flex;gap:.45rem;align-items:center}.rp-prop-row--single{gap:0}.rp-aspect-row.rp-prop--full{display:flex;flex-direction:row;align-items:center;gap:.6rem;min-width:0}.rp-aspect-row.rp-prop--full>span{width:85px;min-width:85px;flex-shrink:0;white-space:nowrap}.rp-aspect-row .rp-aspect-btn{flex-shrink:1;min-width:90px}.rp-aspect-btn{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .6rem;font-size:var(--font-sm);font-weight:600;border:1px solid #d8e1ee;border-radius:9px;background:#fff;color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.rp-aspect-btn:hover{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text-primary)}.rp-aspect-btn.is-on{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.rp-aspect-btn.is-on:hover{background:color-mix(in srgb,var(--accent-muted) 90%,var(--accent) 10%);border-color:var(--accent-hover);color:var(--accent-hover)}.rp-prop--full{width:100%}.rp-prop-input-with-unit{display:inline-flex;align-items:center;gap:6px;width:100%}.rp-prop-input-with-unit .rp-num-with-unit{flex:1;min-width:0}.rp-unit{font-size:var(--font-2xs);font-weight:700;color:var(--text-muted);flex-shrink:0;letter-spacing:.02em}.rp-section-title{font-size:var(--font-2xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-top:.1rem}.rp-text-helper{display:block;font-size:var(--font-2xs);color:var(--text-muted);margin-top:.2rem}.rp-prop--seg{align-items:center}.rp-seg{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap;width:100%;border:1px solid #dbe3ef;border-radius:10px;background:#eef3f9;overflow:hidden}.rp-seg-btn{border:0;background:transparent;color:#5f7395;border-radius:0;padding:.52rem .56rem;font-size:var(--font-xs);font-weight:600;line-height:1;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);flex:1 1 0;min-width:0}.rp-seg-btn:hover{color:#1f3357;background:#f7faff}.rp-seg-btn.is-active{color:#1f3357;background:#fff;box-shadow:0 1px 2px #0f172a14}.rp-prop{display:flex;align-items:center;gap:.4rem;flex:1;min-width:0}.rp-prop>span{font-size:.76rem;font-weight:600;color:#7488a8;width:52px;text-align:left;flex-shrink:0;text-transform:uppercase;letter-spacing:.02em}.rp-prop input,.rp-prop select,.rp-prop textarea{flex:1;min-width:0;background:#fff;color:#1e293b;border:1px solid #d8e1ee;border-radius:9px;padding:.55rem .6rem;font-size:1rem;font-variant-numeric:tabular-nums;text-align:left;outline:none;-moz-appearance:textfield;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.rp-prop select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rp-dd-body .rp-empty-hint{display:block;font-size:var(--font-2xs);color:var(--warning);margin-top:.1rem}.rp-color-control{display:flex;align-items:center;gap:.32rem;flex:1;min-width:0}.rp-color-grid{display:grid;grid-template-columns:1fr 1fr;gap:.42rem}.rp-color-block{display:flex;flex-direction:column;gap:.25rem;min-width:0}.rp-color-label{font-size:.74rem;font-weight:700;color:#6c7f9f;letter-spacing:.04em;text-transform:uppercase}.rp-color-control>input[type=color]{width:34px;min-width:34px;flex:0 0 34px;border-radius:7px;padding:0;border:1px solid #d8e1ee;height:34px}.rp-color-pick{border:1px solid #d8e1ee;background:#f6f9ff;color:#2f4f86;border-radius:9px;min-height:34px;padding:0 10px;font-size:.74rem;cursor:pointer;flex-shrink:0}.rp-stroke-size{display:flex;align-items:center;gap:.45rem}.rp-stroke-size>span:first-child{width:86px;font-size:.76rem;font-weight:700;color:#6c7f9f;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.rp-transform-grid{display:grid;grid-template-columns:1fr 1fr;gap:.42rem}.rp-transform-stack{display:flex;flex-direction:column;gap:.42rem}.rp-transform-field--full{width:100%}.rp-transform-field{display:flex;flex-direction:column;gap:.24rem}.rp-transform-field>span{font-size:.74rem;font-weight:700;color:#6c7f9f;text-transform:uppercase;letter-spacing:.03em}.rp-transform-field>input{width:100%;min-width:0;background:#fff;color:#1e293b;border:1px solid #d8e1ee;border-radius:9px;padding:.55rem .6rem;font-size:1rem;font-variant-numeric:tabular-nums}.rp-prop input::-webkit-inner-spin-button,.rp-prop input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.rp-prop input:focus,.rp-prop select:focus,.rp-prop textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f629}.rp-lock{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;padding:0;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.rp-lock:hover{border-color:var(--accent);color:var(--accent)}.rp-lock.is-on{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.rp-resize{gap:.5rem}.rp-resize button{flex:1;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-md);padding:.4rem 0;font-size:var(--font-xs);font-weight:600;cursor:pointer;text-align:center;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.rp-resize button:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.rp-rot{display:flex;flex-direction:column;gap:.44rem;margin-top:.4rem}.rp-rot-head{display:flex;align-items:center;justify-content:space-between}.rp-rot-btn{display:inline-flex;align-items:center;gap:.22rem;padding:.4rem .6rem;border:1px solid #d8e1ee;border-radius:9px;background:#f8fbff;color:#435e89;font-size:.76rem;font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.rp-rot-btn:hover{border-color:#a8c2f4;color:#1f3357;background:#eef4ff}.rp-rot-val{font-size:.85rem;color:#7284a3;font-variant-numeric:tabular-nums;font-weight:600}.rp-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:#d8e1ee;border-radius:999px;outline:none}.rp-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#3b82f6;border:2px solid #ffffff;cursor:pointer;box-shadow:var(--shadow-sm)}.rp-prop .rp-range{border:none;padding:0;background:#d8e1ee;height:6px}.rp-slider-val{width:32px!important;text-align:right!important;color:var(--text-secondary)!important;font-size:var(--font-xs)!important;font-weight:600!important}.rp-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#3b82f6;border:2px solid #ffffff;cursor:pointer;box-shadow:var(--shadow-sm)}.rp-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:.3rem;padding-top:.2rem}.rp-actions-row{display:flex;gap:.42rem}.rp-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;border-radius:11px;padding:.66rem .5rem;font-size:.9rem;font-weight:600;cursor:pointer;background:#f8fbff;border:1px solid #d8e1ee;color:#435e89;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.rp-act:hover{background:#eef4ff;border-color:#a8c2f4;color:#1f3357}.rp-act--del:hover{border-color:#f6b8bc;color:#dc2626;background:#fff1f2}.rp-act--del{border-color:#f6d7db;background:#fff3f4;color:#d0313f}.rp--mobile{width:100%;border-left:none;border-radius:0;box-shadow:none}.rp--mobile .rp-row{padding:.5rem .55rem;gap:.55rem;min-height:52px}.rp--mobile .rp-thumb{width:44px;height:44px}.rp--mobile .rp-row-btns{opacity:1;gap:4px}.rp--mobile .rp-row-btns button{width:36px;height:36px;min-width:36px;min-height:36px;font-size:var(--font-xs)}.rp--mobile .rp-act{padding:.5rem .55rem;min-height:44px;font-size:var(--font-sm)}.rp--mobile .rp-prop input{padding:.4rem .5rem;min-height:38px}.rp--mobile .rp-lock{width:38px;height:38px}.rp--mobile .rp-rot-btn{padding:.4rem .65rem;min-height:38px}[data-theme=dark] .rp{background:var(--bg-panel)}[data-theme=dark] .rp-insp{background:var(--bg-elevated)}[data-theme=dark] .rp-text-head-label,[data-theme=dark] .rp-dd-head,[data-theme=dark] .rp-dd-title,[data-theme=dark] .rp-seg-btn.is-active,[data-theme=dark] .rp-prop input,[data-theme=dark] .rp-prop select,[data-theme=dark] .rp-prop textarea,[data-theme=dark] .rp-transform-field>input{color:var(--text-primary)}[data-theme=dark] .rp-dd-head:hover{background:var(--bg-hover)}[data-theme=dark] .rp-text-sections{background:var(--bg-panel);border-color:var(--border-strong);box-shadow:none}[data-theme=dark] .rp-dd{border-top-color:var(--border)}[data-theme=dark] .rp-dd-head,[data-theme=dark] .rp-dd-body{background:var(--bg-panel)}[data-theme=dark] .rp-dd-body{border-top-color:var(--border)}[data-theme=dark] .rp-dd-chevron{color:var(--text-secondary)}[data-theme=dark] .rp-seg{background:var(--bg-input);border-color:var(--border-strong)}[data-theme=dark] .rp-seg-btn{color:var(--text-secondary)}[data-theme=dark] .rp-seg-btn:hover{color:var(--text-primary);background:var(--bg-hover)}[data-theme=dark] .rp-seg-btn.is-active{background:var(--bg-elevated);box-shadow:none}[data-theme=dark] .rp-prop>span,[data-theme=dark] .rp-color-label,[data-theme=dark] .rp-stroke-size>span:first-child,[data-theme=dark] .rp-transform-field>span,[data-theme=dark] .rp-rot-val{color:var(--text-secondary)}[data-theme=dark] .rp-prop input,[data-theme=dark] .rp-prop select,[data-theme=dark] .rp-prop textarea,[data-theme=dark] .rp-transform-field>input{background:var(--bg-input);border-color:var(--border-input)}[data-theme=dark] .rp-color-control>input[type=color]{border-color:var(--border-input)}[data-theme=dark] .rp-color-pick,[data-theme=dark] .rp-rot-btn,[data-theme=dark] .rp-act{background:var(--bg-input);border-color:var(--border-input);color:var(--text-secondary)}[data-theme=dark] .rp-color-pick:hover,[data-theme=dark] .rp-rot-btn:hover,[data-theme=dark] .rp-act:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}[data-theme=dark] .rp-range,[data-theme=dark] .rp-prop .rp-range{background:var(--border-input)}[data-theme=dark] .rp-act--del{border-color:color-mix(in srgb,var(--danger) 38%,var(--border-input));background:color-mix(in srgb,var(--danger) 14%,var(--bg-input));color:#fca5a5}[data-theme=dark] .rp-act--del:hover{border-color:color-mix(in srgb,var(--danger) 55%,var(--border-strong));background:color-mix(in srgb,var(--danger) 20%,var(--bg-hover));color:#fecaca}@media(min-width:768px)and (max-width:1023px){.rp-row{min-height:40px;padding:.3rem .4rem;min-width:0}.rp-row-info{min-width:0;overflow:hidden}.rp-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-row-btns button{width:30px;height:30px;min-width:30px;min-height:30px}.rp-act{min-height:38px;font-size:var(--font-sm)}.rp-prop input{min-height:34px}}.rp-row-lock{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.rp-row-lock:hover{color:var(--text-primary);background:var(--bg-hover)}.rp-row-lock--active{color:#3b82f6}.rp-row-lock--active:hover{color:#2563eb}.rp-act--lock{border-color:var(--border-input);background:var(--bg-input);color:var(--text-secondary)}.rp-act--lock:hover{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text-primary)}.rp-act--lock-active{border-color:#93c5fd;background:#eff6ff;color:#3b82f6}.rp-act--lock-active:hover{border-color:#60a5fa;background:#dbeafe;color:#2563eb}.rp-act--disabled,.rp-row-del--disabled{opacity:.35;cursor:not-allowed}[data-theme=dark] .rp-act--lock-active{border-color:color-mix(in srgb,#3b82f6 45%,var(--border-input));background:color-mix(in srgb,#3b82f6 15%,var(--bg-input));color:#93c5fd}.rp-text-studio-btn{width:100%;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:var(--radius-md);background:var(--accent-muted);color:var(--accent);cursor:pointer;font-size:.78rem;font-weight:800;padding:.55rem .65rem;margin:.25rem 0 .4rem;text-align:center}.rp-text-studio-btn:hover{background:color-mix(in srgb,var(--accent) 16%,var(--bg-input))}.rp-text-looks{display:flex;flex-wrap:nowrap;gap:.35rem;overflow-x:auto;padding:.35rem 0 .5rem;margin-bottom:.25rem;scrollbar-width:thin}.rp-look-chip{flex:0 0 auto;font-size:.7rem;padding:.25rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.rp-look-chip:hover{background:var(--bg-hover);border-color:var(--border-strong)}.language-dropdown-wrap{position:relative}.language-dropdown-trigger{display:inline-flex;align-items:center;gap:.4rem;padding:0 .5rem;height:36px;min-width:0;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.language-dropdown-trigger:hover{background:var(--bg-hover);color:var(--text-primary)}.language-dropdown-trigger[aria-expanded=true]{background:var(--accent-muted);color:var(--accent)}.language-dropdown-flag{flex-shrink:0;width:24px;height:16px;object-fit:cover;border-radius:2px;display:block}.language-dropdown-name{max-width:7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.language-dropdown-chevron{flex-shrink:0;opacity:.7;transition:transform var(--transition-fast)}.language-dropdown-trigger[aria-expanded=true] .language-dropdown-chevron{transform:rotate(180deg)}.language-dropdown-list{position:absolute;bottom:calc(100% + 6px);left:0;min-width:160px;max-height:280px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;padding:.25rem 0;animation:languageDropdownIn .15s ease-out}@keyframes languageDropdownIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.language-dropdown-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:var(--text-primary);font-size:var(--font-sm);font-weight:500;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.language-dropdown-option:hover{background:#2563eb1a}.language-dropdown-option.is-selected{background:#2563eb26}.language-dropdown-option .language-dropdown-flag{width:20px;height:14px}.language-dropdown-option .language-dropdown-name{max-width:none}.bottom-bar .language-dropdown-trigger{height:36px}.bottom-bar .language-dropdown-name{display:inline}@media(max-width:480px){.bottom-bar .language-dropdown-name{display:none}.bottom-bar .language-dropdown-trigger{width:36px;min-width:36px;padding:0;justify-content:center}}.bottom-bar{display:flex;align-items:center;justify-content:center;gap:0;padding:0 .5rem;background:var(--bg-surface);border-top:none;font-size:var(--font-base);position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:100;border-radius:12px;box-shadow:0 2px 8px #00000014;border:1px solid var(--border-strong);height:44px}.zoom-controls{display:flex;align-items:center;gap:.35rem}.zoom-fit-group{display:inline-flex;align-items:center;height:32px;padding:0 .25rem}.zoom-fit-group .zoom-controls{gap:0}.zoom-controls button{background:transparent;color:var(--text-secondary);border:none;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:1rem;line-height:1;transition:background var(--transition-fast),color var(--transition-fast)}.zoom-controls button:hover{background:var(--bg-hover);color:var(--text-primary)}.zoom-value{min-width:2.75rem;text-align:center;font-size:var(--font-sm);color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.zoom-presets{display:flex;gap:.2rem}.zoom-presets button{background:var(--bg-input);color:var(--text-secondary);border:none;padding:.25rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);transition:background var(--transition-fast),color var(--transition-fast)}.zoom-presets button:hover,.zoom-presets button.active{background:var(--bg-hover);color:var(--text-primary)}.bottom-bar-spacer{flex:1;min-width:1rem}.bottom-tips-wrap{position:relative}.bottom-bar .bottom-tips-btn{width:36px;height:36px;min-width:36px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background var(--transition-fast),color var(--transition-fast);box-shadow:none}.bottom-bar .bottom-tips-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:none;box-shadow:none}.bb-bounding-box-toggle{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-size:var(--font-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.bb-bounding-box-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.bb-bounding-box-toggle:hover{color:var(--text-primary)}.bb-bounding-box-label{white-space:nowrap}.bottom-tips-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--font-base);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);box-shadow:0 4px 12px #00000026}.bottom-tips-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px);box-shadow:0 6px 16px #0003}.bottom-tips-btn[aria-expanded=true]{background:var(--accent-muted);color:var(--accent);border-color:var(--accent)}.bottom-tips-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.6rem .9rem;box-shadow:var(--shadow-lg);white-space:nowrap;z-index:100;animation:popoverIn .15s ease-out}.bottom-tips-title{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.35rem}.bottom-tips-body{font-size:var(--font-sm);color:var(--text-secondary)}.zoom-fit-group .fit-btn{background:transparent;color:var(--text-secondary);border:none;border-left:1px solid var(--border);margin-left:.25rem;padding:0 .6rem;border-radius:0 6px 6px 0;cursor:pointer;font-size:var(--font-xs);font-weight:600;transition:background var(--transition-fast),color var(--transition-fast);height:28px;display:flex;align-items:center;justify-content:center;white-space:nowrap}.zoom-fit-group .fit-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.bb-save-control{display:flex;align-items:stretch;margin-left:.25rem;border-left:1px solid var(--border);padding-left:.35rem}.bb-save-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:4.5rem;min-height:28px;padding:.05rem .5rem .15rem;border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;border-radius:8px;cursor:pointer;font-size:var(--font-xs);font-weight:600;box-shadow:0 1px 2px #1d4ed81f;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}[data-theme=dark] .bb-save-btn{border-color:#60a5fa73;background:#1e3a8a8c;color:#93c5fd;box-shadow:0 1px 2px #00000040}.bb-save-btn:hover:not(:disabled){background:#dbeafe;color:#1e40af;border-color:#60a5fa;box-shadow:0 1px 3px #1d4ed82e}[data-theme=dark] .bb-save-btn:hover:not(:disabled){background:#1e40afbf;color:#bfdbfe;border-color:#93c5fd99}.bb-save-btn:active:not(:disabled){background:#bfdbfe;border-color:#3b82f6}[data-theme=dark] .bb-save-btn:active:not(:disabled){background:#1d4ed873;border-color:#60a5fa8c}.bb-save-btn:disabled{cursor:wait;opacity:.92}.bb-save-btn-row{display:inline-flex;align-items:center;gap:.35rem;line-height:1.1}.bb-save-label{white-space:nowrap}.bb-save-meta{font-size:9px;font-weight:500;color:#3b82f6;line-height:1;opacity:.75;max-width:5.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=dark] .bb-save-meta{color:#93c5fd;opacity:.7}.bb-save-spin{display:block;animation:bb-save-spin-anim .8s linear infinite;transform-origin:12px 12px}@keyframes bb-save-spin-anim{to{transform:rotate(360deg)}}.bb-save-btn.is-success{color:#15803d;background:#f0fdf4;border-color:#86efac;box-shadow:0 1px 2px #1665341f}[data-theme=dark] .bb-save-btn.is-success{color:#4ade80;background:#16653473;border-color:#4ade8073}.bottom-bar--tablet .bb-save-btn{min-height:34px;padding:.1rem .55rem .2rem}.bottom-cta-hint{font-size:12px;font-weight:500;color:var(--text-muted);background:transparent;border:none;padding:0 .75rem;height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.bottom-cta-hint.is-ready{color:var(--success)}.bottom-cta-hint.is-warn{color:var(--warning)}.bottom-cta-btn{border:none;background:#1d4ed8;color:#f8fafc;border-radius:8px;height:36px;padding:0 1.25rem;font-size:var(--font-sm);font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0f172a33;transition:background var(--transition-fast),opacity var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}[data-theme=dark] .bottom-cta-btn{background:#1e3a8a;color:#f8fafc}.bottom-cta-btn:hover:not(:disabled){background:#1e3a8a;color:#fff;filter:none}[data-theme=dark] .bottom-cta-btn:hover:not(:disabled){background:#172554}.bottom-cta-btn:disabled{opacity:.5;cursor:not-allowed}.bb-divider{width:1px;height:24px;background:var(--border);flex-shrink:0;margin:0 .5rem;opacity:.5}.bottom-bar--mobile{position:fixed;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(94vw,420px);min-height:64px;height:auto;z-index:340;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px;background:color-mix(in srgb,var(--bg-panel) 94%,transparent 6%);border:1px solid var(--border-strong);border-radius:18px;box-shadow:var(--shadow-lg)}.bb-start-hint{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;margin-bottom:2px;border-radius:var(--radius-md);border:1px solid var(--accent);background:var(--accent-muted);color:var(--text-primary);font-size:var(--font-xs);font-weight:600}.bb-start-hint-close{border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-size:11px;font-weight:700;padding:2px 6px}.bb-gesture-hint{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-size:var(--font-xs)}.bb-gesture-hint-close{border:0;background:transparent;color:var(--text-muted);font-size:12px;line-height:1}.bb-selection-tray,.bb-selection-chip{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:6px 8px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-elevated)}.bb-selection-tray-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bb-selection-tray-label,.bb-selection-chip-label{font-size:var(--font-xs);font-weight:700;color:var(--text-primary);white-space:nowrap}.bb-selection-tray-link{min-height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-weight:700;padding:4px 8px}.bb-selection-tray-actions,.bb-selection-chip-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.bb-selection-chip-btn{min-height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:11px;font-weight:700;padding:2px 8px;flex:1 1 calc(50% - 3px)}.bb-selection-chip-btn--danger{color:var(--danger);border-color:#ef444440;background:var(--danger-muted)}.bb-icon-btn{position:relative}.bb-badge{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:.6rem;font-weight:800;line-height:16px;text-align:center;padding:0 4px;pointer-events:none}.bb-mobile-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:center}.bb-dock-btn{position:relative;min-height:42px;border-radius:12px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:.76rem;font-weight:700;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.bb-dock-btn:active:not(:disabled){background:var(--bg-hover)}.bb-dock-btn.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-muted)}.bb-dock-btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}.bb-dock-btn--accent:disabled{opacity:.45;cursor:not-allowed}.bb-dock-btn--save{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;box-shadow:0 1px 2px #1d4ed81a}.bb-dock-btn--save:hover:not(:disabled){background:#dbeafe;border-color:#60a5fa;color:#1e40af}[data-theme=dark] .bb-dock-btn--save{border-color:#60a5fa73;background:#1e3a8a8c;color:#93c5fd;box-shadow:0 1px 2px #0003}[data-theme=dark] .bb-dock-btn--save:hover:not(:disabled){background:#1e40afbf;border-color:#93c5fd8c;color:#bfdbfe}.bb-dock-btn--save:active:not(:disabled){background:#bfdbfe;border-color:#3b82f6}[data-theme=dark] .bb-dock-btn--save:active:not(:disabled){background:#1d4ed873;border-color:#60a5fa8c}.bb-dock-btn--save .bb-save-spin{display:block;animation:bb-save-spin-anim .8s linear infinite;transform-origin:12px 12px}.bb-dock-btn--save.is-success{color:#15803d;border-color:#86efac;background:#f0fdf4;box-shadow:0 1px 2px #1665341a}[data-theme=dark] .bb-dock-btn--save.is-success{color:#4ade80;border-color:#4ade8073;background:#16653473}.bb-dock-btn--save.is-saving{cursor:wait;opacity:.9}.bb-mobile-menu{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;border-radius:12px;border:1px solid var(--border-strong);background:var(--bg-elevated)}.bb-mobile-menu--zoom{grid-template-columns:auto minmax(64px,1fr) auto auto;align-items:center}.bb-mobile-menu--more{grid-template-columns:1fr}.bb-mobile-menu-btn{min-height:40px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:.78rem;font-weight:700;cursor:pointer}.bb-mobile-menu-btn:active:not(:disabled){background:var(--bg-hover)}.bb-mobile-menu-btn:disabled{opacity:.45;cursor:not-allowed}.bb-mobile-menu-btn--accent{background:var(--accent)!important;color:#fff!important;font-weight:600;border-color:var(--accent)}.bb-mobile-menu-btn--accent:hover:not(:disabled){background:var(--accent-hover)!important;border-color:var(--accent-hover)}.bb-mobile-menu-zoom-btn{min-height:36px;min-width:36px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:1.1rem;font-weight:800}.bb-mobile-menu-zoom-label{text-align:center;font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary)}.bb-mobile-menu-fit-btn{min-height:36px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:.74rem;font-weight:700;padding:0 10px}.bb-mobile-go-cart{min-height:36px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-size:.74rem;font-weight:700;cursor:pointer}.bb-mobile-go-cart.is-ready{color:var(--success)}.bb-mobile-go-cart.is-warn{color:var(--warning)}.bb-mobile-go-cart.is-blocked{color:var(--text-muted)}.bb-btn-nudge{box-shadow:0 0 0 1px var(--accent),0 0 0 3px #3b82f629}@media(min-width:768px)and (max-width:1366px)and (pointer:coarse){.bottom-bar--mobile{width:min(92vw,620px);bottom:calc(14px + env(safe-area-inset-bottom));padding:12px;border-radius:20px}.bb-dock-btn{min-height:46px;font-size:.82rem}}.bottom-bar--tablet{padding:.35rem .65rem;gap:.5rem}.bottom-bar--tablet .zoom-controls button{width:34px;height:34px;min-width:34px;min-height:34px;font-size:1.05rem}.bottom-bar--tablet .zoom-presets button{padding:.3rem .5rem;min-height:32px;font-size:var(--font-xs)}.bottom-bar--tablet .fit-btn{padding:.35rem .65rem;min-height:34px}.bottom-bar--tablet .bottom-tips-btn{width:30px;height:30px}@media(min-width:768px)and (max-width:1023px){.bottom-bar--tablet{min-width:0;max-width:min(94vw,580px);flex-wrap:wrap;justify-content:center;gap:.4rem;padding:.4rem .6rem}.bottom-bar--tablet .zoom-controls,.bottom-bar--tablet .zoom-presets,.bottom-bar--tablet .zoom-fit-group{min-width:0;flex-shrink:0}.bottom-bar--tablet .bottom-bar-spacer{display:none}}.sheet-tabs{display:flex;align-items:center;gap:.35rem;padding:.4rem 1rem .5rem;background:transparent;border-bottom:1px solid var(--border);overflow-x:auto}.sheet-tabs-list{display:flex;gap:.25rem;min-width:0;overflow-x:auto;flex:1}.sheet-tab{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.4rem .9rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;font-size:var(--font-base);color:var(--text-secondary);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);position:relative;flex-shrink:0}.sheet-tab:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.sheet-tab--active{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.sheet-tab-name{font-weight:600;min-width:28px}.sheet-tab-meta{display:flex;align-items:center;gap:.3rem;font-size:var(--font-2xs);color:var(--text-muted);font-weight:400;line-height:1}.sheet-tab-size{font-size:inherit;color:inherit}.sheet-tab-sep{opacity:.4}.sheet-tab-count{font-size:inherit;color:inherit;font-weight:500}.sheet-tab-close{position:absolute;top:2px;right:2px;background:none;border:none;color:var(--text-muted);font-size:var(--font-base);line-height:1;cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.sheet-tab:hover .sheet-tab-close{opacity:1}.sheet-tab-close:hover{color:var(--danger);background:var(--danger-muted)}.sheet-tab-add{display:flex;align-items:center;gap:.35rem;padding:.45rem .85rem;background:none;border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--accent);font-size:var(--font-sm);font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;margin-left:.25rem;transition:background var(--transition-fast),border-color var(--transition-fast)}.sheet-tab-add:hover{background:var(--accent-muted);border-color:var(--accent)}@media(max-width:767px){.sheet-tabs{padding:.35rem .5rem;gap:.25rem}.sheet-tabs-list{-webkit-overflow-scrolling:touch;scrollbar-width:none}.sheet-tabs-list::-webkit-scrollbar{display:none}.sheet-tab{padding:.5rem .75rem;min-height:40px;font-size:var(--font-sm)}.sheet-tab-close{opacity:1;padding:2px 4px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.sheet-tab-add{padding:.5rem .7rem;min-height:40px}}@media(pointer:coarse){.sheet-tab-close{opacity:1}}@media(min-width:768px)and (max-width:1023px){.sheet-tabs{min-width:0;overflow:hidden}.sheet-tabs-list{-webkit-overflow-scrolling:touch;min-width:0}.sheet-tab{padding:.45rem .65rem;min-height:38px;font-size:var(--font-sm);flex-shrink:0;max-width:140px;overflow:hidden;text-overflow:ellipsis}.sheet-tab-name{overflow:hidden;text-overflow:ellipsis}.sheet-tab-add{min-height:38px;flex-shrink:0}}.announcement-bar-root{flex-shrink:0;width:100%;box-sizing:border-box;position:relative;z-index:2}.announcement-bar-inner{display:flex;align-items:center;gap:.65rem;width:100%;box-sizing:border-box;margin:0 0 .5rem;padding:var(--ann-padding-y, 8px) 12px;border-style:solid;box-shadow:0 1px 3px #0f172a1f;font-size:var(--ann-font-size, 13px);line-height:1.35}.announcement-bar-root.announcement-bar--align-start .announcement-bar-inner{justify-content:flex-start}.announcement-bar-root.announcement-bar--align-center .announcement-bar-inner{justify-content:center}.announcement-bar-root.announcement-bar--align-between .announcement-bar-inner{justify-content:space-between}.announcement-bar-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.35em;height:1.35em;opacity:.95}.announcement-bar-copy{flex:1 1 auto;min-width:0;text-align:inherit}.announcement-bar-title{font-weight:600;margin:0 0 .15em;word-break:break-word}.announcement-bar-body{margin:0;opacity:.95;word-break:break-word}.announcement-bar-cta{flex-shrink:0;font-weight:600;text-decoration:underline;text-underline-offset:2px}.announcement-bar-cta:hover{opacity:.9}.announcement-bar-dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-8px -6px -8px 0;padding:0;border:none;border-radius:8px;background:transparent;cursor:pointer;font-size:1.35rem;line-height:1;opacity:.85}.announcement-bar-dismiss:hover{opacity:1}.announcement-bar-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}.announcement-bar-root.announcement-bar--ent-slideDown .announcement-bar-inner{animation:announcement-slide-down .35s ease-out both}.announcement-bar-root.announcement-bar--ent-fade .announcement-bar-inner{animation:announcement-fade-in .35s ease-out both}@media(prefers-reduced-motion:reduce){.announcement-bar-root.announcement-bar--ent-slideDown .announcement-bar-inner,.announcement-bar-root.announcement-bar--ent-fade .announcement-bar-inner{animation:none}}@keyframes announcement-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes announcement-fade-in{0%{opacity:0}to{opacity:1}}.announcement-bar-root.announcement-bar--dense .announcement-bar-inner{padding-top:calc(var(--ann-padding-y, 8px) * .65);padding-bottom:calc(var(--ann-padding-y, 8px) * .65)}.resume-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.resume-dialog{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:32px 36px;max-width:440px;width:90vw;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-xl)}.resume-icon{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--accent-muted);border:1px solid var(--ring-accent);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:16px}.resume-title{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);margin:0 0 6px}.resume-subtitle{font-size:var(--font-md);color:var(--text-secondary);margin:0 0 4px;text-align:center;line-height:1.5}.resume-date{font-size:var(--font-xs);color:var(--text-muted);margin:0 0 14px}.resume-sheets{width:100%;display:flex;flex-direction:column;gap:4px;margin-bottom:20px;max-height:160px;overflow-y:auto}.resume-sheet-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius-md)}.resume-sheet-name{font-size:var(--font-sm);font-weight:600;color:var(--text-primary)}.resume-sheet-meta{font-size:var(--font-xs);color:var(--text-muted)}.resume-actions{width:100%;display:flex;flex-direction:column;gap:8px}.resume-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform .1s;border:1px solid transparent}.resume-btn:active{transform:scale(.98)}.resume-btn--resume{background:var(--accent);color:#fff;border-color:var(--accent)}.resume-btn--resume:hover{background:var(--accent-hover)}.resume-btn--fresh{background:#ffffff0a;color:var(--text-secondary);border-color:var(--border-strong)}.resume-btn--fresh:hover{background:#ffffff14;color:var(--text-primary);border-color:var(--border-input)}.resume-dialog.modal-mobile-sheet-dialog{padding:0}.resume-sheet-scroll{padding:16px 16px 20px;text-align:center}.resume-sheet-scroll .resume-icon{margin-left:auto;margin-right:auto}.resume-sheet-scroll .resume-sheets{max-height:min(40vh,220px);text-align:left}.resume-sheet-footer .resume-btn{min-height:46px}@keyframes modalMobileSheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-mobile-sheet-overlay{align-items:flex-end!important;justify-content:stretch!important;padding:0!important}.modal-mobile-sheet-dialog{width:100%!important;max-width:none!important;margin:0!important;max-height:92vh!important;border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;box-sizing:border-box!important;animation:modalMobileSheetSlideUp .22s ease-out}.modal-mobile-sheet-grabber{width:44px;height:4px;border-radius:999px;background:var(--border-strong);margin:10px auto 6px;flex-shrink:0}.modal-mobile-sheet-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.modal-mobile-sheet-footer{flex-shrink:0;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-elevated)}.unsaved-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.unsaved-dialog{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:28px 32px;max-width:400px;width:90vw;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-xl)}.unsaved-icon{width:52px;height:52px;border-radius:var(--radius-lg);background:var(--warning-muted);border:1px solid rgba(234,179,8,.35);display:flex;align-items:center;justify-content:center;color:var(--warning);margin-bottom:16px}.unsaved-title{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:0 0 8px}.unsaved-subtitle{font-size:var(--font-md);color:var(--text-secondary);margin:0 0 20px;text-align:center;line-height:1.5}.unsaved-actions{width:100%;display:flex;flex-direction:column;gap:8px}.unsaved-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 16px;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);border:1px solid transparent}.unsaved-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.unsaved-btn--primary:hover{background:var(--accent-hover)}.unsaved-btn--danger{background:var(--danger-muted);color:var(--danger);border-color:#dc26264d}.unsaved-btn--danger:hover{background:#dc262633}.unsaved-btn--cancel{background:#ffffff0a;color:var(--text-secondary);border-color:var(--border-strong)}.unsaved-btn--cancel:hover{background:#ffffff14;color:var(--text-primary)}.unsaved-dialog.modal-mobile-sheet-dialog{padding:0}.unsaved-sheet-scroll{padding:16px;text-align:center}.unsaved-sheet-scroll .unsaved-icon{margin-left:auto;margin-right:auto}.unsaved-sheet-footer .unsaved-btn{min-height:46px}.checkout-warn-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.checkout-warn-dialog{background:var(--bg-elevated);border:1px solid rgba(234,179,8,.35);border-radius:var(--radius-lg);padding:1.5rem 1.5rem 1.25rem;max-width:28rem;width:90vw;box-shadow:var(--shadow-xl)}.checkout-warn-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:var(--warning-muted);border:1px solid rgba(234,179,8,.3);display:flex;align-items:center;justify-content:center;color:var(--warning);margin-bottom:.75rem}.checkout-warn-title{font-size:var(--font-lg);font-weight:700;color:var(--text-primary);margin:0 0 .4rem}.checkout-warn-subtitle{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 .9rem;line-height:1.45}.checkout-warn-list{margin:0 0 1rem;padding-left:1.1rem;color:var(--text-primary);font-size:var(--font-sm);line-height:1.5}.checkout-warn-list li{margin-bottom:.35rem;padding-left:.2rem}.checkout-warn-list li::marker{color:var(--warning)}.checkout-warn-ack{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 1rem;font-size:var(--font-sm);line-height:1.4;color:var(--text-primary);cursor:pointer}.checkout-warn-ack input{margin-top:.2rem;flex-shrink:0;cursor:pointer}.checkout-warn-actions{display:flex;flex-direction:column;gap:.5rem}.checkout-warn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}.checkout-warn-btn--primary{background:#1d4ed8;color:#f8fafc;box-shadow:0 1px 2px #0f172a33}.checkout-warn-btn--primary:hover:not(:disabled){background:#1e40af;color:#fff}.checkout-warn-btn--primary:disabled{opacity:.5;cursor:not-allowed}.checkout-warn-btn--secondary{background:transparent;color:var(--text-secondary);border-color:var(--border-strong)}.checkout-warn-btn--secondary:hover{background:var(--bg-hover);color:var(--text-primary)}[data-theme=dark] .checkout-warn-btn--primary{background:#1e3a8a;color:#f8fafc}[data-theme=dark] .checkout-warn-btn--primary:hover:not(:disabled){background:#172554}.checkout-warn-dialog.modal-mobile-sheet-dialog{padding:0}.checkout-warn-sheet-scroll{padding:0 1rem 1rem}.checkout-warn-sheet-footer .checkout-warn-actions{gap:.65rem}.checkout-warn-sheet-footer .checkout-warn-btn{width:100%;min-height:2.75rem}.mobile-overlay{position:fixed;inset:0;z-index:3600;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;animation:mobileOverlayFadeIn .15s ease-out}@keyframes mobileOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mobileOverlaySlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-overlay-panel{width:100%;max-height:92vh;background:var(--bg-panel);border-top:1px solid var(--border-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;flex-direction:column;overflow:hidden;animation:mobileOverlaySlideUp .2s ease-out;box-shadow:var(--shadow-xl);padding-bottom:env(safe-area-inset-bottom)}.mobile-overlay-grabber{width:44px;height:4px;border-radius:999px;background:var(--border-strong);margin:10px auto 2px;opacity:.9}.mobile-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;background:var(--bg-panel);z-index:1}.mobile-overlay-title{margin:0;font-size:1rem;font-weight:700;color:var(--text-primary)}.mobile-overlay-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.mobile-overlay-close:hover{background:var(--bg-hover);color:var(--text-primary)}.mobile-overlay-body{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;-webkit-overflow-scrolling:touch}.undo-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100000;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#1a1a1a;color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000059;font-size:13px;line-height:1.3;animation:undo-toast-in .2s ease-out;max-width:420px}@keyframes undo-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.undo-toast__msg{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.undo-toast__btn{flex-shrink:0;padding:4px 12px;border:none;border-radius:5px;background:#ffffff26;color:#6eb5ff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.undo-toast__btn:hover{background:#ffffff40}.undo-toast__btn:focus-visible{outline:2px solid #6eb5ff;outline-offset:2px}.undo-toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:#ffffff80;cursor:pointer;transition:color .15s,background .15s}.undo-toast__close:hover{color:#fff;background:#ffffff1a}.upload-progress-status{padding:12px 16px;border-radius:var(--radius-md);background:linear-gradient(162deg,color-mix(in srgb,var(--accent) 10%,var(--bg-elevated)),color-mix(in srgb,var(--accent) 5%,var(--bg-panel)));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));box-shadow:var(--shadow-sm)}[data-theme=dark] .upload-progress-status{background:linear-gradient(162deg,color-mix(in srgb,var(--accent) 20%,var(--bg-elevated)),color-mix(in srgb,var(--accent) 12%,var(--bg-panel)) 48%,color-mix(in srgb,var(--accent) 7%,var(--bg-card)));border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent) inset,0 10px 32px #0006}.upload-progress-status-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.upload-progress-status-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.upload-progress-status-spinner{display:inline-block;width:16px;height:16px;border:2px solid color-mix(in srgb,var(--accent) 32%,transparent);border-top-color:var(--accent);border-radius:50%;animation:uploadProgressSpin .7s linear infinite;flex-shrink:0}[data-theme=dark] .upload-progress-status-spinner{border-color:color-mix(in srgb,var(--accent) 24%,transparent);border-top-color:color-mix(in srgb,var(--accent) 95%,white)}.upload-progress-status-text{font-size:.85rem;color:var(--text-primary);font-weight:500}.upload-progress-status-file-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.upload-progress-status-file-row{font-size:.8rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-progress-status-bar{width:100%;height:4px;background:color-mix(in srgb,var(--accent) 16%,var(--border));border-radius:2px;overflow:hidden}[data-theme=dark] .upload-progress-status-bar{background:color-mix(in srgb,var(--accent) 26%,transparent)}.upload-progress-status-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-hover),var(--accent));border-radius:2px;transition:width .2s ease}[data-theme=dark] .upload-progress-status-bar-fill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 75%,white))}.upload-progress-status--indeterminate .upload-progress-status-bar-fill{width:35%!important;transition:none;animation:uploadProgressIndeterminateSlide 1.1s ease-in-out infinite}@keyframes uploadProgressSpin{to{transform:rotate(360deg)}}@keyframes uploadProgressIndeterminateSlide{0%{transform:translate(-100%)}to{transform:translate(320%)}}@media(max-width:599px){.upload-progress-status{padding:10px 14px}.upload-progress-status-text{font-size:.8125rem}}.upload-queue-hud{position:fixed;z-index:99998;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(80px + env(safe-area-inset-bottom,0px));width:min(380px,calc(100vw - 40px));min-width:0;pointer-events:auto;box-sizing:border-box;-webkit-backdrop-filter:blur(12px) saturate(1.12);backdrop-filter:blur(12px) saturate(1.12);border-radius:var(--radius-md, 10px)}html:not([data-theme=dark]) .upload-queue-hud{box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in srgb,var(--accent) 11%,transparent),0 1px #ffffffb8 inset}[data-theme=dark] .upload-queue-hud{-webkit-backdrop-filter:blur(14px) saturate(1.18);backdrop-filter:blur(14px) saturate(1.18);box-shadow:0 16px 48px #0000008c,0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent),0 0 36px color-mix(in srgb,var(--accent) 14%,transparent)}.upload-queue-hud .upload-progress-status{margin:0}@media(max-width:767px){.upload-queue-hud{bottom:calc(104px + env(safe-area-inset-bottom,0px));right:calc(14px + env(safe-area-inset-right,0px));width:min(380px,calc(100vw - 28px))}}.app-layout{display:flex;flex-direction:column;height:100vh;background:var(--bg-app);overflow:hidden;--toolbar-clearance: 148px}.app-body{flex:1;display:flex;min-height:0;min-width:0;width:100%;position:relative;padding-top:var(--toolbar-clearance, 148px)}.toolbar-wrapper{position:absolute;top:0;left:0;right:0;z-index:500}.left-panel-wrap{flex-shrink:0;display:flex;position:relative;z-index:25;transition:width var(--transition-slow),min-width var(--transition-slow)}.left-panel-wrap.is-collapsed{width:48px;min-width:48px}.main-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.sheet-tabs-wrap{flex-shrink:0}.canvas-wrap{flex:1;min-height:0;min-width:0;display:flex}.canvas-area{flex:1;min-width:0;display:flex;overflow:hidden}.right-panel{flex-shrink:0;width:260px;display:flex;transition:width var(--transition-slow),min-width var(--transition-slow)}.right-panel.is-collapsed{width:48px;min-width:48px}.admin-edit-banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:8px 14px;background:var(--bg-elevated);border-bottom:1px solid var(--border-strong);font-size:var(--font-sm);color:var(--text-secondary)}.admin-edit-banner__badge{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.admin-edit-banner__design,.admin-edit-banner__customer,.admin-edit-banner__total,.admin-edit-banner__email{white-space:nowrap}.admin-edit-banner__email{word-break:break-all}.admin-edit-save-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-strong);background:var(--bg-elevated)}.admin-edit-save-banner__title{font-size:var(--font-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.admin-edit-save-banner__hint{flex:1;font-size:var(--font-base);color:var(--text-secondary)}.admin-edit-save-banner__button{border:none;background:var(--accent);color:var(--text-inverse);border-radius:var(--radius-md);padding:8px 16px;font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.admin-edit-save-banner__button:hover:not(:disabled){background:var(--accent-hover)}.admin-edit-save-banner__button:disabled{opacity:.5;cursor:not-allowed}.admin-edit-save-notice{padding:8px 16px;font-size:var(--font-sm);border-bottom:1px solid var(--border)}.admin-edit-save-notice--success{background:var(--success-bg);color:var(--success)}.admin-edit-save-notice--warning{background:var(--warning-muted);color:var(--warning)}.admin-edit-save-notice--error{background:var(--danger-muted);color:var(--danger)}.request-edit-session-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-strong);background:var(--accent-muted)}.request-edit-session-banner__title{font-size:var(--font-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.request-edit-session-banner__hint{flex:1;font-size:var(--font-base);color:var(--text-secondary)}.request-edit-session-banner__button{border:none;background:var(--accent);color:#fff;border-radius:var(--radius-md);padding:8px 16px;font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.request-edit-session-banner__button:hover:not(:disabled){background:var(--accent-hover)}.request-edit-session-banner__button:disabled{opacity:.5;cursor:not-allowed}.submission-confirmation-overlay{position:fixed;inset:0;z-index:9999;background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:overlayFadeIn var(--transition-base)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.submission-confirmation-card{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:36px 32px;max-width:420px;width:90vw;text-align:center;box-shadow:var(--shadow-xl);animation:modalSlideUp .25s ease-out}@keyframes modalSlideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.submission-confirmation-icon{margin-bottom:16px}.submission-confirmation-icon svg{animation:checkPop .4s ease-out .15s both}@keyframes checkPop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.submission-confirmation-title{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:0 0 10px}.submission-confirmation-text{font-size:var(--font-base);color:var(--text-secondary);margin:0 0 6px;line-height:1.5}.submission-confirmation-order{font-size:var(--font-sm);color:var(--text-muted);margin:0 0 12px}.submission-confirmation-hint{font-size:var(--font-sm);color:var(--text-muted);margin:0 0 20px;line-height:1.4}.submission-confirmation-close{display:inline-block;padding:10px 28px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.submission-confirmation-close:hover{background:var(--accent-hover);transform:translateY(-1px)}.cart-preparing-overlay{position:fixed;inset:0;z-index:9998;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.cart-preparing-card{width:min(360px,92vw);padding:24px 20px;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-xl);text-align:center}.cart-preparing-card h3{margin:12px 0 6px;color:var(--text-primary);font-size:var(--font-lg)}.cart-preparing-card p{margin:0;color:var(--text-secondary);font-size:var(--font-base)}.cart-preparing-spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spinnerRotate .7s linear infinite}@keyframes spinnerRotate{to{transform:rotate(360deg)}}.upload-processing-pill{position:fixed;top:142px;right:16px;z-index:220;display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-primary);padding:8px 12px;box-shadow:var(--shadow-md);font-size:var(--font-sm);font-weight:600}.upload-processing-pill__dot{width:8px;height:8px;border-radius:999px;background:var(--accent);box-shadow:0 0 #6366f199;animation:uploadPulse 1.2s ease-out infinite}.upload-processing-pill--compact{max-width:min(200px,calc(100vw - 24px));padding:7px 10px;font-size:var(--font-xs);border-width:2px}.app-layout.is-fast-mode,.app-layout.is-resume-boost{--transition-fast: 0ms;--transition-base: 0ms;--transition-slow: 0ms}.app-layout.is-fast-mode .submission-confirmation-overlay,.app-layout.is-fast-mode .save-design-modal-overlay,.app-layout.is-fast-mode .duplicate-modal-overlay,.app-layout.is-fast-mode .mobile-overlay,.app-layout.is-fast-mode .toolbar-halftone-backdrop,.app-layout.is-fast-mode .toolbar-mobile-halftone-backdrop,.app-layout.is-fast-mode .canvas-crosshair-hint,.app-layout.is-resume-boost .submission-confirmation-overlay,.app-layout.is-resume-boost .save-design-modal-overlay,.app-layout.is-resume-boost .duplicate-modal-overlay,.app-layout.is-resume-boost .mobile-overlay,.app-layout.is-resume-boost .toolbar-halftone-backdrop,.app-layout.is-resume-boost .toolbar-mobile-halftone-backdrop,.app-layout.is-resume-boost .canvas-crosshair-hint{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.app-layout.is-fast-mode .toolbar,.app-layout.is-fast-mode .bottom-bar,.app-layout.is-fast-mode .mobile-overlay-panel,.app-layout.is-fast-mode .toolbar-mobile-more-panel,.app-layout.is-resume-boost .toolbar,.app-layout.is-resume-boost .bottom-bar,.app-layout.is-resume-boost .mobile-overlay-panel,.app-layout.is-resume-boost .toolbar-mobile-more-panel{box-shadow:none!important}@keyframes uploadPulse{0%{box-shadow:0 0 #6366f199}to{box-shadow:0 0 0 12px #6366f100}}.nest-overflow-overlay{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.nest-overflow-dialog{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:28px 32px;max-width:380px;width:90vw;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:var(--shadow-xl);animation:modalSlideUp .25s ease-out}.nest-overflow-icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--warning-muted);border:1px solid rgba(234,179,8,.2);display:flex;align-items:center;justify-content:center;color:var(--warning);margin-bottom:14px}.nest-overflow-title{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:0 0 6px}.nest-overflow-msg{font-size:var(--font-base);color:var(--warning);font-weight:600;margin:0 0 4px}.nest-overflow-sub{font-size:var(--font-sm);color:var(--text-muted);margin:0 0 18px;line-height:1.4}.nest-overflow-actions{width:100%;display:flex;flex-direction:column;gap:8px}.nest-overflow-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:11px 14px;border-radius:var(--radius-md);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);border:1px solid transparent}.nest-overflow-btn:hover{transform:translateY(-1px)}.nest-overflow-btn--add{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.nest-overflow-btn--add:hover{background:var(--accent-hover)}.nest-overflow-btn--dismiss{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-strong)}.nest-overflow-btn--dismiss:hover{background:var(--bg-hover);color:var(--text-primary)}.app-layout.is-mobile .nest-overflow-overlay{align-items:flex-end;justify-content:stretch;padding:0}.app-layout.is-mobile .nest-overflow-dialog{width:100%;max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:20px 18px max(20px,env(safe-area-inset-bottom));max-height:90vh;overflow-y:auto}.app-layout.is-mobile .ko-dialog-overlay:not(.ko-dialog-overlay--knockout-studio){align-items:flex-end;justify-content:stretch;padding:0;padding-bottom:env(safe-area-inset-bottom)}.app-layout.is-mobile .ko-dialog-panel{width:100%;max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:85vh}.app-layout.is-mobile .ko-dialog-overlay--knockout-studio{align-items:flex-end;padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.app-layout.is-mobile .ko-dialog-shell--knockout{max-height:min(92vh,920px);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.ko-dialog-overlay{position:fixed;inset:0;z-index:9999;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:overlayFadeIn .15s ease}.ko-dialog-overlay--knockout-studio{padding:clamp(10px,2vw,22px);padding-bottom:calc(clamp(10px,2vw,22px) + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 18% 12%,rgb(79 70 229 / .22),transparent 32%),radial-gradient(circle at 84% 18%,rgb(14 165 233 / .18),transparent 28%),#0f172a75;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.ko-dialog-panel{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:540px;width:92%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.ko-dialog-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.ko-dialog-title{margin:0;font-size:var(--font-lg);font-weight:700;color:var(--text-primary)}.ko-dialog-name{flex:1;font-size:var(--font-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ko-dialog-close{background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer;padding:0 4px;line-height:1;transition:color var(--transition-fast)}.ko-dialog-close:hover:not(:disabled){color:var(--text-primary)}.ko-dialog-body{display:flex;flex-direction:column;gap:14px;padding:16px}.ko-dialog-hint{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.ko-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.ko-dialog-btn{padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border-strong);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.ko-dialog-btn:disabled{opacity:.5;cursor:not-allowed}.ko-dialog-btn--cancel{background:var(--bg-input);color:var(--text-secondary)}.ko-dialog-btn--cancel:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.ko-dialog-btn--apply{background:var(--danger-muted);color:var(--danger);border-color:#ef444440}.ko-dialog-btn--apply:hover:not(:disabled){background:#ef44442e;transform:translateY(-1px)}.ko-dialog-shell--knockout{width:min(1260px,96vw);height:min(92vh,940px);max-height:92vh;background:#f8fafc;border:1px solid #e2e8f0;border-radius:22px;box-shadow:0 30px 80px -35px #0f172a8c,0 10px 24px -18px #0f172a59;display:flex;flex-direction:column;overflow:hidden;outline:none}.ko-dialog-header--studio{justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid #e2e8f0;flex-shrink:0;background:linear-gradient(135deg,#fffffff5,#eef2ffe6),#f1f5f9}.ko-dialog-head-brand{display:flex;align-items:center;gap:12px;min-width:0}.ko-dialog-head-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 10px 24px -16px #4f46e5e6}.ko-dialog-head-titles{min-width:0;display:flex;flex-direction:column;gap:2px}.ko-dialog-title--studio{margin:0;font-size:1.05rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.ko-dialog-name--studio{font-size:.8125rem;font-weight:500;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ko-dialog-close--studio{border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:12px;width:40px;height:40px;font-size:1.35rem;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;box-shadow:0 1px 2px #0f172a0a}.ko-dialog-close--studio:hover:not(:disabled){color:#0f172a;border-color:#cbd5e1}.ko-dialog-body--studio{flex:1;min-height:0;display:flex;flex-direction:row;gap:0;padding:0}.ko-dialog-side{width:clamp(300px,32vw,440px);min-width:280px;flex-shrink:0;background:#fff;border-right:1px solid #e2e8f0;overflow-x:hidden;overflow-y:auto;padding:18px 16px 22px;display:flex;flex-direction:column;gap:18px}.ko-dialog-side::-webkit-scrollbar{width:10px}.ko-dialog-side::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid #fff}.ko-dialog-instruction-card{padding:14px 14px 16px;border-radius:14px;border:1px solid rgb(129 140 248 / .35);background:linear-gradient(135deg,#eef2fff2,#f1f5f9eb);box-shadow:0 8px 28px -22px #4f46e58c}.ko-dialog-instruction-title{margin:0 0 10px;font-size:.8125rem;font-weight:800;color:#312e81;letter-spacing:-.01em}.ko-dialog-steps{margin:0;padding-left:1.15rem;color:#334155;font-size:.8125rem;line-height:1.45}.ko-dialog-steps li+li{margin-top:6px}.ko-dialog-pane--studio-source{margin:0;min-width:0}.ko-dialog-pane-caption--studio{margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#475569}.ko-dialog-pane-surface--studio{min-height:min(32vh,260px);border-radius:14px}.ko-dialog-pane-surface--pickable.ko-dialog-pane-surface--studio{cursor:crosshair;touch-action:manipulation;background:repeating-conic-gradient(#f1f5f9 0% 25%,#e2e8f0 0% 50%) 50% 50% / 16px 16px;border:2px dashed rgb(129 140 248 / .75);box-shadow:inset 0 0 0 1px #ffffff80;transition:border-color .15s ease,box-shadow .15s ease}.ko-dialog-pane-surface--pickable.ko-dialog-pane-surface--studio:hover:not(.is-disabled){border-color:#4f46e5;box-shadow:inset 0 0 0 1px #ffffff8c,0 0 0 3px #4f46e52e}.ko-dialog-pane-surface--pickable.ko-dialog-pane-surface--studio.is-disabled{opacity:.62;cursor:not-allowed;pointer-events:none}.ko-dialog-pane-subhint--studio{margin:8px 0 0;font-size:.75rem;color:#64748b;line-height:1.35;font-style:italic}.ko-dialog-pane-surface--pickable.ko-dialog-pane-surface--studio .ko-dialog-canvas--studio{max-width:100%;max-height:min(34vh,280px);width:auto;height:auto;border-radius:10px;border:none;background:transparent;display:block}.ko-dialog-controls--studio-side{margin-top:auto;padding-top:4px}.ko-dialog-controls-grid--studio{display:flex;flex-direction:column;gap:14px}.ko-dialog-field-label--studio{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.ko-dialog-swatch--studio{border-radius:10px;border:2px solid #e2e8f0}.ko-dialog-hex--studio{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#0f172a}.ko-dialog-hex--studio:focus{border-color:#6366f1}.ko-dialog-slider--studio{accent-color:#4f46e5}.ko-dialog-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:radial-gradient(circle at 50% 22%,rgb(255 255 255 / .72),transparent 30%),linear-gradient(135deg,#dbeafe,#e2e8f0 50%,#ede9fe)}.ko-dialog-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-bottom:1px solid #e2e8f0;flex-shrink:0;background:#f8fafceb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ko-dialog-preview-toolbar-label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#475569}.ko-dialog-preview-stage{position:relative;flex:1;min-height:260px;display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vw,48px);overflow:auto;background-color:transparent;background-image:linear-gradient(90deg,rgb(15 23 42 / .05) 1px,transparent 1px),linear-gradient(rgb(15 23 42 / .05) 1px,transparent 1px),radial-gradient(circle at center,rgb(255 255 255 / .55),transparent 42%);background-size:32px 32px,32px 32px,100% 100%}.ko-dialog-preview-viewport{position:relative;width:100%;min-height:min(36vh,300px);max-height:min(52vh,440px);border-radius:16px;border:1px solid rgb(79 70 229 / .22);background:linear-gradient(135deg,#ffffff73,#ffffff14),repeating-conic-gradient(#f8fafc 0% 25%,#f1f5f9 0% 50%) 50% 50% / 16px 16px;box-shadow:0 24px 80px -48px #0f172a8c,inset 0 0 0 1px #ffffff80;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px}.ko-dialog-preview-img--studio{max-width:100%;max-height:min(48vh,400px);object-fit:contain;display:block;border-radius:10px}.ko-dialog-preview-loading,.ko-dialog-preview-hint{font-size:.9rem;color:#64748b}.ko-dialog-preview-loading{font-style:italic}.ko-dialog-foot{flex-shrink:0;padding:16px 22px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#f8fafc}.ko-dialog-actions--foot{justify-content:flex-end;gap:12px}.ko-dialog-btn--studio-cancel{border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:12px;padding:10px 18px}.ko-dialog-btn--studio-cancel:hover:not(:disabled){background:#f8fafc;color:#0f172a;transform:none}.ko-dialog-btn--studio-apply{border-radius:12px;padding:10px 22px;border:1px solid #4f46e5;background:linear-gradient(135deg,#4f46e5,#2563eb);color:#fff;box-shadow:0 10px 22px -14px #312e81}.ko-dialog-btn--studio-apply:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}@media(max-width:980px){.ko-dialog-shell--knockout{width:98vw;height:min(94vh,900px);border-radius:18px}.ko-dialog-body--studio{flex-direction:column}.ko-dialog-side{width:100%;min-width:0;max-height:46%;border-right:none;border-bottom:1px solid #e2e8f0;flex-shrink:0}.ko-dialog-main{flex:1;min-height:min(42vh,360px)}.ko-dialog-preview-stage{min-height:200px;padding:16px}.ko-dialog-preview-viewport{min-height:min(34vh,280px);max-height:min(46vh,360px)}.ko-dialog-pane-surface--pickable.ko-dialog-pane-surface--studio .ko-dialog-canvas--studio{max-height:min(28vh,220px)}.ko-dialog-pane-surface--studio{min-height:min(26vh,200px)}}.ko-dialog-field{display:flex;flex-direction:column;gap:4px}.ko-dialog-field-label{font-size:var(--font-xs);font-weight:600;color:var(--text-secondary)}.ko-dialog-color-row{display:flex;align-items:center;gap:8px}.ko-dialog-swatch{width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid var(--border-strong);flex-shrink:0}.ko-dialog-hex{flex:1;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-base);font-family:monospace;transition:border-color var(--transition-fast)}.ko-dialog-hex:focus{outline:none;border-color:var(--accent)}.ko-dialog-hex:disabled{opacity:.65;cursor:not-allowed}.ko-dialog-slider{width:100%;accent-color:#f87171}.ko-dialog-controls{display:flex;flex-direction:column;gap:12px}.mobile-color-pick-hint{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:2605;max-width:min(92vw,520px);padding:10px 14px;border-radius:var(--radius-md);border:1px solid rgba(52,211,153,.3);background:#047857eb;color:#ecfdf5;font-size:var(--font-base);font-weight:600;text-align:center;pointer-events:none;box-shadow:var(--shadow-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.mobile-landscape-recommendation{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:12000;width:min(94vw,480px);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:color-mix(in srgb,var(--bg-elevated) 92%,var(--accent) 8%);box-shadow:var(--shadow-lg);font-size:var(--font-xs);color:var(--text-primary)}.mobile-landscape-recommendation button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-size:11px;font-weight:700;padding:3px 7px}.dev-turnaround-shortcut-btn{display:inline-flex;align-items:center;gap:.3rem;border:0;border-radius:var(--radius-full);background:color-mix(in srgb,var(--text-muted) 14%,transparent);color:var(--text-muted);font-size:var(--font-2xs);font-weight:600;padding:.22rem .5rem .22rem .4rem;cursor:pointer;box-shadow:none;white-space:nowrap;max-width:min(200px,28vw);letter-spacing:.01em}.dev-turnaround-shortcut-btn:hover{background:color-mix(in srgb,var(--text-muted) 22%,transparent);color:var(--text-secondary)}.dev-turnaround-shortcut-icon{flex-shrink:0;width:12px;height:12px;opacity:.9;color:var(--text-muted)}.dev-turnaround-shortcut-label-desktop{display:inline}.dev-turnaround-shortcut-label-mobile{display:none}@media(max-width:640px){.dev-turnaround-shortcut-label-desktop{display:none}.dev-turnaround-shortcut-label-mobile{display:inline}.dev-turnaround-shortcut-btn{max-width:4.5rem;padding:.2rem .35rem;font-size:.65rem}.dev-turnaround-shortcut-icon{width:10px;height:10px}}.help-fab-wrap{position:fixed;bottom:56px;right:18px;z-index:200;display:flex;flex-direction:column;align-items:center;gap:.5rem}.app-layout.is-mobile .help-fab-wrap{bottom:calc(124px + env(safe-area-inset-bottom));right:14px}.app-layout.is-mobile{height:100dvh;overflow:hidden}.app-layout.is-mobile .app-body{padding-top:calc(132px + env(safe-area-inset-top));padding-bottom:calc(128px + env(safe-area-inset-bottom))}.app-layout.is-mobile .sheet-tabs-wrap{position:relative;z-index:2;background:var(--bg-panel)}.app-layout.is-mobile.is-tablet .app-body{padding-top:calc(136px + env(safe-area-inset-top));padding-bottom:calc(132px + env(safe-area-inset-bottom))}.app-layout.is-mobile.is-tablet .help-fab-wrap{right:18px;bottom:calc(132px + env(safe-area-inset-bottom))}.help-fab{width:40px;height:40px;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--accent);font-size:1.1rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),color var(--transition-fast)}.theme-fab{color:var(--text-secondary)}.theme-fab:hover{color:var(--text-primary);background:var(--bg-hover)}.help-fab:hover{background:var(--accent);color:#fff;transform:scale(1.08);box-shadow:var(--shadow-lg),var(--shadow-glow)}.help-fab-popover{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:6px;box-shadow:var(--shadow-lg);min-width:170px;animation:popoverIn .15s ease-out}@keyframes popoverIn{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.help-fab-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--font-base);font-weight:500;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.help-fab-option:hover{background:var(--bg-hover);color:var(--text-primary)}.help-fab-option svg{flex-shrink:0;color:var(--accent)}@media(max-width:767px){.app-layout{height:100dvh;overflow:hidden}.app-body{padding-top:calc(132px + env(safe-area-inset-top));padding-bottom:calc(128px + env(safe-area-inset-bottom))}.sheet-tabs-wrap{position:relative;z-index:2;background:var(--bg-panel)}.canvas-viewport{padding:8px!important;overscroll-behavior:contain}.upload-processing-pill{top:max(74px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));padding:7px 10px;font-size:var(--font-xs);z-index:250}}@media(min-width:768px)and (max-width:1023px){.app-layout{height:100dvh;overflow:hidden;overflow-x:hidden}.left-panel-wrap{width:auto}.canvas-viewport{padding:16px!important;overscroll-behavior:contain;min-width:0}}@media(min-width:768px)and (max-width:1023px)and (orientation:portrait){.left-panel-wrap:not(.is-collapsed) .left-panel{width:190px}.right-panel:not(.is-collapsed) .rp{width:190px}.right-panel{width:230px}}@media(min-width:768px)and (max-width:1023px)and (orientation:landscape){.left-panel-wrap:not(.is-collapsed) .left-panel{width:210px}.right-panel:not(.is-collapsed) .rp{width:210px}}.guest-mode-reminder{position:fixed;bottom:20px;left:20px;z-index:99998;padding:6px 12px;font-size:.75rem;font-weight:500;color:#ffffffbf;background:#00000073;border:1px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #00000040;transition:background .15s,color .15s;max-width:260px;text-align:left;line-height:1.35}.guest-mode-reminder:hover{background:#0009;color:#ffffffe6}.tour-prompt{position:fixed;right:20px;bottom:20px;z-index:99997;display:flex;gap:14px;align-items:center;max-width:360px;padding:12px 14px;color:var(--text-primary);background:color-mix(in srgb,var(--bg-elevated) 94%,transparent);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tour-prompt strong,.tour-prompt span{display:block}.tour-prompt span{color:var(--text-secondary);font-size:.82rem}.tour-prompt-actions{display:flex;gap:8px;flex-shrink:0}.tour-prompt-actions button{padding:6px 10px;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.tour-prompt-actions button:first-child{color:var(--text-inverse);background:var(--accent);border-color:var(--accent)}.brand-watermark{position:fixed;left:14px;bottom:14px;z-index:120;pointer-events:none;font-size:11px;font-weight:500;letter-spacing:.02em;color:color-mix(in srgb,var(--text-muted) 80%,var(--bg-app) 20%);opacity:.72;text-shadow:0 1px 0 rgba(255,255,255,.15)}@media(max-width:767px){.brand-watermark{display:none}}*{box-sizing:border-box}:root{--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 999px;--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .3s ease-out;--font-2xs: .65rem;--font-xs: .72rem;--font-sm: .78rem;--font-base: .84rem;--font-md: .92rem;--font-lg: 1rem;--font-xl: 1.15rem;--font-2xl: 1.35rem}:root,[data-theme=light]{--bg-app: #f1f5f9;--bg-panel: #ffffff;--bg-elevated: #ffffff;--bg-surface: #f8fafc;--bg-input: #f1f5f9;--bg-card: #f8fafc;--bg-hover: #e2e8f0;--border: #e2e8f0;--border-strong: #cbd5e1;--border-input: #94a3b8;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-inverse: #ffffff;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-muted: rgba(37, 99, 235, .08);--ring-accent: rgba(37, 99, 235, .4);--danger: #dc2626;--danger-muted: rgba(220, 38, 38, .08);--success: #16a34a;--success-muted: #4ade80;--success-bg: rgba(34, 197, 94, .08);--warning: #ca8a04;--warning-muted: rgba(234, 179, 8, .08);--canvas-viewport: #e2e8f0;--sheet-border: #94a3b8;--overlay: rgba(15, 23, 42, .4);--badge-bg: rgba(255, 255, 255, .92);--badge-border: rgba(0, 0, 0, .08);--object-label-bg: rgba(15, 23, 42, .8);--object-label-color: #e2e8f0;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 36px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 56px rgba(0, 0, 0, .14);--shadow-glow: 0 0 20px rgba(37, 99, 235, .08);--scrollbar-track: transparent;--scrollbar-thumb: rgba(148, 163, 184, .4);--scrollbar-thumb-hover: rgba(148, 163, 184, .6);--selection-marquee-border: rgba(37, 99, 235, .75);--selection-marquee-fill: rgba(37, 99, 235, .12);--selection-action-bar-bg: rgba(255, 255, 255, .98);--selection-action-bar-border: rgba(15, 23, 42, .1);--selection-action-bar-shadow: 0 4px 20px rgba(15, 23, 42, .12), 0 0 0 1px rgba(255, 255, 255, .65) inset;--selection-action-bar-text: #334155;--selection-action-bar-hover-bg: rgba(37, 99, 235, .1);--selection-action-bar-hover-text: #1d4ed8;--selection-action-bar-danger: #b91c1c;--selection-action-bar-danger-hover-bg: rgba(239, 68, 68, .12);--selection-action-bar-danger-hover-text: #dc2626;--selection-action-bar-sep: rgba(15, 23, 42, .08);--resize-handle-dot-ring: #ffffff;--precision-pill-bg: linear-gradient(180deg, #f8fafc 0%, #e8edf4 100%);--precision-pill-border: rgba(15, 23, 42, .12);--precision-pill-shadow: 0 5px 19px rgba(15, 23, 42, .1), 0 0 0 1px rgba(255, 255, 255, .85) inset;--precision-pill-driver-bg: rgba(37, 99, 235, .1);--precision-pill-label-accent: #2563eb;--precision-pill-label-muted: #64748b;--precision-pill-follower-outline: rgba(37, 99, 235, .45);--precision-pill-input-bg: rgba(255, 255, 255, .95);--precision-pill-input-text: #0f172a;--precision-pill-input-focus-ring: rgba(37, 99, 235, .45);--precision-pill-readonly: #475569;--precision-pill-unit: #64748b;--precision-pill-link: #2563eb;--precision-pill-dot: rgba(100, 116, 139, .5);--precision-pill-lock-shadow: 0 2px 7px rgba(37, 99, 235, .35);--precision-pill-lock-unlocked-bg: rgba(15, 23, 42, .06);--precision-pill-lock-unlocked-text: #334155;--precision-pill-lock-unlocked-hover: rgba(15, 23, 42, .11);--precision-pill-dpi-chip-bg: rgba(255, 255, 255, .94);--precision-pill-dpi-chip-border: rgba(15, 23, 42, .12);--precision-pill-dpi-chip-shadow: 0 2px 10px rgba(15, 23, 42, .12);--precision-pill-dpi-text-shadow: 0 1px 0 rgba(255, 255, 255, .9);--precision-pill-dpi-ambient: rgba(15, 23, 42, .08);--precision-pill-dpi-ring-low: rgba(248, 113, 113, .35);--precision-pill-dpi-ring-ok: rgba(251, 191, 36, .32);--precision-pill-dpi-ring-optimum: rgba(34, 197, 94, .35);--placed-object-hover-border: rgba(37, 99, 235, .35);--placed-object-selected-border: #2563eb;--placed-object-selected-glow: rgba(37, 99, 235, .2)}[data-theme=dark]{--bg-app: #0e1117;--bg-panel: #0e1117;--bg-elevated: #1a2030;--bg-surface: #1e2538;--bg-input: #111827;--bg-card: #162033;--bg-hover: #1e2d45;--border: #1f2937;--border-strong: #2d3a4d;--border-input: #374357;--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f172a;--accent: #3b82f6;--accent-hover: #2563eb;--accent-muted: rgba(59, 130, 246, .12);--ring-accent: rgba(59, 130, 246, .5);--danger: #ef4444;--danger-muted: rgba(239, 68, 68, .12);--success: #22c55e;--success-muted: #86efac;--success-bg: rgba(34, 197, 94, .1);--warning: #eab308;--warning-muted: rgba(234, 179, 8, .1);--canvas-viewport: #0c0f15;--sheet-border: #475569;--overlay: rgba(0, 0, 0, .6);--badge-bg: rgba(15, 23, 42, .8);--badge-border: rgba(100, 116, 139, .3);--object-label-bg: rgba(15, 23, 42, .88);--object-label-color: #cbd5e1;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 36px rgba(0, 0, 0, .45);--shadow-xl: 0 20px 56px rgba(0, 0, 0, .55);--shadow-glow: 0 0 20px rgba(59, 130, 246, .15);--scrollbar-track: transparent;--scrollbar-thumb: rgba(100, 116, 139, .3);--scrollbar-thumb-hover: rgba(100, 116, 139, .5);--selection-marquee-border: rgba(96, 165, 250, .85);--selection-marquee-fill: rgba(59, 130, 246, .14);--selection-action-bar-bg: rgba(30, 35, 48, .96);--selection-action-bar-border: rgba(148, 163, 184, .14);--selection-action-bar-shadow: 0 4px 24px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .05) inset;--selection-action-bar-text: #e2e8f0;--selection-action-bar-hover-bg: rgba(59, 130, 246, .18);--selection-action-bar-hover-text: #93c5fd;--selection-action-bar-danger: #fca5a5;--selection-action-bar-danger-hover-bg: rgba(239, 68, 68, .22);--selection-action-bar-danger-hover-text: #fecaca;--selection-action-bar-sep: rgba(148, 163, 184, .12);--resize-handle-dot-ring: #ffffff;--precision-pill-bg: linear-gradient(180deg, #2a303c 0%, #1a1f28 100%);--precision-pill-border: rgba(255, 255, 255, .08);--precision-pill-shadow: 0 5px 19px rgba(15, 23, 42, .32), 0 0 0 1px rgba(0, 0, 0, .18) inset;--precision-pill-driver-bg: rgba(255, 255, 255, .06);--precision-pill-label-accent: #60a5fa;--precision-pill-label-muted: rgba(148, 163, 184, .75);--precision-pill-follower-outline: rgba(59, 130, 246, .55);--precision-pill-input-bg: rgba(255, 255, 255, .07);--precision-pill-input-text: #f8fafc;--precision-pill-input-focus-ring: rgba(59, 130, 246, .5);--precision-pill-readonly: #e2e8f0;--precision-pill-unit: rgba(148, 163, 184, .9);--precision-pill-link: #60a5fa;--precision-pill-dot: rgba(148, 163, 184, .45);--precision-pill-lock-shadow: 0 2px 7px rgba(37, 99, 235, .4);--precision-pill-lock-unlocked-bg: rgba(255, 255, 255, .1);--precision-pill-lock-unlocked-text: rgba(248, 250, 252, .85);--precision-pill-lock-unlocked-hover: rgba(255, 255, 255, .16);--precision-pill-dpi-chip-bg: rgba(15, 23, 42, .78);--precision-pill-dpi-chip-border: rgba(255, 255, 255, .1);--precision-pill-dpi-chip-shadow: 0 2px 10px rgba(0, 0, 0, .35);--precision-pill-dpi-text-shadow: 0 1px 2px rgba(0, 0, 0, .65);--precision-pill-dpi-ambient: rgba(15, 23, 42, .35);--precision-pill-dpi-ring-low: rgba(248, 113, 113, .25);--precision-pill-dpi-ring-ok: rgba(251, 191, 36, .2);--precision-pill-dpi-ring-optimum: rgba(74, 222, 128, .2);--placed-object-hover-border: rgba(59, 130, 246, .3);--placed-object-selected-border: #3b82f6;--placed-object-selected-glow: rgba(59, 130, 246, .18)}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;height:100dvh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}:focus-visible{outline:2px solid var(--ring-accent);outline-offset:2px}
