/* =============================================================================
   Dia-Nova — Stylesheet principal
   ============================================================================= */

:root {
  --cal-primary: #4a7c59;
  --cal-primary-light: #6c9a78;
  --cal-primary-dark: #2f593c;
  --cal-accent: #f9a620;
  --cal-warm: #b7472a;
  --cal-cream: #f5f3ed;
  --cal-ink: #1f2d24;
  --cal-muted: #66746a;
  --cal-line: #dfe6da;
  --cal-bg: #f5f3ed;
  --cal-primary-rgb: 74, 124, 89;
  --cal-card-shadow: 0 1px 3px rgba(47,89,60,.08), 0 1px 2px rgba(47,89,60,.05);
  --cal-card-shadow-hover: 0 12px 28px rgba(47,89,60,.13);
  --cal-radius: .75rem;
  --cal-gradient: linear-gradient(135deg, #4a7c59 0%, #6c9a78 54%, #f9a620 100%);
  --bs-primary: var(--cal-primary);
  --bs-primary-rgb: 74,124,89;
  --bs-link-color: var(--cal-primary);
  --bs-link-hover-color: var(--cal-primary-dark);
}

body {
  font-family: "DejaVu Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  background: var(--cal-bg);
  color: var(--cal-ink);
  font-size: .9375rem;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand,
.landing-hero-title,
.stat-card .stat-value {
  font-family: "DejaVu Serif", Georgia, serif;
}

/* Override Bootstrap primary */
.btn-primary { background: var(--cal-primary); border-color: var(--cal-primary); }
.btn-primary:hover { background: var(--cal-primary-dark); border-color: var(--cal-primary-dark); }
.btn-outline-primary { color: var(--cal-primary); border-color: var(--cal-primary); }
.btn-outline-primary:hover { background: var(--cal-primary); border-color: var(--cal-primary); }
.text-primary { color: var(--cal-primary) !important; }
.bg-primary { background: var(--cal-primary) !important; }
.badge.text-bg-primary { background: var(--cal-primary) !important; }
.form-control:focus, .form-select:focus { border-color: var(--cal-primary-light); box-shadow: 0 0 0 .2rem rgba(var(--cal-primary-rgb), .16); }
.form-check-input:checked { background-color: var(--cal-primary); border-color: var(--cal-primary); }

/* Navbar */
.cal-navbar {
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid var(--cal-line);
  padding: .5rem 0;
  backdrop-filter: blur(12px);
}
.cal-navbar .navbar-brand {
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--cal-primary);
  letter-spacing: 0;
}
.cal-navbar .navbar-brand:hover { color: var(--cal-primary-dark); }
.cal-navbar .nav-link {
  font-weight: 500;
  font-size: .875rem;
  color: var(--cal-muted);
  padding: .5rem .75rem;
  border-radius: .5rem;
  transition: all .15s;
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  white-space: nowrap;
}
.cal-navbar .nav-link > .bi { font-size: 1rem; line-height: 1; }

/* Navbar groups (Client / Pro / Admin) */
.nav-groups { padding-top: .25rem; }
.nav-group { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.nav-group-label {
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #7b8b80;
  padding: 0 .5rem;
  line-height: 1;
}
.nav-group-items { flex-wrap: wrap; }
.nav-group-separator {
  width: 1px;
  align-self: stretch;
  background: var(--cal-line);
  margin: .25rem 0;
}
[data-bs-theme="dark"] .nav-group-label { color: #91b9c3; }
[data-bs-theme="dark"] .nav-group-separator { background: #2c5263; }

@media (max-width: 991.98px) {
  .nav-groups { flex-direction: column; align-items: stretch !important; gap: .75rem !important; }
  .nav-group { width: 100%; }
  .nav-group-separator { display: none; }
}
.cal-navbar .nav-link:hover,
.cal-navbar .nav-link.active {
  color: var(--cal-primary);
  background: rgba(var(--cal-primary-rgb), .09);
}
.cal-navbar .dropdown-menu {
  border: 1px solid var(--cal-line);
  box-shadow: var(--cal-card-shadow-hover);
  border-radius: var(--cal-radius);
  padding: .5rem;
}
.cal-navbar .dropdown-item {
  border-radius: .375rem;
  font-size: .875rem;
  padding: .5rem .75rem;
}
.cal-navbar .dropdown-item:hover { background: rgba(var(--cal-primary-rgb), .09); color: var(--cal-primary); }

/* Cards */
.card-soft {
  border: 1px solid var(--cal-line);
  border-radius: var(--cal-radius);
  box-shadow: var(--cal-card-shadow);
  background: rgba(255,255,255,.94);
  transition: box-shadow .2s, transform .2s;
}
.card-soft:hover { box-shadow: var(--cal-card-shadow-hover); }
.card-soft .card-header {
  background: transparent;
  border-bottom: 1px solid rgba(var(--cal-primary-rgb), .13);
  font-weight: 600;
  font-size: .875rem;
  padding: 1rem 1.25rem;
}

/* Page headers */
.page-header {
  margin-bottom: 1.5rem;
}
.page-header h1 {
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0;
  color: var(--cal-ink);
}
.page-header .subtitle {
  font-size: .875rem;
  color: var(--cal-muted);
}

/* Tables */
.table { font-size: .875rem; }
.table thead th {
  font-weight: 600;
  color: #506057;
  font-size: .8125rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  border-bottom: 2px solid var(--cal-line);
}
.table tbody td { vertical-align: middle; border-color: rgba(var(--cal-primary-rgb), .12); }
.table-hover tbody tr:hover { background: rgba(var(--cal-primary-rgb), .04); }

/* Badges */
.badge { font-weight: 500; font-size: .75rem; padding: .35em .65em; border-radius: .375rem; }

/* Avatar initials */
.avatar-initials {
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .875rem;
  color: #fff;
  flex-shrink: 0;
}

/* Stat cards */
.stat-card {
  border: 1px solid var(--cal-line);
  border-radius: var(--cal-radius);
  padding: 1.25rem;
  background: rgba(255,255,255,.94);
  transition: box-shadow .2s, transform .2s, border-color .2s;
}
.stat-card-clickable {
  cursor: pointer;
}
.stat-card-clickable:hover {
  box-shadow: var(--cal-card-shadow-hover);
  transform: translateY(-2px);
  border-color: var(--cal-primary-light);
}
.stat-card-clickable .stat-value { color: inherit; }
.stat-card-clickable:hover .stat-value { color: var(--cal-primary); }
.stat-card .stat-value { font-size: 1.75rem; font-weight: 700; color: var(--cal-ink); line-height: 1; }
.stat-card .stat-label { font-size: .8125rem; color: var(--cal-muted); margin-top: .25rem; }
.stat-card .stat-icon {
  width: 48px; height: 48px;
  border-radius: .75rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.25rem;
}

/* Slot buttons */
.slot-btn {
  display: flex; align-items: center; justify-content: space-between;
  padding: .75rem 1rem;
  border: 1px solid var(--cal-line);
  border-radius: .5rem;
  background: #fff;
  color: var(--cal-ink);
  font-weight: 500;
  font-size: .875rem;
  transition: all .15s;
  cursor: pointer;
  width: 100%;
  text-align: left;
}
.slot-btn:hover {
  border-color: var(--cal-primary);
  background: rgba(var(--cal-primary-rgb), .06);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(var(--cal-primary-rgb), .14);
}

/* Service card (sélectionné) */
.service-card { color: inherit; }
.service-card-selected { background: rgba(var(--cal-primary-rgb), .1); }
[data-bs-theme="dark"] .service-card-selected { background: rgba(var(--cal-primary-rgb), .16); }

.staff-choice-card {
  color: var(--cal-primary);
}
.staff-choice-selected {
  background: var(--cal-primary) !important;
  color: #fff !important;
}
.staff-choice-selected .staff-choice-name,
.staff-choice-selected .staff-choice-check {
  color: #fff !important;
}
[data-bs-theme="dark"] .staff-choice-card {
  color: var(--cal-primary-light);
}
[data-bs-theme="dark"] .staff-choice-selected {
  background: var(--cal-primary) !important;
  color: #fff !important;
}

.slot-btn-selected,
.slot-btn-selected:hover {
  border-color: var(--cal-primary);
  background: rgba(var(--cal-primary-rgb), .12);
  box-shadow: 0 2px 10px rgba(var(--cal-primary-rgb), .18);
}

/* Slot booked (waitlist) */
.slot-btn-booked {
  background: #fbfaf6;
  border-style: dashed;
  opacity: .85;
}
.slot-btn-booked:hover {
  border-color: var(--cal-accent);
  background: rgba(249,166,32,.09);
  box-shadow: 0 2px 8px rgba(249,166,32,.16);
  opacity: 1;
}

.booking-flow {
  scroll-margin-top: 84px;
  transition: opacity .18s ease, filter .18s ease;
}
.booking-flow-loading {
  opacity: .58;
  filter: saturate(.8);
  pointer-events: none;
}

.booking-date-field {
  position: relative;
}

.booking-date-field .form-control {
  min-height: 46px;
  padding-left: 2.75rem;
  padding-right: 3rem;
  cursor: pointer;
  font-weight: 600;
}

.booking-date-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--cal-primary);
  pointer-events: none;
  z-index: 2;
}

.booking-date-trigger {
  position: absolute;
  right: .4rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 8px;
  background: rgba(var(--cal-primary-rgb), .1);
  color: var(--cal-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, color .15s ease;
  z-index: 3;
}

.booking-date-trigger:hover,
.booking-date-trigger:focus-visible {
  background: var(--cal-primary);
  color: #fff;
}

.booking-summary-panel {
  position: static;
}
.booking-summary-panel .badge {
  font-weight: 600;
  color: #506057;
  background: var(--cal-cream) !important;
}
.booking-summary-panel .text-secondary {
  color: var(--cal-muted) !important;
}

/* Photo galleries */
.gallery-upload-card {
  border-style: dashed;
  border-color: rgba(var(--cal-primary-rgb), .28);
  background: linear-gradient(135deg, rgba(var(--cal-primary-rgb), .06), rgba(249,166,32,.06));
}
.gallery-upload-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}
.gallery-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1rem;
}
.gallery-admin-image-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eef2e8;
}
.gallery-admin-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #eef2e8;
}
.gallery-admin-badge {
  position: absolute;
  left: .65rem;
  top: .65rem;
  padding: .25rem .55rem;
  border-radius: 999px;
  background: rgba(31,45,36,.78);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
}
.public-gallery-main {
  border-radius: var(--cal-radius);
  overflow: hidden;
  background: #eef2e8;
}
.public-gallery-image {
  width: 100%;
  height: clamp(260px, 42vw, 440px);
  object-fit: contain;
  display: block;
  cursor: zoom-in;
  background: #eef2e8;
}
.public-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(74px, 1fr));
  gap: .5rem;
  margin-top: .65rem;
}
.public-gallery-thumb {
  border: 2px solid transparent;
  border-radius: .5rem;
  padding: 0;
  overflow: hidden;
  background: transparent;
  aspect-ratio: 4 / 3;
  cursor: pointer;
}
.public-gallery-thumb.active {
  border-color: var(--cal-primary);
}
.public-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #eef2e8;
}

