/* GoSMSGateway — dashboard theme (hijau ala Gojek). Bootstrap 5 + token kustom. */
:root{
  --primary:#00AA13; --primary-hover:#008F11; --primary-soft:#EAF8EC;
  --sidebar-active:#EAF8EC;
  --success:#16A34A; --warning:#F59E0B; --danger:#DC2626; --info:#2563EB;
  --background:#F6F7F8; --surface:#FFFFFF;
  --text-primary:#202124; --text-secondary:#667085; --border:#E5E7EB;
  --sidebar-w:256px; --sidebar-w-collapsed:74px; --topbar-h:64px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--background);color:var(--text-primary);
  font-family:"Ubuntu",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:14.5px}
a{text-decoration:none;color:inherit}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary-hover);--bs-btn-hover-border-color:var(--primary-hover);--bs-btn-active-bg:var(--primary-hover);--bs-btn-disabled-bg:var(--primary);--bs-btn-disabled-border-color:var(--primary)}
.text-primary-g{color:var(--primary)!important}
.link-g{color:var(--primary);font-weight:600}

/* Layout shell */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);
  position:fixed;top:0;bottom:0;left:0;z-index:1030;overflow-y:auto;transition:width .18s ease}
.sidebar__brand{display:flex;align-items:center;gap:10px;height:var(--topbar-h);padding:0 18px;border-bottom:1px solid var(--border);font-weight:800;font-size:18px;letter-spacing:-.02em}
.sidebar__brand .mark{width:32px;height:32px;border-radius:9px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.sidebar__group{padding:14px 14px 4px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase}
.nav-i{display:flex;align-items:center;gap:12px;padding:9px 16px;margin:1px 8px;border-radius:9px;color:var(--text-secondary);font-weight:600;white-space:nowrap}
.nav-i:hover{background:#f4f5f6;color:var(--text-primary)}
.nav-i.active{background:var(--sidebar-active);color:var(--primary)}
.nav-i .bi{font-size:18px;flex:0 0 auto;width:20px;text-align:center}
.nav-i .lbl{overflow:hidden;text-overflow:ellipsis}

/* collapsed */
body.sb-collapsed .sidebar{width:var(--sidebar-w-collapsed);flex-basis:var(--sidebar-w-collapsed)}
body.sb-collapsed .sidebar .lbl,body.sb-collapsed .sidebar__group,body.sb-collapsed .sidebar__brand span.brandtext{display:none}
body.sb-collapsed .nav-i{justify-content:center;margin:2px 10px;padding:9px 0}
body.sb-collapsed .main{margin-left:var(--sidebar-w-collapsed)}

.main{flex:1;margin-left:var(--sidebar-w);transition:margin .18s ease;min-width:0}
.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1020;
  display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.topbar__title{font-weight:700;font-size:16px}
.content{padding:22px}

.card{border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card .card-body{padding:18px}
.kpi{display:flex;flex-direction:column;gap:4px}
.kpi .v{font-size:24px;font-weight:800}
.kpi .l{color:var(--text-secondary);font-size:12.5px}
.badge-status{font-weight:600;font-size:11.5px;padding:.32em .6em;border-radius:999px}
.st-delivered{background:#e7f7ea;color:#137a2b}.st-sent{background:#e8f1fd;color:#1d4ed8}
.st-queued,.st-processing{background:#eef2f6;color:#475467}.st-failed{background:#fdeaea;color:#c0392b}
.st-pending{background:#fdf3e2;color:#b7791f}.st-active,.st-approved,.st-paid{background:#e7f7ea;color:#137a2b}
.st-suspended,.st-rejected,.st-unpaid{background:#fdeaea;color:#c0392b}

.table>:not(caption)>*>*{padding:.7rem .75rem}
.muted{color:var(--text-secondary)}
.form-label{font-weight:600;font-size:13px;margin-bottom:4px}
.hamb{border:0;background:none;font-size:22px;color:var(--text-secondary);cursor:pointer}

/* Auth */
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
.auth-hero{background:linear-gradient(150deg,#00552A,#00AA13);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:center}
.auth-hero h1{font-size:32px;font-weight:800;letter-spacing:-.02em}
.auth-form{display:flex;align-items:center;justify-content:center;padding:32px}
.auth-box{width:100%;max-width:400px}

@media(max-width:900px){ .auth-wrap{grid-template-columns:1fr} .auth-hero{display:none} }
@media(max-width:768px){
  .sidebar{transform:translateX(-100%);transition:transform .2s ease;width:var(--sidebar-w);flex-basis:var(--sidebar-w)}
  body.sb-open .sidebar{transform:none}
  .main{margin-left:0}
  body.sb-open .sb-overlay{position:fixed;inset:0;background:rgba(16,24,40,.4);z-index:1025}
}
