/* ============================================================
   SPD APP — Tema gelap ala iOS
   Token warna mengikuti tema "mpp" (dark slate + emerald/cyan/amber/violet)
   Dipakai bersama Bootstrap 5 — aturan di sini menimpa gaya bawaan Bootstrap.
   ============================================================ */

:root {
  --bg-primary:#0f172a;
  --bg-secondary:#1e293b;
  /* Versi tembus pandang dari --bg-secondary — warnanya SAMA (30,41,59),
     hanya alpha-nya diturunkan. Dipakai bersama oleh header dan footer
     mengambang supaya keduanya tidak bisa melenceng satu sama lain.
     Kalau --bg-secondary diubah, nilai rgb di sini wajib ikut diubah:
     CSS tidak bisa menambahkan alpha ke variabel hex secara langsung. */
  --glass-panel:rgba(30,41,59,.66);
  --bg-tertiary:#334155;
  --bg-hover:#283548;
  --border-color:rgba(148,163,184,0.12);
  --border-active:rgba(148,163,184,0.25);
  --text-primary:#e2e8f0;
  /* Nada teks sekunder/muted sengaja dinaikkan dari palet mpp asli:
     di sini dipakai untuk label 11px, dan nada lama hanya mencapai
     rasio kontras ~3.0 (ambang keterbacaan 4.5). */
  --text-secondary:#b0bccd;
  --text-muted:#94a3b8;
  --shadow:0 4px 24px rgba(0,0,0,0.3);
  --shadow-sm:0 1px 8px rgba(0,0,0,0.2);
  --emerald:#10b981;
  --cyan:#06b6d4;
  --amber:#f59e0b;
  --rose:#f43f5e;
  --violet:#8b5cf6;
  --header-h:56px;
  /* easing pegas ala iOS */
  --ios-spring:cubic-bezier(.34,1.3,.5,1);

  /* Varian "ink": dipakai khusus untuk TEKS beraksen.
     Warna aksen cerah di atas bagus untuk isian/gradien, tetapi sebagai
     teks di latar terang rasionya cuma ~2.5. Nilai gelap ada di blok
     [data-theme="light"] di bawah. */
  --emerald-ink:#10b981;
  --cyan-ink:#22d3ee;
  --amber-ink:#fbbf24;
  --rose-ink:#fb7185;
}

[data-theme="light"] {
  --bg-primary:#f1f5f9;
  --bg-secondary:#ffffff;
  /* Alpha tema terang sengaja sedikit lebih tinggi (.72 vs .66): teks gelap
     di atas panel putih kehilangan kontras lebih cepat ketika konten
     berwarna lewat di belakangnya. */
  --glass-panel:rgba(255,255,255,.72);
  --bg-tertiary:#e2e8f0;
  --bg-hover:#f8fafc;
  --border-color:rgba(148,163,184,0.25);
  --border-active:rgba(148,163,184,0.4);
  --text-primary:#1e293b;
  --text-secondary:#475569;
  --text-muted:#57637a;
  --emerald-ink:#047857;
  --cyan-ink:#155e75;
  --amber-ink:#92400e;
  --rose-ink:#be123c;
  --shadow:0 4px 24px rgba(0,0,0,0.08);
  --shadow-sm:0 1px 8px rgba(0,0,0,0.05);
}

* { box-sizing:border-box; }

body {
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background-color:var(--bg-primary);
  color:var(--text-primary);
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}

::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background-color:transparent; }
::-webkit-scrollbar-thumb { background-color:var(--bg-tertiary); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background-color:var(--text-muted); }

