
:root{
  --border:#e5e7eb; --bg:#ffffff; --bg-soft:#f8fafc; --txt:#111827; --mut:#6b7280; --acc:#6b46c1;
  --container:1280px;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(99,102,241,.06);
  --radius:12px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{ margin:0; color:var(--txt); background:#f6f7fb; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }
a{ color:#4f46e5; text-decoration:none } a:hover{ text-decoration:underline }
.inner{ max-width:var(--container); margin:0 auto; padding:12px 20px }
main{ max-width:var(--container); margin:18px auto; padding:0 20px 28px }

/* Header */
.site-header{ background:var(--bg); border-bottom:1px solid var(--border); display:flex; justify-content:center }
.site-header h1{ margin:0; font-size:42px; font-weight:800; width:100%; max-width:var(--container); padding:22px 20px; text-align:center }

/* Top Navigation */
.site-nav{ background:#fafafa; border-bottom:1px solid var(--border) }
.site-nav .inner{ display:flex; gap:16px; align-items:center }
.site-nav .left{ display:flex; gap:16px; align-items:center; flex-wrap:wrap }
.site-nav .right{ margin-left:auto; display:flex; gap:12px; align-items:center }
.toplink{ padding:2px 0; font-weight:700 }

/* Dropdowns (click-only) */
.site-nav .dropdown{ position:relative }
.site-nav .dropdown > .dd-toggle{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  background:transparent; border:0; padding:0; font:inherit; color:inherit; font-weight:700;
}
.site-nav .dropdown .dropdown-menu{
  position:absolute; top:100%; left:0; display:none;
  background:var(--bg); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow);
  padding:6px; min-width:220px; z-index:1000;
}
.site-nav .dropdown .dropdown-menu a{
  display:block; padding:10px 12px; border-radius:8px; white-space:nowrap; color:inherit;
}
.site-nav .dropdown .dropdown-menu a:hover{ background:var(--bg-soft) }
.site-nav .dropdown.open .dropdown-menu{ display:block }

/* Cards, tables, inputs (used by report pages) */
.card{ background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px; margin:0 0 14px }
label{ display:block; font-size:13px; color:var(--mut); margin:6px 0 4px 0 }
input[type=text], input[type=number], input[type=email], input[type=password], select, textarea{
  width:100%; height:40px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; font-size:14px;
}
textarea{ height:auto; min-height:40px; }
.btn{ background:#6b46c1; color:#fff; border:0; border-radius:10px; padding:8px 14px; font-weight:600; cursor:pointer; box-shadow:0 1px 2px rgba(0,0,0,.06) }
.btn[disabled]{ opacity:.55; cursor:not-allowed }
.btn:hover:not([disabled]){ filter:saturate(1.1) brightness(1.02) }

table{ width:100%; border-collapse:collapse }
th,td{ padding:10px 12px; border-bottom:1px solid var(--border); text-align:left }
th{ color:#111; font-weight:700 }

/* KPI helpers if needed by pages */
.kpi-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:stretch }
.kpi-card{ width:210px; background:var(--bg); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow); padding:12px 14px; }
.kpi-label{ font-size:13px; color:var(--mut) }
.kpi-value{ font-size:28px; font-weight:800 }
.kpi-sub{ font-size:12px; color:var(--mut) }


/* Active nav link */
.toplink.active{ text-decoration:underline; color:#312e81 } /* indigo-900 */


/* === Utilities === */
.mb-0{ margin-bottom:0 }
.mb-8{ margin-bottom:8px }
.mb-10{ margin-bottom:10px }
.mt-8{ margin-top:8px }
.mt-10{ margin-top:10px }
.flex{ display:flex }
.flex-wrap{ flex-wrap:wrap }
.gap-10{ gap:10px }
.gap-12{ gap:12px }
.grid-2{ display:grid; grid-template-columns:1fr 1fr }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr) }
.self-end{ align-self:end }
.table-wrap{ overflow:auto }
.pre-log{ white-space:pre-wrap; max-height:320px; overflow:auto }
.muted{ color:var(--mut) }

/* Active dropdown parent */
.site-nav .dd-toggle.active{ text-decoration:underline; color:#312e81 }


/* === Extra Utilities (batch 2) === */
.mt-6{ margin-top:6px }
.mt-12{ margin-top:12px }
.gap-6{ gap:6px }
.items-center{ align-items:center }
.nowrap{ white-space:nowrap }
.text-12{ font-size:12px }
.text-18{ font-size:18px }
.font-600{ font-weight:600 }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr) }
