:root {
  --white: #ffffff;
  --ink: #202631;
  --muted: #697386;
  --line: #E2E8F0;
  --soft: #F6F8FB;
  --gold: #D9A441;
  --gold-soft: #FFF6DF;
  --red: #B91C1C;
  --green: #12805C;
  --shadow: 0 16px 36px rgba(32, 38, 49, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--soft);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.45;
}

button,
input,
select,
textarea {
  font: inherit;
  min-width: 0;
}

button {
  cursor: pointer;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 72px;
  padding: 0 28px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: var(--ink);
  color: var(--gold);
  font-size: 14px;
  font-weight: 900;
}

.menu-toggle {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
}

.menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 999px;
  background: var(--ink);
}

.main-nav,
.hero-actions,
.candidate-actions,
.badge-row,
.action-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.main-nav button,
.primary,
.ghost,
.danger,
.candidate-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0 14px;
  background: var(--white);
  color: var(--ink);
  font-weight: 800;
}

.main-nav button.is-active,
.primary {
  border-color: var(--gold);
  background: var(--gold);
  color: #1b1b1b;
}

.danger {
  border-color: #FECACA;
  color: var(--red);
}

#app {
  width: 100%;
  margin: 0 auto;
  padding: 28px clamp(18px, 3vw, 48px) 56px;
}

.hero {
  position: relative;
  display: block;
}

.hero-copy,
.auth-screen {
  display: grid;
  align-content: center;
  min-height: 430px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: clamp(26px, 5vw, 56px);
  background:
    linear-gradient(120deg, rgba(32, 38, 49, 0.94), rgba(32, 38, 49, 0.66)),
    linear-gradient(135deg, #141820, #7A1D1D 58%, var(--gold));
  color: var(--white);
}

.hero-copy {
  min-height: clamp(460px, 42vw, 620px);
  padding-bottom: clamp(150px, 12vw, 190px);
}

.hero-copy h1,
.page-head h1,
.auth-screen h1,
.dashboard-head h1 {
  margin: 0;
  max-width: 860px;
  font-size: clamp(36px, 6vw, 76px);
  line-height: 1.02;
  font-weight: 850;
}

.hero-copy p,
.auth-screen p {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 17px;
}

.hero-panel,
.section,
.page-head,
.dashboard-head,
.candidate-card,
.stat-card,
.login-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  box-shadow: var(--shadow);
}

.hero-panel {
  position: absolute;
  right: clamp(26px, 5vw, 56px);
  bottom: clamp(22px, 4vw, 42px);
  left: clamp(26px, 5vw, 56px);
  display: grid;
  gap: 10px;
  align-content: end;
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
  color: var(--white);
}

.hero-panel .kicker {
  color: var(--gold);
}

.hero-panel .stats-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hero-panel .stat-card {
  min-height: 92px;
  border-color: rgba(255, 255, 255, 0.20);
  background: rgba(255, 255, 255, 0.12);
  color: var(--white);
  box-shadow: none;
  backdrop-filter: blur(12px);
}

.hero-panel .stat-card span {
  color: rgba(255, 255, 255, 0.78);
}

.section,
.page-head,
.dashboard-head {
  margin-top: 18px;
  padding: 22px;
}

.page-head {
  display: grid;
  gap: 10px;
}

.page-head h1,
.dashboard-head h1 {
  color: var(--ink);
  font-size: clamp(32px, 5vw, 58px);
}

.page-head p,
.dashboard-note,
.lead {
  max-width: 760px;
  color: var(--muted);
}

.dashboard-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  margin-top: 0;
}

.dashboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.kicker {
  margin: 0 0 8px;
  color: var(--gold);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.section-head h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.1;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.stats-grid.compact {
  grid-template-columns: 1fr;
  margin: 0;
}

.stat-card {
  display: grid;
  gap: 10px;
  min-height: 106px;
  align-content: space-between;
  padding: 16px;
}

.stat-card strong {
  overflow-wrap: anywhere;
  font-size: clamp(22px, 3vw, 32px);
}

.stat-card span,
.partner-grid span {
  color: var(--muted);
  font-size: 13px;
}

.candidate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 14px;
}

.candidate-card {
  overflow: hidden;
}

.candidate-media {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, var(--ink), #723019 58%, var(--gold));
  color: var(--white);
  font-size: 42px;
  font-weight: 900;
}