.listing-description {
  color: var(--cal-ink) !important;
}

.listing-description h3,
.listing-description h4,
.listing-description strong,
.listing-description b {
  color: var(--cal-ink);
}

.listing-description hr {
  border: 0;
  border-top: 1px solid var(--cal-line);
  margin: 1rem 0;
}

.listing-description .ql-font-serif {
  font-family: Georgia, "Times New Roman", serif;
}

.listing-description .ql-font-mono {
  font-family: "Courier New", Consolas, monospace;
}

.listing-description .ql-font-rounded {
  font-family: "Trebuchet MS", Verdana, sans-serif;
}

/* Hero */
.hero-section {
  background: var(--cal-gradient);
  border-radius: 1rem;
  padding: 2.5rem 2rem;
  color: #fff;
  margin-bottom: 2rem;
}
.hero-section h1 { font-weight: 700; font-size: 1.75rem; letter-spacing: 0; }
.hero-section p { opacity: .85; font-size: 1rem; }
.hero-search {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: .75rem;
  color: #fff;
  padding: .75rem 1rem;
  font-size: 1rem;
  backdrop-filter: blur(10px);
}
.hero-search::placeholder { color: rgba(255,255,255,.6); }
.hero-search:focus { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.4); box-shadow: none; color: #fff; }

