/* ==============================
   Civic Exam Dashboard Styles
   Brand:
   Blue  #24338F
   Pink  #EA4D80
============================== */

:root{
  --civic-blue:#24338F;
  --civic-pink:#EA4D80;
  --civic-bg:#f6f7fb;
  --civic-border:#e6e8f0;
  --civic-text:#1f2937;
  --civic-muted:#6b7280;
  --civic-radius:14px;
}

/*
 * Fichier: public/css/dashboard.css
 * Rôle: styles UI du tableau de bord (dashboard) et des composants du plugin civic-exam.
 * Note: les règles sont volontairement "scopées" (body .civic-*) pour éviter les conflits avec le thème WordPress.
 */

/* ------------------------------
   High-specificity scope
   Many WP themes heavily style .entry-content a, button, table, etc.
   We intentionally prefix with body to win the cascade.
-------------------------------- */

body .civic-card{
  background:#fff !important;
  padding:22px !important;
  margin:0 0 16px 0 !important;
  border:1px solid rgba(230,232,240,.6) !important;
}

body .civic-title{
  font-size:20px !important;
  font-weight:700 !important;
  color:var(--civic-blue) !important;
  margin:0 0 6px 0 !important;
  line-height:1.2 !important;
}

body .civic-muted{
  color:var(--civic-muted) !important;
  font-size:14px !important;
  margin:0 !important;
}

/* ==============================
   Dashboard App Layout (Sidebar + Content)
============================== */

body .civic-dash-shell{
  display:flex !important;
  gap:0 !important;
  align-items:stretch !important;
  padding:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  position:relative !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(234,77,128,.08), transparent 40%),
    radial-gradient(circle at 100% 0%, rgba(36,51,143,.09), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(246,247,251,.96)) !important;
  border:none !important;
  box-shadow:none !important;
}

body .civic-dash-nav{
  width:260px !important;
  flex:0 0 260px !important;
  background:#24338F !important;
  border:none !important;
  border-radius:0 !important;
  padding:14px !important;
  box-shadow:none !important;
  position:sticky !important;
  top:0 !important;
  color:#fff !important;
  min-height:100vh !important;
  overflow:hidden !important;
}

body .civic-dash-nav::before{
  content:"" !important;
  position:absolute !important;
  right:-30px !important;
  bottom:-34px !important;
  width:140px !important;
  height:140px !important;
  border-radius:999px !important;
  background:radial-gradient(circle, rgba(234,77,128,.30), rgba(234,77,128,0)) !important;
  pointer-events:none !important;
}

body .civic-dash-nav-title,
body .civic-dash-nav__title{
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:.25px !important;
  color:rgba(255,255,255,.88) !important;
  margin:6px 10px 12px 10px !important;
  text-transform:uppercase !important;
}

body .civic-dash-nav__links{
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
}

body a.civic-dash-link{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  padding:10px 12px !important;
  border-radius:12px !important;
  text-decoration:none !important;
  color:var(--civic-blue) !important;
  font-weight:700 !important;
  font-size:14px !important;
  margin:4px 0 !important;
  border:1px solid rgba(36,51,143,.10) !important;
  background:#D8E0FF !important;
  transition:background .15s ease, transform .15s ease, border-color .15s ease, box-shadow .15s ease !important;
  position:relative !important;
}

body a.civic-dash-link:hover{
  background:#e6edff !important;
  border-color:rgba(36,51,143,.18) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 10px 20px rgba(10,16,48,.10) !important;
}

body a.civic-dash-link.is-active{
  background:#D8E0FF !important;
  border-color:rgba(234,77,128,.34) !important;
  color:var(--civic-blue) !important;
  box-shadow:0 14px 26px rgba(17,24,39,.14) !important;
}

body a.civic-dash-link.is-active::before{
  content:"" !important;
  position:absolute !important;
  left:-14px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:4px !important;
  height:30px !important;
  border-radius:999px !important;
  background:var(--civic-pink) !important;
  box-shadow:0 0 0 4px rgba(234,77,128,.12) !important;
}

body .civic-dash-ico,
body .civic-dash-link__icon{
  width:34px !important;
  height:34px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:10px !important;
  background:rgba(36,51,143,.10) !important;
  color:var(--civic-blue) !important;
  flex:0 0 34px !important;
  font-size:16px !important;
}

