/* ------------------------------------------------------------------------------------------------
   Token desain bersama RadApp (panel admin + halaman publik). Dimuat setelah bootstrap.min.css.
   - Huruf Inter (berkas lokal, tidak memuat apa pun dari internet).
   - Warna netral kebiruan (slate), sudut lebih membulat, bayangan halus.
   - Tanpa hijau: warna "success" Bootstrap dipetakan ke biru langit, "info" ke indigo.
   - Aksen tema diatur lewat --accent / --accent-dark / --accent-rgb pada <body>.
   ------------------------------------------------------------------------------------------------ */
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../lib/inter/inter-latin-wght-normal.woff2") format("woff2");
}

:root {
  --bs-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-border-radius: .5rem; --bs-border-radius-sm: .375rem; --bs-border-radius-lg: .75rem; --bs-border-radius-xl: 1rem;
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 6px rgba(15, 23, 42, .05);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 1px 3px rgba(15, 23, 42, .06);
  --shadow-lg: 0 18px 40px rgba(15, 23, 42, .14);
}
:root:not([data-bs-theme="dark"]) {
  --bs-body-color: #1e293b; --bs-body-color-rgb: 30, 41, 59;
  --bs-emphasis-color: #0f172a; --bs-emphasis-color-rgb: 15, 23, 42;
  --bs-heading-color: #0f172a;
  --bs-secondary-color: #64748b; --bs-secondary-color-rgb: 100, 116, 139;
  --bs-tertiary-color: #94a3b8;
  --bs-border-color: #e2e8f0; --bs-border-color-translucent: rgba(15, 23, 42, .09);
  --bs-secondary-bg: #e2e8f0; --bs-tertiary-bg: #f1f5f9; --bs-tertiary-bg-rgb: 241, 245, 249;
  --bs-success: #0284c7; --bs-success-rgb: 2, 132, 199; --bs-success-text-emphasis: #075985;
  --bs-success-bg-subtle: #e0f2fe; --bs-success-border-subtle: #bae6fd;
  --bs-form-valid-color: #0284c7; --bs-form-valid-border-color: #0284c7;
  --bs-info: #6366f1; --bs-info-rgb: 99, 102, 241; --bs-info-text-emphasis: #3730a3;
  --bs-info-bg-subtle: #eef2ff; --bs-info-border-subtle: #c7d2fe;
  --bs-danger: #dc2626; --bs-danger-rgb: 220, 38, 38; --bs-danger-text-emphasis: #991b1b;
  --bs-danger-bg-subtle: #fee2e2; --bs-danger-border-subtle: #fecaca;
  --bs-warning: #f59e0b; --bs-warning-rgb: 245, 158, 11; --bs-warning-text-emphasis: #92400e;
  --bs-warning-bg-subtle: #fef3c7; --bs-warning-border-subtle: #fde68a;
  --bs-secondary: #64748b; --bs-secondary-rgb: 100, 116, 139; --bs-secondary-text-emphasis: #334155;
  --bs-secondary-bg-subtle: #f1f5f9; --bs-secondary-border-subtle: #e2e8f0;
  --bs-code-color: #be185d;
}
[data-bs-theme="dark"] {
  --bs-body-bg: #0f172a; --bs-body-bg-rgb: 15, 23, 42;
  --bs-body-color: #cbd5e1; --bs-body-color-rgb: 203, 213, 225;
  --bs-emphasis-color: #f8fafc; --bs-heading-color: #f1f5f9;
  --bs-secondary-color: #94a3b8; --bs-secondary-color-rgb: 148, 163, 184;
  --bs-tertiary-color: #64748b;
  --bs-border-color: #263347; --bs-border-color-translucent: rgba(226, 232, 240, .12);
  --bs-secondary-bg: #263347; --bs-tertiary-bg: #172033; --bs-tertiary-bg-rgb: 23, 32, 51;
  --bs-success: #38bdf8; --bs-success-rgb: 56, 189, 248; --bs-success-text-emphasis: #7dd3fc;
  --bs-success-bg-subtle: #0c2d44; --bs-success-border-subtle: #075985;
  --bs-form-valid-color: #38bdf8; --bs-form-valid-border-color: #38bdf8;
  --bs-info: #818cf8; --bs-info-rgb: 129, 140, 248; --bs-info-text-emphasis: #a5b4fc;
  --bs-info-bg-subtle: #1e1b4b; --bs-info-border-subtle: #3730a3;
  --bs-danger: #f87171; --bs-danger-rgb: 248, 113, 113; --bs-danger-text-emphasis: #fca5a5;
  --bs-danger-bg-subtle: #3b1218; --bs-danger-border-subtle: #7f1d1d;
  --bs-warning: #fbbf24; --bs-warning-rgb: 251, 191, 36; --bs-warning-text-emphasis: #fcd34d;
  --bs-warning-bg-subtle: #3a2a06; --bs-warning-border-subtle: #78350f;
  --bs-secondary: #94a3b8; --bs-secondary-rgb: 148, 163, 184; --bs-secondary-text-emphasis: #cbd5e1;
  --bs-secondary-bg-subtle: #1e293b; --bs-secondary-border-subtle: #334155;
  --bs-code-color: #f9a8d4;
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, .3); --shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);
  --shadow-md: 0 6px 16px rgba(0, 0, 0, .4); --shadow-lg: 0 18px 40px rgba(0, 0, 0, .5);
}

