@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');
:root {
  --p: #dc2626; --p-hover: #b91c1c; --p-soft: #ef4444;
  --p-tint: #fef2f2; --p-tint-2: #fff5f5; --p-ring: rgba(220,38,38,.15);
  --gold: #d97706; --gold-tint: #fffbeb;
  --bg: #f4f5f7; --surface: #ffffff; --surface-2: #fafbfe;
  --border: #e2e8f0; --border-strong: #cbd5e1;
  --text: #1e293b; --text-muted: #64748b; --text-dim: #94a3b8; --text-invert: #ffffff;
  --success: #10b981; --warning: #f59e0b; --danger: #ef4444; --info: #0ea5e9;
  --shadow-xs: 0 1px 2px rgba(0,0,0,.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,.10);
  --shadow-lg: 0 8px 24px rgba(0,0,0,.12);
  --shadow-focus: 0 0 0 3px var(--p-ring);
  --radius-sm: 6px; --radius: 10px; --radius-lg: 14px; --radius-xl: 18px;
  --sidebar-w: 252px; --header-h: 60px;
  /* Sidebar — merah di light mode */
  --sidebar-bg: #7f1d1d;
  --sidebar-border: rgba(0,0,0,.1);
  --sidebar-text: rgba(255,255,255,.85);
  --sidebar-text-hover: #ffffff;
  --sidebar-section-color: rgba(255,255,255,.5);
  --sidebar-active-bg: rgba(0,0,0,.18);
  --sidebar-hover-bg: rgba(0,0,0,.1);
  --sidebar-active-border: #ffffff;
  --sidebar-user-border: rgba(255,255,255,.2);
  --sidebar-user-btn-bg: rgba(0,0,0,.12);
  --sidebar-logout-hover: rgba(0,0,0,.2);
  --font-sans: 'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  --font-mono: 'JetBrains Mono',monospace;
}
[data-theme="dark"] {
  --bg:#0f172a; --surface:#1e293b; --surface-2:#263349;
  --border:#334155; --border-strong:#475569;
  --text:#f1f5f9; --text-muted:#94a3b8; --text-dim:#64748b;
  --shadow-md: 0 4px 12px rgba(0,0,0,.3);
  /* Sidebar — gelap di dark mode */
  --sidebar-bg: #1a1a2e;
  --sidebar-border: rgba(255,255,255,.06);
  --sidebar-text: #cbd5e1;
  --sidebar-text-hover: #ffffff;
  --sidebar-section-color: #475569;
  --sidebar-active-bg: rgba(220,38,38,.18);
  --sidebar-hover-bg: rgba(255,255,255,.06);
  --sidebar-active-border: #dc2626;
  --sidebar-user-border: rgba(255,255,255,.08);
  --sidebar-user-btn-bg: rgba(255,255,255,.06);
  --sidebar-logout-hover: rgba(220,38,38,.2);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{font-family:var(--font-sans);font-size:14px;color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--p);text-decoration:none}a:hover{color:var(--p-hover)}