body a.civic-dash-link.is-active .civic-dash-ico,
body a.civic-dash-link.is-active .civic-dash-link__icon{
  background:rgba(234,77,128,.15) !important;
  color:var(--civic-blue) !important;
}

body .civic-dash-link__text{
  flex:1 1 auto !important;
  min-width:0 !important;
}

body .civic-dash-link__meta{
  color:rgba(255,255,255,.72) !important;
  font-weight:800 !important;
  line-height:1 !important;
}

body a.civic-dash-link--external{
  margin-top:10px !important;
  background:#D8E0FF !important;
  border-color:rgba(234,77,128,.28) !important;
}

body a.civic-dash-link--external:hover{
  background:#e6edff !important;
  border-color:rgba(234,77,128,.34) !important;
}

body .civic-dash-nav__footer{
  margin-top:14px !important;
  padding-top:14px !important;
  border-top:1px solid rgba(255,255,255,.12) !important;
}

body .civic-dash-logout{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  padding:10px 12px !important;
  border-radius:12px !important;
  text-decoration:none !important;
  color:#fff !important;
  font-weight:700 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  background:rgba(255,255,255,.04) !important;
}

body .civic-dash-logout:hover{
  background:rgba(255,255,255,.09) !important;
  border-color:rgba(255,255,255,.20) !important;
}

body .civic-dash-main{
  flex:1 1 auto !important;
  min-width:0 !important;
  padding:0 !important;
}

/* Remove extra shortcode/page spacing */
body .civic-dash-shell,
body .entry-content .civic-dash-shell,
body .elementor-widget-shortcode .civic-dash-shell{
  margin:0 !important;
}

/* Elementor/shortcode wrapper spacing cleanup (removes white gap above dashboard) */
body .elementor-widget-shortcode,
body .elementor-widget-shortcode .elementor-widget-container,
body .elementor-shortcode{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Compensate common theme/page top padding above the dashboard shortcode */
body .elementor-widget-shortcode .civic-dash-shell{
  margin-top:-1px !important;
}

body .civic-dash-main > *:first-child{
  margin-top:0 !important;
}

body .civic-dash-main > *:last-child{
  margin-bottom:0 !important;
}

body .civic-dash-section-title{
  font-size:16px !important;
  font-weight:800 !important;
  color:var(--civic-blue) !important;
  margin:0 0 12px 0 !important;
}

/* Mobile layout */
@media (max-width: 900px){
  body .civic-dash-shell{
    flex-direction:column !important;
    padding:0 !important;
    border-radius:0 !important;
  }
  body .civic-dash-nav{
    width:100% !important;
    flex:1 1 auto !important;
    position:relative !important;
    top:auto !important;
    min-height:unset !important;
    border-radius:0 !important;
  }
  body .civic-dash-nav__links{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:8px !important;
  }
  body a.civic-dash-link--external{
    grid-column:1 / -1 !important;
  }
  body .civic-dash-main{
    padding:0 !important;
  }
  body .civic-dash-main > .civic-banner{
    width:100% !important;
    margin-left:0 !important;
    border-radius:0 !important;
  }
}

/* ==============================
   Buttons
============================== */

/* Apply to both <a> and <button> */
body a.civic-btn,
body button.civic-btn,
body input.civic-btn{
  background:var(--civic-blue) !important;
  color:#fff !important;
  border:none !important;
  padding:12px 18px !important;
  border-radius:10px !important;
  font-weight:600 !important;
  cursor:pointer !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  transition:transform .2s ease, opacity .2s ease !important;
}

body a.civic-btn:hover,
body button.civic-btn:hover{
  transform:translateY(-1px) !important;
  opacity:.95 !important;
}

body a.civic-btn-secondary,
body button.civic-btn-secondary{
  background:var(--civic-pink) !important;
  color:#fff !important;
}

body a.civic-btn-ghost,
body button.civic-btn-ghost{
  background:transparent !important;
  border:2px solid var(--civic-blue) !important;
  color:var(--civic-blue) !important;
}

body a.civic-btn[disabled],
body button.civic-btn[disabled],
body a.civic-btn-ghost[disabled],
body button.civic-btn-ghost[disabled]{
  opacity:.45 !important;
  cursor:not-allowed !important;
  transform:none !important;
}

body .civic-actions{
  display:flex !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-top:14px !important;
}

/* ==============================
   Status badges
============================== */
body .civic-badge{
  display:inline-block !important;
  padding:6px 10px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1 !important;
}

body .civic-badge-active{
  background:rgba(36,51,143,.12) !important;
  color:var(--civic-blue) !important;
}

body .civic-badge-pending{
  background:rgba(234,77,128,.12) !important;
  color:var(--civic-pink) !important;
}

body .civic-badge-expired{
  background:#fee2e2 !important;
  color:#991b1b !important;
}

/* ==============================
   Dashboard header
============================== */
body .civic-dashboard-header{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:10px !important;
}

body .civic-dash-main > .civic-banner{
  width:fit-content !important;
  max-width:100% !important;
  margin-left:auto !important;
  border-radius:999px !important;
  padding:12px 18px !important;
  background:rgba(255,255,255,.95) !important;
  border:2px solid rgba(36,51,143,.12) !important;
  box-shadow:0 12px 24px rgba(36,51,143,.06) !important;
}

body .civic-dash-main > .civic-banner::before{
  content:"" !important;
  width:10px !important;
  height:10px !important;
  border-radius:999px !important;
  background:#22c55e !important;
  display:inline-block !important;
  margin-right:10px !important;
  box-shadow:0 0 0 6px rgba(34,197,94,.12) !important;
  vertical-align:middle !important;
}


/* ==============================
   Info banners
============================== */
body .civic-banner{
  background:rgba(36,51,143,.08) !important;
  border:1px solid rgba(36,51,143,.14) !important;
  color:var(--civic-blue) !important;
  padding:16px !important;
  border-radius:var(--civic-radius) !important;
  margin:0 0 16px 0 !important;
}

body .civic-banner strong{
  font-weight:700 !important;
}

body .civic-dash-panel .civic-card,
body .civic-dash-main > .civic-card{
  border-radius:24px !important;
  border:1px solid rgba(36,51,143,.10) !important;
  box-shadow:0 18px 36px rgba(36,51,143,.05) !important;
}

body .civic-dash-panel .civic-title{
  font-size:clamp(22px, 2vw, 30px) !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
}

body .civic-dash-panel .civic-title + .civic-muted{
  color:#6573c3 !important;
  font-size:15px !important;
}

body #tab-examens .civic-card{
  background:
    radial-gradient(circle at 88% 16%, rgba(234,77,128,.14), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,251,255,.96)) !important;
}

