@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-primary-50: #eef2ff;--color-primary-100: #e0e7ff;--color-primary-200: #c7d2fe;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-accent-400: #c084fc;--color-accent-500: #a855f7;--color-accent-600: #9333ea;--color-success-400: #34d399;--color-success-500: #10b981;--color-success-600: #059669;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-error-400: #fb7185;--color-error-500: #f43f5e;--color-error-600: #e11d48;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-neutral-950: #020617;--gradient-dark: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%);--gradient-card: linear-gradient(135deg, rgba(30, 41, 59, .8) 0%, rgba(30, 27, 75, .6) 100%);--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-gold: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);--glass-bg: rgba(30, 41, 59, .6);--glass-border: rgba(148, 163, 184, .1);--glass-blur: blur(20px);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-glow: 0 0 40px rgba(99, 102, 241, .3);--shadow-glow-lg: 0 0 60px rgba(99, 102, 241, .4);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-tooltip: 400;--z-toast: 500}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-neutral-100);background:var(--gradient-dark);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(ellipse at 20% 80%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(139,92,246,.1) 0%,transparent 50%),radial-gradient(ellipse at 40% 40%,rgba(168,85,247,.08) 0%,transparent 40%);pointer-events:none;z-index:-1}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(148,163,184,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-neutral-50);letter-spacing:-.025em}h1{font-size:var(--text-4xl);font-weight:var(--font-bold)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{color:var(--color-neutral-300)}small{font-size:var(--text-sm);color:var(--color-neutral-400)}.hidden{display:none!important}#auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-8);position:relative}#auth-container:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.2) 0%,transparent 70%);pointer-events:none;animation:pulse-glow 4s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.1)}}.auth-wrapper{width:100%;max-width:440px;position:relative;z-index:1}.auth-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-10);box-shadow:var(--shadow-2xl),var(--shadow-glow);position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary)}.auth-card h2{text-align:center;font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:var(--color-neutral-400);font-size:var(--text-sm);margin-bottom:var(--space-8);line-height:var(--leading-relaxed)}.auth-input-group{margin-bottom:var(--space-5)}.auth-input-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-neutral-300);margin-bottom:var(--space-2)}.auth-input-group input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-family:var(--font-primary);color:var(--color-neutral-100);background:#0f172a99;border:1px solid var(--color-neutral-700);border-radius:var(--radius-lg);outline:none;transition:all var(--transition-base)}.auth-input-group input::placeholder{color:var(--color-neutral-500)}.auth-input-group input:hover{border-color:var(--color-neutral-600)}.auth-input-group input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f133;background:#0f172acc}.auth-feedback{min-height:var(--space-6);font-size:var(--text-sm);color:var(--color-error-400);text-align:center;margin-bottom:var(--space-4)}.auth-feedback:empty{display:none}.auth-card button{width:100%;font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-semibold);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.auth-primary-btn{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 14px #6366f166;margin-bottom:var(--space-4)}.auth-primary-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.auth-primary-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.auth-primary-btn:hover:before{left:100%}.auth-primary-btn:active{transform:translateY(0)}.auth-secondary-actions{display:flex;flex-direction:column;gap:var(--space-3)}.auth-secondary-actions button{background:transparent;color:var(--color-neutral-400);border:1px solid var(--color-neutral-700)}.auth-secondary-actions button:hover{background:#6366f11a;border-color:var(--color-primary-500);color:var(--color-primary-400)}.auth-secondary-btn{background:var(--color-neutral-800)!important;color:var(--color-neutral-200)!important;border:1px solid var(--color-neutral-700)!important}.auth-secondary-btn:hover{background:var(--color-neutral-700)!important}.auth-user-info{text-align:center;color:var(--color-neutral-300);margin-bottom:var(--space-5)}.auth-user-info strong{color:var(--color-primary-400)}#auth-container.authenticated{justify-content:flex-end;min-height:auto;padding:var(--space-4) var(--space-6);background:transparent;position:fixed;top:0;right:0;left:0;z-index:var(--z-sticky)}#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-3) var(--space-5);background:#1e293be6;box-shadow:var(--shadow-lg);border-radius:var(--radius-xl)}#auth-container.authenticated .auth-card:before{display:none}#auth-container.authenticated .auth-user-info{margin:0;text-align:left;font-size:var(--text-sm);white-space:nowrap}#auth-container.authenticated .auth-card button{width:auto;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}#app{max-width:1400px;margin:0 auto;padding:var(--space-20) var(--space-6) var(--space-12)}.header{text-align:center;margin-bottom:var(--space-12);padding:var(--space-12) var(--space-8);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary)}.header:after{content:"";position:absolute;top:-50%;right:-20%;width:400px;height:400px;background:radial-gradient(circle,rgba(99,102,241,.1) 0%,transparent 70%);pointer-events:none}.header h1{font-size:var(--text-4xl);font-weight:var(--font-extrabold);margin-bottom:var(--space-4);background:linear-gradient(135deg,var(--color-neutral-50) 0%,var(--color-primary-300) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}.header p{font-size:var(--text-lg);color:var(--color-neutral-400);max-width:600px;margin:0 auto;position:relative;z-index:1}.main-content{display:grid;gap:var(--space-8)}.upload-section,.processing-section,.results-section{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-xl);transition:all var(--transition-slow);position:relative;overflow:hidden}.upload-section:hover,.processing-section:hover,.results-section:hover{border-color:#6366f133;box-shadow:var(--shadow-xl),var(--shadow-glow)}.upload-section h2,.processing-section h2,.results-section h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-neutral-100);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--glass-border);display:flex;align-items:center;gap:var(--space-3)}.upload-section h2:before{content:"📁";font-size:var(--text-2xl)}.processing-section h2:before{content:"⚡";font-size:var(--text-2xl)}.results-section h2:before{content:"📊";font-size:var(--text-2xl)}.file-upload-group{margin-bottom:var(--space-6)}.file-upload-label{display:block;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-neutral-200);margin-bottom:var(--space-3)}.file-upload-label small{display:block;font-weight:var(--font-normal);color:var(--color-neutral-500);font-size:var(--text-sm);margin-top:var(--space-1)}.file-drop-zone{position:relative;padding:var(--space-10) var(--space-6);border:2px dashed var(--color-neutral-700);border-radius:var(--radius-xl);background:#0f172a66;text-align:center;cursor:pointer;transition:all var(--transition-base);min-height:140px;display:flex;align-items:center;justify-content:center}.file-drop-zone:hover{border-color:var(--color-primary-500);background:#6366f10d}.file-drop-zone.drag-over{border-color:var(--color-success-400);background:#10b9811a;transform:scale(1.02);box-shadow:0 0 30px #10b98133}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop-zone-content{pointer-events:none}.drop-zone-icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.8;filter:grayscale(.3)}.drop-zone-content p{font-size:var(--text-base);color:var(--color-neutral-300);margin-bottom:var(--space-2);font-weight:var(--font-medium)}.drop-zone-content small{color:var(--color-neutral-500);font-size:var(--text-sm)}.file-info{margin-top:var(--space-3);padding:var(--space-4);background:#0f172a99;border-radius:var(--radius-lg);font-size:var(--text-sm);border-left:3px solid var(--color-neutral-600)}.file-info.success{background:#10b9811a;border-left-color:var(--color-success-500);color:var(--color-success-400)}.file-info.error{background:#f43f5e1a;border-left-color:var(--color-error-500);color:var(--color-error-400)}.naming-convention-guide{background:linear-gradient(135deg,#6366f126,#8b5cf61a);border:1px solid rgba(99,102,241,.2);padding:var(--space-6);border-radius:var(--radius-xl);margin-bottom:var(--space-6)}.naming-convention-guide h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-primary-300);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-2)}.convention-grid{display:grid;gap:var(--space-4)}.convention-item{background:#0f172a80;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--glass-border)}.convention-item strong{color:var(--color-neutral-200);font-weight:var(--font-medium)}.convention-item small{color:var(--color-neutral-500);font-size:var(--text-sm);font-family:var(--font-mono)}.file-upload-summary{background:#0f172a66;border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-5);margin-top:var(--space-6)}.file-upload-summary h3{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-neutral-200);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.upload-summary-grid{display:grid;gap:var(--space-3)}.summary-item{font-size:var(--text-sm);color:var(--color-neutral-400);padding:var(--space-2) 0;border-bottom:1px solid var(--glass-border)}.summary-item:last-child{border-bottom:none}.summary-item strong{color:var(--color-neutral-200)}.control-buttons{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.btn{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2);min-width:150px;justify-content:center;position:relative;overflow:hidden}.btn-icon{font-size:1.1em}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 14px #6366f166}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.btn-primary:hover:not(:disabled):before{left:100%}.btn-secondary{background:var(--color-neutral-800);color:var(--color-neutral-200);border:1px solid var(--color-neutral-700)}.btn-secondary:hover:not(:disabled){background:var(--color-neutral-700);border-color:var(--color-neutral-600)}.btn-info{background:#3b82f633;color:var(--color-primary-300);border:1px solid rgba(59,130,246,.3)}.btn-info:hover:not(:disabled){background:#3b82f64d;border-color:#3b82f680}.btn-success{background:var(--gradient-success);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98180}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.progress-container{margin:var(--space-6) 0;padding:var(--space-6);background:#0f172a99;border:1px solid var(--glass-border);border-radius:var(--radius-xl)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.progress-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-neutral-200)}.progress-percentage{font-size:var(--text-2xl);font-weight:var(--font-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress-bar{width:100%;height:10px;background:var(--color-neutral-800);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-4);box-shadow:inset 0 2px 4px #0003}.progress-fill{height:100%;background:var(--gradient-primary);transition:width var(--transition-slow);border-radius:var(--radius-full);position:relative}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-text{text-align:center;font-weight:var(--font-medium);color:var(--color-neutral-300);margin-bottom:var(--space-6)}.progress-step-indicator{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-6);position:relative}.step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;opacity:.4;transition:all var(--transition-base)}.step.active{opacity:1;transform:scale(1.05)}.step.completed{opacity:1}.step-icon{width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-neutral-800);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:var(--space-3);transition:all var(--transition-base);border:2px solid var(--color-neutral-700)}.step.active .step-icon{background:var(--gradient-primary);border-color:transparent;box-shadow:var(--shadow-glow);animation:pulse-step 2s infinite}.step.completed .step-icon{background:var(--gradient-success);border-color:transparent}.step-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-neutral-500);text-align:center}.step.active .step-label,.step.completed .step-label{color:var(--color-neutral-200);font-weight:var(--font-semibold)}.step:not(:last-child):after{content:"";position:absolute;top:28px;right:-50%;width:100%;height:2px;background:var(--color-neutral-700);z-index:-1}.step.completed:not(:last-child):after{background:var(--gradient-success)}@keyframes pulse-step{0%,to{box-shadow:0 0 #6366f180}50%{box-shadow:0 0 20px 5px #6366f14d}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-5);margin-top:var(--space-6)}.stat-card{padding:var(--space-6);background:#0f172a99;border:1px solid var(--glass-border);border-radius:var(--radius-xl);text-align:center;transition:all var(--transition-base);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--gradient-primary)}.stat-card:hover{transform:translateY(-4px);border-color:#6366f14d;box-shadow:var(--shadow-lg),var(--shadow-glow)}.stat-number{font-size:var(--text-4xl);font-weight:var(--font-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-2)}.stat-label{font-size:var(--text-sm);color:var(--color-neutral-400);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.message{padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);margin:var(--space-4) 0;font-size:var(--text-sm);font-weight:var(--font-medium);display:flex;align-items:center;gap:var(--space-3)}.message.error{background:#f43f5e1a;border:1px solid rgba(244,63,94,.3);color:var(--color-error-400)}.message.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--color-success-400)}.message.info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:var(--color-primary-300)}.download-section{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--glass-border);text-align:center}#validation-messages{margin-top:var(--space-4)}.results-summary h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-neutral-100);margin-bottom:var(--space-5)}@media(max-width:1024px){#app{padding:var(--space-16) var(--space-5) var(--space-8)}.header{padding:var(--space-8) var(--space-6)}.header h1{font-size:var(--text-3xl)}}@media(max-width:768px){:root{--text-4xl: 1.875rem;--text-3xl: 1.5rem}#app{padding:var(--space-12) var(--space-4) var(--space-6)}.header{padding:var(--space-6) var(--space-4);margin-bottom:var(--space-8)}.upload-section,.processing-section,.results-section{padding:var(--space-5)}.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}#auth-container.authenticated{position:relative;justify-content:center}#auth-container.authenticated .auth-card{flex-direction:column;text-align:center}}@media(max-width:480px){.auth-card{padding:var(--space-6)}.stats-grid{grid-template-columns:1fr}.step{flex:0 0 100%}}@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(--color-primary-500);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-neutral-900)}::-webkit-scrollbar-thumb{background:var(--color-neutral-700);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-600)}::selection{background:#6366f14d;color:var(--color-neutral-50)}.auth-logo{text-align:center;margin-bottom:var(--space-6)}.auth-logo svg{filter:drop-shadow(0 4px 12px rgba(99,102,241,.4))}.auth-primary-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.auth-primary-btn svg{transition:transform var(--transition-base)}.auth-primary-btn:hover svg{transform:translate(4px)}.auth-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--glass-border);text-align:center}.auth-footer span{font-size:var(--text-xs);color:var(--color-neutral-500);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.auth-user-status{color:var(--color-success-400);animation:pulse-status 2s infinite;font-size:var(--text-xs)}@keyframes pulse-status{0%,to{opacity:1}50%{opacity:.5}}.file-upload-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.label-icon{font-size:1.2em}.label-badge{font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.label-badge.required{background:#f43f5e33;color:var(--color-error-400);border:1px solid rgba(244,63,94,.3)}.label-badge.info{background:#6366f133;color:var(--color-primary-400);border:1px solid rgba(99,102,241,.3)}.drop-zone-icon{color:var(--color-neutral-500);margin-bottom:var(--space-4);transition:all var(--transition-base)}.file-drop-zone:hover .drop-zone-icon{color:var(--color-primary-400);transform:scale(1.1)}.file-drop-zone.drag-over .drop-zone-icon{color:var(--color-success-400)}.convention-item code{display:block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-primary-300);margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);background:#0f172a99;border-radius:var(--radius-md);border:1px solid var(--glass-border)}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-neutral-500)}.empty-state svg{margin-bottom:var(--space-4);opacity:.5}.empty-state p{font-size:var(--text-base);color:var(--color-neutral-400);margin-bottom:var(--space-2)}.empty-state small{font-size:var(--text-sm);color:var(--color-neutral-500)}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.results-header h3{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xl);color:var(--color-neutral-100)}.results-header h3 svg{color:var(--color-primary-400)}.success-rate{display:flex;flex-direction:column;align-items:flex-end}.success-rate .rate-value{font-size:var(--text-3xl);font-weight:var(--font-bold);background:var(--gradient-success);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.success-rate .rate-label{font-size:var(--text-sm);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:#6366f11a;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4);color:var(--color-primary-400)}.stat-icon.success{background:#10b9811a;color:var(--color-success-400)}.stat-icon.auth{background:#a855f71a;color:var(--color-accent-400)}.stat-icon.acm{background:#fbbf241a;color:var(--color-warning-400)}.btn .btn-icon{display:flex;align-items:center;justify-content:center}.btn .btn-icon svg{width:20px;height:20px}.progress-header h3{display:flex;align-items:center;gap:var(--space-3)}.progress-header h3 svg{color:var(--color-primary-400);animation:rotate-clock 10s linear infinite}@keyframes rotate-clock{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-summary-grid .summary-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#0f172a66;border-radius:var(--radius-lg);margin-bottom:var(--space-2);border:1px solid transparent;transition:all var(--transition-base)}.upload-summary-grid .summary-item:last-child{margin-bottom:0}.upload-summary-grid .summary-item.complete{border-color:#10b98133;background:#10b9810d}.upload-summary-grid .summary-item.pending{border-color:#94a3b81a}.upload-summary-grid .summary-item.total{border-color:#6366f133;background:#6366f10d;margin-top:var(--space-3)}.summary-status{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--text-sm)}.summary-item.complete .summary-status{color:var(--color-success-400);background:#10b98133}.summary-item.pending .summary-status{color:var(--color-neutral-500);background:#94a3b81a}.upload-summary-grid .summary-item strong{display:block;color:var(--color-neutral-200);font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-1)}.upload-summary-grid .summary-item small{display:block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-neutral-500);word-break:break-all;line-height:1.4}.upload-summary-grid .summary-item small.text-muted{font-family:var(--font-primary);font-style:italic;opacity:.7}.message div{flex:1}.message strong{display:block;margin-bottom:var(--space-1)}.message ul{list-style:disc;margin:0;padding-left:var(--space-4)}.message ul li{margin-bottom:var(--space-1)}.message ul li:last-child{margin-bottom:0}.naming-convention-guide h3{display:flex;align-items:center;gap:var(--space-2)}.naming-convention-guide h3 svg{flex-shrink:0}.file-upload-summary h3{display:flex;align-items:center;gap:var(--space-2)}.file-upload-summary h3 svg{color:var(--color-success-400)}.btn:disabled .btn-icon svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#validation-messages .message{display:flex;align-items:flex-start;gap:var(--space-3)}#validation-messages .message svg{flex-shrink:0;margin-top:2px}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}.upload-section:hover,.processing-section:hover,.results-section:hover{transform:translateY(-2px)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:var(--space-2) var(--space-3);background:var(--color-neutral-800);color:var(--color-neutral-100);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:var(--z-tooltip);box-shadow:var(--shadow-lg)}[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(-4px)}@media print{body{background:#fff;color:#000}.btn,.auth-card,#auth-container{display:none!important}.upload-section,.processing-section,.results-section{background:#fff;box-shadow:none;border:1px solid #ddd}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#app{animation:fadeInUp .6s ease-out}.header{animation:fadeInUp .6s ease-out .1s both}.upload-section{animation:fadeInUp .6s ease-out .2s both}.processing-section{animation:fadeInUp .6s ease-out .3s both}.results-section{animation:fadeInUp .6s ease-out .4s both}.auth-card{animation:scaleIn .4s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.file-drop-zone:not(.has-file){animation:subtle-pulse 3s ease-in-out infinite}@keyframes subtle-pulse{0%,to{border-color:var(--color-neutral-700)}50%{border-color:var(--color-neutral-600)}}@keyframes checkmark{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}.message.success svg path{stroke-dasharray:50;animation:checkmark .5s ease-out forwards}.stat-number{transition:all var(--transition-slow)}.stat-card:hover .stat-number{transform:scale(1.05)}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:active:after{width:300px;height:300px}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f166}.auth-input-group input:focus{box-shadow:0 0 0 3px #6366f133,0 0 20px #6366f11a}.progress-fill{box-shadow:0 0 20px #6366f180}.upload-section:hover h2:before,.processing-section:hover h2:before,.results-section:hover h2:before{filter:drop-shadow(0 0 8px rgba(99,102,241,.6))}.file-drop-zone:focus-within{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f133}input[type=checkbox],input[type=radio]{appearance:none;width:20px;height:20px;border:2px solid var(--color-neutral-600);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--transition-base)}input[type=radio]{border-radius:50%}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--gradient-primary);border-color:transparent}input[type=checkbox]:checked:after{content:"✓";display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 var(--space-1);background:var(--color-error-500);color:#fff;font-size:var(--text-xs);font-weight:var(--font-bold);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.upload-section:after,.processing-section:after,.results-section:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);transition:left .5s;pointer-events:none}.upload-section:hover:after,.processing-section:hover:after,.results-section:hover:after{left:100%}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:var(--space-2)}.status-dot.online{background:var(--color-success-400);box-shadow:0 0 8px var(--color-success-400)}.status-dot.offline{background:var(--color-neutral-500)}.status-dot.processing{background:var(--color-warning-400);animation:pulse-status 1s infinite}.skeleton{background:linear-gradient(90deg,var(--color-neutral-800) 25%,var(--color-neutral-700) 50%,var(--color-neutral-800) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.animate-number{transition:all .3s ease-out}.premium-border{position:relative;background:var(--glass-bg)}.premium-border:before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:var(--gradient-primary);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
