/* === RESET & BASE === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#334155 transparent}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}
body{font-family:'Inter',system-ui,sans-serif;background:#0a0f1a;color:#f1f5f9;min-height:100vh;overflow-x:hidden;position:relative}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;opacity:.03}

/* === NOISE === */
.noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px}

/* === LAYOUT === */
.sidebar{width:260px;background:rgba(15,23,42,.95);border-right:1px solid rgba(51,65,85,.3);position:fixed;height:100vh;top:0;left:0;z-index:50;display:flex;flex-direction:column}
.sidebar .logo{padding:20px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(51,65,85,.3)}
.sidebar .logo-icon{height:36px;width:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(6,182,212,.2);color:#22d3ee;font-size:18px}
.sidebar .logo-text{font-size:18px;font-weight:700;color:#f8fafc}
.sidebar nav{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px}
.sidebar .footer{padding:16px;border-top:1px solid rgba(51,65,85,.3);font-size:11px;color:#475569;text-align:center}
.main{margin-left:260px;padding:32px;min-height:100vh}
@media(max-width:1024px){.sidebar{display:none}.main{margin-left:0;padding:16px}}

/* === NAV === */
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;background:none;width:100%;text-align:left}
.nav-item:hover,.nav-item.active{background:rgba(6,182,212,.1);color:#22d3ee}
.nav-item svg{width:20px;height:20px;flex-shrink:0}

/* === MOBILE MENU === */
.mobile-header{display:none;align-items:center;justify-content:space-between;padding:16px;background:rgba(15,23,42,.95);border-bottom:1px solid rgba(51,65,85,.3);position:sticky;top:0;z-index:40}
.mobile-header .menu-btn{background:none;border:none;color:#94a3b8;font-size:24px;cursor:pointer;padding:4px}
.mobile-sidebar{position:fixed;inset:0;z-index:60;background:rgba(10,15,26,.95);display:none;flex-direction:column;padding:20px}
.mobile-sidebar.active{display:flex}
.mobile-sidebar .close-btn{align-self:flex-end;background:none;border:none;color:#94a3b8;font-size:24px;cursor:pointer;margin-bottom:20px}
@media(max-width:1024px){.mobile-header{display:flex}}

/* === BENTO CARDS === */
.bento-card{background:rgba(15,23,42,.7);border:1px solid rgba(51,65,85,.4);border-radius:20px;padding:20px;box-shadow:inset 0 1px 0 0 rgba(255,255,255,.05);transition:all .3s cubic-bezier(.4,0,.2,1);animation:bentoFadeIn .5s cubic-bezier(.16,1,.3,1) both;position:relative;overflow:hidden}
.bento-card:hover{border-color:rgba(51,65,85,.5);transform:translateY(-2px);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.1),0 10px 40px -10px rgba(0,0,0,.5)}
@keyframes bentoFadeIn{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}

/* === GRID === */
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}
.grid-1{grid-template-columns:1fr}
@media(max-width:768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}

/* === HEADER === */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}
.page-header h1{font-size:24px;font-weight:700;color:#f8fafc}
.page-header p{color:#64748b;margin-top:4px;font-size:14px}

/* === STATS === */
.stat-card .top{display:flex;justify-content:space-between;align-items:flex-start}
.stat-card .card-icon{height:40px;width:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(6,182,212,.1);color:#22d3ee;font-size:18px;flex-shrink:0}
.stat-card .change{font-size:12px;font-weight:500;color:#4ade80}
.stat-card .change.negative{color:#f87171}
.stat-value{font-size:1.75rem;font-weight:700;color:#f8fafc;margin-top:16px}
.stat-label{font-size:.875rem;color:#64748b;margin-top:4px}

/* === BADGES === */
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:600;gap:6px}
.badge-success{border:1px solid rgba(34,197,94,.3);background:rgba(34,197,94,.15);color:#4ade80}
.badge-warning{border:1px solid rgba(251,191,36,.3);background:rgba(251,191,36,.15);color:#fbbf24}
.badge-error{border:1px solid rgba(239,68,68,.3);background:rgba(239,68,68,.15);color:#f87171}
.badge-info{border:1px solid rgba(6,182,212,.3);background:rgba(6,182,212,.15);color:#22d3ee}
.badge-neutral{border:1px solid rgba(100,116,139,.3);background:rgba(100,116,139,.15);color:#94a3b8}

/* === BUTTONS === */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;text-decoration:none}
.btn-primary{background:#06b6d4;color:#fff;box-shadow:0 0 20px rgba(6,182,212,.3)}
.btn-primary:hover{box-shadow:0 0 40px rgba(6,182,212,.5);transform:translateY(-1px)}
.btn-secondary{background:rgba(30,41,59,.5);color:#cbd5e1;border:1px solid rgba(51,65,85,.5)}
.btn-secondary:hover{background:rgba(30,41,59,.8);border-color:rgba(71,85,105,.5)}
.btn-ghost{background:none;color:#94a3b8}
.btn-ghost:hover{color:#f1f5f9;background:rgba(30,41,59,.5)}
.btn-danger{background:rgba(239,68,68,.1);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.btn-danger:hover{background:rgba(239,68,68,.2)}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-lg{padding:14px 28px;font-size:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* === INPUTS === */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:14px;font-weight:500;color:#cbd5e1;margin-bottom:6px}
.form-input{width:100%;border-radius:12px;border:1px solid rgba(51,65,85,.5);background:rgba(30,41,59,.5);padding:12px 16px;color:#f1f5f9;font-size:14px;outline:none;transition:all .2s;font-family:inherit}
.form-input:focus{border-color:rgba(6,182,212,.5);box-shadow:0 0 0 3px rgba(6,182,212,.1)}
.form-input::placeholder{color:#475569}
.form-input[type="password"]{letter-spacing:2px}
.form-hint{font-size:12px;color:#475569;margin-top:6px}
.form-error{font-size:12px;color:#f87171;margin-top:6px}

/* === TABLES === */
.table-wrap{overflow-x:auto;border-radius:12px}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:12px 16px;font-size:12px;font-weight:500;color:#64748b;border-bottom:1px solid rgba(51,65,85,.3);white-space:nowrap}
td{padding:12px 16px;font-size:14px;color:#cbd5e1;border-bottom:1px solid rgba(51,65,85,.2)}
tr:hover td{background:rgba(30,41,59,.3)}

/* === LOGIN === */
.login-page{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:16px}
.login-box{width:100%;max-width:420px}
.login-logo{text-align:center;margin-bottom:32px}
.login-logo .icon{height:64px;width:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:rgba(6,182,212,.2);color:#22d3ee;font-size:28px}
.login-logo h1{font-size:24px;font-weight:700;color:#f8fafc}
.login-logo p{margin-top:4px;font-size:14px;color:#64748b}

/* === TABS === */
.tabs{display:flex;gap:8px;margin-bottom:24px;padding:4px;background:rgba(30,41,59,.5);border-radius:12px;width:fit-content}
.tab{padding:8px 16px;border-radius:10px;font-size:14px;font-weight:500;color:#94a3b8;cursor:pointer;border:none;background:none;transition:all .2s}
.tab.active{background:rgba(6,182,212,.1);color:#22d3ee}
.tab:hover:not(.active){color:#cbd5e1}

/* === MODAL === */
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(10,15,26,.8);display:none;align-items:center;justify-content:center;padding:16px}
.modal-overlay.active{display:flex}
.modal{background:rgba(15,23,42,.95);border:1px solid rgba(51,65,85,.4);border-radius:20px;padding:24px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.modal-header h2{font-size:18px;font-weight:600;color:#f8fafc}
.modal-close{background:none;border:none;color:#64748b;font-size:20px;cursor:pointer}
.modal-close:hover{color:#f1f5f9}

/* === TOAST === */
.toast-container{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:rgba(15,23,42,.95);border:1px solid rgba(51,65,85,.4);border-radius:12px;padding:12px 16px;font-size:14px;color:#cbd5e1;box-shadow:0 10px 40px -10px rgba(0,0,0,.5);animation:toastIn .3s ease;max-width:320px}
.toast-success{border-color:rgba(34,197,94,.3);color:#4ade80}
.toast-error{border-color:rgba(239,68,68,.3);color:#f87171}
.toast-info{border-color:rgba(6,182,212,.3);color:#22d3ee}
@keyframes toastIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* === SPINNER === */
.spinner{height:24px;width:24px;border:2px solid rgba(6,182,212,.3);border-top-color:#22d3ee;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* === EMPTY STATE === */
.empty-state{text-align:center;padding:48px 24px;color:#64748b}
.empty-state .icon{font-size:48px;margin-bottom:16px;opacity:.5}
.empty-state h3{font-size:18px;font-weight:600;color:#94a3b8;margin-bottom:8px}
.empty-state p{font-size:14px}

/* === SKELETON === */
.skeleton{background:linear-gradient(90deg,rgba(30,41,59,.5) 25%,rgba(51,65,85,.3) 50%,rgba(30,41,59,.5) 75%);background-size:200% 100%;border-radius:8px;animation:skeleton 1.5s infinite}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* === SUB-CARD === */
.sub-card{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;background:rgba(30,41,59,.5);cursor:pointer;transition:all .2s;border:none;width:100%;text-align:left;color:inherit}
.sub-card:hover{background:rgba(30,41,59,.8)}
.sub-card .arrow{margin-left:auto;color:#475569;font-size:18px}

/* === CODE BLOCK === */
.code-block{background:rgba(15,23,42,.7);border:1px solid rgba(51,65,85,.4);border-radius:12px;padding:12px 16px;font-family:monospace;font-size:12px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* === HIDE === */
.hidden{display:none !important}
.fade-in{animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
