/* Posição da estampa na camiseta (apparel-placement.js): estampa arrastável, área de
   impressão com linhas-guia, alças da arte e as ferramentas abaixo do local. A cor de
   destaque vem da loja (--ap-accent / --brand); a guia de alinhamento é magenta. */
.apl-print{position:absolute;box-sizing:border-box;padding:0;margin:0;border:1.5px solid var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)));border-radius:4px;color:var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)));container-type:size;z-index:2}
.apl-print.is-movable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
.apl-print.is-dragging{cursor:grabbing;z-index:5;box-shadow:0 6px 18px #0000002e}
.apl-print.is-active{z-index:4;outline:2px solid #fff;outline-offset:0;box-shadow:0 0 0 3.5px var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)))}
.apl-print.has-art{background:transparent!important;border-style:dashed;border-width:1px}
.apl-print.has-art:not(.is-active):not(:hover){border-color:transparent}
.apl-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.apl-art-img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;pointer-events:none;-webkit-user-drag:none;user-select:none;image-rendering:auto}
.apl-art-empty>span{font-size:clamp(7px,12cqw,13px);font-weight:650;letter-spacing:.3px;text-transform:uppercase;text-align:center;line-height:1.15;padding:0 4px;overflow:hidden;text-overflow:ellipsis;max-width:100%;max-height:100%}
.apl-label{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);padding:2px 8px;border-radius:999px;background:var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)));color:#fff;font-size:10.5px;font-weight:600;line-height:1.5;white-space:nowrap;box-shadow:0 1px 5px #0000002e;pointer-events:none;z-index:1}
.apl-dragging .apl-label{opacity:0}
/* Alças da arte: canto (tamanho) e haste no topo (giro). */
.apl-handle{position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)));box-shadow:0 1px 4px #00000040;z-index:3;touch-action:none}
.apl-handle::after{content:"";position:absolute;inset:-10px}
.apl-scale{right:-9px;bottom:-9px;cursor:nwse-resize}
.apl-rotate{left:50%;top:-30px;transform:translateX(-50%);cursor:grab}
.apl-rotate::before{content:"";position:absolute;left:50%;top:14px;width:1.5px;height:14px;background:var(--apl-accent,var(--ap-accent,var(--brand,#2563eb)));transform:translateX(-50%)}
/* Área de impressão e linhas-guia. */
.apl-zone{position:absolute;box-sizing:border-box;border:1px dashed #64748bb3;border-radius:3px;pointer-events:none;display:none;z-index:1}
.apl-zone.is-on,.apl-dragging .apl-zone.is-dragzone{display:block}
.apl-zone-label{position:absolute;right:0;bottom:calc(100% + 3px);font-size:10px;font-weight:600;color:#475569;background:#ffffffd9;padding:0 5px;border-radius:4px;white-space:nowrap}
.apl-guide{position:absolute;display:none;background:#e11d74}
.apl-guide.is-on{display:block}
.apl-guide-v{left:50%;top:-6px;bottom:-6px;width:1px;transform:translateX(-.5px)}
.apl-guide-h{top:50%;left:-6px;right:-6px;height:1px}
.apl-guide-t{top:0;left:-6px;right:-6px;height:1px}
/* Peça escura (ilustração ou foto de cor escura): contornos claros. */
.ap-dark-garment .apl-print:not(.has-art),.shb-stage.is-dark .apl-print:not(.has-art){border-color:#ffffffd9;color:#fff}
.ap-dark-garment .apl-zone,.shb-stage.is-dark .apl-zone{border-color:#ffffffa6}
@media (prefers-reduced-motion:reduce){.apl-print{transition:none}}

/* Ferramentas do local escolhido (página do produto e montador). */
.apl-tools{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid var(--ap-line,#e5e5e9);border-radius:14px;background:var(--ap-soft,#f5f5f7)}
.apl-tools-head{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--ap-muted,#6e6e73);line-height:1.4}
.apl-tools-head svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--ap-accent,var(--brand,#2563eb))}
.apl-tools-head b{color:var(--ap-text,#1d1d1f);font-weight:600}
.apl-pos-text{font-size:12.5px;color:var(--ap-text,#1d1d1f);font-weight:600}
.apl-btns{display:flex;flex-wrap:wrap;gap:6px}
.apl-btn{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:5px 11px;border:1px solid var(--ap-line,#e5e5e9);border-radius:999px;background:var(--ap-bg,#fff);color:var(--ap-text,#1d1d1f);font:inherit;font-size:12.5px;font-weight:550;cursor:pointer}
.apl-btn:hover{border-color:var(--ap-accent,var(--brand,#2563eb))}
.apl-btn[disabled]{opacity:.45;cursor:default}
.apl-btn svg{width:14px;height:14px}
.apl-range{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:12.5px;color:var(--ap-text,#1d1d1f)}
.apl-range input[type=range]{width:100%;min-width:0;accent-color:var(--ap-accent,var(--brand,#2563eb))}
.apl-range output{min-width:44px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ap-muted,#6e6e73)}
.apl-warn{display:flex;gap:7px;align-items:flex-start;margin:0;padding:8px 10px;border-radius:10px;background:#fef3c7;color:#92400e;font-size:12.5px;line-height:1.4}
.apl-warn svg{width:15px;height:15px;flex:none;margin-top:1px}
.apl-note{margin:0;font-size:12px;color:var(--ap-muted,#6e6e73)}
.dark .apl-tools{background:var(--ap-soft)}
@media (max-width:420px){.apl-range{grid-template-columns:1fr auto}.apl-range>span{grid-column:1/-1}}

/* Arte do cliente na página do produto (mesmo visual do montador, prefixo próprio). */
.apl-art-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.apl-art-upload{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border:1.5px dashed color-mix(in srgb,var(--ap-accent,var(--brand,#2563eb)) 60%,transparent);border-radius:12px;background:var(--ap-bg,#fff);color:var(--ap-accent,var(--brand,#2563eb));font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.apl-art-upload svg{width:18px;height:18px}
.apl-art-upload:hover{background:color-mix(in srgb,var(--ap-accent,var(--brand,#2563eb)) 7%,var(--ap-bg,#fff))}
.apl-art-box small{display:block;width:100%;font-size:11.5px;color:var(--ap-muted,#6e6e73)}
.apl-art-box.is-required small b{color:var(--ap-warn,#b45309)}
.apl-art-done{display:flex;align-items:center;gap:10px;width:100%}
.apl-art-thumb{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--ap-line,#e5e5e9);background:#fff repeating-conic-gradient(#f1f5f9 0 25%,#fff 0 50%) 0 0/12px 12px;overflow:hidden;color:#94a3b8}
.apl-art-thumb img{width:100%;height:100%;object-fit:contain}
.apl-art-thumb svg{width:22px;height:22px}
.apl-art-info{min-width:0;flex:1}
.apl-art-info b{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apl-art-info small{font-size:11.5px;color:var(--ap-muted,#6e6e73)}
.apl-art-actions{display:flex;gap:10px}
.apl-link{border:0;background:none;padding:4px 0;font:inherit;font-size:12.5px;font-weight:600;color:var(--ap-accent,var(--brand,#2563eb));cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.apl-link.is-danger{color:var(--ap-danger,#b42318)}
.apl-art-busy{width:100%;display:grid;gap:6px;font-size:12.5px;font-weight:600}
.apl-art-bar{height:6px;border-radius:99px;background:var(--ap-line,#e5e5e9);overflow:hidden}
.apl-art-bar i{display:block;height:100%;background:var(--ap-accent,var(--brand,#2563eb));transition:width .2s}

/* Estampa sem arte: hachurado na cor da loja (a página do produto já tem o seu em .ap-print-preview). */
.apl-print:not(.has-art):not(.ap-print-preview){background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--apl-accent,var(--ap-accent,var(--brand,#2563eb))) 20%,transparent) 0 6px,color-mix(in srgb,var(--apl-accent,var(--ap-accent,var(--brand,#2563eb))) 9%,transparent) 6px 12px)}
.apl-print.is-dimmed{opacity:.3}
.apl-print.is-dimmed .apl-label{display:none}
/* Montador: a peça mostra alças e etiquetas fora do recorte enquanto se ajusta a estampa. */
.shb-stage.is-editing{overflow:visible}
.shb-stage.is-editing>svg,.shb-stage.is-editing>img{border-radius:14px}
.shb-mark{--apl-accent:var(--brand,#2563eb)}
.shb-area .apl-tools{margin-top:10px}
.ap-art-pending{color:var(--ap-warn,#b45309);font-weight:600}
