.upload-page{background:var(--studio-bg-deep);flex-direction:column;min-height:100vh;display:flex}.upload-page__main{padding:var(--space-8);padding-top:calc(var(--header-height) + var(--space-8));flex:1;justify-content:center;align-items:center;display:flex}.upload-page__content{text-align:center;width:100%;max-width:700px}.upload-page__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:var(--weight-bold);color:var(--studio-text-primary);margin:0 0 var(--space-3)0;letter-spacing:var(--tracking-tight)}.upload-page__subtitle{font-family:var(--font-body);font-size:var(--text-lg);color:var(--studio-text-muted);margin:0 0 var(--space-8)0;line-height:var(--leading-relaxed)}.upload-page__upload-area{margin-bottom:var(--space-8)}.upload-page__upload-area .dropzone{min-height:300px;padding:var(--space-8)}.upload-page__features{justify-content:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.upload-page__feature{align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-small);color:var(--studio-text-muted);display:flex}.upload-page__feature-icon{font-size:1.25rem}.upload-page__samples{margin-top:var(--space-8);text-align:center}.upload-page__samples-text{font-family:var(--font-body);font-size:var(--text-small);color:var(--studio-text-muted);margin-bottom:var(--space-4)}.upload-page__sample-images{justify-content:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.upload-page__sample-btn{align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--studio-bg-elevated);border:2px solid var(--studio-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--duration-base)var(--ease-out-expo);flex-direction:column;min-width:90px;display:flex}.upload-page__sample-btn:hover:not(:disabled){border-color:var(--studio-border-accent);background:var(--studio-bg-surface);box-shadow:var(--shadow-md),var(--shadow-glow-sm);transform:translateY(-2px)}.upload-page__sample-btn:disabled{opacity:.5;cursor:not-allowed}.upload-page__sample-btn.selected{border-color:var(--studio-accent);background:var(--studio-bg-surface);box-shadow:0 0 0 3px var(--studio-accent-muted)}.upload-page__sample-btn.loading{position:relative}.upload-page__sample-thumbnail{object-fit:cover;border-radius:var(--radius-lg);width:56px;height:56px;transition:transform var(--duration-base)var(--ease-out)}.upload-page__sample-btn:hover .upload-page__sample-thumbnail{transform:scale(1.05)}.upload-page__sample-label{font-family:var(--font-body);font-size:var(--text-micro);font-weight:var(--weight-medium);color:var(--studio-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.upload-page__sample-loading-overlay{border-radius:var(--radius-xl);background:#0009;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.upload-page__sample-spinner{border:3px solid #ffffff4d;border-top-color:var(--studio-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.upload-auth-gate{text-align:center;width:100%;max-width:480px;padding:var(--space-10)var(--space-8);background:var(--studio-bg-elevated);border:1px solid var(--studio-border-strong);border-radius:20px}.upload-auth-gate__icon{color:var(--studio-accent);margin-bottom:var(--space-5)}.upload-auth-gate__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,1.75rem);font-weight:var(--weight-bold);color:var(--studio-text-primary);margin:0 0 var(--space-3)0;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.upload-auth-gate__subtitle{font-family:var(--font-body);font-size:var(--text-base);color:var(--studio-text-secondary);margin:0 0 var(--space-7)0;line-height:var(--leading-relaxed)}.upload-auth-gate__actions{gap:var(--space-3);margin-bottom:var(--space-7);flex-direction:column;display:flex}.upload-auth-gate__btn{width:100%;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--duration-base)var(--ease-out-expo);padding:.875rem 1.5rem}.upload-auth-gate__btn--primary{background:var(--studio-accent);color:var(--studio-text-inverse);border:none}.upload-auth-gate__btn--primary:hover{background:var(--studio-accent-hover);box-shadow:var(--shadow-glow-sm);transform:translateY(-1px)}.upload-auth-gate__btn--secondary{color:var(--studio-text-secondary);border:1px solid var(--studio-border-strong);background:0 0}.upload-auth-gate__btn--secondary:hover{color:var(--studio-text-primary);border-color:var(--studio-text-muted);background:var(--studio-bg-surface)}.upload-auth-gate__features{gap:var(--space-3);padding:0 var(--space-4);flex-direction:column;align-items:flex-start;display:flex}.upload-auth-gate__feature{align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-small);color:var(--studio-text-muted);display:flex}.upload-auth-gate__feature svg{color:var(--studio-success);flex-shrink:0}.error-toast-container{top:calc(var(--header-height,64px) + 1rem);z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:.5rem;width:calc(100% - 2rem);max-width:500px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.error-toast-container .error-message{pointer-events:auto;animation:.3s ease-out slideInDown;box-shadow:0 4px 20px #0000004d}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}[data-theme=light] .upload-page{background:var(--studio-bg-deep)}@media (max-width:768px){.error-toast-container{width:calc(100% - 1rem);max-width:100%;top:calc(56px + .5rem)}.upload-page__main{padding:var(--space-4);padding-top:calc(var(--header-height) + var(--space-4))}.upload-page__title{font-size:1.75rem}.upload-page__subtitle{font-size:var(--text-base)}.upload-page__features{align-items:center;gap:var(--space-3);flex-direction:column}.upload-page__upload-area .dropzone{min-height:250px;padding:var(--space-6)}.upload-page__sample-btn{min-width:80px;padding:var(--space-2)}.upload-page__sample-thumbnail{width:48px;height:48px}.upload-page__samples-text{font-size:var(--text-micro)}.upload-auth-gate{padding:var(--space-8)var(--space-5);border-radius:16px}.upload-auth-gate__features{padding:0}}
