:root{--bg-base:#060a13;--bg-surface:#0b1120;--bg-card:#0f1a2c;--bg-hover:#162035;--border:#ffffff0f;--border-a:#0ea5e94d;--sky:#0ea5e9;--sky-d:#0ea5e91f;--violet:#8b5cf6;--violet-d:#8b5cf61f;--green:#10b981;--green-d:#10b9811a;--amber:#f59e0b;--amber-d:#f59e0b1a;--rose:#f43f5e;--rose-d:#f43f5e1a;--t1:#eef4ff;--t2:#8fa8c8;--t3:#3e5370;--sidebar-w:218px;--topbar-h:54px;--radius:10px;--radius-lg:14px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-base);color:var(--t1);-webkit-font-smoothing:antialiased;font-family:Figtree,sans-serif;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--t3);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--t2)}h1,h2,h3,h4{font-family:Sora,sans-serif}.mono{font-family:JetBrains Mono,monospace}.gradient-text{background:linear-gradient(135deg, #eef4ff 30%, var(--sky));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.pulse-dot{background:var(--green);border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite pulse-dot;display:inline-block}@keyframes dot-wave{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.typing-dot{background:var(--t2);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite dot-wave;display:inline-block}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes bar-fill{0%{width:0%}to{width:100%}}.chip:hover{cursor:pointer;background:#0ea5e933!important}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{background:var(--bg-hover);color:var(--t2);text-align:left;border-bottom:1px solid var(--border);padding:6px 10px;font-family:Figtree,sans-serif;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--t1);padding:6px 10px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-hover)}.badge{letter-spacing:.04em;border-radius:4px;align-items:center;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;display:inline-flex}.badge-high{background:var(--rose-d);color:var(--rose);border:1px solid #f43f5e40}.badge-med{background:var(--amber-d);color:var(--amber);border:1px solid #f59e0b40}.badge-low{background:var(--green-d);color:var(--green);border:1px solid #10b98140}button{cursor:pointer;border:none;font-family:Figtree,sans-serif;font-size:13px;font-weight:500;transition:all .18s}button:focus{outline:none}.btn-primary{background:var(--sky);color:#fff;border-radius:8px;padding:7px 14px}.btn-primary:hover{background:#0b90cf}.btn-outline{color:var(--sky);border:1px solid var(--border-a);background:0 0;border-radius:8px;padding:7px 14px}.btn-outline:hover{background:var(--sky-d)}.btn-ghost{color:var(--t2);border:1px solid var(--border);background:0 0;border-radius:8px;padding:7px 14px}.btn-ghost:hover{background:var(--bg-hover);color:var(--t1)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.card-lg{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}input[type=text],select,textarea{background:var(--bg-surface);border:1px solid var(--border);color:var(--t1);border-radius:8px;width:100%;padding:8px 12px;font-family:Figtree,sans-serif;font-size:13px;transition:border .18s}input[type=text]:focus,select:focus,textarea:focus{border-color:var(--border-a);outline:none}input[type=text]::placeholder,textarea::placeholder{color:var(--t3)}select{cursor:pointer}select option{background:var(--bg-surface)}input[type=checkbox]{accent-color:var(--sky);cursor:pointer;width:14px;height:14px}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.w-full{width:100%}.h-full{height:100%}.relative{position:relative}.absolute{position:absolute}.nav-active{background:var(--sky-d);border:1px solid var(--border-a);color:var(--sky)!important}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}