/* aksen bawaan; tema menggantinya lewat class pada <body> */
body {
  --accent: #2563eb; --accent-dark: #1d4ed8; --accent-rgb: 37, 99, 235; --accent-dark-rgb: 29, 78, 216; --on-accent: #fff;
  --accent-soft: color-mix(in srgb, var(--accent) 12%, var(--bs-body-bg));
  --bs-primary: var(--accent); --bs-primary-rgb: var(--accent-rgb);
  --bs-link-color: var(--accent); --bs-link-color-rgb: var(--accent-rgb);
  --bs-link-hover-color: var(--accent-dark); --bs-link-hover-color-rgb: var(--accent-dark-rgb);
  --bs-primary-text-emphasis: var(--accent-dark);
  --bs-primary-bg-subtle: var(--accent-soft);
  --bs-primary-border-subtle: color-mix(in srgb, var(--accent) 30%, var(--bs-body-bg));
  --bs-focus-ring-color: rgba(var(--accent-rgb), .25);
  font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
[data-bs-theme="dark"] body { --bs-primary-text-emphasis: color-mix(in srgb, var(--accent) 60%, #fff); }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { letter-spacing: -.011em; }
a { text-underline-offset: .15em; }
code, kbd, pre, samp, .font-monospace { font-family: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }

/* ---- tombol ---- */
.btn { --bs-btn-font-weight: 500; --bs-btn-border-radius: .5rem; }
.btn-sm { --bs-btn-border-radius: .4rem; }
.btn-lg { --bs-btn-border-radius: .625rem; }
.btn-primary {
  --bs-btn-color: var(--on-accent); --bs-btn-hover-color: var(--on-accent); --bs-btn-active-color: var(--on-accent); --bs-btn-disabled-color: var(--on-accent);
  --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: var(--accent-dark); --bs-btn-hover-border-color: var(--accent-dark);
  --bs-btn-active-bg: var(--accent-dark); --bs-btn-active-border-color: var(--accent-dark);
  --bs-btn-disabled-bg: var(--accent); --bs-btn-disabled-border-color: var(--accent);
  --bs-btn-focus-shadow-rgb: var(--accent-rgb);
  box-shadow: 0 1px 2px rgba(var(--accent-rgb), .35);
}
.btn-outline-primary {
  --bs-btn-color: var(--accent); --bs-btn-border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  --bs-btn-hover-color: var(--on-accent); --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent);
  --bs-btn-active-color: var(--on-accent); --bs-btn-active-bg: var(--accent); --bs-btn-active-border-color: var(--accent);
  --bs-btn-disabled-color: var(--accent); --bs-btn-disabled-border-color: var(--accent);
  --bs-btn-focus-shadow-rgb: var(--accent-rgb);
}
.btn-success {
  --bs-btn-color: #fff; --bs-btn-bg: #0284c7; --bs-btn-border-color: #0284c7;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #0369a1; --bs-btn-hover-border-color: #0369a1;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #075985; --bs-btn-active-border-color: #075985;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #0284c7; --bs-btn-disabled-border-color: #0284c7;
  --bs-btn-focus-shadow-rgb: 2, 132, 199;
}
.btn-outline-success {
  --bs-btn-color: var(--bs-success-text-emphasis); --bs-btn-border-color: var(--bs-success-border-subtle);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #0284c7; --bs-btn-hover-border-color: #0284c7;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #0369a1; --bs-btn-active-border-color: #0369a1;
  --bs-btn-disabled-color: #0284c7; --bs-btn-disabled-border-color: #0284c7; --bs-btn-focus-shadow-rgb: 2, 132, 199;
}
.btn-info {
  --bs-btn-color: #fff; --bs-btn-bg: #6366f1; --bs-btn-border-color: #6366f1;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #4f46e5; --bs-btn-hover-border-color: #4f46e5;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #4338ca; --bs-btn-active-border-color: #4338ca;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6366f1; --bs-btn-disabled-border-color: #6366f1; --bs-btn-focus-shadow-rgb: 99, 102, 241;
}
.btn-outline-info {
  --bs-btn-color: var(--bs-info-text-emphasis); --bs-btn-border-color: var(--bs-info-border-subtle);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #6366f1; --bs-btn-hover-border-color: #6366f1;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #4f46e5; --bs-btn-active-border-color: #4f46e5; --bs-btn-focus-shadow-rgb: 99, 102, 241;
}
.btn-outline-secondary {
  --bs-btn-color: var(--bs-body-color); --bs-btn-border-color: var(--bs-border-color);
  --bs-btn-hover-color: var(--bs-emphasis-color); --bs-btn-hover-bg: var(--bs-tertiary-bg); --bs-btn-hover-border-color: var(--bs-secondary-color);
  --bs-btn-active-color: var(--bs-emphasis-color); --bs-btn-active-bg: var(--bs-secondary-bg); --bs-btn-active-border-color: var(--bs-secondary-color);
  background-color: var(--bs-body-bg);
}
.text-bg-info { color: #fff !important; }
.table-success { --bs-table-color: #0c4a6e; --bs-table-bg: #e0f2fe; --bs-table-border-color: #bae6fd; --bs-table-striped-bg: #d5ecfb; --bs-table-hover-bg: #cfe8f9; --bs-table-active-bg: #c7e3f6; --bs-table-striped-color: #0c4a6e; --bs-table-hover-color: #0c4a6e; --bs-table-active-color: #0c4a6e; }
.table-info { --bs-table-color: #312e81; --bs-table-bg: #eef2ff; --bs-table-border-color: #c7d2fe; --bs-table-striped-bg: #e6ebfe; --bs-table-hover-bg: #e0e7ff; --bs-table-active-bg: #dbe3fe; --bs-table-striped-color: #312e81; --bs-table-hover-color: #312e81; --bs-table-active-color: #312e81; }
[data-bs-theme="dark"] .table-success { --bs-table-color: #bae6fd; --bs-table-bg: #0c2d44; --bs-table-border-color: #075985; --bs-table-striped-bg: #0e3550; --bs-table-hover-bg: #103b59; --bs-table-active-bg: #124163; --bs-table-striped-color: #bae6fd; --bs-table-hover-color: #bae6fd; --bs-table-active-color: #bae6fd; }
[data-bs-theme="dark"] .table-info { --bs-table-color: #c7d2fe; --bs-table-bg: #1e1b4b; --bs-table-border-color: #3730a3; --bs-table-striped-bg: #252158; --bs-table-hover-bg: #2a2663; --bs-table-active-bg: #302b6e; --bs-table-striped-color: #c7d2fe; --bs-table-hover-color: #c7d2fe; --bs-table-active-color: #c7d2fe; }

/* ---- lencana: gaya lembut (latar tipis, teks tegas) ---- */
.badge { --bs-badge-font-weight: 600; --bs-badge-padding-x: .6em; --bs-badge-padding-y: .38em; --bs-badge-border-radius: 50rem; letter-spacing: .01em; }
.badge.text-bg-primary, .badge.bg-primary { background-color: var(--accent-soft) !important; color: var(--bs-primary-text-emphasis) !important; }
.badge.text-bg-success, .badge.bg-success { background-color: var(--bs-success-bg-subtle) !important; color: var(--bs-success-text-emphasis) !important; }
.badge.text-bg-info, .badge.bg-info { background-color: var(--bs-info-bg-subtle) !important; color: var(--bs-info-text-emphasis) !important; }
.badge.text-bg-warning, .badge.bg-warning { background-color: var(--bs-warning-bg-subtle) !important; color: var(--bs-warning-text-emphasis) !important; }
.badge.text-bg-danger, .badge.bg-danger { background-color: var(--bs-danger-bg-subtle) !important; color: var(--bs-danger-text-emphasis) !important; }
.badge.text-bg-secondary, .badge.bg-secondary { background-color: var(--bs-secondary-bg-subtle) !important; color: var(--bs-secondary-text-emphasis) !important; box-shadow: inset 0 0 0 1px var(--bs-secondary-border-subtle); }
.badge.text-bg-light, .badge.bg-light { box-shadow: inset 0 0 0 1px var(--bs-border-color); }

/* ---- formulir ---- */
.form-control, .form-select { border-color: color-mix(in srgb, var(--bs-border-color) 70%, var(--bs-secondary-color)); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--accent); box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18); }
.form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
.form-label { font-weight: 500; margin-bottom: .35rem; }
.form-text { color: var(--bs-secondary-color); }
.input-group-text { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }

/* ---- kartu, tabel, alert, navigasi ---- */
.card { --bs-card-border-radius: .75rem; --bs-card-inner-border-radius: calc(.75rem - 1px); --bs-card-border-color: var(--bs-border-color); --bs-card-cap-bg: transparent; box-shadow: var(--shadow-sm); }
.card-header { font-weight: 600; color: var(--bs-emphasis-color); }
.alert { --bs-alert-border-radius: .625rem; }
.alert-primary { --bs-alert-color: var(--bs-primary-text-emphasis); --bs-alert-bg: var(--accent-soft); --bs-alert-border-color: var(--bs-primary-border-subtle); --bs-alert-link-color: var(--bs-primary-text-emphasis); }
.dropdown-menu { --bs-dropdown-border-radius: .625rem; --bs-dropdown-border-color: var(--bs-border-color); --bs-dropdown-link-active-bg: var(--accent); box-shadow: var(--shadow-md); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--accent); }
.page-link { --bs-pagination-color: var(--bs-body-color); --bs-pagination-hover-color: var(--accent); --bs-pagination-focus-color: var(--accent); --bs-pagination-active-bg: var(--accent); --bs-pagination-active-border-color: var(--accent); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--accent-rgb), .18); }
.progress { --bs-progress-bar-bg: var(--accent); --bs-progress-border-radius: 50rem; --bs-progress-bg: var(--bs-secondary-bg); }
.list-group { --bs-list-group-active-bg: var(--accent); --bs-list-group-active-border-color: var(--accent); --bs-list-group-border-radius: .625rem; }
.modal-content { --bs-modal-border-radius: .875rem; }
.table { --bs-table-hover-bg: rgba(var(--accent-rgb), .04); }
:focus-visible { outline-color: var(--accent); }

.tnum { font-variant-numeric: tabular-nums; }
