@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--bg-gradient:radial-gradient(ellipse at top, #111827, #030712);--panel-bg:#111827a6;--panel-border:#ffffff14;--panel-glow:0 10px 40px -10px #00000080;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#6366f126;--success:#10b981;--success-hover:#059669;--success-light:#10b98126;--warning:#f59e0b;--warning-hover:#d97706;--warning-light:#f59e0b26;--danger:#ef4444;--danger-hover:#dc2626;--danger-light:#ef444426;--text-primary:#f9fafb;--text-secondary:#9ca3af;--text-muted:#6b7280;--font-family:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#03071280}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app-container{flex-direction:column;gap:2rem;max-width:1400px;margin:0 auto;padding:2.5rem 1.5rem;display:flex}header{text-align:center;margin-bottom:1.5rem;position:relative}header:after{content:"";background:linear-gradient(90deg, transparent, var(--primary), transparent);border-radius:2px;width:80px;height:4px;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)}.logo-text{background:linear-gradient(135deg,#a5b4fc 0%,#6366f1 50%,#4338ca 100%);-webkit-text-fill-color:transparent;letter-spacing:-.025em;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:800}.subtitle{color:var(--text-secondary);font-size:1.1rem;font-weight:400}.glass-card{-webkit-backdrop-filter:blur(20px);background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--panel-glow);transition:var(--transition-smooth);border-radius:16px;padding:2rem}.glass-card:hover{border-color:#ffffff26;box-shadow:0 20px 50px -15px #000000b3}.stepper{justify-content:space-between;gap:1rem;margin-bottom:1rem;display:flex;position:relative}.stepper:before{content:"";z-index:1;background:#ffffff1a;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.step{z-index:2;flex-direction:column;flex:1;align-items:center;gap:.5rem;display:flex}.step-indicator{width:44px;height:44px;color:var(--text-secondary);transition:var(--transition-smooth);background:#1f2937;border:2px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;box-shadow:0 0 0 4px #1f293780}.step.active .step-indicator{background:var(--primary);border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 15px #6366f180}.step.completed .step-indicator{background:var(--success);border-color:var(--success);color:var(--text-primary);box-shadow:0 0 15px #10b9814d}.step-label{color:var(--text-secondary);text-align:center;transition:var(--transition-smooth);font-size:.9rem;font-weight:500}.step.active .step-label{color:var(--text-primary);font-weight:600}.step.completed .step-label{color:var(--success)}.upload-container{cursor:pointer;transition:var(--transition-smooth);background:#ffffff05;border:2px dashed #ffffff26;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding:4rem 2rem;display:flex}.upload-container:hover{border-color:var(--primary);background:#6366f10d}.upload-icon{width:64px;height:64px;color:var(--primary);background:var(--primary-light);transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;display:flex}.upload-container:hover .upload-icon{box-shadow:0 0 20px var(--primary-light);transform:scale(1.1)}.upload-text{text-align:center}.upload-text h3{margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.upload-text p{color:var(--text-secondary);font-size:.9rem}.file-info{background:#ffffff0a;border:1px dashed #ffffff1a;border-radius:8px;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem 1.25rem;display:flex}.table-container{border:1px solid var(--panel-border);border-radius:8px;margin-top:1.5rem;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.95rem}th{color:var(--text-secondary);border-bottom:2px solid var(--panel-border);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:#1f2937bf;padding:1rem 1.25rem;font-size:.8rem;font-weight:600}td{border-bottom:1px solid var(--panel-border);color:var(--text-primary);white-space:nowrap;background:#11182733;padding:1rem 1.25rem}tr:hover td{background:#ffffff05}.anomalies-grid{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.anomaly-card{transition:var(--transition-smooth);border-left:4px solid;border-radius:10px;align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.anomaly-card.info{border-left-color:var(--primary);background:#6366f10f}.anomaly-card.warning{border-left-color:var(--warning);background:#f59e0b0f}.anomaly-card.success{border-left-color:var(--success);background:#10b9810f}.anomaly-card.error{border-left-color:var(--danger);background:#ef44440f}.anomaly-icon{font-size:1.5rem}.anomaly-details{flex:1}.anomaly-details h4{margin-bottom:.25rem;font-size:.95rem;font-weight:600}.anomaly-details p{color:var(--text-secondary);font-size:.875rem}.anomaly-action-btn{cursor:pointer;transition:var(--transition-smooth);background:0 0;border:1px solid;border-radius:4px;margin-top:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500}.anomaly-card.warning .anomaly-action-btn{border-color:var(--warning);color:var(--warning)}.anomaly-card.warning .anomaly-action-btn:hover{background:var(--warning);color:#000}.badge{text-transform:uppercase;border-radius:9999px;align-items:center;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-primary{background:var(--primary-light);color:#818cf8;border:1px solid #6366f133}.badge-success{background:var(--success-light);color:#34d399;border:1px solid #10b98133}.badge-warning{background:var(--warning-light);color:#fbbf24;border:1px solid #f59e0b33}.badge-danger{background:var(--danger-light);color:#fb7185;border:1px solid #ef444433}input[type=number],input[type=text]{border:1px solid var(--panel-border);color:var(--text-primary);width:100%;font-family:var(--font-family);transition:var(--transition-smooth);background:#03071280;border-radius:6px;outline:none;padding:.5rem .75rem;font-size:.9rem}input[type=number]:focus,input[type=text]:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.btn{cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-family);transition:var(--transition-smooth);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, #4f46e5 100%);color:#fff;box-shadow:0 4px 14px #6366f166}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f199}.btn-primary:active{transform:translateY(0)}.btn-success{background:linear-gradient(135deg, var(--success) 0%, #059669 100%);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98199}.btn-secondary{color:var(--text-primary);background:#ffffff14;border:1px solid #ffffff1a}.btn-secondary:hover{background:#ffffff26;border-color:#fff3}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-container{justify-content:flex-end;gap:1rem;margin-top:1.5rem;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#030712d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--panel-border);background:#111827;border-radius:16px;flex-direction:column;width:100%;max-width:800px;max-height:90vh;display:flex;overflow-y:auto;box-shadow:0 25px 50px -12px #000c}.modal-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h3{font-size:1.5rem;font-weight:700}.close-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;font-size:1.5rem}.close-btn:hover{color:var(--text-primary);transform:scale(1.1)}.modal-body{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.formula-block{border:1px solid var(--panel-border);background:#03071266;border-radius:8px;padding:1rem 1.25rem}.formula-title{text-transform:uppercase;color:var(--primary);letter-spacing:.05em;margin-bottom:.5rem;font-size:.875rem;font-weight:700}.formula-math{color:var(--text-primary);white-space:pre-wrap;word-break:break-all;font-family:Courier New,Courier,monospace;font-size:.95rem;font-weight:700}.formula-result{color:var(--success);margin-top:.5rem;font-size:.9rem;font-weight:500}.has-anomaly{color:#fb7185;background:#ef444426!important}.has-fuzzy{color:#818cf8;background:#6366f126!important}.stats-panel{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:1rem;display:grid}.stat-card{border:1px solid var(--panel-border);background:#ffffff05;border-radius:12px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex;box-shadow:0 4px 6px -1px #0000001a}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.stat-value{color:var(--text-primary);font-size:1.75rem;font-weight:800}.stat-value.success{color:var(--success)}.stat-value.primary{color:var(--primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animated{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}.fuzzy-list-item{transition:var(--transition-smooth)}.fuzzy-list-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026;background:#6366f114!important;border-color:#6366f166!important}.anomaly-row{transition:var(--transition-smooth)}.anomaly-row:hover{filter:brightness(1.15);transform:translate(4px);box-shadow:0 4px 12px #00000040}
