:root,[data-theme=light]{font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#1a1a1a;background-color:#e5e0d7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel-bg: #fff;--border: #c5bdb2;--accent: #c45c3e;--accent-hover: #a84d32;--muted: #55504b;--preview-bg: #d9d3ca;--page-bg: #e5e0d7;--text: #1a1a1a;--text-muted: #55504b}[data-theme=dark]{color:#e8e4df;background-color:#1c1a18;--panel-bg: #2a2725;--border: #3d3936;--accent: #e07a5a;--accent-hover: #f08a6a;--muted: #9c9690;--preview-bg: #252220;--page-bg: #1c1a18;--text: #e8e4df;--text-muted: #9c9690}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;overscroll-behavior:none;-webkit-text-size-adjust:100%}@media(max-width:768px){input,select,textarea{font-size:16px!important}}#root{min-height:100dvh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;border-radius:10px;font-weight:500;transition:background-color .2s,transform .1s}button:active{transform:scale(.98)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}code,.mono{font-family:JetBrains Mono,monospace;font-size:.9em}.navbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-top:max(.75rem,env(safe-area-inset-top));background:var(--panel-bg);border-bottom:1px solid var(--border);flex-shrink:0}.navbar-brand{font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.02em}.navbar-brand:hover{color:var(--accent)}.navbar-links{display:flex;gap:.25rem}.navbar-menu{position:relative}.navbar-menu-trigger{display:flex;align-items:center;gap:.3rem;padding:.4rem .7rem;background:transparent;border:none;color:var(--text-muted);font-weight:500;font-size:.95rem;border-radius:8px;cursor:pointer;transition:color .15s,background .15s}.navbar-menu-trigger:hover,.navbar-menu-trigger[aria-expanded=true]{color:var(--text);background:var(--preview-bg, rgba(0,0,0,.04))}.navbar-menu-chevron{transition:transform .15s}.navbar-menu-trigger[aria-expanded=true] .navbar-menu-chevron{transform:rotate(180deg)}.navbar-menu-dropdown{position:absolute;top:calc(100% + .35rem);left:0;min-width:160px;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #0000001f;padding:.3rem;z-index:120;animation:navbar-menu-in .12s ease-out}@keyframes navbar-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.navbar-menu-dropdown a{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;color:var(--text);text-decoration:none;font-size:.9rem;font-weight:500;border-radius:7px;transition:background .1s}.navbar-menu-dropdown a:hover{background:var(--preview-bg, rgba(0,0,0,.04));color:var(--accent)}.navbar-menu-dropdown a svg{flex-shrink:0;color:var(--text-muted)}.navbar-menu-dropdown a:hover svg{color:var(--accent)}.navbar-right{display:flex;align-items:center;gap:1rem}.navbar-theme-toggle{width:2.25rem;height:2.25rem;border-radius:8px;background:transparent;border:1px solid var(--border);font-size:1.1rem;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.navbar-theme-toggle:hover{background:var(--border);color:var(--text)}.navbar-login{display:flex;align-items:center;justify-content:center;width:9rem;height:2.25rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;font-size:.9rem;box-sizing:border-box}.navbar-login:hover{background:var(--accent-hover)}.navbar-user{position:relative}.navbar-user-trigger{display:flex;align-items:center;gap:.5rem;width:9rem;height:2.25rem;padding:0 .5rem;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;box-sizing:border-box}.navbar-user-trigger:hover{background:var(--border)}.navbar-user-avatar{width:1.5rem;height:1.5rem;flex-shrink:0;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.72rem}.navbar-user-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-dropdown{position:absolute;top:calc(100% + .25rem);right:0;min-width:160px;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:.35rem;z-index:100}.navbar-dropdown a,.navbar-dropdown button{display:flex;align-items:center;width:100%;padding:.55rem .85rem;text-align:left;background:none;border:none;color:var(--text);text-decoration:none;font-size:.9rem;line-height:1.3;border-radius:6px;cursor:pointer;box-sizing:border-box}.navbar-dropdown a:hover,.navbar-dropdown button:hover{background:var(--border)}.navbar-dropdown-theme{gap:.6rem}.navbar-dropdown-theme-icon{font-size:1.05rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.navbar-dropdown-sep{height:1px;background:var(--border);margin:.25rem 0}.navbar-admin-link{color:#7c3aed!important;font-weight:500}.navbar-admin-link:hover{background:#7c3aed12!important}.navbar-cart{position:relative;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:8px;color:var(--text-muted);text-decoration:none;background:transparent;border:1px solid var(--border);cursor:pointer;transition:all .15s}.navbar-cart:hover{background:var(--border);color:var(--text)}.navbar-cart-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.navbar-cart-wrap{position:relative}.mini-cart{position:absolute;top:calc(100% + .5rem);right:0;width:320px;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px #0000002e;z-index:200;display:flex;flex-direction:column;overflow:hidden;animation:mini-cart-in .15s ease-out}@keyframes mini-cart-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.mini-cart-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.mini-cart-title{font-weight:600;font-size:.95rem;color:var(--text)}.mini-cart-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer}.mini-cart-close:hover{background:var(--border);color:var(--text)}.mini-cart-empty{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.9rem}.mini-cart-items{max-height:240px;overflow-y:auto;padding:.5rem 0}.mini-cart-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem}.mini-cart-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.mini-cart-item-name{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-cart-item-qty{font-size:.75rem;color:var(--text-muted)}.mini-cart-item-price{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap}.mini-cart-item-remove{flex-shrink:0;width:24px;height:24px;border-radius:6px;background:transparent;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.mini-cart-item-remove:hover{background:var(--border);color:var(--accent)}.mini-cart-footer{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem}.mini-cart-total,.mini-cart-shipping{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-muted)}.mini-cart-total{font-weight:600;color:var(--text)}.mini-cart-checkout{display:flex;align-items:center;justify-content:center;margin-top:.5rem;padding:.7rem 1rem;background:var(--accent);color:#fff;font-size:.95rem;font-weight:600;border:none;border-radius:10px;text-decoration:none;cursor:pointer;transition:background .15s,transform .1s}.mini-cart-checkout:hover{background:var(--accent-hover);transform:translateY(-1px)}.navbar-hamburger{display:none;width:40px;height:40px;border-radius:8px;background:transparent;border:1px solid var(--border);color:var(--text);align-items:center;justify-content:center;padding:0;flex-shrink:0}@media(max-width:768px){.navbar{padding:.5rem .75rem;padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right));flex-wrap:wrap}.navbar-hamburger{display:flex;order:3}.navbar-links{display:none;order:4;width:100%;flex-direction:column;gap:0;padding:.5rem 0 0;border-top:1px solid var(--border);margin-top:.5rem}.navbar-links.open{display:flex}.navbar-menu{position:static}.navbar-menu-trigger{width:100%;justify-content:space-between;padding:.65rem .5rem;font-size:1rem}.navbar-menu-dropdown{position:static;box-shadow:none;border:none;padding:0 0 0 1rem;animation:none;background:transparent}.navbar-menu-dropdown a{padding:.6rem .5rem;font-size:.95rem}.navbar-right{order:2;gap:.5rem;margin-left:auto}.navbar-user-name{display:none}.navbar-user-trigger{width:auto;padding:.25rem;border-radius:50%}.navbar-cart{width:40px;height:40px}.navbar-dropdown{right:-.5rem;min-width:200px}.navbar-dropdown a,.navbar-dropdown button{padding:.65rem .85rem}.mini-cart{position:fixed;top:auto;right:.5rem;left:.5rem;bottom:.5rem;width:auto;max-height:70dvh;border-radius:16px;box-shadow:0 -4px 30px #00000040}}@media(max-width:480px){.navbar-brand{font-size:1.05rem}.navbar-hamburger{width:36px;height:36px}}@media(pointer:coarse){.navbar-menu-trigger{min-height:44px}.navbar-menu-dropdown a{min-height:44px;padding:.65rem .8rem}.navbar-cart,.navbar-hamburger{width:44px;height:44px}.mini-cart-close{width:36px;height:36px}.mini-cart-item{padding:.6rem 1rem}.mini-cart-item-remove{width:32px;height:32px}.mini-cart-checkout{min-height:48px;font-size:1rem}.navbar-dropdown a,.navbar-dropdown button{min-height:44px;padding:.65rem .85rem}}.landing{flex:1;display:flex;flex-direction:column;align-items:center;padding:3rem 2rem 4rem;background:var(--page-bg)}.landing-hero{text-align:center;max-width:600px;margin-bottom:3rem}.landing-title{font-size:2.5rem;font-weight:700;color:var(--text);margin:0 0 1rem;line-height:1.2}.landing-title span{color:var(--accent)}.landing-subtitle{font-size:1.15rem;color:var(--text-muted);margin:0;line-height:1.6}.landing-steps{display:flex;flex-direction:column;align-items:center;gap:0;width:100%;max-width:540px}.landing-step{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.landing-step-num{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:1rem;margin-bottom:.75rem;flex-shrink:0}.landing-step-title{font-size:1.3rem;font-weight:600;color:var(--text);margin:0 0 .35rem}.landing-step-desc{font-size:.95rem;color:var(--text-muted);margin:0 0 1rem;line-height:1.5;max-width:400px}.landing-step-connector{display:flex;justify-content:center;padding:.25rem 0}.landing-step-ctas{display:flex;align-items:center;gap:1rem;width:100%}.landing-step-alt{margin:.75rem 0 0;font-size:.88rem;color:var(--text-muted);text-align:center}.landing-step-alt a{color:var(--accent);text-decoration:none;font-weight:500}.landing-step-alt a:hover{text-decoration:underline}.landing-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.5rem 1.25rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s,box-shadow .2s}.landing-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 20px #00000014}.landing-card-icon{color:var(--accent);display:flex;align-items:center;justify-content:center}.landing-card-text{display:flex;flex-direction:column;gap:.2rem}.landing-card-text h3{font-size:1.05rem;font-weight:600;margin:0;color:var(--text)}.landing-card-text p{font-size:.82rem;color:var(--text-muted);margin:0;line-height:1.45;text-align:center}.landing-or{font-size:.85rem;font-weight:500;color:var(--text-muted);text-transform:lowercase;flex-shrink:0;-webkit-user-select:none;user-select:none}.landing-pricing{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:14px}.landing-price-item{display:flex;flex-direction:column;align-items:center;gap:.15rem}.landing-price-label{font-size:.78rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.landing-price-value{font-size:1.3rem;font-weight:700;color:var(--text)}.landing-price-plus{font-size:1rem;color:var(--text-muted);font-weight:500}.landing-delivery{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.5rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:14px}.landing-delivery-text{font-size:.95rem;font-weight:600;color:var(--text)}.landing-bottom-cta{margin-top:2.5rem}.landing-start-btn{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 2.5rem;font-size:1.05rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:12px;text-decoration:none;cursor:pointer;transition:background .15s,transform .1s}.landing-start-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}@media(max-width:640px){.landing{padding:2rem 1.25rem 3rem;padding-bottom:max(3rem,env(safe-area-inset-bottom))}.landing-hero{margin-bottom:2rem}.landing-title{font-size:1.75rem}.landing-subtitle{font-size:1rem}.landing-step-ctas{flex-direction:column;gap:0}.landing-card{flex-direction:row;align-items:center;padding:1rem 1.25rem;gap:.75rem}.landing-card-text p{text-align:left}.landing-or{padding:.25rem 0}.landing-pricing{gap:.75rem;padding:.85rem 1rem}.landing-price-value{font-size:1.1rem}.landing-start-btn{width:100%;padding:1rem 2rem;font-size:1.1rem}.landing-bottom-cta{width:100%;margin-top:2rem}.landing-delivery,.landing-pricing{width:100%;justify-content:center}}@media(pointer:coarse){.landing-card{min-height:72px}.landing-start-btn{min-height:52px}}.login-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:var(--page-bg)}.login-card{width:100%;max-width:380px;padding:2rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:16px}.login-card h1{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 1.5rem;text-align:center}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-form input{padding:.65rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;font-family:inherit;background:var(--panel-bg);color:var(--text)}.login-form input::placeholder{color:var(--text-muted)}.login-form input:focus{outline:none;border-color:var(--accent)}.login-error{color:#b91c1c;font-size:.9rem;margin:0}.login-submit{padding:.75rem;background:var(--accent);color:#fff;font-size:1rem;font-weight:500;border-radius:8px;margin-top:.25rem}.login-submit:hover:not(:disabled){background:var(--accent-hover)}.login-forgot{display:block;text-align:right;font-size:.82rem;color:var(--text-muted);text-decoration:none;margin-top:-.25rem}.login-forgot:hover{color:var(--accent)}.login-divider{text-align:center;color:var(--text-muted);font-size:.9rem;margin:1.25rem 0 .75rem}.login-google{display:flex;justify-content:center}.login-google>div{margin:0 auto}.login-switch{text-align:center;font-size:.9rem;color:var(--text-muted);margin:1.5rem 0 0}.login-switch-btn{background:none;border:none;color:var(--accent);font-weight:500;padding:0;cursor:pointer}.login-switch-btn:hover{text-decoration:underline}.login-back{margin-top:1.5rem}.login-back a{color:var(--text-muted);text-decoration:none;font-size:.9rem}.login-back a:hover{color:var(--accent)}@media(max-width:640px){.login-page{padding:1.5rem 1rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));justify-content:flex-start;padding-top:3rem}.login-card{padding:1.5rem;border-radius:14px}.login-card h1{font-size:1.3rem;margin-bottom:1.25rem}.login-form input{padding:.75rem 1rem;font-size:16px}.login-submit{min-height:48px;font-size:1rem}}@media(pointer:coarse){.login-form input{min-height:48px;padding:.75rem 1rem}.login-submit{min-height:52px}.login-switch-btn{min-height:44px;padding:.25rem .5rem}}.account-page{flex:1;display:flex;justify-content:center;padding:2rem;background:var(--page-bg)}.account-container{width:100%;max-width:480px}.account-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.account-avatar{width:3rem;height:3rem;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.account-header h1{font-size:1.3rem;font-weight:700;color:var(--text);margin:0}.account-email{color:var(--text-muted);font-size:.88rem;margin:.15rem 0 0}.account-section{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem}.account-section h2{font-size:.75rem;font-weight:600;color:var(--text-muted);margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.account-form{display:flex;flex-direction:column;gap:.85rem}.account-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--text-muted)}.account-form input{padding:.6rem .85rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;font-family:inherit;background:var(--page-bg);color:var(--text);transition:border-color .15s}.account-form input:focus{outline:none;border-color:var(--accent)}.account-form button{padding:.6rem 1rem;background:var(--accent);color:#fff;font-size:.9rem;font-weight:500;border-radius:8px;align-self:flex-start}.account-form button:hover{background:var(--accent-hover)}.account-msg{font-size:.85rem;margin:0}.account-msg.error{color:#b91c1c}.account-msg.success{color:#15803d}.theme-picker{display:flex;gap:.5rem}.theme-option{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem;background:var(--page-bg);border:2px solid var(--border);border-radius:10px;color:var(--text-muted);font-size:.88rem;font-weight:500;transition:all .15s}.theme-option:hover{border-color:var(--text-muted)}.theme-option.active{border-color:var(--accent);color:var(--accent);background:var(--panel-bg)}.theme-icon{font-size:1.1rem}.account-links{display:flex;flex-direction:column;gap:.5rem}.account-links a{display:flex;align-items:center;padding:.6rem .85rem;background:var(--page-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);text-decoration:none;font-size:.9rem;transition:border-color .15s}.account-links a:hover{border-color:var(--accent);color:var(--accent)}.account-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.logout-btn{padding:.55rem 1.1rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;font-size:.88rem}.logout-btn:hover{background:#d9382712;color:#d93827;border-color:#d9382740}@media(max-width:640px){.account-page{padding:1.5rem 1rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.account-header h1{font-size:1.15rem}.account-form input{font-size:16px}.theme-option{padding:.6rem;min-height:44px}.account-links a{min-height:44px}}@media(pointer:coarse){.account-form input{min-height:44px;padding:.65rem .85rem}.account-form button{min-height:44px}.theme-option,.account-links a{min-height:48px}.logout-btn{min-height:44px}}.convert-page{flex:1;display:flex;flex-direction:column;max-width:720px;width:100%;margin:0 auto;padding:2rem}.convert-page--preview{max-width:1100px}.convert-header{margin-bottom:1.5rem}.convert-header h1{font-size:1.5rem;font-weight:700;color:var(--text-muted);margin:0}.convert-header h1 span{color:var(--accent)}.convert-upload{display:flex;flex-direction:column}.uploadZone{min-height:240px;border:2px dashed var(--border);border-radius:16px;background:var(--panel-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2.5rem 2rem;transition:border-color .2s,background .2s,transform .15s;cursor:pointer}.uploadZone:hover,.uploadZone.dragging{border-color:var(--accent);background:var(--preview-bg);transform:scale(1.005)}.upload-icon{color:var(--text-muted);opacity:.4;margin-bottom:.25rem}.uploadZone p{margin:0;color:var(--text-muted);font-size:.95rem}.uploadZone .hint{font-size:.8rem;opacity:.7}input[type=file]{display:none}.fileList{margin-top:1rem;padding:0;list-style:none}.fileList li{display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem;background:var(--panel-bg);border-radius:8px;margin-bottom:.35rem;border:1px solid var(--border);font-size:.9rem}.file-badge{font-size:.65rem;font-weight:600;letter-spacing:.04em;color:var(--accent);background:var(--preview-bg);border:1px solid var(--border);padding:.15rem .45rem;border-radius:4px;flex-shrink:0}.fileList li .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.fileList li button{padding:.25rem .55rem;font-size:.75rem;background:transparent;color:var(--text-muted)}.fileList li button:hover{color:#d93827;background:#d9382710}.actions{margin-top:1.25rem;display:flex;gap:.75rem;flex-wrap:wrap}.btnPrimary{background:var(--accent);color:#fff;padding:.65rem 1.25rem;font-size:1rem}.btnPrimary:hover:not(:disabled){background:var(--accent-hover)}.btnSecondary{background:var(--panel-bg);color:var(--text-muted);border:1px solid var(--border);padding:.65rem 1.25rem;font-size:1rem}.btnSecondary:hover:not(:disabled){background:var(--preview-bg);color:var(--text)}.status{margin-top:1rem;min-height:1.5rem;font-size:.9rem;color:var(--text-muted)}.status.error{color:#b91c1c}.convert-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:3rem 1rem}.loader-container{position:relative;width:120px;height:120px}.loader-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:pulse-ring 2.4s ease-out infinite}.loader-ring.delay-1{animation-delay:.8s}.loader-ring.delay-2{animation-delay:1.6s}@keyframes pulse-ring{0%{transform:scale(.5);opacity:.6}to{transform:scale(1.5);opacity:0}}.loader-shape{position:absolute;inset:20px;display:flex;align-items:center;justify-content:center;color:var(--accent);animation:spin-shape 4s linear infinite,breathe 2s ease-in-out infinite}.loader-shape svg{width:100%;height:100%}@keyframes spin-shape{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}@keyframes breathe{0%,to{opacity:.7}50%{opacity:1}}.loader-text{font-size:1.1rem;font-weight:600;color:var(--text);margin:0}.dots span{animation:dot-blink 1.4s infinite;opacity:0}.dots span:nth-child(1){animation-delay:0s}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot-blink{0%,20%{opacity:0}40%{opacity:1}to{opacity:0}}.loader-sub{font-size:.88rem;color:var(--text-muted);margin:0}.convert-progress-wrap{width:100%;max-width:320px;display:flex;flex-direction:column;gap:.5rem}.convert-progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.convert-progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .15s ease-out;min-width:2px}.convert-progress-info{display:flex;justify-content:space-between;align-items:center}.convert-progress-label{font-size:.88rem;font-weight:500;color:var(--text)}.convert-progress-pct{font-size:.82rem;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.product-page{flex:1 1 0;min-height:0;display:grid;grid-template-columns:1fr 380px;gap:2.5rem;animation:fade-up .4s ease-out}.product-viewer-col{display:flex;flex-direction:column;gap:.5rem;min-height:0}.product-details-col{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem;align-self:end;padding-bottom:50px}.product-name{font-size:1.5rem;font-weight:700;color:var(--text);margin:0;text-transform:capitalize;line-height:1.3}.product-price{font-size:1.75rem;font-weight:700;color:var(--text);display:flex;align-items:baseline;gap:.5rem}.product-price-note{font-size:.85rem;font-weight:400;color:var(--text-muted)}.product-features{display:flex;flex-direction:column;gap:.4rem;padding:.25rem 0}.product-feature{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--text-muted)}.product-feature svg{color:#15803d;flex-shrink:0}.product-divider{border:none;border-top:1px solid var(--border);margin:.25rem 0}.previewPicker{display:flex;align-items:center;gap:.5rem}.previewPicker label{font-size:.85rem;color:var(--text-muted);font-weight:500}.cutter-dropdown-wrap{position:relative;flex-shrink:0}.cutter-dropdown-trigger{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.8rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;cursor:pointer;white-space:nowrap;max-width:220px;transition:background .15s,border-color .15s}.cutter-dropdown-trigger:hover{border-color:var(--accent)}.cutter-dropdown-trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cutter-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;max-width:280px;max-height:280px;overflow-y:auto;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #00000026;padding:4px;z-index:100;animation:cutter-dropdown-in .15s ease-out}@keyframes cutter-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cutter-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.45rem .65rem;font-size:.8rem;background:transparent;color:var(--text);border:none;border-radius:7px;cursor:pointer;text-align:left;transition:background .12s}.cutter-dropdown-item:hover{background:var(--preview-bg)}.cutter-dropdown-item.active{background:#6366f114;font-weight:600}.cutter-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-viewer{flex:1 1 0;min-height:350px;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--panel-bg);box-shadow:0 2px 16px #0000000f}.preview-viewer .stlViewer{position:absolute;inset:0}.preview-viewer .stlViewer canvas{width:100%!important;height:100%!important;display:block}.product-cart-controls,.product-cart-done{display:flex;flex-direction:column;gap:.75rem}.preview-qty-row{display:flex;align-items:center;gap:.5rem}.preview-qty-label{font-size:.85rem;color:var(--text-muted);font-weight:500}.preview-qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--panel-bg)}.preview-qty-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .15s}.preview-qty-btn:hover:not(:disabled){background:var(--preview-bg)}.preview-qty-btn:disabled{opacity:.3;cursor:default}.preview-qty-value{min-width:32px;text-align:center;font-size:.95rem;font-weight:600;color:var(--text);-webkit-user-select:none;user-select:none}.preview-add-cart-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 2rem;font-size:1.05rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:12px;cursor:pointer;transition:background .15s,transform .1s;min-height:52px;width:100%}.preview-add-cart-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.preview-add-cart-btn:active:not(:disabled){transform:translateY(0)}.preview-add-cart-btn:disabled{opacity:.7;cursor:default}.preview-saving-hint{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--text-muted);padding:.5rem 0}.preview-cart-added{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:#15803d}.preview-view-cart-btn{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:12px;text-decoration:none;cursor:pointer;transition:background .15s,transform .1s;min-height:48px;width:100%}.preview-view-cart-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.product-shipping-info{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;font-size:.88rem;color:var(--text)}.product-shipping-info svg{flex-shrink:0;color:var(--text-muted);margin-top:1px}.product-shipping-info div{display:flex;flex-direction:column;gap:.15rem}.product-shipping-info strong{font-weight:600}.product-shipping-price{font-size:.82rem;color:var(--text-muted)}.product-secondary-actions{display:flex;flex-direction:column;gap:.25rem}.product-link-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .25rem;font-size:.88rem;font-weight:500;color:var(--text-muted);background:none;border:none;cursor:pointer;transition:color .15s;text-align:left}.product-link-btn:hover{color:var(--accent)}.product-link-btn svg{flex-shrink:0}@media(max-width:840px){.product-page{grid-template-columns:1fr;gap:1.5rem}.preview-viewer{min-height:280px;max-height:50vh}.product-name{font-size:1.25rem}.product-price{font-size:1.4rem}.product-details-col{padding-bottom:1rem}}@media(max-width:600px){.convert-page{padding:1rem .75rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.convert-header h1{font-size:1.2rem}.uploadZone{min-height:200px;padding:2rem 1rem}.upload-prompt{font-size:.95rem}.preview-viewer{min-height:240px;max-height:45vh}.product-name{font-size:1.15rem}.product-price{font-size:1.3rem}.btnPrimary,.btnSecondary{padding:.6rem 1rem;font-size:.9rem;min-height:44px;flex:1;text-align:center;justify-content:center}.product-cart-controls{gap:.75rem}.product-secondary-actions{gap:.15rem}.convert-progress-wrap{max-width:100%}}@media(pointer:coarse){.btnPrimary,.btnSecondary{min-height:48px}.preview-qty-btn{width:44px;height:44px;font-size:1.2rem}.preview-add-cart-btn{min-height:54px;font-size:1.1rem}.preview-view-cart-btn{min-height:52px}.product-link-btn{min-height:44px;padding:.6rem .25rem}.uploadZone{min-height:220px}}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--bg)}.app-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:app-spin .6s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}.app-layout{display:flex;flex-direction:column;min-height:100dvh}.app-main{flex:1;display:flex;flex-direction:column;min-height:0}.site-footer{text-align:center;padding:1.25rem 1rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom));font-size:.82rem;color:var(--text-muted);border-top:1px solid var(--border)}.site-footer a{color:var(--accent);text-decoration:none;font-weight:500}.site-footer a:hover{text-decoration:underline}.draw-page{flex:1;display:flex;flex-direction:column;background:var(--page-bg);overflow:hidden;min-height:0;--canvas-bg: #f5f3f0;--canvas-margin: #e8e5e1;--grid-line: #ccc8c2;--cut-fill: #d93827;--cut-stroke: #d93827}.draw-body-outer{flex:1;display:flex;min-height:0;align-items:stretch}[data-theme=dark] .draw-page{--canvas-bg: #232120;--canvas-margin: #1b1a19;--grid-line: #3a3735;--cut-fill: #e05544;--cut-stroke: #e05544}.draw-tools-panel{width:160px;min-width:160px;background:var(--panel-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:.75rem;gap:.25rem;overflow-y:auto;flex-shrink:0;align-self:stretch}.tools-section{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.5rem}.tools-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.25rem;padding-left:.25rem}.tool-btn{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .12s}.tool-btn:hover{background:var(--preview-bg);border-color:var(--border)}.tool-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tool-btn span{white-space:nowrap}.tools-sep{height:1px;background:var(--border);margin:.35rem 0}.tool-btn-wrap{display:flex;align-items:center}.tool-btn-wrap .tool-btn{flex:1}.tool-popout-chevron-wrap{display:flex;align-items:center;padding:0 .2rem;cursor:default}.tool-popout-chevron{color:var(--text-muted);opacity:.55;transition:opacity .12s}.tool-btn-wrap:hover .tool-popout-chevron{opacity:1}.tool-popout-portal{position:fixed;transform:translateY(-50%);background:var(--panel-bg, #fff);border:1px solid var(--border, #ddd);border-radius:10px;box-shadow:0 4px 20px #00000026;padding:.6rem .75rem;min-width:180px;z-index:99999;white-space:nowrap;animation:popout-fade .1s ease}@keyframes popout-fade{0%{opacity:0;transform:translateY(-50%) translate(-4px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.tool-popout-row{display:flex;flex-direction:column;gap:.35rem}.tool-popout-label{font-size:.72rem;font-weight:600;color:var(--text-muted)}.tool-popout-controls{display:flex;align-items:center;gap:.4rem}.draw-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;align-self:stretch;position:relative}.draw-main.is-loading{-webkit-user-select:none;user-select:none}.draw-loading-overlay{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;background:color-mix(in srgb,var(--page-bg) 88%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text);font-size:.92rem;font-weight:500}.draw-loading-spinner{width:32px;height:32px;border-radius:999px;border:3px solid color-mix(in srgb,var(--text-muted) 35%,transparent);border-top-color:var(--accent);animation:draw-loading-spin .9s linear infinite}@keyframes draw-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.draw-toolbar{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;background:var(--panel-bg);border-bottom:1px solid var(--border);flex-shrink:0}.cutter-error{font-size:.8rem;color:#e05252;background:#e052521a;border:1px solid rgba(224,82,82,.3);border-radius:8px;padding:.35rem .7rem;animation:cutter-error-in .2s ease-out}@keyframes cutter-error-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tg{display:flex;align-items:center;gap:.3rem}.tspacer{flex:1}.tb{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .75rem;font-size:.82rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.tb:hover:not(:disabled){background:var(--preview-bg)}.tb.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.tb.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.draw-info-btn{height:32px;min-width:52px;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:0 .45rem;border-radius:999px;border:1px solid var(--border);background:var(--panel-bg);color:var(--text-muted);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}.draw-info-btn:hover{background:var(--preview-bg);color:var(--text);box-shadow:0 3px 10px #0000001f}.draw-info-btn-label{line-height:1}.draw-info-btn-chevron{line-height:1;font-size:.8rem;transform:translateY(0);transition:transform .2s ease}.draw-info-btn-chevron.open{transform:rotate(180deg)}.draw-body{flex:1;display:flex;overflow:hidden;min-height:0}.draw-canvas-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;min-width:0;position:relative}.draw-actions{display:flex;align-items:center;gap:.25rem}.draw-design-meta{display:inline-flex;align-items:center;gap:.45rem;min-width:0;flex-shrink:0}.design-name-input{width:clamp(150px,24vw,260px);max-width:260px;background:transparent;border:none;border-bottom:1px solid transparent;color:var(--text);font-size:.88rem;font-weight:600;line-height:1.2;padding:.2rem .1rem;outline:none;transition:border-color .15s,background .15s}.design-name-input::placeholder{color:var(--text-muted);opacity:.85}.design-name-input:hover,.design-name-input:focus{border-bottom-color:var(--border)}.save-indicator{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:.7}.save-indicator .save-spinner{animation:save-spin .8s linear infinite}.toolbar-sep{width:1px;height:22px;background:var(--border);flex-shrink:0;margin:0 .15rem;opacity:.6}@keyframes save-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.design-dropdown-wrap{position:relative;flex-shrink:0}.design-dropdown-trigger{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.85rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;cursor:pointer;width:220px;box-sizing:border-box;white-space:nowrap;max-width:180px;transition:background .15s,border-color .15s}.design-dropdown-trigger:hover{border-color:var(--accent)}.design-dropdown-trigger-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.design-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;max-width:280px;max-height:280px;overflow-y:auto;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #00000026;padding:4px;z-index:100;animation:design-dropdown-in .15s ease-out}@keyframes design-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.design-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.45rem .65rem;font-size:.8rem;background:transparent;color:var(--text);border:none;border-radius:7px;cursor:pointer;text-align:left;transition:background .12s}.design-dropdown-item:hover{background:var(--preview-bg)}.design-dropdown-item.active{background:#6366f114;font-weight:600}.design-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,transform .1s}.draw-action-btn svg{width:18px;height:18px}.draw-action-btn:hover:not(:disabled){background:var(--preview-bg);color:var(--text)}.draw-action-btn:active:not(:disabled){transform:scale(.92)}.draw-action-btn:disabled{opacity:.25;cursor:default}.draw-actions-sep{width:1px;align-self:stretch;margin:4px .2rem;background:var(--border);flex-shrink:0}.draw-legend{position:absolute;bottom:1.5rem;right:1.5rem;display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-muted);pointer-events:none}.draw-legend-box{width:var(--legend-box-size, 20px);height:var(--legend-box-size, 20px);border:1.5px solid var(--grid-line);border-radius:2px;background:#00000008}[data-theme=dark] .draw-legend-box{background:#ffffff0d}.draw-legend-text{font-weight:500}.draw-canvas{width:100%;max-width:min(700px,calc(100dvh - 180px));aspect-ratio:1;border-radius:12px;border:1px solid var(--border);box-shadow:0 2px 16px #0000000f;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-touch-callout:none}.draw-canvas .cp{transition:r .1s}.draw-canvas .cp:hover{r:7}.draw-canvas .shape-handle{fill:#fff;stroke:var(--accent);stroke-width:1.8;cursor:grab}.draw-canvas .shape-handle:hover{r:8}.draw-canvas .shape-handle-edge{stroke:color-mix(in srgb,var(--accent) 70%,#fff 30%);fill:color-mix(in srgb,#fff 88%,var(--accent) 12%);cursor:nwse-resize}.draw-canvas .shape-handle-rotate{cursor:alias}.draw-canvas .shape-handle-rotate-line{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.75}.draw-canvas .group-bbox{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:5 4;opacity:.8;pointer-events:none}.draw-canvas .group-handle{fill:#fff;stroke:var(--accent);stroke-width:1.8}.draw-canvas .group-handle-corner{cursor:nwse-resize}.draw-canvas .group-handle-edge{fill:color-mix(in srgb,#fff 86%,var(--accent) 14%);stroke:color-mix(in srgb,var(--accent) 72%,#fff 28%)}.draw-canvas .group-handle-n,.draw-canvas .group-handle-s{cursor:ns-resize}.draw-canvas .group-handle-e,.draw-canvas .group-handle-w{cursor:ew-resize}.draw-canvas .group-handle-ne,.draw-canvas .group-handle-sw{cursor:nesw-resize}.draw-canvas .group-handle-nw,.draw-canvas .group-handle-se{cursor:nwse-resize}.draw-canvas .snap-dot{fill:var(--accent);opacity:.25;pointer-events:none;transition:opacity .1s ease}.draw-canvas .snap-dot-active{opacity:.85;fill:var(--accent)}.draw-canvas .vertex-handle{cursor:grab;opacity:.8;transition:opacity .15s ease}.draw-canvas .vertex-handle:hover{opacity:1}.draw-sidebar{width:240px;min-width:240px;padding:1.25rem;border-left:1px solid var(--border);background:var(--panel-bg);overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;align-self:stretch;min-height:0}.shape-list-sidebar{gap:.5rem}.shape-list-title{margin:0 0 .25rem;font-size:.85rem;font-weight:700;color:var(--text)}.shape-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.shape-list-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border-radius:8px;cursor:pointer;transition:background .12s,opacity .15s;-webkit-user-select:none;user-select:none}.shape-list-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.shape-list-item.deselected{opacity:.4}.shape-swatch{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(0,0,0,.1)}[data-theme=dark] .shape-swatch{border-color:#ffffff26}.shape-list-label{flex:1;font-size:.8rem;font-weight:500;color:var(--text)}.shape-list-eye{flex-shrink:0;color:var(--text-muted, var(--text));opacity:.5;transition:opacity .12s}.shape-list-item:hover .shape-list-eye{opacity:.85}.shape-list-item.deselected .shape-list-eye{opacity:.3}.shape-hover-highlight{transition:opacity .1s ease}.tool-option-range{width:90px;accent-color:var(--accent)}.tool-option-input{width:48px;border:1px solid var(--border);border-radius:8px;background:var(--page-bg);color:var(--text);padding:.28rem .4rem;font-size:.82rem;font-weight:600}.tool-option-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}.draw-footer{flex-shrink:0;text-align:center;padding:.75rem 1rem;font-size:.82rem;color:var(--text-muted);border-top:1px solid var(--border);background:var(--panel-bg)}.draw-footer a{color:var(--accent);text-decoration:none;font-weight:500}.draw-footer a:hover{text-decoration:underline}.draw-info-wrap{position:absolute;bottom:1.5rem;left:1.5rem;z-index:10}.draw-info-popover{position:absolute;bottom:calc(100% + 6px);left:0;width:min(320px,calc(100vw - 2rem));max-height:min(70vh,420px);overflow:auto;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000002e;padding:.85rem 1rem 1rem;z-index:1000;transform-origin:bottom left;animation:draw-info-pop-in .18s ease-out}.draw-info-popover:before{content:"";position:absolute;bottom:-6px;left:18px;width:10px;height:10px;background:var(--panel-bg);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}@keyframes draw-info-pop-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.draw-info-popover h3{margin:0 0 .5rem;font-size:.8rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.06em}.draw-info-popover h4{margin:.75rem 0 .4rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.draw-info-popover .how-to{margin:0;padding:0 0 0 1.1rem;font-size:.78rem;line-height:1.65}.sb{margin-bottom:1rem;flex-shrink:0}.sb-history{flex:1;min-height:0;margin-bottom:0;display:flex;flex-direction:column}.sb-history .history-list{flex:1;min-height:0}.sb h3{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .6rem}.sb-empty{font-size:.82rem;color:var(--text-muted);margin:0}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem;overflow-y:auto}.history-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;font-size:.82rem;color:var(--text);transition:background .1s;border:1px solid transparent}.history-item:hover{background:var(--preview-bg)}.history-item.current{background:var(--preview-bg);border-color:var(--accent)}.history-item.future{opacity:.6}.history-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:.7}.history-item.current .history-icon{opacity:1}.history-label{flex:1;font-weight:500}.info-grid{display:grid;grid-template-columns:auto 1fr;gap:.3rem .75rem;font-size:.85rem}.info-grid span:nth-child(odd){color:var(--text-muted)}.info-grid span:nth-child(2n){font-weight:500;color:var(--text)}.info-grid kbd{background:var(--preview-bg);border:1px solid var(--border);border-radius:4px;padding:.05em .4em;font-size:.8em;font-family:inherit;color:var(--text-muted)}.how-to{margin:0;padding:0 0 0 1.2rem;font-size:.8rem;color:var(--text-muted);line-height:1.8}.how-to strong{color:var(--text)}.info-tour-btn{display:block;width:100%;margin-top:.75rem;padding:.4rem 0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--accent);font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.info-tour-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.ctx-backdrop{position:fixed;inset:0;z-index:999}.ctx-menu{position:fixed;z-index:1000;min-width:170px;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000001f,0 2px 8px #00000014;padding:.3rem;display:flex;flex-direction:column;animation:ctx-pop .1s ease-out}@keyframes ctx-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ctx-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:none;border:none;border-radius:7px;color:var(--text);font-size:.82rem;font-weight:500;cursor:pointer;text-align:left;transition:background .1s}.ctx-item:hover{background:var(--preview-bg)}.ctx-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;opacity:.7}.ctx-shortcut{margin-left:auto;font-size:.7rem;color:var(--text-muted);background:var(--preview-bg);border:1px solid var(--border);border-radius:4px;padding:.1em .35em;font-family:inherit}.ctx-sep{height:1px;background:var(--border);margin:.2rem .4rem}.tour-overlay{position:fixed;inset:0;z-index:100000}.tour-backdrop{position:fixed;inset:0;background:#0000008c;transition:clip-path .3s ease}.tour-spotlight-ring{position:fixed;border-radius:10px;box-shadow:0 0 0 3px var(--accent),0 0 0 6px #6366f133;pointer-events:none;transition:top .3s ease,left .3s ease,width .3s ease,height .3s ease}.tour-tooltip{position:fixed;width:320px;max-width:calc(100vw - 24px);background:var(--panel-bg, #fff);border:1px solid var(--border, #e0e0e0);border-radius:14px;box-shadow:0 12px 40px #0000002e,0 2px 8px #00000014;padding:1.1rem 1.25rem 1rem;z-index:100001;transition:top .3s ease,left .3s ease;animation:tour-tooltip-in .25s ease-out}@keyframes tour-tooltip-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tour-step-badge{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.35rem}.tour-title{margin:0 0 .4rem;font-size:1rem;font-weight:700;color:var(--text)}.tour-body{margin:0 0 1rem;font-size:.85rem;line-height:1.55;color:var(--text-muted)}.tour-footer{display:flex;align-items:center;justify-content:space-between}.tour-skip{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:.3rem 0;opacity:.7;transition:opacity .15s}.tour-skip:hover{opacity:1}.tour-nav{display:flex;gap:.4rem}.tour-btn{padding:.4rem .9rem;font-size:.82rem;font-weight:600;border-radius:8px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tour-btn--back{background:transparent;border:1px solid var(--border);color:var(--text)}.tour-btn--back:hover{background:var(--preview-bg)}.tour-btn--next{background:var(--accent);border:1px solid var(--accent);color:#fff}.tour-btn--next:hover{background:var(--accent-hover);border-color:var(--accent-hover)}@media(max-width:900px){.draw-tools-panel{width:56px;min-width:56px;padding:.5rem .35rem;align-items:center}.tools-label,.tool-btn span{display:none}.tool-btn{justify-content:center;padding:.5rem}}@media(max-width:768px){.draw-body-outer{flex-direction:column}.draw-tools-panel{width:100%;min-width:0;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--border);padding:.5rem;gap:.25rem}.draw-body{flex-direction:column}.draw-sidebar{width:100%;min-width:0;border-left:none;border-top:1px solid var(--border);max-height:200px}.draw-canvas-area{padding:1rem}}@media(max-width:640px){.draw-page{height:100dvh;max-height:100dvh}.draw-body-outer{flex-direction:column}.draw-tools-panel{width:100%;min-width:0;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;border-right:none;border-bottom:1px solid var(--border);padding:.4rem;padding-left:max(.4rem,env(safe-area-inset-left));padding-right:max(.4rem,env(safe-area-inset-right));gap:.25rem;align-items:center}.draw-tools-panel::-webkit-scrollbar{display:none}.tools-section{margin-bottom:0;flex-direction:row;align-items:center;gap:.25rem;flex-shrink:0}.tools-label,.tool-btn span{display:none}.tool-btn{justify-content:center;min-width:44px;min-height:44px;padding:.5rem;flex-shrink:0;scroll-snap-align:start}.draw-toolbar{padding:.35rem .5rem;padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right));gap:.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.draw-toolbar::-webkit-scrollbar{display:none}.tb{padding:.38rem .6rem;font-size:.76rem;flex-shrink:0;white-space:nowrap}.draw-body{flex-direction:column;flex:1;min-height:0}.draw-sidebar{display:none}.draw-canvas-area{flex:1;min-height:0;padding:.35rem;justify-content:center;align-items:center;overflow:hidden}.draw-canvas{max-width:calc(100vw - .7rem);max-height:calc(100dvh - 170px);width:auto;height:auto}.draw-info-wrap{left:max(.5rem,env(safe-area-inset-left));bottom:max(.5rem,env(safe-area-inset-bottom))}.draw-legend{right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));font-size:.65rem;gap:.3rem}.draw-legend-box{--legend-box-size: 12px}.draw-info-popover{left:0;right:0;width:auto;max-width:calc(100vw - 1rem);bottom:calc(100% + 4px)}.cutter-error{font-size:.72rem;padding:.25rem .5rem}.tg{gap:.2rem}.draw-actions{gap:.15rem}.draw-design-meta{gap:.25rem}.design-name-input{width:150px;font-size:.8rem}.version-select{font-size:.72rem;padding:.25rem 1.4rem .25rem .5rem}.design-dropdown-trigger{font-size:.72rem;width:120px}.toolbar-sep{height:18px}}@media(max-width:380px){.draw-canvas{max-height:calc(100dvh - 155px);border-radius:8px}.draw-tools-panel{padding:.3rem}.tool-btn{min-width:40px;min-height:40px}.draw-toolbar{padding:.3rem .4rem}.design-name-input{width:128px;font-size:.76rem}.tb{padding:.32rem .5rem;font-size:.72rem}}@media(pointer:coarse){.tool-btn,.tb,.draw-action-btn,.ctx-item,.history-item{min-height:44px}.tool-btn{padding:.6rem .8rem}.tb{padding:.5rem .75rem}.draw-action-btn{width:44px;height:44px}.ctx-icon{width:22px;height:22px}.draw-canvas .cp{r:8}.ctx-shortcut{display:none}.ctx-item{padding:.6rem .75rem;font-size:.88rem}.tb.primary{min-height:48px;padding:.5rem 1rem;font-size:.88rem}.info-tour-btn{min-height:44px}}.prerender-ring{flex-shrink:0;margin-right:4px;vertical-align:middle}.confirm-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;animation:confirm-fade-in .15s ease-out}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;padding:1.5rem;max-width:380px;width:100%;box-shadow:0 12px 40px #00000040;animation:confirm-scale-in .15s ease-out}@keyframes confirm-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-title{font-size:1.05rem;font-weight:700;margin:0 0 .5rem;color:var(--text)}.confirm-message{font-size:.9rem;color:var(--text-muted);margin:0 0 1.25rem;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-btn{padding:.5rem 1rem;font-size:.88rem;font-weight:600;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:background .15s,border-color .15s}.confirm-btn.cancel{background:transparent;color:var(--text-muted)}.confirm-btn.cancel:hover{background:var(--preview-bg);color:var(--text)}.confirm-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.confirm-btn.primary:hover{background:var(--accent-hover)}.confirm-btn.danger{background:#d93827;color:#fff;border-color:#d93827}.confirm-btn.danger:hover{background:#b92d1e}@media(max-width:768px){.confirm-overlay{align-items:flex-end;padding:0}.confirm-dialog{max-width:none;border-radius:16px 16px 0 0;padding:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));animation:confirm-slide-up .2s ease-out}@keyframes confirm-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.confirm-actions{flex-direction:column-reverse;gap:.4rem}.confirm-btn{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:.95rem}}.files-page{flex:1;padding:2rem;max-width:960px;margin:0 auto;width:100%}.files-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.files-header h1{font-size:1.5rem;font-weight:700;color:var(--text);margin:0}.files-subtitle{color:var(--text-muted);font-size:.9rem;margin:.25rem 0 0}.files-upload-btn{padding:.55rem 1.1rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;font-size:.88rem;white-space:nowrap;transition:background .15s}.files-upload-btn:hover{background:var(--accent-hover)}.files-filters{display:flex;gap:.35rem;margin-bottom:1.5rem}.filter-btn{padding:.4rem .85rem;font-size:.82rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;transition:all .15s}.filter-btn:hover{background:var(--preview-bg);color:var(--text)}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.files-status{text-align:center;padding:2rem;color:var(--text-muted);font-size:.95rem}.files-status.error{color:#b91c1c}.files-status.success{color:#16a34a;background:#f0fdf4;border-radius:10px;padding:.75rem 1.25rem;margin-bottom:.5rem;animation:flash-fade 4s ease-in-out forwards}@keyframes flash-fade{0%,70%{opacity:1}to{opacity:0}}.files-empty{text-align:center;padding:2rem;color:var(--text-muted)}.files-empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-icon{margin-bottom:1rem;opacity:.35}.files-empty-state h2{font-size:1.15rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.files-empty-state p{font-size:.9rem;margin:0}.files-empty-state a{color:var(--accent);text-decoration:none}.files-empty-state a:hover{text-decoration:underline}.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.files-controls{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.files-select-all-btn{padding:.45rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font-size:.82rem}.files-select-all-btn:hover{background:var(--preview-bg)}.files-selected-count{color:var(--text-muted);font-size:.82rem}.files-delete-selected-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;border:1px solid #d44;border-radius:8px;background:#d44;color:#fff;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;margin-left:auto}.files-delete-selected-btn:hover:not(:disabled){background:#c33;border-color:#c33}.files-delete-selected-btn:disabled{opacity:.6;cursor:not-allowed}.btn-spinner--light{border-color:#ffffff4d;border-top-color:#fff}.file-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.file-select{display:flex;align-items:center;gap:.35rem;padding:.5rem .75rem .4rem;font-size:.78rem;color:var(--text-muted)}.file-select input{margin:0}.file-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #0000000f}.file-preview{position:relative;height:120px;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden;text-decoration:none;color:inherit}.file-preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;opacity:0;transition:opacity .15s}.file-preview-overlay span{color:#fff;font-size:.82rem;font-weight:600;background:var(--accent);padding:.3rem .75rem;border-radius:6px}.file-preview:hover .file-preview-overlay{opacity:1}.svg-thumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:12px}.svg-thumb svg{max-width:100%;max-height:100%;width:auto;height:auto}.svg-thumb svg path{fill:none!important;stroke:#1a1a1a!important;stroke-width:2!important}.file-type-badge{font-size:.8rem;font-weight:600;letter-spacing:.06em;color:var(--text-muted);background:var(--border);padding:.3rem .7rem;border-radius:6px}.file-info{padding:.75rem;display:flex;flex-direction:column;gap:.2rem}.file-name{font-size:.85rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-price{font-size:.9rem;font-weight:600;color:var(--accent)}.file-meta{font-size:.75rem;color:var(--text-muted)}.file-actions{display:flex;gap:.25rem;padding:0 .75rem .75rem}.file-action-btn{display:flex;align-items:center;justify-content:center;gap:.35rem;height:32px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);padding:0 .5rem;font-size:.78rem;font-weight:500;transition:all .15s}.file-action-btn.cart-btn{flex:1;background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none;text-align:center}.file-action-btn.cart-btn:hover{background:var(--accent-hover)}.file-action-btn.cart-btn.in-cart{background:#15803d;border-color:#15803d}.file-action-btn.cart-btn.in-cart:hover{background:#166534}.file-action-btn.edit-btn,.file-action-btn.download-btn-small{width:32px;padding:0}.file-action-btn.edit-btn:hover,.file-action-btn.download-btn-small:hover,.file-action-btn:hover{background:var(--preview-bg);color:var(--text);border-color:var(--text-muted)}.file-action-btn.delete{width:32px;padding:0}.file-action-btn.delete:hover{background:#d9382712;color:#d93827;border-color:#d9382740}.files-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.2rem}.files-page-btn{padding:.45rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font-size:.82rem}.files-page-btn:hover:not(:disabled){background:var(--preview-bg)}.files-page-indicator{color:var(--text-muted);font-size:.82rem}.files-page-size{margin-left:.5rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);color:var(--text);font-size:.82rem;cursor:pointer}.files-page-size:focus{outline:none;border-color:var(--accent)}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .5s linear infinite;vertical-align:middle}.btn-spinner--dark{border-color:#ffffff4d;border-top-color:#fff}.skeleton-card{pointer-events:none}.skeleton-preview{width:100%;aspect-ratio:1;border-radius:10px;background:var(--border)}.skeleton-info{display:flex;flex-direction:column;gap:.45rem;padding:.5rem 0 0}.skeleton-line{height:12px;border-radius:6px;background:var(--border)}.skeleton-line.short{height:10px}@media(max-width:600px){.files-page{padding:1rem .75rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.files-grid{grid-template-columns:1fr 1fr;gap:.65rem}.files-header{flex-direction:column}.files-header h1{font-size:1.25rem}.files-controls{flex-wrap:wrap}.files-filters{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:.15rem}.files-filters::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0;min-height:38px}.file-card{border-radius:10px}.file-preview{height:100px}.file-info{padding:.5rem}.file-name{font-size:.78rem}.file-actions{padding:0 .5rem .5rem;gap:.2rem}.file-action-btn{height:36px;font-size:.72rem}.file-action-btn.edit-btn,.file-action-btn.download-btn-small,.file-action-btn.delete{width:36px}}@media(pointer:coarse){.file-action-btn{min-height:40px}.file-action-btn.edit-btn,.file-action-btn.download-btn-small,.file-action-btn.delete{width:40px;min-height:40px}.files-page-btn{min-height:44px;padding:.5rem 1rem}.files-select-all-btn,.files-delete-selected-btn{min-height:44px}}.cart-page{flex:1;max-width:960px;width:100%;margin:0 auto;padding:2rem}.cart-page h1{font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}.cart-loading{color:var(--text-muted);text-align:center;padding:3rem}.cart-empty{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.cart-empty-icon{margin-bottom:1rem;opacity:.35}.cart-empty h2{font-size:1.15rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.cart-empty p{font-size:.9rem;margin:0}.cart-empty a{color:var(--accent);text-decoration:none}.cart-empty a:hover{text-decoration:underline}.cart-layout{display:grid;grid-template-columns:1fr 320px;gap:2rem;align-items:start}.cart-left{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.cart-items{display:flex;flex-direction:column;gap:.75rem}.cart-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px}.cart-item-thumb{width:56px;height:56px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.cart-svg-preview{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:6px}.cart-svg-preview svg{max-width:100%;max-height:100%;width:auto;height:auto}.cart-svg-preview svg path{fill:none!important;stroke:#1a1a1a!important;stroke-width:2!important}.cart-thumb-fallback{font-size:1.5rem}.cart-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.cart-item-name{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-desc{font-size:.8rem;color:var(--text-muted)}.cart-item-qty{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cart-item-qty button{width:28px;height:28px;border-radius:6px;background:var(--preview-bg);border:1px solid var(--border);color:var(--text);font-size:1rem;display:flex;align-items:center;justify-content:center;padding:0}.cart-item-qty button:hover{background:var(--border)}.cart-item-qty span{min-width:24px;text-align:center;font-weight:600;font-size:.9rem}.cart-item-price{font-weight:600;font-size:.95rem;white-space:nowrap;min-width:60px;text-align:right}.cart-item-remove{width:28px;height:28px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-muted);font-size:1.2rem;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.cart-item-remove:hover{color:#d93827;background:#d9382712;border-color:#d9382730}.cart-summary{padding:1.5rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;position:sticky;top:5rem}.cart-summary h2{font-size:1.05rem;font-weight:700;margin:0 0 1rem}.cart-summary-row{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.cart-free{color:#15803d;font-weight:500}.cart-summary-total{display:flex;justify-content:space-between;font-size:1.1rem;font-weight:700;border-top:1px solid var(--border);padding-top:.75rem;margin-top:.75rem;margin-bottom:1.25rem}.cart-checkout-btn{width:100%;padding:.8rem;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:background .15s}.cart-checkout-btn:hover{background:var(--accent-hover)}.cart-pay-methods{text-align:center;font-size:.75rem;color:var(--text-muted);margin:.75rem 0 0}.cart-address{padding:1.5rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px}.cart-address h2{font-size:1.05rem;font-weight:700;margin:0 0 1rem}.cart-addr-fields{display:flex;flex-direction:column;gap:.75rem}.cart-addr-field{display:flex;flex-direction:column;gap:.25rem}.cart-addr-field label{font-size:.82rem;font-weight:500;color:var(--text-muted)}.cart-addr-opt{font-weight:400;opacity:.7}.cart-addr-field input{padding:.55rem .7rem;font-size:.9rem;border:1px solid var(--border);border-radius:8px;background:var(--preview-bg);color:var(--text);outline:none;transition:border-color .15s}.cart-addr-field input:focus{border-color:var(--accent)}.cart-addr-field input.cart-addr-error{border-color:#d93827}.cart-addr-err-msg{font-size:.75rem;color:#d93827}.cart-addr-row{display:flex;gap:.75rem}.cart-addr-field--city{flex:1}.cart-addr-field--postcode{flex:0 0 8rem}.cart-item--busy{opacity:.6;pointer-events:none}.btn-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .5s linear infinite;vertical-align:middle}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.cart-layout{grid-template-columns:1fr}.cart-item{flex-wrap:wrap}.cart-summary{position:static}.cart-addr-row{flex-direction:column}.cart-addr-field--postcode{flex:unset}}@media(max-width:640px){.cart-page{padding:1.25rem 1rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom))}.cart-page h1{font-size:1.25rem}.cart-item{padding:.75rem;gap:.65rem}.cart-item-thumb{width:44px;height:44px}.cart-item-name{font-size:.88rem}.cart-item-qty button{width:36px;height:36px;border-radius:8px}.cart-checkout-btn{padding:.85rem;font-size:1.05rem;min-height:50px}}@media(pointer:coarse){.cart-item-qty button{width:40px;height:40px;font-size:1.1rem}.cart-item-remove{width:40px;height:40px}.cart-checkout-btn{min-height:52px;font-size:1.05rem}.cart-addr-field input{padding:.65rem .8rem;min-height:44px}}.preview-page{flex:1;display:flex;flex-direction:column;max-width:960px;width:100%;margin:0 auto;padding:2rem}.preview-loading,.preview-error{text-align:center;color:var(--text-muted);padding:3rem}.preview-back{display:block;text-align:center;color:var(--accent);text-decoration:none;margin-top:1rem}.preview-back:hover{text-decoration:underline}.preview-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.preview-back-link{color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap}.preview-back-link:hover{color:var(--accent)}.preview-header h1{font-size:1.25rem;font-weight:700;margin:0}.preview-edit-link{margin-left:auto;background:none;border:none;color:var(--accent);font-size:.9rem;font-weight:500;cursor:pointer;padding:.25rem .5rem;border-radius:6px;white-space:nowrap}.preview-edit-link:hover:not(:disabled){text-decoration:underline}.preview-edit-link:disabled{opacity:.5;cursor:default}.preview-viewport{flex:1 1 0;min-height:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:0 2px 16px #0000000f}.preview-viewport .stlViewer{position:absolute;inset:0}.preview-viewport .stlViewer canvas{width:100%!important;height:100%!important;display:block}@media(max-width:640px){.preview-page{padding:1rem .75rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.preview-header h1{font-size:1.1rem}.preview-viewport{border-radius:12px;min-height:50dvh}}.confirmation-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.confirmation-loading{color:var(--text-muted);font-size:1rem}.confirmation-card{text-align:center;max-width:480px;width:100%;padding:3rem 2rem;background:var(--panel-bg);border:1px solid var(--border);border-radius:16px}.confirmation-icon{width:64px;height:64px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.75rem;margin-bottom:1rem}.confirmation-icon.success{background:#15803d20;color:#15803d}.confirmation-icon.pending{background:#d9770620;color:#d97706}.confirmation-card h1{font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.confirmation-sub{font-size:.95rem;color:var(--text-muted);margin:0 0 1.5rem;line-height:1.5}.confirmation-details{background:var(--preview-bg);border-radius:10px;padding:1rem;margin-bottom:1.5rem;text-align:left}.confirmation-row{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:.75rem}.confirmation-total{font-weight:700;font-size:1.1rem}.confirmation-items{border-top:1px solid var(--border);padding-top:.75rem;display:flex;flex-direction:column;gap:.35rem}.confirmation-item{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-muted)}.confirmation-actions{display:flex;flex-direction:column;gap:.5rem}.confirmation-btn{display:block;padding:.75rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:10px;font-weight:600;font-size:.95rem;transition:background .15s}.confirmation-btn:hover{background:var(--accent-hover)}.confirmation-btn-secondary{display:block;padding:.6rem;color:var(--text-muted);text-decoration:none;font-size:.88rem}.confirmation-btn-secondary:hover{color:var(--text)}@media(max-width:640px){.confirmation-page{padding:1.5rem 1rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.confirmation-card{padding:2rem 1.25rem;border-radius:14px}.confirmation-card h1{font-size:1.25rem}.confirmation-btn{min-height:48px;display:flex;align-items:center;justify-content:center}}@media(pointer:coarse){.confirmation-btn{min-height:52px;font-size:1rem}.confirmation-btn-secondary{min-height:44px}}.orders-page{flex:1;padding:2rem;max-width:720px;margin:0 auto;width:100%}.orders-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem}.orders-header h1{font-size:1.5rem;font-weight:700;color:var(--text);margin:0}.orders-subtitle{color:var(--text-muted);font-size:.9rem;margin:.25rem 0 0}.orders-back-btn{padding:.55rem 1.1rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;font-size:.88rem;white-space:nowrap;transition:background .15s}.orders-back-btn:hover{background:var(--accent-hover)}.orders-error{text-align:center;padding:1.5rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;font-size:.9rem}.orders-empty{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.orders-empty-icon{margin-bottom:1rem;opacity:.3}.orders-empty h2{font-size:1.15rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.orders-empty p{font-size:.9rem;margin:0}.orders-empty a{color:var(--accent);text-decoration:none}.orders-empty a:hover{text-decoration:underline}.orders-list{display:flex;flex-direction:column;gap:1rem}.order-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;padding:1.25rem 1.5rem;transition:border-color .15s,box-shadow .15s}.order-card:hover{border-color:var(--accent);box-shadow:0 2px 16px #0000000f}.order-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.order-meta{display:flex;align-items:baseline;gap:.6rem}.order-date{font-size:.92rem;font-weight:600;color:var(--text)}.order-id{font-size:.78rem;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.03em}.order-status{display:inline-block;font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .7rem;border-radius:20px}.order-items{display:flex;flex-direction:column;gap:.5rem;padding:.85rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.order-item{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--text)}.order-item-icon{font-size:1.1rem;flex-shrink:0}.order-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-item-qty{color:var(--text-muted);font-size:.82rem;flex-shrink:0}.order-card-bottom{display:flex;justify-content:flex-end;padding-top:.85rem}.order-total{font-size:1.05rem;font-weight:700;color:var(--text)}.skeleton-order{pointer-events:none}.skeleton-pulse{animation:skeleton-pulse 1.2s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}@media(max-width:600px){.orders-page{padding:1rem .75rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.orders-header{flex-direction:column;margin-bottom:1.25rem}.orders-header h1{font-size:1.25rem}.order-card{padding:.85rem 1rem;border-radius:12px}.order-card-top{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.order-meta{flex-direction:column;gap:.15rem}.order-item{font-size:.85rem}}@media(pointer:coarse){.orders-back-btn{min-height:44px;display:inline-flex;align-items:center}}.admin-orders-page{flex:1;padding:2rem;max-width:1060px;margin:0 auto;width:100%}.admin-orders-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.admin-orders-header h1{font-size:1.5rem;font-weight:700;color:var(--text);margin:0}.admin-orders-subtitle{color:var(--text-muted);font-size:.9rem;margin:.25rem 0 0}.admin-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .8rem;border-radius:20px;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.admin-stat-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.25rem}.admin-stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.admin-stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.admin-filters{display:flex;gap:.35rem;margin-bottom:1.5rem;flex-wrap:wrap}.admin-filter-btn{padding:.4rem .85rem;font-size:.82rem;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.admin-filter-btn:hover{background:var(--preview-bg);color:var(--text)}.admin-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-orders-error{text-align:center;padding:1.5rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;font-size:.9rem}.admin-orders-empty{text-align:center;padding:3rem 2rem;color:var(--text-muted);font-size:.92rem}.admin-orders-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--panel-bg)}.admin-orders-table{width:100%;border-collapse:collapse;font-size:.88rem;table-layout:fixed}.admin-orders-table col.col-order{width:9%}.admin-orders-table col.col-customer,.admin-orders-table col.col-items{width:18%}.admin-orders-table col.col-total{width:9%}.admin-orders-table col.col-status{width:10%}.admin-orders-table col.col-date{width:16%}.admin-orders-table col.col-actions{width:20%}.admin-orders-table thead{background:var(--preview-bg)}.admin-orders-table th{text-align:left;padding:.75rem 1rem;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.admin-orders-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.admin-orders-table tbody tr:last-child td{border-bottom:none}.admin-orders-table tbody tr{transition:background .1s}.admin-orders-table tbody tr:hover{background:var(--preview-bg)}.admin-order-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;color:var(--text-muted);white-space:nowrap}.admin-order-customer .customer-name{display:block}.admin-order-customer .customer-email{display:block;margin-top:.1rem}.customer-name{font-weight:500;color:var(--text)}.customer-email{font-size:.78rem;color:var(--text-muted)}.admin-order-items{display:inline;line-height:1.8}.admin-order-items .admin-item-pill+.admin-item-pill{margin-left:.25rem}.admin-item-pill{display:inline-block;font-size:.78rem;padding:.2rem .55rem;background:var(--preview-bg);border-radius:6px;color:var(--text);white-space:nowrap}.admin-order-total{font-weight:600;white-space:nowrap}.admin-order-date{white-space:nowrap;color:var(--text-muted);font-size:.82rem}.order-status{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.25rem .6rem;border-radius:20px;white-space:nowrap}.order-status--confirmed{background:#dcfce7;color:#15803d}.order-status--pending{background:#fef3c7;color:#b45309}.order-status--processing{background:#fef3c7;color:#92400e}.order-status--shipped{background:#dbeafe;color:#1d4ed8}.order-status--delivered{background:#d1fae5;color:#065f46}.order-status--default{background:var(--preview-bg);color:var(--text-muted)}.admin-status-btn{padding:.3rem .7rem;font-size:.75rem;font-weight:600;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .15s}.admin-status-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.admin-status-btn:disabled{opacity:.5;cursor:not-allowed}.admin-actions-cell{display:flex;align-items:center;gap:.35rem}.admin-orders-footer{margin-top:1.5rem;text-align:center}.admin-back-link{color:var(--text-muted);text-decoration:none;font-size:.88rem;transition:color .15s}.admin-back-link:hover{color:var(--accent)}.skeleton-row{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:1.25rem;margin-bottom:.75rem;pointer-events:none}.skeleton-bar{height:14px;border-radius:7px;background:var(--border);margin-bottom:.85rem}.skeleton-bar.short{height:10px}.skeleton-pulse{animation:admin-pulse 1.2s ease-in-out infinite}@keyframes admin-pulse{0%,to{opacity:.4}50%{opacity:1}}.admin-orders-table td:last-child{padding:.85rem .5rem}.admin-download-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.admin-download-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.admin-download-btn:disabled{opacity:.6;cursor:not-allowed}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.15);border-top-color:var(--text-muted);border-radius:50%;animation:admin-spin .5s linear infinite}.btn-spinner--dark{border-color:#00000026;border-top-color:var(--text-muted)}@keyframes admin-spin{to{transform:rotate(360deg)}}@media(max-width:768px){.admin-orders-page{padding:1rem}.admin-stats{grid-template-columns:1fr}.admin-orders-header{flex-direction:column}.admin-orders-table{font-size:.82rem}.admin-orders-table th,.admin-orders-table td{padding:.6rem .7rem}}@media(max-width:640px){.admin-orders-page{padding:.75rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.admin-orders-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.75rem;padding:0 .75rem}.admin-orders-table{font-size:.75rem;min-width:600px}.admin-orders-table th,.admin-orders-table td{padding:.5rem}.admin-stats{grid-template-columns:repeat(3,1fr);gap:.5rem}.admin-stat-card{padding:.85rem}.admin-stat-value{font-size:1.2rem}.admin-stat-label{font-size:.72rem}}@media(pointer:coarse){.admin-filter-btn{min-height:40px;padding:.45rem .9rem}.admin-status-btn{min-height:36px;padding:.35rem .8rem}.admin-download-btn{width:40px;height:40px}}.email-preview-page{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.email-preview-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.email-preview-header h1{font-size:1.5rem;font-weight:700;color:var(--text);margin:0}.email-preview-subtitle{color:var(--text-muted);font-size:.9rem;margin:.25rem 0 0}.email-preview-layout{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:flex-start}.email-preview-sidebar{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem;position:sticky;top:5rem}.email-preview-field{display:flex;flex-direction:column;gap:.3rem}.email-preview-field label{font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.email-preview-select,.email-preview-input,.email-preview-textarea{width:100%;padding:.55rem .7rem;font-size:.88rem;border:1px solid var(--border);border-radius:8px;background:var(--page-bg);color:var(--text);font-family:inherit;transition:border-color .15s;box-sizing:border-box}.email-preview-select:focus,.email-preview-input:focus,.email-preview-textarea:focus{outline:none;border-color:var(--accent)}.email-preview-textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.5}.email-preview-divider{height:1px;background:var(--border);margin:.25rem 0}.email-preview-back{font-size:.88rem;color:var(--text-muted);text-decoration:none;transition:color .15s}.email-preview-back:hover{color:var(--accent)}.email-preview-main{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--panel-bg)}.email-preview-subject-bar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--panel-bg)}.email-preview-subject-label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.email-preview-subject-value{font-size:.92rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-preview-frame-wrap{min-height:600px;background:#f9fafb}.email-preview-frame{width:100%;min-height:600px;height:100%;border:none;display:block}@media(max-width:768px){.email-preview-page{padding:1rem}.email-preview-layout{grid-template-columns:1fr}.email-preview-sidebar{position:static}.email-preview-frame-wrap,.email-preview-frame{min-height:500px}}@media(max-width:480px){.email-preview-page{padding:.75rem}.email-preview-header{flex-direction:column}.email-preview-frame-wrap,.email-preview-frame{min-height:400px}}.library-page{flex:1;padding:2rem;max-width:960px;margin:0 auto;width:100%}.library-header{text-align:center;margin-bottom:2.5rem}.library-header h1{font-size:1.75rem;font-weight:700;color:var(--text);margin:0 0 .4rem}.library-subtitle{color:var(--text-muted);font-size:1rem;margin:0}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}.library-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}.library-card:hover{border-color:var(--accent);box-shadow:0 4px 20px #00000014;transform:translateY(-2px)}.library-card-preview{display:flex;align-items:center;justify-content:center;height:180px;padding:1.5rem;background:var(--preview-bg, #f5f5f5)}.library-card-svg{width:100%;height:100%;max-width:140px;max-height:140px}.library-card-body{padding:1rem 1.25rem 1.25rem}.library-card-name{font-size:1.05rem;font-weight:600;color:var(--text);margin:0 0 .3rem}.library-card-desc{font-size:.85rem;color:var(--text-muted);margin:0 0 1rem;line-height:1.5}.library-card-actions{display:flex;gap:.5rem}.library-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;font-size:.82rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .15s;flex:1;justify-content:center}.library-btn--primary{background:var(--accent);color:#fff}.library-btn--primary:hover{background:var(--accent-hover)}.library-btn--secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.library-btn--secondary:hover{background:var(--preview-bg, rgba(0,0,0,.04));border-color:var(--accent);color:var(--accent)}@media(max-width:640px){.library-page{padding:1rem .75rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}.library-header h1{font-size:1.35rem}.library-header{margin-bottom:1.5rem}.library-grid{grid-template-columns:1fr 1fr;gap:.75rem}.library-card-preview{height:140px;padding:1rem}.library-card-body{padding:.75rem}.library-card-name{font-size:.95rem}.library-card-desc{font-size:.78rem;margin-bottom:.75rem}.library-btn{font-size:.78rem;padding:.45rem .6rem}}@media(max-width:380px){.library-grid{grid-template-columns:1fr}}@media(pointer:coarse){.library-btn{min-height:44px;font-size:.85rem;padding:.55rem 1rem}.library-card-preview{cursor:pointer}}