.candidate-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.candidate-body {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.candidate-body h3 {
  margin: 0;
  font-size: 20px;
}

.candidate-body p {
  margin: 0;
  color: var(--muted);
}

.candidate-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.candidate-actions button:first-child {
  background: var(--ink);
  color: var(--white);
}

.candidate-actions button:last-child {
  border-color: var(--gold);
  background: var(--gold);
}

.candidate-actions button:only-child {
  grid-column: 1 / -1;
  width: 100%;
  border-color: var(--gold);
  background: var(--gold);
  color: #1b1b1b;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  padding: 0 10px;
  background: var(--gold-soft);
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.badge.is-ready {
  background: #DCFCE7;
  color: var(--green);
}

.rank-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rank-list li {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: var(--white);
}

.rank-list b {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
}

.partner-grid,
.contact-grid,
.info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.partner-grid article,
.contact-grid article,
.info-grid article,
.confirmation-list article {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: var(--white);
}

.info-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 16px;
}

.info-grid span,
.confirmation-list span {
  color: var(--muted);
  font-size: 12px;
}

.rules-copy {
  margin-bottom: 0;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px;
  background: rgba(32, 38, 49, 0.66);
  -webkit-overflow-scrolling: touch;
}

.vote-modal {
  display: grid;
  gap: 14px;
  width: min(560px, 100%);
  max-height: calc(100vh - 36px);
  max-height: calc(100dvh - 36px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px;
  background: var(--white);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
  -webkit-overflow-scrolling: touch;
}

.vote-modal h2 {
  margin: 0;
  font-size: 30px;
}

.checkout-modal {
  gap: 16px;
}

.checkout-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
}

.checkout-head h2 {
  overflow-wrap: anywhere;
}

.icon-button {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}

.checkout-recap {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.checkout-recap article,
.checkout-total {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: var(--soft);
}

.checkout-recap span,
.checkout-total span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.checkout-recap strong,
.checkout-total strong {
  overflow-wrap: anywhere;
}

.checkout-summary {
  margin: 0;
  color: var(--muted);
}

.checkout-total {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  background: var(--gold-soft);
}

.checkout-total strong {
  font-size: 20px;
}

.success-mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: var(--green);
  color: var(--white);
  font-weight: 900;
}

.confirmation-list {
  display: grid;
  gap: 10px;
}

.participation-box,
.terms-list,
.success-panel {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  background: var(--white);
}

.participation-box {
  background: var(--gold-soft);
}

.terms-list label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  font-weight: 700;
}

.terms-list input[type="checkbox"] {
  width: 18px;
  min-height: 18px;
  margin-top: 2px;
}

.success-panel {
  justify-items: start;
}

.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.manual-panel {
  display: grid;
  gap: 16px;
}

.manual-panel[hidden],
.country-field[hidden],
[data-admin-applications][hidden] {
  display: none;
}

td textarea {
  min-width: 220px;
  min-height: 78px;
}

.auth-screen {
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 18px;
  align-items: start;
}

.login-card {
  display: grid;
  gap: 12px;
  padding: 20px;
  color: var(--ink);
}

.login-help,
small {
  color: var(--muted);
  font-size: 12px;
}

.form-error {
  margin: 0;
  padding: 10px;
  border-radius: 8px;
  background: #FEE2E2;
  color: var(--red);
  font-weight: 800;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

label {
  display: grid;
  gap: 6px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

input,
select,
textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 11px;
  background: var(--white);
  color: var(--ink);
}

textarea {
  resize: vertical;
}

.wide {
  grid-column: 1 / -1;
}

.table-wrap {
  overflow-x: auto;
}

table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 12px;
  text-align: left;
  vertical-align: top;
}

