@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--bg-base:#05070e;--bg-surface:#090c16;--bg-card:#0e1320;--bg-elevated:#141a2a;--bg-hover:#1b2236;--glass-bg:rgba(14,19,32,.72);--glass-border:hsla(0,0%,100%,.07);--border:rgba(120,134,170,.16);--border-glow:rgba(124,92,246,.45);--accent-blue:#5b8def;--accent-indigo:#6366f1;--accent-cyan:#22d3ee;--accent-purple:#a855f7;--accent-violet:#8b5cf6;--accent-green:#2dd4a7;--accent-amber:#fbbf24;--accent-red:#f4516c;--accent-pink:#ec4899;--text-primary:#eef2fb;--text-secondary:#9aa6c2;--text-muted:#5a6685;--gradient-brand:linear-gradient(135deg,#a855f7,#6366f1 48%,#22d3ee);--gradient-blue:linear-gradient(135deg,#4f46e5,#5b8def);--gradient-cyan:linear-gradient(135deg,#0e7490,#22d3ee);--gradient-purple:linear-gradient(135deg,#7c3aed,#a855f7);--gradient-green:linear-gradient(135deg,#0d9488,#2dd4a7);--gradient-amber:linear-gradient(135deg,#d97706,#fbbf24);--gradient-hero:radial-gradient(1200px 520px at 18% -10%,rgba(124,92,246,.18),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(34,211,238,.12),transparent 55%);--shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow-md:0 8px 28px rgba(0,0,0,.45);--shadow-lg:0 18px 50px rgba(0,0,0,.55);--glow-blue:0 0 0 1px rgba(99,102,241,.25),0 10px 30px rgba(79,70,229,.18);--glow-brand:0 8px 30px rgba(124,92,246,.3);--glow-green:0 0 24px rgba(45,212,167,.22);--glow-red:0 0 26px rgba(244,81,108,.3);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--transition:0.22s cubic-bezier(0.34,1.2,0.4,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--gradient-hero)}.app-shell,.main-content{position:relative;z-index:1}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-violet),var(--accent-indigo));border-radius:99px;border:2px solid var(--bg-base)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(var(--accent-purple),var(--accent-blue))}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--glass-bg);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:100}.main-content{flex:1 1;min-width:0;overflow:auto}.sidebar-logo{padding:22px 20px 18px;border-bottom:1px solid var(--glass-border)}.logo-mark{gap:11px}.logo-icon,.logo-mark{display:flex;align-items:center}.logo-icon{width:38px;height:38px;background:var(--gradient-brand);border-radius:var(--radius-md);justify-content:center;font-size:18px;color:#fff;box-shadow:var(--glow-brand)}.logo-text{font-size:16px;font-weight:800;letter-spacing:-.3px;background:linear-gradient(90deg,#fff,#c7bfff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.logo-sub{font-size:9.5px;color:var(--text-muted);letter-spacing:1.2px;text-transform:uppercase;font-weight:600}.sidebar-nav{padding:12px 10px;flex:1 1}.nav-section-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;padding:14px 12px 7px;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-section-label.clickable{cursor:pointer}.nav-item,.nav-section-label.clickable:hover{color:var(--text-secondary)}.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;font-size:13.5px;font-weight:500;transition:all var(--transition);margin-bottom:3px;border:1px solid transparent}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:linear-gradient(90deg,rgba(124,92,246,.18),rgba(99,102,241,.06));color:#fff;border-color:rgba(124,92,246,.28)}.nav-item.active:before{content:"";position:absolute;left:-10px;top:18%;bottom:18%;width:3px;border-radius:99px;background:var(--gradient-brand)}.nav-item.active .nav-icon{color:var(--accent-violet)}.nav-icon{font-size:16px;width:20px;flex-shrink:0;text-align:center}.sidebar-footer{padding:14px;border-top:1px solid var(--glass-border);display:flex;flex-direction:column;gap:8px}.status-badge{display:flex;align-items:center;gap:9px;padding:9px 11px;background:rgba(45,212,167,.07);border:1px solid rgba(45,212,167,.18);border-radius:var(--radius-md);font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--accent-green);box-shadow:0 0 10px rgba(45,212,167,.7);animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;padding:30px 34px 0;gap:16px}.page-title{font-size:24px;font-weight:800;letter-spacing:-.5px}.page-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.page-body{padding:22px 34px 40px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.kpi-card{background:linear-gradient(180deg,hsla(0,0%,100%,.025),transparent),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all var(--transition);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--kpi-color,var(--gradient-brand));opacity:.9}.kpi-card:after{content:"";position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:var(--kpi-color,var(--accent-violet));opacity:.07;filter:blur(20px)}.kpi-card:hover{transform:translateY(-3px);border-color:var(--border-glow);box-shadow:var(--shadow-md)}.kpi-label{font-size:11.5px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.kpi-value{font-size:30px;font-weight:800;letter-spacing:-1px;margin:7px 0 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-change{font-size:12px;display:flex;align-items:center;gap:4px}.kpi-change.up{color:var(--accent-green)}.kpi-change.down{color:var(--accent-red)}.kpi-change.flat{color:var(--text-muted)}.card{background:linear-gradient(180deg,hsla(0,0%,100%,.022),transparent),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:-.2px}.card-icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px}.glass{background:var(--glass-bg);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.section-title{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:600}.badge-red{background:rgba(244,81,108,.13);color:#ff8fa3;border:1px solid rgba(244,81,108,.25)}.badge-amber{background:rgba(251,191,36,.13);color:#fcd34d;border:1px solid rgba(251,191,36,.25)}.badge-green{background:rgba(45,212,167,.13);color:#6ee7c8;border:1px solid rgba(45,212,167,.25)}.badge-blue{background:rgba(91,141,239,.14);color:#a9c5ff;border:1px solid rgba(91,141,239,.25)}.badge-purple{background:rgba(168,85,247,.14);color:#d6b4ff;border:1px solid rgba(168,85,247,.28)}.badge-gray{background:rgba(120,134,170,.12);color:#9aa6c2;border:1px solid rgba(120,134,170,.22)}.grid-2{grid-template-columns:1fr 1fr;grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:1fr 1fr 1fr;grid-gap:16px}.grid-2-1{grid-template-columns:2fr 1fr;grid-gap:16px}.grid-1-2,.grid-2-1{display:grid;gap:16px}.grid-1-2{grid-template-columns:1fr 2fr;grid-gap:16px}.grid-3-1{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:16px;gap:16px}@keyframes blink-alert{0%,to{box-shadow:0 0 0 2px rgba(244,81,108,.95),0 0 26px rgba(244,81,108,.6);border-color:rgba(244,81,108,.95)}50%{box-shadow:0 0 0 2px rgba(244,81,108,.15),0 0 6px rgba(244,81,108,.1);border-color:rgba(244,81,108,.25)}}.device-alert{animation:blink-alert 1s ease-in-out infinite}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:11px 14px;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:12px 14px;border-bottom:1px solid rgba(120,134,170,.08);color:var(--text-primary)}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 17px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition);font-family:inherit}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:var(--glow-brand)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 34px rgba(124,92,246,.42)}.btn-ghost{background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-glow)}.btn-purple{background:var(--gradient-purple);color:#fff;box-shadow:0 6px 20px rgba(168,85,247,.28)}.btn-purple:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 28px rgba(168,85,247,.4)}.chat-wrap{display:flex;flex-direction:column;height:calc(100vh - 80px)}.chat-messages{flex:1 1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.msg{display:flex;gap:12px;animation:slide-in .25s ease}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.msg-avatar.ai{background:var(--gradient-brand)}.msg-avatar.user{background:var(--bg-hover);border:1px solid var(--border)}.msg-bubble{max-width:75%;padding:12px 16px;border-radius:var(--radius-lg);line-height:1.7;font-size:13.5px}.msg-bubble.ai{background:var(--bg-card);border:1px solid var(--border);border-top-left-radius:4px}.msg-bubble.user{background:rgba(99,102,241,.16);border:1px solid rgba(99,102,241,.28);border-top-right-radius:4px;margin-left:auto}.msg.user{flex-direction:row-reverse}.chat-input-bar{padding:16px 20px;border-top:1px solid var(--border);background:var(--glass-bg);display:flex;gap:10px;align-items:flex-end}.chat-textarea{flex:1 1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 14px;font-size:13.5px;font-family:inherit;resize:none;max-height:120px;line-height:1.5;transition:border-color var(--transition)}.chat-textarea:focus{outline:none;border-color:var(--accent-violet);box-shadow:0 0 0 3px rgba(124,92,246,.15)}.chat-textarea::placeholder{color:var(--text-muted)}input,select,textarea{font-family:inherit}.input{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 13px;font-size:13.5px;transition:border-color var(--transition)}.input:focus{outline:none;border-color:var(--accent-violet);box-shadow:0 0 0 3px rgba(124,92,246,.15)}.divider{height:1px;background:var(--border);margin:16px 0}.text-sm{font-size:12px}.text-muted{color:var(--text-muted)}.text-sec{color:var(--text-secondary)}.flex-between{justify-content:space-between}.flex-between,.flex-center{display:flex;align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.fw-700{font-weight:700}.mono{font-family:JetBrains Mono,monospace}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-md);font-size:13px;margin-bottom:8px}.alert-red{background:rgba(244,81,108,.09);border:1px solid rgba(244,81,108,.25);color:#ff9dae}.alert-amber{background:rgba(251,191,36,.09);border:1px solid rgba(251,191,36,.25);color:#fde68a}.alert-green{background:rgba(45,212,167,.09);border:1px solid rgba(45,212,167,.25);color:#6ee7c8}.alert-blue{background:rgba(91,141,239,.09);border:1px solid rgba(91,141,239,.25);color:#a9c5ff}.recharts-text{fill:var(--text-secondary);font-size:12px}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:var(--border)}.recharts-cartesian-grid line{stroke:rgba(120,134,170,.1)}.custom-tooltip{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-glow);border-radius:var(--radius-md);padding:9px 13px;font-size:12.5px;color:var(--text-primary);box-shadow:var(--shadow-lg)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent-violet);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.progress-bar{height:7px;background:var(--bg-hover);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:var(--gradient-brand);transition:width .6s ease}.collapse-toggle{display:inline-flex;align-items:center;gap:7px;cursor:pointer;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-secondary);border-radius:99px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all var(--transition)}.collapse-toggle:hover{color:var(--text-primary);border-color:var(--border-glow)}.chevron{transition:transform var(--transition)}.chevron.collapsed{transform:rotate(-90deg)}@media (max-width:980px){.sidebar{display:none}.grid-1-2,.grid-2,.grid-2-1,.grid-3,.grid-3-1{grid-template-columns:1fr}.page-body{padding:16px}}