/* DK-04MGSJ / Midnight Azure refinement v2 - additive: keep approved palette and data flows */
:root{--bg:#F6F9FC;--surface:#fff;--primary:#1D4ED8;--navy:#0F2B5B;--accent:#0EA5E9;--ink:#0F172A;--muted:#64748B;--border:#D9E2EC;--radius:16px;--shadow:0 1px 2px rgba(15,23,42,.04),0 10px 28px rgba(15,35,68,.06)}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{background:var(--bg);color:var(--ink);font-feature-settings:"tnum" 1;overscroll-behavior-y:none}
.btn,.nav-item,.subtab,.role-select,.control{transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s}
.btn:focus-visible,.nav-item:focus-visible,.subtab:focus-visible,.control:focus-visible,a:focus-visible{outline:3px solid #0EA5E9;outline-offset:2px}
.btn-primary{box-shadow:0 3px 12px rgba(29,78,216,.16)}
.btn-primary:hover{box-shadow:0 6px 16px rgba(29,78,216,.20)}
aside.sidebar{background:#0F2B5B;border-right:1px solid #254574}
.brandmark{background:#EAF3FF;color:var(--navy);border:1px solid rgba(255,255,255,.55);box-shadow:0 7px 16px rgba(0,0,0,.12)}
.nav-item{border:1px solid transparent}
.nav-item:hover{background:#183C6D;border-color:rgba(255,255,255,.06)}
.nav-item.active{background:#1C4376;border-color:#346295;box-shadow:inset 3px 0 #0EA5E9,0 4px 12px rgba(0,0,0,.12)}
.topbar{background:rgba(255,255,255,.97);box-shadow:0 2px 12px rgba(15,43,91,.025)}
.page-header{padding-bottom:5px}
.page-header h1{letter-spacing:-1px}
.page-sub{line-height:1.65}
.card,.roll-card,.metric,.stage-card{border-color:#DEE7F0;box-shadow:0 1px 2px rgba(15,23,42,.03),0 6px 22px rgba(15,43,91,.045)}
.card-head{background:linear-gradient(180deg,#fff 0%,#FBFDFF 100%)}
.metric-num,.roll-num{font-variant-numeric:tabular-nums lining-nums;font-weight:800}
.metric,.roll-card,.stage-card{contain:layout}
.table th{background:#F3F7FB;color:#506887}
.table tr:hover td{background:#F3F8FF}
.table td{line-height:1.55}
.stage-pill{font-weight:770}
.chart-main .card-body,.chart-bottom .card-body{overflow:hidden}
.bars-svg{display:block;width:100%;height:auto;min-width:0;max-width:100%}
.chart-mini-stats .metric,.kpi5 .metric{min-width:0}
.login-wrap{min-height:100dvh;align-items:center;gap:22px;max-width:1400px;margin-inline:auto;padding:clamp(18px,4vw,58px)}
.login-panel,.login-side{min-height:min(720px,90dvh);box-shadow:0 18px 60px rgba(15,43,91,.08);border-radius:22px}
.login-panel{border:1px solid #DAE4F0}
.login-head{background:linear-gradient(150deg,#F4F9FF 0%,#fff 78%)}
.login-head h1{line-height:1.12;letter-spacing:-1.1px}
.login-head p{line-height:1.7}
.login-logo{box-shadow:0 10px 25px rgba(15,43,91,.22)}
.login-side{background:linear-gradient(153deg,#0F2B5B 0%,#143766 58%,#0D2A53 100%);position:relative;isolation:isolate}
.login-side:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 95% 0%,rgba(14,165,233,.12),transparent 45%);pointer-events:none}
.login-side h2{max-width:500px}
.login-role{background:rgba(255,255,255,.06);border:1px solid rgba(190,216,246,.18)}
.login-role span{color:#C8DCF5}
.login-body{background:#fff}
.login-body input.control{min-height:46px;font-size:15px}
.login-submit{min-height:48px;font-size:14px}
.form-error:empty{display:none}
.info-banner{font-size:12px;line-height:1.65}
.modal{box-shadow:0 28px 90px rgba(8,33,66,.2)}
@media (max-width:1100px){.login-wrap{grid-template-columns:minmax(0,1fr) minmax(0,.83fr)}.login-panel,.login-side{min-height:0}.login-side{padding:30px}}
@media (max-width:820px){.login-wrap{padding:20px;grid-template-columns:minmax(0,1fr)}.login-panel{max-width:650px;width:100%;margin-inline:auto}.login-side{display:none}.page-header h1{font-size:clamp(24px,4.5vw,32px)}}
@media (max-width:550px){html{scroll-padding-top:55px}.login-wrap{display:flex;align-items:stretch;padding:0;min-height:100dvh}.login-panel{min-height:100dvh;border-radius:0;border:0;box-shadow:none;max-width:none}.login-head{padding:calc(28px + env(safe-area-inset-top,0px)) 22px 27px}.login-body{padding:22px}.login-head h1{font-size:30px}.login-head p{font-size:13px}.login-side{display:none}.login-logo{width:50px;height:50px}.product{padding-left:14px;padding-right:14px;padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}.page-header{gap:10px}.page-header h1{font-size:25px}.page-sub{font-size:12px}.metrics,.performance-metrics,.kpi5{gap:9px}.metric{padding:13px}.metric-num{font-size:19px}.card-head,.card-body{padding:15px}.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.chart-controls{gap:8px}.chart-mini-stats{gap:8px}.bars-svg{height:auto}.modal{max-height:calc(94dvh - env(safe-area-inset-bottom,0px))}.nav-item{min-height:43px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.login-side,.sidebar,.topbar{display:none!important}.product{padding:8px!important}.card{break-inside:avoid}}