/* Footer */
.cal-footer {
  background: rgba(255,255,255,.9);
  border-top: 1px solid var(--cal-line);
  padding: 1.25rem 0;
  color: #7b8b80;
  font-size: .8125rem;
}

/* Card title truncation */
.card-soft .h6.text-truncate,
.card-soft h2.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.card-soft .d-flex.align-items-center.gap-3 .flex-grow-1 {
  min-width: 0;
}

/* Misc */
.form-label { font-weight: 500; font-size: .8125rem; color: #33443a; margin-bottom: .375rem; }
.form-text { font-size: .8125rem; color: #7b8b80; }
.alert { border-radius: var(--cal-radius); font-size: .875rem; }
.btn { font-weight: 500; font-size: .875rem; border-radius: .5rem; }
.btn-sm { font-size: .8125rem; padding: .375rem .75rem; }

/* User pill in navbar */
.user-pill {
  display: inline-flex; align-items: center; gap: .5rem;
  background: #eef2e8;
  border-radius: 2rem;
  padding: .25rem .75rem .25rem .25rem;
  font-size: .8125rem;
  color: #506057;
  font-weight: 500;
  max-width: 180px;
}
.user-pill .user-email-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-pill .user-avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--cal-gradient);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}

/* =============================================================================
   Landing page
   ============================================================================= */

