@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#10213b;--navy-2:#18365d;--blue:#315fba;--blue-2:#4779d4;--ink:#17243a;--muted:#68778d;--surface:#f3f6fb;--line:#e3eaf4;--white:#fff;--radius:20px;--shadow:0 12px 34px rgba(24,48,83,.075);--shadow-hover:0 18px 42px rgba(24,48,83,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at top right,rgba(74,119,198,.07),transparent 35%),var(--surface);color:var(--ink);font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px;line-height:1.55}h1,h2,h3,h4,h5,.navbar-brand{font-family:'Manrope','DM Sans',sans-serif;letter-spacing:-.035em}h1,h2,h3,h4,h5{color:inherit;font-weight:800}a{transition:color .18s ease,background .18s ease}::selection{background:#dbe8ff;color:#153c7d}
.app-nav{position:sticky;top:0;z-index:1030;background:linear-gradient(110deg,#0c1c33 0%,#17385f 55%,#28528d 100%);box-shadow:0 8px 28px rgba(13,32,58,.18);min-height:72px;border-bottom:1px solid rgba(255,255,255,.13)}.app-nav .navbar-brand{font-size:1.03rem;font-weight:800;letter-spacing:-.025em;display:flex;align-items:center}.app-nav .navbar-brand i{display:inline-grid;place-items:center;width:39px;height:39px;border-radius:13px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.17);font-size:1.15rem}.app-nav .btn-outline-light{border-color:rgba(255,255,255,.35);border-radius:10px;padding:.45rem .8rem;font-weight:600}.app-nav .btn-outline-light:hover{background:#fff;color:var(--navy)}main.container-fluid{max-width:1800px;min-height:calc(100vh - 150px)}
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#10223d 0%,#1c416e 54%,#3566ae 100%);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:clamp(24px,3.4vw,38px);box-shadow:0 18px 44px rgba(22,52,91,.16)}.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.hero:before{width:330px;height:330px;right:-90px;top:-190px;border:1px solid rgba(255,255,255,.18);box-shadow:0 0 0 35px rgba(255,255,255,.035),0 0 0 75px rgba(255,255,255,.025)}.hero:after{width:180px;height:180px;right:17%;bottom:-150px;background:rgba(255,255,255,.08);filter:blur(2px)}.hero h1{color:#fff;letter-spacing:-.055em}.hero p{max-width:760px;line-height:1.7}.hero .text-white-50{color:rgba(240,246,255,.76)!important}.hero .badge{border-radius:999px;padding:.55rem .85rem;font-weight:700}
.panel,.kpi{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.panel{padding:clamp(18px,2.2vw,26px)}.panel:hover{box-shadow:var(--shadow-hover);border-color:#d3dfef}.kpi{position:relative;overflow:hidden;padding:20px;height:100%;min-height:120px}.kpi:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-34px;top:-38px;background:linear-gradient(135deg,rgba(65,112,196,.1),rgba(65,112,196,.015))}.kpi .value{font-family:'Manrope',sans-serif;font-size:clamp(1.65rem,2.4vw,2.15rem);font-weight:800;letter-spacing:-.065em;color:#172f54;line-height:1.2;margin-top:7px}.kpi .muted{font-weight:600;font-size:.82rem;letter-spacing:.005em}.kpi i{color:var(--blue)}.muted{color:var(--muted)!important}.small,.form-text{line-height:1.55}.badge-soft{background:#eaf1ff;color:#2c56a0;border:1px solid #d9e6ff;border-radius:999px;padding:.4rem .65rem;font-weight:700}.sidebar-link{display:block;padding:.72rem .9rem;border-radius:12px;color:#dce7f8;text-decoration:none;font-weight:600}.sidebar-link:hover,.sidebar-link.active{background:#ffffff18;color:#fff}
.btn{border-radius:11px;font-weight:700;letter-spacing:-.01em;padding:.62rem 1rem;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#315fba,#254b98);border-color:#2c56a6;box-shadow:0 5px 13px rgba(49,95,186,.16)}.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,#254f9f,#1d3f82);border-color:#254f9f;box-shadow:0 8px 18px rgba(49,95,186,.24)}.btn-outline-primary{color:#2b57a7;border-color:#cad8ef}.btn-outline-primary:hover{background:#eef4ff;color:#20468b;border-color:#b9cbed}.btn-success{box-shadow:0 4px 12px rgba(25,135,84,.12)}.btn-sm{padding:.42rem .7rem;border-radius:9px;font-size:.82rem}
.form-label{font-weight:700;font-size:.88rem;color:#34445c;margin-bottom:.45rem}.form-control,.form-select{border:1px solid #d8e2ef;border-radius:11px;padding:.72rem .85rem;color:#1d2b42;background-color:#fff;box-shadow:0 1px 2px rgba(20,40,70,.02);transition:border-color .18s ease,box-shadow .18s ease}.form-control::placeholder{color:#9aa7b8}.form-control:focus,.form-select:focus{border-color:#7196d8;box-shadow:0 0 0 .22rem rgba(49,95,186,.12)}.form-check-input{border-color:#b8c6d9}.form-check-input:checked{background-color:var(--blue);border-color:var(--blue)}.form-check-label{color:#44546b}.input-group-text{background:#f6f8fc;border-color:#d8e2ef;color:#5b6c84;border-radius:11px}
.table-responsive{border-radius:13px}.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);margin-bottom:0}.table thead th{background:#f4f7fc;color:#65758c;font-size:.73rem;text-transform:uppercase;letter-spacing:.065em;font-weight:800;border-bottom:1px solid #e4ebf4;white-space:nowrap}.table>:not(caption)>*>*{padding:.9rem .78rem;vertical-align:middle;border-bottom-color:#edf1f7}.table tbody tr{transition:background .15s ease}.table tbody tr:hover>*{background:rgba(235,242,252,.55)}.table tbody tr:last-child>*{border-bottom:0}.table .form-select{min-width:105px}.progress{background:#e8eef7;border-radius:99px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#315fba,#6d94e2);border-radius:99px}.badge{font-weight:700;letter-spacing:.005em;padding:.45em .7em;border-radius:999px}.alert{border:1px solid transparent;border-radius:13px;padding:14px 16px}.alert-info{background:#edf5ff;border-color:#d7e8ff;color:#234b83}.alert-warning{background:#fff8e8;border-color:#f4e4b6;color:#795715}.alert-success{background:#eaf8f0;border-color:#cdebd9;color:#1d6943}.alert-danger{background:#fff0f0;border-color:#f4d4d4;color:#9b2f35}
.empty-state{padding:34px 20px!important;text-align:center;color:var(--muted)!important}.empty-state:before{content:"";display:block;width:42px;height:42px;border-radius:14px;background:#edf3fc;margin:0 auto 12px;box-shadow:inset 0 0 0 1px #dce7f6}.border.rounded-3{border-color:var(--line)!important;border-radius:14px!important;background:#fafcff}.border-top{border-color:#e0e8f2!important}footer{color:var(--muted)}
/* Sign-in screen */
body:has(.panel form input[name="password"]){background:radial-gradient(ellipse at 15% 10%,rgba(68,112,190,.13),transparent 34%),radial-gradient(ellipse at 90% 85%,rgba(42,81,145,.09),transparent 30%),#f3f6fb}body:has(.panel form input[name="password"]) main{display:block;min-height:calc(100vh - 145px)}body:has(.panel form input[name="password"]) main>.row{width:100%;margin-left:0;margin-right:0;min-height:calc(100vh - 230px);align-items:center}body:has(.panel form input[name="password"]) .panel{padding:clamp(25px,4vw,38px);box-shadow:0 22px 60px rgba(25,50,87,.12)}body:has(.panel form input[name="password"]) .display-5{display:inline-grid;place-items:center;width:70px;height:70px;border-radius:23px;color:#fff!important;background:linear-gradient(135deg,#17345d,#3d70bf);box-shadow:0 12px 24px rgba(49,95,186,.24);font-size:2rem}body:has(.panel form input[name="password"]) .panel .h4{font-size:1.55rem}
@media(max-width:767.98px){.app-nav{min-height:64px}.app-nav .container-fluid{padding-left:14px!important;padding-right:14px!important}.app-nav .navbar-brand{font-size:.9rem}.app-nav .navbar-brand i{width:34px;height:34px;border-radius:10px}.app-nav .d-flex.align-items-center.gap-3.text-white.small{gap:.5rem!important;font-size:.72rem!important}.hero{border-radius:19px;padding:23px 20px}.hero h1{font-size:1.65rem}.panel{padding:17px;border-radius:16px}.kpi{padding:15px;min-height:105px;border-radius:15px}.kpi .value{font-size:1.65rem}.table>:not(caption)>*>*{padding:.72rem .6rem}.table{font-size:.87rem}main.container-fluid{padding-left:12px!important;padding-right:12px!important}.btn{white-space:normal}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
