/* =========================================================
   OSIS VOTING - Main Stylesheet
   SMK Negeri 1 Pengasih
   Tema terang / dominan krem-putih dengan aksen navy & emas
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --primary: #F5A623;      /* emas - tombol & aksen utama */
  --primary-dark: #8A5A0A;
  --primary-2: #E8940F;    /* emas lebih gelap - ujung gradasi */
  --secondary: #1B2F5B;    /* navy - pasangan gradasi & aksen kedua */
  --accent: #2563EB;       /* biru - link & info */
  --success: #16A34A;
  --warning: #D97706;
  --danger: #DC2626;

  /* Nama variabel dipertahankan agar semua rule & inline style lain
     tetap kompatibel — nilainya saja yang diganti ke tema navy & emas. */
  --bg-dark: #FDF6EC;         /* dasar background utama (krem hangat) */
  --bg-dark-2: #FFFFFF;       /* background sidebar admin */
  --surface: rgba(255,255,255,.82);   /* kartu "glass" */
  --surface-solid: #FFFFFF;   /* kartu solid (modal form dsb) */
  --border: rgba(27,47,91,.10);
  --text: #1B2F5B;            /* teks utama, navy */
  --text-muted: #6B7894;      /* teks sekunder, slate kebiruan */

  --radius: 18px;
  --radius-sm: 10px;
  --shadow: 0 20px 45px rgba(27,47,91,.09), 0 6px 18px rgba(15,23,42,.05);
  --shadow-sm: 0 8px 20px rgba(15,23,42,.05);
}

*{box-sizing:border-box;}

html,body{margin:0;padding:0;}
body{
  font-family:'Inter','Segoe UI',sans-serif;
  background:
    radial-gradient(circle at 12% 8%, rgba(245,166,35,.10), transparent 40%),
    radial-gradient(circle at 88% 22%, rgba(27,47,91,.05), transparent 42%),
    radial-gradient(circle at 50% 95%, rgba(245,166,35,.07), transparent 42%),
    var(--bg-dark);
  color:var(--text);
  min-height:100vh;
  line-height:1.6;
}

h1,h2,h3,h4,h5,h6,
.btn,.brand h1,.logo-circle,.badge,.nomor-urut,
.stat-card .stat-value,.hasil-percent,.countdown .box .num{
  font-family:'Poppins','Segoe UI',sans-serif;
}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* ---------- Layout Helpers ---------- */
.container{max-width:1180px; margin:0 auto; padding:0 20px;}
.center-screen{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;}
.text-center{text-align:center;}
.mt-1{margin-top:8px;} .mt-2{margin-top:16px;} .mt-3{margin-top:24px;} .mt-4{margin-top:32px;}
.mb-1{margin-bottom:8px;} .mb-2{margin-bottom:16px;} .mb-3{margin-bottom:24px;}
.flex{display:flex;} .items-center{align-items:center;} .justify-between{justify-content:space-between;}
.gap-1{gap:8px;} .gap-2{gap:16px;} .gap-3{gap:24px;}

/* ---------- Glass Card ---------- */
.glass{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: var(--shadow);
}