th {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.empty {
  padding: 16px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-weight: 800;
}

@media (max-width: 960px) {
  .site-header,
  .section-head,
  .dashboard-head,
  .auth-screen {
    display: grid;
  }

  .site-header {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .main-nav {
    width: 100%;
  }

  .dashboard-head,
  .auth-screen {
    grid-template-columns: 1fr;
  }

  .hero {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero-copy {
    min-height: 360px;
    padding-bottom: 26px;
  }

  .hero-panel {
    position: static;
    border: 1px solid var(--line);
    padding: 18px;
    background: var(--white);
    color: var(--ink);
    box-shadow: var(--shadow);
  }

  .hero-panel .stats-grid.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hero-panel .stat-card {
    border-color: var(--line);
    background: var(--white);
    color: var(--ink);
    box-shadow: var(--shadow);
    backdrop-filter: none;
  }

  .hero-panel .stat-card span {
    color: var(--muted);
  }

  .stats-grid,
  .candidate-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .partner-grid,
  .contact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  body {
    overflow-x: hidden;
  }

  .site-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 12px;
    padding: 12px 16px;
  }

  .brand {
    min-width: 0;
  }

  .brand span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .menu-toggle {
    display: grid;
    gap: 4px;
  }

  .site-header.is-menu-open .menu-toggle {
    border-color: var(--gold);
    background: var(--gold-soft);
  }

  .main-nav {
    display: none;
    grid-template-columns: 1fr;
    grid-column: 1 / -1;
    width: 100%;
    gap: 6px;
  }

  .site-header.is-menu-open .main-nav {
    display: grid;
  }

  .main-nav button {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    font-size: 14px;
    line-height: 1.2;
    white-space: normal;
  }

  #app {
    padding: 14px 10px 42px;
  }

  .hero-copy,
  .auth-screen,
  .section,
  .page-head,
  .dashboard-head {
    padding: 18px;
  }

  .auth-screen {
    min-height: auto;
    gap: 16px;
  }

  .login-card {
    padding: 16px;
  }

  .hero-copy {
    min-height: 330px;
  }

  .hero-copy h1,
  .page-head h1,
  .auth-screen h1,
  .dashboard-head h1 {
    font-size: 38px;
    overflow-wrap: anywhere;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero-actions button,
  .section-head .ghost,
  .dashboard-actions button,
  .candidate-actions button {
    width: 100%;
  }

  .dashboard-actions {
    justify-content: stretch;
  }

  .hero-panel {
    padding: 14px;
  }

  .hero-panel .stats-grid.compact {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero-panel .stat-card {
    min-height: 74px;
    padding: 12px;
  }

  .section-head {
    align-items: stretch;
  }

  .stats-grid,
  .candidate-grid,
  .form-grid,
  .partner-grid,
  .contact-grid,
  .info-grid,
  .checkout-recap,
  .candidate-actions {
    grid-template-columns: 1fr;
  }

  .admin-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }

  .rank-list li {
    grid-template-columns: 32px minmax(0, 1fr);
  }

  .rank-list strong {
    grid-column: 2;
  }
}

@media (max-width: 640px), (max-height: 720px) {
  .modal-backdrop {
    align-items: flex-start;
    padding: 8px;
  }

  .vote-modal {
    width: 100%;
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px);
    padding: 16px;
  }

  .checkout-modal .checkout-head {
    position: sticky;
    top: -16px;
    z-index: 5;
    margin: -16px -16px 0;
    padding: 16px;
    border-bottom: 1px solid var(--line);
    background: var(--white);
  }

  .checkout-modal .form-grid > button[type="submit"] {
    position: sticky;
    bottom: -16px;
    z-index: 4;
    margin: 0 -16px -16px;
    width: calc(100% + 32px);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 -10px 24px rgba(32, 38, 49, 0.12);
  }
}

@media (max-width: 420px) {
  .site-header {
    padding: 10px 12px;
  }

  #app {
    padding: 12px 8px 36px;
  }

  .hero-copy,
  .auth-screen,
  .section,
  .page-head,
  .dashboard-head,
  .login-card,
  .vote-modal {
    padding: 14px;
  }

  .hero-copy h1,
  .page-head h1,
  .auth-screen h1,
  .dashboard-head h1 {
    font-size: 32px;
  }

  .candidate-body,
  .stat-card,
  .partner-grid article,
  .contact-grid article,
  .info-grid article,
  .participation-box,
  .terms-list {
    padding: 12px;
  }

  .main-nav button,
  .primary,
  .ghost,
  .danger,
  .checkout-total,
  .candidate-actions button {
    min-height: 44px;
  }

  .checkout-total {
    grid-template-columns: 1fr;
  }
}

/* Paiements MyPVit : attente, succès et échec visibles */
button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.primary.is-loading {
  gap: 10px;
}

.button-spinner,
.payment-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 999px;
  animation: akiba-spin 0.8s linear infinite;
}

.payment-feedback {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  background: var(--soft);
}

.payment-feedback[hidden] {
  display: none;
}

.payment-feedback.is-pending {
  border-color: #F2D28B;
  background: var(--gold-soft);
}

.payment-feedback.is-success {
  border-color: #86D8BB;
  background: #ECFDF5;
}

.payment-feedback.is-error {
  border-color: #F5A5A5;
  background: #FEF2F2;
}

.payment-feedback-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: var(--white);
  font-size: 21px;
  font-weight: 900;
}

.payment-feedback.is-success .payment-feedback-icon {
  background: var(--green);
  color: var(--white);
}

.payment-feedback.is-error .payment-feedback-icon {
  background: var(--red);
  color: var(--white);
}

