#root{width:100%}:root,[data-theme=dark]{--bg:#1a0533;--card-bg:#220a3d;--card-bg-hover:#2d1250;--border:#3d1a6e;--text:#f5f0fa;--text-muted:#a78bcc;--accent:#6400aa;--accent-light:#9b4dff;--accent-dim:#6400aa26;--input-bg:#180430;--shadow:0 4px 24px #00000080;--shadow-sm:0 2px 8px #0000004d;--bandwidth-line:#f5f0fab3;--success:#00c853;--warning:#ff9100;--danger:#ff1744;--white:#fff;--fs-2xs:.625rem;--fs-xs:.7rem;--fs-sm:.775rem;--fs-base:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem}[data-theme=light]{--bg:#f7f5fa;--card-bg:#fff;--card-bg-hover:#faf8fc;--border:#e8e0f0;--text:#1a0533;--text-muted:#6b5b7e;--accent:#6400aa;--accent-light:#7b1fbd;--accent-dim:#6400aa0f;--input-bg:#f2eef7;--shadow:0 4px 24px #6400aa14;--shadow-sm:0 2px 8px #6400aa0d;--bandwidth-line:#1a053399;--success:#00c853;--warning:#ff9100;--danger:#ff1744;--white:#fff}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{flex:1;padding:1rem 1.25rem;overflow:auto}.header{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:1.1rem 1.5rem;display:flex}.header h1{font-size:var(--fs-md);color:var(--text);letter-spacing:-.3px;font-weight:700}.nav-actions{align-items:center;gap:1rem;display:flex}.nav-btn{background:var(--accent);color:var(--white);cursor:pointer;font-size:var(--fs-xs);border:none;border-radius:20px;padding:.4rem .85rem;font-weight:600;transition:opacity .2s}.nav-btn:hover{opacity:.9}.theme-toggle{background:var(--input-bg);border:1px solid var(--border);font-size:var(--fs-base);cursor:pointer;color:var(--text);border-radius:8px;padding:.3rem .5rem;transition:background .2s}.theme-toggle:hover{background:var(--card-bg-hover)}.live-badge{color:#00c853;font-weight:600;font-size:var(--fs-2xs);letter-spacing:.5px;background:#00c8531a;border-radius:20px;padding:.2rem .55rem;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dashboard{flex-direction:column;gap:1rem;display:flex}.grid-2col{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=900px){.grid-2col{grid-template-columns:1fr}}.card{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:1.5rem;transition:box-shadow .2s,border-color .2s,transform .2s}.card:hover{box-shadow:var(--shadow);border-color:var(--accent-light);transform:translateY(-1px)}.card h2{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:.75rem;font-weight:600}.graph-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.graph-header h2{font-size:var(--fs-sm);margin-bottom:0}.graph-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.graph-controls select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:var(--fs-xs);cursor:pointer;border-radius:20px;padding:.35rem .6rem;transition:border-color .2s}.graph-controls select:focus{border-color:var(--accent);outline:none}.range-selector{gap:.25rem;display:flex}.range-btn{background:var(--input-bg);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);border-radius:20px;padding:.3rem .65rem;font-weight:500;transition:all .2s}.range-btn:hover{background:var(--card-bg-hover);color:var(--text)}.range-btn.active{background:var(--accent);color:var(--white);border-color:var(--accent)}.anomaly-list{flex-direction:column;gap:.75rem;display:flex}.anomaly-item{background:var(--input-bg);border-left:4px solid;border-radius:12px;padding:1rem}.anomaly-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.badge{font-size:var(--fs-2xs);color:#fff;letter-spacing:.5px;border-radius:20px;padding:3px 8px;font-weight:700}.badge-accepted{background:var(--success)}.circuit-id{color:var(--accent-light);font-family:JetBrains Mono,Fira Code,monospace;font-size:var(--fs-sm)}.anomaly-details{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:1rem;display:flex}.status-ok{color:var(--success);font-size:var(--fs-base)}.predictions-list{flex-direction:column;gap:.75rem;display:flex}.prediction-item{background:var(--input-bg);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:border-color .2s}.prediction-item:hover{border-color:var(--accent-light)}.prediction-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.prediction-action{font-size:var(--fs-xs);color:var(--accent-light);text-transform:capitalize;background:var(--accent-dim);border-radius:12px;padding:2px 8px}.score-bars{flex-direction:column;gap:.5rem;display:flex}.score-bar{align-items:center;gap:.5rem;display:flex}.score-label{width:80px;font-size:var(--fs-xs);color:var(--text-muted);font-weight:500}.bar-track{background:var(--border);border-radius:8px;flex:1;height:8px;overflow:hidden}.bar-fill{border-radius:8px;height:100%;transition:width .5s}.score-value{width:40px;font-size:var(--fs-xs);text-align:right;font-family:monospace;font-weight:600}.signals{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.signal-tag{font-size:var(--fs-2xs);background:var(--accent-dim);color:var(--accent-light);border-radius:12px;padding:3px 8px;font-weight:500}.offers-list{flex-direction:column;gap:1rem;display:flex}.offer-item{background:var(--input-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;transition:border-color .2s}.offer-item:hover{border-color:var(--accent-light)}.offer-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.offer-product{color:var(--text);font-weight:600;font-size:var(--fs-base)}.offer-price{color:var(--accent-light);font-weight:700;font-size:var(--fs-md)}.offer-summary{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.75rem;line-height:1.5}.offer-meta{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.offer-actions{gap:.5rem;display:flex}.btn-approve{background:var(--accent);color:var(--white);cursor:pointer;font-weight:600;font-size:var(--fs-xs);border:none;border-radius:20px;padding:.4rem 1rem;transition:background .2s}.btn-approve:hover{background:var(--accent-light)}.btn-dismiss{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;font-size:var(--fs-xs);background:0 0;border-radius:20px;padding:.4rem 1rem;transition:all .2s}.btn-dismiss:hover{border-color:var(--text-muted);color:var(--text)}.churn-flash{color:var(--danger);font-size:var(--fs-xs);margin-left:.75rem;font-weight:600;animation:1s infinite flash}.boost-indicator{color:var(--success);font-size:var(--fs-2xs);margin-left:.75rem;font-weight:600}@keyframes flash{0%,to{opacity:1}50%{opacity:.3}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.remove-boost-btn:hover{cursor:pointer;transform:scale(1.05);background:#dc2626!important}.remove-boost-btn:active{transform:scale(.95);background:#991b1b!important}
