/* MyselfPhoto v1.16.1 — extension du thème MyselfCaisse aux interfaces
   établissement, connexion et parent/galerie.
   Surcouche visuelle uniquement : aucune règle ne change la logique,
   les dimensions des photos, le panier ou les codes d'accès. */

body.auth-body,
body.school-interface,
body.parent-interface {
  --mc-bg: #f3f3f0;
  --mc-card: #ffffff;
  --mc-soft: #ececea;
  --mc-soft-2: #f7f7f5;
  --mc-ink: #161616;
  --mc-muted: #777773;
  --mc-line: #dcdcd8;
  --mc-black: #111111;
  --mc-shadow: 0 18px 42px rgba(0,0,0,.055);
  --mc-shadow-soft: 0 8px 22px rgba(0,0,0,.045);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
}

/* =========================================================
   Connexions / pages publiques simples
   ========================================================= */
body.auth-body {
  color: var(--mc-ink);
  background: var(--mc-bg) !important;
}

body.auth-body .auth-shell {
  width: min(100%, 490px);
}

body.auth-body .auth-brand {
  color: var(--mc-ink);
}

body.auth-body .auth-card,
body.auth-body .school-login-card,
body.auth-body .gallery-login-card {
  padding: 28px;
  border: 1px solid var(--mc-line);
  border-radius: 24px;
  background: var(--mc-card);
  box-shadow: var(--mc-shadow);
}

body.auth-body :is(.auth-card,.school-login-card,.gallery-login-card) h1 {
  color: var(--mc-ink);
  font-weight: 900;
  letter-spacing: -.035em;
}

body.auth-body :is(.auth-card,.school-login-card,.gallery-login-card) p {
  color: var(--mc-muted);
}

body.auth-body .school-login-brand span,
body.auth-body .eyebrow {
  color: var(--mc-muted);
}

body.auth-body :is(input,select,textarea) {
  border-color: var(--mc-line);
  border-radius: 12px;
  color: var(--mc-ink);
  background: #fff;
  box-shadow: none;
}