.landing-hero {
  background: var(--cal-gradient);
  padding: 5rem 2rem 4rem;
  color: #fff;
}
.landing-hero-title {
  font-weight: 800;
  font-size: 2.75rem;
  letter-spacing: 0;
  line-height: 1.15;
  margin-bottom: 1rem;
}
.landing-hero-sub {
  font-size: 1.125rem;
  opacity: .85;
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.6;
}
.landing-cta-btn {
  font-weight: 600;
  color: var(--cal-primary) !important;
}
.landing-cta-btn:hover {
  background: var(--cal-cream) !important;
}

/* Stats dans le hero */
.landing-stat {
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--cal-radius);
  padding: 1rem 2rem;
  min-width: 140px;
}
.landing-stat-value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
}
.landing-stat-label {
  font-size: .8125rem;
  opacity: .75;
  margin-top: .25rem;
}

/* Feature icons */
.landing-feat-icon {
  width: 56px;
  height: 56px;
  border-radius: .875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

/* Step numbers */
.landing-step-number {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--cal-gradient);
  color: #fff;
  font-weight: 800;
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Pricing featured card */
.landing-pricing-featured {
  border: 2px solid var(--cal-primary) !important;
  position: relative;
}
.landing-pricing-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--cal-gradient);
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  padding: .25rem 1rem;
  border-radius: 2rem;
  white-space: nowrap;
}

/* CTA section */
.landing-cta-section {
  background: var(--cal-gradient);
  padding: 4rem 2rem;
}

/* =============================================================================
   Responsive mobile
   ============================================================================= */
