/* Tableau de bord pro — lecture éditoriale et catalogue compact. */
body.pro-dashboard-page {
  background: radial-gradient(circle at 4% 4%, #e7f5e9 0, transparent 31%),
    radial-gradient(circle at 96% 0, #f4f1e4 0, transparent 27%), #f6f8f4;
}

.pro-dashboard {
  width: min(1480px, calc(100% - 64px));
  margin: 30px auto 72px;
  gap: 18px;
}

.pro-dashboard .glass-panel {
  border: 1px solid rgba(40, 94, 59, .11);
  background: rgba(255, 255, 252, .91);
  box-shadow: 0 14px 42px rgba(30, 69, 44, .055);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.pro-dashboard .glass-panel::before { display: none; }
.pro-dashboard [hidden] { display: none !important; }
.pro-dashboard .section-kicker {
  padding: 0;
  border: 0;
  background: none;
  color: #398760;
  font: 800 .69rem/1.25 "Segoe UI", sans-serif;
  letter-spacing: .15em;
}

.dashboard-hero {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  padding: 28px 36px;
  border-radius: 28px;
  background: linear-gradient(110deg, rgba(255,255,252,.97) 44%, rgba(229,245,231,.86)) !important;
}

.dashboard-hero .hero-copy {
  gap: 8px;
  padding: 0;
}

.dashboard-hero h1 {
  max-width: none;
  margin: 2px 0 0;
  font-size: clamp(1.85rem, 2.8vw, 2.8rem);
  letter-spacing: -.045em;
}

.dashboard-hero .hero-copy > p {
  max-width: 62ch;
  font: 400 .91rem/1.5 "Segoe UI", sans-serif;
}

.dashboard-hero .hero-pills { margin: 0; }
.dashboard-hero .freshness-hero-alert { min-height: 30px; padding: 4px 10px; font-size: .72rem; }
.dashboard-hero .hero-actions { padding: 0; border: 0; background: none; }
.dashboard-hero .hero-action-card { gap: 5px; padding: 0; border: 0; background: none; box-shadow: none; }
.dashboard-hero .hero-action-kicker { min-height: 0; padding: 0; border: 0; background: none; font-size: .65rem; }
.dashboard-hero .hero-action-card .primary-action {
  width: auto;
  min-height: 44px;
  margin: 0;
  padding: 0 20px;
  border-radius: 13px;
  white-space: nowrap;
  font-size: .82rem;
}
.dashboard-hero .hero-action-note { font: 400 .7rem/1.3 "Segoe UI", sans-serif; text-align: center; }

.dashboard-shortcuts {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 3px;
}
.dashboard-shortcuts a {
  padding: 10px 15px;
  border-radius: 999px;
  color: #4a6957;
  font: 650 .77rem/1 "Segoe UI", sans-serif;
  text-decoration: none;
  transition: background .18s ease, color .18s ease;
}
.dashboard-shortcuts a:hover,
.dashboard-shortcuts a:focus-visible { background: #e4f2e7; color: #1c6242; }
#services-title,
#freshness-center-title,
#bookings-title { scroll-margin-top: 92px; }

.dashboard-overview {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  padding: 5px 2px;
  border: 1px solid rgba(40, 94, 59, .11);
  border-radius: 21px;
  background: rgba(255, 255, 252, .88);
  box-shadow: 0 9px 27px rgba(30, 69, 44, .035);
}
.dashboard-overview .overview-card {
  min-width: 0;
  padding: 17px 20px;
  border: 0;
  border-right: 1px solid #e4ece5;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.dashboard-overview .overview-card:last-child { border-right: 0; }
.dashboard-overview .overview-card strong {
  margin: 6px 0 4px;
  font-size: clamp(1.35rem, 1.7vw, 1.95rem);
  letter-spacing: -.045em;
}
.dashboard-overview .overview-label {
  color: #71877a;
  font: 750 .66rem/1.35 "Segoe UI", sans-serif;
  letter-spacing: .07em;
}
.dashboard-overview .overview-card p {
  overflow: hidden;
  color: #819387;
  font: 400 .7rem/1.3 "Segoe UI", sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.dashboard-main { gap: 18px; min-width: 0; }
.dashboard-side { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.dashboard-side > section,
.performance-section,
.drafts-section { padding: 22px 24px; border-radius: 24px; }
.dashboard-side .section-head h2,
.performance-section .section-head h2 { font-size: 1.35rem; }
.dashboard-side .section-head,
.performance-section .section-head { margin-bottom: 12px; }
.dashboard-side .freshness-section { display: grid; gap: 10px; }
.dashboard-side .freshness-intro { font-size: .81rem; }
.dashboard-side .freshness-notifications { max-height: 430px; overflow-y: auto; }
.dashboard-side .booking-stack,
.dashboard-side .insights-list,
.performance-section .performance-grid { gap: 7px; }
.dashboard-side .booking-card,
.dashboard-side .insight-card,
.performance-section .performance-card {
  padding: 12px;
  border-color: #e9efea;
  border-radius: 12px;
  background: #fcfdfb;
}
.dashboard-side .booking-card { grid-template-columns: 54px minmax(0, 1fr); gap: 9px; }
.dashboard-side .booking-card-image { width: 54px; height: 54px; border-radius: 8px; }
.dashboard-side .booking-card-title,
.dashboard-side .insight-card h3,
.performance-section .performance-card h3 { margin-bottom: 4px; font-size: .86rem; }
.dashboard-side .booking-tag { min-height: 23px; padding: 3px 7px; font-size: .61rem; }
.dashboard-side .booking-tags { gap: 4px; }
.dashboard-side .insight-score { min-height: 27px; padding: 0 9px; font-size: .7rem; }
.performance-section .performance-card p,
.dashboard-side .insight-card p { font-size: .75rem; line-height: 1.45; }
.performance-section .performance-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.performance-section .performance-row { font-size: .75rem; }

.draft-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.draft-card {
  gap: 8px;
  padding: 16px;
  border: 1px solid #e1eae2;
  border-radius: 17px;
  background: #fbfdfa;
  box-shadow: none;
}
.draft-card .metric-cluster { display: flex; gap: 12px; }
.draft-card .metric-chip { display: flex; gap: 5px; min-height: 0; padding: 0; background: none; }
.draft-card .metric-chip strong { font-size: .8rem; }
.draft-card .metric-chip span { font-size: .75rem; }
.draft-card .service-card-actions { margin: 0; padding: 9px 0 0; border-top: 1px solid #e6ede6; background: none; }
.draft-card .primary-action,
.draft-card .ghost-action { width: auto; min-height: 34px; padding: 0 13px; font-size: .75rem; }

.services-section {
  overflow: visible !important;
  padding: 0 24px 22px;
  border-radius: 25px !important;
}
.services-section .section-head {
  position: relative;
  display: grid;
  grid-template-columns: minmax(220px, .6fr) minmax(0, 1.4fr);
  align-items: center;
  gap: 14px 30px;
  margin: 0 -24px 15px;
  padding: 22px 24px 16px;
  border-bottom: 1px solid #e5ede6;
}
.services-section .section-head h2 { margin: 5px 0 3px; font-size: clamp(1.45rem, 2vw, 1.9rem); }
.services-section .section-head p { max-width: 38ch; font: 400 .78rem/1.45 "Segoe UI", sans-serif; }
.services-section .section-actions { width: 100%; min-width: 0; gap: 8px; }
.service-search { gap: 4px; }
.service-search-meta label { font-size: .65rem; }
.service-search-meta span { font-size: .69rem; }
.service-search-control { min-height: 40px; border-radius: 12px; box-shadow: none; }
.service-search-control input { height: 39px; font: 400 .81rem/1 "Segoe UI", sans-serif; }
.service-search-icon { width: 14px; height: 14px; margin-right: 9px; border-width: 1.7px; }
.service-filter-row { justify-content: flex-start; gap: 8px 16px; }
.filter-group { flex-wrap: wrap; gap: 5px; }
.filter-pill { min-height: 30px; padding: 0 10px; border-color: transparent; background: transparent; color: #687d6e; font: 650 .69rem/1 "Segoe UI", sans-serif; }
.filter-pill.is-active { border-color: #b7d9bd; background: #e5f4e8; color: #1e6844; box-shadow: none; }
.filter-pill:hover { background: #eff7ef; }
.filter-count { min-width: 17px; margin-left: 5px; color: #8ba293; font-size: .62rem; text-align: center; }
.filter-pill.is-active .filter-count { color: #25704a; }

.service-search-suggestions {
  margin: 0 0 14px;
  padding: 13px 16px 15px;
  border: 1px solid #d7e9db;
  border-radius: 16px;
  background: linear-gradient(115deg, #f8fcf8, #eef7ef);
}
.service-quick-head { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.service-quick-head > div { display: grid; gap: 4px; }
.service-quick-head strong { color: #194b31; font-size: .88rem; }
.service-quick-head small { color: #688373; font: 400 .72rem/1.35 "Segoe UI", sans-serif; }
.service-quick-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.service-quick-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e2eae2;
  border-radius: 11px;
  background: #fff;
  color: #194b31;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.service-quick-item:hover,
.service-quick-item:focus-visible { border-color: #85b996; background: #f8fcf8; }
.service-quick-item:disabled { opacity: .6; cursor: wait; }
.service-quick-item > span:first-child { display: grid; gap: 3px; min-width: 0; }
.service-quick-item strong { overflow: hidden; font: 700 .77rem/1.25 "Segoe UI", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.service-quick-item small { color: #7a8f7f; font: 400 .67rem/1.2 "Segoe UI", sans-serif; }
.service-quick-empty { margin: 0; color: #667c6e; font-size: .78rem; }

body.pro-dashboard-page .service-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 9px !important;
}
.service-card {
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr);
  min-height: 139px;
  overflow: hidden;
  border: 1px solid #e0e9e1;
  border-radius: 17px;
  background: #fff;
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.service-card:hover { transform: none; border-color: #b4d1bc; box-shadow: 0 9px 24px rgba(30, 69, 44, .065); }
.service-card-media { align-self: start; height: 125px; min-height: 0; margin: 7px 0 7px 7px; border-radius: 11px; }
.service-card-media::after { background: linear-gradient(180deg, rgba(16, 56, 31, .14), transparent 60%); }
.service-card-badges { top: 7px; left: 7px; }
.service-card-badges .status-chip { display: block; overflow: hidden; max-width: 105px; min-height: 22px; padding: 5px 7px; font: 700 .57rem/1 "Segoe UI", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.service-card-fallback { align-items: end; padding: 10px; }
.service-card-fallback span { max-width: 100%; font-size: .57rem; letter-spacing: .05em; }
.service-card-watermark { width: 80%; }
.service-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  gap: 0 14px;
  min-width: 0;
  padding: 13px 16px 8px;
}
.service-card-primary-info { min-width: 0; }
.service-card-context { justify-content: flex-start; gap: 7px; }
.service-card-context .status-chip,
.service-card-context .completeness-chip { min-height: 20px; padding: 3px 7px; font: 700 .59rem/1.2 "Segoe UI", sans-serif; }
.service-card-head { gap: 3px; margin-top: 7px; }
.service-card-title { font-size: clamp(1rem, 1.25vw, 1.19rem); line-height: 1.2; -webkit-line-clamp: 1; }
.service-card-location { overflow: hidden; max-width: 80ch; font: 400 .72rem/1.3 "Segoe UI", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.service-card-location::before { top: .45em; width: 5px; height: 5px; }
.service-card-quickline { display: flex; flex-wrap: wrap; gap: 3px 14px; margin-top: 8px; color: #63806e; font: 600 .68rem/1.3 "Segoe UI", sans-serif; }
.service-card-quickline > span + span::before { content: "·"; margin-right: 13px; color: #a4b8a7; }
.service-card-freshness-inline.is-review { color: #9c6514; }
.service-card-freshness-inline.is-stale { color: #a64b4a; }
.service-card-actions { align-self: center; margin: 0; padding: 0; border: 0; background: none; }
.service-card-actions-main { gap: 6px; }
.service-card .action-btn { min-height: 33px; padding: 0 11px; border-radius: 9px; font: 700 .68rem/1 "Segoe UI", sans-serif; }
.service-card .action-btn.is-primary { min-width: 0; background: #1f704a; box-shadow: none; }
.service-card-details { grid-column: 1 / -1; margin-top: 8px; border-top: 1px solid #edf1ed; }
.service-card-details > summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 0 1px; color: #58816a; cursor: pointer; list-style: none; font: 700 .68rem/1.2 "Segoe UI", sans-serif; }
.service-card-details > summary::-webkit-details-marker { display: none; }
.service-card-details > summary span { font-size: 1.1rem; transition: transform .2s ease; }
.service-card-details[open] > summary span { transform: rotate(180deg); }
.service-card-expanded { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .8fr); gap: 12px 18px; padding: 12px 0 8px; }
.service-card-copy { grid-column: 1 / -1; max-width: 110ch; margin: 0; font: 400 .76rem/1.45 "Segoe UI", sans-serif; -webkit-line-clamp: 2; }
.service-card-expanded .service-freshness { grid-column: 1 / -1; gap: 8px; padding: 11px 13px; border-radius: 12px; }
.service-card-expanded .service-freshness-main > div { display: flex; flex-wrap: wrap; gap: 3px 12px; align-items: baseline; }
.service-card-expanded .service-freshness p { flex-basis: 100%; }
.service-card-expanded .service-freshness-actions { padding-left: 21px; }
.service-card-facts { border-radius: 11px; }
.service-card-fact { min-height: 50px; padding: 7px 9px; }
.service-card-fact span { font-size: .56rem; }
.service-card-fact strong { font-size: .75rem; }
.service-card-usage { align-self: center; }
.service-card-meta { align-self: center; margin: 0; }
.service-card .meta-chip-pill { min-height: 26px; padding: 0 8px; font-size: .62rem; }
.service-card-secondary-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 7px; }
.service-card-expanded .lock-date-banner { grid-column: 1 / -1; }
.service-pagination { gap: 6px; padding-top: 17px; }
.service-pagination .secondary-action { min-height: 39px; font-size: .77rem; }

.dashboard-modal { background: rgba(14, 36, 24, .4); backdrop-filter: blur(8px); }
.dashboard-modal-shell {
  border: 1px solid rgba(54, 108, 69, .17);
  border-radius: 24px;
  background: #fcfdfb;
  box-shadow: 0 32px 90px rgba(12, 38, 21, .22);
}
.edit-shell-header { gap: 6px; margin-bottom: 14px; }
.edit-shell-header h2 { margin: 5px 0 0; font-size: clamp(1.45rem, 2vw, 2rem); letter-spacing: -.035em; }
.edit-shell-header p { font-size: .84rem; }
.dashboard-modal .edit-section { border-radius: 16px; border-color: #e2ebe3; background: #fff; }
.dashboard-modal .primary-action,
.dashboard-modal .ghost-action { min-height: 42px; border-radius: 11px; font-size: .8rem; }

@media (max-width: 1150px) {
  .dashboard-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-overview .overview-card:nth-child(3) { border-right: 0; }
  .dashboard-overview .overview-card:nth-child(-n+3) { border-bottom: 1px solid #e4ece5; }
  .dashboard-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-side .freshness-section { grid-column: 1 / -1; }
  .services-section .section-head { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .pro-dashboard { width: calc(100% - 24px); margin-top: 15px; gap: 12px; }
  .dashboard-hero { grid-template-columns: minmax(0, 1fr); gap: 15px; padding: 22px; }
  .dashboard-hero h1 { font-size: 1.85rem; }
  .dashboard-hero .hero-action-card { justify-items: start; }
  .dashboard-hero .hero-action-note { text-align: left; }
  .dashboard-shortcuts { overflow-x: auto; white-space: nowrap; }
  .dashboard-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-overview .overview-card { padding: 13px 14px; border-bottom: 1px solid #e4ece5; }
  .dashboard-overview .overview-card:nth-child(odd) { border-right: 1px solid #e4ece5; }
  .dashboard-overview .overview-card:nth-child(even) { border-right: 0; }
  .dashboard-overview .overview-card:nth-last-child(-n+2) { border-bottom: 0; }
  .dashboard-side { grid-template-columns: minmax(0, 1fr); }
  .dashboard-side .freshness-section { grid-column: auto; }
  .performance-section .performance-grid { grid-template-columns: minmax(0, 1fr); }
  .services-section { padding: 0 12px 15px; }
  .services-section .section-head { margin-inline: -12px; padding: 17px 13px; }
  .service-filter-row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .service-filter-row .filter-group { flex: 0 0 auto; flex-wrap: nowrap; }
  .service-quick-list { grid-template-columns: minmax(0, 1fr); }
  .service-quick-head { align-items: start; flex-direction: column; }
  .service-card { grid-template-columns: 92px minmax(0, 1fr); min-height: 0; }
  .service-card-media { height: 100px; min-height: 0; margin: 5px 0 5px 5px; }
  .service-card-body { grid-template-columns: minmax(0, 1fr); padding: 10px 11px 7px; }
  .service-card-title { font-size: .93rem; -webkit-line-clamp: 2; }
  .service-card-quickline { gap: 2px 8px; margin-top: 6px; }
  .service-card-quickline > span + span::before { margin-right: 7px; }
  .service-card-actions { justify-content: flex-start; margin-top: 9px; }
  .service-card-actions-main { width: auto; }
  .service-card .action-btn { min-height: 31px; }
  .service-card-details { grid-column: 1; }
  .service-card-expanded { grid-template-columns: minmax(0, 1fr); }
  .service-card-copy,
  .service-card-expanded .service-freshness,
  .service-card-expanded .lock-date-banner { grid-column: auto; }
  .service-card-secondary-actions { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-quick-item,
  .dashboard-shortcuts a { transition: none; }
}