body #tab-examens .civic-actions{
  justify-content:space-between !important;
  align-items:center !important;
  width:100% !important;
}

body #tab-examens .civic-actions .civic-btn{
  min-height:46px !important;
  border-radius:14px !important;
  font-weight:700 !important;
  box-shadow:0 12px 24px rgba(36,51,143,.10) !important;
}

/* ==============================
   Mobile tweaks
============================== */
@media (max-width:640px){
  body .civic-title{font-size:18px !important;}
  body .civic-actions{flex-direction:column !important;}
  body a.civic-btn,
  body button.civic-btn{width:100% !important;}
  body #tab-examens .civic-actions{
    justify-content:stretch !important;
  }
  body a.civic-dash-link{
    padding:10px !important;
    font-size:13px !important;
  }
}

/* ==============================
   Forms (inputs, errors, success)
============================== */

body .civic-form-row{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  margin:12px 0 !important;
}

body .civic-label{
  font-size:13px !important;
  font-weight:700 !important;
  color:var(--civic-blue) !important;
}

body .civic-input{
  width:100% !important;
  background:#fff !important;
  border:1px solid rgba(230,232,240,.9) !important;
  border-radius:12px !important;
  padding:12px 14px !important;
  font-size:14px !important;
  outline:none !important;
  box-shadow:0 6px 18px rgba(0,0,0,.03) !important;
  transition:border-color .15s ease, box-shadow .15s ease !important;
}

body .civic-input:focus{
  border-color:rgba(234,77,128,.55) !important;
  box-shadow:0 0 0 4px rgba(234,77,128,.12) !important;
}

body .civic-alert{
  border-radius:14px !important;
  padding:12px 14px !important;
  font-size:14px !important;
  margin:12px 0 0 0 !important;
  border:1px solid transparent !important;
}

