@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=DM+Sans:wght@500;700&display=swap";.hero[data-v-12bffce5]{background:linear-gradient(135deg,var(--accent) 0%,#b45800 100%);padding:var(--space-16) var(--space-6);text-align:center;width:100%;box-sizing:border-box;overflow:hidden}.hero-inner[data-v-12bffce5]{max-width:720px;margin:0 auto}.hero-headline[data-v-12bffce5]{font-family:var(--font-heading);font-size:clamp(var(--text-2xl),5vw,var(--text-4xl));color:#fff;margin-bottom:var(--space-4);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.hero-subtitle[data-v-12bffce5]{font-size:var(--text-lg);color:#ffffffe0;line-height:var(--leading-relaxed);margin-bottom:var(--space-8)}.hero-actions[data-v-12bffce5]{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.btn-hero-primary[data-v-12bffce5]{background:#fff;color:var(--accent);padding:var(--space-3) var(--space-8);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-base);text-decoration:none;transition:all var(--transition-fast)}.btn-hero-primary[data-v-12bffce5]:hover{background:#ffffffeb;box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-hero-secondary[data-v-12bffce5]{background:#ffffff26;color:#fff;padding:var(--space-3) var(--space-8);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.4);font-weight:600;font-size:var(--text-base);text-decoration:none;transition:all var(--transition-fast)}.btn-hero-secondary[data-v-12bffce5]:hover{background:#ffffff40;border-color:#fff9;transform:translateY(-1px)}@media(max-width:600px){.hero[data-v-12bffce5]{padding:var(--space-10) var(--space-4)}.hero-actions[data-v-12bffce5]{flex-direction:column;align-items:center}.btn-hero-primary[data-v-12bffce5],.btn-hero-secondary[data-v-12bffce5]{width:100%;max-width:280px;text-align:center}}.featured-section[data-v-ff868a94]{padding:var(--space-8) 0}.featured-header[data-v-ff868a94]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.featured-title[data-v-ff868a94]{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--text-primary)}.nav-buttons[data-v-ff868a94]{display:flex;gap:var(--space-2)}.nav-btn[data-v-ff868a94]{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.nav-btn[data-v-ff868a94]:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--bg-card-hover)}.nav-btn[data-v-ff868a94]:disabled{opacity:.3;cursor:default}.featured-track[data-v-ff868a94]{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-2)}.featured-track[data-v-ff868a94]::-webkit-scrollbar{display:none}.featured-card[data-v-ff868a94]{min-width:260px;max-width:260px;flex-shrink:0;scroll-snap-align:start;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:box-shadow var(--transition-normal),transform var(--transition-normal);cursor:pointer}.featured-card[data-v-ff868a94]:hover{box-shadow:var(--shadow-lg);transform:scale(1.02)}.featured-thumbnail[data-v-ff868a94]{position:relative;width:100%;aspect-ratio:3 / 2;overflow:hidden;background:var(--bg-secondary)}.featured-thumbnail img[data-v-ff868a94]{width:100%;height:100%;object-fit:cover;display:block}.featured-placeholder[data-v-ff868a94]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm)}.featured-overlay[data-v-ff868a94]{position:absolute;bottom:0;left:0;right:0;padding:var(--space-6) var(--space-4) var(--space-3);background:linear-gradient(transparent,#000000b3);display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-2)}.featured-name[data-v-ff868a94]{color:#fff;font-weight:600;font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.featured-likes[data-v-ff868a94]{color:#ffffffd9;font-size:var(--text-sm);display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0}.gallery-filters[data-v-9ccf52a1]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;position:sticky;top:0;z-index:10;background:var(--bg-primary);border-bottom:1px solid var(--border);margin-bottom:var(--space-6)}.filter-tabs[data-v-9ccf52a1]{display:flex;gap:var(--space-1)}.filter-tab[data-v-9ccf52a1]{padding:var(--space-2) var(--space-5);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.filter-tab[data-v-9ccf52a1]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-tab.active[data-v-9ccf52a1]{background:var(--accent);color:var(--text-on-accent)}.filter-sort select[data-v-9ccf52a1]{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer}.filter-sort select[data-v-9ccf52a1]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}@media(max-width:600px){.gallery-filters[data-v-9ccf52a1]{flex-direction:column;align-items:stretch;gap:var(--space-2)}.filter-tabs[data-v-9ccf52a1]{overflow-x:auto;-webkit-overflow-scrolling:touch}.filter-tab[data-v-9ccf52a1]{white-space:nowrap}}.gallery-card[data-v-016bea3f]{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal);cursor:pointer}.gallery-card[data-v-016bea3f]:hover{box-shadow:var(--shadow-card-hover);border-color:var(--border-hover);transform:scale(1.02)}.card-thumbnail[data-v-016bea3f]{width:100%;aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-secondary)}.card-thumbnail img[data-v-016bea3f]{width:100%;height:100%;object-fit:cover;display:block}.card-thumbnail-placeholder[data-v-016bea3f]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm)}.card-body[data-v-016bea3f]{padding:var(--space-3) var(--space-4) var(--space-4)}.card-name[data-v-016bea3f]{font-size:var(--text-base);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:var(--space-2)}.card-meta[data-v-016bea3f]{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.app-badge[data-v-016bea3f]{display:inline-block;font-size:var(--text-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap}.badge-glass[data-v-016bea3f]{background:#0049981a;color:var(--blue)}.badge-fidget[data-v-016bea3f]{background:#6aa84f1a;color:var(--green)}.card-time[data-v-016bea3f]{font-size:var(--text-xs);color:var(--text-tertiary)}.card-footer[data-v-016bea3f]{display:flex;align-items:center}.like-btn[data-v-016bea3f]{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.like-btn[data-v-016bea3f]:hover{color:var(--red);background:#c8102e0f}.like-btn.liked[data-v-016bea3f]{color:var(--red)}.heart-icon[data-v-016bea3f]{flex-shrink:0}.gallery-grid[data-v-7e2e0835]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.gallery-empty[data-v-7e2e0835]{text-align:center;padding:var(--space-16) var(--space-4);color:var(--text-tertiary);font-size:var(--text-lg)}.gallery-loading[data-v-7e2e0835]{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-secondary);font-size:var(--text-sm)}@media(max-width:900px){.gallery-grid[data-v-7e2e0835]{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.gallery-grid[data-v-7e2e0835]{grid-template-columns:1fr}}.content-inner[data-v-9d220bf9]{max-width:1200px;margin:0 auto;padding:0 24px 48px}.gallery-section[data-v-9d220bf9]{padding-bottom:48px}.gallery-heading[data-v-9d220bf9]{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--text-primary);margin-bottom:16px;margin-top:32px}@media(max-width:768px){.content-inner[data-v-9d220bf9]{padding:0 12px 32px}}.search-page[data-v-2fc6057f]{max-width:1200px;margin:0 auto;padding:24px}.search-header[data-v-2fc6057f]{margin-bottom:16px}.search-header h2[data-v-2fc6057f]{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--text-primary)}.search-query[data-v-2fc6057f]{font-size:var(--text-sm);color:var(--text-secondary);margin-top:4px}.search-empty[data-v-2fc6057f]{text-align:center;padding:48px;color:var(--text-tertiary)}.auth-button[data-v-fb176da7]{position:relative}.signin-group[data-v-fb176da7]{display:flex;gap:var(--space-2)}.btn-signin[data-v-fb176da7]{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.btn-signin.github[data-v-fb176da7]{background:#24292e;color:#fff;border-color:#24292e}.user-avatar[data-v-fb176da7]{width:36px;height:36px;border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);border:none;cursor:pointer;font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.user-avatar[data-v-fb176da7]:hover{background:var(--accent-hover)}.user-menu[data-v-fb176da7]{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.user-menu-name[data-v-fb176da7]{display:block;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item[data-v-fb176da7]{display:block;width:100%;padding:var(--space-3) var(--space-4);border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary);text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.user-menu-item[data-v-fb176da7]:hover{background:var(--bg-secondary);color:var(--text-primary)}.history-backdrop[data-v-1b18eb51]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#0000004d}.history-panel[data-v-1b18eb51]{position:fixed;top:52px;right:var(--space-4);z-index:1000;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:320px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.history-header[data-v-1b18eb51]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.history-title[data-v-1b18eb51]{font-weight:700;font-size:var(--text-sm);color:var(--text-primary)}.history-close[data-v-1b18eb51]{background:none;border:none;font-size:18px;color:var(--text-tertiary);cursor:pointer;padding:0;line-height:1}.history-close[data-v-1b18eb51]:hover{color:var(--text-primary)}.history-empty[data-v-1b18eb51]{padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.history-list[data-v-1b18eb51]{overflow-y:auto;padding:var(--space-2)}.history-item[data-v-1b18eb51]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.history-item[data-v-1b18eb51]:hover{background:var(--bg-card-hover)}.history-thumb[data-v-1b18eb51]{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);flex-shrink:0}.history-thumb-empty[data-v-1b18eb51]{background:var(--bg-secondary)}.history-info[data-v-1b18eb51]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.history-name[data-v-1b18eb51]{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-date[data-v-1b18eb51],.history-meta[data-v-1b18eb51]{font-size:var(--text-xs);color:var(--text-tertiary)}.history-delete[data-v-1b18eb51]{background:none;border:none;font-size:16px;color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);line-height:1;opacity:0;transition:opacity var(--transition-fast)}.history-item:hover .history-delete[data-v-1b18eb51]{opacity:1}.history-delete[data-v-1b18eb51]:hover{color:var(--status-error)}.layout[data-v-29cbd97b]{display:flex;min-height:100vh;overflow-x:hidden}.sidebar[data-v-29cbd97b]{width:240px!important;min-width:240px!important;max-width:240px!important;background:var(--bg-nav);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:30;transition:width .2s ease,min-width .2s ease,max-width .2s ease;overflow:hidden}.sidebar.collapsed[data-v-29cbd97b]{width:56px!important;min-width:56px!important;max-width:56px!important}.sidebar-top[data-v-29cbd97b]{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;min-height:48px}.sidebar-logo[data-v-29cbd97b]{font-family:var(--font-heading);font-size:18px;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap;overflow:hidden}.collapse-btn[data-v-29cbd97b]{background:none;border:1px solid var(--border);color:var(--text-tertiary);width:24px;height:24px;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.collapse-btn[data-v-29cbd97b]:hover{color:var(--accent);border-color:var(--accent)}.sidebar-nav[data-v-29cbd97b]{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px;overflow-y:auto}.nav-item[data-v-29cbd97b]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--font-body);transition:background .1s,color .1s}.nav-item[data-v-29cbd97b]:hover{background:var(--bg-card-hover);color:var(--text-primary)}.nav-item.active[data-v-29cbd97b]{background:var(--accent-subtle, rgba(230,126,34,.1));color:var(--accent);font-weight:600}.nav-item svg[data-v-29cbd97b]{flex-shrink:0}.sidebar-bottom[data-v-29cbd97b]{padding:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.sidebar-copyright[data-v-29cbd97b]{font-size:11px;color:var(--text-tertiary);padding:4px 10px;white-space:nowrap}.main-wrapper[data-v-29cbd97b]{flex:1;margin-left:240px;display:flex;flex-direction:column;min-height:100vh;transition:margin-left .2s ease;overflow-x:hidden;min-width:0}.layout.sidebar-collapsed .main-wrapper[data-v-29cbd97b]{margin-left:56px}.topbar[data-v-29cbd97b]{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:8px 24px;background:var(--bg-nav);border-bottom:1px solid var(--border);height:48px}.search-bar[data-v-29cbd97b]{flex:1;display:flex;align-items:center;gap:8px;background:var(--bg-input, var(--bg-secondary));border:1px solid var(--border);border-radius:8px;padding:6px 12px;max-width:500px}.search-bar svg[data-v-29cbd97b]{color:var(--text-tertiary);flex-shrink:0}.search-bar input[data-v-29cbd97b]{border:none;background:transparent;outline:none;flex:1;font-size:14px;color:var(--text-primary);font-family:var(--font-body)}.search-bar input[data-v-29cbd97b]::placeholder{color:var(--text-tertiary)}.topbar-right[data-v-29cbd97b]{display:flex;align-items:center;gap:12px}.theme-btn[data-v-29cbd97b]{background:none;border:1px solid var(--border);width:32px;height:32px;border-radius:50%;color:var(--text-secondary);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s}.theme-btn[data-v-29cbd97b]:hover{color:var(--accent);border-color:var(--accent)}.lang-dropdown[data-v-29cbd97b],.avatar-dropdown[data-v-29cbd97b]{position:relative}.lang-btn[data-v-29cbd97b]{background:none;border:1px solid var(--border);width:32px;height:32px;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.lang-btn[data-v-29cbd97b]:hover{color:var(--accent);border-color:var(--accent)}.avatar-btn[data-v-29cbd97b]{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}.avatar-btn[data-v-29cbd97b]:hover{opacity:.85}.dropdown-menu[data-v-29cbd97b]{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-card, #fff);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #00000026;min-width:160px;z-index:100;overflow:hidden;padding:4px 0}.avatar-menu[data-v-29cbd97b]{min-width:200px}.dropdown-item[data-v-29cbd97b]{display:flex;align-items:center;gap:8px;padding:8px 16px;color:var(--text-primary);font-size:14px;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--font-body);transition:background .1s}.dropdown-item[data-v-29cbd97b]:hover{background:var(--bg-secondary, #f5f5f5)}.dropdown-item.active[data-v-29cbd97b]{color:var(--accent);font-weight:600}.dropdown-item .arrow[data-v-29cbd97b]{margin-left:auto;color:var(--text-tertiary)}.dropdown-divider[data-v-29cbd97b]{height:1px;background:var(--border);margin:4px 0}.dropdown-user[data-v-29cbd97b]{padding:8px 16px;font-size:12px;color:var(--text-tertiary)}.signout[data-v-29cbd97b]{color:#c00}.submenu[data-v-29cbd97b]{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-secondary, #f5f5f5)}.content[data-v-29cbd97b]{flex:1;overflow-x:hidden;max-width:100%}.mobile-menu-btn[data-v-29cbd97b]{display:none;background:none;border:1px solid var(--border);color:var(--text-secondary);font-size:20px;width:36px;height:36px;border-radius:6px;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0}.mobile-menu-btn[data-v-29cbd97b]:hover{color:var(--accent);border-color:var(--accent)}@media(max-width:768px){.sidebar[data-v-29cbd97b]{display:none;width:240px!important;min-width:240px!important;max-width:240px!important}.sidebar.mobile-open[data-v-29cbd97b]{display:flex;z-index:50}.mobile-menu-btn[data-v-29cbd97b]{display:flex}.main-wrapper[data-v-29cbd97b]{margin-left:0!important}.topbar[data-v-29cbd97b]{padding:8px 12px;gap:8px}.search-bar[data-v-29cbd97b]{max-width:none}}:root,[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f6f8;--bg-tertiary: #edeef0;--bg-card: #ffffff;--bg-card-hover: #f9fafb;--bg-input: #ffffff;--bg-sidebar: #f4f6f8;--bg-nav: #ffffff;--bg-overlay: rgba(10, 10, 10, .4);--text-primary: #0a0a0a;--text-secondary: #73716d;--text-tertiary: #a0a0a0;--text-on-accent: #ffffff;--text-on-dark: #ffffff;--accent: #E57200;--accent-hover: #cc6600;--accent-subtle: rgba(229, 114, 0, .08);--blue: #004998;--blue-light: #3c78d8;--teal: #32666C;--red: #C8102E;--green: #6aa84f;--purple: #7B5FC4;--yellow: #F1D35D;--status-success: #2d6a2d;--status-success-bg: #e8f5e8;--status-error: #C8102E;--status-error-bg: #fde8ec;--status-warning: #E57200;--status-warning-bg: #fff3e0;--status-busy: #cc3333;--status-busy-alt: #cc9900;--border: #e2e4e8;--border-hover: #c7c9c7;--border-focus: var(--accent);--border-card: #e8eaed;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .08);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .08);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "DM Sans", "Inter", -apple-system, sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-caps: .08em;--sidebar-width: 320px;--nav-height: 56px;--status-height: 32px;--content-max-width: 1280px;--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-slow: .35s ease}[data-theme=dark]{--bg-primary: #0f1117;--bg-secondary: #1a1d27;--bg-tertiary: #242836;--bg-card: #1e2130;--bg-card-hover: #262a3a;--bg-input: #1a1d27;--bg-sidebar: #161822;--bg-nav: #12141c;--bg-overlay: rgba(0, 0, 0, .6);--text-primary: #e8e8ec;--text-secondary: #9496a1;--text-tertiary: #5d5f6e;--accent: #f08c20;--accent-hover: #ffa040;--accent-subtle: rgba(240, 140, 32, .12);--border: #2a2d3a;--border-hover: #3a3e4f;--border-card: #262a38;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4);--shadow-card: 0 1px 3px rgba(0, 0, 0, .2);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .4);--status-success-bg: #1a3a1a;--status-error-bg: #3a1520;--status-warning-bg: #3a2a10}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-weight:400;line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-primary);min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base);font-weight:600}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}small,.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--text-tertiary)}.label{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-tertiary)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-content{display:flex;flex:1;overflow:hidden}.status-bar{height:var(--status-height);display:flex;align-items:center;padding:0 var(--space-4);font-size:var(--text-sm);font-weight:500;background:var(--bg-secondary);color:var(--text-secondary);border-bottom:1px solid var(--border);transition:background var(--transition-normal),color var(--transition-normal)}.status-bar.busy{background:var(--status-busy);color:var(--text-on-dark)}.status-bar.success{background:var(--status-success);color:var(--text-on-dark)}.status-bar.error{background:var(--status-error);color:var(--text-on-dark)}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.sidebar-header{padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:1px solid var(--border)}.sidebar-body{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);flex:1;overflow-y:auto}.sidebar-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2)}.main-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.tab-bar{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.tab{padding:var(--space-2) var(--space-5);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab.active{background:var(--accent);color:var(--text-on-accent)}.section-title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-tertiary);padding-bottom:var(--space-1);margin-top:var(--space-2)}.control-group{display:flex;flex-direction:column;gap:var(--space-1)}.control-group label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.control-row{display:flex;gap:var(--space-3)}.control-row .control-group{flex:1}input[type=text],input[type=number],select{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-sm);transition:border-color var(--transition-fast)}input[type=text]:focus,input[type=number]:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:var(--space-2)}.btn-row .btn{flex:1}.card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--border-hover)}.card-image{width:100%;display:block}.card-body{padding:var(--space-4)}.card-body h3{font-size:var(--text-lg);margin-bottom:var(--space-1)}.card-body p{font-size:var(--text-sm)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast);cursor:pointer}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);background:var(--accent-subtle)}.upload-zone .hint{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-2)}.preview-2d{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);overflow:hidden}.preview-3d{flex:1;position:relative;overflow:hidden;background:var(--bg-primary)}.preview-3d canvas{width:100%;height:100%;display:block}.preview-3d .reset-btn{position:absolute;top:var(--space-2);right:var(--space-2)}.empty-state{color:var(--text-tertiary);font-size:var(--text-base);text-align:center}.color-swatch{width:18px;height:18px;border-radius:var(--radius-sm);border:1px solid var(--border);display:inline-block;flex-shrink:0}.separator{height:1px;background:var(--border);margin:var(--space-2) 0}@media(max-width:1024px){.sidebar{position:fixed;left:calc(-1 * var(--sidebar-width));top:0;bottom:0;z-index:999;transition:left var(--transition-normal);box-shadow:var(--shadow-lg)}.sidebar.open{left:0}.hamburger{display:block}}@media(max-width:768px){:root{--sidebar-width: 100%}.sidebar{position:fixed;left:0;right:0;bottom:-60vh;top:auto;width:100%;min-width:100%;height:60vh;border-right:none;border-top:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;transition:bottom var(--transition-normal);z-index:999}.sidebar.open{bottom:0}}.theme-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.theme-toggle:hover{border-color:var(--border-hover);color:var(--text-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
