@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-sidebar:#0f172a;--bg-sidebar-hover:#1e293b;--text-primary:#0f172a;--text-secondary:#475569;--text-light:#fff;--text-muted:#94a3b8;--color-primary:#1e3a8a;--color-primary-light:#3b82f6;--color-primary-dark:#172554;--color-accent:#f59e0b;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-danger:#ef4444;--color-danger-bg:#fef2f2;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--color-info:#06b6d4;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--transition-fast:.15s ease;--transition-normal:.25s ease}[data-theme=dark]{--bg-primary:#020617;--bg-secondary:#0f172a;--bg-sidebar:#090d16;--bg-sidebar-hover:#1e293b;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-light:#fff;--text-muted:#64748b;--color-primary:#3b82f6;--color-primary-light:#60a5fa;--color-primary-dark:#1e3a8a;--color-success-bg:#064e3b;--color-danger-bg:#7f1d1d;--color-warning-bg:#78350f;--border-color:#1e293b;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app-container{width:100%;min-height:100vh;display:flex}.sidebar{background-color:var(--bg-sidebar);width:260px;color:var(--text-light);transition:width var(--transition-normal);box-shadow:var(--shadow-lg);z-index:10;flex-direction:column;flex-shrink:0;padding:1.5rem 1rem;display:flex}.main-content{flex-direction:column;flex-grow:1;min-width:0;display:flex;overflow-y:auto}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:70px;box-shadow:var(--shadow-sm);transition:background-color var(--transition-normal), border-color var(--transition-normal);justify-content:space-between;align-items:center;padding:0 2rem;display:flex}.content-body{flex-grow:1;width:100%;max-width:1600px;margin:0 auto;padding:2rem}h1{color:var(--text-primary);font-size:1.875rem;font-weight:700}h2{color:var(--text-primary);font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:600}p{color:var(--text-secondary)}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-normal), border-color var(--transition-normal);margin-bottom:1.5rem;padding:2rem}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text-primary);margin-bottom:.5rem;font-weight:500;display:block}.form-select,.form-input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-secondary);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.75rem 1rem}.form-select:focus,.form-input:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px #3b82f626}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:var(--text-light)}.btn-primary:hover{background-color:var(--color-primary-light);box-shadow:0 4px 12px #3b82f640}.btn-primary:active{transform:scale(.98)}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-primary)}.dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;background-color:var(--bg-primary);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast);padding:3rem 2rem}.dropzone.active{border-color:var(--color-primary-light);background-color:#3b82f60d}.badge{border-radius:9999px;align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:500;display:inline-flex}.badge-pending{background-color:var(--border-color);color:var(--text-secondary)}.badge-running{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success)}.badge-failed{background-color:var(--color-danger-bg);color:var(--color-danger)}.badge-skipped{color:#475569;background-color:#f1f5f9}.table-container{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-secondary);overflow-x:auto}.premium-table{border-collapse:collapse;text-align:left;width:100%}.premium-table th{background-color:var(--bg-primary);color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem;font-weight:600}.premium-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:1rem 1.5rem}.premium-table tbody tr:last-child td{border-bottom:none}.premium-table tbody tr{transition:background-color var(--transition-fast)}.premium-table tbody tr:hover{background-color:#3b82f605}.progress-container{background-color:var(--border-color);border-radius:9999px;width:100%;height:8px;margin-top:.5rem;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-light) 100%);border-radius:9999px;height:100%;transition:width .4s}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@media (width<=768px){.app-container{flex-direction:column}.sidebar{width:100%;box-shadow:var(--shadow-sm)}.header{padding:0 1rem}.content-body{padding:1rem}}