body .civic-alert--success{
  background:rgba(16,185,129,.10) !important;
  border-color:rgba(16,185,129,.18) !important;
  color:#065f46 !important;
}

body .civic-alert--error{
  background:rgba(239,68,68,.10) !important;
  border-color:rgba(239,68,68,.18) !important;
  color:#991b1b !important;
}

/* Dashboard account form (password change) */
body .civic-account-form{
  border:1px solid rgba(36,51,143,.10) !important;
  border-radius:22px !important;
  padding:18px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,255,.95)) !important;
  box-shadow:0 10px 24px rgba(16,24,40,.04) !important;
}

body .civic-account-form .civic-login-field{
  margin-bottom:14px !important;
}

body .civic-account-form .civic-login-field label{
  display:block !important;
  margin:0 0 7px 2px !important;
  font-size:13px !important;
  font-weight:700 !important;
  color:#243391 !important;
}

body .civic-account-form .civic-pass-wrap{
  position:relative !important;
}

body .civic-account-form .civic-login-field input[type="password"],
body .civic-account-form .civic-login-field input[type="text"]{
  width:100% !important;
  min-height:50px !important;
  border-radius:999px !important;
  border:1px solid rgba(36,51,143,.10) !important;
  background:linear-gradient(180deg, #ffffff, #fbfcff) !important;
  padding:12px 46px 12px 16px !important;
  font-size:14px !important;
  color:#0f172a !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 8px 20px rgba(36,51,143,.035) !important;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease !important;
}

body .civic-account-form .civic-login-field input[type="password"]:focus,
body .civic-account-form .civic-login-field input[type="text"]:focus{
  outline:none !important;
  border-color:rgba(234,77,128,.42) !important;
  box-shadow:0 0 0 4px rgba(234,77,128,.10), 0 10px 22px rgba(36,51,143,.07) !important;
  background:#fff !important;
}

body .civic-account-form .civic-pass-toggle{
  position:absolute !important;
  top:50% !important;
  right:10px !important;
  transform:translateY(-50%) !important;
  width:28px !important;
  height:28px !important;
  border-radius:999px !important;
  border:none !important;
  background:transparent !important;
  color:rgba(36,51,145,.72) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
  line-height:1 !important;
  padding:0 !important;
  transition:color .15s ease, background .15s ease, transform .06s ease !important;
  z-index:2 !important;
}

body .civic-account-form .civic-pass-toggle__icon{
  width:18px !important;
  height:18px !important;
  display:block !important;
  flex:0 0 auto !important;
  position:absolute !important;
  top:50% !important;
  left:50% !important;
  transform:translate(-50%, -50%) !important;
  pointer-events:none !important;
  transition:opacity .15s ease !important;
}

body .civic-account-form .civic-pass-toggle__icon--eye{
  opacity:1 !important;
}

body .civic-account-form .civic-pass-toggle__icon--eyeoff{
  opacity:0 !important;
}

body .civic-account-form .civic-pass-toggle svg *,
body .civic-account-form .civic-pass-toggle svg{
  pointer-events:none !important;
}

body .civic-account-form .civic-pass-toggle:hover{
  color:#243391 !important;
  background:rgba(36,51,143,.06) !important;
}

body .civic-account-form .civic-pass-toggle:focus{
  outline:none !important;
  box-shadow:0 0 0 4px rgba(36,51,143,.10) !important;
  background:rgba(36,51,143,.06) !important;
}

body .civic-account-form .civic-pass-toggle:active{
  transform:translateY(-50%) translateY(1px) !important;
}

body .civic-account-form .civic-pass-toggle[aria-pressed="true"]{
  background:rgba(234,77,128,.10) !important;
  color:#EA4D80 !important;
}

body .civic-account-form .civic-pass-toggle[aria-pressed="true"] .civic-pass-toggle__icon--eye{
  opacity:0 !important;
}

body .civic-account-form .civic-pass-toggle[aria-pressed="true"] .civic-pass-toggle__icon--eyeoff{
  opacity:1 !important;
}

/* ======================================
   Header Login / Dashboard Button
   ====================================== */

body .civic-header-btn-pink {
  background: #ea4d80 !important;
  color: #ffffff !important;
  padding: 10px 20px;
  border-radius: 10px;
  text-decoration: none !important;
  font-weight: 600;
  font-family: inherit !important;
  font-size: 14px;
  display: inline-block;
  line-height: 1.2;
  box-shadow: 0 6px 14px rgba(234,77,128,.25);
  transition: background .2s ease, transform .15s ease, box-shadow .15s ease;
}

/* Hover effect */
body .civic-header-btn-pink:hover {
  background: #d43f6d !important;
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(234,77,128,.32);
}

/* Active click */
body .civic-header-btn-pink:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(234,77,128,.25);
}