/* ---------------- HEADER ---------------- */
.ios-header {
  position:sticky; top:0; z-index:1000;
  height:var(--header-h);
  /* Kaca, senada dengan .ios-footer. Warnanya tetap --bg-secondary,
     hanya diturunkan alpha-nya lewat --glass-panel.
     backdrop-filter tidak berguna tanpa alpha < 1 — kalau suatu saat
     dikembalikan ke --bg-secondary yang solid, blur di bawah ini
     tetap jalan tapi hasilnya tidak terlihat sama sekali. */
  background-color:var(--glass-panel);
  -webkit-backdrop-filter:blur(14px) saturate(170%);
  backdrop-filter:blur(14px) saturate(170%);
  border-bottom:1px solid var(--border-color);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 20px;
}
.ios-header-accent {
  height:2px;
  background:linear-gradient(90deg,var(--emerald),var(--cyan),var(--violet));
}
.ios-brand { display:flex; align-items:center; gap:10px; }
.ios-brand .icon-badge {
  width:32px; height:32px; border-radius:9px;
  background:linear-gradient(135deg,var(--emerald),var(--cyan));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:17px;
  box-shadow:0 4px 12px -2px rgba(16,185,129,.5);
}
.ios-brand h1 { font-size:15px; font-weight:700; color:var(--text-primary); margin:0; line-height:1.2; }
.ios-brand p { font-size:11px; color:var(--text-muted); margin:0; line-height:1; }
.ios-header-right { display:flex; align-items:center; gap:10px; }
.ios-user {
  font-size:12px; color:var(--text-secondary);
  display:flex; align-items:center; gap:6px;
}

/* ---------------- TOMBOL ---------------- */
.ios-btn {
  background-color:var(--bg-tertiary);
  border:1px solid var(--border-color);
  color:var(--text-secondary);
  border-radius:9px; padding:7px 13px;
  font-size:12.5px; font-weight:600; font-family:inherit;
  cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
  transition:all .2s;
}
.ios-btn:hover { background-color:var(--bg-hover); color:var(--text-primary); }
.ios-btn-icon { width:32px; height:32px; padding:0; justify-content:center; }