body.auth-body :is(input,select,textarea):focus {
  border-color: #aaa9a3;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

body.auth-body .button,
body.auth-body button {
  border-color: var(--mc-black) !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: var(--mc-black) !important;
  box-shadow: none !important;
}

body.auth-body .button.secondary,
body.auth-body button.secondary {
  color: #444440 !important;
  border-color: var(--mc-line) !important;
  background: var(--mc-soft-2) !important;
}

body.auth-body .badge:not(.danger):not(.success) {
  color: #444440;
  background: var(--mc-soft);
}

body.auth-body .notice {
  border: 1px solid #e7dfc7;
  border-radius: 14px;
  color: #625731;
  background: #fff8df;
  box-shadow: none;
}

/* =========================================================
   Espace établissement — même structure que l'administration
   ========================================================= */
body.school-interface {
  color: var(--mc-ink);
  background: var(--mc-bg) !important;
}

body.school-interface .school-app-shell {
  min-height: 100vh;
  grid-template-columns: 236px minmax(0,1fr);
  gap: 12px;
  padding: 12px;
  background: var(--mc-bg);
}

body.school-interface .school-main {
  min-width: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.school-interface .school-sidebar {
  position: sticky;
  top: 12px;
  height: calc(100vh - 24px);
  min-height: 0;
  padding: 12px 10px;
  overflow: hidden;
  color: var(--mc-ink);
  border: 1px solid var(--mc-line);
  border-radius: 27px;
  background: var(--mc-card);
  box-shadow: var(--mc-shadow);
}

body.school-interface .school-sidebar .sidebar-head {
  min-height: 52px;
  margin-bottom: 12px;
  padding: 0 4px;
}

body.school-interface .school-sidebar .brand {
  margin: 0 38px 0 2px;
}

body.school-interface .school-sidebar .official-logo-horizontal {
  max-height: 54px;
}

body.school-interface .school-sidebar .sidebar-toggle {
  right: 2px;
  width: 32px;
  height: 32px;
  color: #555550;
  border: 1px solid var(--mc-line);
  background: var(--mc-soft-2);
  box-shadow: none;
}

body.school-interface .school-sidebar nav {
  display: grid;
  gap: 4px;
}

body.school-interface .school-sidebar nav a {
  min-height: 46px;
  padding: 8px 11px;
  border-radius: 14px;
  color: #6e6e69;
  background: transparent;
  font-size: 13px;
  font-weight: 760;
  box-shadow: none;
}

body.school-interface .school-sidebar nav a:hover:not(.active) {
  color: var(--mc-ink);
  background: var(--mc-soft);
}

body.school-interface .school-sidebar nav a.active {
  color: #fff;
  background: var(--mc-black);
  box-shadow: none;
}

body.school-interface .school-sidebar .sidebar-nav-icon,
body.school-interface .school-sidebar .sidebar-nav-icon svg {
  color: currentColor !important;
  stroke: currentColor !important;
}

body.school-interface .school-sidebar .sidebar-footer.app-signature {
  margin-top: auto;
  padding: 11px 12px;
  border: 0;
  border-radius: 15px;
  color: #555550;
  background: var(--mc-soft-2);
  box-shadow: none;
}

body.school-interface .school-sidebar .sidebar-footer strong {
  color: var(--mc-ink);
}

body.school-interface .school-sidebar .sidebar-footer span {
  color: var(--mc-muted);
}

body.school-interface .school-topbar {
  min-height: 64px;
  padding: 9px 14px;
  border: 1px solid var(--mc-line);
  border-radius: 21px;
  background: var(--mc-card);
  box-shadow: 0 8px 24px rgba(0,0,0,.035);
}

body.school-interface .school-topbar h1 {
  margin: 0;
  color: var(--mc-ink);
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.035em;
}

body.school-interface .school-user-menu > span strong {
  color: var(--mc-ink);
  font-size: 11px;
  font-weight: 900;
}

body.school-interface .school-user-menu > span small {
  color: var(--mc-muted);
}

body.school-interface .school-portal-main {
  display: grid;
  gap: 10px;
}

body.school-interface .school-portal-title,
body.school-interface .school-portal-filters,
body.school-interface .school-orders-card,
body.school-interface .school-settlement-card,
body.school-interface .school-settlement-empty,
body.school-interface .school-paid-toolbar {
  border: 1px solid var(--mc-line);
  border-radius: 20px;
  background: var(--mc-card);
  box-shadow: var(--mc-shadow-soft);
}

body.school-interface .school-portal-title {
  margin: 0;
  padding: 16px 18px;
  border-left-width: 1px;
}

body.school-interface .school-portal-title p {
  color: var(--mc-muted);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

body.school-interface .school-portal-title h1 {
  color: var(--mc-ink);
  font-weight: 900;
  letter-spacing: -.035em;
}

body.school-interface .school-portal-title span {
  color: var(--mc-muted);
}

body.school-interface .school-portal-filters {
  margin: 0;
  padding: 13px;
}

body.school-interface :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  border-color: var(--mc-line);
  border-radius: 12px;
  color: var(--mc-ink);
  background: #fff;
  box-shadow: none;
}

body.school-interface :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus {
  border-color: #aaa9a3;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(17,17,17,.06);
}

body.school-interface .metrics article,
body.school-interface .school-settlement-financials > div {
  border-color: var(--mc-line);
  border-radius: 16px;
  color: var(--mc-ink);
  background: var(--mc-card);
  box-shadow: none;
}

body.school-interface .metrics article span,
body.school-interface .school-settlement-financials span,
body.school-interface .school-settlement-financials small {
  color: var(--mc-muted);
}

body.school-interface .metrics article strong,
body.school-interface .school-settlement-financials strong {
  color: var(--mc-ink);
}

body.school-interface .school-orders-card {
  overflow: hidden;
}

body.school-interface .school-orders-table th {
  color: #696965;
  border-color: var(--mc-line);
  background: var(--mc-soft-2);
}

body.school-interface .school-orders-table td {
  color: #2d2d2a;
  border-color: #ecece8;
  background: #fff;
}

body.school-interface .school-orders-table tbody tr:hover > td {
  background: var(--mc-soft-2);
}

body.school-interface .school-paid-toolbar {
  top: 8px;
  margin: 0;
  box-shadow: 0 8px 22px rgba(0,0,0,.05);
}

body.school-interface .school-paid-toolbar > strong {
  color: var(--mc-ink);
}

body.school-interface .school-order-select input:checked + span {
  border-color: var(--mc-black);
  background: var(--mc-black);
}

body.school-interface .button,
body.school-interface button.button {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid var(--mc-black);
  border-radius: 12px;
  color: #fff;
  background: var(--mc-black);
  box-shadow: none;
  font-weight: 850;
}

body.school-interface .button:hover,
body.school-interface button.button:hover {
  color: #fff;
  border-color: #2c2c2a;
  background: #2c2c2a;
}

body.school-interface .button.secondary,
body.school-interface button.button.secondary {
  color: #444440;
  border-color: var(--mc-line);
  background: var(--mc-soft-2);
}

body.school-interface .button.secondary:hover,
body.school-interface button.button.secondary:hover {
  color: var(--mc-ink);
  border-color: #cecec9;
  background: var(--mc-soft);
}

body.school-interface .school-settlement-card > header {
  border-color: #ecece8;
  background: var(--mc-soft-2);
}

body.school-interface .school-settlement-card > header p,
body.school-interface .school-settlement-card > header h2 {
  color: var(--mc-ink);
}

body.school-interface .school-settlement-form {
  border-color: var(--mc-line);
  background: #fff;
}

body.school-interface .notice {
  margin: 0;
  border: 1px solid #e7dfc7;
  border-radius: 14px;
  color: #625731;
  background: #fff8df;
  box-shadow: none;
}

/* =========================================================
   Galerie parent / client — même sobriété, photos inchangées
   ========================================================= */
body.parent-interface {
  color: var(--mc-ink);
  background: var(--mc-bg) !important;
}

body.parent-interface .public-gallery-header,
body.parent-interface .lumys-public-header {
  color: var(--mc-ink) !important;
  border-bottom: 1px solid var(--mc-line) !important;
  background: var(--mc-card) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.035) !important;
}

body.parent-interface .public-gallery-header .public-parent-brand,
body.parent-interface .lumys-public-header .public-parent-brand {
  color: var(--mc-ink) !important;
}

body.parent-interface .parent-gallery-context small {
  color: var(--mc-muted) !important;
}

body.parent-interface .parent-gallery-context strong,
body.parent-interface .parent-confirmation-header-context strong {
  color: var(--mc-ink) !important;
  font-weight: 900;
}

body.parent-interface .parent-gallery-context span,
body.parent-interface .public-gallery-header > div span,
body.parent-interface .parent-confirmation-header-context span {
  color: var(--mc-muted) !important;
}

body.parent-gallery-page .parent-gallery-code-tabs > a {
  color: #555550 !important;
  border-color: var(--mc-line) !important;
  border-radius: 10px !important;
  background: var(--mc-soft-2) !important;
  box-shadow: none !important;
}

body.parent-gallery-page .parent-gallery-code-tabs > a:hover {
  color: var(--mc-ink) !important;
  background: var(--mc-soft) !important;
}

body.parent-gallery-page .parent-gallery-code-tabs > a.active {
  color: #fff !important;
  border-color: var(--mc-black) !important;
  background: var(--mc-black) !important;
}

body.parent-gallery-page #parent-add-code-trigger {
  color: #fff !important;
  border: 1px solid var(--mc-black) !important;
  border-radius: 10px !important;
  background: var(--mc-black) !important;
  box-shadow: none !important;
}

