*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#07090f;--bg-2:#0d1018;--surface:rgba(255,255,255,0.04);--surface-2:rgba(255,255,255,0.07);--border:rgba(255,255,255,0.09);--border-hover:rgba(255,255,255,0.18);--text:#e2e8f0;--muted:#7c8a9e;--accent:#7c3aed;--accent-2:#a78bfa;--accent-dim:rgba(124,58,237,0.15);--green:#10b981;--red:#ef4444;--yellow:#f59e0b;--blue:#3b82f6}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}body{font-family:Helvetica Neue,Avenir Next,Avenir,Arial Nova,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 45% at 50% -5%,rgba(124,58,237,.14) 0,transparent 65%),radial-gradient(ellipse 50% 35% at 85% 85%,rgba(59,130,246,.07) 0,transparent 55%);pointer-events:none;z-index:0}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseDot{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(234,179,8,.7)}60%{transform:scale(.85);box-shadow:0 0 0 5px rgba(234,179,8,0)}}@keyframes barGrow{0%{width:0!important}}@keyframes shimmerSlide{0%{background-position:-500px 0}to{background-position:500px 0}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px rgba(124,58,237,.25)}50%{box-shadow:0 0 40px rgba(124,58,237,.5)}}.kpi-card{background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:16px;padding:1.2rem 1.35rem;position:relative;overflow:hidden;transition:border-color .22s,transform .22s,box-shadow .22s;animation:fadeInUp .35s ease both}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18) 50%,transparent)}.kpi-card:hover{border-color:rgba(124,58,237,.38);box-shadow:0 6px 28px rgba(124,58,237,.12);transform:translateY(-2px)}.signal-card{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:13px;padding:1rem 1.15rem;transition:border-color .2s,transform .2s,box-shadow .2s;animation:fadeInUp .3s ease both}.signal-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.35)}.dash-card{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:16px;padding:1.3rem 1.45rem;margin-bottom:1rem;animation:fadeInUp .35s ease both;position:relative;overflow:hidden}.dash-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12) 50%,transparent)}.gradient-text{background:linear-gradient(135deg,#c4b5fd,#a78bfa 45%,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-green{background:linear-gradient(135deg,#6ee7b7,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot.running{background:#f59e0b;animation:pulseDot 1.2s ease-in-out infinite}.status-dot.healthy{background:#10b981;box-shadow:0 0 8px rgba(16,185,129,.6)}.status-dot.idle{background:#6b7280}.btn-primary{position:relative;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;border-radius:11px;padding:.62rem 1.35rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .22s;box-shadow:0 4px 18px rgba(124,58,237,.42);overflow:hidden}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.13) 50%,transparent);opacity:0;transition:opacity .3s}.btn-primary:hover:not(:disabled):after{opacity:1}.btn-primary:hover:not(:disabled){box-shadow:0 6px 28px rgba(124,58,237,.62);transform:translateY(-1px)}.btn-primary:disabled{opacity:.42;cursor:not-allowed;transform:none}.btn-success{position:relative;background:linear-gradient(135deg,#059669,#047857);color:#fff;border:none;border-radius:11px;padding:.62rem 1.35rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .22s;box-shadow:0 4px 18px rgba(5,150,105,.42)}.btn-success:hover:not(:disabled){box-shadow:0 6px 28px rgba(5,150,105,.6);transform:translateY(-1px)}.btn-success:disabled{opacity:.42;cursor:not-allowed;transform:none}.tab-bar{display:flex;gap:.3rem;margin-bottom:1.5rem;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:14px;padding:4px}.tab-btn{flex:1 1;background:transparent;border:none;color:var(--muted);font-size:.85rem;font-weight:500;padding:.52rem 1rem;cursor:pointer;border-radius:11px;transition:all .2s}.tab-btn:hover{color:var(--text);background:rgba(255,255,255,.05)}.tab-active{background:linear-gradient(135deg,rgba(124,58,237,.32),rgba(109,40,217,.22))!important;color:#c4b5fd!important;font-weight:600!important;box-shadow:0 2px 12px rgba(124,58,237,.22)}.hbar-track{background:rgba(255,255,255,.06);border-radius:5px;height:7px;overflow:hidden}.hbar-fill{height:100%;border-radius:5px;transition:width .9s cubic-bezier(.4,0,.2,1);animation:barGrow .9s cubic-bezier(.4,0,.2,1) both}.accordion-btn{width:100%;background:rgba(255,255,255,.04);border:none;padding:.72rem 1rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:var(--text);transition:background .15s}.accordion-btn:hover{background:rgba(255,255,255,.07)}.toast-ok{border:1px solid rgba(16,185,129,.45);color:#34d399;border-radius:11px;background:rgba(16,185,129,.08)}.toast-err,.toast-ok{display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-size:.85rem;margin-bottom:1rem;animation:fadeInUp .25s ease}.toast-err{border:1px solid rgba(239,68,68,.45);color:#f87171;border-radius:11px;background:rgba(239,68,68,.08)}.toggle-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:.28rem .75rem;font-size:.74rem;cursor:pointer;transition:all .15s}.toggle-btn:hover{border-color:var(--border-hover);color:var(--text)}.detail-toggle{background:transparent;border:none;color:var(--accent-2);font-size:.73rem;cursor:pointer;padding:.35rem 0 0;margin-left:24px;transition:color .15s}.detail-toggle:hover{color:#c4b5fd}.age-chip{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:11px;padding:.55rem 1.05rem;display:flex;gap:.5rem;align-items:center;transition:border-color .15s,box-shadow .15s}.age-chip:hover{border-color:var(--border-hover);box-shadow:0 2px 12px rgba(0,0,0,.2)}.filter-pill{border-radius:20px;padding:.26rem .85rem;font-size:.74rem;cursor:pointer;transition:all .15s;font-weight:500;border-width:1px;border-style:solid}.source-card{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02));border:1px solid var(--border);border-radius:14px;padding:1.05rem 1.2rem;transition:border-color .2s,transform .2s,box-shadow .2s;animation:fadeInUp .35s ease both}.source-card:hover{border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 6px 22px rgba(0,0,0,.28)}.metric-box{background:rgba(255,255,255,.04);border-radius:8px;padding:.38rem .52rem;transition:background .15s}.metric-box:hover{background:rgba(255,255,255,.07)}.signal-tag{border-radius:12px;padding:.15rem .58rem;font-size:.71rem;font-weight:600;border-width:1px;border-style:solid;white-space:nowrap}.top-signal-row{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem;margin-bottom:.55rem;transition:border-color .15s}.top-signal-row:hover{border-color:var(--border-hover)}.eng-badge{border-radius:10px;padding:.1rem .48rem;font-size:.68rem;font-weight:700;border-width:1px;border-style:solid}.timeline-bar{border-radius:4px 4px 0 0;transition:opacity .2s}.timeline-bar:hover{opacity:1!important}.empty-state{background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.1);border-radius:14px;padding:3rem 2rem;text-align:center;color:var(--muted);font-size:.9rem;animation:fadeIn .3s ease}.status-badge{display:flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:10px;padding:.45rem .9rem;font-size:.8rem;color:var(--text);white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.section-title{font-size:.87rem;font-weight:700;margin-bottom:.45rem;color:var(--text)}.section-subtitle{font-size:.71rem;color:var(--muted);margin-bottom:.9rem}