@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;1,14..32,400&display=swap");:root{--accent:#1c26e6;--accent-dark:#1520c0;--accent-light:#eef0fd;--accent-rgb:28,38,230;--bg:#f5f6fa;--bg-1:#f0f1f6;--bg-2:#e8eaf0;--bg-card:#ffffff;--sidebar-bg:#0d0f1a;--sidebar-bg-hover:rgba(255,255,255,0.06);--sidebar-bg-active:rgba(28,38,230,0.85);--sidebar-text:#8892a4;--sidebar-text-hover:#c4cdd8;--sidebar-text-active:#ffffff;--sidebar-width:240px;--text:#0d0f1a;--text-2:#64748b;--text-3:#94a3b8;--border:#e2e8f0;--border-strong:#c8d0dc;--success:#16a34a;--success-light:#dcfce7;--success-text:#14532d;--warning:#d97706;--warning-light:#fef3c7;--warning-text:#78350f;--error:#dc2626;--error-light:#fee2e2;--error-text:#7f1d1d;--info:#2563eb;--info-light:#dbeafe;--info-text:#1e3a8a;--font:"Inter",system-ui,-apple-system,sans-serif;--radius:8px;--radius-sm:6px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px rgba(0,0,0,0.06);--shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 4px 12px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.04);--shadow-lg:0 8px 24px rgba(0,0,0,0.10),0 4px 8px rgba(0,0,0,0.05);--transition:all 0.15s ease}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.3;color:var(--text);letter-spacing:-.01em}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark)}input,select,textarea{font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);padding:8px 12px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}input::placeholder{color:var(--text-3)}.input{font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);padding:8px 12px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.input::placeholder{color:var(--text-3)}button{font-family:var(--font);border:none;outline:none}.btn,button{cursor:pointer;border-radius:var(--radius);font-size:14px;font-weight:500;transition:var(--transition)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:none;line-height:1;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(var(--accent-rgb),.35)}.btn-primary:hover{background:var(--accent-dark);box-shadow:0 2px 6px rgba(var(--accent-rgb),.4);color:#fff}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-card);color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--bg-1);border-color:var(--border-strong)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#15803d}.btn-ghost{background:transparent;color:var(--text-2);padding:6px 12px}.btn-ghost:hover{background:var(--bg-1);color:var(--text)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:var(--radius-sm)}.btn-xs{padding:3px 8px;font-size:11px;border-radius:4px}.btn-icon{padding:7px;border-radius:var(--radius-sm);background:transparent;color:var(--text-2)}.btn-icon:hover{background:var(--bg-1);color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.card--hover{transition:box-shadow .2s,border-color .2s,transform .15s;cursor:pointer}.card--hover:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge-info,.badge-new{background:var(--info-light);color:var(--info-text)}.badge-contacted{background:var(--warning-light);color:var(--warning-text)}.badge-qualified{background:var(--success-light);color:var(--success-text)}.badge-closed,.badge-inactive{background:#f1f5f9;color:#64748b}.badge-draft{background:#fff7ed;color:#9a3412}.badge-active,.badge-applied,.badge-published{background:var(--success-light);color:var(--success-text)}.badge-error,.badge-failed,.badge-rejected{background:var(--error-light);color:var(--error-text)}.badge-awaiting-approval,.badge-dry-run,.badge-validating,.badge-warning{background:var(--warning-light);color:var(--warning-text)}.badge-approved{background:var(--info-light);color:var(--info-text)}.badge-scheduled{background:#f3e8ff;color:#6b21a8}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot--good{background:var(--success);box-shadow:0 0 0 2px var(--success-light)}.status-dot--warn{background:var(--warning);box-shadow:0 0 0 2px var(--warning-light)}.status-dot--bad{background:var(--error);box-shadow:0 0 0 2px var(--error-light);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.form-group label{font-size:12px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);border-bottom:1.5px solid var(--border);background:var(--bg);white-space:nowrap}td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg)}.tabs{display:flex;border-bottom:1.5px solid var(--border);gap:0;margin-bottom:20px}.tab-btn{padding:9px 16px;font-size:13px;font-weight:500;color:var(--text-2);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer;transition:var(--transition);white-space:nowrap}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page-header__left{flex:1 1;min-width:0}.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.page-desc{font-size:13px;color:var(--text-2);margin-top:2px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.stats-grid--4{grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);transition:box-shadow .2s,transform .15s;position:relative;overflow:hidden}.stat-card--link:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none}.stat-card--link{display:block;text-decoration:none}.stat-card__icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:12px;flex-shrink:0}.stat-card__label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin-bottom:6px}.stat-card__value{font-size:30px;font-weight:700;color:var(--text);line-height:1;letter-spacing:-.02em}.stat-card__sub{font-size:12px;color:var(--text-2);margin-top:6px}.stat-card--good{border-left:3px solid var(--success)}.stat-card--warn{border-left:3px solid var(--warning)}.stat-card--bad{border-left:3px solid var(--error)}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);font-size:13px;margin-bottom:16px;line-height:1.5}.alert-error{background:var(--error-light);color:var(--error-text);border:1px solid #fca5a5}.alert-success{background:var(--success-light);color:var(--success-text);border:1px solid #86efac}.alert-info{background:var(--info-light);color:var(--info-text);border:1px solid #93c5fd}.alert-warning{background:var(--warning-light);color:var(--warning-text);border:1px solid #fcd34d}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}.spinner--sm{width:14px;height:14px;border-width:2px}.spinner--lg{width:28px;height:28px;border-width:3px}@keyframes spin{to{transform:rotate(1turn)}}.loading-state{padding:64px 24px;gap:12px;color:var(--text-2);font-size:14px}.empty-state,.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state{padding:56px 24px;text-align:center;gap:8px}.empty-state__icon{font-size:36px;margin-bottom:4px;opacity:.5}.empty-state__title{font-size:15px;font-weight:600;color:var(--text)}.empty-state__desc{font-size:13px;color:var(--text-2);max-width:280px;line-height:1.5}.toggle{position:relative;display:inline-block;width:40px;height:22px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:9999px;transition:.2s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:white;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translateX(18px)}.divider{height:1px;background:var(--border);margin:20px 0}.nav-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;gap:12px;margin-top:20px}.nav-tile{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--text);font-size:13px;font-weight:500;transition:var(--transition);box-shadow:var(--shadow-sm)}.nav-tile:hover{border-color:var(--accent);background:var(--accent-light);color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.nav-tile__icon{width:34px;height:34px;background:var(--bg-1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;transition:var(--transition)}.nav-tile:hover .nav-tile__icon{background:rgba(var(--accent-rgb),.12)}.nav-tile__text{flex:1 1}.nav-tile__arrow{color:var(--text-3);font-size:14px;transition:var(--transition)}.nav-tile:hover .nav-tile__arrow{color:var(--accent);transform:translateX(2px)}.progress-track{width:100%;height:6px;background:var(--bg-2);border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease}.progress-fill--success{background:var(--success)}.progress-fill--warn{background:var(--warning)}.progress-fill--error{background:var(--error)}pre{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-size:12px;overflow-x:auto;line-height:1.6;color:var(--text)}code,pre{font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace}code{font-size:.875em;background:var(--bg-2);padding:1px 5px;border-radius:4px;color:var(--accent-dark)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeIn .25s ease forwards}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}@media (max-width:768px){.form-row{grid-template-columns:1fr}.stats-grid--4{grid-template-columns:repeat(2,1fr)}}