/* ---------- Topbar / Brand ---------- */
.brand{
  display:flex; align-items:center; gap:12px;
}
.brand .logo-circle{
  width:80px;height:80px;border-radius:60%;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:20px; color:#fff;
  box-shadow:0 8px 20px rgba(232,148,15,.35);
  flex-shrink:0;
}
.brand h1{font-size:17px; margin:0; color:var(--text); line-height:1.3;}
.brand small{color:var(--text-muted); font-size:12px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:12px; border:none; cursor:pointer;
  font-weight:600; font-size:14px; transition:.25s ease; text-decoration:none;
}
.btn-primary{ background:linear-gradient(90deg,var(--primary),var(--primary-2)); color:var(--secondary); box-shadow:0 10px 25px rgba(232,148,15,.32);}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(232,148,15,.45);}
.btn-secondary{ background:linear-gradient(90deg,var(--secondary),#2C4A8A); color:#fff; box-shadow:0 10px 25px rgba(27,47,91,.28);}
.btn-outline{ background:transparent; border:1px solid var(--border); color:var(--text);}
.btn-outline:hover{ background:rgba(245,166,35,.08); border-color:rgba(245,166,35,.4);}
.btn-success{ background:var(--success); color:#fff;}
.btn-danger{ background:var(--danger); color:#fff;}
.btn-sm{padding:8px 14px; font-size:13px; border-radius:8px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.5; cursor:not-allowed; transform:none;}

/* ---------- Forms ---------- */
.form-group{ margin-bottom:18px; }
.form-group label{ display:block; margin-bottom:6px; font-size:13px; color:var(--text-muted); font-weight:600;}
.form-control{
  width:100%; padding:13px 16px; border-radius:12px;
  border:1px solid var(--border); background:#F7F7FB;
  color:var(--text); font-size:14px; transition:.2s;
}
.form-control:focus{ outline:none; border-color:var(--primary); background:#fff; box-shadow:0 0 0 3px rgba(245,166,35,.18);}
textarea.form-control{resize:vertical; min-height:100px;}
.input-icon{position:relative;}
.input-icon .form-control{padding-left:44px;}
.input-icon i{position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--text-muted);}
.password-toggle{position:absolute; right:14px; top:50%; transform:translateY(-50%); cursor:pointer; color:var(--text-muted); background:none; border:none;}

/* ---------- Alerts ---------- */
.alert{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 18px; border-radius:12px; margin-bottom:18px; font-size:14px;
  border:1px solid transparent; animation:slideIn .3s ease;
}
.alert-success{ background:rgba(22,163,74,.08); color:#15803d; border-color:rgba(22,163,74,.25);}
.alert-error{ background:rgba(220,38,38,.07); color:#b91c1c; border-color:rgba(220,38,38,.22);}
.alert-info{ background:rgba(8,145,178,.08); color:#0e7490; border-color:rgba(8,145,178,.22);}
.alert button{background:none; border:none; color:inherit; font-size:18px; cursor:pointer; line-height:1;}
@keyframes slideIn{from{opacity:0; transform:translateY(-8px);} to{opacity:1; transform:translateY(0);}}

/* ---------- Badges ---------- */
.badge{ display:inline-block; padding:4px 12px; border-radius:99px; font-size:12px; font-weight:600;}
.badge-success{ background:rgba(22,163,74,.12); color:#15803d;}
.badge-warning{ background:rgba(217,119,6,.14); color:#92400e;}
.badge-danger{ background:rgba(220,38,38,.12); color:#991b1b;}
.badge-info{ background:rgba(37,99,235,.12); color:#1d4ed8;}

/* =========================================================
   HALAMAN LOGIN PEMILIH
   ========================================================= */
.login-wrap{ max-width:1000px; width:100%; display:grid; grid-template-columns:1.1fr 1fr; overflow:hidden;}
.login-visual{
  background:
    radial-gradient(circle at 85% 90%, rgba(245,166,35,.14), transparent 55%),
    radial-gradient(circle at 10% 100%, rgba(27,47,91,.06), transparent 45%),
    #FEFBF8;
  padding:48px 44px; position:relative; display:flex; flex-direction:column; justify-content:space-between;
  border-right:1px solid var(--border); overflow:hidden;
}
.login-visual::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Ccircle cx='60' cy='60' r='1.2' fill='%231B2F5B' opacity='0.10'/%3E%3C/svg%3E");
}
.login-visual .content{position:relative; z-index:1;}
.ballot-illustration{
  position:absolute; right:-10px; bottom:70px; width:58%; max-width:300px;
  pointer-events:none; z-index:0;
}
.ballot-illustration svg{ width:100%; height:auto; display:block;}
.login-visual h2{ color:var(--text); font-size:26px; line-height:1.4; margin-bottom:12px; font-weight:800;}
.login-visual p{ color:var(--text-muted); font-size:14px;}
.login-visual .brand h1{ color:var(--text); font-size:26px; line-height:1.25; font-weight:800;}
.login-visual .brand small{ font-size:13px; }
.login-visual .brand .logo-circle{ width:92px; height:92px; border-radius:50%; background:#fff; box-shadow:0 8px 22px rgba(27,47,91,.18); border:3px solid #FBD34D; overflow:hidden; color:var(--secondary);}

/* --- Dekorasi blob & aksen (sesuai mockup) --- */
.deco-blob{ position:absolute; pointer-events:none; z-index:0; border-radius:50%; }
.deco-blob-tl{ top:-70px; left:-90px; width:220px; height:220px; background:radial-gradient(circle at 30% 30%, #BFE0FA, #8FCBEF 70%); opacity:.9;}
.deco-blob-tr{ top:-60px; right:-70px; width:170px; height:170px; background:radial-gradient(circle at 60% 40%, #DDEEFC, #AFDBF6 70%); opacity:.8;}
.deco-stripe{
  position:absolute; left:-10%; bottom:-18%; width:130%; height:120px; z-index:0; pointer-events:none;
  background:linear-gradient(100deg, transparent 46%, #FBD34D 46%, #FBD34D 58%, transparent 58%);
  opacity:.85;
}
.deco-stripe::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, transparent 40%, #7EC1EE 40%, #7EC1EE 50%, transparent 50%);
}
.deco-leaf{ position:absolute; right:16%; bottom:8%; width:70px; z-index:1; opacity:.92; }
.tick-accent{ position:absolute; width:22px; height:5px; background:var(--primary); border-radius:99px; transform:rotate(-35deg); }

.countdown-wrap{
  display:inline-flex; align-items:center; gap:10px; background:linear-gradient(90deg,#3B82F6,#2563EB);
  color:#fff; font-weight:700; font-size:13px; padding:10px 18px; border-radius:99px; margin-top:22px;
  box-shadow:0 10px 22px rgba(37,99,235,.28);
}
.countdown{ display:flex; gap:10px; margin-top:16px;}
.countdown .box{ border-radius:14px; padding:14px 10px; text-align:center; min-width:66px; color:#fff; box-shadow:0 10px 20px rgba(15,23,42,.12);}
.countdown .box i{ font-size:12px; opacity:.85; margin-top:4px; display:block;}
.countdown .box:nth-child(1){ background:linear-gradient(160deg,#4F7DF3,#3457C9);}
.countdown .box:nth-child(2){ background:linear-gradient(160deg,#37B9EE,#1E93C9);}
.countdown .box:nth-child(3){ background:linear-gradient(160deg,#2FCBA6,#17A085);}
.countdown .box:nth-child(4){ background:linear-gradient(160deg,#9B7BEA,#7A54D6);}
.countdown .box .num{font-size:24px; font-weight:800; color:#fff; line-height:1.1;}
.countdown .box .label{font-size:9.5px; color:rgba(255,255,255,.85); text-transform:uppercase; letter-spacing:.5px; margin-top:2px;}

/* Kartu countdown "Pemungutan Suara Dibuka Dalam" (status: belum_mulai) */
.countdown-card{
  background:linear-gradient(160deg,#22345F,#1B2F5B);
  border-radius:16px; padding:20px 22px 18px; margin-top:22px;
  box-shadow:0 14px 30px rgba(27,47,91,.28);
}
.countdown-card .card-title{
  color:var(--primary); font-size:12px; font-weight:700; letter-spacing:1.5px;
  text-transform:uppercase; margin-bottom:14px;
}
.countdown-card .countdown{ margin-top:0; }
.countdown-card .countdown .box{ background:rgba(255,255,255,.09); box-shadow:none;}
.countdown-card .countdown .box i{ display:none; }
.countdown-card .countdown .box .label{ color:var(--primary); opacity:.95;}

.footer-pill{
  position:relative; z-index:1; background:var(--secondary); color:#fff; border-radius:14px;
  padding:12px 18px; font-size:12px; line-height:1.6; display:inline-block;
}
.footer-pill b{ display:block; font-size:12.5px; }

.lock-header{ display:flex; align-items:center; gap:14px; margin-bottom:26px;}
.lock-header .lock-icon{
  width:46px; height:46px; border-radius:50%; background:rgba(37,99,235,.10);
  display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:17px; flex-shrink:0;
}
.lock-header span{ font-weight:800; color:var(--text); font-size:16px; }

.login-form-side{ padding:48px 44px; background:#fff; position:relative;}

@media (max-width:820px){
  .login-wrap{ grid-template-columns:1fr; }
  .login-visual{ display:none; }
}

/* =========================================================
   HALAMAN VOTING - KARTU KANDIDAT
   ========================================================= */
.page-header{ text-align:center; padding:50px 20px 20px;}

.page-header h1{ font-size:28px; color:var(--text); margin-bottom:8px;}
.page-header p{ color:var(--text-muted);}

.kandidat-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:26px; padding:20px; max-width:1180px; margin:0 auto;
}
.kandidat-card{
  border-radius:var(--radius); overflow:hidden; position:relative;
  transition:.3s ease; display:flex; flex-direction:column;
}
.kandidat-card:hover{ transform:translateY(-6px); box-shadow:0 26px 50px rgba(232,148,15,.18), 0 8px 20px rgba(15,23,42,.08); }
.kandidat-photo-wrap{
  position:relative; height:230px; overflow:hidden;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:flex; align-items:center; justify-content:center;
}
.kandidat-photo-wrap img{ width:100%; height:100%; object-fit:contain; object-position:center;}
.kandidat-photo-wrap .no-photo{ font-size:64px; font-weight:800; color:rgba(255,255,255,.4);}
.nomor-urut{
  position:absolute; top:14px; left:14px; background:#fff; color:var(--text);
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:16px; box-shadow:0 6px 14px rgba(15,23,42,.25);
}
.kandidat-body{ padding:20px; flex:1; display:flex; flex-direction:column; background:#fff;}
.kandidat-body h3{ margin:0 0 4px; font-size:17px; color:var(--text);}
.kandidat-body .pasangan{ color:var(--text-muted); font-size:13px; margin-bottom:14px;}
.kandidat-body .visi{ font-size:13px; color:var(--text-muted); margin-bottom:16px; flex:1; }
.kandidat-body .btn{ margin-top:auto; }
.detail-toggle{ background:none; border:none; color:var(--accent); font-size:12px; cursor:pointer; padding:0; margin-bottom:14px; text-decoration:underline;}
.misi-list{ font-size:12.5px; color:var(--text-muted); padding-left:18px; display:none; margin-bottom:14px;}
.misi-list.show{ display:block; }

/* Modal konfirmasi */
.modal-overlay{
  position:fixed; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; z-index:999; padding:20px;
}
.modal-overlay.show{ display:flex; }
.modal-box{
  max-width:420px; width:100%; padding:30px; text-align:center; animation:pop .25s ease;
  background:#fff;
}
@keyframes pop{ from{transform:scale(.9); opacity:0;} to{transform:scale(1); opacity:1;} }
.modal-box .icon-check{
  width:64px; height:64px; border-radius:50%; margin:0 auto 16px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:flex; align-items:center; justify-content:center; font-size:28px; color:#fff;
}
.modal-box h3{ color:var(--text); margin-bottom:8px;}
.modal-box p{ color:var(--text-muted); font-size:14px; margin-bottom:22px;}
.modal-actions{ display:flex; gap:12px; }
.modal-actions .btn{ flex:1; }

/* =========================================================
   HALAMAN HASIL / RESULTS
   ========================================================= */
.hasil-card{ padding:22px; margin-bottom:18px; background:#fff;}
.hasil-row{ display:flex; align-items:center; gap:16px; margin-bottom:16px;}
.hasil-row .avatar{
  width:52px; height:52px; border-radius:12px; background:linear-gradient(135deg,var(--primary),var(--secondary));
  display:flex; align-items:center; justify-content:center; font-weight:700; color:#fff; flex-shrink:0; overflow:hidden;
}
.hasil-row .avatar img{width:100%;height:100%;object-fit:cover;}
.hasil-info{ flex:1; }
.hasil-info .name{ font-weight:600; color:var(--text); font-size:14px;}
.hasil-info .sub{ font-size:12px; color:var(--text-muted);}
.progress-track{ background:rgba(27,47,91,.07); border-radius:99px; height:10px; overflow:hidden; margin-top:6px;}
.progress-fill{ height:100%; border-radius:99px; background:linear-gradient(90deg,var(--primary),var(--secondary)); transition:width 1s ease;}
.hasil-percent{ font-weight:700; color:var(--text); min-width:56px; text-align:right;}

.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; margin-bottom:24px;}
.stat-card{ padding:22px; display:flex; align-items:center; gap:16px; background:#fff;}
.stat-card .stat-icon{
  width:50px; height:50px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; color:#fff; flex-shrink:0;
}
.stat-card .stat-value{ font-size:22px; font-weight:800; color:var(--text); }
.stat-card .stat-label{ font-size:12px; color:var(--text-muted);}

/* =========================================================
   ADMIN LAYOUT
   ========================================================= */
.admin-layout{ display:flex; min-height:100vh; }
.sidebar{
  width:260px; flex-shrink:0; background:var(--bg-dark-2); border-right:1px solid var(--border);
  padding:24px 18px; position:fixed; top:0; bottom:0; left:0; overflow-y:auto; z-index:50; transition:.3s;
  box-shadow:2px 0 24px rgba(15,23,42,.04);
}
.sidebar nav{ margin-top:30px; display:flex; flex-direction:column; gap:4px;}
.sidebar nav a{
  display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:10px;
  color:var(--text-muted); font-size:14px; font-weight:500; transition:.2s;
}
.sidebar nav a i{ width:18px; text-align:center;}
.sidebar nav a:hover{ background:rgba(245,166,35,.10); color:var(--secondary);}
.sidebar nav a.active{ background:linear-gradient(90deg,var(--primary),var(--primary-2)); color:var(--secondary); box-shadow:0 8px 18px rgba(232,148,15,.32);}
.sidebar .logout-link{ margin-top:24px; border-top:1px solid var(--border); padding-top:18px;}

.main-content{ margin-left:260px; flex:1; padding:28px 32px; min-width:0;}
.topbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:12px;}
.topbar h2{ color:var(--text); margin:0; font-size:20px;}
.topbar .admin-chip{ display:flex; align-items:center; gap:10px; padding:8px 14px; border-radius:99px;}
.menu-toggle{ display:none; background:none; border:1px solid var(--border); color:var(--text); padding:8px 12px; border-radius:8px; cursor:pointer;}

@media (max-width:920px){
  .sidebar{ left:-280px; }
  .sidebar.show{ left:0; }
  .main-content{ margin-left:0; padding:20px; }
  .menu-toggle{ display:inline-flex; }
}

/* ---------- Tabel ---------- */
.table-wrap{ overflow-x:auto; border-radius:var(--radius);}
table{ width:100%; border-collapse:collapse; min-width:640px;}
thead th{
  text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.5px;
  color:var(--text-muted); padding:14px 16px; border-bottom:1px solid var(--border); background:#FBF8F2;
}
tbody td{ padding:14px 16px; border-bottom:1px solid var(--border); font-size:14px;}
tbody tr{ background:#fff; }
tbody tr:hover{ background:#FDF8EF;}
tbody tr:last-child td{ border-bottom:none;}
.action-icons{ display:flex; gap:8px;}
.action-icons a, .action-icons button{
  width:34px; height:34px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:#FBF8F2; color:var(--text); cursor:pointer;
}
.action-icons a:hover{ background:rgba(245,166,35,.12); color:var(--primary-dark);}
.action-icons .del:hover{ background:rgba(220,38,38,.10); color:#b91c1c;}

.card-section{ padding:24px; margin-bottom:24px; background:#fff;}
.card-section h3{ margin-top:0; color:var(--text); font-size:16px; margin-bottom:18px; display:flex; align-items:center; gap:10px;}

.toolbar{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap;}
.search-box{ position:relative; max-width:280px; width:100%;}
.search-box input{ padding-left:40px; }
.search-box i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-muted);}

/* Modal Admin (form tambah/edit) */
.modal-form-overlay{
  position:fixed; inset:0; background:rgba(15,23,42,.55); display:none; align-items:flex-start; justify-content:center;
  z-index:999; padding:40px 20px; overflow-y:auto;
}
.modal-form-overlay.show{ display:flex; }
.modal-form-box{ max-width:520px; width:100%; padding:28px; background:var(--surface-solid); border-radius:var(--radius); border:1px solid var(--border); box-shadow:var(--shadow);}
.modal-form-box h3{ color:var(--text); margin-top:0;}
.modal-close{ float:right; background:none; border:none; color:var(--text-muted); font-size:20px; cursor:pointer;}
.foto-preview{ width:100px; height:100px; border-radius:12px; object-fit:cover; margin-bottom:10px; background:#F3F4F6;}

footer.site-footer{ text-align:center; padding:26px 20px; color:var(--text-muted); font-size:12.5px;}

/* =========================================================
   DAFTAR CALON KETUA (preview publik di halaman login)
   ========================================================= */
.candidates-section{ max-width:1180px; margin:0 auto; padding:10px 20px 50px;}
.section-badge{
  display:inline-flex; align-items:center; gap:6px; background:var(--secondary); color:var(--primary);
  font-size:11.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  padding:7px 16px; border-radius:99px; margin-bottom:14px;
}
.candidates-section h2{ font-size:24px; color:var(--text); margin:0 0 26px; font-weight:800;}

.candidate-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:20px;}
.candidate-card-mini{
  background:var(--surface-solid); border-radius:var(--radius); border:1px solid var(--border);
  padding:22px 18px 20px; text-align:center; box-shadow:0 10px 24px rgba(27,47,91,.08); position:relative;
}
.candidate-card-mini .no-badge{
  position:absolute; top:14px; left:14px; background:var(--secondary); color:var(--primary);
  font-size:11px; font-weight:700; padding:4px 11px; border-radius:99px;
}
.candidate-avatar-ring{
  width:92px; height:92px; border-radius:50%; margin:6px auto 14px; padding:3px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2)); overflow:hidden;
}
.candidate-avatar-ring img{ width:100%; height:100%; object-fit:cover; border-radius:50%; border:2px solid #fff;}
.candidate-avatar-ring .no-photo{
  width:100%; height:100%; border-radius:50%; border:2px solid #fff; background:var(--secondary);
  color:var(--primary); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:24px;
}
.candidate-card-mini h4{ font-size:15.5px; color:var(--text); margin:0 0 8px; font-weight:800;}
.candidate-card-mini .excerpt{
  font-size:12px; color:var(--text-muted); line-height:1.55; margin-bottom:16px; min-height:57px;
}
.candidate-card-mini .btn{ width:100%; font-size:12.5px; padding:10px 12px;}

.profil-modal-body h5{
  font-size:11.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--primary-dark);
  margin:18px 0 6px; font-weight:700;
}
.profil-modal-body h5:first-child{ margin-top:4px; }
.profil-modal-body p, .profil-modal-body li{ font-size:13.5px; color:var(--text); line-height:1.6;}
.profil-modal-body ul, .profil-modal-body ol{ margin:0; padding-left:20px;}
.profil-modal-header{ text-align:center; margin-bottom:6px;}
.profil-modal-header .candidate-avatar-ring{ width:96px; height:96px;}

::-webkit-scrollbar{ width:8px; height:8px;}
::-webkit-scrollbar-thumb{ background:rgba(27,47,91,.18); border-radius:99px;}
::-webkit-scrollbar-track{ background:transparent;}
