.issue-modal-overlay[data-v-c74886fc]{position:fixed;inset:0;background:#141e2880;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);backdrop-filter:blur(2px)}.issue-modal[data-v-c74886fc]{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:0}header[data-v-c74886fc]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border)}header h2[data-v-c74886fc]{margin:0;font-size:1.1rem}.icon-btn[data-v-c74886fc]{border:none;background:transparent;font-size:1.2rem;cursor:pointer;color:var(--text-muted);padding:.25rem .5rem}.icon-btn[data-v-c74886fc]:hover{color:var(--text)}form[data-v-c74886fc]{padding:var(--space-4) var(--space-6);display:grid;gap:var(--space-4)}form label[data-v-c74886fc]{display:grid;gap:var(--space-1);font-size:.9rem;color:var(--text-muted)}form label>input[data-v-c74886fc],form label>textarea[data-v-c74886fc]{font-size:1rem}textarea[data-v-c74886fc]{resize:vertical;min-height:100px;font-family:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius)}textarea[data-v-c74886fc]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5dc5c32e}.attachments[data-v-c74886fc]{display:grid;gap:var(--space-3)}.attach-section[data-v-c74886fc]{padding:var(--space-3);background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.attach-head[data-v-c74886fc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.attach-head strong[data-v-c74886fc]{font-size:.9rem}.small[data-v-c74886fc]{padding:.3rem .7rem;font-size:.8rem}.file-pick[data-v-c74886fc]{cursor:pointer;display:inline-flex;align-items:center}.preview-img[data-v-c74886fc]{width:100%;max-height:200px;object-fit:contain;background:#fff;border:1px solid var(--border);border-radius:3px;display:block}.error[data-v-c74886fc]{margin:0;padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius);font-size:.9rem}footer[data-v-c74886fc]{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.issue-fab-wrap[data-v-3a1c36c0]{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:100;display:flex;align-items:center;gap:var(--space-2)}.issue-fab[data-v-3a1c36c0]{width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #141e282e;transition:transform .18s,background .18s,box-shadow .18s;flex-shrink:0}.issue-fab-wrap:hover .issue-fab[data-v-3a1c36c0],.issue-fab[data-v-3a1c36c0]:focus-visible{background:var(--brand-dark);transform:scale(1.08);box-shadow:0 6px 24px #3fa3a16b}.issue-fab-label[data-v-3a1c36c0]{background:var(--bg-card);color:var(--text);padding:8px 14px;border-radius:99px;font-size:.85rem;font-weight:500;box-shadow:0 4px 16px #141e281f;border:1px solid var(--border);white-space:nowrap;opacity:0;transform:translate(8px);pointer-events:none;transition:opacity .18s,transform .18s}.issue-fab-wrap:hover .issue-fab-label[data-v-3a1c36c0],.issue-fab:focus-visible+.issue-fab-label[data-v-3a1c36c0]{opacity:1;transform:translate(0)}.toast[data-v-3a1c36c0]{position:fixed;bottom:calc(var(--space-6) + 64px);right:var(--space-6);background:var(--bg-card);padding:var(--space-3) var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--border);z-index:100;font-size:.9rem}.login-shell[data-v-2e6108a3]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:linear-gradient(135deg,var(--brand-soft) 0%,var(--bg) 70%)}.login-card[data-v-2e6108a3]{width:100%;max-width:380px;padding:var(--space-8)}.logo[data-v-2e6108a3]{display:block;width:180px;height:auto;margin:0 auto var(--space-6)}h1[data-v-2e6108a3]{text-align:center;margin-bottom:var(--space-1)}.muted[data-v-2e6108a3]{text-align:center;margin:0 0 var(--space-6);font-size:.9rem}.form[data-v-2e6108a3]{display:grid;gap:var(--space-3)}.form label[data-v-2e6108a3]{display:grid;gap:var(--space-1);font-size:.9rem;color:var(--text-muted)}.form button[data-v-2e6108a3]{margin-top:var(--space-2);padding:var(--space-3)}.error[data-v-2e6108a3]{margin:0;padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius);font-size:.9rem}.topbar[data-v-01f6bfc0]{background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar-inner[data-v-01f6bfc0]{max-width:1280px;margin:0 auto;padding:var(--space-3) var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.brand img[data-v-01f6bfc0]{height:28px;display:block}.user-menu[data-v-01f6bfc0]{display:flex;align-items:center;gap:var(--space-2);font-size:.9rem}.tenant[data-v-01f6bfc0]{font-weight:500}.email[data-v-01f6bfc0],.dot[data-v-01f6bfc0]{color:var(--text-muted)}.logout[data-v-01f6bfc0]{padding:.4rem .8rem;font-size:.85rem}.nav-link[data-v-01f6bfc0]{display:inline-flex;align-items:center;gap:4px;color:var(--text);text-decoration:none;padding:.3rem .6rem;border-radius:var(--radius)}.nav-link[data-v-01f6bfc0]:hover{background:var(--brand-soft);color:var(--brand-dark);text-decoration:none}.app-shell[data-v-6b30f550]{min-height:100vh}.container[data-v-6b30f550]{max-width:1280px;margin:0 auto;padding:var(--space-6)}.page-head[data-v-6b30f550]{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6)}.page-head h1[data-v-6b30f550]{margin:0;font-size:1.75rem}.page-head .muted[data-v-6b30f550]{margin:var(--space-1) 0 0}.big[data-v-6b30f550]{padding:var(--space-3) var(--space-4);font-size:1rem}.toolbar[data-v-6b30f550]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.filters[data-v-6b30f550]{display:flex;gap:var(--space-1);flex-wrap:wrap}.filter-pill[data-v-6b30f550]{border:1px solid transparent;background:transparent;padding:.35rem .75rem;font-size:.85rem;font-weight:500;border-radius:99px;color:var(--text-muted)}.filter-pill[data-v-6b30f550]:hover{background:var(--bg);color:var(--text)}.filter-pill.active[data-v-6b30f550]{background:var(--brand-soft);color:var(--brand-dark);border-color:#3fa3a14d}.filter-pill .count[data-v-6b30f550]{display:inline-block;margin-left:.35rem;padding:0 .4rem;font-size:.75rem;background:#0000000f;border-radius:99px}.filter-pill.active .count[data-v-6b30f550]{background:#3fa3a12e}.search[data-v-6b30f550]{max-width:260px;padding:.4rem .75rem;font-size:.9rem}.toolbar-right[data-v-6b30f550]{display:flex;gap:var(--space-2);align-items:center}.view-toggle[data-v-6b30f550]{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.view-toggle button[data-v-6b30f550]{border:none;border-radius:0;padding:.35rem .55rem;background:var(--bg-card);color:var(--text-muted);display:flex;align-items:center}.view-toggle button[data-v-6b30f550]:hover{color:var(--text);background:var(--bg)}.view-toggle button.active[data-v-6b30f550]{background:var(--brand-soft);color:var(--brand-dark)}.spin-grid[data-v-6b30f550]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.spin-card[data-v-6b30f550]{display:block;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .12s,transform .12s}.spin-card[data-v-6b30f550]:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow-md)}.card-thumb[data-v-6b30f550]{width:100%;aspect-ratio:1;background:#1f2326;overflow:hidden}.card-thumb img[data-v-6b30f550]{width:100%;height:100%;object-fit:cover;display:block}.card-thumb .thumb-placeholder[data-v-6b30f550]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.card-preview-btn[data-v-6b30f550],.thumb-preview-btn[data-v-6b30f550]{position:absolute;bottom:6px;right:6px;padding:4px 10px;font-size:.78rem;font-weight:600;background:#000000c7;color:#fff;border:0;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .12s,background .12s}.card-thumb[data-v-6b30f550],.dashboard-thumb[data-v-6b30f550]{position:relative}.spin-card:hover .card-preview-btn[data-v-6b30f550],.dashboard-thumb:hover .thumb-preview-btn[data-v-6b30f550]{opacity:1}.card-preview-btn[data-v-6b30f550]:hover,.thumb-preview-btn[data-v-6b30f550]:hover{background:var(--brand)}.thumb-preview-btn[data-v-6b30f550]{padding:2px 8px;font-size:.72rem;bottom:4px;right:4px}.preview-overlay[data-v-6b30f550]{position:fixed;inset:0;background:#000000b3;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.preview-modal[data-v-6b30f550]{background:var(--bg-card);border-radius:8px;max-width:900px;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 48px #0006}.preview-head[data-v-6b30f550]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.preview-actions[data-v-6b30f550]{display:flex;gap:var(--space-2);align-items:center}.btn-secondary[data-v-6b30f550]{padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);text-decoration:none;white-space:nowrap}.btn-secondary[data-v-6b30f550]:hover{border-color:var(--brand);color:var(--brand-dark)}.preview-iframe[data-v-6b30f550]{flex:1;min-height:0;width:100%;border:0;background:#1a1a1a}.card-body[data-v-6b30f550]{padding:var(--space-2) var(--space-3)}.card-title[data-v-6b30f550]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);font-weight:500;font-size:.95rem}.card-title span[data-v-6b30f550]:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spins-card[data-v-6b30f550]{padding:0;overflow:hidden}.spins-table[data-v-6b30f550]{width:100%;border-collapse:collapse}.spins-table th[data-v-6b30f550]{text-align:left;font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:var(--space-3) var(--space-4);background:var(--bg);border-bottom:1px solid var(--border)}.spins-table td[data-v-6b30f550]{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:.95rem}.spins-table tbody tr[data-v-6b30f550]{cursor:pointer;transition:background .12s}.spins-table tbody tr[data-v-6b30f550]:hover{background:var(--brand-soft)}.thumb-cell[data-v-6b30f550]{width:64px;padding-right:0!important}.dashboard-thumb[data-v-6b30f550]{width:56px;height:56px;border-radius:var(--radius);overflow:hidden;background:#1f2326;border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.dashboard-thumb img[data-v-6b30f550]{width:100%;height:100%;object-fit:cover;display:block}.thumb-placeholder[data-v-6b30f550]{color:var(--text-muted);font-size:.8rem}.spins-table tbody tr:last-child td[data-v-6b30f550]{border-bottom:none}.slug-link[data-v-6b30f550]{font-weight:500;color:var(--text)}.slug-link[data-v-6b30f550]:hover{color:var(--brand-dark);text-decoration:none}.small[data-v-6b30f550]{font-size:.8rem;margin-top:2px}.empty[data-v-6b30f550]{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-muted)}.empty p[data-v-6b30f550]{margin-bottom:var(--space-4)}.error[data-v-6b30f550]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius)}.row-progress[data-v-6b30f550]{display:flex;align-items:center;gap:var(--space-2);margin-top:4px;min-width:120px}.row-progress-bar[data-v-6b30f550]{flex:1;min-width:60px;max-width:120px;height:4px;background:var(--bg);border-radius:99px;overflow:hidden}.row-progress-fill[data-v-6b30f550]{height:100%;background:var(--brand);transition:width .4s ease-out}.row-progress-label[data-v-6b30f550]{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.bulk-bar[data-v-6b30f550]{position:sticky;top:var(--space-2);z-index:10;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--brand-soft);border:1px solid rgba(63,163,161,.3);flex-wrap:wrap}.bulk-bar-info[data-v-6b30f550]{display:flex;flex-direction:column;gap:var(--space-1)}.bulk-bar-actions[data-v-6b30f550]{display:flex;gap:var(--space-2);align-items:center}.bulk-errors[data-v-6b30f550]{margin:var(--space-1) 0 0;padding-left:var(--space-4);list-style:disc;color:var(--danger);font-size:.8rem;max-height:6em;overflow-y:auto}.bulk-bar-enter-active[data-v-6b30f550],.bulk-bar-leave-active[data-v-6b30f550]{transition:opacity .15s,transform .15s}.bulk-bar-enter-from[data-v-6b30f550],.bulk-bar-leave-to[data-v-6b30f550]{opacity:0;transform:translateY(-4px)}.select-cell[data-v-6b30f550]{width:32px;padding-right:0!important;text-align:center}.select-cell input[type=checkbox][data-v-6b30f550]{cursor:pointer;accent-color:var(--brand);width:16px;height:16px;margin:0}.card-select[data-v-6b30f550]{position:absolute;top:6px;left:6px;width:22px;height:22px;background:#0009;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s,background .12s;cursor:pointer;z-index:2}.card-select input[type=checkbox][data-v-6b30f550]{margin:0;width:14px;height:14px;accent-color:var(--brand);cursor:pointer}.spin-card:hover .card-select[data-v-6b30f550],.card-select.visible[data-v-6b30f550]{opacity:1}.spin-card.is-selected[data-v-6b30f550]{border-color:var(--brand);box-shadow:0 0 0 2px #3fa3a14d}.spin-card.is-selected .card-select[data-v-6b30f550]{background:var(--brand)}.spin-preview[data-v-da143848]{display:grid;gap:var(--space-3);outline:none}.canvas[data-v-da143848]{position:relative;aspect-ratio:4 / 3;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;touch-action:none;user-select:none;cursor:grab}.canvas[data-v-da143848]:active{cursor:grabbing}.canvas img[data-v-da143848]{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.empty[data-v-da143848]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.overlay-hint[data-v-da143848]{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#0000008c;color:#fff;padding:4px 10px;border-radius:99px;font-size:.75rem;pointer-events:none}.controls[data-v-da143848]{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.controls button[data-v-da143848]{font-size:1.1rem;padding:var(--space-1) var(--space-3)}.counter[data-v-da143848]{font-family:ui-monospace,monospace;font-size:.95rem;min-width:6ch;text-align:center}.small[data-v-da143848]{font-size:.8rem;margin:0;text-align:center}.app-shell[data-v-360e48c3]{min-height:100vh}.container[data-v-360e48c3]{max-width:980px;margin:0 auto;padding:var(--space-6)}.page-head[data-v-360e48c3]{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6)}.page-head h1[data-v-360e48c3]{margin:0;font-size:1.75rem}.page-head .muted[data-v-360e48c3]{margin:var(--space-1) 0 0}.big[data-v-360e48c3]{padding:var(--space-3) var(--space-6);font-size:1rem}.dropzone[data-v-360e48c3]{background:var(--bg-card);border:2px dashed var(--border-strong);border-radius:var(--radius);padding:var(--space-12) var(--space-6);text-align:center;margin-bottom:var(--space-6);transition:all .15s}.dropzone.active[data-v-360e48c3]{border-color:var(--brand);background:var(--brand-soft)}.dropzone.has[data-v-360e48c3]{padding:var(--space-6)}.dropzone-icon[data-v-360e48c3]{color:var(--brand);margin-bottom:var(--space-3);display:flex;justify-content:center}.dropzone.has .dropzone-icon svg[data-v-360e48c3]{width:32px;height:32px}.dropzone-text[data-v-360e48c3]{font-size:1.1rem;margin:0 0 var(--space-3)}.file-input-label[data-v-360e48c3]{display:inline-block;padding:var(--space-2) var(--space-6);background:var(--brand);color:#fff;border-radius:var(--radius);cursor:pointer;font-weight:500;transition:background .15s}.file-input-label[data-v-360e48c3]:hover{background:var(--brand-dark)}.file-input-label input[data-v-360e48c3]{display:none}.small[data-v-360e48c3]{font-size:.85rem;margin:var(--space-3) 0 0}.status-msg[data-v-360e48c3]{margin:var(--space-4) 0;font-size:.95rem}.error[data-v-360e48c3]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius);margin-bottom:var(--space-4)}.review[data-v-360e48c3]{display:grid;gap:var(--space-4)}.meta label[data-v-360e48c3]{display:grid;gap:var(--space-1);margin-top:var(--space-3);font-size:.9rem;color:var(--text-muted)}.meta input[data-v-360e48c3]{font-size:1.05rem}.advanced-toggle[data-v-360e48c3]{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:.85rem;color:var(--text-muted);cursor:pointer}.advanced-toggle input[type=checkbox][data-v-360e48c3]{margin:0;cursor:pointer}.counts[data-v-360e48c3]{display:flex;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.count-item[data-v-360e48c3]{display:flex;flex-direction:column;align-items:center;flex:1}.count-num[data-v-360e48c3]{font-size:1.75rem;font-weight:600;color:var(--brand-dark)}.count-label[data-v-360e48c3]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.thumb-grid[data-v-360e48c3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-2);margin-top:var(--space-3)}.thumb-wrap[data-v-360e48c3]{position:relative;aspect-ratio:1;background:var(--bg);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:border-color .12s}.thumb-wrap.kind-extra[data-v-360e48c3]{border-style:dashed;border-color:var(--text-muted)}.thumb-wrap.kind-extra .thumb-img[data-v-360e48c3]{opacity:.7}.thumb-img[data-v-360e48c3]{width:100%;height:100%;object-fit:cover;display:block}.thumb-label[data-v-360e48c3]{position:absolute;top:4px;left:4px;background:#0009;color:#fff;padding:1px 6px;border-radius:99px;font-size:.7rem;font-weight:500}.thumb-wrap.kind-extra .thumb-label[data-v-360e48c3]{background:#7e4ca4d9}.thumb-reclassify[data-v-360e48c3]{position:absolute;bottom:4px;left:50%;transform:translate(-50%);padding:3px 10px;font-size:.7rem;font-weight:600;background:#000000c7;color:#fff;border:0;border-radius:4px;cursor:pointer;opacity:0;white-space:nowrap;transition:opacity .12s,background .12s}.thumb-wrap:hover .thumb-reclassify[data-v-360e48c3]{opacity:1}.thumb-reclassify[data-v-360e48c3]:hover{background:var(--brand)}.thumb-add-extra[data-v-360e48c3]{bottom:30px}.thumb-add-extra[data-v-360e48c3]:hover{background:#5a3e8a}.dup-badge[data-v-360e48c3]{position:absolute;top:4px;right:4px;background:#5a3e8ad9;color:#fff;padding:1px 6px;border-radius:99px;font-size:.65rem;font-weight:600;pointer-events:none}.thumb-wrap.kind-dup[data-v-360e48c3]{border-color:#9b6cd8}.thumb-star[data-v-360e48c3]{position:absolute;top:4px;right:4px;background:#0000008c;color:#fff;border:0;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .12s,background .12s}.thumb-star[data-v-360e48c3]:hover{opacity:1}.thumb-star.active[data-v-360e48c3]{background:var(--brand);opacity:1}.metadata-grid[data-v-360e48c3]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-top:var(--space-3)}.metadata-grid label[data-v-360e48c3]{margin-top:0}@media (max-width: 600px){.metadata-grid[data-v-360e48c3]{grid-template-columns:1fr}}.default-frame-action[data-v-360e48c3]{margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.actions[data-v-360e48c3]{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.progress-bar[data-v-360e48c3]{height:8px;background:var(--bg);border-radius:99px;overflow:hidden;margin-top:var(--space-2)}.progress-fill[data-v-360e48c3]{height:100%;background:var(--brand);transition:width .2s}.crop-panel[data-v-da84b867]{display:grid;gap:8px}.ratio-grid[data-v-da84b867]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.ratio-grid button[data-v-da84b867]{padding:6px 8px;font-size:.8rem;background:var(--bg-card);border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.ratio-grid button[data-v-da84b867]:hover{border-color:var(--brand);color:var(--brand-dark)}.ratio-grid button.active[data-v-da84b867]{background:var(--brand);color:#fff;border-color:var(--brand)}.ratio-grid button.off[data-v-da84b867]{font-size:.76rem;color:var(--text-muted)}.ratio-grid button.off.active[data-v-da84b867]{background:var(--bg);color:var(--text);border-color:var(--border)}.crop-hint[data-v-da84b867]{margin:0;font-size:.76rem}.mask-overlay[data-v-54cf3ac1]{position:fixed;inset:0;background:#000000a6;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.mask-modal[data-v-54cf3ac1]{background:var(--bg-card);border-radius:8px;max-width:1200px;width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 48px #0006}.mask-head[data-v-54cf3ac1]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.mask-head strong[data-v-54cf3ac1]{font-size:1rem}.mask-canvas-area[data-v-54cf3ac1]{flex:1;min-height:0;background:#2a2a2a;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-3)}.mask-canvas-wrap[data-v-54cf3ac1]{position:relative;max-width:100%;max-height:100%}.mask-img[data-v-54cf3ac1],.mask-canvas[data-v-54cf3ac1]{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.mask-canvas[data-v-54cf3ac1]{cursor:crosshair;touch-action:none;pointer-events:auto}.mask-img[data-v-54cf3ac1]{user-select:none}.mask-controls[data-v-54cf3ac1]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);flex-wrap:wrap}.brush-size[data-v-54cf3ac1]{display:flex;align-items:center;gap:var(--space-2);font-size:.84rem}.brush-size>span[data-v-54cf3ac1]:first-child{color:var(--text-muted)}.brush-size input[data-v-54cf3ac1]{width:200px}.brush-num[data-v-54cf3ac1]{font-family:ui-monospace,monospace;font-size:.82rem;color:var(--text-muted);min-width:56px}.mask-actions[data-v-54cf3ac1]{display:flex;gap:var(--space-2)}.mask-error[data-v-54cf3ac1]{margin:0;padding:var(--space-2) var(--space-4);background:#fde8e8;color:#a33;font-size:.85rem;border-top:1px solid #f8c7c7}.app-shell[data-v-dabef341]{min-height:100vh}.editor-container[data-v-dabef341]{max-width:none;margin:0;padding:var(--space-3) var(--space-4)}.mask-edit-btn[data-v-dabef341]{margin-top:var(--space-2);display:inline-flex;align-items:center;gap:6px}.beta-pill[data-v-dabef341]{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:1px 5px;border-radius:3px;background:#fbb030;color:#4a3000}.head-actions[data-v-dabef341]{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.head-render[data-v-dabef341]{padding:8px 16px;font-size:.9rem;font-weight:600;white-space:nowrap}.head-render-next[data-v-dabef341]{padding:8px 14px;font-size:.84rem;font-weight:500;background:var(--bg-card);border:1px solid var(--brand);color:var(--brand-dark);border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background .12s}.head-render-next[data-v-dabef341]:hover:not(:disabled){background:var(--brand-soft)}.head-render-next[data-v-dabef341]:disabled{opacity:.45;cursor:not-allowed}.head-progress[data-v-dabef341]{display:flex;align-items:center;gap:var(--space-2);min-width:160px}.head-progress-bar[data-v-dabef341]{flex:1;height:6px;background:var(--bg);border-radius:99px;overflow:hidden;min-width:80px}.head-progress-fill[data-v-dabef341]{height:100%;background:linear-gradient(to right,var(--brand-dark),var(--brand));transition:width .4s ease}.head-progress-pct[data-v-dabef341]{font-family:ui-monospace,monospace;font-size:.78rem;color:var(--text-muted);min-width:40px;text-align:right}.poll-error[data-v-dabef341]{font-size:.78rem;color:var(--danger, #c0392b);background:#c0392b14;padding:2px 8px;border-radius:var(--radius, 4px);border:1px solid rgba(192,57,43,.3)}@media (max-width: 880px){.head-render-next[data-v-dabef341]{display:none}.head-progress[data-v-dabef341]{min-width:100px}}.page-head[data-v-dabef341]{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.head-meta[data-v-dabef341]{display:flex;align-items:center;gap:var(--space-3)}.slug[data-v-dabef341]{font-size:1.1rem;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px}.slug[data-v-dabef341]:hover{background:var(--bg)}.slug-edit[data-v-dabef341]{display:inline-flex;gap:var(--space-1);align-items:center}.slug-edit input[data-v-dabef341]{width:220px;padding:.2rem .4rem;font-size:1rem}.small[data-v-dabef341]{font-size:.85rem}.big[data-v-dabef341]{padding:var(--space-3);font-size:1rem;width:100%}.editor-grid[data-v-dabef341]{display:grid;grid-template-columns:minmax(0,1fr) 640px 280px;gap:var(--space-3);align-items:start}.editor-grid>.controls[data-v-dabef341],.editor-grid>.metadata-side[data-v-dabef341]{position:sticky;top:var(--space-3);max-height:calc(100vh - var(--space-3) * 2);overflow-y:auto}@media (max-width: 1440px){.editor-grid[data-v-dabef341]{grid-template-columns:minmax(0,1fr) 580px 260px}}@media (max-width: 1280px){.editor-grid[data-v-dabef341]{grid-template-columns:minmax(0,1fr) 520px}.metadata-side[data-v-dabef341]{grid-column:1 / -1}}@media (max-width: 920px){.editor-grid[data-v-dabef341]{grid-template-columns:1fr}}.preview-col[data-v-dabef341]{display:grid;gap:var(--space-2)}.thumbs-strip[data-v-dabef341]{padding:var(--space-2) var(--space-3);display:grid;gap:var(--space-2)}.strip-section[data-v-dabef341]{display:grid;gap:4px}.strip-label[data-v-dabef341]{font-size:.78rem;color:var(--text-muted);font-weight:500}.strip-label .muted[data-v-dabef341]{font-weight:400}.strip-nav[data-v-dabef341]{display:grid;grid-template-columns:32px 1fr 32px;gap:4px;align-items:stretch}.strip-arrow[data-v-dabef341]{border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius);font-size:1.4rem;font-weight:600;cursor:pointer;color:var(--text-muted);padding:0;line-height:1;transition:all .12s}.strip-arrow[data-v-dabef341]:hover{background:var(--brand-soft);color:var(--brand-dark);border-color:var(--brand)}.strip-arrow[data-v-dabef341]:active{transform:scale(.94)}.strip-scroll[data-v-dabef341]{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px;scrollbar-color:var(--brand) var(--bg);scrollbar-width:thin}.strip-scroll[data-v-dabef341]::-webkit-scrollbar{height:8px}.strip-scroll[data-v-dabef341]::-webkit-scrollbar-track{background:var(--bg);border-radius:99px}.strip-scroll[data-v-dabef341]::-webkit-scrollbar-thumb{background:var(--brand);border-radius:99px}.strip-scroll[data-v-dabef341]::-webkit-scrollbar-thumb:hover{background:var(--brand-dark)}.strip-thumb[data-v-dabef341]{flex:0 0 auto;position:relative;width:56px;height:56px;padding:0;border:2px solid var(--border);border-radius:var(--radius);background:#1f2326;cursor:pointer;overflow:hidden;scroll-snap-align:start;transition:border-color .12s,transform .12s}.strip-thumb[data-v-dabef341]:hover{border-color:var(--border-strong)}.strip-thumb.active[data-v-dabef341]{border-color:var(--brand);transform:scale(1.04);box-shadow:0 0 0 1px var(--brand)}.strip-thumb img[data-v-dabef341]{width:100%;height:100%;object-fit:cover;display:block}.strip-thumb.extra[data-v-dabef341]{border-style:dashed}.strip-tag[data-v-dabef341]{position:absolute;bottom:1px;left:1px;font-size:.62rem;background:#000000a6;color:#fff;padding:0 4px;border-radius:2px;font-family:ui-monospace,monospace}.strip-dot[data-v-dabef341]{position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:#c084fc;box-shadow:0 0 0 1px #fff}.strip-thumb-wrap[data-v-dabef341]{position:relative;flex:0 0 auto;display:inline-block}.strip-thumb.is-default[data-v-dabef341]{border-color:#f7b500;box-shadow:0 0 0 1px #f7b500}.strip-star[data-v-dabef341]{position:absolute;top:1px;right:1px;color:#f7b500;font-size:.85rem;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.6)}.strip-set-default[data-v-dabef341]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg-card);font-size:.7rem;line-height:1;cursor:pointer;color:#f7b500;opacity:0;transition:opacity .12s}.strip-thumb-wrap:hover .strip-set-default[data-v-dabef341],.strip-thumb.is-default+.strip-set-default[data-v-dabef341]{opacity:1}.strip-reclassify[data-v-dabef341]{position:absolute;bottom:2px;left:50%;transform:translate(-50%);padding:2px 6px;font-size:.65rem;font-weight:600;background:#000000bf;color:#fff;border:0;border-radius:3px;cursor:pointer;opacity:0;transition:opacity .12s,background .12s;white-space:nowrap;pointer-events:auto}.strip-copy[data-v-dabef341],.strip-edit[data-v-dabef341]{bottom:21px}.strip-retouch[data-v-dabef341]{bottom:21px;text-decoration:none;background:#7b61ffe6;line-height:1}.strip-edit[data-v-dabef341]:hover{background:#7c4ea8}.strip-thumb-wrap:hover .strip-reclassify[data-v-dabef341]{opacity:1}.strip-thumb-wrap:hover .strip-thumb img[data-v-dabef341]{filter:brightness(.55)}.strip-thumb img[data-v-dabef341]{transition:filter .12s}.strip-reclassify[data-v-dabef341]:hover{background:var(--brand);color:#fff}.presets-row[data-v-dabef341]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.preset-chip[data-v-dabef341]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border);border-radius:99px;background:var(--bg);font-size:.78rem;cursor:pointer;transition:all .12s}.preset-chip[data-v-dabef341]:hover{border-color:var(--brand);background:var(--brand-soft)}.preset-chip.active[data-v-dabef341]{background:var(--brand);color:#fff;border-color:var(--brand)}.preset-emoji[data-v-dabef341]{font-size:.95rem;line-height:1}.preset-name[data-v-dabef341]{font-weight:500}.preset-chip.custom[data-v-dabef341]{border-style:dashed}.preset-del[data-v-dabef341]{margin-left:4px;padding:0;width:14px;height:14px;border-radius:50%;background:transparent;border:none;color:inherit;opacity:0;font-size:.7rem;line-height:1;cursor:pointer}.preset-chip.custom:hover .preset-del[data-v-dabef341]{opacity:.7}.preset-del[data-v-dabef341]:hover{opacity:1!important;background:#0000002e}.preset-add[data-v-dabef341],.preset-avg[data-v-dabef341]{border-style:dashed;color:var(--brand-dark)}.preset-avg[data-v-dabef341]:hover{background:var(--brand-soft)}.avg-modal-overlay[data-v-dabef341]{position:fixed;inset:0;background:#0000006b;display:flex;align-items:center;justify-content:center;z-index:1000}.avg-modal[data-v-dabef341]{background:var(--bg-card);border-radius:var(--radius);max-width:640px;width:90vw;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 12px 60px #0000004d}.avg-modal-head[data-v-dabef341],.avg-modal-foot[data-v-dabef341]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.avg-modal-foot[data-v-dabef341]{border-bottom:0;border-top:1px solid var(--border);gap:var(--space-2)}.avg-modal-body[data-v-dabef341]{padding:var(--space-4);overflow-y:auto;flex:1}.avg-stats[data-v-dabef341]{margin-top:var(--space-3)}.avg-table[data-v-dabef341]{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:var(--space-1)}.avg-table th[data-v-dabef341],.avg-table td[data-v-dabef341]{padding:4px 8px;text-align:left;border-bottom:1px solid var(--border)}.avg-table th[data-v-dabef341]{font-weight:500;color:var(--text-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.preset-save[data-v-dabef341]{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px dashed var(--brand);border-radius:99px;background:var(--brand-soft)}.preset-save-emoji[data-v-dabef341]{width:36px;text-align:center;padding:2px;font-size:.85rem}.preset-save-name[data-v-dabef341]{width:160px;padding:2px 6px;font-size:.78rem}.preset-save .small[data-v-dabef341]{padding:2px 8px;font-size:.72rem}.controls-grid[data-v-dabef341]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.ctrl-col[data-v-dabef341]{display:grid;align-content:start;gap:2px}@media (max-width: 720px){.controls-grid[data-v-dabef341]{grid-template-columns:1fr}}.ctrl-h[data-v-dabef341]{display:flex;align-items:center;gap:6px;margin:8px 0 2px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.ctrl-h[data-v-dabef341]:first-child{margin-top:0}.ctrl-h .muted[data-v-dabef341]{text-transform:none;letter-spacing:0;font-weight:400}.ctrl-badge[data-v-dabef341]{font-family:ui-monospace,monospace;font-size:.72rem;padding:0 6px;background:var(--brand-soft);color:var(--brand-dark);border-radius:99px;text-transform:none;letter-spacing:0}.slider-row.tight[data-v-dabef341]{display:grid;grid-template-columns:90px 1fr;gap:8px;align-items:center;font-size:.8rem;margin:0}.slider-row.tight>span[data-v-dabef341]{display:flex;justify-content:space-between;gap:4px}.slider-row.tight em[data-v-dabef341]{font-family:ui-monospace,monospace;font-size:.75rem}.slider-row.tight input[type=range][data-v-dabef341]{width:100%}.orient-row[data-v-dabef341]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.orient-row .flip-btn[data-v-dabef341]{font-size:1rem}.metadata-side[data-v-dabef341]{padding:var(--space-2) var(--space-3)}.controls[data-v-dabef341]{padding:var(--space-3);transition:background .15s,border-color .15s,box-shadow .15s}.controls.controls-image[data-v-dabef341]{background:#faf6fd;border:1px solid #d9c4eb;box-shadow:inset 4px 0 #9b6cc4}.controls.controls-image h3[data-v-dabef341]{color:#5e3a82}.image-section[data-v-dabef341]{margin-bottom:var(--space-4)}.image-section[data-v-dabef341]:last-child{margin-bottom:0}.image-list h3[data-v-dabef341]{margin:0 0 var(--space-1);display:flex;align-items:baseline;gap:var(--space-1)}.image-list h3 .muted[data-v-dabef341]{font-weight:400;font-size:.8rem}.section-hint[data-v-dabef341]{margin:0 0 var(--space-2);font-size:.75rem}.thumb-grid[data-v-dabef341]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);padding-right:var(--space-1)}.thumb-btn[data-v-dabef341]{position:relative;padding:0 0 100%;border:2px solid var(--border);border-radius:var(--radius);background:#1f2326;cursor:pointer;overflow:hidden;transition:border-color .12s,transform .12s}.thumb-btn[data-v-dabef341]:hover{border-color:var(--border-strong)}.thumb-btn.active[data-v-dabef341]{border-color:var(--brand);box-shadow:0 0 0 2px #5dc5c359}.thumb-btn img[data-v-dabef341]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.thumb-tag[data-v-dabef341]{position:absolute;bottom:3px;left:3px;font-family:ui-monospace,monospace;font-size:.65rem;font-weight:600;padding:.05rem .3rem;border-radius:3px;color:#fff;background:#000000a6}.thumb-tag.kind-extra[data-v-dabef341]{background:#7e4ca4d9}.thumb-dot[data-v-dabef341]{position:absolute;top:5px;right:5px;width:9px;height:9px;background:#d99520;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #0003}.preview[data-v-dabef341]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);padding-bottom:calc(var(--space-3) * 2);display:flex;align-items:flex-start;justify-content:center;min-height:60vh;position:relative;overflow:visible}.preview-wrap[data-v-dabef341]{position:relative;display:block;width:100%;max-width:100%;user-select:none;overflow:visible;background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%),linear-gradient(-45deg,#d0d0d0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d0d0d0 75%),linear-gradient(-45deg,transparent 75%,#d0d0d0 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:#f5f5f5}.preview-wrap>img[data-v-dabef341]{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain}.preview-shader-canvas[data-v-dabef341]{display:block;width:100%;height:auto;max-height:78vh}.webgl-note[data-v-dabef341]{font-size:.8rem;line-height:1.4;padding:.5rem .6rem;border-radius:6px;background:#fff7e6;border:1px solid #f0d27a}.webgl-note.muted[data-v-dabef341]{background:#f4f4f5;border-color:#e0e0e3;color:#555}.webgl-status[data-v-dabef341]{font-size:.72rem;color:#888;margin:0}.webgl-status.ok[data-v-dabef341]{color:#2f8f4e}.webgl-renderer[data-v-dabef341]{opacity:.7}.bg-loading-overlay[data-v-dabef341]{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);z-index:10;pointer-events:none}.bg-loading-pill[data-v-dabef341]{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:#141414d1;color:#fff;border-radius:99px;font-size:.8rem;box-shadow:0 4px 14px #00000038;backdrop-filter:blur(6px)}.bg-loading-pill .muted[data-v-dabef341]{color:#ffffffb3;font-weight:400}.bg-loading-spinner[data-v-dabef341]{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:#fffffff2;animation:bg-spin-dabef341 .8s linear infinite}@keyframes bg-spin-dabef341{to{transform:rotate(360deg)}}.cmp-mode[data-v-dabef341]{cursor:default}.cmp-original[data-v-dabef341]{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.cmp-divider[data-v-dabef341]{position:absolute;top:0;bottom:0;width:2px;background:var(--brand);box-shadow:0 0 6px #00000073;transform:translate(-1px);z-index:5;pointer-events:none}.cmp-handle[data-v-dabef341]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;cursor:ew-resize;pointer-events:auto;box-shadow:0 2px 6px #0000004d;font-size:.9rem;touch-action:none;user-select:none}.cmp-tag[data-v-dabef341]{position:absolute;top:12px;background:#000000a6;color:#fff;padding:2px 8px;font-size:.72rem;border-radius:99px;pointer-events:none}.cmp-tag-left[data-v-dabef341]{right:12px}.cmp-tag-right[data-v-dabef341]{left:12px}.mode-action.active[data-v-dabef341]{background:var(--brand);color:#fff;border-color:var(--brand)}.crop-overlay[data-v-dabef341]{position:absolute;inset:0;pointer-events:none;z-index:6}.crop-mask[data-v-dabef341]{position:absolute;background:#00000073;pointer-events:none}.crop-box[data-v-dabef341]{position:absolute;border:1.5px solid var(--brand);box-shadow:0 0 0 1px #0006;cursor:grab;pointer-events:auto;touch-action:none}.crop-box[data-v-dabef341]:active{cursor:grabbing}.crop-handle[data-v-dabef341]{position:absolute;width:14px;height:14px;background:var(--brand);border:2px solid white;border-radius:50%;pointer-events:auto;touch-action:none}.orient-grid[data-v-dabef341]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1);margin-bottom:var(--space-2)}.orient-rotate[data-v-dabef341]{padding:6px 0;font-size:.8rem;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer}.orient-rotate[data-v-dabef341]:hover{background:var(--brand-soft)}.orient-rotate.active[data-v-dabef341]{background:var(--brand);color:#fff;border-color:var(--brand)}.orient-flip[data-v-dabef341]{display:grid;gap:4px;margin-bottom:var(--space-3)}.flip-toggle[data-v-dabef341]{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;user-select:none}.sharpen-slider[data-v-dabef341]{width:100%}.slider-row[data-v-dabef341]{display:grid;grid-template-columns:1fr;gap:2px;margin-bottom:var(--space-1);font-size:.82rem}.slider-row>span[data-v-dabef341]{display:flex;justify-content:space-between}.slider-row em[data-v-dabef341]{font-style:normal;font-family:ui-monospace,monospace;font-size:.78rem}.slider-row input[type=range][data-v-dabef341]{width:100%}.ctrl-reset[data-v-dabef341]{margin-left:var(--space-1);padding:1px 6px;font-size:.75rem;background:transparent;border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--text-muted)}.ctrl-reset[data-v-dabef341]:hover{color:var(--text);border-color:var(--border-strong)}.mode-toolbar[data-v-dabef341]{display:flex;gap:4px;margin-top:6px;align-items:center}.toolbar-btn[data-v-dabef341]{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:28px;padding:0 6px;font-size:.78rem;line-height:1;background:#ffffff8c;border:1px solid currentColor;border-radius:4px;color:inherit;cursor:pointer;opacity:.78;transition:opacity .12s,background .12s}.toolbar-btn[data-v-dabef341]:hover:not(:disabled){opacity:1;background:#ffffffd9}.toolbar-btn[data-v-dabef341]:disabled{opacity:.32;cursor:not-allowed}.toolbar-btn.active[data-v-dabef341]{opacity:1;background:var(--brand);color:#fff;border-color:var(--brand)}.toolbar-btn-text[data-v-dabef341]{padding:0 8px;flex:0 1 auto}.render-actions[data-v-dabef341]{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:var(--space-2)}.render-btn-next[data-v-dabef341]{padding:var(--space-3);font-size:.9rem;background:var(--bg);border:1px solid var(--brand);color:var(--brand-dark);border-radius:var(--radius);cursor:pointer;transition:background .15s}.render-btn-next[data-v-dabef341]:hover:not(:disabled){background:var(--brand-soft)}.render-btn-next[data-v-dabef341]:disabled{opacity:.5;cursor:not-allowed}.crop-handle.tl[data-v-dabef341]{top:-7px;left:-7px;cursor:nwse-resize}.crop-handle.tr[data-v-dabef341]{top:-7px;right:-7px;cursor:nesw-resize}.crop-handle.bl[data-v-dabef341]{bottom:-7px;left:-7px;cursor:nesw-resize}.crop-handle.br[data-v-dabef341]{bottom:-7px;right:-7px;cursor:nwse-resize}.preview img[data-v-dabef341]{max-width:100%;max-height:78vh;object-fit:contain;display:block}.preview[data-v-dabef341]{min-height:50vh}@keyframes spin-dabef341{to{transform:rotate(360deg)}}.publish-grid[data-v-dabef341]{margin-top:var(--space-4);display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,1fr) minmax(180px,.6fr);gap:var(--space-3);align-items:start}.publish-grid .metadata-card[data-v-dabef341],.publish-grid .viewer-preview[data-v-dabef341],.publish-grid .embed-card[data-v-dabef341],.publish-grid .danger-zone[data-v-dabef341]{margin-top:0}.controls h3[data-v-dabef341]{margin-top:var(--space-2);font-size:.9rem}.controls h3[data-v-dabef341]:first-child{margin-top:0}.metadata-side h3[data-v-dabef341]{font-size:.9rem}.mode-banner[data-v-dabef341]{padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3);border:1px solid transparent}.mode-banner strong[data-v-dabef341]{display:block;margin-bottom:var(--space-1)}.mode-banner p[data-v-dabef341]{margin:0}.mode-spin[data-v-dabef341]{background:var(--brand-soft);border-color:#3fa3a14d;color:var(--brand-dark)}.mode-image[data-v-dabef341]{background:#f3eef7;border-color:#d9c4eb;color:#5e3a82}.mode-action[data-v-dabef341]{margin-top:var(--space-2);font-size:.75rem;padding:.3rem .6rem}.save-area[data-v-dabef341]{margin-top:var(--space-3);display:grid;gap:var(--space-2)}.render-btn[data-v-dabef341]{margin-top:var(--space-2)}.render-progress[data-v-dabef341]{margin-top:var(--space-3);padding:var(--space-3);background:var(--brand-soft);border-radius:var(--radius);font-size:.9rem;color:var(--brand-dark);display:grid;gap:var(--space-2)}.render-row[data-v-dabef341]{display:flex;align-items:center;gap:var(--space-2)}.bar[data-v-dabef341]{height:6px;background:#fff9;border-radius:99px;overflow:hidden}.bar-fill[data-v-dabef341]{height:100%;background:var(--brand);transition:width .3s}.go-next[data-v-dabef341]{display:inline-block;text-align:center;text-decoration:none;padding:var(--space-2) var(--space-3);font-weight:500;margin-top:var(--space-1)}.go-next[data-v-dabef341]:hover{text-decoration:none}.no-wait[data-v-dabef341]{margin:0}.reset-render[data-v-dabef341]{margin-top:var(--space-1);background:transparent;border:1px dashed var(--brand-dark);color:var(--brand-dark);font-size:.75rem;padding:.2rem .5rem;align-self:flex-start;cursor:pointer}.reset-render[data-v-dabef341]:hover{background:#ffffff80}.reset-render[data-v-dabef341]:disabled{opacity:.6;cursor:wait}.small-spinner[data-v-dabef341]{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin-dabef341 .8s linear infinite;display:inline-block}.render-done[data-v-dabef341]{margin-top:var(--space-3);padding:var(--space-3);background:#e6f7ee;border-radius:var(--radius)}.render-warnings[data-v-dabef341]{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff4e1;border:1px solid #f0d59a;color:#8a6420;border-radius:var(--radius)}.render-warnings ul[data-v-dabef341]{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.render-warnings li[data-v-dabef341]{word-break:break-word}.render-done p[data-v-dabef341]{margin:0 0 var(--space-1)}.note[data-v-dabef341]{margin-top:var(--space-3)}.autosave-status[data-v-dabef341]{margin:var(--space-1) 0 0;min-height:1.1em;font-size:.8rem}.metadata-card[data-v-dabef341]{margin-top:0;padding:var(--space-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.metadata-card h3[data-v-dabef341]{margin:0 0 var(--space-2)}.meta-toggle[data-v-dabef341]{display:flex;align-items:baseline;gap:var(--space-2);width:100%;padding:0;background:none;border:0;text-align:left;cursor:pointer;color:inherit}.meta-toggle:hover .meta-chev[data-v-dabef341]{color:var(--brand)}.meta-toggle .meta-label[data-v-dabef341]{font-weight:600;font-size:.95rem}.meta-toggle .meta-summary[data-v-dabef341]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-toggle .meta-chev[data-v-dabef341]{font-size:.8rem;color:var(--text-muted);margin-left:auto}.bg-h3[data-v-dabef341]{margin:var(--space-3) 0 var(--space-2);font-size:.9rem}.bg-fill-row[data-v-dabef341]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-2)}.bg-fill-chip[data-v-dabef341]{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--border);border-radius:99px;background:var(--bg);font-size:.75rem;cursor:pointer}.bg-fill-chip[data-v-dabef341]:hover{border-color:var(--brand)}.bg-fill-chip.active[data-v-dabef341]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-dark)}.bg-fill-swatch[data-v-dabef341]{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}.bg-fill-swatch.transparent[data-v-dabef341]{background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;background-color:#fff}.bg-fill-custom input[type=color][data-v-dabef341]{width:0;height:0;padding:0;border:0;visibility:hidden;position:absolute}.bg-fill-custom[data-v-dabef341]{position:relative}.shadow-toggle[data-v-dabef341]{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:.7rem;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-muted);cursor:pointer}.shadow-toggle input[data-v-dabef341]{margin:0}.shadow-controls[data-v-dabef341]{display:grid;gap:4px;margin-bottom:var(--space-2)}.shadow-style-row[data-v-dabef341]{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}.shadow-style-btn[data-v-dabef341]{padding:5px 8px;font-size:.78rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer}.shadow-style-btn[data-v-dabef341]:hover{border-color:var(--brand)}.shadow-style-btn.active[data-v-dabef341]{background:var(--brand);color:#fff;border-color:var(--brand)}.reflection-tone-row[data-v-dabef341]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;margin-bottom:6px}.meta-grid[data-v-dabef341]{margin-top:var(--space-2);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.meta-grid label[data-v-dabef341]{display:grid;gap:var(--space-1);font-size:.85rem;color:var(--text-muted)}.meta-full[data-v-dabef341]{grid-column:1 / -1}.meta-grid textarea[data-v-dabef341]{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;resize:vertical}.meta-save[data-v-dabef341]{grid-column:1 / -1}.viewer-preview[data-v-dabef341]{margin-top:0;padding:var(--space-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.viewer-preview h3[data-v-dabef341]{margin:0 0 var(--space-2)}.viewer-iframe[data-v-dabef341]{width:100%;max-height:480px;aspect-ratio:4 / 3;border:0;background:var(--bg-card);border-radius:var(--radius)}.embed-card[data-v-dabef341]{margin-top:0;padding:var(--space-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.embed-card h3[data-v-dabef341]{margin:0 0 var(--space-1)}.embed-code[data-v-dabef341]{width:100%;font-family:ui-monospace,monospace;font-size:.75rem;padding:var(--space-2);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);resize:vertical;margin:var(--space-2) 0;word-break:break-all}.copy-btn[data-v-dabef341]{padding:.4rem .8rem;font-size:.85rem;width:100%}.danger-zone[data-v-dabef341]{margin-top:0;padding:var(--space-3);border:1px solid #fce7e5;background:#fef5f4;border-radius:var(--radius)}.danger-zone h3[data-v-dabef341]{margin:0 0 var(--space-2);color:var(--danger);font-size:.95rem}.danger-zone button.danger[data-v-dabef341]{background:#fff;border-color:var(--danger);color:var(--danger);width:100%}.danger-zone button.danger[data-v-dabef341]:hover{background:var(--danger);color:#fff}.reset-edits-btn[data-v-dabef341]{width:100%;background:#fff;border:1px solid #d9a441;color:#9a6a16}.reset-edits-btn[data-v-dabef341]:hover:not(:disabled){background:#fbf2dd}.reset-edits-hint[data-v-dabef341]{margin:var(--space-1) 0 var(--space-3)}.error[data-v-dabef341]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius)}.preview-inner[data-v-dabef341]{display:flex;flex-direction:column;align-items:stretch;width:100%}.preview-mode-toolbar[data-v-dabef341]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);width:100%}.mode-toggle[data-v-dabef341]{display:inline-flex;background:var(--bg);border-radius:var(--radius);padding:2px;border:1px solid var(--border)}.mode-toggle button[data-v-dabef341]{background:transparent;border:0;padding:4px 12px;cursor:pointer;border-radius:calc(var(--radius) - 2px);font-size:.9rem;color:var(--text-muted)}.mode-toggle button.active[data-v-dabef341]{background:var(--brand);color:#fff}.preview-wrap.rotation-mode[data-v-dabef341]{cursor:grab;touch-action:none;user-select:none}.preview-wrap.rotation-mode[data-v-dabef341]:active{cursor:grabbing}.rotation-controls[data-v-dabef341]{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-2)}.frame-counter[data-v-dabef341]{font-family:ui-monospace,monospace;font-size:.95rem;min-width:6ch;text-align:center}.app-shell[data-v-b9e76c25]{min-height:100vh}.container[data-v-b9e76c25]{max-width:1000px;margin:0 auto;padding:var(--space-6)}.page-head[data-v-b9e76c25]{margin-bottom:var(--space-6)}.page-head h1[data-v-b9e76c25]{margin:0;font-size:1.75rem}.page-head .muted[data-v-b9e76c25]{margin:var(--space-1) 0 0}.toolbar[data-v-b9e76c25]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.filters[data-v-b9e76c25]{display:flex;gap:var(--space-1);flex-wrap:wrap}.filter-pill[data-v-b9e76c25]{border:1px solid transparent;background:transparent;padding:.35rem .75rem;font-size:.85rem;font-weight:500;border-radius:99px;color:var(--text-muted);cursor:pointer}.filter-pill[data-v-b9e76c25]:hover{background:var(--bg);color:var(--text)}.filter-pill.active[data-v-b9e76c25]{background:var(--brand-soft);color:var(--brand-dark);border-color:#3fa3a14d}.filter-pill .count[data-v-b9e76c25]{display:inline-block;margin-left:.35rem;padding:0 .4rem;font-size:.75rem;background:#0000000f;border-radius:99px}.list-card[data-v-b9e76c25]{padding:0;overflow:hidden}.issue-row[data-v-b9e76c25]{display:block;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;transition:background .12s}.issue-row[data-v-b9e76c25]:hover{background:var(--brand-soft);text-decoration:none}.issue-row[data-v-b9e76c25]:last-child{border-bottom:none}.issue-title[data-v-b9e76c25]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);font-weight:500}.issue-meta[data-v-b9e76c25]{margin-top:var(--space-1);font-size:.8rem}.small[data-v-b9e76c25]{font-size:.85rem}.badge-open[data-v-b9e76c25]{background:#fff4e1;color:#b8761f}.badge-in_progress[data-v-b9e76c25]{background:#e7f0fc;color:#1f5cad}.badge-resolved[data-v-b9e76c25]{background:#e6f7ee;color:#1f7a4d}.empty[data-v-b9e76c25]{text-align:center;padding:var(--space-12) var(--space-6)}.error[data-v-b9e76c25]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius)}.app-shell[data-v-3643cc70]{min-height:100vh}.container[data-v-3643cc70]{max-width:880px;margin:0 auto;padding:var(--space-6)}.issue-head[data-v-3643cc70]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4)}.issue-head h1[data-v-3643cc70]{margin:0 0 var(--space-1);cursor:text;padding:2px 4px;border-radius:4px}.issue-head h1[data-v-3643cc70]:hover{background:var(--bg)}.title-block[data-v-3643cc70]{flex:1;min-width:0}.title-row[data-v-3643cc70]{display:flex;align-items:center;gap:var(--space-1)}.title-edit[data-v-3643cc70]{display:flex;gap:var(--space-1);align-items:center;margin-bottom:var(--space-1)}.title-edit input[data-v-3643cc70]{flex:1;padding:.4rem .6rem;font-size:1.4rem;border:1px solid var(--brand);border-radius:var(--radius)}.edit-btn[data-v-3643cc70]{background:transparent;border:none;cursor:pointer;padding:.2rem .4rem;font-size:.9rem;opacity:.4;transition:opacity .12s}.title-row:hover .edit-btn[data-v-3643cc70],.desc-row:hover .edit-btn[data-v-3643cc70]{opacity:1}.desc-row[data-v-3643cc70]{display:flex;align-items:flex-start;gap:var(--space-2)}.desc-row .pre[data-v-3643cc70]{flex:1}.desc-edit[data-v-3643cc70]{display:grid;gap:var(--space-2)}.desc-edit textarea[data-v-3643cc70]{width:100%;font-family:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--brand);border-radius:var(--radius);resize:vertical}.desc-actions[data-v-3643cc70]{display:flex;gap:var(--space-1);justify-content:flex-end}.small[data-v-3643cc70]{font-size:.85rem}.status-pills[data-v-3643cc70]{display:flex;gap:var(--space-1)}.status-pill[data-v-3643cc70]{padding:.4rem .9rem;font-size:.85rem;border-radius:99px;border:1px solid transparent;cursor:pointer;opacity:.5;font-weight:500}.status-pill.active[data-v-3643cc70]{opacity:1}.status-pill[data-v-3643cc70]:hover:not(:disabled):not(.active){opacity:.75}.badge-open[data-v-3643cc70]{background:#fff4e1;color:#b8761f;border-color:#f0d59a}.badge-in_progress[data-v-3643cc70]{background:#e7f0fc;color:#1f5cad;border-color:#b9d2f0}.badge-resolved[data-v-3643cc70]{background:#e6f7ee;color:#1f7a4d;border-color:#a6dbbb}.card[data-v-3643cc70]{margin-bottom:var(--space-4)}.description .meta[data-v-3643cc70]{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.pre[data-v-3643cc70]{white-space:pre-wrap;word-break:break-word;margin:0}code[data-v-3643cc70]{background:var(--bg);padding:.1rem .4rem;border-radius:3px;font-size:.85em;word-break:break-all}.screenshot[data-v-3643cc70]{max-width:100%;border:1px solid var(--border);border-radius:var(--radius);display:block}.comments[data-v-3643cc70]{list-style:none;padding:0;margin:0 0 var(--space-4)}.comments li[data-v-3643cc70]{padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.comments li[data-v-3643cc70]:last-child{border-bottom:none}.comment-head[data-v-3643cc70]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1)}.comment-form[data-v-3643cc70]{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.comment-form textarea[data-v-3643cc70]{width:100%;font-family:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);resize:vertical}.comment-form textarea[data-v-3643cc70]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5dc5c32e}.comment-form button[data-v-3643cc70]{justify-self:end}.error[data-v-3643cc70]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius)}.app-shell[data-v-534a81de]{min-height:100vh}.container[data-v-534a81de]{max-width:1000px;margin:0 auto;padding:var(--space-6)}.page-head[data-v-534a81de]{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-6);gap:var(--space-4)}.page-head h1[data-v-534a81de]{margin:0;font-size:1.75rem}.page-head .muted[data-v-534a81de]{margin:var(--space-1) 0 0}.big[data-v-534a81de]{padding:var(--space-3) var(--space-4);font-size:1rem}.create-form[data-v-534a81de]{margin-bottom:var(--space-4)}.create-form h3[data-v-534a81de]{margin-top:0}.create-form form[data-v-534a81de]{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.create-form label[data-v-534a81de]{display:grid;gap:var(--space-1);font-size:.85rem;color:var(--text-muted)}.list-card[data-v-534a81de]{padding:0;overflow:hidden}.users-table[data-v-534a81de]{width:100%;border-collapse:collapse}.users-table th[data-v-534a81de]{text-align:left;font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:var(--space-3) var(--space-4);background:var(--bg);border-bottom:1px solid var(--border)}.users-table td[data-v-534a81de]{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:.95rem;vertical-align:middle}.users-table tbody tr:last-child td[data-v-534a81de]{border-bottom:none}.edit-row td[data-v-534a81de]{background:var(--brand-soft)}.edit-row input[data-v-534a81de],.edit-row select[data-v-534a81de]{padding:.25rem .5rem;font-size:.9rem}.self-tag[data-v-534a81de]{color:var(--text-muted);font-size:.8rem}.role-badge[data-v-534a81de]{padding:.15rem .5rem;border-radius:99px;font-size:.8rem;font-weight:500}.role-tenant_admin[data-v-534a81de]{background:var(--brand-soft);color:var(--brand-dark)}.role-photographer[data-v-534a81de]{background:#f3eef7;color:#7e4ca4}.actions[data-v-534a81de]{display:flex;gap:var(--space-1)}.small[data-v-534a81de]{padding:.3rem .7rem;font-size:.8rem}.danger[data-v-534a81de]{color:var(--danger);border-color:var(--danger)}.danger[data-v-534a81de]:hover{background:var(--danger);color:#fff}.error[data-v-534a81de]{padding:var(--space-2) var(--space-3);background:#fce7e5;color:var(--danger);border-radius:var(--radius);margin-bottom:var(--space-3)}.app-shell[data-v-14a3dc5d]{min-height:100vh}.container[data-v-14a3dc5d]{max-width:1080px;margin:0 auto;padding:var(--space-4) var(--space-6) var(--space-6)}.page-head[data-v-14a3dc5d]{margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.page-head h1[data-v-14a3dc5d]{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.01em}.page-sub[data-v-14a3dc5d]{margin:6px 0 0;font-size:.88rem;color:var(--text-muted)}.layout[data-v-14a3dc5d]{display:grid;grid-template-columns:184px minmax(0,1fr);gap:var(--space-6);align-items:start}.col-content[data-v-14a3dc5d],.col-stack[data-v-14a3dc5d]{display:grid;gap:var(--space-4);min-width:0}@media (max-width: 880px){.layout[data-v-14a3dc5d]{grid-template-columns:1fr;gap:var(--space-4)}.settings-nav[data-v-14a3dc5d]{position:static!important;max-height:none!important}}.settings-nav[data-v-14a3dc5d]{position:sticky;top:var(--space-4);display:flex;flex-direction:column;gap:1px;padding:6px;max-height:calc(100vh - var(--space-4) * 2);overflow-y:auto}.settings-nav a[data-v-14a3dc5d]{display:block;padding:7px 12px;font-size:.84rem;font-weight:500;color:var(--text-muted);text-decoration:none;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid transparent;transition:background .12s,color .12s,border-color .12s}.settings-nav a[data-v-14a3dc5d]:hover{color:var(--text);background:var(--bg)}.settings-nav a.active[data-v-14a3dc5d]{color:var(--brand-dark);background:var(--brand-soft);border-left-color:var(--brand)}.card[data-v-14a3dc5d]{padding:var(--space-6);scroll-margin-top:var(--space-4)}.card h2[data-v-14a3dc5d]{margin:0 0 var(--space-3);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.section-lead[data-v-14a3dc5d]{margin:0 0 var(--space-4);line-height:1.5}.kv[data-v-14a3dc5d]{display:grid;grid-template-columns:max-content 1fr;gap:10px var(--space-4);font-size:.88rem;align-items:baseline}.kv>span[data-v-14a3dc5d]{color:var(--text-muted);font-size:.82rem}.kv strong[data-v-14a3dc5d]{color:var(--text);font-weight:500;word-break:break-word}.kv code[data-v-14a3dc5d]{background:var(--bg);padding:2px 8px;border-radius:4px;font-size:.8rem;font-family:ui-monospace,monospace}.field[data-v-14a3dc5d]{display:grid;gap:5px;margin-bottom:var(--space-4)}.field[data-v-14a3dc5d]:last-child{margin-bottom:0}.field>span[data-v-14a3dc5d]:first-child{color:var(--text);font-size:.82rem;font-weight:500}.field input[data-v-14a3dc5d],.field select[data-v-14a3dc5d]{font-size:.88rem;padding:9px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;transition:border-color .12s,box-shadow .12s}.field input[data-v-14a3dc5d]:focus,.field select[data-v-14a3dc5d]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field input.invalid[data-v-14a3dc5d]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 15%,transparent)}.hint[data-v-14a3dc5d]{color:var(--text-muted);font-size:.78rem;line-height:1.45}.hint code[data-v-14a3dc5d]{background:var(--bg);padding:1px 5px;border-radius:3px;font-size:.75rem}.text-danger[data-v-14a3dc5d]{color:var(--danger)}.text-success[data-v-14a3dc5d]{color:var(--brand-dark);font-weight:500}.invalid[data-v-14a3dc5d]{border-color:var(--danger)!important}.beta-tag[data-v-14a3dc5d]{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:1px 6px;border-radius:3px;background:#fbb030;color:#4a3000;margin-right:6px;vertical-align:middle}.beta-toggle[data-v-14a3dc5d]{display:flex;align-items:center;gap:8px;font-size:.88rem;cursor:pointer}.beta-toggle input[data-v-14a3dc5d]{width:16px;height:16px;cursor:pointer}.form-row[data-v-14a3dc5d]{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-4)}.form-row .field[data-v-14a3dc5d]{margin-bottom:0}@media (max-width: 640px){.form-row[data-v-14a3dc5d]{grid-template-columns:1fr}}.small[data-v-14a3dc5d]{font-size:.8rem;padding:6px 12px}.btn-secondary[data-v-14a3dc5d]{display:inline-block;padding:6px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);text-decoration:none;font-weight:500;white-space:nowrap;transition:border-color .12s,color .12s,background .12s}.btn-secondary[data-v-14a3dc5d]:hover{border-color:var(--brand);color:var(--brand-dark);background:var(--brand-soft)}.info-note[data-v-14a3dc5d]{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg);border-left:3px solid var(--brand);border-radius:0 6px 6px 0;font-size:.82rem;line-height:1.5;color:var(--text-muted)}.action-bar[data-v-14a3dc5d]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border);flex-wrap:wrap}.action-bar-status[data-v-14a3dc5d]{min-height:1.2em}.action-bar-buttons[data-v-14a3dc5d]{display:flex;gap:var(--space-2)}.usage-summary[data-v-14a3dc5d]{margin-bottom:var(--space-3)}.usage-table[data-v-14a3dc5d]{display:grid;gap:6px}.usage-row[data-v-14a3dc5d]{display:grid;grid-template-columns:1fr 120px 44px;gap:var(--space-3);align-items:center;font-size:.82rem}.usage-label[data-v-14a3dc5d]{color:var(--text)}.usage-bar[data-v-14a3dc5d]{height:6px;background:var(--bg);border-radius:99px;overflow:hidden}.usage-bar-fill[data-v-14a3dc5d]{height:100%;background:linear-gradient(to right,var(--brand-dark),var(--brand));border-radius:99px}.usage-pct[data-v-14a3dc5d]{font-family:ui-monospace,monospace;font-size:.76rem;color:var(--text-muted);text-align:right}.unused-details[data-v-14a3dc5d]{margin-top:var(--space-3)}.unused-list[data-v-14a3dc5d]{margin:var(--space-1) 0 0;padding-left:1.2em}.unused-list li[data-v-14a3dc5d]{margin-bottom:2px}.snippet-tabs[data-v-14a3dc5d]{display:flex;gap:2px;margin-bottom:var(--space-3);border-bottom:1px solid var(--border)}.snippet-tab[data-v-14a3dc5d]{padding:7px 14px;background:transparent;border:0;border-bottom:2px solid transparent;font-size:.8rem;font-weight:500;color:var(--text-muted);cursor:pointer;border-radius:0;transition:color .12s}.snippet-tab[data-v-14a3dc5d]:hover{color:var(--text)}.snippet-tab.active[data-v-14a3dc5d]{color:var(--brand-dark);border-bottom-color:var(--brand)}.snippet-block[data-v-14a3dc5d]{display:grid;gap:var(--space-2)}.snippet-block pre[data-v-14a3dc5d]{margin:0;background:#1d2125;color:#e8eaf0;padding:var(--space-3) var(--space-4);border-radius:6px;font-family:ui-monospace,monospace;font-size:.76rem;line-height:1.55;white-space:pre-wrap;word-break:break-all;overflow-x:auto;max-height:140px}.snippet-block button[data-v-14a3dc5d]{justify-self:start}.empty-hint[data-v-14a3dc5d]{padding:var(--space-4);text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:6px;font-size:.84rem;color:var(--text-muted)}.feed-row[data-v-14a3dc5d]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.feed-row[data-v-14a3dc5d]:last-of-type{border-bottom:0}.feed-label[data-v-14a3dc5d]{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:1}.feed-label strong[data-v-14a3dc5d]{font-size:.84rem;color:var(--text);font-weight:600;min-width:36px}.url-inline[data-v-14a3dc5d]{background:var(--bg);padding:5px 10px;border-radius:4px;font-size:.78rem;font-family:ui-monospace,monospace;color:var(--text-muted);word-break:break-all;flex:1;min-width:0}.feed-actions[data-v-14a3dc5d]{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.feed-detail[data-v-14a3dc5d]{margin:var(--space-4) 0}.feed-detail summary[data-v-14a3dc5d],details>summary[data-v-14a3dc5d]{cursor:pointer;font-size:.84rem;color:var(--brand-dark);font-weight:500;padding:4px 0}.fields-list[data-v-14a3dc5d]{margin:var(--space-2) 0 0;padding-left:1.4em}.fields-list li[data-v-14a3dc5d]{margin-bottom:4px}.fields-list code[data-v-14a3dc5d]{background:var(--bg);padding:1px 6px;border-radius:3px;font-size:.78rem}.feed-preview[data-v-14a3dc5d]{margin-top:var(--space-3)}.json-preview[data-v-14a3dc5d]{margin-top:var(--space-2);background:#1d2125;color:#e8eaf0;padding:var(--space-3);border-radius:6px;font-size:.74rem;line-height:1.5;max-height:220px;overflow:auto;white-space:pre}.origin-list[data-v-14a3dc5d]{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden}.origin-row[data-v-14a3dc5d]{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);background:var(--bg-card)}.origin-meta[data-v-14a3dc5d]{display:flex;flex-direction:column;gap:2px}.origin-meta strong[data-v-14a3dc5d]{font-size:.88rem;color:var(--text);font-weight:600}.origin-meta .small[data-v-14a3dc5d]{font-size:.76rem}.origin-url[data-v-14a3dc5d]{font-size:.8rem;font-family:ui-monospace,monospace;color:var(--text-muted);word-break:break-all}.origin-mode[data-v-14a3dc5d]{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.mode-cdn[data-v-14a3dc5d]{background:var(--brand-soft);color:var(--brand-dark)}.mode-origin[data-v-14a3dc5d]{background:#f3eef7;color:#7e4ca4}.mode-direct[data-v-14a3dc5d]{background:var(--bg);color:var(--text-muted)}@media (max-width: 640px){.origin-row[data-v-14a3dc5d]{grid-template-columns:1fr;gap:6px}}details[data-v-14a3dc5d]{margin-top:var(--space-3)}.steps[data-v-14a3dc5d]{margin:var(--space-2) 0 0 0;padding-left:1.4em}.steps li[data-v-14a3dc5d]{margin-bottom:4px;line-height:1.5}.positions[data-v-14a3dc5d]{margin-top:var(--space-4)}.positions h3[data-v-14a3dc5d],.test-panel h3[data-v-14a3dc5d]{margin:0 0 var(--space-3);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.position-row[data-v-14a3dc5d]{display:grid;grid-template-columns:2rem 10rem 1fr auto;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.position-num[data-v-14a3dc5d]{font-weight:600;color:var(--text-muted)}.position-token[data-v-14a3dc5d]{font-size:.85rem;font-style:italic}.icon-btn[data-v-14a3dc5d]{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:4px 10px;cursor:pointer;border-radius:var(--radius)}.icon-btn[data-v-14a3dc5d]:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.ghost[data-v-14a3dc5d]{margin-top:var(--space-2);background:transparent;border:1px dashed var(--border);color:var(--text-muted);padding:6px 14px;cursor:pointer;border-radius:var(--radius);font-size:.82rem;transition:border-color .12s,color .12s}.ghost[data-v-14a3dc5d]:hover{border-color:var(--brand);color:var(--brand-dark)}.test-panel[data-v-14a3dc5d]{margin-top:var(--space-4);padding:var(--space-3);background:var(--bg);border-radius:var(--radius, 6px)}.test-output[data-v-14a3dc5d]{background:var(--bg-card);padding:var(--space-2);border-radius:var(--radius, 6px);font-size:.85rem;white-space:pre-wrap;font-family:ui-monospace,monospace;margin:0}@media (max-width: 640px){.position-row[data-v-14a3dc5d]{grid-template-columns:2rem 1fr auto}.position-token[data-v-14a3dc5d]{display:none}}.topbar[data-v-89b7c2ba]{display:flex;align-items:center;gap:14px;background:#2b2b30;border-bottom:1px solid #3a3a40;padding:0 10px;font-size:13px}.back[data-v-89b7c2ba]{color:#e8e8ea;background:none;border:1px solid #3a3a40;border-radius:6px;padding:3px 9px;cursor:pointer}.title[data-v-89b7c2ba]{color:#9a9aa2}.nav[data-v-89b7c2ba]{display:flex;align-items:center;gap:4px}.navbtn[data-v-89b7c2ba]{background:#232327;color:#e8e8ea;border:1px solid #3a3a40;border-radius:5px;padding:1px 8px;cursor:pointer;font-size:14px;line-height:1.2}.navbtn[data-v-89b7c2ba]:disabled{opacity:.4;cursor:default}.navpos[data-v-89b7c2ba]{color:#9a9aa2;font-size:12px;min-width:38px;text-align:center}.spacer[data-v-89b7c2ba]{flex:1}.act[data-v-89b7c2ba]{display:flex;align-items:center;gap:6px}.act button[data-v-89b7c2ba]{background:#232327;color:#e8e8ea;border:1px solid #3a3a40;border-radius:6px;padding:4px 9px;font-size:12px;cursor:pointer}.act button[data-v-89b7c2ba]:disabled{opacity:.4;cursor:default}.act .save[data-v-89b7c2ba]{background:#7b61ff;border-color:#7b61ff;font-weight:600}.act .save[data-v-89b7c2ba]:disabled{background:#3a3550;border-color:#3a3550}.options[data-v-6a7b24a9]{display:flex;align-items:center;gap:18px;background:#232327;border-bottom:1px solid #3a3a40;padding:0 14px;font-size:12px;color:#9a9aa2;flex-wrap:wrap}.grp[data-v-6a7b24a9]{display:flex;align-items:center;gap:8px}input[type=range][data-v-6a7b24a9]{width:90px;accent-color:#7b61ff}.val[data-v-6a7b24a9]{color:#e8e8ea;min-width:34px}.hint[data-v-6a7b24a9]{color:#6fcf97}.modes[data-v-6a7b24a9]{gap:2px}.modebtn[data-v-6a7b24a9]{width:26px;height:24px;border:1px solid #3a3a40;background:#1f1f23;color:#c9c9d2;border-radius:5px;cursor:pointer;font-size:13px}.modebtn.on[data-v-6a7b24a9]{background:#7b61ff;border-color:#7b61ff;color:#fff}.colorpick[data-v-6a7b24a9]{gap:7px;padding:2px 8px;border:1px solid #4a4a52;border-radius:6px;background:#1f1f23}.colorpick .color[data-v-6a7b24a9]{width:26px;height:22px;padding:0;border:1px solid #555;border-radius:4px;background:none;cursor:pointer}.colorpick .hex[data-v-6a7b24a9]{color:#e8e8ea;font-variant-numeric:tabular-nums;text-transform:uppercase;font-size:11px}.color[data-v-6a7b24a9]{width:30px;height:22px;padding:0;border:1px solid #3a3a40;border-radius:4px;background:none;cursor:pointer}.action[data-v-6a7b24a9]{background:#7b61ff;color:#fff;border:1px solid #7b61ff;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.action[data-v-6a7b24a9]:hover{background:#6a52e0}.sel-actions[data-v-6a7b24a9]{margin-left:auto;gap:6px}.action.ghost[data-v-6a7b24a9]{background:transparent;color:#c9c9d2;border-color:#4a4a52}.action.ghost[data-v-6a7b24a9]:hover{background:#2f2f36}.rail[data-v-18657dc1]{background:#1f1f23;border-right:1px solid #3a3a40;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0}.rail button[data-v-18657dc1]{width:32px;height:32px;border-radius:7px;border:1px solid transparent;background:none;color:#b6b6c0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.rail button[data-v-18657dc1]:hover:not(:disabled){background:#2c2c33;color:#e8e8ea}.rail button.on[data-v-18657dc1]{background:#7b61ff;color:#fff;border-color:#7b61ff}.rail button.off[data-v-18657dc1]{opacity:.35;cursor:default}.rail .sep[data-v-18657dc1]{width:24px;height:1px;background:#3a3a40;margin:3px 0}.canvaswrap[data-v-ae682243]{background:#54545a;position:relative;overflow:hidden;min-width:0}.canvaswrap.panning[data-v-ae682243]{cursor:grab}canvas[data-v-ae682243]{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.err[data-v-ae682243]{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#b42828d9;color:#fff;padding:6px 14px;border-radius:8px;font-size:13px}.panel[data-v-b1ada2a2]{background:#232327;border-left:1px solid #3a3a40;padding:10px 12px;overflow-y:auto;font-size:12px;color:#c9c9d2}.head[data-v-b1ada2a2]{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#e8e8ea;margin-bottom:8px}.reset[data-v-b1ada2a2]{background:transparent;color:#c9c9d2;border:1px solid #4a4a52;border-radius:5px;padding:2px 8px;font-size:11px;cursor:pointer}.reset[data-v-b1ada2a2]:hover{background:#2f2f36}.sect[data-v-b1ada2a2]{margin-bottom:12px}.sect-title[data-v-b1ada2a2]{color:#9a9aa2;font-size:11px;text-transform:uppercase;letter-spacing:.4px;margin:6px 0 4px}.row[data-v-b1ada2a2]{display:grid;grid-template-columns:58px 1fr 38px;align-items:center;gap:6px;margin:4px 0}.row label[data-v-b1ada2a2]{color:#c9c9d2}.row input[type=range][data-v-b1ada2a2]{width:100%;accent-color:#7b61ff}.row .val[data-v-b1ada2a2]{text-align:right;color:#e8e8ea;font-variant-numeric:tabular-nums}.note[data-v-b1ada2a2]{color:#6a6a72;font-size:10.5px;line-height:1.4;margin-top:10px}.status[data-v-2b82f129]{display:flex;align-items:center;gap:16px;background:#2b2b30;border-top:1px solid #3a3a40;padding:0 12px;font-size:11px;color:#9a9aa2}.status button[data-v-2b82f129]{background:none;border:1px solid #3a3a40;color:#e8e8ea;border-radius:5px;padding:2px 8px;cursor:pointer;font-size:11px}.zoom[data-v-2b82f129]{display:flex;align-items:center;gap:6px}input[type=range][data-v-2b82f129]{width:90px;accent-color:#7b61ff}.right[data-v-2b82f129]{margin-left:auto;display:flex;gap:18px}.filmstrip[data-v-7bbaccc9]{display:flex;gap:6px;align-items:center;background:#1b1b1f;border-top:1px solid #3a3a40;padding:6px 10px;overflow-x:auto}.thumb[data-v-7bbaccc9]{position:relative;flex:0 0 auto;width:78px;height:56px;border-radius:5px;border:2px solid transparent;background:#2a2a30;cursor:pointer;padding:0;overflow:hidden}.thumb img[data-v-7bbaccc9]{width:100%;height:100%;object-fit:contain;display:block}.thumb.on[data-v-7bbaccc9]{border-color:#7b61ff}.thumb .tag[data-v-7bbaccc9]{position:absolute;left:2px;bottom:2px;font-size:10px;background:#0009;color:#fff;padding:0 4px;border-radius:3px}.retouch-app[data-v-a2f76e2b]{height:100vh;display:grid;grid-template-rows:36px 40px 1fr auto 28px;background:#111;color:#e8e8ea;overflow:hidden}.retouch-body[data-v-a2f76e2b]{display:grid;grid-template-columns:44px 1fr 232px;min-height:0}:root{--brand: #5dc5c3;--brand-dark: #3fa3a1;--brand-soft: #e7f6f6;--text: #2a2f33;--text-muted: #6b7480;--border: #dde2e6;--border-strong: #c5ccd2;--bg: #f6f7f9;--bg-card: #ffffff;--danger: #c0392b;--success: #27ae60;--warning: #d99520;--radius: 6px;--shadow-sm: 0 1px 2px rgba(20, 30, 40, .04), 0 1px 3px rgba(20, 30, 40, .06);--shadow-md: 0 2px 8px rgba(20, 30, 40, .06), 0 4px 16px rgba(20, 30, 40, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);min-height:100vh}#app{min-height:100vh}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text);font-weight:600;line-height:1.25}h1{font-size:1.5rem;margin:0 0 var(--space-4)}h2{font-size:1.25rem;margin:0 0 var(--space-3)}h3{font-size:1.05rem;margin:0 0 var(--space-2)}label{font-weight:500;color:var(--text);display:block}input[type=email],input[type=password],input[type=text],input[type=number],textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;background:var(--bg-card);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #5dc5c32e}button{font-family:inherit;font-size:.95rem;font-weight:500;padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled){border-color:var(--brand);color:var(--brand-dark)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);box-shadow:var(--shadow-sm)}.muted{color:var(--text-muted)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:99px;font-size:.8rem;font-weight:500;line-height:1.4}.badge-uploading{background:#fff4e1;color:#b8761f}.badge-editing{background:#e7f0fc;color:#1f5cad}.badge-rendering{background:#e7f6f6;color:#3fa3a1}.badge-ready{background:#e6f7ee;color:#1f7a4d}.badge-failed{background:#fce7e5;color:#a02818}
