/* v7.7 polish layer: crisper type, sharper contrast, smoother motion, no layout shift */
:root{--v77-ease:cubic-bezier(.2,.8,.2,1);--nlbadge:0px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 1,"lnum" 1;color:#0f172a;background:#f4f6fb;overscroll-behavior-y:none}
img{max-width:100%;height:auto}
.brand-logo{width:40px;height:44px;object-fit:contain}
.topbar{backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px)}
.nav-btn,.tab-btn,.btn,.icon-btn{transition:background-color .18s var(--v77-ease),color .18s var(--v77-ease),transform .12s var(--v77-ease),box-shadow .18s var(--v77-ease);-webkit-tap-highlight-color:transparent}
.btn:active,.icon-btn:active,.tab-btn:active{transform:scale(.97)}
.btn:focus-visible,.nav-btn:focus-visible,.tab-btn:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(35,53,143,.35);outline-offset:2px}
.card,.kpi,details.bill{transition:box-shadow .2s var(--v77-ease),transform .2s var(--v77-ease)}
@media (hover:hover){.card:hover,.kpi:hover{box-shadow:0 8px 24px rgba(15,26,82,.10)}}
.kpi .v{font-size:20px;font-weight:800;letter-spacing:-.3px;color:#0b1550}
.kpi .k{color:#475569}
table{border-collapse:collapse;font-variant-numeric:tabular-nums}
th{color:#1e293b;font-weight:700}
.view{min-height:calc(100vh - 140px);contain:layout}
.view>*{animation:v77in .22s var(--v77-ease) both}
@keyframes v77in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* sign-in */
.auth{background:radial-gradient(1200px 600px at 20% -10%,#3346b8 0%,transparent 60%),linear-gradient(165deg,#0f1a52 0%,#1d2c7a 55%,#dfe4f5 100%);align-items:center;padding:24px 14px calc(24px + var(--nlbadge))}
.auth-card{border:1px solid rgba(255,255,255,.6);box-shadow:0 24px 60px rgba(8,15,52,.35),0 2px 6px rgba(8,15,52,.15);animation:v77in .3s var(--v77-ease) both}
.auth-card h1{font-size:24px;letter-spacing:-.3px;color:#0f1a52}
.auth-card input,.auth-card select{font-size:16px;border-color:#cfd6e6;transition:border-color .15s,box-shadow .15s}
.auth-card input:focus,.auth-card select:focus{border-color:#23358f;box-shadow:0 0 0 3px rgba(35,53,143,.18);outline:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.view{padding-bottom:28px}@media (max-width:899px){.view{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}
