@import"https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--ink-900: #1a1a1a;--ink-800: #2d2d2d;--ink-700: #404040;--ink-600: #525252;--ink-500: #6b6b6b;--ink-400: #8a8a8a;--ink-300: #a3a3a3;--ink-200: #d4d4d4;--ink-100: #e8e8e8;--ink-50: #f5f5f4;--canvas-primary: #fafaf9;--canvas-secondary: #f5f5f4;--canvas-elevated: #ffffff;--canvas-inset: #efefed;--accent-900: #0d4a4a;--accent-800: #115e5e;--accent-700: #0f766e;--accent-600: #0d9488;--accent-500: #14b8a6;--accent-400: #2dd4bf;--success-700: #15803d;--success-600: #16a34a;--success-100: #dcfce7;--warning-700: #a16207;--warning-600: #ca8a04;--warning-100: #fef9c3;--error-700: #b91c1c;--error-600: #dc2626;--error-100: #fee2e2;--info-700: #1d4ed8;--info-600: #2563eb;--info-100: #dbeafe;--font-display: "Source Serif 4", Georgia, "Times New Roman", serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--border-light: 1px solid var(--ink-100);--border-medium: 1px solid var(--ink-200);--border-strong: 1px solid var(--ink-300);--border-accent: 2px solid var(--accent-700);--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 2px 4px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-lg: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--transition-fast: .1s ease;--transition-base: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:1.6;color:var(--ink-800);background-color:var(--canvas-primary);min-height:100vh}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(var(--ink-100) 1px,transparent 1px),linear-gradient(90deg,var(--ink-100) 1px,transparent 1px);background-size:24px 24px;opacity:.4;pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.25;color:var(--ink-900);letter-spacing:-.01em}h1{font-size:var(--text-4xl);font-weight:700}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{color:var(--ink-600)}small{font-size:var(--text-sm);color:var(--ink-500)}code,.mono{font-family:var(--font-mono);font-size:.9em}.hidden{display:none!important}#auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-8)}.auth-wrapper{width:100%;max-width:400px}.auth-card{background:var(--canvas-elevated);border:var(--border-medium);padding:var(--space-10);position:relative}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-700)}.auth-logo{text-align:center;margin-bottom:var(--space-6)}.auth-logo svg{width:150px;height:48px}.auth-card h2{text-align:center;font-size:var(--text-2xl);margin-bottom:var(--space-2);color:var(--ink-900)}.auth-subtitle{text-align:center;font-size:var(--text-sm);color:var(--ink-500);margin-bottom:var(--space-3);line-height:1.5}.auth-brand{text-align:center;font-size:var(--text-xs);color:var(--ink-400);margin-bottom:var(--space-6)}.auth-brand a{color:var(--accent-700);text-decoration:none;font-weight:600}.auth-brand a:hover{text-decoration:underline}.auth-input-group{margin-bottom:var(--space-5)}.auth-input-group label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--ink-700);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.auth-input-group input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-800);background:var(--canvas-inset);border:var(--border-medium);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),background var(--transition-fast)}.auth-input-group input::placeholder{color:var(--ink-400)}.auth-input-group input:hover{border-color:var(--ink-300)}.auth-input-group input:focus{outline:none;border-color:var(--accent-700);background:var(--canvas-elevated)}.auth-feedback{min-height:20px;font-size:var(--text-sm);text-align:center;margin-bottom:var(--space-4);color:var(--error-600)}.auth-feedback:empty{display:none}.auth-card button{width:100%;font-family:var(--font-body);font-size:var(--text-base);font-weight:600;padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.auth-primary-btn{background:var(--accent-700);color:#fff;margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.auth-primary-btn:hover{background:var(--accent-800)}.auth-primary-btn:active{background:var(--accent-900)}.auth-secondary-actions{display:flex;flex-direction:column;gap:var(--space-3)}.auth-secondary-actions button{background:transparent;color:var(--ink-500);font-weight:500;border:var(--border-light)}.auth-secondary-actions button:hover{background:var(--canvas-inset);color:var(--ink-700)}.auth-secondary-btn{background:var(--canvas-inset)!important;color:var(--ink-700)!important;border:var(--border-medium)!important}.auth-secondary-btn:hover{background:var(--ink-100)!important}.auth-user-info{display:flex;align-items:center;gap:var(--space-2);color:var(--ink-600);font-size:var(--text-sm)}.auth-user-status{color:var(--success-600);font-size:8px}.auth-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:var(--border-light);text-align:center}.auth-footer span{font-size:var(--text-xs);color:var(--ink-400);text-transform:uppercase;letter-spacing:.1em}#auth-container.authenticated{justify-content:flex-end;min-height:auto;padding:var(--space-4) var(--space-6);position:fixed;top:0;right:0;left:0;background:var(--canvas-elevated);border-bottom:var(--border-medium);z-index:100}#auth-container.authenticated:before{display:none}#auth-container.authenticated .auth-wrapper{max-width:none;width:auto}#auth-container.authenticated .auth-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border:none;background:transparent}#auth-container.authenticated .auth-card:before{display:none}#auth-container.authenticated .auth-user-info{margin:0}#auth-container.authenticated .auth-card button{width:auto;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}#app{max-width:1200px;margin:0 auto;padding:80px var(--space-6) var(--space-12)}.header{text-align:center;margin-bottom:var(--space-10);padding:var(--space-10) var(--space-8);background:var(--canvas-elevated);border:var(--border-medium);position:relative}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-700)}.header:after{display:none}.header-brand{margin-bottom:var(--space-4)}.header-brand .brand-logo{width:150px;height:48px}.brand-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-700);background:#0f766e1a;border:1px solid var(--accent-700);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-4)}.powered-by{display:inline-block;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--ink-500);text-decoration:none;transition:color var(--transition-fast)}.powered-by:hover{color:var(--accent-700)}.powered-by strong{color:var(--ink-700)}.powered-by:hover strong{color:var(--accent-700)}.header h1{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-3);color:var(--ink-900)}.header p{font-size:var(--text-base);color:var(--ink-500);max-width:560px;margin:0 auto;line-height:1.6}.tab-navigation{display:flex;justify-content:center;gap:var(--space-1);margin-bottom:var(--space-8);padding:var(--space-1);background:var(--canvas-elevated);border:var(--border-medium)}.tab-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:transparent;border:none;color:var(--ink-500);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-fast);position:relative}.tab-btn:hover{color:var(--ink-700);background:var(--canvas-inset)}.tab-btn.active{color:var(--canvas-elevated);background:var(--accent-700)}.tab-btn svg{width:16px;height:16px}.tab-panels{position:relative}.tab-panel{display:none;opacity:0}.tab-panel.active{display:block;opacity:1;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main-content{display:grid;gap:var(--space-6)}.upload-section,.processing-section,.results-section{background:var(--canvas-elevated);border:var(--border-medium);padding:var(--space-6);transition:border-color var(--transition-fast)}.upload-section:hover,.processing-section:hover,.results-section:hover{border-color:var(--ink-300)}.upload-section h2,.processing-section h2,.results-section h2{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-500);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:var(--border-light);display:flex;align-items:center;gap:var(--space-2)}.upload-section h2:before{content:"01"}.processing-section h2:before{content:"02"}.results-section h2:before{content:"03"}.upload-section h2:before,.processing-section h2:before,.results-section h2:before{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-700);padding-right:var(--space-2);border-right:1px solid var(--ink-200);margin-right:var(--space-2)}.file-upload-group{margin-bottom:var(--space-5)}.file-upload-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--ink-700);margin-bottom:var(--space-2)}.file-upload-label small{display:block;width:100%;font-weight:400;color:var(--ink-500);margin-top:var(--space-1)}.label-icon{display:flex;align-items:center;color:var(--accent-700)}.label-icon svg{width:18px;height:18px}.label-badge{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;padding:2px 6px;text-transform:uppercase;letter-spacing:.05em}.label-badge.required{background:var(--error-100);color:var(--error-700);border:1px solid var(--error-600)}.label-badge.info{background:var(--info-100);color:var(--info-700);border:1px solid var(--info-600)}.label-badge.coming-soon{background:var(--warning-100);color:var(--warning-700);border:1px solid var(--warning-600)}.file-drop-zone{position:relative;padding:var(--space-8) var(--space-6);border:2px dashed var(--ink-200);background:var(--canvas-inset);text-align:center;cursor:pointer;transition:all var(--transition-fast);min-height:120px;display:flex;align-items:center;justify-content:center}.file-drop-zone:hover{border-color:var(--accent-600);background:var(--canvas-secondary)}.file-drop-zone.drag-over{border-color:var(--accent-700);background:#0f766e0d;border-style:solid}.file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop-zone-content{pointer-events:none}.drop-zone-icon{color:var(--ink-400);margin-bottom:var(--space-3)}.drop-zone-icon svg{width:40px;height:40px}.file-drop-zone:hover .drop-zone-icon{color:var(--accent-600)}.drop-zone-content p{font-size:var(--text-sm);font-weight:500;color:var(--ink-600);margin-bottom:var(--space-1)}.drop-zone-content small{font-size:var(--text-xs);color:var(--ink-400)}.file-info{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border-left:3px solid var(--ink-300);background:var(--canvas-inset)}.file-info.success{border-left-color:var(--success-600);background:var(--success-100);color:var(--success-700)}.file-info.error{border-left-color:var(--error-600);background:var(--error-100);color:var(--error-700)}.naming-convention-guide{background:var(--canvas-inset);border:var(--border-light);padding:var(--space-5);margin-bottom:var(--space-5)}.naming-convention-guide h3{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-600);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.naming-convention-guide h3 svg{width:16px;height:16px;color:var(--accent-700)}.convention-grid{display:grid;gap:var(--space-3)}.convention-item{background:var(--canvas-elevated);border:var(--border-light);padding:var(--space-3) var(--space-4)}.convention-item strong{display:block;font-size:var(--text-sm);font-weight:600;color:var(--ink-700);margin-bottom:var(--space-1)}.convention-item code{display:block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent-700);background:var(--canvas-inset);padding:var(--space-2) var(--space-3);margin:var(--space-2) 0;border:var(--border-light)}.convention-item small{font-size:var(--text-xs);color:var(--ink-400)}.file-upload-summary{background:var(--canvas-inset);border:var(--border-light);padding:var(--space-4);margin-top:var(--space-5)}.file-upload-summary h3{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-600);margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.file-upload-summary h3 svg{width:16px;height:16px;color:var(--success-600)}.upload-summary-grid{display:grid;gap:var(--space-2)}.summary-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:var(--canvas-elevated);border:var(--border-light);font-size:var(--text-sm)}.summary-item.complete{border-left:3px solid var(--success-600)}.summary-item.pending{border-left:3px solid var(--ink-200)}.summary-item.total{background:var(--accent-700);border:none;color:#fff}.summary-item.total strong,.summary-item.total small{color:#fff}.summary-status{flex-shrink:0;font-weight:600}.summary-item.complete .summary-status{color:var(--success-600)}.summary-item.pending .summary-status{color:var(--ink-400)}.summary-item.total .summary-status{color:#fff}.summary-item strong{display:block;font-weight:600;color:var(--ink-700);margin-bottom:2px}.summary-item small{display:block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-500);word-break:break-all}.summary-item small.text-muted{font-family:var(--font-body);font-style:italic;color:var(--ink-400)}.control-buttons{display:flex;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.btn{padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-2);min-width:130px;justify-content:center;text-transform:uppercase;letter-spacing:.03em}.btn-icon{display:flex;align-items:center}.btn-icon svg{width:16px;height:16px}.btn-primary{background:var(--accent-700);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-800)}.btn-primary:active:not(:disabled){background:var(--accent-900)}.btn-secondary{background:var(--canvas-inset);color:var(--ink-600);border:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:var(--ink-100);color:var(--ink-700)}.btn-info{background:var(--info-100);color:var(--info-700);border:1px solid var(--info-600)}.btn-info:hover:not(:disabled){background:var(--info-600);color:#fff}.btn-success{background:var(--success-600);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-700)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);min-width:auto}.progress-container{margin:var(--space-5) 0;padding:var(--space-5);background:var(--canvas-inset);border:var(--border-light)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.progress-header h3{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--ink-700);display:flex;align-items:center;gap:var(--space-2)}.progress-header h3 svg{width:18px;height:18px;color:var(--accent-700)}.progress-percentage{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:600;color:var(--accent-700)}.progress-bar{width:100%;height:8px;background:var(--ink-100);overflow:hidden;margin-bottom:var(--space-3)}.progress-fill{height:100%;background:var(--accent-700);transition:width .3s ease}.progress-text{text-align:center;font-size:var(--text-sm);color:var(--ink-500);margin-bottom:var(--space-5)}.progress-step-indicator{display:flex;justify-content:space-between;align-items:flex-start;margin-top:var(--space-4);position:relative}.step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;opacity:.4;transition:opacity var(--transition-base)}.step.active,.step.completed{opacity:1}.step-icon{width:44px;height:44px;border-radius:50%;background:var(--canvas-elevated);border:2px solid var(--ink-200);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2);transition:all var(--transition-base)}.step-icon svg{width:20px;height:20px;color:var(--ink-400)}.step.active .step-icon{border-color:var(--accent-700);background:var(--accent-700)}.step.active .step-icon svg{color:#fff}.step.completed .step-icon{border-color:var(--success-600);background:var(--success-600)}.step.completed .step-icon svg{color:#fff}.step-label{font-size:var(--text-xs);font-weight:500;color:var(--ink-500);text-align:center;text-transform:uppercase;letter-spacing:.05em}.step.active .step-label,.step.completed .step-label{color:var(--ink-700);font-weight:600}.step:not(:last-child):after{content:"";position:absolute;top:22px;right:-50%;width:100%;height:2px;background:var(--ink-200);z-index:-1}.step.completed:not(:last-child):after{background:var(--success-600)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin-top:var(--space-5)}.stat-card{padding:var(--space-5);background:var(--canvas-inset);border:var(--border-light);text-align:center;position:relative}.stat-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent-700)}.stat-icon{width:40px;height:40px;margin:0 auto var(--space-3);display:flex;align-items:center;justify-content:center;background:var(--canvas-elevated);border:var(--border-light)}.stat-icon svg{width:20px;height:20px;color:var(--accent-700)}.stat-icon.success svg{color:var(--success-600)}.stat-icon.auth svg{color:var(--info-600)}.stat-icon.acm svg{color:var(--warning-600)}.stat-icon.validate svg{color:var(--warning-600)}.stat-icon.error svg{color:var(--error-600)}.stat-number{font-family:var(--font-mono);font-size:var(--text-3xl);font-weight:600;color:var(--ink-900);margin-bottom:var(--space-1)}.stat-label{font-size:var(--text-xs);font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.1em}.message{padding:var(--space-4);margin:var(--space-4) 0;font-size:var(--text-sm);display:flex;align-items:flex-start;gap:var(--space-3);border-left:3px solid}.message svg{flex-shrink:0;width:18px;height:18px}.message.error{background:var(--error-100);border-color:var(--error-600);color:var(--error-700)}.message.success{background:var(--success-100);border-color:var(--success-600);color:var(--success-700)}.message.info{background:var(--info-100);border-color:var(--info-600);color:var(--info-700)}.message strong{display:block;margin-bottom:var(--space-1)}.message ul{margin:var(--space-2) 0 0;padding-left:var(--space-4)}.message ul li{margin-bottom:var(--space-1)}.download-section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--border-light);text-align:center}.results-summary h3{font-size:var(--text-lg);font-weight:600;color:var(--ink-800);margin-bottom:var(--space-4)}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:var(--border-light)}.results-header h3{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--ink-700);margin:0;text-transform:uppercase;letter-spacing:.05em}.results-header h3 svg{width:18px;height:18px;color:var(--accent-700)}.success-rate{text-align:right}.success-rate .rate-value{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:600;color:var(--success-600)}.success-rate .rate-label{font-size:var(--text-xs);font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.1em}.api-config-section{background:var(--canvas-inset);border:var(--border-light);padding:var(--space-5)}.cache-status-section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--success-100);border:1px solid var(--success-600);margin-bottom:var(--space-4)}.cache-info{display:flex;align-items:center;gap:var(--space-3)}.cache-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--canvas-elevated);border:1px solid var(--success-600);color:var(--success-600)}.cache-icon svg{width:18px;height:18px}.cache-details strong{display:block;font-size:var(--text-sm);font-weight:600;color:var(--success-700)}.cache-details small{font-size:var(--text-xs);color:var(--ink-500)}.cache-actions{display:flex;gap:var(--space-2)}.api-divider{display:flex;align-items:center;text-align:center;margin:var(--space-4) 0;color:var(--ink-400);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em}.api-divider:before,.api-divider:after{content:"";flex:1;border-bottom:var(--border-light)}.api-divider span{padding:0 var(--space-4)}.api-input-group{margin-bottom:var(--space-4)}.api-input-group label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--ink-600);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-2)}.api-key-input-wrapper{display:flex;gap:var(--space-2)}.api-key-input{flex:1;padding:var(--space-3);background:var(--canvas-elevated);border:var(--border-medium);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-800)}.api-key-input:focus{outline:none;border-color:var(--accent-700)}.api-key-input::placeholder{color:var(--ink-400)}.btn-icon-only{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:var(--canvas-elevated);border:var(--border-medium);border-radius:var(--radius-sm);color:var(--ink-500);cursor:pointer;transition:all var(--transition-fast)}.btn-icon-only:hover{background:var(--canvas-inset);color:var(--ink-700)}.btn-icon-only.active{background:var(--accent-700);border-color:var(--accent-700);color:#fff}.btn-icon-only svg{width:18px;height:18px}.api-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4);align-items:center}.api-hint{width:100%;font-size:.75rem;color:var(--text-tertiary);margin-top:calc(var(--space-2) * -1)}.api-status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);font-size:var(--text-sm);min-height:40px;border-left:3px solid}.api-status:empty{display:none}.api-status svg{flex-shrink:0;width:16px;height:16px}.api-status.success{background:var(--success-100);border-color:var(--success-600);color:var(--success-700)}.api-status.error{background:var(--error-100);border-color:var(--error-600);color:var(--error-700)}.api-status.loading{background:var(--info-100);border-color:var(--info-600);color:var(--info-700)}.api-status.info{background:var(--canvas-inset);border-color:var(--ink-300);color:var(--ink-600)}.api-status .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--ink-500)}.empty-state svg{margin-bottom:var(--space-4);color:var(--ink-300)}.empty-state p{font-size:var(--text-sm);font-weight:500;color:var(--ink-500);margin-bottom:var(--space-1)}.empty-state small{font-size:var(--text-xs);color:var(--ink-400)}#validation-messages,#void-validation-messages{margin-top:var(--space-4)}@media(max-width:768px){#app{padding:72px var(--space-4) var(--space-8)}.header{padding:var(--space-6) var(--space-4)}.header:after{display:none}.header h1{font-size:var(--text-2xl)}.tab-navigation{flex-direction:column}.tab-btn{justify-content:center}.upload-section,.processing-section,.results-section{padding:var(--space-4)}.control-buttons{flex-direction:column}.btn{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.progress-step-indicator{flex-wrap:wrap;gap:var(--space-4)}.step{flex:0 0 45%}.step:not(:last-child):after{display:none}.results-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.success-rate{text-align:left}#auth-container.authenticated{position:relative;flex-direction:column;align-items:center}#auth-container.authenticated .auth-card{flex-direction:column;text-align:center;gap:var(--space-3)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.step{flex:0 0 100%}.api-actions{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--accent-700);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--canvas-secondary)}::-webkit-scrollbar-thumb{background:var(--ink-300)}::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}::selection{background:var(--accent-600);color:#fff}@media print{body:before{display:none}.btn,#auth-container{display:none!important}.upload-section,.processing-section,.results-section{border:1px solid #ccc;page-break-inside:avoid}}
