:root{
  --ca-green:#0d7a52; --ca-green-d:#095c3d; --ca-green-l:#e7f5ef;
  --ca-blue:#1565d8; --ca-blue-l:#e8f0fd;
  --ca-bg:#f3f6f5; --ca-border:#e3e9e7; --ca-text:#1d2b28; --ca-muted:#6b7a77;
  --bs-primary:#0d7a52; --bs-primary-rgb:13,122,82; --bs-link-color:#0d7a52; --bs-link-hover-color:#095c3d;
}
body{font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:var(--ca-bg);color:var(--ca-text);font-size:14px}
.btn-primary,.btn-success{--bs-btn-bg:var(--ca-green);--bs-btn-border-color:var(--ca-green);--bs-btn-hover-bg:var(--ca-green-d);--bs-btn-hover-border-color:var(--ca-green-d);--bs-btn-active-bg:var(--ca-green-d)}
.btn-outline-primary{--bs-btn-color:var(--ca-green);--bs-btn-border-color:var(--ca-green);--bs-btn-hover-bg:var(--ca-green);--bs-btn-hover-border-color:var(--ca-green)}
.btn-od{background:var(--ca-blue);border-color:var(--ca-blue);color:#fff}.btn-od:hover{background:#0f4fae;color:#fff}
.text-od{color:var(--ca-blue)!important}.bg-od-l{background:var(--ca-blue-l)}
.form-check-input:checked{background-color:var(--ca-green);border-color:var(--ca-green)}
.form-control:focus,.form-select:focus{border-color:#7cc3a6;box-shadow:0 0 0 .2rem rgba(13,122,82,.15)}

.app-shell{display:flex;min-height:100vh}
.sidebar{width:262px;flex:0 0 262px;background:#fff;border-right:1px solid var(--ca-border);position:sticky;top:0;height:100vh;overflow-y:auto;padding-bottom:24px}
.brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;text-decoration:none;color:var(--ca-text);border-bottom:1px solid var(--ca-border)}
.brand b{display:block;font-size:17px;color:var(--ca-green)}.brand small{display:block;font-size:11px;color:var(--ca-muted);margin-top:-2px}
.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#0d7a52,#14a06c);display:grid;place-items:center;color:#fff;font-size:20px}
.nav-section{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#93a19e;padding:16px 20px 6px}
.sidebar .nav-link{display:flex;align-items:center;gap:10px;color:#3b4b47;padding:8px 14px;margin:1px 10px;border-radius:8px;font-weight:500}
.sidebar .nav-link i{font-size:16px;color:#7f8f8b;width:18px}
.sidebar .nav-link:hover{background:var(--ca-green-l);color:var(--ca-green)}
.sidebar .nav-link.active{background:var(--ca-green);color:#fff}.sidebar .nav-link.active i{color:#fff}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;background:#fff;border-bottom:1px solid var(--ca-border);padding:10px 22px;position:sticky;top:0;z-index:20}
.top-title{font-weight:700;font-size:17px}.top-sub{font-size:12px;color:var(--ca-muted)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--ca-green-l);color:var(--ca-green);display:grid;place-items:center;font-weight:700}
.content{padding:22px;flex:1}
.foot{padding:12px 22px;color:var(--ca-muted);font-size:12px}
.card{border:1px solid var(--ca-border);border-radius:12px;box-shadow:0 1px 2px rgba(16,40,32,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--ca-border);font-weight:600;border-radius:12px 12px 0 0!important}
.kpi{padding:16px 18px;border-radius:12px;background:#fff;border:1px solid var(--ca-border);display:flex;gap:14px;align-items:center;height:100%}
.kpi .ic{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;font-size:20px}
.kpi .v{font-size:24px;font-weight:700;line-height:1}.kpi .l{color:var(--ca-muted);font-size:12px;margin-top:4px}
.ic-g{background:var(--ca-green-l);color:var(--ca-green)}.ic-r{background:#fdecec;color:#c62828}.ic-o{background:#fff3e0;color:#e67e00}.ic-b{background:var(--ca-blue-l);color:var(--ca-blue)}.ic-p{background:#f1e9fd;color:#6a38c2}
.table{--bs-table-bg:transparent}
.table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#62716d;background:#f7faf9;border-bottom:1px solid var(--ca-border);white-space:nowrap}
.table td{vertical-align:middle}
.table-wrap{overflow-x:auto}
.matrix th,.matrix td{font-size:12px;padding:4px 5px!important;text-align:center;white-space:nowrap}
.matrix td.name{text-align:left;position:sticky;left:0;background:#fff;z-index:1}
.c-P{background:#e3f4ec;color:#0d7a52;font-weight:600}.c-A{background:#fdecec;color:#c62828;font-weight:600}
.c-H{background:#eceff1;color:#455a64}.c-WO{background:#f4f4f4;color:#888}.c-OD{background:#e8f0fd;color:#1565d8;font-weight:600}
.c-ODP{background:#fff8e1;color:#b26a00}.c-L{background:#fff3e0;color:#e67e00;font-weight:600}.c-HD{background:#f1e9fd;color:#6a38c2}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login-art{background:linear-gradient(150deg,#0d7a52 0%,#0b5f40 55%,#1565d8 140%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between}
.login-art h1{font-weight:700;font-size:38px}.login-art p{opacity:.85;max-width:430px}
.login-form{display:grid;place-items:center;padding:30px;background:#fff}
.login-card{width:100%;max-width:380px}
.feature{display:flex;gap:12px;margin:14px 0;opacity:.95}.feature i{font-size:20px}
@media(max-width:991px){.sidebar{position:fixed;left:-270px;z-index:50;transition:left .2s}.sidebar.open{left:0;box-shadow:0 0 40px rgba(0,0,0,.25)}.login-wrap{grid-template-columns:1fr}.login-art{display:none}}
#map{height:420px;border-radius:10px;border:1px solid var(--ca-border)}
.small-map{height:260px!important}
.badge{font-weight:600}
.sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--ca-border);padding:10px 16px;border-radius:0 0 12px 12px}
@media print{.sidebar,.topbar,.foot,.no-print{display:none!important}.content{padding:0}.card{border:none;box-shadow:none}body{background:#fff}}
/* Superadmin: Company Master menu */
.nav-master{display:flex;align-items:center;gap:10px;width:calc(100% - 20px);margin:14px 10px 4px;padding:9px 14px;border:0;border-radius:8px;background:var(--ca-green-l);color:var(--ca-green);font-weight:600;text-align:left}
.nav-master .chev{transition:transform .2s}.nav-master.collapsed .chev{transform:rotate(-90deg)}
.company-chip{display:flex;align-items:center;gap:8px;justify-content:space-between;margin:4px 14px 6px;padding:7px 10px;border:1px dashed #b9d8cb;border-radius:8px;font-size:12px}
.company-chip a{font-weight:600;white-space:nowrap}
.nav-sub{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#a3b0ad;padding:10px 24px 3px}

/* ---------- version, impersonation, theme toggle ---------- */
.side-version{padding:18px 20px 4px;font-size:11px;color:#93a19e}
.impersonate-bar{background:#fff3cd;color:#664d03;padding:8px 22px;font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;border-bottom:1px solid #ffe69c}
.theme-ic-light{display:none}
[data-bs-theme=dark] .theme-ic-light{display:inline}
[data-bs-theme=dark] .theme-ic-dark{display:none}

/* ---------- dark mode ---------- */
[data-bs-theme=dark]{
  --ca-bg:#0f1715; --ca-border:#24322e; --ca-text:#e3ece9; --ca-muted:#94a5a1;
  --ca-green-l:#143a2c; --ca-blue-l:#14284a;
  --bs-body-bg:#0f1715; --bs-body-color:#e3ece9; --bs-border-color:#24322e;
  --bs-link-color:#3fbf8a; --bs-link-hover-color:#6fd3a9;
}
[data-bs-theme=dark] body{background:var(--ca-bg);color:var(--ca-text)}
[data-bs-theme=dark] .sidebar,[data-bs-theme=dark] .topbar,[data-bs-theme=dark] .card,[data-bs-theme=dark] .kpi,
[data-bs-theme=dark] .login-form,[data-bs-theme=dark] .sticky-actions,[data-bs-theme=dark] .card-header,
[data-bs-theme=dark] .matrix td.name,[data-bs-theme=dark] .card-footer{background:#16211e!important;color:var(--ca-text)}
[data-bs-theme=dark] .brand{color:var(--ca-text)}
[data-bs-theme=dark] .sidebar .nav-link{color:#c7d4d0}
[data-bs-theme=dark] .sidebar .nav-link i{color:#8fa29d}
[data-bs-theme=dark] .sidebar .nav-link:hover{background:var(--ca-green-l);color:#6fd3a9}
[data-bs-theme=dark] .sidebar .nav-link.active{background:#0d7a52;color:#fff}
[data-bs-theme=dark] .table thead th{background:#1b2925;color:#9fb2ad}
[data-bs-theme=dark] .btn-light{--bs-btn-bg:#1f2e2a;--bs-btn-border-color:#2a3b36;--bs-btn-color:#dbe6e3;--bs-btn-hover-bg:#26372f;--bs-btn-hover-border-color:#33473f;--bs-btn-hover-color:#fff}
[data-bs-theme=dark] .bg-light{background:#1b2925!important}
[data-bs-theme=dark] .text-bg-light{background:#1f2e2a!important;color:#dbe6e3!important}
[data-bs-theme=dark] .ic-g{background:#143a2c;color:#5fd1a0}[data-bs-theme=dark] .ic-b{background:#14284a;color:#7aaef5}
[data-bs-theme=dark] .ic-r{background:#3a1717;color:#f08a8a}[data-bs-theme=dark] .ic-o{background:#3a2a10;color:#f2b35a}[data-bs-theme=dark] .ic-p{background:#2a1d45;color:#b79af0}
[data-bs-theme=dark] .c-P{background:#143a2c;color:#5fd1a0}[data-bs-theme=dark] .c-A{background:#3a1717;color:#f08a8a}
[data-bs-theme=dark] .c-H{background:#24302d;color:#a9bab6}[data-bs-theme=dark] .c-WO{background:#1d2725;color:#82938f}
[data-bs-theme=dark] .c-OD{background:#14284a;color:#7aaef5}[data-bs-theme=dark] .c-ODP{background:#3a2f10;color:#f2c25a}
[data-bs-theme=dark] .c-L{background:#3a2a10;color:#f2b35a}[data-bs-theme=dark] .c-HD{background:#2a1d45;color:#b79af0}
[data-bs-theme=dark] .company-chip{border-color:#2f4a40}
[data-bs-theme=dark] .impersonate-bar{background:#3a2f10;color:#f2d38a;border-color:#4d3e14}
[data-bs-theme=dark] .bg-success-subtle{background:#143a2c!important}
[data-bs-theme=dark] .table-success{--bs-table-bg:#143a2c;--bs-table-color:#e3ece9}
[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{background-color:#121c19;border-color:#2a3b36;color:#e3ece9}
[data-bs-theme=dark] .leaflet-container{filter:brightness(.85)}
[data-bs-theme=dark] .matrix thead th{background:#1b2925!important}
.cal-sel{background:var(--bs-primary)!important;color:#fff!important;font-weight:600}
/* collapsible sidebar groups (v1.2) */
.sidebar .nav-group{display:flex;align-items:center;gap:10px;width:calc(100% - 20px);margin:2px 10px;padding:8px 14px;border:0;background:none;border-radius:8px;font-weight:600;color:#24332f;text-align:left;font-size:14px}
.sidebar .nav-group:hover{background:var(--ca-green-l);color:var(--ca-green)}
.sidebar .nav-group > i:first-child{font-size:16px;color:#7f8f8b;width:18px}
.sidebar .nav-group .chev{margin-left:auto;font-size:12px;transition:transform .2s}
.sidebar .nav-group .badge + .chev{margin-left:6px}
.sidebar .nav-group.collapsed .chev{transform:rotate(-90deg)}
.sidebar .nav-group-items .nav-link{padding:6px 14px 6px 22px;font-size:13.5px;margin-left:22px;border-left:2px solid var(--ca-border);border-radius:0 8px 8px 0}
.sidebar .nav-group-items .nav-link i{font-size:14px}
.sidebar .nav-group-items .nav-link.active{border-left-color:var(--ca-green)}
[data-bs-theme=dark] .sidebar .nav-group{color:#e4ece9}
[data-bs-theme=dark] .sidebar .nav-group > i:first-child{color:#8fa29d}
[data-bs-theme=dark] .sidebar .nav-group:hover{color:#6fd3a9}