@media (max-width: 575.98px) {
  /* Landing hero compact */
  .landing-hero { padding: 3rem 1rem 2.5rem; }
  .landing-hero-title { font-size: 1.75rem; }
  .landing-hero-sub { font-size: .9375rem; }
  .landing-stat { padding: .75rem 1.25rem; min-width: 100px; }
  .landing-stat-value { font-size: 1.5rem; }
  .landing-cta-section { padding: 2.5rem 1rem; }

  /* Hero plus compact */
  .hero-section { padding: 1.5rem 1rem; border-radius: .75rem; }
  .hero-section h1 { font-size: 1.25rem; }
  .hero-section p { font-size: .875rem; }
  .hero-search { padding: .625rem .75rem; font-size: .875rem; }

  /* Filtres en colonne */
  .d-flex.flex-wrap.gap-2.justify-content-center {
    flex-direction: column;
    align-items: stretch !important;
  }
  .d-flex.flex-wrap.gap-2.justify-content-center .form-select {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Navbar */
  .cal-navbar .navbar-brand { font-size: 1.1rem; }
  .user-pill { font-size: .75rem; padding: .2rem .5rem .2rem .2rem; }
  .user-pill .user-avatar { width: 24px; height: 24px; font-size: .6rem; }

  /* Cards */
  .card-soft .card-body { padding: .875rem !important; }

  /* Page header */
  .page-header h1 { font-size: 1.25rem; }

  /* Tableaux scrollables */
  .table-responsive-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Footer */
  .cal-footer { font-size: .75rem; padding: 1rem 0; }

  /* Pagination */
  .pagination { flex-wrap: wrap; justify-content: center; }
}

@media (max-width: 767.98px) {
  /* Masquer l'email complet dans le pill, garder juste l'avatar */
  .user-pill .user-email-text { display: none; }
}

/* Breadcrumb */
.breadcrumb-item a { color: var(--cal-primary); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--cal-primary-dark); text-decoration: underline; }
.breadcrumb-item.active { color: var(--cal-muted); }

/* =============================================================================
   Dark mode
   ============================================================================= */
[data-bs-theme="dark"] {
  --cal-primary: #2d8b8b;
  --cal-primary-light: #a8dadc;
  --cal-primary-dark: #1f6f73;
  --cal-accent: #a8dadc;
  --cal-warm: #f1faee;
  --cal-cream: #f1faee;
  --cal-ink: #f1faee;
  --cal-muted: #b6cfd2;
  --cal-line: #2c5263;
  --cal-bg: #1a2332;
  --cal-primary-rgb: 45, 139, 139;
  --cal-gradient: linear-gradient(135deg, #1a2332 0%, #2d8b8b 58%, #a8dadc 100%);
  --bs-primary: var(--cal-primary);
  --bs-primary-rgb: 45,139,139;
  --bs-link-color: var(--cal-primary-light);
  --bs-link-hover-color: #f1faee;
  --cal-card-shadow: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);
  --cal-card-shadow-hover: 0 10px 25px rgba(0,0,0,.4);
}

[data-bs-theme="dark"] body {
  background: var(--cal-bg);
  color: #f1faee;
}

[data-bs-theme="dark"] .cal-navbar {
  background: rgba(26,35,50,.94);
  border-bottom-color: var(--cal-line);
}