.payment-feedback strong,
.payment-feedback p,
.payment-feedback small {
  display: block;
  margin: 0;
}

.payment-feedback p {
  margin-top: 4px;
  color: var(--muted);
}

.payment-feedback small {
  margin-top: 8px;
  color: var(--muted);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.payment-toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  width: min(420px, calc(100vw - 40px));
  border: 1px solid #86D8BB;
  border-radius: 10px;
  padding: 16px;
  background: var(--white);
  box-shadow: 0 22px 50px rgba(32, 38, 49, 0.2);
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.payment-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.payment-toast.is-error {
  border-color: #F5A5A5;
}

.payment-toast-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: var(--green);
  color: var(--white);
  font-size: 20px;
  font-weight: 900;
}

.payment-toast.is-error .payment-toast-icon {
  background: var(--red);
}

.payment-toast strong,
.payment-toast p,
.payment-toast small {
  display: block;
  margin: 0;
}

.payment-toast p {
  margin-top: 4px;
  color: var(--muted);
}

.payment-toast small {
  margin-top: 6px;
  color: var(--muted);
  overflow-wrap: anywhere;
}

@keyframes akiba-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
  .payment-toast {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
  }
}


/* V13 — progression réelle de l'envoi des médias */
.upload-progress {
  padding: 14px 16px;
  border: 1px solid rgba(115, 92, 255, 0.24);
  border-radius: 14px;
  background: rgba(115, 92, 255, 0.06);
}

.upload-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.upload-progress-head span {
  min-width: 48px;
  text-align: right;
  font-weight: 800;
}

.upload-progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.12);
}

.upload-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6d5dfc, #a855f7);
  transition: width 180ms ease;
}

.upload-progress small {
  display: block;
  margin-top: 9px;
  line-height: 1.45;
}

.section-empty {
  grid-column: 1 / -1;
  width: 100%;
  padding: 22px;
  text-align: center;
}


