:root{--brand-violet:#632fda;--brand-violet-dark:#4d3284;--brand-yellow:#fbbf03;--brand-violet-tint:#f3effa;--bg:#eef0f3;--stage-top:#e1e4ea;--stage-bottom:#c9ced6;--panel:#fff;--text:#1e1e20;--muted:#5d6068;--line:#dcdfe5;--control-line:#80858f;--accent:var(--brand-violet);--accent-strong:var(--brand-violet-dark);--accent-text:#fff;--error:#b3261e;--warn-bg:#fff6dd;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.app{grid-template-columns:minmax(0,1fr) 380px;height:100dvh;display:grid}.stage{background:linear-gradient(var(--stage-top), var(--stage-bottom));min-height:0;position:relative;overflow:hidden}#viewer{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#viewer:active{cursor:grabbing}.stage-loading{color:var(--muted);text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:15px;display:flex;position:absolute;inset:0}.stage[data-state=ready] .stage-loading{display:none}.stage[data-state=loading] #viewer{visibility:hidden}.stage-spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:22px;height:22px;animation:.9s linear infinite stage-spin}.stage[data-state=no3d] .stage-spinner{display:none}.stage[data-state=no3d] .stage-loading{color:var(--text)}.stage[data-state=no3d] #viewer,.stage[data-state=no3d] .hint{visibility:hidden}.stage[data-state=no3d] :is(.item-overlay,.dim-overlay,.problem-overlay,.stage-actions){display:none}@keyframes stage-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.stage-spinner{border-top-color:var(--line);border-color:var(--accent);opacity:.6;animation:none}}.dims{color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:#ffffffd9;border:1px solid #0000;border-radius:999px;margin:0 0 0 2px;padding:4px 10px;font-size:13px}.dims:hover{border-color:var(--accent);color:var(--accent-strong)}.dims:empty{display:none}.item-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.item-overlay.is-hidden{display:none}.item-box{fill:#632fda0f;stroke:var(--brand-violet);stroke-width:2px;stroke-dasharray:6 4;pointer-events:auto;cursor:move;touch-action:none}.item-box:focus-visible{stroke-width:3px;stroke-dasharray:none;outline:none}.item-stem{stroke:var(--brand-violet);stroke-width:2px}.item-handle{fill:#fff;stroke:var(--brand-violet);stroke-width:2.5px;pointer-events:auto;touch-action:none}.item-rotate{cursor:grab;fill:var(--brand-yellow);stroke:var(--brand-violet-dark)}.item-scale{cursor:nwse-resize}.dim-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dim-overlay.is-hidden{display:none}.dim-line,.dim-tick{stroke:var(--brand-violet-dark);stroke-width:1.5px}.dim-ext{stroke:var(--brand-violet-dark);stroke-width:1px;opacity:.55}.dim-label{fill:var(--brand-violet-dark);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-variant-numeric:tabular-nums;font:600 13px/1 inherit}.problem-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.problem-zone{fill-rule:nonzero;stroke-width:1.5px;stroke-linejoin:round}.problem-zone.is-error{fill:#dc1e3273;stroke:#c8102e}.problem-zone.is-warning{fill:#f5821459;stroke:#d96c00}.draw-layer{touch-action:none;cursor:crosshair;z-index:2;position:absolute;inset:0}.draw-layer[hidden],.draw-bar[hidden]{display:none}.draw-preview{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.draw-preview polyline{fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.draw-bar{z-index:3;background:#fffffff2;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 6px 24px #1e143c2e}.draw-bar .choices{gap:5px}.draw-bar .swatches .choice{width:24px;height:24px}.draw-bar button:not(.choice){font:inherit;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:6px 10px;font-weight:600}.draw-bar button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-text)}.draw-bar button:disabled{opacity:.5;cursor:default}.draw-width{color:var(--muted);white-space:nowrap;font-size:13px}.draw-bar input[type=range]{width:110px}.is-drawing .toolbar,.is-drawing .dims,.is-drawing .hint{visibility:hidden}.stage-actions{pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100% - 24px);display:flex;position:absolute;bottom:36px;right:12px}.stage-actions>*{pointer-events:auto}.stage-stale{max-width:calc(100% - 24px);color:var(--error);text-align:center;pointer-events:none;background:#fdecea;border:1px solid #f3b8b2;border-radius:10px;margin:0;padding:8px 12px;font-size:14px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.is-stale #viewer{opacity:.45;filter:grayscale(.7)}.anim-bar{gap:6px;display:flex}.anim-toggle{font:inherit;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#ffffffeb;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.anim-toggle:hover{border-color:var(--accent)}.anim-toggle[aria-pressed=true]{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-text)}.is-drawing .anim-bar{visibility:hidden}.light-box{flex-direction:column;align-items:flex-end;gap:6px;max-width:100%;display:flex}.light-box[hidden]{display:none}.light-caption{color:var(--muted);text-align:right;background:#ffffffd9;border-radius:6px;margin:0;padding:3px 8px;font-size:13px}.is-lit .light-caption{color:#f3f1f8;background:#00000073}.light-toggle{font:inherit;border:2px solid var(--accent-strong);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:9px 18px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000001f}.light-toggle:hover{border-color:var(--accent)}.light-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.light-toggle[data-on=true]{background:var(--brand-yellow);border-color:var(--brand-yellow);color:var(--accent-strong)}.light-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.light-toggle[data-on=true] .light-icon{fill:#fff}.is-lit .hint{color:#c9c6d4}.is-drawing .light-box{visibility:hidden}.is-animated .item-overlay,.is-animated .problem-overlay{display:none}.fold-toggle{font:inherit;border:2px solid var(--accent-strong);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:9px 18px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000001f}.fold-toggle[hidden]{display:none}.fold-toggle:hover{border-color:var(--accent)}.fold-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.fold-toggle[data-open=true]{background:var(--accent-strong);color:var(--accent-text)}.fold-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.is-drawing .fold-toggle{visibility:hidden}.item-list{grid-template-columns:minmax(0,1fr);gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.item-row{align-items:center;gap:4px;min-width:0;display:flex}.item-select{min-width:0;font:inherit;text-align:left;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;flex:1;align-items:center;gap:8px;padding:7px 10px;display:flex}.item-select[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--brand-violet-tint);color:var(--accent-strong)}.item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.item-dot{border:1px solid #0003;border-radius:50%;flex:none;width:14px;height:14px}.item-act{width:32px;height:32px;font:inherit;border:1px solid var(--control-line);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;flex:none}.item-act:disabled{opacity:.35;cursor:default}.item-del:hover:not(:disabled){border-color:var(--error);color:var(--error)}.item-adds{gap:8px;margin-bottom:12px;display:flex}.item-add{font:inherit;border:1px dashed var(--accent);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px;font-weight:600}.item-add[hidden]{display:none}.item-dot-image{border-radius:3px}.item-layers{gap:8px;display:grid}.item-layers .choices{gap:6px}.item-layers .swatches .choice{width:24px;height:24px}.item-add:disabled{opacity:.5;cursor:default}.item-panel{border-top:1px dashed var(--line);padding-top:6px}.item-panel[hidden]{display:none}.stage-top{pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.stage-top>*{pointer-events:auto}.toolbar{flex-wrap:wrap;gap:6px;display:flex}.toolbar button{font:inherit;border:1px solid var(--control-line);color:var(--accent-strong);cursor:pointer;background:#ffffffeb;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.toolbar button:hover:not(:disabled){border-color:var(--accent)}.toolbar button:disabled{color:var(--muted);opacity:.6;cursor:default}.product-select{font:inherit;font-size:inherit;font-weight:inherit;color:inherit;background:linear-gradient(transparent 55%, var(--brand-yellow) 55%);cursor:pointer;border:1px solid #0000;border-radius:8px;max-width:100%;margin-left:-6px;padding:2px 6px}.product-select:hover,.product-select:focus-visible{border-color:var(--accent)}#export-browser[hidden],#add-to-cart[hidden]{display:none}.designs-dialog{width:min(520px,100vw - 32px);color:var(--text);border:0;border-radius:14px;padding:20px;box-shadow:0 20px 60px #1e143c4d}.designs-dialog::backdrop{background:#4d328459}.designs-title{color:var(--accent-strong);margin:0 0 12px;font-size:20px}.designs-row{gap:8px;margin:6px 0 14px;display:flex}.designs-row input{min-width:0;font:inherit;border:1px solid var(--control-line);border-radius:8px;flex:1;padding:9px 11px}.designs-dialog button{font:inherit;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px;font-weight:600}.designs-dialog button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-text)}.designs-list{max-height:50vh;margin:0 0 14px;padding:0;list-style:none;overflow-y:auto}.design{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 0;display:flex}.design-info{flex:1;min-width:0;display:grid}.design-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.design-open{color:var(--accent-strong)!important;border-color:var(--accent)!important}.design-delete:hover{border-color:var(--error)!important;color:var(--error)!important}.designs-empty{color:var(--muted);padding:12px 0}.designs-close{margin-left:auto;display:block}.templates-hint{color:var(--muted);margin:0 0 8px;font-size:14px}.img-note{color:var(--muted);margin:0 0 12px;font-size:13px}.img-preview{aspect-ratio:16/9;border:1px solid var(--line);background:repeating-conic-gradient(#f1f0f4 0 25%, #fff 0 50%) 0 0 / 16px 16px;border-radius:10px;width:100%;height:auto;margin:6px 0;display:block}.img-status{min-height:1.3em;color:var(--muted);margin:0 0 8px;font-size:13px}.img-status[data-kind=error]{color:var(--error)}.img-chips{flex-wrap:wrap;gap:6px;margin:4px 0 14px;display:flex}.img-chip{font:inherit;border:1px solid var(--control-line);background:#fff;border-radius:8px;padding:6px 8px}.img-actions{justify-content:flex-end;gap:8px;display:flex}.image-dialog{max-height:calc(100vh - 32px);overflow-y:auto}.raster-body{gap:8px;display:grid}.raster-thumb,.raster-preview{max-width:100%;height:auto;image-rendering:pixelated;border:1px solid var(--line);background:repeating-conic-gradient(#f1f0f4 0 25%, #fff 0 50%) 0 0 / 16px 16px;border-radius:8px;display:block}.raster-thumb{object-fit:contain;width:160px;max-height:160px}.raster-thumb[hidden]{display:none}.raster-preview{object-fit:contain;width:100%;max-height:40vh;margin:6px 0}.raster-status{color:var(--muted);margin:0;font-size:13px}.raster-status[data-kind=error]{color:var(--error)}.raster-hint{background:var(--warn-bg);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.raster-hint[hidden]{display:none}.raster-note{color:var(--text);margin:0;font-size:13px}.raster-note[hidden]{display:none}.raster-original{gap:6px;display:grid}.raster-original-note{background:var(--warn-bg);color:var(--text);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.raster-progress{width:100%;height:8px;accent-color:var(--accent)}.raster-progress[hidden],.raster-upload[hidden]{display:none}.raster-upload{color:var(--muted);margin:0;font-size:13px}.raster-upload[data-kind=error]{color:var(--error)}.raster-buttons{flex-wrap:wrap;gap:8px;display:flex}.raster-btn{font:inherit;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px;font-weight:600}.raster-btn[hidden]{display:none}.raster-load,.raster-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}.raster-remove:hover:not(:disabled){border-color:var(--error);color:var(--error)}.raster-btn:disabled{opacity:.55;cursor:not-allowed}.raster-info{font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:13px}.raster-privacy{background:var(--brand-violet-tint);color:var(--accent-strong);border-radius:8px;padding:8px 10px}.raster-legend{flex-wrap:wrap;gap:6px 14px;margin:0 0 8px;padding:0;font-size:13px;list-style:none;display:flex}.raster-level{align-items:center;gap:6px;display:flex}.litho-stack{margin:6px 0;position:relative}.litho-stack .raster-preview{margin:0}.litho-stack.has-base .litho-top{background:0 0;border-color:#0000;width:100%;height:100%;position:absolute;inset:0}.litho-base{object-fit:contain;width:100%;max-height:40vh;image-rendering:pixelated;border:1px solid var(--line);border-radius:8px;display:block}.litho-base[hidden],.litho-crop[hidden],.litho-align-note[hidden],.raster-dialog .field[hidden]{display:none}.raster-chip{border:1px solid #00000026;border-radius:50%;flex:none;width:16px;height:16px}.hint{color:var(--muted);white-space:nowrap;margin:0;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.panel{background:var(--panel);border-left:1px solid var(--line);padding:20px max(20px, env(safe-area-inset-right)) 28px 20px;scroll-padding-bottom:calc(var(--buy-bar-h,96px) + 12px);overflow-y:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.panel h1{color:var(--accent-strong);margin:0 0 12px;font-size:20px}.panel h1 span{background:linear-gradient(transparent 55%, var(--brand-yellow) 55%);padding:0 2px}.step{border-top:1px solid var(--line)}.step:last-child{border-bottom:1px solid var(--line)}.step-heading{font:inherit;margin:0}.step-header{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:12px 2px;display:flex}.step-header:hover .step-title{color:var(--accent-strong)}.step-num{background:var(--brand-violet-tint);width:28px;height:28px;color:var(--accent-strong);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.step-header[aria-expanded=true] .step-num{background:var(--brand-yellow)}.step-text{flex:1;min-width:0;display:grid}.step-title{font-weight:650}.step-summary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.step-chevron{color:var(--muted);flex:none;transition:transform .2s}.step-header[aria-expanded=true] .step-chevron{transform:rotate(180deg)}.step-panel{padding:0 2px 14px 40px}.step-panel[hidden]{display:none}.step-nav{justify-content:space-between;gap:8px;margin-top:6px;display:flex}.step-nav button{font:inherit;white-space:nowrap;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px;font-weight:600}.step-nav .step-next{text-overflow:ellipsis;background:var(--accent-strong);border-color:var(--accent-strong);min-width:0;color:var(--accent-text);margin-left:auto;overflow:hidden}.step-nav .step-next:hover{background:var(--accent);border-color:var(--accent)}.step-nav .step-back:hover{border-color:var(--accent);color:var(--accent-strong)}@media (prefers-reduced-motion:reduce){.step-chevron{transition:none}}.field{margin:10px 0 14px}.field[hidden]{display:none}.field-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.field-label{font-weight:550}.field-value{font-variant-numeric:tabular-nums;color:var(--muted)}.field-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.field-count.is-over{color:var(--error);font-weight:600}.field-error{color:var(--error);margin:6px 0 0;font-size:14px}.field.has-error input[type=text],.field.has-error textarea{border-color:var(--error)}.field-problems{gap:4px;margin-top:6px;display:grid}.field-problems[hidden]{display:none}.field-issue{border-radius:8px;margin:0;padding:6px 10px;font-size:14px}.field-issue.is-error{color:#7a1c15;border-left:3px solid var(--error);background:#fdecea}.field-issue.is-warning{background:var(--warn-bg);color:var(--text);border-left:3px solid #b26a00}.field.has-problem input[type=text],.field.has-problem textarea{border-color:var(--error)}.step-header[data-problem] .step-num{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--error)}.step-header[data-problem=warning] .step-num{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px #b26a00}.field-boolean{justify-content:space-between;align-items:center;display:flex}.field-boolean .field-head{margin:0}input[type=range]{width:100%;accent-color:var(--accent)}input[type=text],textarea.text-lines{width:100%;font:inherit;border:1px solid var(--control-line);border-radius:8px;padding:9px 11px}textarea.text-lines{resize:vertical;line-height:1.3;display:block}input[type=text]:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch{width:20px;height:20px;accent-color:var(--accent)}.choices{flex-wrap:wrap;gap:6px;display:flex}.choice{font:inherit;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:7px 12px}.choice[aria-checked=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--brand-violet-tint);color:var(--accent-strong)}.swatches .choice{border:2px solid #0000001f;border-radius:50%;width:30px;height:30px;padding:0}.swatches .choice[aria-checked=true]{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--accent)}.field-color .swatches{gap:0}.field-color .swatches .choice{width:44px;height:44px;box-shadow:none;background-clip:content-box;border:0;padding:7px;position:relative}.field-color .swatches .choice:after{content:"";pointer-events:none;border:1px solid #0003;border-radius:50%;position:absolute;inset:6px}.field-color .swatches .choice[aria-checked=true]:after{border:2px solid var(--accent);inset:3px}.field-color .swatches .choice[hidden]{display:none}.field-color .swatch-custom{margin:7px}.font-choices .choice,.item-fonts .choice{min-height:44px;padding:6px 14px;font-size:18px;line-height:1.1}.font-choices .choice[hidden],.item-fonts .choice[hidden]{display:none}.swatch-foot{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-top:2px;display:flex}.swatch-name{color:var(--text);margin:0;font-size:14px}.swatch-name:empty{display:none}.swatch-more{font:inherit;color:var(--accent-strong);cursor:pointer;background:0 0;border:0;padding:10px 2px;font-size:14px;font-weight:600;text-decoration:underline}.swatch-more[hidden]{display:none}.swatch-custom{cursor:pointer;background:0 0;border:2px solid #0000001f;border-radius:50%;width:30px;height:30px;padding:0;overflow:hidden}.swatch-custom::-webkit-color-swatch-wrapper{padding:0}.swatch-custom::-webkit-color-swatch{border:0;border-radius:50%}.swatch-custom::-moz-color-swatch{border:0;border-radius:50%}.swatch-custom:not(.is-active)::-webkit-color-swatch{background:conic-gradient(#f44,#fd4,#4d4,#4dd,#44f,#d4d,#f44)!important}.swatch-custom:not(.is-active)::-moz-color-swatch{background:conic-gradient(#f44,#fd4,#4d4,#4dd,#44f,#d4d,#f44)!important}.swatch-custom.is-active{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--accent)}.printability{color:var(--error);background:#fdecea;border:1px solid #f3b8b2;border-radius:10px;margin-top:16px;padding:12px 14px;font-size:14px}.printability strong{margin-bottom:4px;display:block}.printability p{color:#7a1c15;margin:4px 0 0}.estimate{border-radius:var(--radius);background:var(--brand-violet-tint);border:1px solid var(--line);margin-top:16px;padding:12px 14px;font-size:14px}.estimate h2{color:var(--accent-strong);margin:0 0 8px;font-size:14px}.estimate dl{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px 12px;margin:0;display:grid}.estimate dt{color:var(--muted);font-size:12px}.estimate dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:600}.estimate .estimate-price dd{color:var(--accent-strong)}.estimate-note{color:var(--muted);margin:8px 0 0;font-size:12px}.estimate-debug{border:1px dashed var(--control-line);background:#fff;border-radius:8px;margin-top:12px;padding:8px 10px}.estimate-debug h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px;font-size:12px}.actions{gap:8px;margin-top:18px;display:grid}.actions button{font:inherit;border-radius:var(--radius);border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;padding:11px 14px;font-weight:600}.actions button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-text)}.cart-hint{color:var(--text);margin:0;font-size:14px}.example-confirm{align-self:flex-start}.example-confirm[hidden]{display:none}.actions button.primary:hover{background:var(--accent);border-color:var(--accent)}.actions button:not(.primary):hover{border-color:var(--accent);color:var(--accent-strong)}.actions button:disabled{opacity:.55;cursor:not-allowed}.status{white-space:pre-line;min-height:1.4em;color:var(--muted);margin:12px 0 0;font-size:14px}.status[data-kind=error]{color:var(--error)}.status-retry{font:inherit;min-height:44px;color:var(--accent-strong);cursor:pointer;background:0 0;border:0;padding:0 4px;font-weight:600;text-decoration:underline}.warnings{background:var(--warn-bg);border-radius:8px;margin:10px 0 0;padding:10px 12px 10px 28px;font-size:14px}.notes{border:1px solid var(--line);color:var(--muted);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px}.notes h2{color:var(--text);margin:0 0 4px;font-size:13px;font-weight:650}.notes ul{margin:0;padding-left:18px}.notes li+li{margin-top:2px}.buy-bar{z-index:5;margin:16px calc(-1 * max(20px, env(safe-area-inset-right))) -28px -20px;padding:12px max(20px, env(safe-area-inset-right)) 14px 20px;background:var(--panel);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;display:grid;position:sticky;bottom:-28px;box-shadow:0 -6px 18px #1e143c14}.buy-info{min-width:0}.buy-price{font-variant-numeric:tabular-nums;color:var(--accent-strong);margin:0;font-size:20px;font-weight:700}.buy-price.is-note{color:var(--text);font-size:14px;font-weight:600}.buy-price:empty{display:none}.buy-delivery{color:var(--muted);margin:0;font-size:13px}.buy-delivery[hidden]{display:none}.buy-button{font:inherit;border-radius:var(--radius);border:1px solid var(--accent-strong);background:var(--accent-strong);min-height:44px;color:var(--accent-text);cursor:pointer;white-space:nowrap;padding:12px 18px;font-weight:700}.buy-button:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.buy-button:disabled{opacity:.55;cursor:not-allowed}.buy-button[aria-busy=true]{cursor:progress}.buy-bar .cart-hint,.buy-bar .example-confirm{grid-column:1/-1}.buy-bar .cart-hint{margin:0}.cart-hint-go{font:inherit;text-align:left;color:var(--error);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px;text-decoration:underline}.buy-bar .example-confirm{font:inherit;border:1px solid var(--control-line);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;justify-self:start;padding:8px 12px;font-weight:600}.buy-bar.has-qty .buy-info{grid-area:1/1/span 2}.buy-bar.has-qty .buy-qty{grid-area:1/2}.buy-bar.has-qty .buy-button{grid-area:2/2}.buy-qty{justify-content:flex-end;align-items:center;gap:8px;display:flex}.buy-qty[hidden]{display:none}.buy-qty-label{color:var(--muted);font-size:14px;font-weight:600}.buy-qty-controls{display:inline-flex}.buy-qty-step{width:44px;min-height:44px;font:inherit;border:1px solid var(--control-line);color:var(--accent-strong);cursor:pointer;background:#fff;font-size:20px;font-weight:700;line-height:1}.buy-qty-step:first-child{border-radius:var(--radius) 0 0 var(--radius)}.buy-qty-step:last-child{border-radius:0 var(--radius) var(--radius) 0}.buy-qty-step:hover:not(:disabled){background:var(--brand-violet-tint)}.buy-qty-step:disabled{color:var(--control-line);cursor:not-allowed}.buy-qty-input{box-sizing:border-box;text-align:center;width:44px;min-height:44px;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);border:1px solid var(--control-line);appearance:textfield;background:#fff;border-left:0;border-right:0;border-radius:0;padding:0;font-weight:700}.buy-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.buy-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.review-list{gap:6px;margin:4px 0 12px;display:grid}.review-row{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:8px;display:grid}.review-row dt{color:var(--muted);font-size:14px}.review-row dd{overflow-wrap:anywhere;margin:0;font-weight:600}.review-buy{width:100%;font:inherit;border-radius:var(--radius);border:1px solid var(--accent-strong);background:var(--accent-strong);min-height:44px;color:var(--accent-text);cursor:pointer;padding:12px 16px;font-weight:700}.review-buy[hidden],.review-reason[hidden]{display:none}.review-buy:disabled{opacity:.55;cursor:not-allowed}.review-reason{color:var(--error);margin:6px 0 0;font-size:14px}.review-pending{background:var(--warn-bg);border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:14px}.review-pending[hidden]{display:none}.review-pending h3{margin:0 0 4px;font-size:14px}.review-pending ul{margin:0;padding-left:18px}@media (max-width:800px){.step-panel{padding-left:2px}.app{grid-template-rows:35dvh auto;grid-template-columns:minmax(0,1fr);height:auto}.stage{z-index:10;box-shadow:0 1px 0 var(--line);position:sticky;top:0}.is-typing .app{grid-template-rows:max(22dvh,140px) auto}.is-typing .stage-actions{display:none}.panel{border-left:0;border-top:1px solid var(--line);padding:16px max(16px, env(safe-area-inset-right)) calc(var(--buy-bar-h,96px) + 16px) max(16px, env(safe-area-inset-left));overflow:visible}html{scroll-padding-top:calc(35dvh + 12px);scroll-padding-bottom:calc(var(--buy-bar-h,96px) + 12px)}.field,.step-header,.printability{scroll-margin-top:calc(35dvh + 12px);scroll-margin-bottom:calc(var(--buy-bar-h,96px) + 12px)}.hint{display:none}.buy-bar{z-index:20;padding:10px max(16px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0;position:fixed;bottom:0;left:0;right:0}.buy-price{font-size:18px}.is-typing .buy-bar{display:none}.buy-qty-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.batch{gap:10px;display:grid}.batch-list,.batch-numbers{gap:8px;display:grid}.batch-list[hidden],.batch-numbers[hidden],.batch-summary[hidden],.batch-rows[hidden],.batch-problems[hidden],.batch-notes[hidden]{display:none}.batch-numbers{grid-template-columns:2fr 1fr 1fr;align-items:end}.batch-numbers .batch-apply{grid-column:1/-1}.batch-field{color:var(--muted);gap:4px;font-size:13px;display:grid}.batch-text,.batch-field input{font:inherit;border:1px solid var(--control-line);color:var(--text);background:#fff;border-radius:8px;min-width:0;padding:7px 9px}.batch-text{resize:vertical}.batch-table{background:var(--warn-bg);border-radius:8px;gap:8px;padding:8px 10px;font-size:13px;display:grid}.batch-table[hidden]{display:none}.batch-table-message{color:var(--text);margin:0;font-weight:600}.batch-table-column{font:inherit;border:1px solid var(--control-line);color:var(--text);background:#fff;border-radius:8px;min-width:0;max-width:100%;padding:6px 8px}.batch-check{color:var(--text);align-items:center;gap:6px;display:flex}.batch-apply{font:inherit;border:1px solid var(--accent-strong);background:var(--accent-strong);color:var(--accent-text);cursor:pointer;border-radius:8px;justify-self:start;padding:7px 14px;font-weight:600}.batch-problems,.batch-notes{border-radius:8px;margin:0;padding:8px 10px 8px 26px;font-size:13px}.batch-problems{color:var(--error);background:#fdecea}.batch-notes{background:var(--warn-bg);color:var(--text)}.batch-summary{color:var(--accent-strong);margin:0;font-weight:600}.batch-rows{gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.batch-row{width:100%;font:inherit;text-align:left;border:1px solid var(--control-line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;gap:8px;padding:6px 10px;display:flex}.batch-row[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--brand-violet-tint)}.batch-row-name{overflow-wrap:anywhere}.batch-rows li[data-status=ok] .batch-row-state{color:#2e7d32}.batch-rows li[data-status=error] .batch-row{border-color:var(--error)}.batch-rows li[data-status=error] .batch-row-state{color:var(--error)}.batch-row-error{color:var(--error);margin:2px 10px 4px;font-size:13px}.batch-hint{color:var(--muted);margin:0;font-size:13px}.batch-notice{border-left:3px solid var(--accent);background:var(--brand-violet-tint);color:var(--text);border-radius:8px;gap:8px;margin:0 0 8px;padding:8px 10px;font-size:13px;display:grid}.batch-notice[hidden]{display:none}.batch-notice-text,.batch-notice-view{margin:0}.batch-notice-head{font-weight:600}.batch-notice-cleared{color:var(--muted);margin:0 0 8px;font-size:13px}.batch-notice-cleared[hidden]{display:none}.batch-notice-actions{flex-wrap:wrap;gap:8px;display:flex}.batch-notice-actions button{font:inherit;border:1px solid var(--accent-strong);color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;padding:5px 12px;font-weight:600}.batch-notice-actions .batch-notice-show{background:var(--accent-strong);color:var(--accent-text)}.is-batch-replaced{opacity:.55}.is-batch-replaced:focus{opacity:1}.reload-notice{color:#7a271a;background:#fef3f2;border:1px solid #b42318;border-radius:10px;margin:12px 0;padding:12px}.reload-notice p{margin:0 0 8px}.not-for-sale{background:var(--brand-violet-tint);color:var(--text);border-radius:10px;margin:4px 0 12px;padding:10px 12px;font-size:14px}.not-for-sale a{color:var(--accent-strong);font-weight:600}.reload-notice button{font:inherit;border:1px solid var(--accent-strong);background:var(--accent-strong);color:var(--accent-text);cursor:pointer;border-radius:8px;padding:8px 14px;font-weight:600}.bundle-main{max-width:640px;padding:24px max(16px, env(safe-area-inset-right)) 32px max(16px, env(safe-area-inset-left));margin:0 auto}.bundle-list{gap:10px;margin:16px 0;padding:0;list-style:none;display:grid}.bundle-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:12px;padding:10px;display:flex}.bundle-item[data-ready=true]{border-color:var(--accent-strong)}.bundle-thumb{border-radius:var(--radius);background:var(--line);flex:none;place-items:center;width:56px;height:56px;font-weight:700;display:grid;position:relative;overflow:hidden}.bundle-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.bundle-text{flex:160px;gap:2px;min-width:0;display:grid}.bundle-state{overflow-wrap:anywhere;font-size:.9em}.bundle-qty{width:4em;font:inherit;margin:0 0 12px 6px}.bundle-back{margin-bottom:8px;display:inline-block}.is-bundle-component .buy-qty{display:none}.box-scene{margin-top:16px}.box-scene-title{margin:0 0 8px;font-size:1.1em}.box-scene-note{color:var(--muted);margin:0 0 8px;font-size:14px}.box-scene-note:empty{display:none}.box-scene-stage{border-radius:var(--radius);background:linear-gradient(var(--stage-top), var(--stage-bottom));height:min(60vh,420px);position:relative;overflow:hidden}.box-scene[data-state=manual] .box-scene-stage,.box-scene[data-state=no3d] .box-scene-stage,.box-scene[data-state=empty] .box-scene-stage,.box-scene[data-state=failed] .box-scene-stage{display:none}.box-scene-canvas{touch-action:none;width:100%;height:100%;display:block}.box-scene-layer{pointer-events:none;position:absolute;inset:0}.scene-thumb{border:2px solid var(--panel);border-radius:var(--radius);cursor:pointer;pointer-events:auto;background:0 0;padding:0;position:absolute;top:0;left:0;box-shadow:0 1px 4px #00000040}.scene-thumb[data-state=loading],.scene-thumb[data-state=queued]{opacity:.6}.scene-focus{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;padding:10px;display:flex}.scene-focus[hidden]{display:none}.scene-focus-state{overflow-wrap:anywhere;flex:160px;font-size:.9em}@media (min-width:960px){.bundle-main:has(.box-scene:not([hidden])){grid-template-columns:minmax(0,640px) minmax(0,1fr);align-items:start;gap:24px;max-width:1120px;display:grid}.bundle-main .box-scene{margin-top:0;position:sticky;top:16px}}.share-dialog .share-link{box-sizing:border-box;border:1px solid var(--control-line);width:100%;font:inherit;border-radius:8px;padding:8px}.share-dialog .share-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.share-dialog .share-whatsapp{border:1px solid var(--control-line);color:var(--text);border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none}.share-dialog .share-notice{font-size:.9em}.quote-dialog .quote-field{margin:8px 0;display:block}.quote-dialog .quote-field input,.quote-dialog .quote-field textarea{box-sizing:border-box;border:1px solid var(--control-line);width:100%;font:inherit;border-radius:8px;padding:8px}