/* ==============================
   Historique des examens (UI moderne type web app)
   - Aligné en 1 ligne sur desktop
   - Lisible sur mobile (stack)
============================== */

/* Espacement global entre les sections du dashboard */
body .civic-dash-main > .civic-card,
body .civic-dash-main > .civic-banner{
  margin-bottom:18px !important;
}

/* Conteneur Historique */
body .civic-history-shell{
  background:#fff !important;
  border:1px solid rgba(230,232,240,.8) !important;
  border-radius:18px !important;
  padding:18px !important;
  box-shadow:0 12px 30px rgba(16,24,40,.06) !important;
}

body .civic-history-header{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:14px !important;
}

/* En-têtes (labels) au-dessus de la liste */
body .civic-history-head{
  display:grid !important;
  grid-template-columns: 1.05fr .8fr .9fr .85fr .8fr 1fr !important;
  gap:12px !important;
  padding:10px 12px !important;
  margin:10px 0 8px 0 !important;
  border-radius:14px !important;
  background:#f6f7fb !important;
  border:1px solid rgba(230,232,240,.9) !important;
  color:var(--civic-muted) !important;
  font-size:12px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.2px !important;
}

body .civic-history-head span{
  white-space:nowrap !important;
}

/* Liste */
body .civic-history-list{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  margin-top:10px !important;
}

/* Ligne (1 examen) */
body .civic-history-item{
  display:grid !important;
  grid-template-columns: 1.05fr .8fr .9fr .85fr .8fr 1fr !important;
  gap:12px !important;
  align-items:center !important;
  padding:14px 12px !important;
  background:#fff !important;
  border:1px solid rgba(36,51,143,.12) !important;
  border-radius:16px !important;
  box-shadow:0 10px 24px rgba(16,24,40,.05) !important;
}

body .civic-history-cell{
  min-width:0 !important;
}

body .civic-history-item:hover{
  border-color:rgba(36,51,143,.20) !important;
  box-shadow:0 14px 30px rgba(16,24,40,.08) !important;
}

/* Colonne Date */
body .civic-history-date{
  font-weight:900 !important;
  font-size:16px !important;
  color:#111827 !important;
}

/* Chips (Score / ID) */
body .civic-chip{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  padding:10px 14px !important;
  border-radius:999px !important;
  border:1px solid rgba(36,51,143,.10) !important;
  background:rgba(36,51,143,.04) !important;
  line-height:1.1 !important;
  width:auto !important;
  max-width:100% !important;
  white-space:nowrap !important;
}

body .civic-chip__label{
  font-weight:800 !important;
  color:var(--civic-muted) !important;
}

body .civic-chip__value{
  font-weight:900 !important;
  color:var(--civic-blue) !important;
  white-space:nowrap !important;
}

body .civic-chip--mode{
  background:rgba(234,77,128,.10) !important;
  border-color:rgba(234,77,128,.18) !important;
}

body .civic-chip--mode .civic-chip__value{
  color:var(--civic-pink) !important;
}

body .civic-chip--result-ok{
  background:rgba(234,77,128,.12) !important;
  border-color:rgba(234,77,128,.24) !important;
}

body .civic-chip--result-ok .civic-chip__value{
  color:var(--civic-pink) !important;
}

body .civic-chip--result-bad{
  background:rgba(234,77,128,.12) !important;
  border-color:rgba(234,77,128,.24) !important;
}

body .civic-chip--result-bad .civic-chip__value{
  color:var(--civic-pink) !important;
}

/* Statut */
body .civic-pill{
  display:inline-flex !important;
  align-items:center !important;
  padding:9px 12px !important;
  border-radius:999px !important;
  font-weight:900 !important;
  font-size:12px !important;
  border:1px solid rgba(36,51,143,.12) !important;
  background:#fff !important;
  width:fit-content !important;
}

