*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#fff;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;color:#222;-webkit-user-select:none;user-select:none}button{font-family:inherit}img{-webkit-user-drag:none}.bracelet-designer[data-v-3418dad2]{width:100%;height:100vh;background:#fff;overflow:hidden;position:relative;display:flex;flex-direction:column}.design-summary-fixed[data-v-3418dad2]{position:fixed;top:8px;left:8px;z-index:1000;display:flex;align-items:center;gap:6px}.summary-pill[data-v-3418dad2],.total-price-fixed[data-v-3418dad2],.help-btn-fixed[data-v-3418dad2]{background:#eee;color:#000;padding:4px 8px;border-radius:12px;display:flex;align-items:center;gap:3px;font-size:12px;border:none}.summary-pill[data-v-3418dad2]{cursor:pointer}.wrist-status[data-v-3418dad2]{margin-left:4px;font-size:11px;color:#ef4444}.wrist-status.info[data-v-3418dad2]{color:#2563eb}.wrist-status.warn[data-v-3418dad2]{color:#ef4444}.price-label[data-v-3418dad2]{color:#333}.price-value[data-v-3418dad2]{font-weight:600}.help-btn-fixed[data-v-3418dad2]{position:fixed;top:10px;right:10px;z-index:1000;min-height:20px;padding:2px 8px;cursor:pointer}.sound-toggle-fixed[data-v-3418dad2]{position:fixed;top:44px;right:12px;width:28px;height:28px;border:1px solid rgba(148,163,184,.22);border-radius:50%;background:#ffffffbd;color:#1f2937ad;display:flex;align-items:center;justify-content:center;z-index:1000;box-shadow:0 2px 8px #0f172a14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sound-toggle-fixed.muted[data-v-3418dad2]{opacity:.7}.sound-toggle-svg[data-v-3418dad2]{width:14px;height:14px}.preview-section[data-v-3418dad2]{height:calc(100vh - var(--materials-panel-collapsed-height) - 48px);width:100%;flex:none;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:none;background:#fff;overflow:hidden;position:relative}.preview-stage[data-v-3418dad2]{position:relative;width:min(100vw,440px);height:min(48vh,440px)}.bracelet-preview[data-v-3418dad2]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform}.bracelet-ring[data-v-3418dad2]{position:relative;width:100%;height:100%}.rope-circle[data-v-3418dad2]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:2.5px solid rgba(210,210,210,.75);box-sizing:border-box;pointer-events:none;z-index:0;transition:width .62s cubic-bezier(.22,1,.36,1),height .62s cubic-bezier(.22,1,.36,1)}.center-logo[data-v-3418dad2]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none;width:84px}.center-logo img[data-v-3418dad2]{width:100%;height:auto;display:block;opacity:.95}.bead-item[data-v-3418dad2]{position:absolute;top:50%;left:50%;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:grab;overflow:hidden;border:none;touch-action:none;transform-origin:center center;box-shadow:var(--bead-shadow, 6px 6px 14px rgba(0, 0, 0, .28));transform:translate(-50%,-50%) translate(var(--bead-x),var(--bead-y)) rotate(var(--bead-rotation));transition:transform .62s cubic-bezier(.22,1,.36,1),width .62s cubic-bezier(.22,1,.36,1),height .62s cubic-bezier(.22,1,.36,1),opacity .35s ease,box-shadow .3s ease;will-change:transform}.bead-item.no-transition[data-v-3418dad2]{transition:none!important}.bead-item.bead-accessory[data-v-3418dad2]{background:transparent;box-shadow:none;border-radius:4px;overflow:visible;filter:drop-shadow(var(--bead-shadow, 6px 6px 14px rgba(0, 0, 0, .28)))}.bead-item.dragging[data-v-3418dad2]{cursor:grabbing;z-index:250!important;transition:none!important}.bead-item.removing[data-v-3418dad2]{opacity:0;transform:translate(-50%,-50%) translate(var(--bead-x),var(--bead-y)) rotate(var(--bead-rotation)) scale(.15)!important}.bead-item.bead-fly-in[data-v-3418dad2]{animation:beadFlyIn-3418dad2 .72s cubic-bezier(.18,.78,.24,1)}@keyframes beadFlyIn-3418dad2{0%{opacity:0;transform:translate(-50%,-50%) translateY(160px) rotate(0) scale(.35)}55%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) translate(var(--bead-x),var(--bead-y)) rotate(var(--bead-rotation)) scale(1)}}.bead-item img[data-v-3418dad2],.bead-color-fallback[data-v-3418dad2]{width:100%;height:100%;object-fit:cover;border-radius:50%;pointer-events:none}.bead-item.bead-accessory img[data-v-3418dad2]{border-radius:0;object-fit:contain}.bead-highlight-dot[data-v-3418dad2]{position:absolute;width:18%;height:12%;border-radius:50%;background:#ffffff8c;top:22%;left:28%;pointer-events:none}.canvas-actions[data-v-3418dad2]{position:fixed;left:0;right:0;bottom:var(--materials-panel-height);z-index:130;display:flex;justify-content:space-between;align-items:center;padding:8px 12px 10px;pointer-events:none;background:linear-gradient(180deg,#fff0,#fff 70%);transition:bottom .28s ease}.actions-left[data-v-3418dad2],.actions-right[data-v-3418dad2]{display:flex;gap:8px;align-items:center;pointer-events:auto}.action-icon-btn[data-v-3418dad2],.action-pill[data-v-3418dad2]{height:32px;border-radius:16px;border:1px solid #e2e2e2;background:#fffffff5;color:#222;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:600;padding:0 10px;box-shadow:0 1px 3px #0f172a0d}.action-icon-btn[data-v-3418dad2]{width:32px;padding:0;border-radius:50%}.action-icon-btn[data-v-3418dad2]:disabled{opacity:.35}.materials-panel-backdrop[data-v-3418dad2]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:linear-gradient(180deg,#0f172a00,#0f172a29 52%,#0f172a3d);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.materials-section-bottom[data-v-3418dad2]{height:var(--materials-panel-height);width:100%;position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;border-radius:24px 24px 0 0;border-top:1px solid #e0e0e0;box-shadow:0 -8px 24px #0f172a0f;display:flex;flex-direction:column;overflow:hidden;transition:height .28s ease}.materials-panel-toggle-pill[data-v-3418dad2]{width:100%;height:14px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0}.materials-panel-toggle-pill-bar[data-v-3418dad2]{width:52px;height:3px;border-radius:999px;background:#e2e3e7}.type-toolbar[data-v-3418dad2]{display:flex;align-items:center;gap:8px;padding:0 12px 8px;flex-shrink:0}.type-tabs[data-v-3418dad2]{display:flex;gap:8px;flex:1;min-width:0}.type-tab[data-v-3418dad2]{padding:6px 16px;border:1px solid #e0e0e0;background:#f9f9f9;border-radius:16px;font-size:14px;color:#999;flex-shrink:0}.type-tab.active[data-v-3418dad2]{background:#fff;color:#000}.materials-filter-trigger[data-v-3418dad2]{position:relative;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:7px 12px;border:1px solid #e4e4e7;border-radius:16px;background:#f7f7f8;color:#6b7280;font-size:13px;font-weight:500}.materials-filter-trigger-icon[data-v-3418dad2]{width:16px;height:16px;display:inline-flex}.materials-filter-trigger-icon svg[data-v-3418dad2]{width:100%;height:100%}.materials-filter-trigger-count[data-v-3418dad2]{color:#9ca3af;font-size:12px}.materials-body[data-v-3418dad2]{flex:1;min-height:0;display:flex}.category-sidebar[data-v-3418dad2]{width:72px;background:#f9f9f9;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;flex-shrink:0}.category-list[data-v-3418dad2]{flex:1;overflow-y:auto;padding-bottom:24px;-webkit-overflow-scrolling:touch}.category-item[data-v-3418dad2]{width:100%;border:none;background:transparent;padding:14px 8px;font-size:13px;color:#666;text-align:center;position:relative}.category-item.active[data-v-3418dad2]{color:#111;font-weight:700;background:#fff}.category-item.active[data-v-3418dad2]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;border-radius:0 3px 3px 0;background:#f59e0b}.materials-container[data-v-3418dad2]{flex:1;min-width:0;overflow:auto;padding:8px 10px 18px;-webkit-overflow-scrolling:touch}.materials-grid[data-v-3418dad2]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.material-card[data-v-3418dad2]{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;padding:0;text-align:left;display:flex;flex-direction:column;transition:transform .2s ease}.material-card.pressing[data-v-3418dad2]:not(.disabled){transform:scale(.97)}.material-card.disabled[data-v-3418dad2]{opacity:.5}.material-image[data-v-3418dad2]{position:relative;aspect-ratio:1;background:#fafafa;display:flex;align-items:center;justify-content:center}.material-image img[data-v-3418dad2]{width:78%;height:78%;object-fit:contain}.material-used-badge[data-v-3418dad2]{position:absolute;top:5px;right:5px;background:#505050c7;color:#fff;border-radius:999px;font-size:10px;padding:1px 6px}.material-info[data-v-3418dad2]{padding:6px 8px 8px}.material-name[data-v-3418dad2]{font-size:12px;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-meta[data-v-3418dad2]{margin-top:4px;display:flex;justify-content:space-between;font-size:11px;color:#999}.material-meta .price[data-v-3418dad2]{color:#333;font-weight:600}.material-request-empty[data-v-3418dad2]{padding:36px 12px;text-align:center}.material-request-empty-title[data-v-3418dad2]{color:#888;font-size:14px}.material-request-empty-btn[data-v-3418dad2]{margin-top:12px;border:none;background:#1f2937;color:#fff;border-radius:999px;padding:8px 14px;font-size:13px}.materials-filter-overlay[data-v-3418dad2]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:2000;display:flex;align-items:flex-end}.materials-filter-sheet[data-v-3418dad2]{width:100%;max-height:86vh;background:#fff;border-radius:20px 20px 0 0;display:flex;flex-direction:column;overflow:hidden}.materials-filter-sheet-header[data-v-3418dad2]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 0}.materials-filter-sheet-title[data-v-3418dad2]{font-size:17px;font-weight:700}.materials-filter-sheet-subtitle[data-v-3418dad2]{margin-top:4px;font-size:12px;color:#8b8b8b}.materials-filter-sheet-close[data-v-3418dad2]{width:28px;height:28px;border:none;border-radius:50%;background:#f1f1f1;font-size:18px;line-height:1;color:#666}.materials-filter-sheet-body[data-v-3418dad2]{flex:1;overflow:auto;padding:12px 16px 8px}.materials-filter-search-panel[data-v-3418dad2]{display:flex;align-items:center;gap:8px;background:#f3f3f4;border-radius:999px;padding:10px 14px}.materials-filter-search-input[data-v-3418dad2]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.materials-filter-group[data-v-3418dad2]{margin-top:16px}.materials-filter-group-title[data-v-3418dad2]{font-size:14px;font-weight:700;color:#333;margin-bottom:10px}.materials-filter-chip-list[data-v-3418dad2]{display:flex;flex-wrap:wrap;gap:8px}.materials-filter-chip[data-v-3418dad2]{border:1px solid #e5e5e5;background:#fff;border-radius:999px;padding:7px 14px;font-size:13px;color:#555}.materials-filter-chip.round[data-v-3418dad2]{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.materials-filter-chip.active[data-v-3418dad2]{background:#111827;border-color:#111827;color:#fff}.materials-filter-color-grid[data-v-3418dad2]{display:flex;flex-wrap:wrap;gap:8px}.materials-filter-chip-color[data-v-3418dad2]{width:44px;height:32px;border-radius:999px;border:1px solid #e5e5e5;background:#fff;display:inline-flex;align-items:center;justify-content:center}.materials-filter-chip-color.active[data-v-3418dad2]{border-color:#111827;box-shadow:inset 0 0 0 1px #111827}.materials-filter-color-dot[data-v-3418dad2]{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.08)}.materials-filter-sheet-footer[data-v-3418dad2]{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #f0f0f0}.materials-filter-footer-btn[data-v-3418dad2]{flex:1;height:44px;border-radius:12px;border:none;background:#f1f1f1;color:#222;font-size:15px;font-weight:600}.materials-filter-footer-btn.primary[data-v-3418dad2]{flex:1.4;background:#1f2937;color:#fff}.dialog-overlay[data-v-3418dad2]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:2100;display:flex;align-items:center;justify-content:center;padding:24px}.dialog-card[data-v-3418dad2]{width:min(320px,100%);background:#fff;border-radius:16px;padding:20px;text-align:center}.dialog-title[data-v-3418dad2]{font-size:15px;font-weight:600}.dialog-desc[data-v-3418dad2]{margin-top:8px;font-size:13px;color:#777}.dialog-actions[data-v-3418dad2]{margin-top:16px;display:flex;gap:10px}.dialog-btn[data-v-3418dad2]{margin-top:16px;width:100%;height:40px;border:none;border-radius:12px;background:#1f2937;color:#fff;font-size:14px}.dialog-actions .dialog-btn[data-v-3418dad2]{margin-top:0}.dialog-btn.ghost[data-v-3418dad2]{background:#f3f3f3;color:#333}.toast[data-v-3418dad2]{position:fixed;left:50%;bottom:calc(var(--materials-panel-height) + 56px);transform:translate(-50%);z-index:3000;background:#000000c7;color:#fff;padding:10px 14px;border-radius:10px;font-size:13px;max-width:80vw}.fullscreen-loading[data-v-3418dad2]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:#f9f9f9c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-init-loading-card[data-v-3418dad2]{width:min(360px,100%);padding:22px 20px;border-radius:22px;background:#ffffffe0;box-shadow:0 16px 40px #0f172a1f}.preview-init-loading-title[data-v-3418dad2]{text-align:center;font-size:15px;font-weight:600;color:#3f3f46}.loading-progress-meta[data-v-3418dad2]{margin-top:6px;display:flex;justify-content:space-between;color:#71717a;font-size:12px}.preview-init-loading-track[data-v-3418dad2]{margin-top:14px;height:8px;border-radius:999px;overflow:hidden;background:#71717a2e}.preview-init-loading-bar[data-v-3418dad2]{height:100%;border-radius:inherit;background:linear-gradient(90deg,#d4d4d8,#a1a1aa);transition:width .2s ease}.completing-bar[data-v-3418dad2]{width:72%;animation:completingPulse-3418dad2 1.1s ease-in-out infinite alternate}@keyframes completingPulse-3418dad2{0%{width:38%;opacity:.75}to{width:92%;opacity:1}}