/* ===== Back-office Akiba Talent ===== */
.admin-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 78px);background:#f5f7fb;margin:-1.5rem;padding:0}
.admin-sidebar{position:sticky;top:78px;height:calc(100vh - 78px);display:flex;flex-direction:column;background:#111827;color:#fff;padding:1.25rem;z-index:5}
.admin-brand{display:flex;align-items:center;gap:.8rem;padding:.4rem .3rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.12)}
.admin-brand .brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#111827;font-weight:900}
.admin-brand strong,.admin-brand small{display:block}.admin-brand small{color:#9ca3af;margin-top:.15rem}
.admin-menu{display:grid;gap:.45rem;margin-top:1.2rem}
.admin-menu button{display:flex;align-items:center;gap:.7rem;width:100%;border:0;border-radius:12px;background:transparent;color:#d1d5db;padding:.8rem .9rem;text-align:left;font:inherit;font-weight:700;cursor:pointer}
.admin-menu button:hover,.admin-menu button.is-active{background:#fff;color:#111827}
.admin-menu button span{width:1.25rem;text-align:center}
.admin-sidebar-footer{margin-top:auto;display:grid;gap:.55rem}
.admin-sidebar-footer .ghost{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  border:1px solid rgba(255,255,255,.32);
  background:transparent;
  color:#fff;
  text-decoration:none;
  opacity:1;
  visibility:visible;
}
.admin-sidebar-footer .ghost:hover,
.admin-sidebar-footer .ghost:focus-visible{
  border-color:#fff;
  background:#fff;
  color:#111827;
}
.admin-public-link{text-align:center;text-decoration:none}
.admin-content{min-width:0;padding:1.5rem 1.7rem 3rem}
.admin-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.admin-topbar h1{margin:.15rem 0 .25rem;font-size:clamp(1.65rem,3vw,2.4rem)}.admin-topbar p{margin:0}
.admin-panel{display:none}.admin-panel.is-active{display:block}
.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:1.15rem;box-shadow:0 12px 32px rgba(15,23,42,.06);margin-bottom:1rem}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.admin-stat{position:relative;overflow:hidden;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:1.05rem;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.admin-stat::after{content:"";position:absolute;right:-30px;bottom:-35px;width:90px;height:90px;border-radius:50%;background:#ede9fe}.admin-stat.is-airtel::after{background:#fee2e2}.admin-stat.is-moov::after{background:#dcfce7}.admin-stat.is-money::after{background:#fef3c7}.admin-stat.is-votes::after{background:#dbeafe}.admin-stat.is-revenue{border-color:#bfdbfe}.admin-stat.is-revenue::after{background:#dbeafe}.admin-stat.is-share{
  z-index:2;
  border-color:#fbbf24;
  background:linear-gradient(135deg,#fff 0%,#fffbeb 100%);
  transform-origin:center;
  will-change:transform;
  animation:brunell-share-zoom 1.7s ease-in-out infinite alternate;
}
.admin-stat.is-share::after{background:#fde68a}
.admin-stat.is-share strong{color:#92400e}

@keyframes brunell-share-zoom{
  from{transform:scale(.975)}
  to{transform:scale(1.035)}
}

@media (prefers-reduced-motion:reduce){
  .admin-stat.is-share{animation:none;transform:none}.admin-stat.is-revrea{border-color:#FF8000;background:#fff6f1;color:#d00000}.admin-stat.is-revrea::after{background:#FF8000}.admin-stat.is-revrea strong,.admin-stat.is-revrea span,.admin-stat.is-revrea small{color:#d00000}.admin-stat.is-revrea{animation:none;transform:none}
}
.admin-stat span,.admin-stat small,.admin-stat strong{position:relative;z-index:1;display:block}.admin-stat span{color:#6b7280;font-size:.86rem}.admin-stat strong{font-size:1.55rem;margin:.4rem 0}.admin-stat small{color:#9ca3af}
.admin-dashboard-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.4fr);gap:1rem}.section-head.compact{margin-bottom:.7rem}
.status-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.status-breakdown button{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"dot value" "dot label";column-gap:.65rem;align-items:center;border:1px solid #e5e7eb;background:#f9fafb;border-radius:14px;padding:.8rem;text-align:left;cursor:pointer}.status-breakdown button:hover{border-color:#7c3aed}.status-breakdown .status-dot{grid-area:dot;width:11px;height:42px;border-radius:999px;background:#9ca3af}.status-dot.is-validated{background:#10b981}.status-dot.is-pending{background:#f59e0b}.status-dot.is-suspended{background:#ef4444}.status-dot.is-refused{background:#6b7280}.status-breakdown strong{grid-area:value;font-size:1.35rem}.status-breakdown small{grid-area:label;color:#6b7280}
.admin-toolbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.admin-toolbar h2{margin:.15rem 0}.admin-filters{display:flex;gap:.65rem;flex-wrap:wrap}.admin-filters input,.admin-filters select{min-height:42px;border:1px solid #d1d5db;border-radius:11px;padding:.65rem .8rem;background:#fff}
.admin-avatar{width:52px;height:52px;object-fit:cover;border-radius:14px;display:block}.admin-avatar.small{width:40px;height:40px;border-radius:11px}.admin-avatar.fallback{display:grid;place-items:center;background:#ede9fe;color:#5b21b6;font-weight:900}
.candidate-status{display:inline-flex;align-items:center;padding:.28rem .6rem;border-radius:999px;background:#e5e7eb;font-size:.8rem;font-weight:800}.candidate-status.is-validated{background:#d1fae5;color:#065f46}.candidate-status.is-pending{background:#fef3c7;color:#92400e}.candidate-status.is-suspended{background:#fee2e2;color:#991b1b}.candidate-status.is-refused{background:#e5e7eb;color:#374151}
.is-suspended-row{opacity:.72;background:#fff7f7}.rank-number{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ede9fe;color:#5b21b6}
.compact-table table{font-size:.88rem}.compact-table th,.compact-table td{padding:.6rem}.admin-candidate-table td{vertical-align:middle}
.admin-detail-modal{position:relative;width:min(1080px,94vw);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:1.2rem;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.1fr);gap:1.3rem}.modal-close{position:absolute;right:.8rem;top:.7rem;width:38px;height:38px;border:0;border-radius:50%;font-size:1.5rem;cursor:pointer;z-index:2}
.admin-detail-media{display:grid;gap:.8rem}.admin-detail-media img,.admin-detail-media video{width:100%;max-height:390px;object-fit:contain;background:#111827;border-radius:16px}.media-placeholder{min-height:170px;display:grid;place-items:center;border:1px dashed #cbd5e1;border-radius:16px;color:#64748b;background:#f8fafc}
.admin-detail-content h2{margin:.2rem 0}.detail-stage{font-weight:800;color:#7c3aed}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin:1rem 0}.detail-grid article{padding:.75rem;border:1px solid #e5e7eb;border-radius:12px}.detail-grid span,.detail-bio span{display:block;color:#6b7280;font-size:.78rem;margin-bottom:.25rem}.detail-grid strong{display:block}.detail-bio{padding:.8rem;background:#f8fafc;border-radius:12px}.detail-bio p{margin:0;white-space:pre-wrap}
.admin-detail-controls,.admin-photo-replace{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.admin-detail-controls label,.admin-photo-replace label{flex:1;min-width:200px}.upload-progress{position:relative;flex-basis:100%;height:25px;border-radius:999px;background:#e5e7eb;overflow:hidden}.upload-progress span{display:block;height:100%;width:0;background:#7c3aed;transition:width .2s}.upload-progress strong{position:absolute;inset:0;display:grid;place-items:center;font-size:.76rem}

@media (max-width:1100px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dashboard-grid{grid-template-columns:1fr}}
@media (max-width:820px){.admin-layout{display:block;margin:-1rem}.admin-sidebar{position:static;height:auto;padding:.8rem}.admin-brand{padding-bottom:.8rem}.admin-menu{display:flex;overflow:auto;margin-top:.7rem;padding-bottom:.25rem}.admin-menu button{white-space:nowrap;width:auto}.admin-sidebar-footer{display:none}.admin-content{padding:1rem}.admin-topbar{display:block}.admin-topbar .dashboard-actions{margin-top:.8rem}.admin-detail-modal{grid-template-columns:1fr;width:min(96vw,680px)}.admin-toolbar{align-items:stretch;flex-direction:column}.admin-filters{display:grid;grid-template-columns:1fr 1fr}}
@media (max-width:560px){.admin-stat-grid{grid-template-columns:1fr}.admin-filters{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.admin-content{padding:.75rem}.admin-card{padding:.85rem}.admin-detail-modal{padding:.85rem}.dashboard-actions{display:flex;flex-wrap:wrap}}


/* V8 — contrôle administratif de l'ouverture des votes */
.voting-control-card{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;border:1px solid #c4b5fd;background:linear-gradient(135deg,#faf5ff 0%,#ffffff 58%,#eff6ff 100%)}
.voting-control-copy{min-width:0}.voting-control-copy h2{margin:.15rem 0 .45rem}.voting-control-copy p:last-child{margin:0;color:#64748b}
.voting-control-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.voting-status-badge{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.42rem .7rem;font-size:.8rem;font-weight:900;white-space:nowrap}
.voting-status-badge::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 .24rem currentColor;opacity:.9}
.voting-status-badge.is-open{background:#dcfce7;color:#15803d}.voting-status-badge.is-closed{background:#fee2e2;color:#b91c1c}
.voting-control-card button{min-width:190px}.voting-control-card button.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.voting-control-card button.danger:hover{background:#991b1b;border-color:#991b1b}
.voting-closed-notice{display:grid;gap:.2rem;margin-top:.85rem;padding:.75rem .85rem;border:1px solid #fecaca;border-radius:12px;background:#fff7f7;color:#991b1b}
.voting-closed-notice strong{font-size:.92rem}.voting-closed-notice span{font-size:.78rem;color:#b45353}.text-success{color:#15803d}.text-danger{color:#b91c1c}
@media (max-width:700px){.voting-control-card{align-items:stretch;flex-direction:column}.voting-control-card button{width:100%;min-width:0}}


/* V9 — séparation du menu public et du menu d'administration */
body.is-admin-route {
  overflow-x: hidden;
  background: #f5f7fb;
}

body.is-admin-route .site-header {
  display: none !important;
}

body.is-admin-route #app {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.is-admin-route .admin-layout {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
}

body.is-admin-route .admin-sidebar {
  top: 0;
  height: 100vh;
  height: 100dvh;
}

.admin-menu-toggle {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 11px;
  padding: 0;
  background: rgba(255,255,255,.08);
  color: #fff;
}

.admin-menu-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  margin: 2px 0;
  border-radius: 999px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}

@media (max-width: 820px) {
  body.is-admin-route .admin-layout {
    display: block;
    margin: 0;
  }

  body.is-admin-route .admin-sidebar {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    gap: .65rem;
    width: 100%;
    height: auto;
    min-height: 68px;
    padding: .7rem .8rem;
    box-shadow: 0 10px 28px rgba(15,23,42,.22);
  }

  .admin-brand {
    min-width: 0;
    padding: 0;
    border-bottom: 0;
  }

  .admin-brand > div {
    min-width: 0;
  }

  .admin-brand strong,
  .admin-brand small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .admin-menu-toggle {
    display: grid;
  }

  .admin-sidebar.is-menu-open .admin-menu-toggle {
    border-color: #fff;
    background: #fff;
    color: #111827;
  }

  .admin-sidebar.is-menu-open .admin-menu-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  .admin-sidebar.is-menu-open .admin-menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  .admin-sidebar.is-menu-open .admin-menu-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  body.is-admin-route .admin-menu {
    display: none;
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    width: 100%;
    max-height: calc(100dvh - 180px);
    margin: .25rem 0 0;
    padding: .55rem 0 .15rem;
    overflow-x: hidden;
    overflow-y: auto;
    border-top: 1px solid rgba(255,255,255,.12);
    overscroll-behavior: contain;
  }

  body.is-admin-route .admin-sidebar.is-menu-open .admin-menu {
    display: grid;
  }

  body.is-admin-route .admin-menu button {
    width: 100%;
    min-height: 44px;
    white-space: normal;
  }

  body.is-admin-route .admin-sidebar-footer {
    display: none;
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
    margin-top: .25rem;
    padding-top: .65rem;
    border-top: 1px solid rgba(255,255,255,.12);
  }

  body.is-admin-route .admin-sidebar.is-menu-open .admin-sidebar-footer {
    display: grid;
  }

  body.is-admin-route .admin-content {
    width: 100%;
    padding: 1rem;
  }

  body.is-admin-route .admin-topbar {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.is-admin-route .admin-topbar .dashboard-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: .5rem;
  }

  body.is-admin-route .admin-card,
  body.is-admin-route .admin-stat,
  body.is-admin-route .admin-topbar {
    min-width: 0;
  }
}

@media (max-width: 560px) {
  body.is-admin-route .admin-sidebar-footer,
  body.is-admin-route .admin-topbar .dashboard-actions {
    grid-template-columns: 1fr;
  }

  body.is-admin-route .admin-content {
    padding: .75rem;
  }

  body.is-admin-route .admin-topbar h1 {
    overflow-wrap: anywhere;
  }

  body.is-admin-route .admin-stat-grid {
    gap: .75rem;
  }

  body.is-admin-route .admin-card {
    border-radius: 14px;
  }
}

/* V15 — Cartes candidats harmonisées avec Voir plus / Voir moins */
.candidate-grid {
  align-items: stretch;
  grid-auto-rows: 1fr;
}

.candidate-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  min-width: 0;
}

.candidate-media {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.candidate-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

.candidate-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.candidate-body .badge-row {
  min-height: 28px;
}

.candidate-body h3 {
  display: -webkit-box;
  min-height: 48px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.candidate-summary-block {
  display: grid;
  gap: 4px;
  margin-bottom: 4px;
}

.candidate-summary {
  display: -webkit-box;
  min-height: 7.2em;
  margin: 0;
  overflow: hidden;
  line-height: 1.44;
  white-space: pre-line;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

.candidate-summary.is-expanded {
  display: block;
  min-height: 0;
  overflow: visible;
  -webkit-line-clamp: unset;
}

.candidate-summary-toggle {
  justify-self: start;
  min-height: auto;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: #9a6700;
  font-size: 13px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.candidate-summary-toggle:hover,
.candidate-summary-toggle:focus-visible {
  color: var(--ink);
}

.candidate-summary-toggle[hidden] {
  display: none !important;
}

.candidate-category {
  color: var(--muted);
  font-weight: 700;
}

.candidate-vote-total {
  font-size: 16px;
}

.candidate-actions,
.candidate-body > .voting-closed-notice {
  margin-top: auto;
}

@media (max-width: 700px) {
  .candidate-media {
    aspect-ratio: 4 / 5;
  }

  .candidate-summary {
    min-height: auto;
    -webkit-line-clamp: 4;
  }

  .candidate-summary.is-expanded {
    -webkit-line-clamp: unset;
  }
}


/* V17 — Liens directs de vote par candidat */
.candidate-share-button {
  margin-top: 2px;
  min-height: 36px;
  border: 1px dashed color-mix(in srgb, var(--gold) 70%, var(--line));
  background: var(--gold-soft);
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
}

.direct-vote-section {
  width: min(980px, calc(100% - 32px));
  margin: 0 auto 48px;
}

.direct-vote-card {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 18px 50px rgb(22 24 30 / 10%);
}

.direct-vote-card[hidden],
.direct-vote-unavailable[hidden] {
  display: none;
}

.direct-vote-media {
  display: grid;
  place-items: center;
  min-height: 520px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ink), #723019 58%, var(--gold));
  color: var(--white);
  font-size: 72px;
  font-weight: 900;
}

.direct-vote-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

.direct-vote-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
  padding: clamp(24px, 5vw, 52px);
}

.direct-vote-content h2 {
  margin: 0;
  font-size: clamp(30px, 5vw, 54px);
  line-height: 1.02;
  overflow-wrap: anywhere;
}

.direct-vote-bio {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
  white-space: pre-line;
}

.direct-vote-total {
  font-size: clamp(24px, 4vw, 38px);
}

.direct-vote-actions {
  max-width: 520px;
}

.direct-vote-share-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.direct-vote-share-row > * {
  flex: 1 1 190px;
  text-align: center;
}

.direct-vote-unavailable {
  display: grid;
  gap: 14px;
  justify-items: start;
  padding: clamp(28px, 6vw, 70px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
}

.direct-vote-unavailable h2,
.direct-vote-unavailable p {
  margin: 0;
}

.admin-vote-link-box {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--soft);
}

.admin-vote-link-box > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.admin-vote-link-box > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
}

.admin-vote-link-box input {
  min-width: 0;
  background: var(--white);
}

.button-link {
  display: inline-grid;
  place-items: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none;
  font-weight: 900;
}

@media (max-width: 760px) {
  .direct-vote-section {
    width: min(100% - 20px, 620px);
  }

  .direct-vote-card {
    grid-template-columns: 1fr;
  }

  .direct-vote-media {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .direct-vote-content {
    padding: 22px;
  }

  .admin-vote-link-box > div {
    grid-template-columns: 1fr 1fr;
  }

  .admin-vote-link-box input {
    grid-column: 1 / -1;
  }
}


/* ===== Paiement Visa / Mastercard V18 ===== */
.card-payment-notice {
  display: grid;
  gap: .35rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(26, 87, 214, .2);
  border-radius: 14px;
  background: rgba(26, 87, 214, .07);
  color: #173365;
}
.card-payment-notice strong { color: #102653; }
.card-payment-notice span { font-size: .9rem; line-height: 1.45; }
.card-return-page {
  min-height: min(72vh, 720px);
  display: grid;
  place-items: center;
  padding-top: clamp(2rem, 7vw, 5rem);
  padding-bottom: clamp(2rem, 7vw, 5rem);
}
.card-return-panel {
  width: min(680px, 100%);
  display: grid;
  gap: 1rem;
  padding: clamp(1.4rem, 4vw, 2.5rem);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(24, 37, 67, .14);
  text-align: center;
}
.card-return-panel h1 { margin: 0; }
.card-return-panel > p { margin: 0; color: var(--muted, #64748b); line-height: 1.6; }
.card-return-panel > small { color: #475569; font-weight: 700; overflow-wrap: anywhere; }
.card-return-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  min-height: 92px;
  padding: 1rem;
  border-radius: 16px;
  text-align: left;
  border: 1px solid rgba(71, 85, 105, .18);
  background: #f8fafc;
}
.card-return-status > div { display: grid; gap: .25rem; }
.card-return-status strong { color: #0f172a; }
.card-return-status span { color: #64748b; line-height: 1.45; }
.card-return-status.is-success { background: #ecfdf5; border-color: #86efac; }
.card-return-status.is-error { background: #fef2f2; border-color: #fecaca; }
.card-return-status.is-pending { background: #eff6ff; border-color: #bfdbfe; }
.card-return-check,
.card-return-alert {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 900;
  font-size: 1.2rem;
}
.card-return-check { background: #16a34a; color: #fff !important; }
.card-return-alert { background: #dc2626; color: #fff !important; }
.card-return-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
@media (max-width: 600px) {
  .card-return-actions > button { width: 100%; }
  .card-return-status { align-items: flex-start; }
}


/* V21 — aide et validation du numéro selon l’opérateur Mobile Money */
.field-help {
  display: block;
  margin-top: 0.45rem;
  color: var(--muted, #64748b);
  font-size: 0.82rem;
  line-height: 1.35;
}

.field-help.is-error {
  color: #b42318;
  font-weight: 700;
}

/* V24 — quantité libre de votes, minimum 2, prix unitaire 300 XAF */
[data-vote-quantity] {
  font-weight: 800;
}

[data-vote-total] {
  transition: transform .18s ease;
}

/* V25 — Affichage des manches dans l'administration */
.admin-round-summary {
  display: grid;
  gap: .25rem;
  margin: 0 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
}
.admin-round-summary span {
  opacity: .78;
  font-size: .9rem;
}

.admin-stat.is-revrea{border:2px solid #FF8000!important;color:#FF0000!important}.admin-stat.is-revrea::after{background:#FF8000!important}.admin-stat.is-revrea span,.admin-stat.is-revrea strong,.admin-stat.is-revrea small{color:#FF0000!important}