[data-bs-theme="dark"] .nav-group-label { color: #91b9c3; }
[data-bs-theme="dark"] .nav-group-separator { background: var(--cal-line); }
[data-bs-theme="dark"] .cal-navbar .nav-link { color: var(--cal-muted); }
[data-bs-theme="dark"] .cal-navbar .nav-link:hover,
[data-bs-theme="dark"] .cal-navbar .nav-link.active {
  color: var(--cal-primary-light);
  background: rgba(var(--cal-primary-rgb), .18);
}

[data-bs-theme="dark"] .cal-navbar .dropdown-menu {
  background: #202d40;
  border-color: var(--cal-line);
}
[data-bs-theme="dark"] .cal-navbar .dropdown-item { color: #d8eef0; }
[data-bs-theme="dark"] .cal-navbar .dropdown-item:hover {
  background: rgba(var(--cal-primary-rgb), .18);
  color: var(--cal-primary-light);
}

[data-bs-theme="dark"] .card-soft {
  background: #202d40;
  border-color: var(--cal-line);
}
[data-bs-theme="dark"] .card-soft .card-header { border-bottom-color: var(--cal-line); }

[data-bs-theme="dark"] .stat-card {
  background: #202d40;
  border-color: var(--cal-line);
}
[data-bs-theme="dark"] .stat-card .stat-value { color: var(--cal-cream); }

[data-bs-theme="dark"] .hero-search {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.15);
}

[data-bs-theme="dark"] .slot-btn {
  background: #202d40;
  border-color: var(--cal-line);
  color: var(--cal-cream);
}
[data-bs-theme="dark"] .slot-btn:hover {
  border-color: var(--cal-primary-light);
  background: rgba(var(--cal-primary-rgb), .16);
}
[data-bs-theme="dark"] .slot-btn-selected,
[data-bs-theme="dark"] .slot-btn-selected:hover {
  border-color: var(--cal-primary-light);
  background: rgba(var(--cal-primary-rgb), .24);
}
[data-bs-theme="dark"] .slot-btn-booked {
  background: #1a2332;
  border-color: #426a78;
}
[data-bs-theme="dark"] .slot-btn-booked:hover {
  border-color: var(--cal-accent);
  background: rgba(249,166,32,.1);
}

[data-bs-theme="dark"] .booking-summary-panel .badge {
  background: rgba(26, 35, 50, .72) !important;
  border-color: #426a78 !important;
  color: var(--cal-cream) !important;
}
[data-bs-theme="dark"] .booking-summary-panel .text-secondary {
  color: var(--cal-muted) !important;
}
[data-bs-theme="dark"] .booking-summary-panel .fw-semibold,
[data-bs-theme="dark"] .booking-summary-panel .fw-bold {
  color: var(--cal-cream);
}
[data-bs-theme="dark"] .booking-summary-panel .border-top {
  border-top-color: #426a78 !important;
}
[data-bs-theme="dark"] .gallery-upload-card {
  border-color: #426a78;
  background: linear-gradient(135deg, rgba(var(--cal-primary-rgb), .14), rgba(249,166,32,.08));
}
[data-bs-theme="dark"] .gallery-admin-image-wrap,
[data-bs-theme="dark"] .public-gallery-main {
  background: #1a2332;
}
[data-bs-theme="dark"] .gallery-admin-image,
[data-bs-theme="dark"] .public-gallery-image,
[data-bs-theme="dark"] .public-gallery-thumb img {
  background: #1a2332;
}
[data-bs-theme="dark"] .gallery-admin-badge {
  background: rgba(26,35,50,.82);
}

[data-bs-theme="dark"] .cal-footer {
  background: #202d40;
  border-top-color: var(--cal-line);
  color: #91b9c3;
}

[data-bs-theme="dark"] .user-pill {
  background: #26384d;
  color: #d8eef0;
}

[data-bs-theme="dark"] .table thead th { color: var(--cal-muted); border-bottom-color: var(--cal-line); }
[data-bs-theme="dark"] .table tbody td { border-color: #26384d; }
[data-bs-theme="dark"] .table-hover tbody tr:hover { background: rgba(var(--cal-primary-rgb), .1); }

[data-bs-theme="dark"] .form-label { color: #d8eef0; }
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background: #202d40;
  border-color: var(--cal-line);
  color: var(--cal-cream);
}

[data-bs-theme="dark"] .page-header h1 { color: var(--cal-cream); }

[data-bs-theme="dark"] .listing-description {
  color: #e6f4f1 !important;
}

[data-bs-theme="dark"] .listing-description h3,
[data-bs-theme="dark"] .listing-description h4,
[data-bs-theme="dark"] .listing-description strong,
[data-bs-theme="dark"] .listing-description b {
  color: #ffffff;
}

[data-bs-theme="dark"] .listing-chevron {
  color: #ffffff !important;
}

/* Landing dark mode */
[data-bs-theme="dark"] .landing-stat {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.12);
}
[data-bs-theme="dark"] .landing-pricing-featured {
  border-color: var(--cal-primary-light) !important;
}

/* Placeholder disparaît au focus (UX : moins perturbant pendant la saisie) */
.form-control:focus::placeholder,
.form-select:focus::placeholder,
input:focus::placeholder,
textarea:focus::placeholder {
  color: transparent;
}
