:root{
  --bg:#f3f6fb;
  --bg-soft:#eef3fa;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --text:#0f172a;
  --muted:#64748b;
  --muted-2:#94a3b8;
  --line:#e2e8f0;
  --line-soft:#edf2f7;
  --line-strong:#d4deea;

  --brand:#2563eb;
  --accent:#7c3aed;
  --success:#16a34a;
  --warning:#d97706;
  --danger:#dc2626;

  --sidebar-bg:linear-gradient(180deg,#071224 0%,#040c1b 100%);
  --sidebar-width:280px;

  --radius-xl:24px;
  --radius-lg:18px;
  --radius-md:14px;
  --radius-sm:10px;

  --shadow-sm:0 8px 20px rgba(15,23,42,.05);
  --shadow-md:0 16px 36px rgba(15,23,42,.08);
  --shadow-lg:0 24px 56px rgba(15,23,42,.12);

  --main-padding:24px;
  --input-height:50px;
  --content-max:1520px;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;min-height:100%;}
body{
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.08), transparent 26%),
    radial-gradient(circle at top right, rgba(124,58,237,.06), transparent 22%),
    linear-gradient(180deg,#eef2f8 0%, #f7f9fc 100%);
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.sidebar-open{overflow:hidden;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
button,input,select,textarea{font:inherit;}
button{cursor:pointer;}
main{display:block;}

/* app shell */
.app-shell{min-height:100vh;display:flex;align-items:stretch;}
.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar-width);
  padding:20px 16px 18px;
  background:var(--sidebar-bg);
  color:#fff;
  overflow-y:auto;
  overflow-x:hidden;
  box-shadow:inset -1px 0 0 rgba(255,255,255,.05);
  z-index:1100;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.sidebar::-webkit-scrollbar,.sidebar-nav::-webkit-scrollbar{width:8px;}
.sidebar::-webkit-scrollbar-thumb,.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:999px;}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 4px 16px;border-bottom:1px solid rgba(255,255,255,.08);}
.brand-mark{width:50px;height:50px;flex:0 0 50px;border-radius:16px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:22px;background:linear-gradient(135deg,var(--brand),var(--accent));box-shadow:0 12px 26px rgba(37,99,235,.26);}
.brand-title{font-size:15px;font-weight:800;color:#fff;line-height:1.2;}
.brand-subtitle{font-size:12px;color:#cbd5e1;margin-top:3px;line-height:1.3;}
.sidebar-nav{flex:1;min-height:0;overflow:auto;padding-right:2px;}
.sidebar-group{margin-bottom:12px;}
.sidebar-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:none;padding:8px 8px 10px;border-radius:12px;transition:background .18s ease;}
.sidebar-group-toggle:hover{background:rgba(255,255,255,.05);}
.sidebar-group-title{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#93a4bf;text-align:left;}
.sidebar-group-arrow{font-size:12px;color:#93a4bf;transition:transform .2s ease;}
.sidebar-group-content{display:none;padding-top:2px;}
.sidebar-group.open .sidebar-group-content{display:block;}
.sidebar-group.open .sidebar-group-arrow{transform:rotate(0deg);}
.sidebar-group:not(.open) .sidebar-group-arrow{transform:rotate(-90deg);}
.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 12px;margin-bottom:4px;border-radius:14px;color:#dbe7fb;font-size:14px;font-weight:700;letter-spacing:.01em;transition:all .18s ease;}
.sidebar-link i{width:18px;font-size:15px;text-align:center;opacity:.95;}
.sidebar-link:hover{background:rgba(255,255,255,.07);color:#fff;}
.sidebar-link.active{color:#fff;background:linear-gradient(90deg,rgba(59,130,246,.18),rgba(124,58,237,.18));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding-top:14px;}
.sidebar-user{margin-bottom:12px;}
.sidebar-user-name{font-size:15px;font-weight:800;color:#fff;line-height:1.2;}
.sidebar-user-email{margin-top:4px;font-size:13px;color:#cbd5e1;word-break:break-word;}
.main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));min-height:100vh;}
.main-inner,.main{padding:0;}
.main > .container,
.main > .container-fluid,
.main-inner > .container,
.main-inner > .container-fluid{
  width:100% !important;
  max-width:var(--content-max) !important;
  margin:0 auto !important;
  padding:var(--main-padding) !important;
}
.main-inner{min-height:100vh;}
.sidebar + .main{overflow-x:hidden;}

.sidebar-mobile-toggle{
  position:fixed;top:14px;left:14px;z-index:1201;width:46px;height:46px;display:none;align-items:center;justify-content:center;
  border-radius:15px;border:1px solid rgba(226,232,240,.95);background:rgba(255,255,255,.96);box-shadow:var(--shadow-md);color:var(--text);
}
.sidebar-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1090;}
.sidebar-overlay.show{opacity:1;pointer-events:auto;}

/* auth */
.auth-layout{min-height:100vh;display:grid;place-items:center;padding:24px;background:
  radial-gradient(circle at top left, rgba(59,130,246,.18), transparent 34%),
  radial-gradient(circle at bottom right, rgba(124,58,237,.14), transparent 32%),
  linear-gradient(180deg,#edf2f9 0%, #f7f9fc 100%);
}
.login-page,.login-shell{width:min(1320px,100%);margin:0 auto;}
.login-shell{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:stretch;}
.login-showcase,.login-card{border-radius:32px;box-shadow:var(--shadow-md);}
.login-showcase{
  min-height:700px;padding:50px 48px 40px;color:#fff;overflow:hidden;
  background:
    radial-gradient(circle at 15% 12%, rgba(59,130,246,.30) 0%, rgba(59,130,246,0) 24%),
    radial-gradient(circle at 82% 85%, rgba(124,58,237,.22) 0%, rgba(124,58,237,0) 24%),
    linear-gradient(135deg,#10295f 0%,#050d1d 55%,#07122a 100%);
}
.login-showcase h1{font-size:60px;line-height:1.06;margin:20px 0 22px;font-weight:900;max-width:720px;}
.login-showcase p{font-size:18px;line-height:1.65;max-width:760px;margin:0 0 30px;}
.login-card{min-height:700px;background:#fff;border:1px solid rgba(226,232,240,.9);padding:50px 42px;display:flex;flex-direction:column;justify-content:center;}
.login-card .h2{font-size:52px;line-height:1.08;font-weight:900;margin:8px 0 12px;}
.login-card .text-uppercase{letter-spacing:.10em;font-size:14px;}
.login-card .form-control,.login-card .form-select{min-height:58px;font-size:16px;border-radius:18px;}
.login-card .btn{min-height:56px;font-size:18px;border-radius:18px;}
.glass-note{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#e2e8f0;border-radius:24px;padding:22px 20px;min-height:140px;backdrop-filter:blur(8px);}
.glass-note .fw-bold{color:#fff;font-size:20px;line-height:1.25;margin-bottom:10px;font-weight:800 !important;}
.glass-note .small{color:#dbeafe !important;font-size:15px;line-height:1.55;}
.hero-text{background:linear-gradient(90deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}

/* generic cards */
.card-premium{
  position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,251,255,.96) 100%);
  border:1px solid rgba(226,232,240,.95);
  border-radius:24px;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.card-premium::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--brand) 0%,var(--accent) 100%);opacity:.92;}
.card-premium:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#d7e0ea;}
.card-premium.p-3{padding:18px !important;}
.card-premium.p-4{padding:22px !important;}
.module-form-card,.table-card{height:100%;}
.search-card{margin-bottom:24px;}
.sheet{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm);}

/* new page system */
.page-shell{display:flex;flex-direction:column;gap:24px;}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.page-title{margin:0;font-size:28px;line-height:1.12;font-weight:900;letter-spacing:-.03em;}
.page-subtitle{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.55;max-width:760px;}
.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.page-stack{display:flex;flex-direction:column;gap:24px;}
.ui-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.ui-card-title{margin:0;font-size:18px;line-height:1.25;font-weight:800;letter-spacing:-.02em;}
.ui-card-subtitle{margin:6px 0 0;font-size:13px;color:var(--muted);line-height:1.5;}
.page-kicker,.tiny-label{
  display:inline-block;margin-bottom:8px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:#94a3b8;
}
.content-grid-split{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:24px;align-items:start;}
.content-grid-even{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
.sticky-card{position:sticky;top:24px;}

/* dashboard */
.dashboard-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.dashboard-kpi{padding:0 !important;min-height:126px !important;height:auto !important;}
.dashboard-kpi .metric-body{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:126px;padding:18px 20px;}
.dashboard-kpi .metric-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;}
.dashboard-kpi .kpi-number,.stat-number,.display-6{font-size:30px;line-height:1.05;font-weight:900;letter-spacing:-.03em;margin:0 0 10px;}
.dashboard-kpi .text-secondary.small{font-size:13px !important;margin-bottom:6px !important;}
.metric{position:relative;overflow:hidden;height:100%;border-radius:22px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);border:1px solid rgba(226,232,240,.8);}
.metric::after{content:"";position:absolute;inset:auto -30px -30px auto;width:120px;height:120px;background:radial-gradient(circle, rgba(37,99,235,.10) 0%, transparent 70%);pointer-events:none;}
.metric .icon,.icon-badge,.dashboard-kpi .icon{width:54px;height:54px;min-width:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(180deg,#eef2ff 0%, #e9f1ff 100%);border:1px solid rgba(37,99,235,.10);color:#3b82f6;font-size:1.25rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.metric .trend,.stat-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:31px;padding:6px 12px;border-radius:999px;background:#eef2ff;border:1px solid #dbe5ff;color:#4f5f88;font-size:12px;font-weight:800;}
.dashboard-note-list{display:grid;gap:12px;margin-top:14px;}
.dashboard-note{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);}
.dashboard-note:last-child{border-bottom:none;padding-bottom:0;}
.dashboard-note-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#eef2ff;color:var(--brand);flex:0 0 auto;}
.metric-list{display:grid;gap:14px;}
.metric-list-row{display:flex;justify-content:space-between;gap:14px;align-items:center;}
.metric-list-row strong{font-size:14px;}
.progress-thin{height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden;}
.progress-thin span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));}

/* forms */
form{margin:0;}
.form-2col,.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:start;}
.form-2col > .full,.form-grid-2 > .full,.form-2col > .col-span-2,.form-grid-2 > .col-span-2{grid-column:1 / -1;}
.form-section{padding-top:2px;}
.section-kicker{display:block;margin-bottom:12px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8;}
.form-actions{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.form-label{display:block;margin:0 0 8px;font-size:14px;font-weight:700;color:#334155;}
.field-hint,.form-text{margin-top:7px;font-size:12px;line-height:1.45;color:#64748b;}
.form-control,.form-select,textarea.form-control,input[type="date"].form-control,input[type="file"].form-control{
  width:100%;min-height:var(--input-height);padding:10px 14px;border-radius:14px;border:1px solid var(--line-strong);background:#fff;color:#0f172a;font-size:15px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
textarea.form-control{min-height:116px;height:auto;padding:14px 15px;resize:vertical;}
input[type="file"].form-control{padding:12px 14px;}
.form-control::placeholder,textarea.form-control::placeholder{color:#98a3b5;}
.form-control:focus,.form-select:focus,textarea.form-control:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(59,130,246,.10);outline:none;background:#fff;}
.password-wrap{position:relative;}
.password-wrap .form-control{padding-right:98px;}
.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:#475569;}
.form-check{display:flex;align-items:flex-start;gap:10px;}
.form-check-input{width:18px;height:18px;margin:2px 0 0;border:1px solid #b7c5d8;border-radius:5px;accent-color:#0f172a;flex:0 0 auto;}
.form-check-label{font-size:14px;color:#334155;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:14px;border:1px solid transparent;font-size:14px;font-weight:800;letter-spacing:.01em;transition:all .18s ease;white-space:nowrap;}
.btn:hover{transform:translateY(-1px);}
.btn-sm{min-height:36px;padding:0 12px;font-size:12px;border-radius:999px;}
.btn-premium{border-radius:14px;}
.btn-dark,.btn-primary,.btn-primary-premium{background:linear-gradient(180deg,#0a1733 0%,#08152f 100%);color:#fff;border-color:#08152f;box-shadow:0 10px 24px rgba(8,21,47,.16);}
.btn-dark:hover,.btn-primary:hover,.btn-primary-premium:hover{box-shadow:0 14px 30px rgba(8,21,47,.22);}
.btn-outline-secondary{background:#fff;color:#475569;border-color:var(--line-strong);}
.btn-outline-secondary:hover{background:#f8fbff;border-color:#c6d4e7;}
.btn-outline-primary{background:#fff;color:#1d4ed8;border-color:rgba(59,130,246,.28);}
.btn-outline-primary:hover{background:#eff6ff;}
.btn-outline-danger{background:#fff;color:#b91c1c;border-color:rgba(239,68,68,.28);}
.btn-outline-danger:hover{background:#fef2f2;}
.btn-outline-dark{background:#fff;color:#0f172a;border-color:#cbd5e1;}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.14);}
.btn-outline-light:hover{background:rgba(255,255,255,.07);}
.btn-ghost{background:#fff;border-color:#dbe5ef;color:#0f172a;}
.btn-ghost:hover{background:#f8fbff;}

/* alerts */
.alert{border-radius:16px;padding:14px 16px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-sm);color:#334155;font-size:14px;}
.alert-light{background:#f8fbff;}
.alert-success{background:#ecfdf3;border-color:#bbf7d0;color:#166534;}
.alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b;}
.alert-warning{background:#fff7ed;border-color:#fed7aa;color:#92400e;}
.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.alert-fade-out{opacity:0;transform:translateY(-4px);transition:opacity .25s ease,transform .25s ease;}

/* badges */
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.01em;}
.badge-soft{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;}
.bg-success,.badge-success,.bg-success-subtle{background:#dcfce7 !important;color:#166534 !important;}
.bg-secondary{background:#e2e8f0 !important;color:#475569 !important;}
.bg-secondary-subtle{background:#eef2f7 !important;color:#475569 !important;}
.bg-danger-subtle{background:#fee2e2 !important;color:#b91c1c !important;}
.bg-warning-subtle{background:#fff7ed !important;color:#b45309 !important;}
.bg-info-subtle{background:#dbeafe !important;color:#2563eb !important;}
.bg-light-subtle{background:#f8fbff !important;color:#0f172a !important;}
.text-success-emphasis{color:#166534 !important;}
.text-danger-emphasis{color:#b91c1c !important;}
.text-warning-emphasis{color:#b45309 !important;}
.text-info-emphasis{color:#2563eb !important;}
.text-secondary-emphasis{color:#475569 !important;}
.rounded-pill{border-radius:999px !important;}

/* tables */
.table-responsive{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:18px;}
.table{width:100%;border-collapse:separate;border-spacing:0;margin:0;}
.table-premium{min-width:720px;}
.table-premium thead th{padding:14px 16px;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.10em;font-weight:800;color:#64748b;background:#f8fafc;border-bottom:1px solid var(--line);white-space:nowrap;}
.table-premium thead th:first-child{border-top-left-radius:16px;}
.table-premium thead th:last-child{border-top-right-radius:16px;}
.table-premium tbody td{padding:14px 16px;border-bottom:1px solid #edf2f7;vertical-align:middle;color:#1e293b;background:#fff;font-size:14px;}
.table-premium tbody tr:last-child td{border-bottom:none;}
.table-premium tbody tr.is-hover td,.table-premium tbody tr:hover td{background:#f8fbff;}
.table-card{overflow:hidden;height:100%;}
.table-card .table-responsive{border-top:1px solid #edf2f7;margin-top:0 !important;}
.action-stack{display:flex;flex-wrap:wrap;gap:8px;}
.table-meta-stack{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.meta-stack{display:flex;flex-direction:column;gap:4px;}
.inline-counts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#64748b;font-size:12px;font-weight:700;}
.inline-counts span{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;}

/* empty state */
.empty-state{padding:38px 20px;text-align:center;}
.empty-state-icon{width:56px;height:56px;margin:0 auto 14px;display:grid;place-items:center;border-radius:18px;background:#eef4ff;color:#335ea8;font-size:22px;}
.empty-state-title{margin:0 0 8px;font-size:18px;font-weight:800;}
.empty-state-text{margin:0;color:var(--muted);font-size:14px;line-height:1.55;}

/* typography/helpers */
h1,h2,h3,h4,h5,h6{color:var(--text);margin-top:0;}
h5{font-size:18px;line-height:1.25;font-weight:800;}
h6{font-size:13px;line-height:1.25;font-weight:800;color:#51627f;}
p{margin-top:0;}
.small{font-size:12px;line-height:1.45;}
.fw-bold{font-weight:800 !important;}
.fw-semibold{font-weight:700 !important;}
.fs-5{font-size:1.125rem !important;}
.text-center{text-align:center !important;}
.text-end{text-align:right !important;}
.text-white{color:#fff !important;}
.text-white-50{color:rgba(255,255,255,.72) !important;}
.text-secondary,.text-muted,.muted{color:var(--muted) !important;}
.mb-0{margin-bottom:0 !important;}
.mb-1{margin-bottom:.25rem !important;}
.mb-2{margin-bottom:.5rem !important;}
.mb-3{margin-bottom:1rem !important;}
.mb-4{margin-bottom:1.5rem !important;}
.mt-1{margin-top:.25rem !important;}
.mt-2{margin-top:.5rem !important;}
.mt-3{margin-top:1rem !important;}
.mt-4{margin-top:1.5rem !important;}
.p-3{padding:18px !important;}
.p-4{padding:24px !important;}
.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important;}
.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important;}
.py-5{padding-top:2.25rem !important;padding-bottom:2.25rem !important;}
.w-100{width:100% !important;}
.h-100{height:100% !important;}
.d-flex{display:flex !important;}
.d-inline{display:inline !important;}
.d-inline-flex{display:inline-flex !important;}
.flex-column{flex-direction:column !important;}
.flex-wrap{flex-wrap:wrap !important;}
.align-items-center{align-items:center !important;}
.align-items-start{align-items:flex-start !important;}
.align-items-end{align-items:flex-end !important;}
.justify-content-between{justify-content:space-between !important;}
.justify-content-center{justify-content:center !important;}
.flex-fill{flex:1 1 auto !important;}
.gap-2{gap:.5rem !important;}
.gap-3{gap:1rem !important;}
.border{border:1px solid var(--line) !important;}
.border-bottom{border-bottom:1px solid var(--line) !important;}
.line{width:100%;height:1px;background:var(--line);}

/* grid */
.row{display:flex;flex-wrap:wrap;gap:16px;margin:0;}
.row > [class*="col-"]{width:100%;min-width:0;padding:0;}
.g-3{gap:16px !important;}
.g-4{gap:24px !important;}
.col-12{width:100%;}
@media (min-width:768px){
  .col-md-3{width:calc(25% - 12px);}
  .col-md-4{width:calc(33.333% - 10.75px);}
  .col-md-6{width:calc(50% - 8px);}
  .col-md-12{width:100%;}
}
@media (min-width:992px){
  .col-lg-2{width:calc(16.666% - 13.5px);}
  .col-lg-3{width:calc(25% - 12px);}
  .col-lg-4{width:calc(33.333% - 10.75px);}
  .col-lg-5{width:calc(41.666% - 9.5px);}
  .col-lg-6{width:calc(50% - 8px);}
  .col-lg-7{width:calc(58.333% - 6.75px);}
  .col-lg-8{width:calc(66.666% - 5.5px);}
}
@media (min-width:1200px){
  .col-xl-3{width:calc(25% - 12px);}
  .col-xl-4{width:calc(33.333% - 10.75px);}
  .col-xl-5{width:calc(41.666% - 9.5px);}
  .col-xl-7{width:calc(58.333% - 6.75px);}
  .col-xl-8{width:calc(66.666% - 5.5px);}
}

/* reports page */
.reports-page .report-summary-row{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px !important;
}
.reports-page .report-summary-row > [class*="col-"]{
  width:auto !important;
}
.reports-page .report-stat-card{
  padding:16px 18px 14px !important;
  min-height:120px;
  border-radius:20px;
}
.reports-page .report-stat-card .tiny-label{
  margin-bottom:6px;
}
.reports-page .report-stat-card .d-flex{
  min-height:40px;
}
.reports-page .report-stat-number{
  font-size:30px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
}
.reports-page .module-filter-card .btn{
  min-width:120px;
}
.reports-page .module-filter-card .d-flex.gap-2{
  flex-wrap:nowrap;
}
.reports-page .col-xl-4 .card-premium .d-flex.flex-column{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px !important;
}
.reports-page .col-xl-4 .card-premium .d-flex.flex-column > div{
  min-height:76px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-radius:16px !important;
}
.reports-page .empty-state{
  padding:56px 20px;
}

/* exports page */
.exports-page .export-card-row{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px !important;
}
.exports-page .export-card-row > [class*="col-"]{
  width:auto !important;
}
.exports-page .export-option-card{
  padding:18px !important;
  border-radius:20px;
  min-height:172px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.exports-page .export-option-card h5{
  font-size:18px;
  line-height:1.25;
  margin-bottom:6px !important;
}
.exports-page .export-option-card .small{
  font-size:12px;
  line-height:1.4;
}
.exports-page .export-option-card .action-stack{
  gap:10px;
}
.exports-page .export-option-card .btn{
  min-height:40px;
  padding:8px 14px;
  font-size:13px;
}
.exports-page .export-help-card{
  border-radius:20px;
}

/* client portal */
.client-welcome-card{margin-bottom:18px;background:
  radial-gradient(circle at top left, rgba(59,130,246,.12), transparent 28%),
  radial-gradient(circle at bottom right, rgba(124,58,237,.10), transparent 24%),
  linear-gradient(135deg,#ffffff 0%, #f8fbff 100%);
}
.client-welcome-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 26px;}
.client-welcome-copy h1{margin:0 0 8px;font-size:34px;letter-spacing:-.03em;}
.client-welcome-copy p{margin:0;color:#64748b;font-size:16px;line-height:1.6;max-width:720px;}
.client-kicker{display:inline-block;margin-bottom:10px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#3b82f6;}
.client-welcome-badge{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:999px;background:#eef2ff;border:1px solid rgba(59,130,246,.14);color:#2563eb;font-weight:700;white-space:nowrap;}
.client-hidden-card{display:none !important;}
body.client-portal .sidebar{width:270px;}
body.client-portal .main{margin-left:270px;width:calc(100% - 270px);}
body.client-portal .sidebar-footer{margin-top:auto;}
body.client-portal .card-premium{border-radius:22px;}

/* hide change password UI */
a[href="/change-password"],a[href*="change-password"],form[action="/change-password"],form[action*="change-password"]{display:none !important;}

/* responsive */
@media (max-width:1400px){
  .login-showcase h1{font-size:54px;}
  .login-card .h2{font-size:46px;}
  .dashboard-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:1200px){
  :root{--sidebar-width:250px;}
  .login-shell{grid-template-columns:1fr;}
  .login-showcase,.login-card{min-height:auto;}
  .content-grid-split,.content-grid-even{grid-template-columns:1fr;}
  .reports-page .report-summary-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .exports-page .export-card-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:991px){
  .sidebar{transform:translateX(-100%);transition:transform .22s ease;width:290px;border-radius:0 24px 24px 0;}
  body.sidebar-open .sidebar,.sidebar.sidebar-mobile-open{transform:translateX(0);}
  .sidebar-mobile-toggle{display:inline-flex;}
  .main,body.client-portal .main{margin-left:0;width:100%;}
  .main > .container,.main > .container-fluid,.main-inner > .container,.main-inner > .container-fluid{padding:16px 16px 20px !important;}
  .main-inner{padding-top:0;}
  .login-showcase{order:2;}
  .auth-layout{padding:14px;}
  .login-showcase,.login-card{padding:30px 22px;border-radius:24px;}
  .login-showcase h1{font-size:38px;}
  .login-card .h2{font-size:34px;}
  .client-welcome-inner{flex-direction:column;align-items:flex-start;}
  .dashboard-kpi-row,.form-2col,.form-grid-2{grid-template-columns:1fr;}
  .sticky-card{position:static;}
  .reports-page .col-xl-4 .card-premium .d-flex.flex-column{
    grid-template-columns:1fr;
  }
}
@media (max-width:767px){
  :root{--main-padding:18px;}
  .btn{width:100%;}
  .d-flex.gap-2,.form-actions,.page-actions,.action-stack{flex-wrap:wrap;}
  .display-6{font-size:32px;}
  .page-title{font-size:24px;}
  .table-premium thead th,.table-premium tbody td{padding:12px;}
  .login-card,.login-showcase{padding:24px;}
  .reports-page .report-summary-row,
  .exports-page .export-card-row{
    grid-template-columns:1fr;
  }
  .reports-page .module-filter-card .d-flex.gap-2{
    flex-wrap:wrap;
  }
}
@media (max-width:640px){
  .brand-title{font-size:14px;}
  .login-showcase h1{font-size:32px;}
  .login-card .h2{font-size:28px;}
  .glass-note{min-height:auto;padding:18px 16px;}
  .client-welcome-copy h1{font-size:28px;}
}