.ios-btn-primary {
  background:linear-gradient(180deg,var(--emerald),#059669);
  border:none; color:#fff;
  box-shadow:0 2px 10px rgba(16,185,129,.4), inset 0 1px 0 rgba(255,255,255,.22);
}
.ios-btn-primary:hover { filter:brightness(1.08); color:#fff; }
.ios-btn-primary:active { transform:scale(.97); }

.ios-btn-ghost-danger {
  background-color:transparent; border:1px solid rgba(244,63,94,.35); color:var(--rose-ink);
}
.ios-btn-ghost-danger:hover { background-color:rgba(244,63,94,.12); color:var(--rose-ink); }
.ios-btn-ghost-primary {
  background-color:transparent; border:1px solid rgba(16,185,129,.35); color:var(--emerald-ink);
}
.ios-btn-ghost-primary:hover { background-color:rgba(16,185,129,.12); color:var(--emerald-ink); }
.ios-btn:disabled, .ios-btn[disabled] { opacity:.35; cursor:not-allowed; }

/* ---------------- SEGMENTED CONTROL (nav tab ala iOS) ---------------- */
.ios-seg {
  position:relative; display:inline-flex;
  background-color:rgba(120,120,128,.22);
  border-radius:12px; padding:3px; gap:2px;
}
[data-theme="light"] .ios-seg { background-color:rgba(120,120,128,.16); }
.ios-seg a {
  position:relative; z-index:1;
  padding:7px 16px; border-radius:9px;
  color:var(--text-secondary); text-decoration:none;
  font-size:12.5px; font-weight:600; line-height:1;
  white-space:nowrap; transition:color .25s ease;
  display:inline-flex; align-items:center; gap:6px;
}
.ios-seg a:hover { color:var(--text-primary); }
.ios-seg a.active { color:#fff; }
.ios-seg-thumb {
  position:absolute; top:3px; bottom:3px; left:0; width:0;
  border-radius:9px;
  background:linear-gradient(180deg,var(--emerald),#059669);
  box-shadow:0 2px 8px rgba(16,185,129,.45), inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .34s var(--ios-spring), width .3s ease;
  pointer-events:none;
}

/* ---------------- KARTU ---------------- */
.ios-card {
  background-color:var(--bg-secondary);
  border:1px solid var(--border-color);
  border-radius:14px;
  padding:18px 20px;
  box-shadow:var(--shadow-sm);
  margin-bottom:16px;
  transition:border-color .25s;
}
.ios-card:hover { border-color:var(--border-active); }
.ios-card-title {
  font-size:12px; font-weight:600; color:var(--text-secondary);
  text-transform:uppercase; letter-spacing:.5px;
  margin:0 0 14px 0; padding-bottom:10px;
  border-bottom:1px solid var(--border-color);
  display:flex; align-items:center; gap:7px;
}

/* ---------------- FORM ---------------- */
.ios-label {
  font-size:11px; font-weight:600; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:.4px;
  margin-bottom:5px; display:block;
}
.ios-input {
  width:100%;
  background-color:var(--bg-primary);
  border:1px solid var(--border-color);
  color:var(--text-primary);
  border-radius:10px;
  padding:9px 12px;
  font-size:13px; font-family:inherit;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.ios-input::placeholder { color:var(--text-muted); text-transform:none; }
.ios-input:focus {
  outline:none;
  border-color:var(--emerald);
  background-color:var(--bg-hover);
  box-shadow:0 0 0 3px rgba(16,185,129,.15);
}
.ios-input:disabled { opacity:.45; cursor:not-allowed; }
.ios-hint { font-size:11px; color:var(--text-muted); margin-top:5px; }

/* ---------------- TABEL ---------------- */
.ios-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
.ios-table th {
  font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.5px;
  color:var(--text-muted);
  padding:10px 12px; text-align:left;
  border-bottom:1px solid var(--border-color);
  background-color:transparent;
}
.ios-table td {
  padding:10px 12px;
  border-bottom:1px solid var(--border-color);
  color:var(--text-primary);
  vertical-align:middle;
}
.ios-table tbody tr { transition:background .18s; }
.ios-table tbody tr:hover { background-color:var(--bg-hover); }
.ios-table tbody tr:last-child td { border-bottom:none; }
.ios-nominal {
  font-variant-numeric:tabular-nums;
  font-weight:600; text-align:right;
}

/* ---------------- BADGE / PILL ---------------- */
.ios-pill {
  display:inline-block;
  padding:3px 9px; border-radius:999px;
  font-size:11px; font-weight:600;
  background-color:var(--bg-tertiary); color:var(--text-secondary);
}
.ios-pill-emerald { background-color:rgba(16,185,129,.15); color:var(--emerald-ink); }
.ios-pill-amber   { background-color:rgba(245,158,11,.15); color:var(--amber-ink); }
.ios-pill-rose    { background-color:rgba(244,63,94,.15);  color:var(--rose-ink); }
.ios-pill-cyan    { background-color:rgba(6,182,212,.15);  color:var(--cyan-ink); }

/* ---------------- ALERT ---------------- */
.ios-alert {
  border-radius:12px; padding:12px 16px; margin-bottom:16px;
  font-size:13px; border:1px solid;
  display:flex; gap:10px; align-items:flex-start;
}
.ios-alert-info    { background-color:rgba(6,182,212,.10);  border-color:rgba(6,182,212,.3);  color:var(--cyan-ink); }
.ios-alert-success { background-color:rgba(16,185,129,.10); border-color:rgba(16,185,129,.3); color:var(--emerald-ink); }
.ios-alert-warning { background-color:rgba(245,158,11,.10); border-color:rgba(245,158,11,.3); color:var(--amber-ink); }
.ios-alert-danger  { background-color:rgba(244,63,94,.10);  border-color:rgba(244,63,94,.3);  color:var(--rose-ink); }
.ios-alert b { color:inherit; }

/* ---------------- ISI HALAMAN ---------------- */
.ios-main { max-width:1200px; margin:0 auto; padding:20px; }
@media (max-width:640px) { .ios-main { padding:12px; } }

.ios-fade { animation:iosFade .35s ease; }
@keyframes iosFade { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* ---------------- SweetAlert2 agar menyatu ---------------- */
.swal2-popup.ios-swal {
  background-color:var(--bg-secondary) !important;
  color:var(--text-primary) !important;
  border:1px solid var(--border-color);
  border-radius:16px !important;
  font-family:'Inter',system-ui,sans-serif !important;
}
.swal2-popup.ios-swal .swal2-title { color:var(--text-primary) !important; font-size:18px !important; }
.swal2-popup.ios-swal .swal2-html-container { color:var(--text-secondary) !important; }
