:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #dbeafe;--color-secondary: #64748b;--color-secondary-hover: #475569;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-sidebar: #1e293b;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-inverse: #ffffff;--text-sidebar: #e2e8f0;--text-sidebar-muted: #94a3b8;--border-color: #e2e8f0;--border-radius: 8px;--border-radius-lg: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-base: var(--font-family);--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-muted: var(--text-tertiary);--color-border-default: var(--border-color);--photo-image-cta-font-size: clamp(2.25rem, 3.9vw, 3rem);--canvas: var(--bg-secondary);--surface: var(--bg-primary);--surface-subtle: var(--bg-tertiary);--border-subtle: var(--border-color);--text-help: var(--text-secondary);--font-size-help: 14px;--font-size-page-title: 24px;--action-primary: var(--color-primary);--action-primary-hover: var(--color-primary-hover);--status-info: var(--color-primary);--status-success: var(--color-success);--status-warning: var(--color-warning);--status-danger: var(--color-error);--text-metadata: var(--text-tertiary);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--sidebar-width: 240px;--header-height: 64px}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-sidebar: #0f172a;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #64748b;--text-sidebar: #e2e8f0;--text-sidebar-muted: #94a3b8;--border-color: #334155}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family);font-size:var(--font-size-md);line-height:1.5;color:var(--text-primary);background-color:var(--bg-secondary)}#root{height:100%}.app-layout{display:flex;min-height:100vh}.sidebar-toggle{position:fixed;top:var(--spacing-md);left:var(--spacing-md);z-index:200;width:40px;height:40px;padding:0;border-radius:var(--border-radius);background:transparent;border:1px solid transparent;box-shadow:none;color:var(--text-primary);display:none;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.sidebar-toggle:hover{background-color:var(--bg-tertiary)}.sidebar-toggle .burger{position:relative;display:block;width:20px;height:20px}.sidebar-toggle .burger-bar,.sidebar-toggle .burger-bar:before,.sidebar-toggle .burger-bar:after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .18s ease,top .18s ease,opacity .12s ease}.sidebar-toggle .burger-bar{top:9px}.sidebar-toggle .burger-bar:before{top:-6px}.sidebar-toggle .burger-bar:after{top:6px}.sidebar-toggle.open .burger-bar{opacity:0}.sidebar-toggle.open .burger-bar:before{top:0;transform:rotate(45deg)}.sidebar-toggle.open .burger-bar:after{top:0;transform:rotate(-45deg)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:150;border:none;cursor:pointer;display:none}.sidebar{width:var(--sidebar-width);background-color:var(--bg-sidebar);color:var(--text-sidebar);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;transition:transform .25s ease}@media (max-width: 768px){.sidebar{transform:translate(-100%);z-index:160}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:inline-flex}.sidebar-overlay.visible{display:block}.main-content{margin-left:0}}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-lg);font-weight:600;color:var(--text-inverse);text-decoration:none}.sidebar-logo-icon{width:32px;height:32px;background-color:var(--color-primary);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center}.sidebar-nav{flex:1;padding:var(--spacing-md);overflow-y:auto}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:var(--spacing-md);display:grid;gap:var(--spacing-sm)}.sidebar-user{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm)}.sidebar-avatar{width:34px;height:34px;border-radius:9999px;background-color:var(--color-primary);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600;flex-shrink:0}.sidebar-user-meta{min-width:0}.sidebar-user-name{margin:0;color:var(--text-sidebar);font-size:var(--font-size-sm);font-weight:600;line-height:1.2}.sidebar-user-email{margin:2px 0 0;color:var(--text-sidebar-muted);font-size:var(--font-size-xs);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout-btn{width:100%;border:none;background:transparent;text-align:left}.nav-list{list-style:none}.nav-item{margin-bottom:var(--spacing-xs)}.nav-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-sidebar-muted);text-decoration:none;border-radius:var(--border-radius);transition:all .2s ease}.nav-link:hover{background-color:#ffffff1a;color:var(--text-sidebar)}.nav-link.active{background-color:var(--color-primary);color:var(--text-inverse)}.nav-icon{width:20px;height:20px;opacity:.8}.nav-link.active .nav-icon{opacity:1}.main-content{flex:1;margin-left:0;min-height:100vh;display:flex;flex-direction:column;position:relative}.main-banner-user-actions{position:fixed;top:calc(var(--spacing-lg) + 20px);right:var(--spacing-xl);transform:translateY(-50%);z-index:1050;display:inline-flex;align-items:center;gap:var(--spacing-xs)}.main-banner-user-chip,.main-banner-home-btn,.main-banner-logout-btn{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.main-banner-user-chip{min-width:156px;padding:4px 10px;border-radius:9999px;display:inline-flex;align-items:center;justify-content:flex-start;gap:var(--spacing-sm);text-align:left;cursor:pointer}.main-banner-user-chip-avatar{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:600;background:var(--bg-secondary);color:var(--text-primary);flex-shrink:0}.main-banner-user-chip-text{display:flex;flex-direction:column;min-width:0}.main-banner-user-chip-name{font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-banner-user-chip-role{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.1}.main-banner-home-btn,.main-banner-logout-btn{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.main-banner-user-chip:hover,.main-banner-home-btn:hover,.main-banner-logout-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.main-banner-home-icon,.main-banner-logout-icon{width:18px;height:18px}.page-header{background-color:var(--bg-primary);padding:var(--spacing-lg) var(--spacing-xl);padding-right:calc(var(--spacing-xl) + 220px);border-bottom:1px solid var(--border-color)}.page-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.page-title-link{color:inherit;text-decoration:none}.page-title-link:hover,.page-title-link:focus-visible{text-decoration:none}.page-description{font-size:var(--font-size-sm);color:var(--text-secondary)}.page-content{flex:1;padding:var(--spacing-xl)}.app-loading-state{min-height:100vh;color:var(--text-secondary)}.preview-debug-content{font-size:var(--font-size-sm);color:var(--text-secondary)}.preview-prompt-pre{white-space:pre-wrap;background:var(--surface-subtle);padding:.5rem;border-radius:4px}.preview-placeholder-box{background:var(--surface-subtle);border-radius:4px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.main-banner-user-actions{right:var(--spacing-md);top:calc(var(--spacing-lg) + 18px)}.main-banner-user-chip{min-width:132px;padding:4px 8px}.page-header{padding-right:calc(var(--spacing-lg) + 176px)}}.card{background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.card-title{font-size:var(--font-size-lg);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--border-radius);border:none;cursor:pointer;transition:all .2s ease;text-decoration:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:rgba(37,99,235,.2)}button,label.btn,a.btn{touch-action:manipulation;-webkit-tap-highlight-color:rgba(37,99,235,.2)}label.btn{position:relative}.btn-primary{background-color:var(--color-primary);color:var(--text-inverse)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--border-color)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;min-height:200px}.empty-state-icon{width:64px;height:64px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.empty-state-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-lg);max-width:400px}.page-header{background:var(--surface);border-bottom-color:var(--border-subtle)}.page-title{font-size:var(--font-size-page-title);letter-spacing:-.01em}.page-description,.form-help,.form-section-description{color:var(--text-help);font-size:var(--font-size-help)}.card{background:var(--surface);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);min-height:200px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--border-radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:16px;margin-bottom:var(--spacing-sm)}.skeleton-text-short{width:60%}.skeleton-title{height:24px;width:40%;margin-bottom:var(--spacing-md)}.skeleton-card{height:120px;margin-bottom:var(--spacing-md)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1200px){.grid-cols-4{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--bg-secondary)}.error-content{text-align:center;padding:var(--spacing-xl)}.error-content h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md);color:var(--text-primary)}.error-content p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.not-entitled-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-xl);background-color:var(--canvas)}.not-entitled-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);max-width:400px;text-align:center}.not-entitled-icon{width:80px;height:80px;border-radius:50%;background-color:var(--surface-subtle);display:flex;align-items:center;justify-content:center}.not-entitled-title{margin:0;font-size:var(--font-size-xl);color:var(--text-primary)}.not-entitled-description{margin:0;color:var(--text-secondary);line-height:1.6}.not-entitled-guidance{padding:var(--spacing-md);background-color:var(--surface-subtle);border-radius:var(--border-radius);width:100%}.not-entitled-guidance-text{margin:0;font-size:var(--font-size-sm);color:var(--text-metadata)}.not-entitled-action{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--action-primary);color:var(--text-inverse);border:none;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-md)}.quick-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.quick-action-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);cursor:pointer;transition:all .2s ease}.quick-action-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.quick-action-icon{width:24px;height:24px;color:var(--color-primary)}.photo-hub-page{display:flex;flex-direction:column;gap:var(--spacing-lg)}.photo-hub-primary-heading{width:100%;font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary);text-align:center;line-height:1.2;margin:0}.photo-hub-quick-grid{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}.photo-hub-quick-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:var(--photo-cta-height);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.photo-hub-quick-card:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.photo-hub-quick-card:disabled{opacity:.58;cursor:not-allowed}.photo-hub-quick-card-new{min-height:var(--photo-cta-height);background-image:url(/CTAScanVIN.png);background-image:-webkit-image-set(url(/CTAScanVIN.webp) 1x,url(/CTAScanVIN.png) 1x);background-image:image-set(url(/CTAScanVIN.webp) type("image/webp") 1x,url(/CTAScanVIN.png) type("image/png") 1x);background-position:center;background-size:cover;background-repeat:no-repeat}.photo-hub-quick-card-car-list{min-height:var(--photo-cta-height);background-image:url(/CTASelectCar.png);background-image:-webkit-image-set(url(/CTASelectCar.webp) 1x,url(/CTASelectCar.png) 1x);background-image:image-set(url(/CTASelectCar.webp) type("image/webp") 1x,url(/CTASelectCar.png) type("image/png") 1x);background-position:center;background-size:cover;background-repeat:no-repeat}.photo-hub-quick-card-new .photo-hub-quick-title,.photo-hub-quick-card-car-list .photo-hub-quick-title{color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.photo-hub-quick-icon{width:40px;height:40px;color:var(--color-primary)}.photo-hub-quick-title{font-size:var(--photo-image-cta-font-size);line-height:1.2;font-weight:700;text-align:center;max-width:10ch;margin:0 auto}.vehicles-add-cta{margin-bottom:var(--spacing-md)}.photo-hub-quick-helper{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:center;line-height:1.25;margin-top:2px}.photo-settings-hub-page{display:flex;flex-direction:column;gap:var(--spacing-md)}.photo-settings-cta-grid{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}.photo-settings-group-separator{display:flex;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-sm) 0;grid-column:1 / -1}.photo-settings-group-separator:before,.photo-settings-group-separator:after{content:"";flex:1;height:1px;background:var(--border-color)}.photo-settings-group-separator-label{font-size:var(--font-size-xl);font-weight:600;color:var(--text-secondary);white-space:nowrap}.photo-settings-cta{width:100%;min-height:var(--photo-cta-height);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-repeat:no-repeat}.photo-settings-cta:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.photo-settings-cta:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.photo-settings-cta:disabled:hover{border-color:var(--border-color);box-shadow:none}.photo-settings-cta-personal{background-image:url(/CTAPersonalSettings.png);background-image:-webkit-image-set(url(/CTAPersonalSettings.webp) 1x,url(/CTAPersonalSettings.png) 1x);background-image:image-set(url(/CTAPersonalSettings.webp) type("image/webp") 1x,url(/CTAPersonalSettings.png) type("image/png") 1x)}.photo-settings-cta-vehicles{background-image:url(/CTASelectCar.png);background-image:-webkit-image-set(url(/CTASelectCar.webp) 1x,url(/CTASelectCar.png) 1x);background-image:image-set(url(/CTASelectCar.webp) type("image/webp") 1x,url(/CTASelectCar.png) type("image/png") 1x)}.photo-settings-cta-sessions{background-image:url(/SettingsPhotoSessions.png);background-image:-webkit-image-set(url(/SettingsPhotoSessions.webp) 1x,url(/SettingsPhotoSessions.png) 1x);background-image:image-set(url(/SettingsPhotoSessions.webp) type("image/webp") 1x,url(/SettingsPhotoSessions.png) type("image/png") 1x)}.photo-settings-cta-shoot{background-image:url(/SettingsPhotoProfile.png);background-image:-webkit-image-set(url(/SettingsPhotoProfile.webp) 1x,url(/SettingsPhotoProfile.png) 1x);background-image:image-set(url(/SettingsPhotoProfile.webp) type("image/webp") 1x,url(/SettingsPhotoProfile.png) type("image/png") 1x)}.photo-settings-cta-processing{background-image:url(/SettingsProcessProfile.png);background-image:-webkit-image-set(url(/SettingsProcessProfile.webp) 1x,url(/SettingsProcessProfile.png) 1x);background-image:image-set(url(/SettingsProcessProfile.webp) type("image/webp") 1x,url(/SettingsProcessProfile.png) type("image/png") 1x)}.photo-settings-cta-studios{background-image:url(/CTAStudio.png);background-image:-webkit-image-set(url(/CTAStudio.webp) 1x,url(/CTAStudio.png) 1x);background-image:image-set(url(/CTAStudio.webp) type("image/webp") 1x,url(/CTAStudio.png) type("image/png") 1x)}.photo-settings-cta-billing{background-image:url(/CTASubscription.png);background-image:-webkit-image-set(url(/CTASubscription.webp) 1x,url(/CTASubscription.png) 1x);background-image:image-set(url(/CTASubscription.webp) type("image/webp") 1x,url(/CTASubscription.png) type("image/png") 1x)}.photo-settings-cta-branding{background-image:url(/SettingsBrandingProfile.png);background-image:-webkit-image-set(url(/SettingsBrandingProfile.webp) 1x,url(/SettingsBrandingProfile.png) 1x);background-image:image-set(url(/SettingsBrandingProfile.webp) type("image/webp") 1x,url(/SettingsBrandingProfile.png) type("image/png") 1x)}.photo-settings-cta-label{color:#fff;font-size:var(--photo-image-cta-font-size);font-weight:700;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.photo-settings-cta-logout{background-image:url(/CTALogout.png);background-image:-webkit-image-set(url(/CTALogout.webp) 1x,url(/CTALogout.png) 1x);background-image:image-set(url(/CTALogout.webp) type("image/webp") 1x,url(/CTALogout.png) type("image/png") 1x);border-color:var(--color-error)}.photo-settings-cta-logout:hover{border-color:var(--color-error)}.photo-settings-cta-logout-label{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:#fff;font-size:var(--photo-image-cta-font-size);font-weight:700;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.photo-settings-cta-logout-icon{width:24px;height:24px}.photo-settings-cta-helper{grid-column:1 / -1;margin:calc(var(--spacing-sm) * -.25) 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-settings-cta-helper-error{color:var(--color-error)}.photo-studio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md)}@media (max-width: 768px){.photo-studio-grid{grid-template-columns:1fr}}.photo-studio-tile{border:1px solid var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden;background:var(--bg-primary);box-shadow:var(--shadow-sm)}.photo-studio-tile-preview{position:relative;aspect-ratio:4 / 3;background:linear-gradient(135deg,#0f172a1a,#0ea5e91f),var(--bg-secondary)}.photo-studio-tile-preview-image{width:100%;height:100%;object-fit:cover;display:block}.photo-studio-tile-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);text-align:center;color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-studio-tile-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-studio-tile-badge.is-active{background:#22c55e29;color:#166534}.photo-studio-tile-badge.is-inactive{background:#ef444429;color:#b91c1c}.photo-studio-tile-body{display:grid;gap:4px;padding:var(--spacing-md)}.photo-studio-tile-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.photo-studio-tile-title{margin:0;color:var(--text-primary);font-size:var(--font-size-md);font-weight:700;min-width:0}.photo-studio-tile-title-row .photo-studio-tile-badge{flex-shrink:0}.photo-studio-tile-meta{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-hub-recent-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.photo-hub-section-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.photo-hub-session-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.photo-hub-latest-processed{display:grid;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.photo-hub-latest-processed-copy{display:grid;gap:4px}.photo-hub-latest-processed-kicker{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.photo-hub-latest-processed-title{font-size:var(--font-size-lg);color:var(--text-primary)}.photo-hub-latest-processed-body{font-size:var(--font-size-sm);color:var(--text-secondary)}.photo-hub-session-card{--photo-hub-session-media-width: 96px;--photo-hub-session-media-height: 72px;display:grid;grid-template-columns:var(--photo-hub-session-media-width) minmax(0,1fr);grid-template-areas:"media content" "media action";gap:var(--spacing-md);align-items:stretch;padding:var(--spacing-md)}.photo-hub-session-media{grid-area:media;width:var(--photo-hub-session-media-width);min-height:var(--photo-hub-session-media-height);height:auto;align-self:stretch}.photo-hub-session-image{width:100%;height:100%;border-radius:var(--border-radius);object-fit:cover}.photo-hub-session-placeholder{width:100%;height:100%;border-radius:var(--border-radius);background-color:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.photo-hub-session-placeholder-icon{width:26px;height:26px;color:var(--text-tertiary)}.photo-hub-session-content{grid-area:content;min-width:0}.photo-hub-session-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.photo-hub-session-identifiers{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--spacing-xs);flex-shrink:0}.photo-hub-session-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-hub-session-status{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:2px}.photo-hub-session-stock{display:grid;justify-items:end;flex-shrink:0;min-width:72px}.photo-hub-session-stock-label{font-size:10px;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.photo-hub-session-stock-value{margin-top:1px;font-size:var(--font-size-sm);line-height:1.2;color:var(--text-primary);font-weight:600}.photo-hub-session-action{grid-area:action;display:flex;align-items:center;width:100%}.photo-hub-session-action-button{width:100%;min-height:40px;font-size:150%}.photo-hub-session-card-clickable{cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.photo-hub-session-card-clickable:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.photo-hub-session-card-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.photo-session-active-page{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%;max-width:none;margin:0}.photo-session-active-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.photo-session-active-meta{display:flex;flex-direction:column;gap:var(--spacing-xs)}.photo-session-active-title{margin-bottom:0}.photo-session-active-subtitle{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.photo-session-active-profile{color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-session-active-progress{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}.photo-session-active-meta-note{color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-session-active-alert{border:1px solid rgba(37,99,235,.22);background:#2563eb14;color:var(--text-primary);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.photo-session-active-alert-error{border-color:#ef444459;background:#ef444414}.photo-session-active-hint{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.photo-session-active-onboarding-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#0f172a7a}.photo-session-active-onboarding{width:min(100%,480px);display:grid;gap:var(--spacing-sm);box-shadow:var(--shadow-lg)}.photo-session-active-onboarding-kicker{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.photo-session-active-onboarding-checklist{display:grid;gap:var(--spacing-xs);padding-left:var(--spacing-lg);color:var(--text-primary);font-size:var(--font-size-sm)}.photo-session-active-onboarding-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-end}.photo-session-active-upload-btn{width:100%;min-height:48px}.photo-session-active-upload-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-session-active-upload-list,.photo-session-active-shot-status-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.photo-session-active-upload-item,.photo-session-active-shot-status-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-primary)}.photo-session-active-upload-main,.photo-session-active-shot-status-main{flex:1;min-width:0}.photo-session-active-upload-header,.photo-session-active-shot-status-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.photo-session-active-upload-title-group{display:flex;flex-direction:column;gap:2px;min-width:0}.photo-session-active-upload-name{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-session-active-upload-order{color:var(--text-secondary);font-size:var(--font-size-xs)}.photo-session-active-upload-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 10px;border-radius:9999px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#94a3b833;color:var(--text-secondary)}.photo-session-active-upload-status.is-success{background:#22c55e29;color:#166534}.photo-session-active-upload-status.is-uploading{background:#2563eb29;color:#1d4ed8}.photo-session-active-upload-status.is-error{background:#ef444429;color:#b91c1c}.photo-session-active-upload-progress{width:100%;height:10px;border-radius:9999px;background:var(--bg-tertiary);overflow:hidden}.photo-session-active-upload-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),#38bdf8);transition:width .2s ease}.photo-session-active-upload-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-xs)}.photo-session-active-upload-error{margin-top:var(--spacing-sm);color:var(--color-error);font-size:var(--font-size-xs)}.photo-session-active-shot-grid{display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(min(136px,100%),1fr));max-width:min(100%,calc(540px + var(--spacing-sm) + var(--spacing-sm)))}.photo-session-active-job-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.photo-session-active-shot-card,.photo-session-active-job-item{border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;background:var(--bg-primary)}.photo-session-active-shot-card{display:flex;flex-direction:column}.photo-session-active-shot-card.is-selected{border-color:#2563eb73;box-shadow:0 0 0 1px #2563eb33}.photo-session-active-shot-preview{aspect-ratio:4 / 3;background:var(--bg-tertiary)}.photo-session-active-shot-preview-image{display:block;width:100%;height:100%;object-fit:cover}.photo-session-active-shot-preview-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-session-active-shot-card-body{display:flex;flex-direction:column;gap:8px;padding:var(--spacing-sm)}.photo-session-active-shot-title-group{display:flex;flex-direction:column;gap:6px;min-width:0}.photo-session-active-shot-card-header,.photo-session-active-job-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.photo-session-active-shot-delete{width:100%}.photo-session-active-shot-select{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--font-size-xs)}.photo-session-active-shot-select input{margin:0}.photo-session-active-shot-card-meta{display:grid;gap:4px;color:var(--text-secondary);font-size:var(--font-size-xs)}.photo-session-active-shot-id{color:var(--text-primary);font-weight:500;overflow-wrap:anywhere}.photo-session-active-shot-status,.photo-session-active-job-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 10px;border-radius:9999px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.photo-session-active-shot-status.is-uploaded,.photo-session-active-shot-status.is-done,.photo-session-active-job-status.is-uploaded,.photo-session-active-job-status.is-done{background:#22c55e29;color:#166534}.photo-session-active-shot-status.is-missing,.photo-session-active-shot-status.is-queued,.photo-session-active-job-status.is-queued{background:#94a3b833;color:var(--text-secondary)}.photo-session-active-shot-status.is-processing,.photo-session-active-job-status.is-processing,.photo-session-active-job-status.is-running{background:#2563eb29;color:#1d4ed8}.photo-session-active-shot-status.is-failed,.photo-session-active-job-status.is-failed,.photo-session-active-job-status.is-cancelled{background:#ef444429;color:#b91c1c}.photo-session-active-job-status.is-expired{background:#f59e0b29;color:#b45309}.photo-session-active-job-main{min-width:0}.photo-session-active-job-id{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-session-active-job-meta{color:var(--text-secondary);font-size:var(--font-size-xs)}.photo-session-active-job-error{margin-top:var(--spacing-xs);color:var(--color-error);font-size:var(--font-size-xs)}.photo-session-active-processing-summary,.photo-session-active-processing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.photo-session-active-processing-summary{color:var(--text-secondary);font-size:var(--font-size-sm)}.photo-session-active-export-section{display:grid;gap:var(--spacing-md)}.photo-session-active-export-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.photo-session-active-export-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.photo-session-active-export-status-card{display:grid;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary)}.photo-session-active-export-status-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.photo-session-active-export-status-title{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.photo-toast-viewport{position:fixed;top:calc(var(--spacing-lg) + 56px);right:var(--spacing-lg);z-index:1600;display:grid;gap:var(--spacing-sm);width:min(360px,calc(100vw - (var(--spacing-lg) * 2)))}.photo-toast{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);border:1px solid rgba(15,23,42,.08);box-shadow:var(--shadow-md);background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm)}.photo-toast-success{border-color:#22c55e47;background:#22c55e1f}.photo-toast-error{border-color:#ef444447;background:#ef44441f}.photo-toast-info{border-color:#2563eb3d;background:#2563eb1a}.photo-session-active-complete-wrap{width:100%}.photo-session-active-complete-cta{width:100%;min-height:var(--photo-cta-height);border-radius:var(--border-radius-lg);background-image:url(/CTAStartProcess.png);background-image:-webkit-image-set(url(/CTAStartProcess.webp) 1x,url(/CTAStartProcess.png) 1x);background-image:image-set(url(/CTAStartProcess.webp) type("image/webp") 1x,url(/CTAStartProcess.png) type("image/png") 1x);background-position:center;background-size:cover;background-repeat:no-repeat;color:#fff;font-size:var(--photo-image-cta-font-size);font-weight:700;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.photo-session-active-complete-cta:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.photo-login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg);padding-bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom));background-color:var(--bg-secondary)}.photo-login-branding{width:100%;max-width:420px;text-align:center}.photo-login-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.photo-login-subtitle{margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}.photo-login-card{width:100%;max-width:420px;display:grid;gap:var(--spacing-md)}.photo-login-alert{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);border:1px solid rgba(37,99,235,.2);background-color:#2563eb14;color:var(--text-primary);font-size:var(--font-size-sm)}.photo-login-alert.is-error{border-color:#ef444459;background-color:#ef444414}.photo-login-turnstile{display:grid;justify-items:center;gap:var(--spacing-sm)}.photo-login-turnstile-widget{width:100%;display:flex;justify-content:center}.photo-login-turnstile-message{margin-top:0;color:var(--color-error);font-size:var(--font-size-sm);text-align:center}.photo-login-field{display:grid;gap:var(--spacing-xs)}.photo-login-help{font-size:var(--font-size-xs);color:var(--text-secondary)}.photo-login-input{min-height:46px}.photo-login-submit{width:100%;min-height:48px;font-size:var(--font-size-md)}.photo-login-links{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);flex-wrap:wrap}.photo-login-link{font-size:var(--font-size-sm);color:var(--text-secondary);text-decoration:none}.photo-login-link:hover{color:var(--text-primary);text-decoration:underline}.photo-login-divider{color:var(--text-tertiary)}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.photo-hub-session-card{--photo-hub-session-media-width: 80px;--photo-hub-session-media-height: 60px}.photo-hub-session-action{justify-content:stretch}.photo-login-wrap{justify-content:flex-start;padding-top:clamp(56px,12vh,96px)}}@media (max-width: 768px){.photo-session-active-shot-grid{grid-template-columns:repeat(auto-fit,minmax(min(136px,100%),1fr))}.photo-session-active-upload-item,.photo-session-active-shot-status-item,.photo-session-active-upload-header,.photo-session-active-shot-status-header,.photo-session-active-upload-meta,.photo-session-active-upload-summary,.photo-session-active-export-header,.photo-session-active-export-status-header,.photo-session-active-onboarding-actions{flex-direction:column;align-items:flex-start}.photo-toast-viewport{top:calc(var(--spacing-md) + 52px);right:var(--spacing-md);width:min(320px,calc(100vw - (var(--spacing-md) * 2)))}}@media (max-width: 340px){.photo-session-active-shot-grid{grid-template-columns:1fr}}@media (max-width: 400px){:root{--photo-image-cta-font-size: calc(var(--font-size-md) * 1.5)}.photo-hub-quick-grid{gap:var(--spacing-sm)}.photo-hub-quick-card{min-height:var(--photo-cta-height);padding:var(--spacing-sm)}.photo-hub-quick-card-new,.photo-hub-quick-card-car-list{min-height:var(--photo-cta-height)}.photo-hub-quick-icon{width:34px;height:34px}.vehicle-form-start-session-cta{min-height:var(--photo-cta-height)}}.offline-indicator{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;transition:transform .3s ease,opacity .3s ease}.offline-indicator.offline{background-color:var(--color-warning);color:#1e293b}.offline-indicator.reconnected{background-color:var(--color-success);color:#fff}.offline-icon,.reconnected-icon{width:16px;height:16px;flex-shrink:0}.offline-text,.reconnected-text{font-weight:600}.offline-hint{margin-left:auto;opacity:.8}.pwa-update-banner{position:fixed;right:var(--spacing-md);bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom));z-index:1001;display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background-color:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-md)}.install-nudge{position:fixed;left:0;right:0;bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom));z-index:1002;padding:0 var(--spacing-md);pointer-events:none}.install-nudge__content{width:min(100%,720px);margin:0 auto;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);pointer-events:auto}.install-nudge__text{display:grid;gap:var(--spacing-xs)}.install-nudge__title,.install-nudge__body{margin:0}.install-nudge__title{font-size:var(--font-size-md);font-weight:700}.install-nudge__body,.install-nudge__instructions{color:var(--text-secondary);font-size:var(--font-size-sm)}.install-nudge__instructions{margin-top:var(--spacing-xs);padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary)}.install-nudge__actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-end}@media (max-width: 768px){.pwa-update-banner{left:var(--spacing-md);right:var(--spacing-md);bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom));justify-content:space-between}.install-nudge__content{flex-direction:column;align-items:stretch}.install-nudge__actions{justify-content:flex-start}}@media (max-width: 768px){.offline-indicator{left:0}}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.page-header-content{flex:1}.page-header-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md)}@media (max-width: 768px){.page-header-row{flex-direction:column}.page-header-actions{width:100%;justify-content:flex-start}}.search-bar{position:relative;margin-bottom:var(--spacing-lg)}.search-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--text-tertiary)}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);padding-left:44px;font-size:var(--font-size-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.search-input::placeholder{color:var(--text-tertiary)}.vehicle-tile-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.vehicle-session-tile{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.vehicle-session-tile:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.vehicle-session-tile:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.vehicle-session-tile-content{display:grid;gap:var(--spacing-sm)}.vehicle-session-tile-heading{min-width:0}.vehicle-session-tile-title{margin:0}.vehicle-session-tile-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.vehicle-session-tile-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.vehicle-session-tile-meta .photo-status{min-width:min(220px,100%)}.source-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.source-local{background-color:var(--color-primary-light);color:var(--color-primary)}.source-bilinfo{background-color:#fef3c7;color:#92400e}.vehicle-status,.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);font-weight:500}.status-available{background-color:#dcfce7;color:#166534}.status-reserved{background-color:#fef3c7;color:#92400e}.status-sold{background-color:#f3f4f6;color:#4b5563}.status-pending{background-color:#e0e7ff;color:#3730a3}.vehicle-status-cell{min-width:100px}.photo-status{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs)}.photo-status--loading,.photo-status--none,.photo-status--unknown{color:var(--text-tertiary)}.photo-status--active{color:var(--color-primary);font-weight:500}.photo-status--ready{display:inline-block;padding:2px 8px;border-radius:4px;background-color:#dcfce7;color:#166534;font-weight:500}[data-theme=dark] .photo-status--ready{background-color:#22c55e33;color:#4ade80}.photo-status--failed{display:inline-block;padding:2px 8px;border-radius:4px;background-color:#fee2e2;color:#dc2626;font-weight:500}[data-theme=dark] .photo-status--failed{background-color:#ef444433;color:#f87171}.photo-status--processing{display:flex;flex-direction:column;gap:4px}.photo-status__text{font-weight:500;color:var(--text-primary)}.photo-status__progress{width:100%;height:4px;background-color:var(--bg-tertiary);border-radius:2px;overflow:hidden}.photo-status__progress-bar{height:100%;background-color:var(--color-primary);border-radius:2px;transition:width .3s ease}.loading-skeleton{display:flex;flex-direction:column;gap:var(--spacing-md)}.skeleton-row{background-color:var(--bg-primary);border-radius:var(--border-radius);padding:var(--spacing-md)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.skeleton-title{height:20px;width:60%;margin-bottom:var(--spacing-sm)}.skeleton-text{height:14px;width:40%}.skeleton-text-short{width:25%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color)}.empty-state-icon{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-lg);max-width:300px}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color)}.error-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-error);margin-bottom:var(--spacing-sm)}.error-state-message{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary)}.vehicle-form-page{background-color:var(--bg-secondary)}.vehicle-form{max-width:none;margin:0;padding:0}.form-section{background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.form-section-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.form-section-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}@media (max-width: 600px){.form-row{grid-template-columns:1fr}}.form-field{margin-bottom:var(--spacing-md)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.form-required{color:var(--color-error);margin-left:2px}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--text-tertiary)}.form-input:disabled{background-color:var(--bg-tertiary);cursor:not-allowed}.form-input-error{border-color:var(--color-error)}.form-input-error:focus{box-shadow:0 0 0 3px #ef444433}.form-help{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-xs)}.form-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--spacing-xs)}.form-error-banner{background-color:#fef2f2;border:1px solid #fecaca;color:var(--color-error);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-md)}.vehicle-detail-page{background-color:var(--bg-secondary)}.detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--bg-primary);border-radius:var(--border-radius);border:1px solid var(--border-color)}.detail-section{background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.detail-section-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.detail-section-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.detail-field{display:flex;flex-direction:column;gap:2px}.detail-label{font-size:var(--font-size-xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.detail-value{font-size:var(--font-size-md);color:var(--text-primary)}.detail-notice{background-color:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm)}.detail-skeleton{background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg)}.vehicle-photos-toolbar{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.vehicle-photo-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}label.btn>.vehicle-photo-input{top:0;right:0;bottom:0;left:0;width:100%;height:100%;clip-path:none;cursor:pointer}.vehicle-photos-error{margin:0 0 var(--spacing-md);color:var(--color-error);font-size:var(--font-size-sm)}.vehicle-photo-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.vehicle-photo-groups{display:grid;gap:var(--spacing-lg)}.vehicle-photo-group{display:grid;gap:var(--spacing-sm)}.vehicle-photo-group-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.vehicle-photo-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-sm)}.vehicle-photo-tile{display:grid;grid-template-columns:84px minmax(0,1fr);gap:var(--spacing-sm);align-items:center;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary)}.vehicle-photo-tile-preview{width:84px;height:64px}.vehicle-photo-tile-image{width:100%;height:100%;object-fit:cover;border-radius:var(--border-radius)}.vehicle-photo-tile-placeholder{width:100%;height:100%;border-radius:var(--border-radius);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.vehicle-photo-tile-content{min-width:0}.vehicle-photo-tile .btn{grid-column:1 / -1;justify-self:end}.vehicle-photo-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary)}.vehicle-photo-name{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-weight:500}.vehicle-photo-primary{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;background:#16a34a24;color:#15803d;font-size:var(--font-size-xs);font-weight:600}.vehicle-photo-meta{color:var(--text-tertiary);font-size:var(--font-size-xs)}@media (max-width: 640px){.vehicle-photo-tile-grid{grid-template-columns:1fr}}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-ghost{background-color:transparent;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md)}.btn-ghost:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-back{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-toggle{background-color:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-toggle:hover{background-color:var(--color-primary-light);color:var(--color-primary)}.page-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg)}.presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.photo-presets-copy-card{margin-bottom:var(--spacing-lg)}.photo-presets-copy-actions{justify-content:flex-start}.preset-tile-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.sessions-shooting-profiles{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.sessions-shooting-profiles .bf-preset-tile{width:100%}.preset-status{font-size:var(--font-size-xs);font-weight:500;padding:2px 8px;border-radius:4px}.preset-status.enabled{background-color:#dcfce7;color:#166534}.preset-status.disabled{background-color:#f3f4f6;color:#6b7280}[data-theme=dark] .preset-status.enabled{background-color:#22c55e33;color:#4ade80}[data-theme=dark] .preset-status.disabled{background-color:#6b728033;color:#9ca3af}.preset-form{width:100%;max-width:none;background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:var(--spacing-xl)}.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer}.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.form-checkbox-label{font-size:var(--font-size-md);color:var(--text-primary)}.bf-preset-tile{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);transition:all .2s ease}.bf-preset-tile.clickable{cursor:pointer}.bf-preset-tile.clickable:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.bf-preset-tile.clickable:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.bf-preset-tile.selected{border-color:var(--color-primary);background-color:var(--color-primary-light)}.bf-preset-tile.disabled{opacity:.6;cursor:not-allowed}.bf-preset-tile-image{width:100%;height:120px;border-radius:var(--border-radius);overflow:hidden;margin-bottom:var(--spacing-md);background-color:var(--bg-tertiary)}.bf-preset-tile-image img{width:100%;height:100%;object-fit:cover}.bf-preset-tile-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.bf-preset-tile-name{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:0}.bf-preset-tile-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.bf-preset-tile-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.bf-preset-tile-action{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.bf-preset-tile-action:hover{background-color:var(--bg-tertiary)}.bf-preset-tile-action.edit:hover{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.bf-preset-tile-action.delete{color:var(--color-error)}.bf-preset-tile-action.delete:hover{background-color:#fef2f2;border-color:var(--color-error)}[data-theme=dark] .bf-preset-tile-action.delete:hover{background-color:#ef44441a}.vin-section{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.vin-input-row{display:flex;gap:var(--spacing-md);align-items:flex-start;flex-wrap:wrap}.vin-input-wrapper{display:flex;flex:1;min-width:280px;position:relative}.vin-input,.registration-input{flex:1;font-family:monospace;font-size:var(--font-size-md);letter-spacing:.05em;text-transform:uppercase;padding-right:48px}.vin-inline-scan-btn{position:absolute;right:6px;top:50%;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border:1px solid var(--border-color);border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 78%,var(--bg-tertiary));color:var(--text-secondary);font-size:var(--font-size-md);font-weight:700;line-height:1;transform:translateY(-50%);cursor:pointer}.vin-inline-scan-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.vin-inline-scan-btn:disabled{cursor:not-allowed;opacity:.45}.vehicle-form-vin-actions{margin-top:var(--spacing-md);display:grid;gap:var(--spacing-sm)}.vehicle-form-start-session-cta{width:100%;min-height:var(--photo-cta-height);border-radius:var(--border-radius-lg);background-image:url(/CTAPhotoSession.png);background-image:-webkit-image-set(url(/CTAPhotoSession.webp) 1x,url(/CTAPhotoSession.png) 1x);background-image:image-set(url(/CTAPhotoSession.webp) type("image/webp") 1x,url(/CTAPhotoSession.png) type("image/png") 1x);background-position:center;background-size:cover;background-repeat:no-repeat;color:#fff;font-size:var(--photo-image-cta-font-size);font-weight:700;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.vehicle-form-start-session-cta:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.vehicle-form-start-session-cta:disabled{opacity:.75}.vehicle-form-start-session-cta-standalone{display:block;margin-top:var(--spacing-md)}.vehicle-form-secondary-actions{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-md)}.vin-status{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);border-radius:var(--border-radius);background-color:var(--bg-tertiary);color:var(--text-secondary)}.vin-status-stack{display:grid;gap:var(--spacing-xs)}.vin-status-candidate{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:0}.vin-status-decoding,.vin-status-uploading,.vin-status-ocr_running{background-color:var(--color-primary-light);color:var(--color-primary)}.vin-status-success{background-color:#dcfce7;color:#166534}[data-theme=dark] .vin-status-success{background-color:#22c55e1a;color:#4ade80}.vin-status-not_found,.vin-status-ocr_not_found{background-color:#fef3c7;color:#92400e}[data-theme=dark] .vin-status-not_found,[data-theme=dark] .vin-status-ocr_not_found{background-color:#f59e0b1a;color:#fbbf24}.vin-status-error,.vin-status-ocr_error{background-color:#fef2f2;color:#dc2626}[data-theme=dark] .vin-status-error,[data-theme=dark] .vin-status-ocr_error{background-color:#ef44441a;color:#f87171}.vin-status-service_unavailable{background-color:#fef2f2;color:#dc2626}[data-theme=dark] .vin-status-service_unavailable{background-color:#ef44441a;color:#f87171}.vin-ocr-tips{display:flex;flex-direction:column;gap:var(--spacing-xs)}.vin-ocr-tips ul{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--text-tertiary)}.vin-ocr-tips li{margin:0}.vin-conflict-dialog{margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius)}.vin-conflict-title{font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.vin-conflict-values{margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.vin-conflict-current{color:var(--text-secondary);text-decoration:line-through}.vin-conflict-new{color:var(--color-primary);font-weight:600}.vin-conflict-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.vin-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-xs);font-weight:500;border-radius:9999px;margin-left:var(--spacing-sm);vertical-align:middle}.vin-badge-from-vin{background-color:#dcfce7;color:#166534}[data-theme=dark] .vin-badge-from-vin{background-color:#22c55e33;color:#4ade80}.vin-badge-manually-edited{background-color:#fef3c7;color:#92400e}[data-theme=dark] .vin-badge-manually-edited{background-color:#f59e0b33;color:#fbbf24}@media (max-width: 640px){.vin-input-row{flex-direction:column}.vin-input-wrapper{min-width:100%}.vin-conflict-actions{flex-direction:column}.vin-conflict-actions .btn{width:100%}}.camera-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);background-color:#0f172a8c}.camera-modal-content{width:min(920px,100%);max-height:92vh;overflow:auto;display:grid;gap:var(--spacing-md);padding:var(--spacing-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background-color:var(--bg-primary);box-shadow:var(--shadow-lg)}.camera-preview-header{position:absolute;top:var(--spacing-sm);left:var(--spacing-sm);right:var(--spacing-sm);z-index:3;display:flex;align-items:center;justify-content:flex-start;gap:var(--spacing-md);pointer-events:none}.camera-modal-title{max-width:min(64vw,24rem);border-radius:var(--border-radius);padding:var(--spacing-xs) var(--spacing-sm);background:#0000007a;font-size:var(--font-size-lg);font-weight:600;color:#fff;line-height:1.25;text-shadow:0 1px 2px rgba(0,0,0,.45)}.camera-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background-color:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--border-radius);transition:background-color .15s,color .15s}.camera-preview-back{pointer-events:auto;background-color:#ffffffeb;color:var(--text-primary)}.camera-modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.camera-preview-container{position:relative;width:100%;aspect-ratio:16 / 9;background-color:#000;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--border-radius)}.camera-video{width:100%;height:100%;object-fit:cover;transform-origin:center center}.camera-video-hidden{opacity:0}.camera-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);color:#fff}.camera-loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:camera-spin 1s linear infinite}@keyframes camera-spin{to{transform:rotate(360deg)}}.camera-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center;color:#fff;background-color:#1e293b}.camera-error-icon{opacity:.5}.camera-error-message{font-size:var(--font-size-sm);color:#94a3b8;max-width:280px}.camera-fallback-btn{margin-top:var(--spacing-sm)}.camera-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.camera-overlay-mask{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#0000006b}.camera-overlay-window{position:absolute;width:80%;aspect-ratio:5.5 / 1;left:10%;top:46%;transform:translateY(-50%);background-color:transparent;box-shadow:0 0 0 9999px #0000006b}.camera-overlay-border{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid rgba(255,255,255,.92);border-radius:4px}.camera-corner{position:absolute;width:20px;height:20px;border-color:#fff;border-style:solid}.camera-corner-tl{top:-2px;left:-2px;border-width:3px 0 0 3px;border-top-left-radius:4px}.camera-corner-tr{top:-2px;right:-2px;border-width:3px 3px 0 0;border-top-right-radius:4px}.camera-corner-bl{bottom:-2px;left:-2px;border-width:0 0 3px 3px;border-bottom-left-radius:4px}.camera-corner-br{bottom:-2px;right:-2px;border-width:0 3px 3px 0;border-bottom-right-radius:4px}.camera-overlay-text{position:absolute;bottom:12%;left:0;right:4.75rem;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:0 var(--spacing-lg)}.camera-overlay-title{font-size:var(--font-size-md);font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);text-align:center}.camera-overlay-hint{font-size:var(--font-size-xs);color:#fffc;text-shadow:0 1px 2px rgba(0,0,0,.5);text-align:center}.camera-modal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-sm);border-top:1px solid var(--border-color);padding-top:var(--spacing-md)}.camera-control-panel{display:grid;gap:var(--spacing-sm);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-secondary)}.camera-zoom-button{width:40px;height:40px;min-height:40px;padding:0;font-size:var(--font-size-lg);line-height:1}.camera-zoom-overlay{position:absolute;top:50%;right:var(--spacing-sm);z-index:3;display:grid;grid-template-rows:40px minmax(118px,22vh) 40px auto;gap:var(--spacing-xs);align-items:center;justify-items:center;transform:translateY(-50%);pointer-events:auto}.camera-zoom-overlay input[type=range]{width:140px;height:36px;transform:rotate(-90deg);transform-origin:center}.camera-zoom-value{min-width:3rem;border-radius:var(--border-radius);padding:2px var(--spacing-xs);background:#0000007a;color:#fff;font-size:var(--font-size-sm);text-align:center}.camera-candidate-panel{display:grid;gap:var(--spacing-xs);color:var(--text-primary)}.camera-candidate-panel-title{font-size:var(--font-size-sm);font-weight:600}.camera-candidate-empty{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.camera-candidate-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.camera-candidate-item{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-sm);min-width:0;font-size:var(--font-size-sm)}.camera-candidate-vin{min-width:0;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em}.camera-candidate-count{flex:0 0 auto;color:var(--text-secondary);font-size:var(--font-size-xs);white-space:nowrap}.camera-debug-panel{border-top:1px solid var(--border-color);padding-top:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.camera-debug-panel summary{cursor:pointer;color:var(--text-primary);font-weight:600}.camera-debug-panel p{margin-top:var(--spacing-sm)}.camera-debug-panel ol{display:grid;gap:var(--spacing-xs);max-height:120px;margin-top:var(--spacing-sm);padding-left:var(--spacing-md);overflow:auto;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xs)}@media (max-width: 640px){.camera-modal-overlay{padding:0}.camera-modal-content{width:100%;max-height:100dvh;min-height:100dvh;padding:var(--spacing-md);border-radius:0}.camera-preview-container{aspect-ratio:16 / 9}.camera-modal-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.camera-modal-actions .btn{min-width:0;min-height:48px;padding-right:var(--spacing-sm);padding-left:var(--spacing-sm)}}@media (orientation: landscape) and (max-height: 640px){.camera-modal-overlay{align-items:stretch;padding:0;background-color:#000}.camera-modal-content{width:100%;max-height:100dvh;min-height:100dvh;gap:0;padding:0;border:0;border-radius:0;background:#000}.camera-preview-container{min-height:0;height:100dvh;border:0;border-radius:0}.camera-modal-actions{position:absolute;right:var(--spacing-sm);bottom:var(--spacing-sm);left:var(--spacing-sm);z-index:4;border-top:0;padding-top:0}.camera-modal-actions .btn{min-height:44px;background:#fffffff0}.camera-modal-actions .btn-primary{background:var(--color-primary)}.camera-control-panel{position:absolute;left:var(--spacing-sm);bottom:calc(44px + var(--spacing-lg));z-index:4;max-width:min(22rem,42vw);padding:var(--spacing-sm);background:#fffffff0}.camera-debug-panel{border-top:0;padding-top:0}.camera-overlay-text{display:none}}.photo-branding-prompt{border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.5rem .75rem;background:var(--card-bg)}.photo-branding-prompt summary{cursor:pointer;font-weight:600;color:var(--text-primary)}.photo-branding-prompt-text{margin:.75rem 0;max-height:16rem;overflow:auto;white-space:pre-wrap;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;background:var(--bg-secondary);color:var(--text-secondary)}.photo-collapsible-section{padding:0;overflow:hidden}.photo-collapsible-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-lg)}.photo-collapsible-summary::-webkit-details-marker{display:none}.photo-collapsible-summary:after{content:"▾";color:var(--text-secondary);font-size:var(--font-size-sm);transition:transform .2s ease}.photo-collapsible-section:not([open]) .photo-collapsible-summary:after{transform:rotate(-90deg)}.photo-collapsible-summary .form-section-title{margin-bottom:0}.photo-collapsible-section>.form-section-description{margin:0;padding:0 var(--spacing-lg) var(--spacing-sm)}.photo-collapsible-body{padding:0 var(--spacing-lg) var(--spacing-lg)}.photo-branding-asset-preview{margin-top:var(--spacing-sm)}.photo-branding-asset-thumbnail{display:block;width:96px;height:96px;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-tertiary);object-fit:contain}.demo-experience-shell{gap:var(--spacing-md)}.demo-form-grid{display:grid;gap:var(--spacing-sm)}.demo-field{display:grid;gap:6px;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.demo-field .form-input{width:100%}.demo-field-error{color:#b91c1c;font-size:var(--font-size-xs);font-weight:500}.demo-checkbox{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.demo-checkbox input{margin-top:2px}.demo-result-banner{background:#f59e0b29;color:#92400e}[data-theme=dark] .demo-field-error{color:#fca5a5}[data-theme=dark] .demo-result-banner{background:#f59e0b2e;color:#fcd34d}:root{--color-primary: #0f766e;--color-primary-hover: #115e59;--color-primary-light: rgba(15, 118, 110, .14);--bg-secondary: #f6f7f4;--bg-tertiary: #ecefe8;--border-color: #dfe4db;--border-radius: 6px;--border-radius-lg: 8px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .04);--shadow-md: 0 8px 20px rgb(15 23 42 / .09);--shadow-lg: 0 18px 36px rgb(15 23 42 / .13);--spacing-md: 14px;--spacing-lg: 18px;--spacing-xl: 22px;--photo-shell-gutter: clamp(10px, 1.6vw, 18px);--photo-cta-height: 150px;--photo-image-cta-font-size: clamp(2rem, 4.2vw, 4rem)}html,body,#root{min-height:100%}body{background:radial-gradient(circle at 12% 0%,rgba(15,118,110,.08),transparent 34rem),linear-gradient(180deg,#fbfcf9 0%,var(--bg-secondary) 100%)}.app-layout{min-height:100vh;background:transparent}.main-content{min-height:100vh;overflow-x:hidden}.main-banner-user-actions{top:var(--photo-shell-gutter);right:var(--photo-shell-gutter);transform:none}.main-banner-user-chip,.main-banner-home-btn,.main-banner-logout-btn{background:color-mix(in srgb,var(--bg-primary) 88%,transparent);border-color:color-mix(in srgb,var(--border-color) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.main-banner-user-chip{min-width:0;max-width:min(34vw,210px);min-height:38px}.page-header{min-height:calc(38px + (var(--photo-shell-gutter) * 2));padding:var(--photo-shell-gutter) calc(var(--photo-shell-gutter) + 232px) var(--photo-shell-gutter) var(--photo-shell-gutter);background:transparent;border-bottom:0;display:flex;align-items:center}.page-title{margin:0;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.1}.page-description{display:none}.page-content{padding:var(--photo-shell-gutter)}.card,.form-section,.detail-section,.detail-header,.preset-form,.empty-state,.error-state,.photo-studio-tile{border-radius:var(--border-radius-lg);border-color:color-mix(in srgb,var(--border-color) 86%,transparent);box-shadow:var(--shadow-sm)}.card,.form-section,.detail-section,.preset-form{padding:clamp(12px,1.4vw,18px)}.btn{min-height:38px;border-radius:var(--border-radius);font-weight:650}.btn-primary{background-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{border:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-primary) 76%,var(--bg-tertiary))}.photo-hub-page,.photo-settings-hub-page{gap:var(--photo-shell-gutter)}.photo-hub-primary-heading{font-size:clamp(1.25rem,2.4vw,2.35rem);line-height:1.05}.photo-hub-primary{display:flex;flex-direction:column;gap:.35rem;margin-bottom:var(--photo-shell-gutter)}.photo-hub-primary-hint{font-size:.95rem;margin:0}.photo-hub-primary-cta{align-self:flex-start;min-height:48px;padding:.75rem 1.25rem;font-size:1.05rem;margin-top:.25rem}.page-context{margin:.25rem 0 0;font-size:.9rem}.main-banner-org-context{max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary, #666);font-size:.85rem;padding:0 .4rem}.photo-hub-quick-grid,.photo-settings-cta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--photo-shell-gutter)}.photo-hub-quick-card,.photo-settings-cta{height:var(--photo-cta-height);min-height:var(--photo-cta-height);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);background-position:center;background-size:cover;background-repeat:no-repeat}.photo-hub-quick-card:hover:not(:disabled),.photo-settings-cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.photo-hub-quick-card:before,.photo-settings-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 24%,rgba(0,0,0,.5) 100%);pointer-events:none}.photo-hub-quick-card,.photo-settings-cta{position:relative}.photo-hub-quick-title,.photo-settings-cta-label{position:relative;z-index:1;max-width:12ch;font-size:var(--photo-image-cta-font-size);line-height:.98;letter-spacing:0}.photo-settings-group-separator{margin:0}.photo-settings-group-separator-label{font-size:clamp(1.05rem,1.8vw,1.5rem)}.photo-settings-cta-helper{margin:0}.photo-hub-session-list,.vehicle-tile-list,.photo-session-list-shell{display:grid;gap:var(--photo-shell-gutter)}.photo-hub-session-card{--photo-hub-session-media-width: clamp(136px, 22vw, 240px);--photo-hub-session-media-height: clamp(104px, 16vw, 180px);grid-template-columns:var(--photo-hub-session-media-width) minmax(0,1fr) minmax(170px,.28fr);grid-template-areas:"media content action";align-items:stretch;padding:8px;gap:clamp(10px,1.2vw,16px)}.photo-hub-session-card-no-action,.vehicle-session-tile{grid-template-columns:var(--photo-hub-session-media-width) minmax(0,1fr);grid-template-areas:"media content"}.photo-hub-session-media{border-radius:var(--border-radius);overflow:hidden}.photo-hub-session-image,.photo-hub-session-placeholder{border-radius:0}.photo-hub-session-content{display:flex;align-items:center}.photo-hub-session-header{width:100%}.photo-hub-session-title{font-size:clamp(1rem,1.4vw,1.35rem)}.photo-hub-session-action{align-items:stretch}.photo-hub-session-action-button{min-height:100%;font-size:clamp(1rem,1.4vw,1.25rem)}.vehicles-add-cta,.vehicle-detail-start-session-cta-wrap{margin-bottom:var(--photo-shell-gutter)}.vehicle-detail-start-session-cta{background-image:url(/CTAPhotoSession.png);background-image:-webkit-image-set(url(/CTAPhotoSession.webp) 1x,url(/CTAPhotoSession.png) 1x);background-image:image-set(url(/CTAPhotoSession.webp) type("image/webp") 1x,url(/CTAPhotoSession.png) type("image/png") 1x)}.vehicle-detail-start-session-cta .photo-hub-quick-icon,.vehicle-detail-start-session-cta .photo-hub-quick-title{color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65)}.vehicle-detail-action-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:calc(var(--photo-shell-gutter) * -.4)}.detail-section-collapsible{padding:0;overflow:hidden}.detail-section-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--photo-shell-gutter);padding:clamp(12px,1.4vw,18px);cursor:pointer;list-style:none}.detail-section-summary::-webkit-details-marker{display:none}.detail-section-summary:after{content:"";width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}.detail-section-collapsible[open] .detail-section-summary:after{transform:rotate(225deg)}.detail-section-collapsible .detail-section-content{padding:0 clamp(12px,1.4vw,18px) clamp(12px,1.4vw,18px)}.vehicle-form-start-session-cta{height:var(--photo-cta-height);min-height:var(--photo-cta-height);background-position:center;background-size:cover;background-repeat:no-repeat}.monthly-usage-card,.search-bar{margin-bottom:var(--photo-shell-gutter)}.search-input,.form-input,.form-select{min-height:42px;border-radius:var(--border-radius)}.presets-grid,.photo-studio-grid,.vehicle-photo-tile-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:var(--photo-shell-gutter)}.detail-grid,.form-row{gap:var(--photo-shell-gutter)}.vehicle-detail-page .page-content,.vehicle-form-page .page-content{display:grid;gap:var(--photo-shell-gutter)}.detail-section,.form-section{margin-bottom:0}.vehicle-photo-tile{grid-template-columns:minmax(120px,.42fr) minmax(0,1fr);padding:8px}.vehicle-photo-tile-preview{width:100%;height:auto;aspect-ratio:4 / 3}.photo-session-active-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:var(--photo-shell-gutter);min-height:calc(100vh - (var(--photo-shell-gutter) * 2))}.photo-session-active-header,.photo-session-active-meta,.photo-session-active-alert,.photo-session-active-alert-error{grid-column:1 / -1}.photo-session-active-header{min-height:38px;align-items:center;padding-right:calc(210px + var(--photo-shell-gutter))}.page-back-button,.btn-back{width:44px;min-height:44px;padding:0;justify-content:center;gap:0;color:var(--text-secondary);font-size:0;line-height:0}.page-back-button-icon,.btn-back svg{width:34px;height:34px;flex:0 0 auto}.btn-back span,.page-back-button-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.photo-session-active-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--photo-shell-gutter)}.photo-session-active-title,.photo-session-active-subtitle,.photo-session-active-profile,.photo-session-active-meta-note{grid-column:1}.photo-session-active-progress{grid-column:2;grid-row:1 / span 4;display:grid;grid-template-columns:repeat(2,max-content);justify-content:end;align-content:end}.photo-session-active-progress span,.photo-session-active-processing-summary span,.photo-session-active-upload-summary span{padding:4px 8px;border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary)}.photo-session-active-upload-section,.photo-session-active-export-section,.photo-session-active-complete-wrap{grid-column:2}.photo-session-active-shots-section{grid-column:1;grid-row:3 / span 4}.photo-session-active-processing-section{grid-column:1 / -1}.photo-session-active-shot-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));max-width:none;gap:8px}.photo-session-active-shot-card{border-radius:var(--border-radius)}.photo-session-active-shot-preview{aspect-ratio:4 / 3}.photo-session-active-shot-card-body{padding:8px}.photo-session-active-shot-card-header{align-items:flex-start}.photo-session-active-upload-btn,.photo-session-active-complete-cta{min-height:var(--photo-cta-height)}.photo-session-active-complete-cta{border-radius:var(--border-radius-lg)}.photo-session-active-upload-list,.photo-session-active-shot-status-list{gap:8px}.photo-session-active-upload-item,.photo-session-active-shot-status-item,.photo-session-active-export-status-card{background:var(--bg-secondary)}@media (max-width: 980px){.page-header{padding-right:calc(var(--photo-shell-gutter) + 188px)}.photo-session-active-page{grid-template-columns:1fr}.photo-session-active-upload-section,.photo-session-active-export-section,.photo-session-active-complete-wrap,.photo-session-active-shots-section,.photo-session-active-processing-section{grid-column:1;grid-row:auto}.photo-session-active-shots-section{order:1}.photo-session-active-upload-section{order:2}.photo-session-active-complete-wrap{order:3}.photo-session-active-export-section{order:4}.photo-session-active-processing-section{order:5}}@media (max-width: 760px){:root{--photo-shell-gutter: 10px;--photo-image-cta-font-size: clamp(1.55rem, 9vw, 2.75rem)}.main-banner-user-actions{top:8px;right:8px}.main-banner-user-chip{max-width:144px}.page-header{min-height:68px;padding:8px calc(var(--photo-shell-gutter) + 176px) 8px var(--photo-shell-gutter)}.page-header:has(>.btn-back){padding-left:calc(var(--photo-shell-gutter) + 46px)}.photo-session-active-page{padding-top:0}.photo-session-active-header{min-height:38px;padding-right:0;padding-right:calc(176px + var(--photo-shell-gutter))}.page-back-button,.btn-back{width:44px;min-height:44px;padding:0;justify-content:center;transform:translateY(5px);font-size:0;line-height:0}.page-header>.btn-back{position:fixed;top:0;left:var(--photo-shell-gutter);z-index:1060}.page-back-button-icon,.btn-back svg{width:34px;height:34px}.page-back-button-label,.btn-back span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.photo-login-links{flex-direction:column;gap:6px}.photo-login-divider{display:none}.photo-login-submit{min-height:44px}.photo-hub-quick-grid,.photo-settings-cta-grid{grid-template-columns:1fr}.photo-hub-quick-card,.photo-settings-cta{height:var(--photo-cta-height);min-height:var(--photo-cta-height)}.photo-hub-session-card{--photo-hub-session-media-width: 42vw;--photo-hub-session-media-height: 31vw;grid-template-columns:var(--photo-hub-session-media-width) minmax(0,1fr);grid-template-areas:"media content" "media action"}.photo-hub-session-card-no-action{grid-template-areas:"media content"}.vehicle-session-tile{grid-template-columns:var(--photo-hub-session-media-width) minmax(0,1fr);grid-template-areas:"media content"}.photo-hub-session-action-button{min-height:44px}.photo-session-active-meta{grid-template-columns:1fr}.photo-session-active-title,.photo-session-active-subtitle,.photo-session-active-profile,.photo-session-active-meta-note,.photo-session-active-progress{grid-column:1;grid-row:auto}.photo-session-active-progress{grid-template-columns:1fr 1fr;justify-content:stretch}.photo-session-active-shot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-photo-tile{grid-template-columns:1fr}.vehicle-detail-action-row{justify-content:stretch}.vehicle-detail-action-row .btn{flex:1 1 0}}@media (max-width: 430px){.photo-hub-session-card{--photo-hub-session-media-width: 100%;--photo-hub-session-media-height: auto;grid-template-columns:1fr;grid-template-areas:"media" "content" "action"}.photo-hub-session-card-no-action{grid-template-areas:"media" "content"}.vehicle-session-tile{grid-template-columns:1fr;grid-template-areas:"media" "content"}.photo-hub-session-media{width:100%;aspect-ratio:4 / 3}.photo-hub-session-stock{justify-items:start}}.camera-modal-actions{align-items:stretch;grid-auto-rows:auto;gap:10px}.camera-modal-actions .btn{width:100%;min-width:0;height:auto;min-height:44px;max-height:64px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;aspect-ratio:auto;font-size:var(--font-size-sm);line-height:1.12;white-space:normal}.camera-modal-actions .btn svg{width:20px;height:20px;flex:0 0 auto}.camera-capture-btn{min-width:0}@media (max-width: 640px){.camera-modal-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:max(var(--spacing-sm),env(safe-area-inset-bottom))}.camera-modal-actions .btn{min-height:52px;max-height:64px;padding:7px 6px;flex-direction:column;gap:4px;font-size:.75rem;line-height:1.08}.camera-modal-actions .btn svg{width:24px;height:24px}.camera-capture-btn svg{width:30px;height:30px}}@media (orientation: landscape) and (max-height: 640px){.camera-modal-actions{right:8px;bottom:max(8px,env(safe-area-inset-bottom));left:8px;gap:8px}.camera-modal-actions .btn{min-height:40px;max-height:46px;padding:6px 10px;flex-direction:row;gap:6px;font-size:.8rem;line-height:1.1}.camera-modal-actions .btn svg{width:18px;height:18px}.camera-capture-btn svg{width:22px;height:22px}.camera-control-panel{max-height:calc(100dvh - 112px);overflow:auto}.camera-debug-panel ol{max-height:72px}}
