@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');
:root{--navy:#101f3b;--navy2:#182e52;--blue:#3978f6;--cyan:#22c4c9;--purple:#8065e9;--green:#20b889;--ink:#17243b;--muted:#7c8ba3;--line:#e8edf5;--surface:#fff;--bg:#f3f6fc}
*{box-sizing:border-box}body{font-family:Inter,system-ui,sans-serif;color:var(--ink)}.app-body{background:radial-gradient(circle at 85% 0%,#e9efff 0,transparent 28%),var(--bg)}
.app-shell{display:flex;min-height:100vh}.sidebar{width:264px;flex:0 0 264px;background:linear-gradient(165deg,#122440 0%,#172f55 55%,#243b70 100%);color:#fff;padding:22px 15px;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:10px 0 35px #182f5510}
.sidebar:before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:#4e80e933;right:-130px;top:120px;filter:blur(2px);pointer-events:none}
.sidebar-brand{display:flex;gap:12px;align-items:center;color:white;text-decoration:none;padding:4px 10px 26px;position:relative;z-index:1}.sidebar-brand b{display:block;font:800 15px 'Plus Jakarta Sans',sans-serif;letter-spacing:-.3px}.sidebar-brand small{display:block;color:#a9bdd8;font-size:9px;margin-top:4px;letter-spacing:.4px}
.brand-mark{width:49px;height:49px;border-radius:16px;background:linear-gradient(140deg,#39c8d0,#427bf3 55%,#8664eb);display:grid;place-items:center;color:white;font:800 19px 'Plus Jakarta Sans',sans-serif;box-shadow:0 9px 24px #2769dc66,inset 0 1px 0 #ffffff80}.small-mark{width:40px;height:40px;border-radius:13px;font-size:15px}
.sidebar-label{font-size:9px;letter-spacing:1.5px;color:#8199bb;padding:0 13px 10px;position:relative;z-index:1}.sidebar-nav{display:flex;flex-direction:column;gap:5px;position:relative;z-index:1}.side-link{display:flex;align-items:center;gap:12px;color:#c1cee0;text-decoration:none;padding:11px 12px;border-radius:11px;font-size:11px;font-weight:550;transition:.2s;border:1px solid transparent}.side-link i{font-size:16px;width:19px;text-align:center;color:#9db6db}.side-link:hover{background:#ffffff12;color:#fff;border-color:#ffffff10;transform:translateX(2px)}.side-link.active{background:linear-gradient(100deg,#367cf0,#655fe0);color:#fff;box-shadow:0 8px 22px #235cc755,inset 0 1px 0 #ffffff40}.side-link.active i{color:white}
.sidebar-bottom{margin-top:auto;padding:18px 11px 4px;color:#9bb0ce;font-size:9px;position:relative;z-index:1}.status-dot,.metric-dot{display:inline-block;width:7px;height:7px;background:#36d6a3;border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px #36d6a322}
.main-area{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:78px;background:#ffffffed;backdrop-filter:blur(16px);border-bottom:1px solid #e7edf6;display:flex;align-items:center;padding:0 30px;gap:15px;position:sticky;top:0;z-index:20}.topbar-kicker{font-size:8px;letter-spacing:1.6px;color:#8a98ad;font-weight:750}.topbar-title{font:800 17px 'Plus Jakarta Sans',sans-serif;letter-spacing:-.4px;margin-top:2px}.topbar-date{font-size:10px;color:var(--muted);background:#f4f7fc;padding:8px 11px;border-radius:9px}.user-chip{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:700}.user-chip small{display:block;color:var(--muted);font-size:9px;font-weight:500;margin-top:2px}.user-avatar{width:35px;height:35px;border-radius:12px;background:linear-gradient(135deg,#dceaff,#eee7ff);color:#4b68c7;display:grid;place-items:center;font-weight:800;box-shadow:inset 0 0 0 1px #dbe4f6}
.content-area{padding:26px 30px;flex:1}.app-footer{display:flex;padding:15px 30px;color:#94a0b1;font-size:9px;gap:8px}.welcome-banner{border-radius:20px;padding:29px 32px;background:linear-gradient(112deg,#18375f 0%,#2869bc 55%,#6559c9 100%);color:white;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;box-shadow:0 16px 35px #2859a329}.welcome-banner:after{content:"";position:absolute;width:260px;height:260px;border:1px solid #ffffff25;border-radius:50%;right:70px;top:-150px;box-shadow:0 0 0 28px #ffffff0b,0 0 0 58px #ffffff08}.welcome-banner h1{font:800 23px 'Plus Jakarta Sans',sans-serif;letter-spacing:-.6px;margin:8px 0}.welcome-banner p{font-size:11px;color:#dce9ff;margin:0}.welcome-icon{font-size:68px;color:#ffffffa8;padding-right:18px;filter:drop-shadow(0 8px 16px #102c5a66);z-index:1}.eyebrow{font-size:8px;letter-spacing:1.6px;font-weight:800}
.metric-card,.panel-card{background:var(--surface);border:1px solid #e8edf6;border-radius:16px;box-shadow:0 8px 24px #203d6710}.metric-card{padding:18px 19px;min-height:128px;position:relative;overflow:hidden;transition:.2s}.metric-card:hover{transform:translateY(-3px);box-shadow:0 13px 30px #203d6718}.metric-card:after{content:"";position:absolute;width:76px;height:76px;border-radius:50%;right:-27px;top:-28px;background:linear-gradient(135deg,#eaf1ff,#f4edff)}.metric-label{font-size:10px;color:var(--muted);font-weight:600;position:relative;z-index:1}.metric-value{font:800 27px 'Plus Jakarta Sans',sans-serif;margin:10px 0 5px;position:relative;z-index:1;letter-spacing:-.7px}.metric-foot{font-size:9px;color:#91a0b2;position:relative;z-index:1}.metric-dot{width:6px;height:6px;box-shadow:none}
.panel-card{padding:21px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-heading h2{font:800 14px 'Plus Jakarta Sans',sans-serif;margin:0;letter-spacing:-.2px}.panel-heading p{font-size:9px;color:var(--muted);margin:5px 0 0}.soft-badge{background:#edf3ff;color:#3769c3;border-radius:20px;padding:6px 10px;font-size:8px;font-weight:700;white-space:nowrap}.soft-badge.warning{background:#fff4df;color:#b77b17}
.chart-placeholder,.chart-box{height:235px}.ai-empty{text-align:center;padding:12px 10px}.ai-orb{width:58px;height:58px;border-radius:19px;background:linear-gradient(135deg,#e3f7fb,#e8eaff 55%,#f2e8ff);display:grid;place-items:center;color:#6556d4;font-size:25px;margin:0 auto 12px;box-shadow:0 8px 22px #7065d322}.ai-empty h3,.empty-state h3{font:800 12px 'Plus Jakarta Sans',sans-serif}.ai-empty p,.empty-state p{font-size:9px;color:var(--muted);line-height:1.7}.module-shortcut{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--ink);font-size:10px;font-weight:700;transition:.2s;background:linear-gradient(135deg,#fff,#fbfcff)}.module-shortcut>i:first-child{color:#526bd0;font-size:18px;background:#edf1ff;width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.module-shortcut:hover{border-color:#a9bdf0;background:#f8faff;transform:translateY(-2px);box-shadow:0 8px 18px #335c9910}
.empty-state{text-align:center;padding:48px 20px}.empty-state>i{font-size:40px;color:#7183d8;display:block;margin-bottom:13px}.mini-feature{height:100%;padding:17px;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(145deg,#fff,#fafbff)}.mini-feature i{font-size:22px;color:#5a69ce}.mini-feature b{font-size:10px}.mini-feature small{font-size:9px;color:var(--muted)}
.auth-body{min-height:100vh;background:radial-gradient(circle at 12% 18%,#4c78b6 0,transparent 30%),radial-gradient(circle at 90% 85%,#6456bd 0,transparent 30%),linear-gradient(135deg,#0e203b,#1c4776 58%,#5147a0);display:grid;place-items:center;padding:25px;position:relative;overflow:hidden}.auth-body:before,.auth-body:after{content:"";position:fixed;border:1px solid #ffffff18;border-radius:50%;width:460px;height:460px;pointer-events:none}.auth-body:before{top:-260px;right:-100px;box-shadow:0 0 0 35px #ffffff08,0 0 0 75px #ffffff05}.auth-body:after{bottom:-320px;left:-120px;box-shadow:0 0 0 35px #ffffff08,0 0 0 75px #ffffff05}.auth-wrap{width:min(100%,445px);position:relative;z-index:1}.auth-brand{display:flex;align-items:center;justify-content:center;gap:13px;color:white;margin-bottom:22px}.brand-title{font:800 21px 'Plus Jakarta Sans',sans-serif}.brand-subtitle{font-size:9px;color:#c8d8ed;letter-spacing:.3px}.auth-card{background:#ffffff;border:1px solid #ffffff90;border-radius:23px;padding:35px;box-shadow:0 28px 80px #07172b70}.login-heading .eyebrow{font-size:8px;letter-spacing:1.6px;color:#5b72c9;font-weight:800}.login-heading h1{font:800 22px 'Plus Jakarta Sans',sans-serif;margin:8px 0}.login-heading p{font-size:10px;color:var(--muted);margin-bottom:25px}.form-label{font-size:10px;font-weight:700;color:#40516c}.form-control{font-size:11px;border-color:#dfe6f0;padding:12px 13px;border-radius:10px}.form-control:focus{border-color:#7699ef;box-shadow:0 0 0 .2rem #4779e51a}.btn-primary{background:linear-gradient(100deg,#2867d9,#6957d3);border:0;box-shadow:0 8px 18px #476cce30;font-weight:700}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.login-note{font-size:8px;color:#8290a2;text-align:center;margin-top:18px}.auth-copy{text-align:center;color:#c1d0e4;font-size:8px;margin-top:20px}
@media(max-width:991px){.sidebar{position:fixed;z-index:1000;left:-275px;top:0;bottom:0;transition:left .2s}.sidebar.show{left:0}.content-area{padding:18px}.topbar{padding:0 18px}.welcome-banner h1{font-size:18px}.welcome-icon{font-size:45px}}
@media(max-width:575px){.content-area{padding:14px}.welcome-banner{padding:22px}.welcome-icon{display:none}.panel-card{padding:16px}.auth-card{padding:25px}}

/* Dashboard live charts */
.chart-box{position:relative;min-height:220px}.chart-box canvas{max-width:100%}