body .civic-pill--neutral{
  background:rgba(36,51,143,.06) !important;
  border-color:rgba(36,51,143,.14) !important;
  color:var(--civic-blue) !important;
}

body .civic-pill--ok{
  background:rgba(16,185,129,.12) !important;
  border-color:rgba(16,185,129,.22) !important;
  color:#065f46 !important;
}

body .civic-pill--bad{
  background:rgba(239,68,68,.10) !important;
  border-color:rgba(239,68,68,.22) !important;
  color:#991b1b !important;
}

/* Bouton action */
body a.civic-btn-sm,
body button.civic-btn-sm{
  background:var(--civic-pink) !important;
  color:#fff !important;
  padding:10px 14px !important;
  border-radius:999px !important;
  font-weight:900 !important;
  font-size:13px !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:0 10px 20px rgba(234,77,128,.22) !important;
  border:none !important;
  white-space:nowrap !important;
  max-width:100% !important;
}

body a.civic-btn-sm:hover,
body button.civic-btn-sm:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 14px 26px rgba(234,77,128,.32) !important;
}

/* Pagination */
body .civic-pagination{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:center !important;
  justify-content:flex-end !important;
  margin-top:14px !important;
}

body .civic-page{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:36px !important;
  min-width:36px !important;
  padding:0 12px !important;
  border-radius:12px !important;
  border:1px solid rgba(36,51,143,.12) !important;
  background:#fff !important;
  text-decoration:none !important;
  font-weight:900 !important;
  color:var(--civic-blue) !important;
}

body button.civic-page{
  appearance:none !important;
  -webkit-appearance:none !important;
  cursor:pointer !important;
  font-family:inherit !important;
}

body .civic-page:hover{
  border-color:rgba(36,51,143,.22) !important;
  background:rgba(36,51,143,.04) !important;
}

body .civic-page.is-active{
  background:rgba(234,77,128,.14) !important;
  border-color:rgba(234,77,128,.30) !important;
  color:var(--civic-blue) !important;
}

body .civic-page.is-disabled{
  opacity:.45 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
}

body .civic-page.is-ellipsis{
  border-color:transparent !important;
  background:transparent !important;
}

/* Empty state */
body .civic-empty{
  border:1px dashed rgba(36,51,143,.18) !important;
  border-radius:16px !important;
  padding:18px !important;
  text-align:center !important;
  background:rgba(36,51,143,.03) !important;
  color:var(--civic-muted) !important;
}

/* Mobile: on empile et on garde les labels */
@media (max-width: 1180px){
  body .civic-history-head{
    grid-template-columns: 1fr .75fr .85fr .8fr .75fr 1fr !important;
    gap:10px !important;
  }

  body .civic-history-item{
    grid-template-columns: 1fr .75fr .85fr .8fr .75fr 1fr !important;
    gap:10px !important;
    padding:12px 10px !important;
  }

  body .civic-history-date{
    font-size:15px !important;
  }

  body .civic-chip,
  body .civic-pill{
    padding:8px 10px !important;
    font-size:12px !important;
  }

  body a.civic-btn-sm,
  body button.civic-btn-sm{
    padding:9px 12px !important;
    font-size:12px !important;
  }
}

@media (max-width: 920px){
  body .civic-history-head{
    grid-template-columns: .95fr .7fr .8fr .8fr .7fr .95fr !important;
  }

  body .civic-history-item{
    grid-template-columns: .95fr .7fr .8fr .8fr .7fr .95fr !important;
  }

  body .civic-history-cell--action{
    justify-self:end !important;
  }

  body a.civic-btn-sm,
  body button.civic-btn-sm{
    min-width:0 !important;
  }
}

@media (max-width: 720px){
  body .civic-history-head{
    display:none !important;
  }

  body .civic-history-item{
    grid-template-columns: 1fr !important;
    gap:10px !important;
    padding:14px !important;
  }

  body .civic-history-item > *{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    flex-wrap:wrap !important;
  }

  body .civic-history-item > *::before{
    content:attr(data-label);
    font-weight:800;
    color:var(--civic-muted);
  }

  body .civic-history-cell--action{
    justify-content:flex-start !important;
  }

  body .civic-history-cell--action::before{
    width:100% !important;
  }

  body a.civic-btn-sm,
  body button.civic-btn-sm{
    width:100% !important;
  }

  body .civic-pagination{
    justify-content:center !important;
  }

  body .civic-page{
    min-width:40px !important;
  }
}