button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}
.app-shell{display:flex;min-height:100vh;width:100%;overflow-x:hidden;align-items:stretch}
/* ── Sidebar ── */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:30;overflow-y:auto;overflow-x:hidden;transition:background .3s,width .25s;border-right:1px solid var(--sidebar-border)}
.sidebar__brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--sidebar-user-border);min-height:64px}
.sidebar__brand-logo{width:36px;height:36px;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;padding:2px}
.sidebar__brand-logo img{width:32px;height:32px;object-fit:contain;border-radius:6px}
.sidebar__brand-text{display:flex;flex-direction:column;line-height:1.2;overflow:hidden}
.sidebar__brand-title{font-weight:800;font-size:13px;color:#ffffff;white-space:nowrap}
.sidebar__brand-sub{font-size:10px;color:rgba(255,255,255,.6);white-space:nowrap}
.sidebar__nav{flex:1;padding:10px 0;overflow-y:auto}
.sidebar__section{font-size:9.5px;font-weight:800;color:var(--sidebar-section-color);text-transform:uppercase;letter-spacing:.1em;padding:14px 18px 5px}
.sidebar__item{display:flex;align-items:center;gap:10px;padding:9px 18px;color:var(--sidebar-text);font-size:13px;font-weight:500;border-radius:0;transition:all .15s;cursor:pointer;text-decoration:none;border-left:3px solid transparent}
.sidebar__item:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-text-hover);border-left-color:rgba(255,255,255,.4)}
.sidebar__item.is-active{background:var(--sidebar-active-bg);color:#fff;font-weight:700;border-left-color:var(--sidebar-active-border)}
.sidebar__item .icon{width:16px;height:16px;flex-shrink:0;opacity:.75}
.sidebar__item.is-active .icon,.sidebar__item:hover .icon{opacity:1}
.sidebar__user{padding:12px;border-top:1px solid var(--sidebar-user-border);margin-top:auto}
.sidebar__user-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sidebar__user-info{overflow:hidden}
.sidebar__user-name{font-size:12px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar__user-role{font-size:10px;color:rgba(255,255,255,.6)}
.sidebar__user-logout{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:600;color:rgba(255,255,255,.7);padding:5px;border-radius:6px;background:var(--sidebar-user-btn-bg);text-decoration:none;transition:all .15s}
.sidebar__user-logout:hover{background:var(--sidebar-logout-hover);color:#fff}
.sidebar__nav::-webkit-scrollbar{width:4px}
.sidebar__nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
/* ── Main ── */
.main-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow-x:hidden;margin-left:var(--sidebar-w)}
.topbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px;position:sticky;top:0;z-index:20;box-shadow:var(--shadow-sm)}
.topbar__menu-toggle{background:none;border:none;color:var(--text-muted);padding:6px;border-radius:var(--radius-sm);display:none}
.topbar__title{font-weight:700;font-size:15px;color:var(--text);flex:1}
.topbar__actions{display:flex;align-items:center;gap:8px}
.topbar__action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);transition:all .15s;position:relative}
.topbar__action:hover{background:var(--p-tint);color:var(--p)}
.topbar__action .icon{width:18px;height:18px}
.topbar__badge{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--p);border:2px solid var(--surface)}
.content{flex:1;padding:24px;overflow-y:auto}
/* ── Cards ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-header h3{font-size:14px;font-weight:700;color:var(--text)}
.card-body{padding:20px}
/* ── Stat Cards ── */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-icon .icon{width:22px;height:22px}
.stat-label{font-size:11px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.stat-value{font-size:22px;font-weight:800;color:var(--text);line-height:1.2}
.stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}
/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .15s;text-decoration:none;line-height:1}
.btn .icon{width:14px;height:14px}
.btn-primary{background:var(--p);color:#fff}.btn-primary:hover{background:var(--p-hover);color:#fff}
.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}
.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669;color:#fff}
.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626;color:#fff}
.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706;color:#fff}
.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:#b45309;color:#fff}
.btn-sm{padding:5px 10px;font-size:12px}.btn-xs{padding:3px 8px;font-size:11px}
/* ── Forms ── */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}
.form-control{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text);background:var(--surface);font-family:var(--font-sans);transition:border-color .15s,box-shadow .15s;outline:none}
.form-control:focus{border-color:var(--p);box-shadow:var(--shadow-focus)}
select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:90px}
/* ── Table ── */
.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl thead th{background:var(--p-tint);color:var(--p);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px;text-align:left;white-space:nowrap}
table.tbl tbody tr{border-bottom:1px solid var(--border);transition:background .1s}
table.tbl tbody tr:hover{background:var(--surface-2)}
table.tbl tbody tr:last-child{border-bottom:none}
table.tbl tbody td{padding:10px 14px;color:var(--text);vertical-align:middle}
/* ── Badge ── */
.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.badge-red{background:#fef2f2;color:#dc2626}
.badge-green{background:#f0fdf4;color:#16a34a}
.badge-yellow{background:#fffbeb;color:#d97706}
.badge-blue{background:#eff6ff;color:#2563eb}
.badge-gray{background:#f8fafc;color:#64748b}
.badge-gold{background:#fffbeb;color:#d97706}
/* ── Alert ── */
.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:13px}
.alert .icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}
/* ── Empty ── */
.empty{text-align:center;padding:60px 20px;color:var(--text-muted)}
.empty .icon{width:48px;height:48px;margin:0 auto 12px;opacity:.3}
.empty h3{font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px}
/* ── Page Header ── */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px;flex-wrap:wrap}
.page-header h2{font-size:20px;font-weight:800;color:var(--text)}
.page-header p{font-size:13px;color:var(--text-muted);margin-top:2px}
/* ── Kanban ── */
.kanban-board{display:flex;gap:16px;overflow-x:auto;padding-bottom:16px;min-height:400px}
.kanban-col{flex-shrink:0;width:280px;background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column}
.kanban-col-header{padding:14px 16px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.kanban-cards{padding:10px;flex:1;display:flex;flex-direction:column;gap:8px;min-height:100px}
.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;cursor:grab;box-shadow:var(--shadow-xs);transition:box-shadow .15s}
.kanban-card:hover{box-shadow:var(--shadow-md)}
.kanban-card.dragging{opacity:.5;box-shadow:var(--shadow-lg)}
/* ── Timeline ── */
.timeline{position:relative;padding-left:28px}
.timeline::before{content:'';position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--border)}
.timeline-item{position:relative;margin-bottom:20px}
.timeline-dot{position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--p);border:2px solid var(--surface);box-shadow:0 0 0 3px var(--p-ring)}
.timeline-date{font-size:10px;font-weight:700;color:var(--text-dim);text-transform:uppercase;margin-bottom:4px}
.timeline-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-size:13px}
/* ── Chat ── */
.chat-wrap{display:flex;height:calc(100vh - 140px);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}
.chat-bubble{max-width:70%;padding:10px 14px;border-radius:var(--radius-lg);font-size:13px;line-height:1.5;word-break:break-word}
.chat-bubble.me{background:var(--p);color:#fff;border-bottom-right-radius:4px;margin-left:auto}
.chat-bubble.other{background:var(--surface-2);color:var(--text);border-bottom-left-radius:4px}
/* ── Pipeline ── */
.pipeline-stages{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.pipeline-stage{flex:0 0 200px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.pipeline-stage-header{padding:10px 14px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#fff}
/* ── Modal ── */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:none;align-items:center;justify-content:center}
.modal-backdrop.show{display:flex}
.modal{background:var(--surface);border-radius:var(--radius-xl);padding:0;max-width:540px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.modal-header{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-header h3{font-size:15px;font-weight:800}
.modal-body{padding:20px}
.modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
/* ── Misc ── */
.divider{height:1px;background:var(--border);margin:20px 0}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:20px}
.tab{padding:8px 16px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}
.tab.active{color:var(--p);border-bottom-color:var(--p)}
.tab:hover{color:var(--p)}
.sticky-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.sticky-note{padding:16px;border-radius:var(--radius-lg);font-size:13px;line-height:1.6;box-shadow:var(--shadow-sm);position:relative;min-height:140px}
.pain-card{background:var(--surface);border-left:4px solid var(--p);border-radius:var(--radius);padding:14px;margin-bottom:12px;box-shadow:var(--shadow-xs)}
/* ── Responsive ── */
@media(max-width:768px){
  .topbar__menu-toggle{display:flex}
  .sidebar{position:fixed;left:-100%;height:100vh;transition:left .25s}
  .sidebar.open{left:0}
  .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:25}
  .sidebar-overlay.show{display:block}
  .stat-grid{grid-template-columns:1fr 1fr}
  .content{padding:16px}
}

/* ── Icon Fix ── */
.icon, [data-lucide] { display:inline-block; width:16px; height:16px; vertical-align:middle; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.topbar__action .icon { width:18px; height:18px; }
.topbar__action { color: var(--text-muted); }
.topbar__action:hover { color: var(--p); }
.btn .icon { width:14px; height:14px; }
.btn-xs .icon, .btn-xs [data-lucide] { width:12px; height:12px; }
table.tbl td [data-lucide], table.tbl td .icon { width:13px; height:13px; color: var(--text-muted); }
.stat-icon [data-lucide], .stat-icon .icon { width:22px; height:22px; }
.sidebar__item [data-lucide], .sidebar__item .icon { width:16px; height:16px; color: inherit; opacity: .8; }
.sidebar__item.is-active [data-lucide], .sidebar__item:hover [data-lucide] { opacity:1; }
.card-header [data-lucide] { width:15px; height:15px; vertical-align:middle; }
.page-header [data-lucide] { width:16px; height:16px; }
.alert [data-lucide] { width:16px; height:16px; flex-shrink:0; }
.empty [data-lucide] { width:48px; height:48px; opacity:.3; display:block; margin:0 auto 12px; }
/* Pastikan lucide icons selalu visible */
svg.lucide { display:inline-block !important; visibility:visible !important; }

/* ── Bootstrap Icons Integration ── */
.bip-icon { font-size: 14px; line-height: 1; vertical-align: middle; }
.topbar__action .bip-icon { font-size: 17px; }
.stat-icon .bip-icon { font-size: 22px; }
.sidebar__item .bip-icon { font-size: 15px; opacity: .8; }
.sidebar__item.is-active .bip-icon,
.sidebar__item:hover .bip-icon { opacity: 1; }
.btn .bip-icon { font-size: 13px; }
.btn-xs .bip-icon { font-size: 11px; }
.btn-sm .bip-icon { font-size: 12px; }
.card-header .bip-icon { font-size: 14px; vertical-align: middle; }
.page-header .bip-icon { font-size: 16px; }
.alert .bip-icon { font-size: 15px; flex-shrink: 0; }
.empty .bip-icon { font-size: 48px; opacity: .3; display: block; margin: 0 auto 12px; }
table.tbl td .bip-icon { font-size: 13px; }

/* ── Table drag scroll (override) ── */
.table-wrap {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.table-wrap::-webkit-scrollbar { height: 4px; }
.table-wrap::-webkit-scrollbar-track { background: transparent; }
.table-wrap::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* ── Icon monokrom override ── */
.bip-icon { color: inherit !important; }
.stat-icon { background: var(--surface-2) !important; border: 1px solid var(--border); }

/* ════════════════════════════════
   GLOBAL ICON & STAT MONOCHROME
   Overrides semua halaman sekaligus
════════════════════════════════ */

/* Stat icon - hapus semua background warna, pakai surface-2 */
.stat-icon {
  background: var(--surface-2) !important;
  border: 1px solid var(--border) !important;
}

/* Semua icon dalam stat-icon → warna text-dim */
.stat-icon i,
.stat-icon .bip-icon,
.stat-icon svg {
  color: var(--text-muted) !important;
  stroke: var(--text-muted) !important;
}

/* Stat value - netral, hanya angka penting pakai maroon */
.stat-value { color: var(--text) !important; }

/* Badge - lebih subtle */
.badge { font-size: 10px !important; font-weight: 700 !important; letter-spacing: .03em; }

/* Card header bersih */
.card-header { border-bottom: 1px solid var(--border); }

/* Tabel header - bersih tanpa warna berlebihan */
.tbl th {
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--text-dim) !important;
  background: var(--surface-2) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 10px 14px !important;
  white-space: nowrap;
}
.tbl th a {
  color: var(--text-dim) !important;
  text-decoration: none !important;
}
.tbl th a:hover { color: var(--p) !important; }

/* Tabel row - lebih ringan */
.tbl td {
  padding: 11px 14px !important;
  border-bottom: 1px solid var(--border) !important;
  vertical-align: middle !important;
  font-size: 12px;
}
.tbl tr:last-child td { border-bottom: none !important; }

/* Page header bersih */
.page-header h2 {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  letter-spacing: -.01em;
}
.page-header p {
  font-size: 12px !important;
  color: var(--text-dim) !important;
  margin-top: 2px;
}

/* Stat card hover effect */
.stat-card {
  transition: box-shadow .15s, transform .15s !important;
  border: 1px solid var(--border) !important;
}
.stat-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
  transform: translateY(-1px);
}

/* Button bersih */
.btn { font-weight: 700 !important; letter-spacing: .01em; }
.btn-primary {
  background: #7f1d1d !important;
  border-color: #7f1d1d !important;
  color: #fff !important;
}
.btn-primary:hover { background: #991b1b !important; border-color: #991b1b !important; }

/* Tag/badge bersih */
.tag { letter-spacing: .02em !important; }

/* Form bersih */
.form-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  color: var(--text-dim) !important;
  margin-bottom: 5px !important;
}
.form-control {
  font-size: 13px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
  transition: border-color .15s !important;
}
.form-control:focus {
  border-color: #7f1d1d !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(127,29,29,.1) !important;
}

/* Modal bersih */
.modal-header {
  border-bottom: 1px solid var(--border) !important;
  padding: 18px 24px !important;
}
.modal-header h3 {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--text) !important;
}
.modal-footer {
  border-top: 1px solid var(--border) !important;
  padding: 14px 24px !important;
}
.modal-body { padding: 20px 24px !important; }

/* Section divider dalam form */
.form-section-title {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
  margin: 18px 0 12px;
}

/* Progress bar */
.progress-bar { border-radius: 99px !important; }

/* Scrollbar global */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

/* ── Extra overrides ── */

/* Hapus background inline stat-icon via attr selector */
[style*="background:#fef2f2"].stat-icon,
[style*="background:#f0fdf4"].stat-icon,
[style*="background:#eff6ff"].stat-icon,
[style*="background:#fffbeb"].stat-icon,
[style*="background:#f5f3ff"].stat-icon {
  background: var(--surface-2) !important;
}

/* Page title bersih */
h1.page-title, h2.page-title {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--text) !important;
  margin: 0 !important;
}

/* Empty state bersih */
.empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--text-dim);
}
.empty i { font-size: 36px; opacity: .3; margin-bottom: 12px; display: block; }
.empty h3 { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.empty p { font-size: 13px; }

/* Card grid */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}

/* Kelas/Program card */
.prog-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px;
  transition: box-shadow .15s, transform .15s;
}
.prog-card:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.prog-card-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 4px;
}
.prog-card-sub {
  font-size: 11px;
  color: var(--text-dim);
}