body.parent-gallery-page .parent-add-code-panel.is-open #parent-add-code-trigger {
  color: var(--mc-ink) !important;
  border-color: var(--mc-line) !important;
  background: var(--mc-soft-2) !important;
}

body.parent-gallery-page .parent-add-code-panel > form,
body.parent-gallery-page #parent-add-code-form {
  border-color: var(--mc-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--mc-shadow) !important;
}

body.parent-interface .lumys-photo-column {
  background: var(--mc-bg) !important;
}

body.parent-interface .lumys-main-viewer {
  border-color: var(--mc-line) !important;
  border-radius: 16px !important;
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-main-viewer > img {
  border-radius: 12px !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.12) !important;
}

body.parent-interface .lumys-thumbnail {
  border-color: var(--mc-line) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

body.parent-interface .lumys-thumbnail:hover {
  border-color: #bdbdb8 !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .lumys-thumbnail.active {
  border-color: var(--mc-black) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(17,17,17,.08) !important;
}

body.parent-interface .lumys-selected-photo-label span,
body.parent-interface .lumys-product-order > strong,
body.parent-interface .lumys-product-copy [data-article-cart-status] {
  color: var(--mc-ink) !important;
}

body.parent-interface .lumys-products-column {
  border-left-color: var(--mc-line) !important;
  background: #fff;
}

body.parent-interface .lumys-products-heading {
  border-bottom-color: var(--mc-line) !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .lumys-products-heading .badge,
body.parent-interface .lumys-cart-drawer .badge,
body.parent-interface .lumys-checkout-heading .badge,
body.parent-interface .mini-badge,
body.parent-interface .mini-badge.pack {
  color: #444440 !important;
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-products-heading h2,
body.parent-interface .lumys-section-title,
body.parent-interface .lumys-checkout-heading h1,
body.parent-interface .lumys-checkout-forms h2,
body.parent-interface .lumys-cart-drawer h2,
body.parent-interface .payment-instructions h2 {
  color: var(--mc-ink) !important;
}

body.parent-interface .lumys-products-heading-help {
  color: var(--mc-muted) !important;
}

body.parent-interface .lumys-category-title,
body.parent-interface .lumys-category-group[data-category="digital"] .lumys-category-title,
body.parent-interface .lumys-category-group[data-category="prints"] .lumys-category-title,
body.parent-interface .lumys-category-group[data-category="gifts"] .lumys-category-title {
  color: var(--mc-ink) !important;
  border-left: 4px solid var(--mc-black) !important;
  border-radius: 10px !important;
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-product-row,
body.parent-interface .lumys-pack-row {
  border-color: var(--mc-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.parent-interface .lumys-product-row:hover,
body.parent-interface .lumys-pack-row:hover {
  border-color: #c4c4bf !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .lumys-product-row.selected,
body.parent-interface .lumys-pack-row.selected {
  border-color: var(--mc-black) !important;
  background: var(--mc-soft-2) !important;
  box-shadow: 0 0 0 3px rgba(17,17,17,.07) !important;
}

body.parent-interface .lumys-product-picture {
  border-radius: 10px !important;
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-stepper {
  border-color: var(--mc-line) !important;
  border-radius: 10px !important;
}

body.parent-interface .lumys-stepper button {
  color: var(--mc-ink) !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .lumys-stepper button:hover {
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-add-button,
body.parent-interface [data-checkout-open],
body.parent-interface .public-order-submit,
body.parent-interface .button.primary {
  border-color: var(--mc-black) !important;
  border-radius: 11px !important;
  color: #fff !important;
  background: var(--mc-black) !important;
  box-shadow: none !important;
}

body.parent-interface .lumys-add-button:hover,
body.parent-interface [data-checkout-open]:hover:not(:disabled),
body.parent-interface .public-order-submit:hover,
body.parent-interface .button.primary:hover {
  color: #fff !important;
  background: #2c2c2a !important;
}

body.parent-interface .button.secondary {
  color: #444440 !important;
  border-color: var(--mc-line) !important;
  border-radius: 11px !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .button.secondary:hover {
  color: var(--mc-ink) !important;
  background: var(--mc-soft) !important;
}

body.parent-interface .lumys-floating-cart {
  border-color: var(--mc-black) !important;
  color: #fff !important;
  background: var(--mc-black) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.20) !important;
}

body.parent-interface .lumys-floating-cart:hover,
body.parent-interface .lumys-floating-cart.has-items {
  background: #2c2c2a !important;
  box-shadow: 0 14px 38px rgba(0,0,0,.24) !important;
}

body.parent-interface .lumys-floating-cart-copy small {
  color: #d7d7d3 !important;
}

body.parent-interface .lumys-cart-badge {
  color: var(--mc-black) !important;
  background: #fff !important;
}

body.parent-interface .lumys-cart-backdrop {
  background: rgba(17,17,17,.40) !important;
}

body.parent-interface .lumys-cart-drawer {
  border-left-color: var(--mc-line) !important;
  background: #fff;
}

body.parent-interface .lumys-cart-drawer > header {
  color: #fff !important;
  background: var(--mc-black) !important;
}

body.parent-interface .lumys-cart-drawer > header h2 {
  color: #fff !important;
}

body.parent-interface .lumys-cart-drawer > header .badge {
  color: var(--mc-black) !important;
  background: #fff !important;
}

body.parent-interface .lumys-cart-drawer > header button {
  color: #fff !important;
  background: rgba(255,255,255,.12) !important;
}

body.parent-interface .lumys-cart-line {
  border-bottom-color: #ecece8 !important;
}

body.parent-interface .lumys-cart-drawer > footer {
  border-top-color: var(--mc-line) !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .lumys-cart-total strong {
  color: var(--mc-ink) !important;
}

body.parent-interface .lumys-checkout,
body.parent-confirmation-page {
  background: var(--mc-bg) !important;
}

body.parent-interface .lumys-checkout .panel,
body.parent-interface .confirmation-grid .panel,
body.parent-interface .public-order-section {
  border-color: var(--mc-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: var(--mc-shadow-soft) !important;
}

body.parent-interface .lumys-checkout .panel .eyebrow,
body.parent-interface .payment-instructions .eyebrow {
  color: var(--mc-muted) !important;
}

body.parent-interface .public-cart-table thead th,
body.parent-interface .confirmation-summary thead th {
  color: #696965 !important;
  border-color: var(--mc-line) !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .cart-total-line,
body.parent-interface .confirmation-total {
  border-color: var(--mc-line) !important;
  border-radius: 14px !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .cart-total-line strong,
body.parent-interface .confirmation-total strong {
  color: var(--mc-ink) !important;
}

body.parent-interface :is(.parent-details-grid input,textarea,select) {
  border-color: var(--mc-line) !important;
  border-radius: 11px !important;
}

body.parent-interface :is(.parent-details-grid input,textarea,select):focus {
  border-color: #aaa9a3 !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(17,17,17,.06) !important;
}

body.parent-interface .payment-choice {
  border-color: var(--mc-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
}

body.parent-interface .payment-choice:hover {
  border-color: #c4c4bf !important;
  background: var(--mc-soft-2) !important;
}

body.parent-interface .payment-choice:has(input:checked) {
  border-color: var(--mc-black) !important;
  color: var(--mc-ink) !important;
  background: var(--mc-soft-2) !important;
  box-shadow: 0 0 0 3px rgba(17,17,17,.07) !important;
}

body.parent-interface .payment-choice input,
body.parent-interface .terms-choice input {
  accent-color: var(--mc-black) !important;
}

body.parent-interface .school-payment-note {
  border-left-color: var(--mc-black) !important;
  border-radius: 10px !important;
  background: var(--mc-soft-2) !important;
}

body.parent-confirmation-page .confirmation-hero {
  border: 1px solid var(--mc-line) !important;
  border-radius: 20px !important;
  color: var(--mc-ink) !important;
  background: var(--mc-card) !important;
  box-shadow: var(--mc-shadow-soft) !important;
}

body.parent-confirmation-page .confirmation-check {
  color: #fff !important;
  background: var(--mc-black) !important;
}

body.parent-confirmation-page .confirmation-hero .badge {
  color: #444440 !important;
  background: var(--mc-soft) !important;
}

body.parent-confirmation-page .confirmation-hero h1,
body.parent-confirmation-page .payment-instructions h2 {
  color: var(--mc-ink) !important;
}

/* Préserver les codes couleur fonctionnels d'erreur / succès / statut. */
body.parent-interface :is(.badge.danger,.form-error,.parent-code-message.error),
body.school-interface :is(.badge.danger,.form-error) {
  /* volontairement non recoloré */
}

/* Menu réduit de l'espace établissement */
@media (min-width: 921px) {
  html.sidebar-collapsed body.school-interface .school-app-shell {
    grid-template-columns: 86px minmax(0,1fr);
  }

  html.sidebar-collapsed body.school-interface .school-sidebar {
    padding-right: 8px;
    padding-left: 8px;
  }

  html.sidebar-collapsed body.school-interface .school-sidebar .sidebar-toggle {
    right: 2px;
    top: 42px;
    color: #555550;
    border-color: var(--mc-line);
    background: var(--mc-soft-2);
    box-shadow: none;
  }

  html.sidebar-collapsed body.school-interface .school-sidebar nav {
    margin-top: 28px;
  }

  html.sidebar-collapsed body.school-interface .school-sidebar nav a {
    min-height: 54px;
    border-radius: 15px;
  }
}

@media (max-width: 920px) {
  body.school-interface .school-app-shell,
  html.sidebar-collapsed body.school-interface .school-app-shell {
    grid-template-columns: 1fr;
    padding: 8px;
    gap: 8px;
  }

  body.school-interface .school-sidebar {
    position: relative;
    top: 0;
    width: auto;
    height: auto;
    min-height: auto;
    border-radius: 22px;
  }

  body.school-interface .school-sidebar nav {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 650px) {
  body.school-interface .school-app-shell {
    padding: 6px;
  }

  body.school-interface .school-topbar {
    min-height: 58px;
    padding: 10px 12px;
    border-radius: 18px;
  }

  body.school-interface .school-topbar h1 {
    font-size: 20px;
  }

  body.school-interface .school-portal-title,
  body.school-interface .school-portal-filters,
  body.school-interface .school-orders-card,
  body.school-interface .school-settlement-card,
  body.school-interface .school-settlement-empty {
    border-radius: 17px;
  }

  body.auth-body {
    padding: 12px;
  }

  body.auth-body .auth-card,
  body.auth-body .school-login-card,
  body.auth-body .gallery-login-card {
    padding: 20px;
    border-radius: 20px;
  }
}

@media print {
  body.parent-interface .public-gallery-header {
    color: var(--mc-ink) !important;
    background: #fff !important;
    box-shadow: none !important;
  }
}

/* v1.17.0 — Rendez-vous espace établissement */
.school-appointment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.school-appointment-slot,
.school-appointment-empty,
.school-appointment-history {
  background: #fff;
  border: 1px solid #dfded9;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(34, 34, 30, .045);
}
.school-appointment-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px;
}
.school-appointment-slot > div {
  display: grid;
  gap: 4px;
}
.school-appointment-slot strong { color: #1e1e1c; font-size: 14px; }
.school-appointment-slot span,
.school-appointment-slot small { color: #73716b; font-size: 12px; }
.school-appointment-slot form { margin: 0; flex: 0 0 auto; }
.school-appointment-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 5px;
  padding: 22px;
  color: #66645e;
}
.school-appointment-empty strong { color: #272725; }
.school-appointment-history {
  margin-top: 16px;
  padding: 17px;
}
.school-appointment-history h2 { margin: 0 0 12px; font-size: 16px; color: #222220; }
.school-appointment-history table { width: 100%; border-collapse: collapse; }
.school-appointment-history th,
.school-appointment-history td { padding: 11px 10px; border-bottom: 1px solid #eceae6; text-align: left; font-size: 12px; }
.school-appointment-history th { color: #77746d; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.school-appointment-history .appointment-status,
.appointment-review-card .appointment-status {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  border: 1px solid #deddd8;
  background: #f5f4f1;
}
.school-appointment-history .appointment-pending { background:#fff8e8; color:#805d11; border-color:#f2dfae; }
.school-appointment-history .appointment-confirmed { background:#edf5ef; color:#356047; border-color:#cfe0d4; }
.school-appointment-history .appointment-refused,
.school-appointment-history .appointment-expired,
.school-appointment-history .appointment-cancelled { background:#f7efef; color:#7b4747; border-color:#ead1d1; }
.appointment-review-card { max-width: 620px; }
.appointment-review-summary {
  display: grid;
  gap: 6px;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid #dfded9;
  border-radius: 14px;
  background: #f7f6f3;
}
.appointment-review-summary strong { font-size: 16px; color: #20201e; }
.appointment-review-summary span { font-weight: 700; color: #3f3f3b; }
.appointment-review-summary small { color: #77746d; }

@media (max-width: 700px) {
  .school-appointment-grid { grid-template-columns: 1fr; }
  .school-appointment-slot { align-items: flex-start; flex-direction: column; }
  .school-appointment-slot form,
  .school-appointment-slot .button { width: 100%; }
}

/* v1.19.0 — calendrier mensuel espace établissement */
.appointment-calendar-card { margin-top:14px; padding:18px; background:#fff; border:1px solid #dfded9; border-radius:18px; box-shadow:0 8px 24px rgba(34,34,30,.045); }
.appointment-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; }
.appointment-calendar-nav h2 { margin:0; color:#20201e; font-size:20px; text-transform:capitalize; }
.appointment-calendar-nav .button { min-width:42px; justify-content:center; font-size:22px; }
.appointment-calendar-weekdays,.appointment-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; }
.appointment-calendar-weekdays { margin-bottom:7px; }
.appointment-calendar-weekdays span { text-align:center; color:#77756e; font-size:10px; font-weight:900; text-transform:uppercase; }
.appointment-calendar-day { min-height:82px; border:1px solid #e0dfda; border-radius:13px; background:#f5f4f1; overflow:hidden; }
.appointment-calendar-day > div,.appointment-calendar-day form,.appointment-calendar-day button { width:100%; height:100%; min-height:82px; box-sizing:border-box; }
.appointment-calendar-day > div,.appointment-calendar-day button { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:7px; padding:10px; }
.appointment-calendar-day button { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; text-align:left; }
.appointment-calendar-day button:hover { box-shadow:inset 0 0 0 2px currentColor; }
.appointment-calendar-day strong { font-size:17px; }
.appointment-calendar-day span { font-size:10px; font-weight:850; }
.appointment-calendar-available { color:#285a3b; background:#eaf5ed; border-color:#bcd9c4; }
.appointment-calendar-pending { color:#805d11; background:#fff6dd; border-color:#efd99c; }
.appointment-calendar-confirmed { color:#8f2020; background:#ffe3e3; border-color:#e69a9a; }
.appointment-calendar-expired,.appointment-calendar-unavailable { color:#8a8880; background:#f1f0ed; border-color:#e2e0db; }
.appointment-calendar-today { box-shadow:inset 0 0 0 2px #222; }
.appointment-calendar-day-empty { visibility:hidden; }
.appointment-calendar-legend { display:flex; flex-wrap:wrap; gap:9px 16px; margin-top:14px; color:#64625d; font-size:11px; font-weight:750; }
.appointment-calendar-legend span::before { content:''; display:inline-block; width:9px; height:9px; margin-right:6px; border-radius:50%; background:#d5d3cd; }
.appointment-calendar-legend .appointment-legend-available::before { background:#72aa80; }
.appointment-calendar-legend .appointment-legend-pending::before { background:#dcaf46; }
.appointment-calendar-legend .appointment-legend-confirmed::before { background:#cf3f3f; }
@media (max-width:700px) {
  .appointment-calendar-card { padding:12px; }
  .appointment-calendar-weekdays,.appointment-calendar-grid { gap:3px; }
  .appointment-calendar-day,.appointment-calendar-day > div,.appointment-calendar-day form,.appointment-calendar-day button { min-height:59px; }
  .appointment-calendar-day > div,.appointment-calendar-day button { padding:6px 4px; }
  .appointment-calendar-day span { font-size:0; }
  .appointment-calendar-day span::after { content:'•'; font-size:13px; }
}

/* v1.17.5 — validation des articles par l’établissement */
.catalog-choice-public-body .auth-shell{max-width:980px;width:min(980px,calc(100% - 28px))}
.catalog-choice-card{max-width:none}
.catalog-choice-form{display:grid;gap:18px}
.catalog-choice-contact{display:grid;gap:7px;font-weight:800}
.catalog-choice-contact input{width:100%;box-sizing:border-box}
.catalog-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.catalog-choice-item{display:grid;grid-template-columns:auto 86px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid #dddeda;border-radius:18px;background:#fff;cursor:pointer}
.catalog-choice-item input{width:21px;height:21px;margin:0;accent-color:#111}
.catalog-choice-media{width:86px;height:72px;border-radius:13px;overflow:hidden;background:#f1f1ee;display:grid;place-items:center}
.catalog-choice-media img{width:100%;height:100%;object-fit:cover}
.catalog-choice-preview{position:relative;padding:0;border:1px solid transparent;appearance:none;cursor:zoom-in}
.catalog-choice-preview:hover,.catalog-choice-preview:focus-visible{border-color:#171717;box-shadow:0 0 0 3px rgba(23,23,23,.12);outline:none}
.catalog-choice-preview em{position:absolute;right:4px;bottom:4px;padding:3px 5px;border-radius:5px;background:rgba(23,23,23,.86);color:#fff;font-size:8px;font-style:normal;font-weight:900;line-height:1;opacity:0;transition:opacity .15s ease}
.catalog-choice-preview:hover em,.catalog-choice-preview:focus-visible em{opacity:1}
.catalog-choice-no-image{font-size:11px;font-weight:900;color:#777}
.catalog-choice-copy{display:grid;gap:4px;min-width:0}
.catalog-choice-copy strong{font-size:15px;color:#171717}
.catalog-choice-copy small{font-size:12px;color:#6e6e69;line-height:1.35}
.catalog-choice-copy b{font-size:14px;color:#171717}
.catalog-choice-result-card{text-align:center}
@media(max-width:720px){.catalog-choice-list{grid-template-columns:1fr}.catalog-choice-item{grid-template-columns:auto 70px minmax(0,1fr)}.catalog-choice-media{width:70px;height:62px}}


/* v1.17.6 — validation établissement : choix + prix familles */
.catalog-choice-price-help{display:grid;gap:5px;padding:13px 15px;border:1px solid #d9e3e8;border-radius:15px;background:#f4f7f8;color:#33434b;line-height:1.45}
.catalog-choice-price-help strong{font-size:14px;color:#1f2c32}
.catalog-choice-price-help span{font-size:12px}
.catalog-choice-item{grid-template-columns:70px 86px minmax(0,1fr)}
.catalog-choice-check{display:grid;justify-items:center;gap:5px;font-size:10px;font-weight:900;color:#686863;text-transform:uppercase;letter-spacing:.04em}
.catalog-choice-pricing{display:grid;grid-template-columns:minmax(130px,.85fr) minmax(150px,1fr);gap:10px;margin-top:7px;align-items:end}
.catalog-choice-fixed-price{display:grid;gap:3px;padding:8px 10px;border-radius:11px;background:#f2f2ef;border:1px solid #e1e1dd}
.catalog-choice-fixed-price small{font-size:10px!important;text-transform:uppercase;letter-spacing:.03em;color:#777771!important}
.catalog-choice-fixed-price b{font-size:14px!important}
.catalog-choice-sale-price{display:grid;gap:4px;font-weight:800;font-size:11px;color:#343431}
.catalog-choice-sale-price input{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #cfd0cb;border-radius:10px;padding:8px 10px;background:#fff;font:inherit;font-size:14px;font-weight:800;color:#171717}
.catalog-choice-sale-price input:focus{outline:2px solid #8ca6b3;outline-offset:1px}
@media(max-width:720px){.catalog-choice-item{grid-template-columns:55px 70px minmax(0,1fr)}.catalog-choice-pricing{grid-template-columns:1fr}.catalog-choice-check{font-size:9px}}

/* v1.17.8 — validation catalogue dans l'espace établissement */
.school-catalog-grid{display:grid;gap:18px;margin-top:16px}
.school-catalog-choice-card{display:grid;gap:16px;padding:20px;border:1px solid #dddeda;border-radius:22px;background:#fff;box-shadow:0 8px 24px rgba(30,34,38,.045)}
.school-catalog-choice-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.school-catalog-choice-head h2{margin:7px 0 4px;font-size:22px;color:#171717}
.school-catalog-choice-head p{margin:0;color:#686863;line-height:1.45}
.school-catalog-choice-head>small{white-space:nowrap;color:#85857f;font-size:11px}
.school-catalog-history{margin-top:22px;padding:18px;border:1px solid #dddeda;border-radius:22px;background:#fff}
.school-catalog-history h2{margin:0 0 12px;font-size:18px;color:#171717}
.school-catalog-choice-card .catalog-choice-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:820px){.school-catalog-choice-head{display:grid}.school-catalog-choice-head>small{white-space:normal}.school-catalog-choice-card .catalog-choice-list{grid-template-columns:1fr}}



/* v1.17.9 — bibliothèque de documents établissement */
.school-documents-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}
.school-document-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  background: #fff;
  border: 1px solid #deded9;
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 8px 24px rgba(31, 35, 40, .045);
}
.school-document-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: #f1f1ed;
  color: #171717;
}
.school-document-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.school-document-content { min-width: 0; }
.school-document-type {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f1f1ed;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.school-document-content h2 {
  margin: 7px 0 4px;
  font-size: 16px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.school-document-content p {
  margin: 0;
  color: #74746e;
  font-size: 12px;
}
.school-document-download { white-space: nowrap; }
@media (max-width: 720px) {
  .school-documents-grid { grid-template-columns: 1fr; }
  .school-document-card {
    grid-template-columns: 46px minmax(0, 1fr);
  }
  .school-document-icon { width: 44px; height: 44px; }
  .school-document-download {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }
}

/* v1.18.3 — fiche établissement modifiable dans l'espace établissement */
.school-profile-form {
  display: grid;
  gap: 18px;
  max-width: 1040px;
}
.school-profile-card {
  background: #fff;
  border: 1px solid #deded9;
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 8px 24px rgba(31, 35, 40, .045);
}
.school-profile-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.school-profile-card h2 {
  margin: 4px 0 0;
  font-size: 20px;
  color: #171717;
}
.school-profile-eyebrow {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  color: #777771;
}
.school-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
}
.school-profile-grid label {
  display: grid;
  gap: 6px;
  align-content: start;
  font-size: 12px;
  font-weight: 800;
  color: #343431;
}
.school-profile-grid label.wide { grid-column: 1 / -1; }
.school-profile-grid input {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid #cecec8;
  border-radius: 11px;
  padding: 9px 11px;
  background: #fff;
  color: #171717;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
}
.school-profile-grid input[readonly] {
  background: #f3f3ef;
  color: #6f6f69;
}
.school-profile-grid input:focus {
  outline: 2px solid #8ca6b3;
  outline-offset: 1px;
}
.school-profile-grid small,
.school-profile-help {
  margin: 0;
  color: #777771;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
}
.school-profile-help { margin: -4px 0 16px; }
.school-profile-actions {
  display: flex;
  justify-content: flex-end;
  padding-bottom: 4px;
}
@media (max-width: 720px) {
  .school-profile-grid { grid-template-columns: 1fr; }
  .school-profile-grid label.wide { grid-column: auto; }
  .school-profile-card { padding: 16px; }
  .school-profile-actions .button { width: 100%; justify-content: center; }
}

/* v1.18.4 — moyens de règlement modifiables par l'établissement */
.school-profile-payment-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0 16px;
}
.school-profile-payment-options label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid #d6d6d0;
  border-radius: 12px;
  background: #f8f8f5;
  color: #292927;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.school-profile-payment-options input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: #171717;
}
.school-profile-payment-link { margin-top: 2px; }
.school-profile-payment-test {
  width: fit-content;
  color: #333;
  font-size: 11px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 720px) {
  .school-profile-payment-options { display: grid; grid-template-columns: 1fr; }
  .school-profile-payment-options label { width: 100%; box-sizing: border-box; }
}