/* ======================================
   Bento Dashboard Refresh (solid colors)
   ====================================== */
body .civic-dash-shell{
  gap:16px !important;
  align-items:flex-start !important;
  padding:14px !important;
  border-radius:24px !important;
  background:#f4f6ff !important;
  border:none !important;
  box-shadow:none !important;
}

body .civic-dash-nav{
  background:#24338F !important;
  border:none !important;
  border-radius:20px !important;
  box-shadow:none !important;
  top:14px !important;
  min-height:auto !important;
}

body .civic-dash-nav::before{
  display:none !important;
}

body .civic-dash-nav__title{
  color:#ffffff !important;
}

body a.civic-dash-link{
  background:#D8E0FF !important;
  color:#24338F !important;
  border:none !important;
  box-shadow:none !important;
}

body a.civic-dash-link:hover{
  background:#e5ebff !important;
  color:#24338F !important;
  border-color:transparent !important;
  box-shadow:none !important;
}

body a.civic-dash-link.is-active{
  background:#D8E0FF !important;
  color:#24338F !important;
  border-color:transparent !important;
  box-shadow:none !important;
}

body .civic-dash-link__icon,
body .civic-dash-ico{
  background:rgba(36,51,143,.10) !important;
  color:#24338F !important;
}

body a.civic-dash-link.is-active .civic-dash-link__icon,
body a.civic-dash-link.is-active .civic-dash-ico{
  background:rgba(234,77,128,.16) !important;
  color:#24338F !important;
}

body .civic-dash-link__meta{
  color:#24338F !important;
}

body a.civic-dash-link--external{
  background:#D8E0FF !important;
}

body a.civic-dash-link--external:hover{
  background:#e5ebff !important;
}

body .civic-dash-main{
  padding:6px !important;
}

body .civic-dash-main > .civic-banner{
  margin:0 0 14px auto !important;
  border-radius:18px !important;
  background:#ffffff !important;
  border:none !important;
  box-shadow:none !important;
}

body .civic-dash-main > .civic-card,
body .civic-dash-panel .civic-card{
  background:#ffffff !important;
  border-radius:22px !important;
  border:none !important;
  box-shadow:none !important;
}

body #tab-examens .civic-card{
  background:#ffffff !important;
}

body .civic-card{
  background:#ffffff !important;
  border:none !important;
  box-shadow:none !important;
}

body .civic-dash-main > .civic-banner,
body .civic-dash-main > .civic-card,
body .civic-dash-panel,
body .civic-dash-panel .civic-card{
  margin-bottom:14px !important;
}

body .civic-dash-panel:last-child,
body .civic-dash-main > *:last-child{
  margin-bottom:0 !important;
}

@media (max-width: 900px){
  body .civic-dash-shell{
    gap:12px !important;
    padding:10px !important;
    border-radius:18px !important;
  }

  body .civic-dash-nav{
    border-radius:18px !important;
    top:auto !important;
  }

  body .civic-dash-main{
    padding:2px !important;
  }

  body .civic-dash-main > .civic-banner{
    margin:0 0 12px 0 !important;
    border-radius:14px !important;
  }

  body .civic-dash-main > .civic-banner,
  body .civic-dash-main > .civic-card,
  body .civic-dash-panel .civic-card{
    margin-bottom:12px !important;
    border-radius:16px !important;
  }
}

@media (max-width: 640px){
  body .civic-dash-shell{
    padding:8px !important;
    gap:10px !important;
    border-radius:14px !important;
  }

  body .civic-dash-nav{
    padding:10px !important;
    border-radius:14px !important;
  }

  body .civic-dash-nav__links{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  body a.civic-dash-link--external{
    grid-column:auto !important;
  }

  body a.civic-dash-link{
    min-height:46px !important;
    border-radius:14px !important;
  }

  body .civic-dash-main{
    padding:0 !important;
  }

  body .civic-dash-main > .civic-banner,
  body .civic-dash-main > .civic-card,
  body .civic-dash-panel .civic-card{
    margin-bottom:10px !important;
    border-radius:14px !important;
  }
}
