.editor{height:calc(100dvh - var(--app-header-height,140px));grid-template-columns:minmax(0,1fr) 400px;display:grid}.editor__main{flex-direction:column;min-width:0;min-height:0;display:flex}.stage{background:var(--workspace);flex:1;min-height:0;position:relative}.stage__viewport{position:absolute;inset:0;overflow:auto}.stage__content{flex-direction:column;justify-content:center;align-items:center;gap:14px;width:max-content;min-width:100%;min-height:100%;padding:80px 24px 102px;display:flex}.stage__board{border-radius:6px;flex-shrink:0;margin:0;box-shadow:0 0 0 1px #e0d9ce,0 10px 30px #3c281414}.stage__dims{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px}.stage__chip{z-index:2;border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;max-width:calc(50% - 30px);min-height:40px;padding:0 14px 0 12px;font-size:14px;display:flex;position:absolute;top:20px}.stage__chip--file{left:20px}.stage__chip--file .muted{white-space:nowrap}.stage__file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.stage__chip--toggle{padding:0 4px 0 14px;font-weight:500;right:20px}.stage__legend{z-index:2;border:1px solid var(--line);color:var(--ink-2);background:#fff;border-radius:12px;gap:18px;margin:0;padding:12px 16px;font-size:13px;list-style:none;display:flex;position:absolute;bottom:20px;left:20px}.stage__legend li{align-items:center;gap:8px;display:flex}.zoom{z-index:2;border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #3c281414}.zoom__btn,.zoom__fit{background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;height:40px;display:flex}.zoom__btn{width:44px}.zoom__fit{white-space:nowrap;gap:6px;padding:0 12px;font-size:14px;font-weight:500}.zoom__btn:hover,.zoom__fit:hover{background:var(--surface-2)}.zoom__value{text-align:center;font-variant-numeric:tabular-nums;min-width:56px;font-size:14px;font-weight:600}.zoom__divider{background:var(--line);width:1px;height:24px;margin:0 4px}.thumbs{border-top:1px solid var(--line-soft);background:#fff;flex-shrink:0;align-items:center;gap:16px;min-height:116px;padding:12px 24px;display:flex}.thumbs__meta{flex-direction:column;flex-shrink:0;gap:2px;width:104px;font-size:13px;display:flex}.thumbs__count{font-size:15px;font-weight:700}.thumbs__list{gap:12px;margin:0;padding:8px;list-style:none;display:flex;overflow-x:auto}.thumbs__item{flex-shrink:0;position:relative}.thumb{border:1px solid var(--line);border-radius:16px;justify-content:center;align-items:center;width:76px;height:76px;padding:0;display:flex}.thumb svg{width:60px;height:60px}.thumb[aria-pressed=true]{border:2px solid var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.thumb--add{background:var(--bg);color:var(--ink-2);border:1.5px dashed #b3aa9d;flex-direction:column;gap:4px;font-size:13px;font-weight:500}.thumb--add svg{width:20px;height:20px}.thumb__alert{z-index:1;color:#fff;pointer-events:none;background:#b45f06;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;bottom:4px;right:4px;box-shadow:0 0 0 2px #fff}.thumb .thumb__alert svg{width:12px;height:12px}.thumb__remove{border:1px solid var(--line);width:24px;height:24px;color:var(--ink-2);box-shadow:var(--shadow-sm);opacity:0;background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:-6px;right:-6px}.thumb__remove:hover{color:var(--cut-ink)}.thumbs__item:hover .thumb__remove,.thumb__remove:focus-visible{opacity:1}.shape-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.shape-option{border:1px solid var(--line);text-align:left;background:#fff;border-radius:14px;align-items:center;gap:10px;min-height:56px;padding:9px 13px;font-size:14px;font-weight:500;line-height:1.3;display:flex}.shape-option__icon{flex-shrink:0}.shape-option:disabled{opacity:.45}.stage__base-label{fill:var(--ink-2);font-weight:600}.ring-handle__target{fill:#ffffff03;stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;cursor:grab;touch-action:none}.ring-handle__target:hover,.ring-handle[data-dragging] .ring-handle__target{fill:#ffffff40;stroke-dasharray:none}.ring-handle[data-dragging] .ring-handle__target{cursor:grabbing}.ring-handle__guide{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;pointer-events:none}.shape-option[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-tint);padding:8px 12px;font-weight:700}@media (width<=960px){.editor{flex-direction:column;height:auto;display:flex}.stage{border-radius:20px;flex:none;height:360px;margin:12px 16px 0;overflow:hidden}.stage__content{padding:56px 16px}.stage__chip--file,.stage__legend,.stage__dims{display:none}.stage__chip{top:10px}.stage__chip--toggle{max-width:none;font-size:13px;right:10px}.zoom{padding:2px;bottom:10px;left:auto;right:10px;transform:none}.zoom__value,.zoom__divider,.zoom__fit-label{display:none}.zoom__fit{width:44px;padding:0}.thumbs{background:0 0;border:0;min-height:0;padding:4px 8px}.thumbs__meta{display:none}.thumb{border-radius:14px;width:56px;height:56px}.thumb svg{width:44px;height:44px}.thumb__remove{opacity:1}.editor__ad-mobile{padding:4px 16px 0}.panel{background:0 0;border-left:0;padding:4px 16px 24px;overflow:visible}}.regroup{flex-direction:column;gap:10px;display:flex}.regroup__list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.regroup__pick{border:1px solid var(--line);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:46px;height:46px;padding:0;display:flex}.regroup__pick svg{width:36px;height:36px}.regroup__pick[aria-pressed=true]{border:2px solid var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.regroup__pick:disabled{cursor:default}.regroup__actions{flex-wrap:wrap;gap:8px;display:flex}.sheet{height:calc(100dvh - var(--app-header-height,140px));grid-template-columns:minmax(0,1fr) 400px;display:grid}.sheet__stage{background:var(--workspace);min-width:0;position:relative}.sheet__viewport{flex-direction:column;justify-content:safe center;align-items:center;gap:14px;padding:80px 24px 88px;display:flex;position:absolute;inset:0;overflow:auto}.paper{background:#fff;flex-shrink:0;margin:0;box-shadow:0 1px 2px #3c281414,0 18px 44px #3c28141f}.pager{color:var(--ink-2);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:13px;display:flex}.usage{z-index:2;border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:14px;min-height:48px;padding:0 18px;display:flex;position:absolute;top:20px;right:20px}.usage__label{color:var(--ink-2);font-size:14px}.usage__bar{background:var(--line);border-radius:999px;width:120px;height:8px;overflow:hidden}.usage__bar span{background:var(--accent);border-radius:999px;height:100%;transition:width .3s;display:block}.usage__value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.paper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.paper-option{border:1px solid var(--line);text-align:left;background:#fff;border-radius:14px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:64px;padding:10px 14px;display:flex}.paper-option[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-tint);padding:9px 13px}.paper-option__name{font-size:15px;font-weight:600}.paper-option[aria-pressed=true] .paper-option__name{font-weight:700}.paper-option__size{color:var(--ink-3);align-items:center;gap:4px;font-size:13px;display:flex}.paper-option[aria-pressed=true] .paper-option__size{color:#4a4f7a}.shop-size{flex-direction:column;gap:10px;display:flex}.size-row--even{align-items:stretch}.qty-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.qty-item{align-items:center;gap:12px;padding:8px 0;display:flex}.qty-item__thumb{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.qty-item__text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13px;display:flex}.qty-item__name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.sheet-stickers{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.sheet-sticker{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:12px;min-width:0;padding:14px;display:flex}.sheet-sticker:focus-within{border-color:var(--accent)}.sheet-sticker__header{align-items:center;gap:10px;display:flex}.sheet-sticker__controls{flex-direction:column;gap:8px;min-width:0;display:flex}.sheet-sticker__dimensions{gap:8px}.sheet-sticker__dimensions .field__box{padding:0 8px}.sheet-sticker__dimensions .lock-btn{flex:0 0 36px;width:36px}.sheet-sticker__hint{color:var(--ink-3);font-size:12px;line-height:1.5}.sheet-sticker__scale-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;min-width:0;display:grid}.sheet-sticker__scale{border:1px solid var(--line);background:var(--bg);border-radius:12px;align-items:center;gap:2px;min-width:0;height:44px;display:flex}.sheet-sticker__scale:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.sheet-sticker__scale .stepper__btn{flex:0 0 32px;width:32px}.sheet-sticker__scale .field__input{text-align:center}.sheet-sticker__reset{white-space:normal;max-width:120px;height:auto;min-height:44px;padding:8px 10px;font-size:13px;line-height:1.35}.sheet-sticker__quantity{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}@media (width<=380px){.sheet-sticker__scale-row{grid-template-columns:minmax(0,1fr)}.sheet-sticker__reset{max-width:none}}.summary{background:var(--accent-tint);border-radius:16px;align-items:center;gap:14px;margin-top:20px;padding:16px 18px;display:flex}.summary__icon{background:var(--accent);color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.summary__text{color:var(--accent-ink-2);flex-direction:column;gap:2px;font-size:13px;display:flex}.summary__text strong{color:var(--ink);font-size:15px}.sheet .notice{margin-top:20px}@media (width<=960px){.sheet{flex-direction:column;height:auto;display:flex}.sheet__stage{border-radius:20px;height:520px;margin:12px 16px 0;overflow:hidden}.sheet__viewport{padding:64px 16px 12px}.usage{gap:10px;min-height:44px;padding:0 14px;top:10px;right:10px}.usage__bar{width:64px}.usage__value{font-size:20px}.sheet .panel{overflow:visible}}.template-spec{background:var(--accent-tint-2);border-radius:12px;flex-direction:column;gap:6px;margin:0;padding:12px 14px;font-size:13px;display:flex}.template-spec>div{justify-content:space-between;gap:12px;display:flex}.template-spec dt{color:var(--ink-3);flex-shrink:0}.template-spec dd{text-align:right;margin:0;font-weight:600}.template-spec--line{color:var(--accent-ink-2);font-weight:600}.panel__toggle--flush{margin-top:0}.modal-backdrop{z-index:50;background:#1f1a1780;justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{width:100%;max-width:720px;box-shadow:var(--shadow-lg);background:#fff;border-radius:28px;flex-direction:column;margin:auto 0;display:flex}.modal__header{justify-content:space-between;align-items:flex-start;gap:16px;padding:28px 24px 4px 32px;display:flex}.modal__title{letter-spacing:-.02em;font-size:24px;font-weight:800}.modal__desc{color:var(--ink-2);margin-top:6px;font-size:15px}.modal__body{flex-direction:column;gap:28px;padding:20px 32px 28px;display:flex}.modal__group{border:0;min-width:0;margin:0;padding:0}.modal__legend{margin-bottom:12px;padding:0;font-size:16px;font-weight:700}.modal__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.modal__row .modal__legend{margin:0}.modal__toggle-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.modal__toggle-text .modal__help{margin:0}.format-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.format-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:18px;align-items:flex-start;gap:14px;padding:18px;display:flex}.format-card[data-selected]{border:2px solid var(--accent);background:var(--accent-tint-2);padding:17px}.format-card input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:3px 0 0}.format-card__body{flex-direction:column;gap:6px;display:flex}.format-card__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.format-card__name{font-family:var(--font-display);letter-spacing:-.01em;font-size:21px;font-weight:800}.format-card[data-selected] .tag:not(.tag--accent){border:1px solid var(--accent-line);color:#2b3cb0;background:#fff;padding:2px 8px}.format-card__desc{color:var(--ink-2);font-size:14px;line-height:1.55}.spec{border:1px solid var(--line-soft);background:var(--line-soft);border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:14px 0 0;display:grid;overflow:hidden}.spec__item{background:var(--bg);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.spec dt{color:var(--ink-3);font-size:13px}.spec dd{align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.spec__swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.modal__help{color:var(--ink-3);margin-top:10px;font-size:13px;line-height:1.55}.modal__footer{border-top:1px solid var(--line-soft);background:var(--bg);border-radius:0 0 28px 28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:18px 24px 18px 32px;display:flex}.modal__local{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:flex}.modal__local svg{color:var(--accent)}.modal__actions{gap:10px;display:flex}@media (width<=760px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:24px 24px 0 0;max-height:100dvh;margin:0;overflow-y:auto}.modal__header{padding:20px 16px 4px 20px}.modal__body{gap:22px;padding:16px 20px 20px}.format-grid{grid-template-columns:1fr;gap:8px}.format-card{padding:14px}.format-card[data-selected]{padding:13px}.spec{grid-template-columns:1fr}.modal__footer{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-radius:0;position:sticky;bottom:0}.modal__local{display:none}.modal__actions{width:100%}.modal__actions .btn:last-child{flex:1}}.image-editor__original-surface,.image-editor__surface{flex-shrink:0;position:relative}.image-editor__original-surface canvas,.image-editor__surface canvas{cursor:crosshair;width:100%;height:100%;display:block}.image-editor__surface canvas{touch-action:none}.image-editor__surface canvas[data-mode=pan]{cursor:grab}.image-editor__surface canvas[data-panning]{cursor:grabbing}.image-editor__surface canvas:focus-visible,.image-editor__original-surface canvas:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.image-editor__viewport.background-picker__viewport{overscroll-behavior:contain;justify-content:flex-start;align-items:flex-start;padding:7px;display:flex;overflow:auto}.image-editor__surface{margin:auto}.image-editor__brush{pointer-events:none;border:1px solid #fff;border-radius:50%;min-width:3px;min-height:3px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #242424}.image-editor__brush[data-mode=restore]{border-color:#a8fac6}.image-editor__tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.image-editor__tool-group{border:0;flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;display:flex}.image-editor__tool-group legend{margin-bottom:10px;font-size:14px;font-weight:700}.image-editor__buttons{flex-wrap:wrap;gap:7px;display:flex}.image-editor__buttons .btn{white-space:normal;height:auto;min-height:38px;padding:8px 12px;font-size:13px}.image-editor__buttons .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint-2);color:var(--accent)}.image-editor__range{grid-template-columns:1fr auto;gap:3px 12px;font-size:13px;display:grid}.image-editor__range output{color:var(--accent);font-variant-numeric:tabular-nums}.image-editor__range input{width:100%;height:28px;accent-color:var(--accent);grid-column:1/-1;margin:0}@media (width<=760px){.image-editor__tools{grid-template-columns:1fr;gap:16px}}.background-picker-backdrop{padding:32px 16px}.background-picker{max-width:920px;max-height:calc(100dvh - 64px);overflow:hidden}.background-picker .modal__header{flex-shrink:0;padding:22px 24px 8px}.background-picker .modal__header>div{min-width:0}.background-picker__filename{color:var(--ink-3);overflow-wrap:anywhere;margin-top:4px;font-size:13px}.background-picker__body{gap:16px;min-height:0;padding:16px 24px 20px;overflow-y:auto}.background-picker__images{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.background-picker__image-panel{flex-direction:column;gap:8px;min-width:0;display:flex}.background-picker__image-panel h3{font-size:15px;font-weight:700}.background-picker__viewport{border:1px solid var(--line);border-radius:14px;justify-content:center;align-items:center;min-width:0;height:clamp(180px,34dvh,340px);min-height:180px;display:flex;overflow:hidden}.background-picker__viewport img{width:auto;max-width:100%;height:auto;max-height:calc(clamp(180px,34dvh,340px) - 2px);display:block}.background-picker__selector{cursor:crosshair;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;max-width:100%;padding:0;line-height:0;display:flex;position:relative}.background-picker__selector:focus-visible{outline-offset:-3px}.background-picker__point{width:20px;height:20px;box-shadow:0 0 0 2px var(--accent), 0 1px 5px #00000080;pointer-events:none;border:2px solid #fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.background-picker__point:before,.background-picker__point:after{content:"";background:var(--accent);width:10px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.background-picker__point[data-pending]{border-style:dashed}.background-picker__point:after{transform:translate(-50%,-50%)rotate(90deg)}.background-picker__empty{background:var(--surface);max-width:280px;color:var(--ink-2);text-align:center;border-radius:10px;padding:16px;font-size:14px}.background-picker__help{color:var(--ink-3);font-size:12px;line-height:1.5}.background-picker__tolerance{flex-direction:column;gap:6px;display:flex}.background-picker__tolerance label{justify-content:space-between;gap:12px;font-size:14px;font-weight:600;display:flex}.background-picker__tolerance output{color:var(--accent);font-variant-numeric:tabular-nums}.background-picker__tolerance input{width:100%;height:28px;accent-color:var(--accent);margin:0}.background-picker__options{flex-direction:column;gap:8px;display:flex}.background-picker__point-actions{flex-wrap:wrap;gap:8px;display:flex}.background-picker__check{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.background-picker__check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.background-picker__status{min-height:21px;color:var(--ink-2);font-size:13px;line-height:1.6}.background-picker__footer{flex-shrink:0;grid-template-columns:1fr 1fr 1.2fr;gap:8px;padding:16px 24px;display:grid;position:static}.background-picker__footer .btn{white-space:normal;overflow-wrap:anywhere;min-width:0;height:auto;min-height:44px;padding:10px 12px}@media (width<=760px){.background-picker-backdrop{padding:0}.background-picker{max-height:100dvh}.background-picker .modal__header{padding:18px 16px 6px}.background-picker .modal__title{font-size:21px}.background-picker .modal__desc{font-size:14px}.background-picker__body{padding:12px 16px 16px}.background-picker__images{grid-template-columns:1fr;gap:14px}.background-picker__viewport{height:clamp(160px,30dvh,240px);min-height:160px}.background-picker__viewport img{max-height:calc(clamp(160px,30dvh,240px) - 2px)}.background-picker__footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.background-picker__footer .btn{padding:10px 8px;font-size:13px}}.done{text-align:center;flex-direction:column;flex:1;align-items:center;padding:64px 24px 48px;display:flex}.done__mark{align-items:center;gap:20px;display:flex}.done__sticker--left{transform:rotate(-14deg)translateY(12px)}.done__sticker--right{transform:rotate(12deg)translateY(-14px)}.done__badge{border:2px dashed var(--cut);background:#fff;border-radius:50%;width:128px;height:128px;padding:10px}.done__badge>span{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;box-shadow:0 10px 24px #3b4fd847}.done__title{letter-spacing:-.02em;margin-top:24px;font-size:36px;font-weight:800}.done__body{color:var(--ink-2);overflow-wrap:anywhere;margin-top:10px;font-size:17px;line-height:1.6}.done__retry{color:var(--ink-3);margin-top:6px;font-size:14px}.done__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.tips{border:1px solid var(--line-soft);text-align:left;background:#fff;border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:720px;margin-top:56px;padding:28px 32px;display:flex}.tips__title{font-size:18px;font-weight:700}.tips__list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.tips__list li{color:#3d3731;align-items:flex-start;gap:12px;font-size:15px;line-height:1.6;display:flex}.tips__check{background:var(--accent-tint);width:26px;height:26px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.done__ad{margin-top:56px}@media (width<=760px){.done{padding:40px 16px 48px}.done__title{font-size:28px}.done__actions{flex-direction:column;width:100%}.done__actions .btn{width:100%}.tips{margin-top:40px;padding:20px}.done__ad{margin-top:40px}}
