/* APP RENTAL — Design system partagé Admin / Gestion / Owner — V3 */
:root {
  --app-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --app-bg: #f5f7fb;
  --app-surface: #ffffff;
  --app-surface-soft: #f8fafc;
  --app-text: #172033;
  --app-text-muted: #667085;
  --app-border: #dce2ea;
  --app-border-strong: #c7d0dc;
  --app-primary: var(--rental-primary, #385bf8);
  --app-primary-hover: color-mix(in srgb, var(--app-primary) 88%, #000);
  --app-danger: #c9364f;
  --app-success: #16835f;
  --app-warning: #a86800;
  --app-radius-sm: 8px;
  --app-radius: 12px;
  --app-radius-lg: 16px;
  --app-shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);
  --app-shadow: 0 8px 24px rgba(16, 24, 40, .08);
  --app-control-h: 40px;
  --app-control-h-compact: 36px;
  --app-space-1: 4px;
  --app-space-2: 8px;
  --app-space-3: 12px;
  --app-space-4: 16px;
  --app-space-5: 20px;
  --app-space-6: 24px;
  --app-content-max: 1600px;
}

html[data-app-page] {
  font-family: var(--app-font);
  color: var(--app-text);
  background: var(--app-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

html[data-app-page] body {
  margin: 0;
  color: var(--app-text);
  background: var(--app-bg);
  font-family: var(--app-font);
  font-size: 14px;
  line-height: 1.45;
}

html[data-app-page] *,
html[data-app-page] *::before,
html[data-app-page] *::after { box-sizing: border-box; }

html[data-app-page] h1,
html[data-app-page] h2,
html[data-app-page] h3,
html[data-app-page] h4,
html[data-app-page] .page-title,
html[data-app-page] .admin-welcome-title,
html[data-app-page] .owner-page-title,
html[data-app-page] .topbar h1 {
  margin: 0;
  color: var(--app-text);
  font-family: var(--app-font);
  font-weight: 700;
  letter-spacing: -.02em;
}
html[data-app-page] h1,
html[data-app-page] .page-title,
html[data-app-page] .admin-welcome-title,
html[data-app-page] .owner-page-title,
html[data-app-page] .topbar h1 { font-size: clamp(22px, 2vw, 28px); line-height: 1.2; }
html[data-app-page] h2 { font-size: 20px; line-height: 1.25; }
html[data-app-page] h3 { font-size: 17px; line-height: 1.3; }
html[data-app-page] h4 { font-size: 14px; line-height: 1.35; }

html[data-app-page] .subtitle,
html[data-app-page] .muted,
html[data-app-page] .owner-sync-status,
html[data-app-page] .admin-field-help,
html[data-app-page] .owner-field-help,
html[data-app-page] .field-help,
html[data-app-page] small { color: var(--app-text-muted); }

html[data-app-page] label {
  display: block;
  margin: 0 0 6px;
  color: #344054;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

html[data-app-page] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html[data-app-page] select,
html[data-app-page] textarea {
  width: 100%;
  min-height: var(--app-control-h);
  margin: 0;
  padding: 8px 11px;
  border: 1px solid var(--app-border-strong);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  color: var(--app-text);
  font: inherit;
  line-height: 1.3;
  box-shadow: var(--app-shadow-sm);
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
html[data-app-page] textarea { min-height: 96px; resize: vertical; }
html[data-app-page] select { cursor: pointer; }
html[data-app-page] input::placeholder,
html[data-app-page] textarea::placeholder { color: #98a2b3; }
html[data-app-page] input:focus,
html[data-app-page] select:focus,
html[data-app-page] textarea:focus {
  outline: 0;
  border-color: var(--app-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-primary) 18%, transparent);
}
html[data-app-page] input:disabled,
html[data-app-page] select:disabled,
html[data-app-page] textarea:disabled {
  cursor: not-allowed;
  background: #f2f4f7;
  color: #667085;
}

html[data-app-page] button,
html[data-app-page] .btn {
  min-height: var(--app-control-h);
  padding: 8px 14px;
  border: 1px solid var(--app-border-strong);
  border-radius: var(--app-radius-sm);
  background: var(--app-surface);
  color: #344054;
  font: 600 14px/1.2 var(--app-font);
  box-shadow: var(--app-shadow-sm);
  cursor: pointer;
  transition: transform .12s ease, border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
html[data-app-page] button:hover,
html[data-app-page] .btn:hover { border-color: #98a2b3; background: var(--app-surface-soft); }
html[data-app-page] button:active,
html[data-app-page] .btn:active { transform: translateY(1px); }
html[data-app-page] button:focus-visible,
html[data-app-page] .btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-primary) 22%, transparent); outline-offset: 2px; }
html[data-app-page] .btn.primary,
html[data-app-page] .btn.active,
html[data-app-page] button.primary,
html[data-app-page] button.active {
  border-color: var(--app-primary);
  background: var(--app-primary);
  color: #fff;
}
html[data-app-page] .btn.primary:hover,
html[data-app-page] .btn.active:hover,
html[data-app-page] button.primary:hover,
html[data-app-page] button.active:hover { background: var(--app-primary-hover); }
html[data-app-page] .btn.danger,
html[data-app-page] button.danger { border-color: var(--app-danger); background: var(--app-danger); color: #fff; }
html[data-app-page] button:disabled,
html[data-app-page] .btn:disabled { cursor: not-allowed; opacity: .56; transform: none; }

html[data-app-page] .container,
html[data-app-page] .main,
html[data-app-page] .admin-main-content,
html[data-app-page] .owner-content {
  color: var(--app-text);
}
html[data-app-page] .admin-main-content,
html[data-app-page] .owner-content,
html[data-app-page="gestion"] .main,
html[data-app-page="profitability"] .main { min-width: 0; }

html[data-app-page="legal-center"] .topbar,
html[data-app-page="legal-center"] .owner-topbar,
html[data-app-page="legal-center"] .admin-welcome-card,
html[data-app-page="legal-center"] .page-header {
  min-height: 72px;
  padding: 0px;
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-lg);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
}

.topbar {
  padding-bottom: 0px !important;
}

html[data-app-page] .card,
html[data-app-page] .panel,
html[data-app-page] .box,
html[data-app-page] .summary-card,
html[data-app-page] .owner-view-panel,
html[data-app-page] .admin-logement-modal-section,
html[data-app-page] .section-card,
html[data-app-page] .filters,
html[data-app-page] .toolbar {
  /* border-color: var(--app-border); */
  /* border-radius: var(--app-radius); */
  /* background: var(--app-surface); */
  /* box-shadow: var(--app-shadow-sm); */
}

html[data-app-page] .summary-grid,
html[data-app-page] .summary {
  gap: var(--app-space-3);
}
html[data-app-page] .summary-card {
  min-height: 92px;
  padding: var(--app-space-4);
  text-align: left;
}
html[data-app-page] .summary-number {
  margin: 0 0 4px;
  color: var(--app-text);
  font-size: 24px;
  font-weight: 750;
  line-height: 1.1;
}
html[data-app-page] .summary-label { color: var(--app-text-muted); font-size: 12px; font-weight: 600; }

html[data-app-page] table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--app-text);
  font-size: 13px;
}
html[data-app-page] th {
  padding: 11px 12px;
  border-bottom: 1px solid var(--app-border-strong);
  background: var(--app-surface-soft);
  color: #475467;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .01em;
  text-align: left;
  white-space: nowrap;
}
html[data-app-page] td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--app-border);
  background: var(--app-surface);
  vertical-align: middle;
}
html[data-app-page] tbody tr:hover td { background: #fafbfc; }

html[data-app-page] .modal-backdrop,
html[data-app-page] .owner-modal-backdrop {
  padding: 24px;
  background: rgba(15, 23, 42, .48);
  backdrop-filter: blur(3px);
}
html[data-app-page] .admin-modal,
html[data-app-page] .owner-modal,
html[data-app-page] .modal,
html[data-app-page] [role="dialog"] {
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius-lg);
  background: var(--app-surface);
  color: var(--app-text);
  box-shadow: 0 24px 64px rgba(15, 23, 42, .22);
}
html[data-app-page] .admin-modal,
html[data-app-page] .owner-modal { padding: 24px; }
html[data-app-page] .modal-actions,
html[data-app-page] .owner-modal-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}
html[data-app-page] .rental-modal-close {
  min-width: 36px;
  min-height: 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 999px;
  font-size: 22px;
  line-height: 1;
}

html[data-app-page] .admin-modal-grid,
html[data-app-page] .owner-modal-grid,
html[data-app-page] .form-grid { gap: var(--app-space-4); }
html[data-app-page] .form-message,
html[data-app-page] .message {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: var(--app-radius-sm);
  font-size: 13px;
}

html[data-app-page] .toolbar,
html[data-app-page] .filters,
html[data-app-page] .toolbar-main-row,
html[data-app-page] #adminReservationTopFilters,
html[data-app-page] .owner-header-actions {
  gap: var(--app-space-3);
}
html[data-app-page] .toolbar,
html[data-app-page] .filters { padding: var(--app-space-3); }
html[data-app-page] .toolbar select,
html[data-app-page] .filters select,
html[data-app-page] #adminReservationTopFilters select,
html[data-app-page] .owner-header-actions select { min-height: var(--app-control-h-compact); }

html[data-app-page] .badge,
html[data-app-page] .pill,
html[data-app-page] .status,
html[data-app-page] [class*="status-badge"] {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

html[data-app-page] .hidden { display: none; }

@media (max-width: 900px) {
  html[data-app-page="legal-center"] .topbar,
  html[data-app-page="legal-center"] .owner-topbar,
  html[data-app-page="legal-center"] .admin-welcome-card,
  html[data-app-page="legal-center"] .page-header { min-height: 0; padding: 14px; border-radius: 12px; }
  html[data-app-page] .admin-modal,
  html[data-app-page] .owner-modal { width: min(100%, 720px); max-height: calc(100dvh - 24px); padding: 18px; overflow: auto; }
  html[data-app-page] .modal-backdrop,
  html[data-app-page] .owner-modal-backdrop { padding: 12px; }
}

@media (max-width: 640px) {
  :root { --app-control-h: 42px; }
  html[data-app-page] body { font-size: 14px; }
  html[data-app-page] h1,
  html[data-app-page] .page-title,
  html[data-app-page] .admin-welcome-title,
  html[data-app-page] .owner-page-title,
  html[data-app-page] .topbar h1 { font-size: 22px; }
  html[data-app-page] .modal-actions,
  html[data-app-page] .owner-modal-actions { flex-direction: column-reverse; }
  html[data-app-page] .modal-actions .btn,
  html[data-app-page] .owner-modal-actions .btn { width: 100%; }
}

/*
 * Pont de priorité temporaire : les bundles historiques Admin et Owner contiennent
 * encore des déclarations !important. Ces règles limitées aux primitives du design
 * system garantissent une apparence commune jusqu'au découpage complet des bundles.
 */
html[data-app-page] body {
  color: var(--app-text) !important;
  background: var(--app-bg) !important;
  font-family: var(--app-font) !important;
  font-size: 14px !important;
}
html[data-app-page] h1,
html[data-app-page] h2,
html[data-app-page] h3,
html[data-app-page] h4,
html[data-app-page] .page-title,
html[data-app-page] .admin-welcome-title,
html[data-app-page] .owner-page-title,
html[data-app-page] .topbar h1 {
  color: var(--app-text) !important;
  font-family: var(--app-font) !important;
  font-weight: 700 !important;
  letter-spacing: -.02em !important;
}
html[data-app-page] h1,
html[data-app-page] .page-title,
html[data-app-page] .admin-welcome-title,
html[data-app-page] .owner-page-title,
html[data-app-page] .topbar h1 {
  font-size: clamp(22px, 2vw, 28px) !important;
  line-height: 1.2 !important;
}
html[data-app-page] label {
  color: #344054 !important;
  font-family: var(--app-font) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
html[data-app-page] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html[data-app-page] select,
html[data-app-page] textarea {
  min-height: var(--app-control-h) !important;
  padding: 8px 11px !important;
  border: 1px solid var(--app-border-strong) !important;
  border-radius: var(--app-radius-sm) !important;
  background: var(--app-surface) !important;
  color: var(--app-text) !important;
  font: inherit !important;
  box-shadow: var(--app-shadow-sm) !important;
}
html[data-app-page] input:focus,
html[data-app-page] select:focus,
html[data-app-page] textarea:focus {
  border-color: var(--app-primary) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-primary) 18%, transparent) !important;
}
html[data-app-page] .btn,
html[data-app-page] button:not(.rental-modal-close):not([class*="calendar"]):not([class*="date-picker"]) {
  min-height: var(--app-control-h) !important;
  padding: 8px 14px !important;
  border-radius: var(--app-radius-sm) !important;
  font-family: var(--app-font) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
html[data-app-page] .btn.primary,
html[data-app-page] .btn.active,
html[data-app-page] button.primary,
html[data-app-page] button.active {
  border-color: var(--app-primary) !important;
  background: var(--app-primary) !important;
  color: #fff !important;
}
html[data-app-page="legal-center"] .topbar,
html[data-app-page="legal-center"] .owner-topbar,
html[data-app-page="legal-center"] .admin-welcome-card,
html[data-app-page="legal-center"] .page-header {
  border-color: var(--app-border) !important;
  border-radius: var(--app-radius) !important;
  background: var(--app-surface) !important;
  box-shadow: var(--app-shadow-sm) !important;
}
html[data-app-page] .admin-modal,
html[data-app-page] .owner-modal,
html[data-app-page] [role="dialog"] {
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius-lg) !important;
  background: var(--app-surface) !important;
  color: var(--app-text) !important;
  box-shadow: 0 24px 64px rgba(15, 23, 42, .22) !important;
}


/* V3 — Correction des boutons de sélection de dates (ne pas les transformer en bouton primaire bleu) */
html[data-app-page] button.admin-date-picker-card.active,
html[data-app-page] button.owner-date-picker-card.active {
  background: var(--app-surface) !important;
  color: var(--app-text) !important;
  border: 1px solid var(--app-primary) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-primary) 14%, transparent) !important;
}

html[data-app-page] button.admin-date-picker-card.active strong,
html[data-app-page] button.owner-date-picker-card.active strong,
html[data-app-page] button.admin-date-picker-card.active .admin-date-picker-hint,
html[data-app-page] button.owner-date-picker-card.active .owner-date-picker-hint,
html[data-app-page] button.admin-date-picker-card.active .admin-date-picker-label,
html[data-app-page] button.owner-date-picker-card.active .owner-date-picker-label {
  color: var(--app-text) !important;
}

html[data-app-page] button.admin-date-picker-card,
html[data-app-page] button.owner-date-picker-card {
  justify-items: start !important;
  align-content: center !important;
}


/* V3 — SYSTÈME DE FORMULAIRE ADMIN UNIQUE
   Réservations, Configuration, Plateformes, Accès, Propriétaires et Logements. */
html[data-app-page="admin"]{
  --admin-form-bg:#fff;
  --admin-form-soft:#f8f9fc;
  --admin-form-border:#dce3f0;
  --admin-form-text:#18233b;
  --admin-form-muted:#66728b;
  --admin-form-radius:14px;
  --admin-form-section-radius:18px;
  --admin-form-field-height:44px;
}

/* Conteneurs de formulaires et panneaux de paramètres. */
html[data-app-page="admin"] :where(
  .admin-unified-form,
  .admin-param-modal,
  .admin-logement-modal,
  #adminReservationModal .admin-modal,
  .admin-tech-panel.admin-param-modern-panel,
  .admin-param-modern-panel
){
  color:var(--admin-form-text)!important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}

html[data-app-page="admin"] :where(
  .admin-param-modal-section,
  .admin-logement-modal-section,
  #adminReservationModal .admin-logement-modal-section,
  .admin-param-subsection
){
  width:100%!important;
  margin:14px 0 0!important;
  padding:18px!important;
  background:#fff!important;
  border:0!important;
  border-radius:var(--admin-form-section-radius)!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}

html[data-app-page="admin"] :where(
  .admin-param-modal-section:first-of-type,
  .admin-logement-modal-section:first-of-type,
  #adminReservationModal .admin-logement-modal-section:first-of-type,
  .admin-param-subsection-first
){margin-top:0!important;}

/* Titres et textes. */
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal) > h3{
  margin:0 44px 8px 0!important;
  color:var(--admin-form-text)!important;
  font-size:24px!important;
  line-height:1.2!important;
  font-weight:850!important;
  letter-spacing:0!important;
}
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal) > p{
  margin:0 44px 16px 0!important;
  color:var(--admin-form-muted)!important;
  font-size:14px!important;
  line-height:1.5!important;
}
html[data-app-page="admin"] :where(.admin-param-modal-section,.admin-logement-modal-section,.admin-param-subsection) > h4,
html[data-app-page="admin"] :where(.admin-param-modal-section,.admin-logement-modal-section,.admin-param-subsection) > h3{
  margin:0 0 14px!important;
  color:var(--admin-form-text)!important;
  font-size:16px!important;
  line-height:1.25!important;
  font-weight:850!important;
}

/* Grille commune. */
html[data-app-page="admin"] :where(
  .admin-param-modal-grid,
  .admin-logement-modal-grid,
  .admin-modal-grid,
  .admin-settings-grid,
  .admin-form-grid
){
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:start!important;
  width:100%!important;
  min-width:0!important;
}
html[data-app-page="admin"] :where(
  .admin-param-modal-grid,
  .admin-logement-modal-grid,
  .admin-modal-grid,
  .admin-settings-grid,
  .admin-form-grid
) > *{
  min-width:0!important;
  margin:0!important;
}
html[data-app-page="admin"] :where(.admin-param-modal-grid,.admin-logement-modal-grid,.admin-modal-grid,.admin-settings-grid,.admin-form-grid) > .full{
  grid-column:1/-1!important;
}

/* Labels identiques partout. */
html[data-app-page="admin"] :where(
  .admin-unified-form,
  .admin-param-modal,
  .admin-logement-modal,
  #adminReservationModal .admin-modal,
  .admin-param-modern-panel,
  #content
) label:not(.checkline):not(.admin-logement-switch){
  display:block!important;
  margin:0 0 7px!important;
  color:var(--admin-form-text)!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:750!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

/* Champs identiques partout. */
html[data-app-page="admin"] :where(
  .admin-unified-form,
  .admin-param-modal,
  .admin-logement-modal,
  #adminReservationModal .admin-modal,
  .admin-param-modern-panel,
  #content
) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:var(--admin-form-field-height)!important;
  padding:10px 12px!important;
  color:var(--admin-form-text)!important;
  background:#fff!important;
  border:1px solid #ced7e8!important;
  border-radius:var(--admin-form-radius)!important;
  box-shadow:none!important;
  font:inherit!important;
  font-size:14px!important;
  line-height:1.3!important;
  box-sizing:border-box!important;
}
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal,.admin-param-modern-panel,#content) textarea{
  min-height:96px!important;
  height:auto!important;
  resize:vertical!important;
}
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal,.admin-param-modern-panel,#content) :where(input,select,textarea):focus{
  outline:3px solid color-mix(in srgb,var(--app-primary) 16%,transparent)!important;
  outline-offset:0!important;
  border-color:var(--app-primary)!important;
  background:#fff!important;
}
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal,.admin-param-modern-panel,#content) :where(input,select,textarea):disabled{
  color:#66728b!important;
  background:#f1f3f7!important;
  border-color:#d8dee9!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

/* Aides et messages. */
html[data-app-page="admin"] :where(.admin-field-help,.field-help,.admin-table-subtitle){
  margin-top:6px!important;
  color:var(--admin-form-muted)!important;
  font-size:12px!important;
  line-height:1.4!important;
  font-weight:500!important;
}
html[data-app-page="admin"] :where(.form-message,.message,.admin-message){
  margin-top:14px!important;
  padding:12px 14px!important;
  border-radius:12px!important;
  border:1px solid var(--admin-form-border)!important;
  font-size:13px!important;
  line-height:1.45!important;
}
html[data-app-page="admin"] :where(.form-message,.message,.admin-message):empty{display:none!important;}

/* Switches et cases à cocher. */
html[data-app-page="admin"] :where(.admin-logement-switch,.checkline){
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  margin:0!important;
  padding:12px 14px!important;
  color:var(--admin-form-text)!important;
  background:var(--admin-form-soft)!important;
  border:1px solid var(--admin-form-border)!important;
  border-radius:14px!important;
  box-sizing:border-box!important;
}
html[data-app-page="admin"] :where(.admin-logement-switch,.checkline) input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  margin:1px 0 0!important;
  accent-color:var(--app-primary)!important;
}

/* Boutons et barre d'actions identiques. */
html[data-app-page="admin"] :where(.modal-actions,.admin-actions,.admin-client-head-actions){
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
  gap:10px!important;
}
html[data-app-page="admin"] .modal-actions{
  position:sticky!important;
  bottom:-1px!important;
  z-index:3!important;
  margin:18px -20px -20px!important;
  padding:14px 20px!important;
  background:rgba(255,255,255,.96)!important;
  border-top:1px solid var(--admin-form-border)!important;
  backdrop-filter:blur(8px)!important;
}
html[data-app-page="admin"] :where(.admin-unified-form,.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal,.admin-param-modern-panel) :where(button,.btn){
  min-height:42px!important;
  padding:9px 16px!important;
  border-radius:12px!important;
  font-size:14px!important;
  font-weight:750!important;
}

/* Panneaux Access, Plateformes, Configuration, Propriétaires et Logements. */
html[data-app-page="admin"] .admin-param-modern-panel{
  width:100%!important;
  padding:20px!important;
  background:#fff!important;
  border:1px solid var(--admin-form-border)!important;
  border-radius:20px!important;
  box-shadow:0 12px 35px rgba(24,35,59,.06)!important;
}
html[data-app-page="admin"] .admin-param-modern-hero{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin:0 0 18px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
html[data-app-page="admin"] .admin-tech-panel-title{
  margin:0!important;
  color:var(--admin-form-text)!important;
  font-size:24px!important;
  line-height:1.2!important;
  font-weight:850!important;
}

/* Modal unique sur toutes les fiches. */
html[data-app-page="admin"] :where(.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal){
  width:min(760px,calc(100vw - 28px))!important;
  max-width:min(760px,calc(100vw - 28px))!important;
  max-height:calc(100dvh - 28px)!important;
  padding:20px!important;
  overflow:auto!important;
  background:#f8f9fc!important;
  border:1px solid var(--admin-form-border)!important;
  border-radius:20px!important;
  box-shadow:0 24px 70px rgba(24,35,59,.22)!important;
}
html[data-app-page="admin"] .admin-param-large-modal,
html[data-app-page="admin"] .admin-logement-modal{
  width:min(920px,calc(100vw - 28px))!important;
  max-width:min(920px,calc(100vw - 28px))!important;
}

@media(max-width:760px){
  html[data-app-page="admin"] :where(.admin-param-modal-grid,.admin-logement-modal-grid,.admin-modal-grid,.admin-settings-grid,.admin-form-grid){
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  html[data-app-page="admin"] :where(.admin-param-modal-section,.admin-logement-modal-section,#adminReservationModal .admin-logement-modal-section,.admin-param-subsection){
    padding:14px!important;
    border-radius:15px!important;
  }
  html[data-app-page="admin"] :where(.admin-param-modal,.admin-logement-modal,#adminReservationModal .admin-modal){
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    padding:14px!important;
    border-radius:18px!important;
  }
  html[data-app-page="admin"] .modal-actions{
    margin:16px -14px -14px!important;
    padding:12px 14px!important;
  }
  html[data-app-page="admin"] .admin-param-modern-hero{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
}


/* ADMIN — structure partagée avec Gestion > Analyse CA. */
html[data-app-page="admin"] body {
  overflow-x: hidden;
}

html[data-app-page="admin"] .app-shell.admin-shell {
  display: grid !important;
  grid-template-columns: var(--app-sidebar-width) minmax(0, 1fr) !important;
  gap: 0 !important;
  min-width: 0 !important;
  min-height: 100vh !important;
}

html.app-sidebar-collapsed[data-app-page="admin"] .app-shell.admin-shell {
  grid-template-columns: var(--app-sidebar-collapsed-width) minmax(0, 1fr) !important;
}

html[data-app-page="admin"] .admin-main-content.main {
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  padding: 16px !important;
  margin: 0 !important;
}

html[data-app-page="admin"] .topbar {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-app-page="admin"] #adminReservationTopCard.top-card {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 72px !important;
  display: grid !important;
  align-items: center !important;
  gap: 18px 24px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius-lg) !important;
  background: var(--app-surface) !important;
  box-shadow: var(--app-shadow-sm) !important;
}

html[data-app-page="admin"] #adminReservationTopCard.hidden,
html[data-app-page="admin"] #adminReservationTopCard.admin-top-card-hidden {
  display: none !important;
}

html[data-app-page="admin"] #adminReservationTopFilters {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-app-page="admin"] #adminReservationTopFilters.hidden {
  display: none !important;
}

html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field {
  display: grid !important;
  grid-template-rows: 46px !important;
  align-content: end !important;
  gap: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field > span {
  min-height: 0 !important;
}

html[data-app-page="admin"] #adminReservationTopFilters select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 46px !important;
}

/* Desktop large : titre à gauche, tous les filtres sur une ligne à droite. */
@media (min-width: 1280px) {
  html[data-app-page="admin"] #adminReservationTopCard.top-card {
    grid-template-columns: minmax(170px, .8fr) minmax(0, auto) !important;
  }

  html[data-app-page="admin"] #adminReservationTopFilters {
    display: flex !important;
    align-items: end !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    width: auto !important;
    max-width: 100% !important;
  }

  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field {
    flex: 0 0 auto !important;
  }

  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--year { width: 96px !important; }
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--period { width: 145px !important; }
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--property { width: 220px !important; }
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--status { width: 150px !important; }
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--mode { width: 135px !important; }
}

/* Desktop compact : filtres en grille horizontale, jamais un champ par ligne. */
@media (min-width: 900px) and (max-width: 1279px) {
  html[data-app-page="admin"] #adminReservationTopCard.top-card {
    grid-template-columns: 1fr !important;
  }

  html[data-app-page="admin"] #adminReservationTopFilters {
    display: grid !important;
    grid-template-columns: 96px 145px minmax(180px,220px) 150px 135px !important;
    align-items: end !important;
    justify-content: end !important;
    gap: 10px !important;
    width: 100% !important;
  }
}

/* V3 — navigation immédiate et filtres lisibles. */
html[data-app-page="admin"] #adminReservationTopFilters select{
  overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;
}
/* V3.0.0-rc.1 — commandes de vue Réservations visibles et stables. */
html[data-app-page="admin"] .admin-view-glyph{
  width:20px!important;height:20px!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;color:currentColor!important;
  pointer-events:none!important;
}
html[data-app-page="admin"] .admin-view-glyph svg{
  width:20px!important;height:20px!important;display:block!important;overflow:visible!important;
  color:currentColor!important;stroke:currentColor!important;fill:none!important;
  stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;
}
html[data-app-page="admin"] .view-icon-btn[aria-label="Vue cartes"] .admin-view-glyph svg path{
  fill:currentColor!important;stroke:none!important;
}
html[data-app-page="admin"] .view-icon-btn[aria-label="Vue tableau"] .admin-view-glyph svg path,
html[data-app-page="admin"] .view-icon-btn[aria-label="Vue Liste"] .admin-view-glyph svg path,
html[data-app-page="admin"] .view-icon-btn[aria-label="Vue Liste"] .admin-view-glyph svg rect{
  fill:none!important;stroke:currentColor!important;
}
html[data-app-page="admin"] .admin-view-shell{
  width:100%;min-height:150px;display:grid;align-content:start;gap:14px;
  padding:18px;border:1px solid var(--app-border);border-radius:var(--app-radius-lg);
  background:var(--app-surface);box-shadow:var(--app-shadow-sm);
}
html[data-app-page="admin"] .admin-view-shell-status{font-weight:800;color:var(--app-muted)}
html[data-app-page="admin"] .admin-view-shell-lines{display:grid;gap:10px;max-width:760px}
html[data-app-page="admin"] .admin-view-shell-lines span{display:block;height:14px;border-radius:999px;background:var(--app-surface-muted,#eef1f7)}
html[data-app-page="admin"] .admin-view-shell-lines span:nth-child(2){width:84%}
html[data-app-page="admin"] .admin-view-shell-lines span:nth-child(3){width:66%}
html[data-app-page="admin"] .admin-view-error{width:100%;padding:18px;border:1px solid var(--app-danger-border,#efb9b9);border-radius:var(--app-radius-lg);background:var(--app-danger-surface,#fff5f5)}
html[data-app-page="admin"] .admin-view-error p{margin:8px 0 14px}
html[data-app-page="admin"] body.admin-view-data-refreshing #adminReservationTopCard{cursor:progress}
@media (min-width:900px) and (max-width:1279px){
  html[data-app-page="admin"] #adminReservationTopFilters{grid-template-columns:96px 145px minmax(180px,220px) 150px 135px!important}
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--property{min-width:0!important}
}
@media (max-width:899px){
  html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field--property{grid-column:1/-1!important}
}
html[data-app-page="admin"] .admin-technical-controls {
  display: none !important;
}

html[data-app-page="admin"] .admin-content.content {
  min-width: 0 !important;
  padding-top: 16px !important;
}

html[data-app-page="admin"] #summary.hidden,
html[data-app-page="admin"] #summary:empty,
html[data-app-page="admin"] #meta:empty,
html[data-app-page="admin"] #content:empty {
  display: none !important;
}

html[data-app-page="admin"] #summary.summary-grid {
  margin: 0 !important;
}

html[data-app-page="admin"] #meta.meta {
  margin: 0 !important;
}

html[data-app-page="admin"] #content,
html[data-app-page="admin"] #content > * {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 6px;
  box-sizing: border-box !important;
}

html[data-app-page="admin"] .admin-page-flat {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html[data-app-page="admin"] .admin-configuration-panel {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

@media (max-width: 899px) {
  html[data-app-page="admin"] .app-shell.admin-shell {
    display: block !important;
  }

  html[data-app-page="admin"] #adminReservationTopCard.top-card {
    grid-template-columns: 1fr !important;
  }

  html[data-app-page="admin"] #adminReservationTopFilters {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 560px) {
  html[data-app-page="admin"] #adminReservationTopFilters {
    grid-template-columns: 1fr !important;
  }
}

/* APP RENTAL V3 — composants Admin canoniques partagés. */
html[data-app-page="admin"] .admin-extra-types-view{
  width:100%;min-width:0;display:grid;gap:12px;
  padding:16px;background:var(--app-surface);border:1px solid var(--app-border);
  border-radius:var(--app-radius-lg);box-shadow:var(--app-shadow-sm);
}
html[data-app-page="admin"] .admin-extra-types-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
html[data-app-page="admin"] .admin-extra-types-table-wrap{width:100%;min-width:0;overflow-x:auto}
html[data-app-page="admin"] .admin-extra-types-table{min-width:520px}
html[data-app-page="admin"] .admin-extra-types-table th:last-child,
html[data-app-page="admin"] .admin-extra-types-table td:last-child{width:64px;text-align:right}
html[data-app-page="admin"] .admin-extra-types-table input{width:100%}
html[data-app-page="admin"] .admin-standalone-content{width:100%;min-width:0;max-width:none;display:grid;gap:12px}

/* TVA globale : choix standard et valeur personnalisée côte à côte. */
html[data-app-page="admin"] .admin-vat-control{
  display:grid;grid-template-columns:minmax(180px,.8fr) minmax(150px,.55fr);gap:10px;align-items:center;
}
html[data-app-page="admin"] .admin-vat-control > :where(select,input){width:100%;min-width:0}
html[data-app-page="admin"] .admin-vat-control > input[hidden]{display:none!important}

/* Tableaux Admin : même langage visuel épuré que Gestion > Analyse CA. */
html[data-app-page="admin"] #content :where(
  .rental-table-frame,.admin-reference-table-wrap,.admin-modern-table-wrap,
  .admin-business-table-wrap,.admin-log-table-wrap,.admin-param-table-wrap,
  .admin-res-table-wrap,.table-wrap,.journal-table-wrap,.lang-whatsapp-table-wrap
){
  width:100%!important;max-width:100%!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  box-shadow:none!important;overflow-x:auto!important;
}
html[data-app-page="admin"] #content table{
  width:100%!important;max-width:none!important;border-collapse:collapse!important;border-spacing:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  font-variant-numeric:tabular-nums;
}
html[data-app-page="admin"] #content table :where(thead,tr,th,td){border-radius:0!important;box-shadow:none!important}
html[data-app-page="admin"] #content table th{
  padding:11px 12px!important;background:var(--app-surface-soft)!important;color:var(--app-text)!important;
  border:0!important;border-bottom:1px solid var(--app-border)!important;
  text-align:left!important;font-size:12px!important;font-weight:800!important;line-height:1.25!important;white-space:nowrap!important;
}
html[data-app-page="admin"] #content table td{
  padding:11px 12px!important;background:var(--app-surface)!important;color:var(--app-text)!important;
  border:0!important;border-bottom:1px solid var(--app-border)!important;
  vertical-align:middle!important;line-height:1.35!important;
}
html[data-app-page="admin"] #content table tbody tr:last-child > td{border-bottom:0!important}
html[data-app-page="admin"] #content table tbody tr:hover > td{background:var(--app-surface-soft)!important}
html[data-app-page="admin"] #content table :where(.numeric,[data-align="right"]),
html[data-app-page="admin"] #content table th:last-child:empty,
html[data-app-page="admin"] #content table td:last-child:has(button){text-align:right!important}
html[data-app-page="admin"] #content table :where(input[type="number"],.numeric-input){text-align:right!important;font-variant-numeric:tabular-nums}
html[data-app-page="admin"] #content table :where(.col-actions,.action-column,.admin-param-actions,.admin-extra-type-actions){
  text-align:right!important;white-space:nowrap!important;box-shadow:none!important;
}
html[data-app-page="admin"] #content table .col-actions{position:static!important;background:var(--app-surface)!important}

@media(max-width:700px){
  html[data-app-page="admin"] .admin-vat-control{grid-template-columns:1fr}
  html[data-app-page="admin"] .admin-extra-types-view{padding:12px}
}

/* APP RENTAL V3 — filtres Gestion et tableaux Admin sans cadre. */

/* Gestion : même hauteur et mêmes largeurs de filtres que dans Admin. */
html[data-app-page="gestion"] .top-card {
  padding: 0 14px !important;
}

html[data-app-page="gestion"] .filters {
  align-items: end !important;
  gap: 10px !important;
}

html[data-app-page="gestion"] .filters > .field {
  display: grid !important;
  grid-template-rows: 46px !important;
  align-content: end !important;
  gap: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
}

html[data-app-page="gestion"] .filters > .field > select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 46px !important;
  min-height: 46px !important;
}

@media (min-width: 1280px) {
  html[data-app-page="gestion"] .top-card {
    display: grid !important;
    grid-template-columns: minmax(170px, .8fr) minmax(0, auto) !important;
    align-items: center !important;
  }

  html[data-app-page="gestion"] .filters {
    display: flex !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    width: auto !important;
    max-width: 100% !important;
  }

  html[data-app-page="gestion"] .gestion-filter-year {
    flex: 0 0 100px !important;
    width: 100px !important;
  }

  html[data-app-page="gestion"] .gestion-filter-period {
    flex: 0 0 145px !important;
    width: 145px !important;
  }

  html[data-app-page="gestion"] .gestion-filter-property {
    flex: 0 0 190px !important;
    width: 190px !important;
  }
}

@media (min-width: 900px) and (max-width: 1279px) {
  html[data-app-page="gestion"] .top-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }

  html[data-app-page="gestion"] .filters {
    display: grid !important;
    grid-template-columns: 96px 145px minmax(180px,220px) 150px 135px !important;
    width: 100% !important;
  }
}

@media (max-width: 899px) {
  html[data-app-page="gestion"] .top-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }

  html[data-app-page="gestion"] .filters {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  html[data-app-page="gestion"] .filters > .field {
    width: 100% !important;
    max-width: none !important;
  }

  html[data-app-page="gestion"] .gestion-filter-property {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 560px) {
  html[data-app-page="gestion"] .filters {
    grid-template-columns: 1fr !important;
  }

  html[data-app-page="gestion"] .gestion-filter-property {
    grid-column: auto !important;
  }
}

/* Analyse CA : conserver le rendu compact validé. */
html[data-app-page="gestion"] body[data-gestion-view="report"] .top-card {
  border-radius: 14px !important;
  gap: 12px !important;
  box-shadow: 0 8px 22px rgba(20, 34, 70, .07) !important;
}

/* Titres des filtres masqués visuellement, libellés accessibles conservés. */
html[data-app-page="gestion"] .filters > .field > .sr-only,
html[data-app-page="admin"] #adminReservationTopFilters .admin-top-field > .sr-only,
html[data-app-page="admin"] .journal-filter-row label > .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Tous les conteneurs de tableaux Admin encore arrondis deviennent plats. */
html[data-app-page="admin"] body :where(
  .rental-table-frame,
  .rental-table-scroll-region,
  .rental-reservation-table-scroll,
  .table-responsive-rental,
  .table-wrap,
  .admin-table-wrap,
  .admin-reference-table-wrap,
  .admin-modern-table-wrap,
  .admin-business-table-wrap,
  .admin-ownerfollowup-table-wrap,
  .admin-management-table-wrap,
  .admin-log-table-wrap,
  .admin-param-table-wrap,
  .admin-res-table-wrap,
  .admin-ical-table-wrap,
  .admin-legal-table-wrap,
  .admin-extra-types-table-wrap,
  .admin-operation-table-shell,
  .admin-operation-table-scroll,
  .journal-table-wrap,
  .lang-whatsapp-table-wrap
) {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow-x: auto !important;
}

/* Filet de sécurité pour un tableau injecté sans classe de wrapper normalisée. */
html[data-app-page="admin"] body :where(
  .admin-content,
  .admin-standalone-content,
  .rental-page-view
) :where(div, section):has(> table) {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow-x: auto !important;
}

html[data-app-page="admin"] body table {
  border-radius: 0 !important;
  box-shadow: none !important;
}


/* APP RENTAL V3 — top cards unifiées, journal blanc, types d'extras en modal. */
html[data-app-page] .topbar > .top-card{
  width:100% !important;
  min-width:0 !important;
  padding:0 14px !important;
  border:1px solid var(--app-border,#dbe2f0) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 8px 22px rgba(20,34,70,.07) !important;
}
html[data-app-page="admin"] #adminReservationTopCard.top-card,
html[data-app-page="gestion"] .topbar > .top-card,
html[data-app-page="admin"] .journal-main .topbar > .top-card{
  gap:12px !important;
}

html[data-app-page="admin"] .journal-page,
html[data-app-page="admin"] .journal-page > *{min-width:0 !important;}
html[data-app-page="admin"] .journal-filter-panel,
html[data-app-page="admin"] .journal-table-panel,
html[data-app-page="admin"] .journal-detail-card{
  background:#fff !important;
}
html[data-app-page="admin"] .journal-filter-panel,
html[data-app-page="admin"] .journal-table-panel{
  border:1px solid var(--app-border,#dbe2f0) !important;
  border-radius:14px !important;
  box-shadow:0 8px 22px rgba(20,34,70,.07) !important;
}
html[data-app-page="admin"] .journal-filter-panel{padding:14px !important;}
html[data-app-page="admin"] .journal-table-panel{padding:14px !important;}
html[data-app-page="admin"] .journal-table-wrap{background:transparent !important;}
html[data-app-page="admin"] .journal-table,
html[data-app-page="admin"] .journal-table td{background:#fff !important;}
html[data-app-page="admin"] .journal-table th{background:var(--app-surface-soft,#f5f7fb) !important;}

html[data-app-page="admin"] .admin-extra-types-view{
  background:#fff !important;
}
html[data-app-page="admin"] .admin-extra-types-table{min-width:420px !important;}
html[data-app-page="admin"] .admin-extra-type-name-cell{text-align:left !important;}
html[data-app-page="admin"] .admin-extra-type-name{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-height:42px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--app-text,#17143f) !important;
  font:inherit !important;
  font-weight:700 !important;
  text-align:left !important;
  cursor:pointer !important;
}
html[data-app-page="admin"] .admin-extra-type-name:hover{
  color:var(--app-primary-color,#385bf8) !important;
}

html[data-app-page="admin"] .admin-extra-type-modal{
  width:min(520px, calc(100vw - 28px)) !important;
  max-width:520px !important;
  padding:22px !important;
  background:#fff !important;
}
html[data-app-page="admin"] .admin-extra-type-modal-grid{display:grid !important; gap:12px !important;}
html[data-app-page="admin"] .admin-extra-type-modal-grid .full{min-width:0 !important;}
html[data-app-page="admin"] .admin-extra-type-modal-grid input{
  width:100% !important;
  min-height:44px !important;
  height:44px !important;
}
body.admin-extra-type-modal-open{overflow:hidden !important;}

@media (max-width: 760px){
  html[data-app-page] .topbar > .top-card{
    padding:0 14px !important;
  }
  html[data-app-page="admin"] .journal-header-actions,
  html[data-app-page="admin"] .admin-extra-types-actions{
    width:100% !important;
  }
  html[data-app-page="admin"] .journal-header-actions .btn,
  html[data-app-page="admin"] .admin-extra-types-actions .btn{
    flex:1 1 auto !important;
  }
  html[data-app-page="admin"] .admin-extra-types-table{min-width:360px !important;}
}


/* APP RENTAL V3 — sections internes sans padding dans Admin > Accès uniquement. */
html[data-app-page="admin"] body.admin-view-access :where(
  .admin-param-modal-section,
  .admin-logement-modal-section,
  #adminReservationModal .admin-logement-modal-section,
  .admin-param-subsection
) {
  width: 100% !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 0 !important;
  border-radius: var(--admin-form-section-radius) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}


/* APP RENTAL V3 — suppression des types d'extras avec état d'utilisation. */
html[data-app-page="admin"] .admin-extra-type-delete-wrap{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
html[data-app-page="admin"] .admin-extra-type-delete-wrap::after{
  content:attr(data-tooltip);
  position:absolute;
  right:0;
  bottom:calc(100% + 8px);
  z-index:9999;
  width:max-content;
  max-width:min(360px,calc(100vw - 28px));
  padding:8px 10px;
  border-radius:9px;
  background:#17143f;
  color:#fff;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  text-align:left;
  white-space:normal;
  box-shadow:0 10px 24px rgba(20,34,70,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(3px);
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
html[data-app-page="admin"] .admin-extra-type-delete-wrap:hover::after,
html[data-app-page="admin"] .admin-extra-type-delete-wrap:focus-visible::after{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
html[data-app-page="admin"] .admin-extra-type-delete .rental-mask-icon{
  width:18px !important;
  height:18px !important;
}
html[data-app-page="admin"] .admin-extra-type-delete-wrap.is-disabled .admin-extra-type-delete{
  opacity:.38 !important;
  cursor:not-allowed !important;
  filter:grayscale(.25);
}


/* APP RENTAL V3 — finition production, mobile et anti-débordement. */
html[data-app-page],
html[data-app-page] body{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}
html[data-app-page] :where(
  .app-shell,.admin-shell,.owner-shell,.lc-app,.maintenance-shell,
  .main,.admin-main-content,.owner-content,.lc-main,.app-content,
  .content,#content,#viewRoot,.section,.panel,.card,.box,.topbar,.top-card,
  .summary,.summary-grid,.summary-card,.owner-view-panel,form,fieldset
){min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
html[data-app-page] :where(input,select,textarea,.field,.full,.detail,.comment,.guest,.guest-phone,.property,.admin-date-box,.admin-inline-detail){min-width:0!important;max-width:100%!important}
html[data-app-page] :where(.guest,.guest-phone,.property,.detail,.comment,.admin-inline-detail,.admin-date-value,.owner-field-help,.admin-field-help){overflow-wrap:anywhere!important;word-break:normal!important}
html[data-app-page] :where(.table-wrap,.table-responsive,.rental-table-frame,.admin-res-table-wrap,.report-table-desktop,.journal-table-wrap){max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}

/* Le titre et le bouton de réduction ne peuvent plus se superposer dans Administration. */
html[data-app-page="admin"] .topbar,
html[data-app-page="gestion"] .topbar,
html[data-app-page="admin"] .journal-main .topbar{
  position:relative!important;
  z-index:1!important;
}

@media(max-width:1024px){
  html[data-app-page="admin"] .admin-main-content.main,
  html[data-app-page="gestion"] main.main,
  html[data-app-page="legal-center"] .lc-main,
  html[data-app-page="maintenance"] .maintenance-main{
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
    margin:0!important;
    padding:68px 12px 16px!important;
    overflow-x:hidden!important;
  }
  html[data-app-page="owner"] #ownerApp:not(.hidden){
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
    margin:0!important;
    padding:68px 12px 16px!important;
    overflow-x:hidden!important;
  }
  html[data-app-page="owner"] .owner-shell,
  html[data-app-page="owner"] .owner-content{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html[data-app-page] .topbar,
  html[data-app-page] .owner-topbar,
  html[data-app-page] .lc-header{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 12px!important;
  }
  html[data-app-page] .topbar > .top-card,
  html[data-app-page] .owner-topbar,
  html[data-app-page] .lc-header{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:12px!important;
    border-radius:14px!important;
  }
  html[data-app-page] .top-title,
  html[data-app-page] .top-title h1,
  html[data-app-page] .owner-page-title{
    min-width:0!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page] :where(.filters,#adminReservationTopFilters,.owner-header-actions,.journal-header-actions,.panel-head,.section-title){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:wrap!important;
  }
  html[data-app-page] :where(.filters .field,#adminReservationTopFilters .admin-top-field,.owner-header-actions>* ){
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page] :where(.admin-modal-grid,.owner-modal-grid,.form-grid,.lc-settings-grid,.lc-form-row){
    grid-template-columns:minmax(0,1fr)!important;
  }
  html[data-app-page] :where(.admin-modal,.owner-modal,[role="dialog"]){
    width:min(100%,720px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    padding:16px!important;
    overflow:auto!important;
  }
}

/* Réservations Admin : aucun texte ni champ ne sort d'une carte étroite. */
@media(max-width:640px){
  html[data-app-page="admin"] #summary.summary-grid,
  html[data-app-page="owner"] .summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  html[data-app-page="admin"] #summary .summary-card,
  html[data-app-page="owner"] .summary-card{
    width:100%!important;
    min-width:0!important;
    min-height:68px!important;
    padding:10px 12px!important;
  }
  html[data-app-page="admin"] #content .admin-cards{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    gap:10px!important;
  }
  html[data-app-page="admin"] #content .admin-cards > article.card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:12px!important;
    overflow:hidden!important;
  }
  html[data-app-page="admin"] #content article.card .card-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
  }
  html[data-app-page="admin"] #content article.card .guest{
    display:block!important;
    width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:17px!important;
  }
  html[data-app-page="admin"] #content article.card .guest-phone{
    display:block!important;
    width:100%!important;
    margin-top:3px!important;
    color:var(--app-text-muted)!important;
    font-size:13px!important;
    font-weight:650!important;
    white-space:normal!important;
  }
  html[data-app-page="admin"] #content article.card .admin-inline-detail{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:4px!important;
    white-space:normal!important;
    overflow:visible!important;
  }
  html[data-app-page="admin"] #content article.card .admin-inline-detail > span{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  html[data-app-page="admin"] #content article.card .admin-inline-detail > span:nth-child(2){display:none!important}
  html[data-app-page="admin"] #content article.card .admin-dates-row{
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
  }
  html[data-app-page="admin"] #content article.card .comment{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  html[data-app-page="admin"] #content article.card .comment strong{display:block!important;margin-bottom:3px!important}
  html[data-app-page="admin"] #content article.card .admin-edit-actions{
    width:100%!important;
    max-width:100%!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
  }
}

@media(max-width:380px){
  html[data-app-page="admin"] #summary.summary-grid,
  html[data-app-page="owner"] .summary{grid-template-columns:minmax(0,1fr)!important}
  html[data-app-page] :where(.btn,button:not(.rental-modal-close)){
    max-width:100%!important;
  }
}


/* APP RENTAL V3 — correctifs mobile globaux complémentaires. */
@media (max-width: 700px){
  html[data-app-page],
  html[data-app-page] body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html[data-app-page] :where(main.main,.admin-main-content,.owner-content,.lc-main,#ownerApp,#viewRoot,.content,.panel,.section,.settings-grid,.settings-card,.settings-fields,.form-grid,.field,.actions,.panel-head,.table-wrap,.data-table){
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* Le bouton menu ne masque plus les titres. */
  html[data-app-page="admin"] .top-card,
  html[data-app-page="gestion"] .top-card,
  html[data-app-page="legal-center"] .lc-header,
  html[data-app-page="owner"] .owner-topbar{
    padding-left:76px!important;
  }
  html[data-app-page] .top-title h1,
  html[data-app-page] .owner-page-title,
  html[data-app-page] .lc-header h1{
    font-size:20px!important;
    line-height:1.12!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
  }

  /* Filtres : une vraie colonne mobile, sans débordement. */
  html[data-app-page="gestion"] .filters,
  html[data-app-page="admin"] .filters,
  html[data-app-page="legal-center"] .filters,
  html[data-app-page="owner"] .filters{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    align-items:stretch!important;
  }
  html[data-app-page] .filters .field,
  html[data-app-page] .filters > *,
  html[data-app-page] .actions > *,
  html[data-app-page] .settings-fields > *{
    min-width:0!important;
  }
  html[data-app-page="gestion"] .panel-head,
  html[data-app-page="admin"] .panel-head{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  html[data-app-page="gestion"] .panel-head.actions-only .actions,
  html[data-app-page="gestion"] .panel-head .actions,
  html[data-app-page="admin"] .panel-head .actions{
    width:100%!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
  }
  html[data-app-page="gestion"] .panel-head .actions .btn,
  html[data-app-page="admin"] .panel-head .actions .btn{
    min-height:42px!important;
  }

  /* Gestion : tableaux éditables toujours scrollables au lieu d'être écrasés. */
  html[data-app-page="gestion"] .panel{padding:14px!important;overflow:hidden!important}
  html[data-app-page="gestion"] .table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:8px!important;
  }
  html[data-app-page="gestion"] .data-table{
    width:max-content!important;
    min-width:100%!important;
    max-width:none!important;
    table-layout:auto!important;
  }
  html[data-app-page="gestion"] #ratesTable{min-width:640px!important}
  html[data-app-page="gestion"] #settingsTable{min-width:980px!important}
  html[data-app-page="gestion"] #extrasTable{min-width:700px!important}
  html[data-app-page="gestion"] #ratesTable th,
  html[data-app-page="gestion"] #ratesTable td,
  html[data-app-page="gestion"] #settingsTable th,
  html[data-app-page="gestion"] #settingsTable td,
  html[data-app-page="gestion"] #extrasTable th,
  html[data-app-page="gestion"] #extrasTable td{
    white-space:nowrap!important;
  }
  html[data-app-page="gestion"] #ratesTable th:nth-child(1),
  html[data-app-page="gestion"] #ratesTable td:nth-child(1),
  html[data-app-page="gestion"] #ratesTable th:nth-child(2),
  html[data-app-page="gestion"] #ratesTable td:nth-child(2){min-width:160px!important}
  html[data-app-page="gestion"] #ratesTable th:nth-child(3),
  html[data-app-page="gestion"] #ratesTable td:nth-child(3){min-width:110px!important}
  html[data-app-page="gestion"] #ratesTable th:nth-child(4),
  html[data-app-page="gestion"] #ratesTable td:nth-child(4){min-width:64px!important;text-align:center!important}
  html[data-app-page="gestion"] #ratesTable th:nth-child(5),
  html[data-app-page="gestion"] #ratesTable td:nth-child(5){min-width:56px!important;text-align:center!important}
  html[data-app-page="gestion"] #ratesTable input[type="date"],
  html[data-app-page="gestion"] #ratesTable input[type="number"]{min-width:100%!important}
  html[data-app-page="gestion"] #settingsTable input,
  html[data-app-page="gestion"] #settingsTable select,
  html[data-app-page="gestion"] #extrasTable input,
  html[data-app-page="gestion"] #extrasTable select,
  html[data-app-page="gestion"] #extrasTable textarea{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="gestion"] .settings-fields{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  html[data-app-page="gestion"] .settings-fields .mode,
  html[data-app-page="gestion"] .settings-fields .wide,
  html[data-app-page="gestion"] .form-grid .wide,
  html[data-app-page="gestion"] .form-actions{
    grid-column:1 / -1!important;
  }
  html[data-app-page="gestion"] .field textarea{min-height:120px!important}

  /* Administration : tables de paramétrage en vrai scroll horizontal, sans découpe. */
  html[data-app-page="admin"] .admin-param-subsection .admin-modern-table-wrap,
  html[data-app-page="admin"] .admin-extra-types-table-wrap,
  html[data-app-page="admin"] .admin-data-table-wrap,
  html[data-app-page="admin"] .table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:10px!important;
  }
  html[data-app-page="admin"] .admin-access-roles-table{min-width:760px!important;width:760px!important;max-width:none!important}
  html[data-app-page="admin"] .admin-access-fields-table{min-width:860px!important;width:860px!important;max-width:none!important}
  html[data-app-page="admin"] .admin-extra-types-table{min-width:560px!important;width:560px!important;max-width:none!important}
  html[data-app-page="admin"] .admin-access-roles-table :where(th,td),
  html[data-app-page="admin"] .admin-access-fields-table :where(th,td),
  html[data-app-page="admin"] .admin-extra-types-table :where(th,td){
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  html[data-app-page="admin"] .admin-access-roles-table :where(th,td):nth-child(1),
  html[data-app-page="admin"] .admin-access-fields-table :where(th,td):nth-child(1),
  html[data-app-page="admin"] .admin-extra-types-table :where(th,td):nth-child(1){
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="admin"] .admin-access-roles-table :where(th,td):nth-child(4),
  html[data-app-page="admin"] .admin-access-fields-table :where(th,td):nth-child(4),
  html[data-app-page="admin"] .admin-extra-types-table :where(th,td):last-child{
    min-width:88px!important;
    text-align:center!important;
  }
  html[data-app-page="admin"] .admin-data-table .admin-table-status,
  html[data-app-page="admin"] .admin-mini-badge,
  html[data-app-page="admin"] .admin-table-actions{
    white-space:nowrap!important;
  }
}

@media (max-width: 420px){
  html[data-app-page="gestion"] .settings-fields,
  html[data-app-page="gestion"] .metric-grid,
  html[data-app-page="admin"] #summary.summary-grid,
  html[data-app-page="owner"] .summary{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html[data-app-page="gestion"] .panel-head .actions .btn,
  html[data-app-page="admin"] .panel-head .actions .btn{
    flex:1 1 100%!important;
  }
}


/* APP RENTAL V3 — finition mobile page par page. */
@media (max-width: 640px){
  /* Analyse CA : titres, logements longs et montants restent dans la carte. */
  html[data-app-page="gestion"] .report-extra-groups,
  html[data-app-page="gestion"] .report-extra-group,
  html[data-app-page="gestion"] .card-list,
  html[data-app-page="gestion"] .mobile-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="gestion"] .report-extra-group{
    padding:12px 0!important;
    overflow:hidden!important;
  }
  html[data-app-page="gestion"] .report-extra-group-head,
  html[data-app-page="gestion"] .mobile-card header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:8px 12px!important;
  }
  html[data-app-page="gestion"] .report-extra-group-head > *,
  html[data-app-page="gestion"] .mobile-card header > *{
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="gestion"] .report-extra-group-head h3,
  html[data-app-page="gestion"] .mobile-card header > div > strong,
  html[data-app-page="gestion"] .mobile-card .status-line{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
  html[data-app-page="gestion"] .report-extra-group-head > strong,
  html[data-app-page="gestion"] .mobile-card header > strong,
  html[data-app-page="gestion"] .mobile-card header > span{
    white-space:nowrap!important;
    text-align:right!important;
    justify-self:end!important;
  }
  html[data-app-page="gestion"] .mobile-card dl{
    width:100%!important;
    min-width:0!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  html[data-app-page="gestion"] .mobile-card dl > div,
  html[data-app-page="gestion"] .mobile-card dd{
    min-width:0!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }

  /* Catégories de prestations : liste mobile en cartes, aucune colonne d'action coupée. */
  html[data-app-page="admin"] .admin-extra-types-view{
    padding:12px!important;
  }
  html[data-app-page="admin"] .admin-extra-types-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    gap:8px!important;
  }
  html[data-app-page="admin"] .admin-extra-types-actions .btn{
    width:100%!important;
    min-width:0!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table-wrap{
    overflow:visible!important;
    padding:0!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table,
  html[data-app-page="admin"] .admin-extra-types-table tbody{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table thead{
    display:none!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table tbody tr{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:10px!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:12px 0!important;
    border-bottom:1px solid var(--app-border,#dbe2f0)!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table td{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    background:#fff!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table td:first-child{
    overflow:hidden!important;
  }
  html[data-app-page="admin"] .admin-extra-type-name{
    min-height:38px!important;
    font-size:16px!important;
    line-height:1.25!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="admin"] .admin-extra-type-actions{
    width:auto!important;
    min-width:0!important;
    gap:6px!important;
  }
  html[data-app-page="admin"] .admin-extra-type-actions .btn:not(.icon){
    display:none!important;
  }

  /* Accès : cartes lisibles au lieu d'un tableau comprimé ou coupé. */
  html[data-app-page="admin"] body.admin-view-access .admin-param-subsection{
    overflow:visible!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-modern-table-wrap{
    overflow:visible!important;
    padding:0!important;
  }
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table),
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table) tbody{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table) thead,
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table) colgroup{
    display:none!important;
  }
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table) tbody tr{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px 12px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 10px!important;
    padding:14px!important;
    border:1px solid var(--app-border,#dbe2f0)!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 5px 14px rgba(20,34,70,.04)!important;
  }
  html[data-app-page="admin"] body.admin-view-access :where(.admin-access-roles-table,.admin-access-fields-table) tbody td{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    padding:3px 0!important;
    border:0!important;
    background:#fff!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(1),
  html[data-app-page="admin"] body.admin-view-access .admin-access-fields-table tbody td:nth-child(1){
    grid-column:1 / -1!important;
    padding-right:48px!important;
    font-size:16px!important;
    font-weight:800!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(2),
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(3),
  html[data-app-page="admin"] body.admin-view-access .admin-access-fields-table tbody td:nth-child(2){
    grid-column:1 / -1!important;
    border-top:1px solid var(--app-border,#dbe2f0)!important;
    padding-top:9px!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(2)::before{content:"Droits actifs";font-size:12px;font-weight:800;color:var(--app-text-muted,#667085)}
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(3)::before{content:"Statut";font-size:12px;font-weight:800;color:var(--app-text-muted,#667085)}
  html[data-app-page="admin"] body.admin-view-access .admin-access-fields-table tbody td:nth-child(2)::before{content:"Utilisé par";font-size:12px;font-weight:800;color:var(--app-text-muted,#667085)}
  html[data-app-page="admin"] body.admin-view-access .admin-access-roles-table tbody td:nth-child(4),
  html[data-app-page="admin"] body.admin-view-access .admin-access-fields-table tbody td:nth-child(3){
    position:absolute!important;
    top:10px!important;
    right:10px!important;
    width:auto!important;
    min-width:0!important;
    padding:0!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-table-actions{
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
  }
  html[data-app-page="admin"] body.admin-view-access .admin-table-status,
  html[data-app-page="admin"] body.admin-view-access .admin-mini-badge{
    max-width:68%!important;
    white-space:normal!important;
    text-align:center!important;
  }

  /* Logements : une seule colonne réelle sur smartphone. */
  html[data-app-page="gestion"] #viewRoot .settings-card{
    padding:14px 0!important;
    overflow:hidden!important;
  }
  html[data-app-page="gestion"] #viewRoot .settings-fields{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
  }
  html[data-app-page="gestion"] #viewRoot .settings-fields > *,
  html[data-app-page="gestion"] #viewRoot .settings-fields .mode{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="gestion"] #viewRoot .settings-fields input,
  html[data-app-page="gestion"] #viewRoot .settings-fields select{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* Journal, langues et pages standalone : boutons et cartes à largeur utile. */
  html[data-app-page="admin"] .journal-header-actions,
  html[data-app-page="admin"] .language-filters-toolbar,
  html[data-app-page="admin"] .phone-rules-head,
  html[data-app-page="admin"] .phone-rules-list{
    min-width:0!important;
    max-width:100%!important;
  }
}

@media (max-width: 380px){
  html[data-app-page="gestion"] .mobile-card dl{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html[data-app-page="admin"] .admin-extra-types-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* APP RENTAL V3 — tableaux de consultation transformés en cartes mobiles. */
@media(max-width:700px){
  /* Journal : une carte par événement, clic conservé pour ouvrir le détail. */
  html[data-app-page="admin"] .journal-table-wrap{overflow:visible!important;background:transparent!important}
  html[data-app-page="admin"] .journal-table,
  html[data-app-page="admin"] .journal-table tbody{display:block!important;width:100%!important;min-width:0!important}
  html[data-app-page="admin"] .journal-table thead,
  html[data-app-page="admin"] .journal-table colgroup{display:none!important}
  html[data-app-page="admin"] .journal-table .journal-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:7px 12px!important;width:100%!important;min-width:0!important;margin:0 0 12px!important;padding:14px!important;border:1px solid var(--app-border,#dbe2f0)!important;border-radius:14px!important;background:#fff!important;box-shadow:0 6px 16px rgba(20,34,70,.045)!important}
  html[data-app-page="admin"] .journal-table .journal-row td{display:block!important;width:auto!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(1){grid-column:1;font-size:12px;color:var(--app-text-muted,#667085)}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(2){grid-column:2;grid-row:1 / span 2;align-self:start;text-align:right}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(3){grid-column:1;font-size:13px}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(4){grid-column:1/-1;padding-top:8px!important;border-top:1px solid var(--app-border,#dbe2f0)!important;font-weight:850!important}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(4)::before{content:"Action";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(5){grid-column:1/-1}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(5)::before{content:"Logement";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(6){grid-column:1/-1}
  html[data-app-page="admin"] .journal-table .journal-row td:nth-child(6)::before{content:"Message";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}

  /* Langues clients : une carte par réservation, sans tableau horizontal. */
  html[data-app-page="admin"] body.rental-language-clients-page .table-wrap{overflow:visible!important;background:transparent!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table,
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table thead{display:none!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody tr{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px 12px!important;width:100%!important;min-width:0!important;margin:0 0 12px!important;padding:14px!important;border:1px solid var(--app-border,#dbe2f0)!important;border-radius:14px!important;background:#fff!important;box-shadow:0 6px 16px rgba(20,34,70,.045)!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td{display:block!important;width:auto!important;min-width:0!important;max-width:100%!important;padding:0!important;border:0!important;background:transparent!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(1){grid-column:1;font-size:16px;font-weight:850}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(2){grid-column:2;grid-row:1;align-self:start}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(3){grid-column:1/-1;padding-top:8px!important;border-top:1px solid var(--app-border,#dbe2f0)!important}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(3)::before{content:"Voyageur";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(4){grid-column:1/-1}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(4)::before{content:"Dates";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(5){grid-column:1/-1}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(5)::before{content:"Téléphone";display:block;margin-bottom:3px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(6){grid-column:1/-1}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table tbody td:nth-child(6)::before{content:"Langue client";display:block;margin-bottom:5px;color:var(--app-text-muted,#667085);font-size:11px;font-weight:750}
  html[data-app-page="admin"] body.rental-language-clients-page .lang-whatsapp-table .lang-select{width:100%!important;min-height:44px!important;height:44px!important;font-size:14px!important}
}


/* APP RENTAL V3 — dimensions et états communs des icônes. */
html[data-app-page] :where(.icon-action-btn,.admin-icon-btn,.btn.icon,.view-icon-btn){display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;}
html[data-app-page] :where(.icon-action-btn,.admin-icon-btn,.btn.icon) .rental-mask-icon{width:18px!important;height:18px!important;}
html[data-app-page] .rental-modal-close{width:38px!important;height:38px!important;padding:0!important;border-radius:12px!important;}
html[data-app-page] .icon-action-btn.cancel .rental-mask-icon{width:17px!important;height:17px!important;}
html[data-app-page] :where(.view-icon-btn,.owner-planning-view-btn) .rental-mask-icon{width:18px!important;height:18px!important;}


/* APP RENTAL V3 — icônes réellement chargées dans Admin et en-têtes canoniques. */
html[data-app-page="admin"] .admin-param-modern-hero--actions-only{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  width:100%!important;
  min-height:0!important;
  margin:0 0 14px!important;
  padding:0!important;
  gap:10px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
html[data-app-page="admin"] .admin-param-modern-hero--actions-only > .admin-client-head-actions{
  margin-left:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
html[data-app-page="admin"] body.admin-view-access .admin-param-modern-panel > .admin-param-subsection-first{
  margin-top:0!important;
}
html[data-app-page="admin"] .admin-extra-types-table th:last-child{
  width:170px!important;
  min-width:170px!important;
  text-align:right!important;
  white-space:nowrap!important;
}
html[data-app-page="admin"] .admin-extra-types-table td:last-child{
  width:170px!important;
  min-width:170px!important;
  text-align:right!important;
}
html[data-app-page="admin"] .admin-extra-types-table th[data-no-sort="1"]::after{
  content:none!important;
  display:none!important;
}
html[data-app-page="admin"] .icon-action-btn.cancel .rental-icon-cancel-action{
  display:inline-block!important;
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  background-color:currentColor!important;
}
html[data-app-page="admin"] .admin-extra-type-delete .rental-icon-trash,
html[data-app-page="admin"] .admin-icon-btn .rental-mask-icon,
html[data-app-page="admin"] .icon-action-btn .rental-mask-icon{
  display:inline-block!important;
  background-color:currentColor!important;
}
@media(max-width:700px){
  html[data-app-page="admin"] .admin-param-modern-hero--actions-only{
    margin-bottom:12px!important;
  }
  html[data-app-page="admin"] .admin-param-modern-hero--actions-only > .admin-client-head-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  html[data-app-page="admin"] .admin-param-modern-hero--actions-only > .admin-client-head-actions .btn{
    width:100%!important;
    min-width:0!important;
  }
  html[data-app-page="admin"] .admin-extra-types-table td:last-child{
    width:auto!important;
    min-width:0!important;
  }
}
@media(max-width:380px){
  html[data-app-page="admin"] .admin-param-modern-hero--actions-only > .admin-client-head-actions{
    grid-template-columns:minmax(0,1fr)!important;
  }
}


/* APP RENTAL V3 — Analyse CA mobile : deux blocs distincts, fixes et ponctuels. */
@media (max-width:640px){
  html[data-app-page="gestion"] .report-extra-groups{
    display:grid!important;
    gap:18px!important;
  }
  html[data-app-page="gestion"] .report-extra-group{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:14px!important;
    border:1px solid var(--border)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(20,34,70,.045)!important;
    overflow:hidden!important;
  }
  html[data-app-page="gestion"] .report-extra-group + .report-extra-group{
    padding-top:14px!important;
    border-top:1px solid var(--border)!important;
  }
  html[data-app-page="gestion"] .report-extra-group-head{
    margin:0 0 12px!important;
    padding:0 0 10px!important;
    border-bottom:1px solid var(--border)!important;
  }
  html[data-app-page="gestion"] .report-extra-group .mobile-card{
    padding:12px 0!important;
    border-bottom:1px solid var(--border)!important;
  }
  html[data-app-page="gestion"] .report-extra-group .mobile-card:last-child{
    border-bottom:0!important;
    padding-bottom:0!important;
  }
}


/* APP RENTAL V3 — Plateformes : suppression de la colonne Utilisation. */
html[data-app-page="admin"] .admin-platform-data-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
html[data-app-page="admin"] .admin-platform-data-table col:nth-child(1){width:auto!important}
html[data-app-page="admin"] .admin-platform-data-table col:nth-child(2){width:96px!important}
html[data-app-page="admin"] .admin-platform-data-table :where(th,td):nth-child(1){width:auto!important;max-width:none!important;white-space:normal!important}
html[data-app-page="admin"] .admin-platform-data-table :where(th,td):nth-child(2){width:96px!important;min-width:96px!important;max-width:96px!important;text-align:center!important;white-space:nowrap!important}
html[data-app-page="admin"] .admin-platform-data-table .admin-table-actions{justify-content:center!important}
@media(max-width:700px){
  html[data-app-page="admin"] .admin-platform-data-table{width:100%!important;min-width:0!important}
  html[data-app-page="admin"] .admin-platform-data-table col:nth-child(2){width:84px!important}
  html[data-app-page="admin"] .admin-platform-data-table :where(th,td):nth-child(2){width:84px!important;min-width:84px!important;max-width:84px!important}
}

/* APP RENTAL V3 — Propriétaires : cartes réellement adaptées au mobile. */
@media(max-width:700px){
  html[data-app-page="admin"] body.admin-view-clients .admin-param-modern-panel,
  html[data-app-page="admin"] body.admin-view-clients .admin-modern-table-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table,
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table thead,
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table colgroup{
    display:none!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody tr{
    position:relative!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:11px 14px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0 0 12px!important;
    padding:15px!important;
    border:1px solid var(--app-border,#dbe2f0)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(20,34,70,.045)!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    text-align:left!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td::before{
    display:block!important;
    margin:0 0 4px!important;
    color:var(--app-text-muted,#667085)!important;
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:800!important;
    text-transform:uppercase!important;
    letter-spacing:.02em!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(1){
    grid-column:1 / -1!important;
    padding-right:94px!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(1)::before{content:"Propriétaire"}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(1) .admin-table-title{
    font-size:17px!important;
    line-height:1.25!important;
    font-weight:850!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(2){
    grid-column:1 / -1!important;
    padding-top:10px!important;
    border-top:1px solid var(--app-border,#dbe2f0)!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(2)::before{content:"Email"}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(3)::before{content:"DNI / NIE"}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(4)::before{content:"Statut"}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(5)::before{content:"Logements"}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(4),
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(5){
    align-self:end!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(6){
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:0!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(6)::before{content:none!important;display:none!important}
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table .admin-table-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    flex-wrap:nowrap!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table .admin-table-status{
    max-width:100%!important;
    white-space:normal!important;
    text-align:center!important;
  }
}

@media(max-width:390px){
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody tr{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(3),
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(4),
  html[data-app-page="admin"] body.admin-view-clients .admin-owner-table tbody td:nth-child(5){
    grid-column:1!important;
  }
}

/* APP RENTAL V3 — finitions Admin et Gestion demandées. */

/* Réservations : trois cartes par ligne lorsque le menu Admin est rétracté. */
@media (min-width:1200px){
  html.app-sidebar-collapsed[data-app-page="admin"] body.admin-view-reservations #content .admin-cards{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:16px!important;
  }
}

/* Réservations en liste : statut aligné à gauche. */
html[data-app-page="admin"] body.admin-view-reservations .admin-res-table :where(th,td):nth-child(2),
html[data-app-page="admin"] body.admin-view-reservations .rental-reservation-table :where(th,td).col-status,
html[data-app-page="admin"] body.admin-view-reservations .admin-reservation-status-cell{
  text-align:left!important;
}
html[data-app-page="admin"] body.admin-view-reservations .admin-reservation-status-cell .rental-reservation-status-badge{
  margin-left:0!important;
  margin-right:auto!important;
  justify-content:flex-start!important;
}

/* Séjour en cours : champs du détail blancs, arrondis et cohérents. */
html[data-app-page="admin"] body.admin-view-currentstays .admin-currentstay-details-body{
  padding:14px!important;
  background:#f7f8fc!important;
  border-top:1px solid var(--app-border,#dfe3f2)!important;
}
html[data-app-page="admin"] body.admin-view-currentstays .admin-currentstay-info-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}
html[data-app-page="admin"] body.admin-view-currentstays .admin-currentstay-info-grid .admin-operation-info{
  min-width:0!important;
  min-height:54px!important;
  padding:12px 14px!important;
  border:1px solid var(--app-border,#dfe3f2)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
}
@media(max-width:760px){
  html[data-app-page="admin"] body.admin-view-currentstays .admin-currentstay-info-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* Catégories de prestations : actions compactes identiques aux autres tableaux Admin. */
html[data-app-page="admin"] .admin-param-modern-hero--actions-only .admin-extra-types-actions,
html[data-app-page="admin"] .admin-extra-types-actions{
  width:auto!important;
  margin-left:auto!important;
  justify-content:flex-end!important;
}
html[data-app-page="admin"] .admin-extra-types-table th:last-child,
html[data-app-page="admin"] .admin-extra-types-table td:last-child{
  width:112px!important;
  min-width:112px!important;
  text-align:right!important;
}
html[data-app-page="admin"] .admin-extra-type-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
}
html[data-app-page="admin"] .admin-extra-type-edit,
html[data-app-page="admin"] .admin-extra-type-delete{
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:11px!important;
  background:#fff!important;
  border:1px solid var(--app-border,#dfe3f2)!important;
  box-shadow:none!important;
}
html[data-app-page="admin"] .admin-extra-type-edit{color:var(--app-text,#17143f)!important;}
html[data-app-page="admin"] .admin-extra-type-delete{
  color:#9b3333!important;
  background:var(--app-danger-bg,#fff0f0)!important;
  border-color:var(--app-danger-border,#e2b8b8)!important;
}

/* Configuration : identité/coordonnées et médias regroupés, sans choix de couleur visible. */
html[data-app-page="admin"] .admin-config-main-form{
  display:grid!important;
  gap:16px!important;
}
html[data-app-page="admin"] .admin-config-section-block{
  display:grid!important;
  gap:14px!important;
  min-width:0!important;
  padding:16px!important;
  border:1px solid var(--app-border,#dfe3f2)!important;
  border-radius:16px!important;
  background:#fff!important;
}
html[data-app-page="admin"] .admin-config-section-block .admin-form-section-title{
  margin:0!important;
}
html[data-app-page="admin"] .admin-config-pwa-icons{
  display:grid!important;
  gap:12px!important;
}
html[data-app-page="admin"] .admin-config-main-form > .admin-form-actions{
  justify-content:flex-end!important;
  margin-top:0!important;
}

/* Gestion : corbeilles en style clair, identiques à l'Admin, jamais en aplat rouge. */
html[data-app-page="gestion"] .btn.icon.danger,
html[data-app-page="gestion"] button.btn.icon.danger{
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:11px!important;
  background:#fff0f0!important;
  border:1px solid #e2b8b8!important;
  color:#9b3333!important;
  box-shadow:none!important;
}
html[data-app-page="gestion"] .btn.icon.danger:hover:not(:disabled),
html[data-app-page="gestion"] button.btn.icon.danger:hover:not(:disabled){
  background:#ffe8e8!important;
  border-color:#d99b9b!important;
}

/* Calendrier des tarifs : bouton à droite et vue annuelle en 12 cartes. */
html[data-app-page="gestion"] .calendar-tariff-actions{
  display:flex!important;
  width:100%!important;
  justify-content:flex-end!important;
  align-items:center!important;
}
html[data-app-page="gestion"] .calendar-tariff-actions .actions{
  width:auto!important;
  margin-left:auto!important;
  justify-content:flex-end!important;
}
html[data-app-page="gestion"] .calendar-year-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important;
  gap:14px!important;
  align-items:start!important;
}
html[data-app-page="gestion"] .calendar-month-card{
  min-width:0!important;
  overflow:hidden!important;
  border:1px solid var(--app-border,#dfe3f2)!important;
  border-radius:15px!important;
  background:#fff!important;
}
html[data-app-page="gestion"] .calendar-month-card.is-single{
  border:0!important;
  border-radius:0!important;
}
html[data-app-page="gestion"] .calendar-month-title{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:12px 14px!important;
  border-bottom:1px solid var(--app-border,#dfe3f2)!important;
  background:#f7f8fc!important;
}
html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-month-title{
  padding:0 0 12px!important;
  background:#fff!important;
}
html[data-app-page="gestion"] .calendar-month-title h3{margin:0!important;font-size:16px!important;}
html[data-app-page="gestion"] .calendar-month-title span{color:var(--app-muted,#6f768b)!important;font-size:12px!important;font-weight:800!important;}
html[data-app-page="gestion"] .calendar-grid-compact{
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
}
html[data-app-page="gestion"] .calendar-grid-compact .calendar-head{
  min-width:0!important;
  padding:6px 2px!important;
  font-size:10px!important;
}
html[data-app-page="gestion"] .calendar-grid-compact .calendar-day{
  min-width:0!important;
  min-height:52px!important;
  padding:5px!important;
  overflow:hidden!important;
}
html[data-app-page="gestion"] .calendar-grid-compact .calendar-day strong{font-size:10px!important;}
html[data-app-page="gestion"] .calendar-rate.compact{
  margin-top:5px!important;
  padding:3px 2px!important;
  border-radius:6px!important;
  font-size:9px!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
html[data-app-page="gestion"] .calendar-tariff-notice{margin-top:14px!important;}
@media(max-width:980px){
  html[data-app-page="gestion"] .calendar-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:650px){
  html[data-app-page="gestion"] .calendar-year-grid{grid-template-columns:minmax(0,1fr)!important;}
  html[data-app-page="gestion"] .calendar-tariff-actions .actions,
  html[data-app-page="gestion"] .calendar-tariff-actions .btn{width:100%!important;}
}


/* V3 — Calendrier tarifs : cartes annuelles cliquables et agrandissement du mois. */
html[data-app-page="gestion"] .calendar-month-card.is-compact[data-calendar-month]{
  cursor:pointer!important;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
html[data-app-page="gestion"] .calendar-month-card.is-compact[data-calendar-month]:hover{
  border-color:var(--app-primary-color,#385bf8)!important;
  box-shadow:0 10px 24px rgba(23,22,63,.10)!important;
  transform:translateY(-1px)!important;
}
html[data-app-page="gestion"] .calendar-month-card.is-compact[data-calendar-month]:focus-visible{
  outline:3px solid color-mix(in srgb,var(--app-primary-color,#385bf8) 28%,transparent)!important;
  outline-offset:2px!important;
  border-color:var(--app-primary-color,#385bf8)!important;
}
html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-grid{
  width:100%!important;
  grid-template-columns:repeat(7,minmax(82px,1fr))!important;
}
@media(max-width:650px){
  html[data-app-page="gestion"] .calendar-month-card.is-single{overflow:hidden!important;}
  html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-grid{
    width:100%!important;
    min-width:0!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    overflow:hidden!important;
  }
  html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-head{
    min-width:0!important;
    padding:8px 1px!important;
    font-size:10px!important;
  }
  html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-day{
    min-width:0!important;
    min-height:70px!important;
    padding:6px 3px!important;
    overflow:hidden!important;
  }
  html[data-app-page="gestion"] .calendar-month-card.is-single .calendar-rate{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-top:7px!important;
    padding:4px 1px!important;
    font-size:10px!important;
    line-height:1.1!important;
    letter-spacing:-.03em!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
}




/* Langues clients : les compteurs sont clairement cliquables et l'actif est visible. */
html body.rental-language-clients-page #stats .stat-filter{
  cursor:pointer!important;
  pointer-events:auto!important;
  user-select:none!important;
}
html body.rental-language-clients-page #stats .stat-filter.is-active,
html body.rental-language-clients-page #stats .stat-filter[aria-pressed="true"]{
  border-color:var(--app-primary-color,#385bf8)!important;
  background:var(--app-primary-surface,#eef3ff)!important;
  box-shadow:inset 0 0 0 1px var(--app-primary-color,#385bf8)!important;
}

/* Centre légal Espagne : compteurs compacts comme ceux de Réservations. */
html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpis{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  margin:8px 0 12px!important;
}
html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpi{
  min-height:52px!important;
  height:auto!important;
  padding:8px 11px!important;
  border-radius:14px!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpi strong{
  margin:0!important;
  font-size:20px!important;
  line-height:1!important;
}
html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpi span{
  margin-top:3px!important;
  font-size:10.5px!important;
  line-height:1.1!important;
  font-weight:800!important;
}
@media(max-width:1100px){
  html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:760px){
  html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  html[data-app-page="admin"] body.admin-view-legalcheckin .admin-legal-kpi{
    min-height:48px!important;
    padding:7px 9px!important;
  }
}

/* Réservations vue tableau : même badge clair que sur les cartes, jamais bleu foncé. */
html[data-app-page="admin"] body.admin-view-reservations .admin-res-table .rental-reservation-status-badge[data-status="current"],
html[data-app-page="admin"] body.admin-view-reservations .rental-reservation-table .rental-reservation-status-badge[data-status="current"]{
  background:var(--app-primary-surface,#eef3ff)!important;
  color:var(--app-primary-color,#385bf8)!important;
  border:1px solid var(--app-primary-border,rgba(56,91,248,.22))!important;
}
html[data-app-page="admin"] body.admin-view-reservations .admin-res-table .rental-reservation-status-badge[data-status="upcoming"],
html[data-app-page="admin"] body.admin-view-reservations .rental-reservation-table .rental-reservation-status-badge[data-status="upcoming"]{
  background:var(--app-primary-surface,#eef3ff)!important;
  color:var(--app-primary-color,#385bf8)!important;
  border:1px solid var(--app-primary-border,rgba(56,91,248,.22))!important;
}


/* V3 — Configuration mobile : formulaire élargi. */
@media (max-width:720px){
  html[data-app-page="admin"] body.admin-view-configuration .admin-configuration-panel{
    width:100% !important;
    max-width:none !important;
    padding:10px !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }
  html[data-app-page="admin"] body.admin-view-configuration .admin-configuration-layout{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    gap:12px !important;
    margin:0 !important;
  }
  html[data-app-page="admin"] body.admin-view-configuration .admin-config-main-form{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
  }
  html[data-app-page="admin"] body.admin-view-configuration .admin-config-section-block{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding:15px !important;
    box-sizing:border-box !important;
  }
}


/* APP RENTAL V3 — le bouton du menu mobile ne masque aucun titre de page. */
@media (max-width:899px){
  html[data-app-page="admin"] #adminReservationTopCard.top-card,
  html[data-app-page="admin"] .topbar > .top-card,
  html[data-app-page="gestion"] .topbar > .top-card,
  html[data-app-page="profitability"] .topbar > .top-card,
  html[data-app-page="legal-center"] .topbar > .top-card,
  html[data-app-page="owner"] .owner-topbar{
    padding-left:76px!important;
  }
}


/* APP RENTAL V3 — colonnes d’actions harmonisées dans toute l’application. */
table th.rental-table-actions-header,
table td.rental-table-actions-cell,
table th.admin-table-actions-cell,
table td.admin-table-actions-cell,
table th.admin-extra-type-actions,
table td.admin-extra-type-actions,
table th.rental-col-action,
table td.rental-col-action,
table th.col-actions,
table td.col-actions,
table th.action-col,
table td.action-col,
table th.action-column,
table td.action-column{
  text-align:right!important;
}
table td.rental-table-actions-cell > :where(.actions,.table-actions,.admin-table-actions,.admin-extra-type-actions,.action-col,.action-column,.lc-actions,.lc-booking-actions),
table td.admin-table-actions-cell > :where(.actions,.table-actions,.admin-table-actions),
table td.col-actions > :where(.actions,.table-actions),
table td.action-col > :where(.actions,.table-actions),
table td.action-column > :where(.actions,.table-actions){
  margin-left:auto!important;
  justify-content:flex-end!important;
}
table td.rental-table-actions-cell > :where(button,a,.btn),
table td.admin-table-actions-cell > :where(button,a,.btn),
table td.col-actions > :where(button,a,.btn),
table td.action-col > :where(button,a,.btn),
table td.action-column > :where(button,a,.btn){
  vertical-align:middle;
}


/* APP RENTAL V3 — contrat UX commun des lignes ouvrant un détail. */
.rental-detail-summary-row{
  cursor:pointer!important;
  transition:background-color .16s ease!important;
}
.rental-detail-summary-row:hover>td,
.rental-detail-summary-row:focus-visible>td{
  background:#f8fafc!important;
}
.rental-detail-summary-row:focus-visible{
  outline:2px solid var(--app-primary-color,#385bf8)!important;
  outline-offset:-2px!important;
}
.rental-detail-primary{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
}
.rental-row-chevron{
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  flex:0 0 14px!important;
  color:var(--muted,#64748b)!important;
  transition:transform .16s ease!important;
}
.rental-detail-summary-row.is-open .rental-row-chevron,
.rental-detail-summary-row[aria-expanded="true"] .rental-row-chevron{
  transform:rotate(90deg)!important;
}

/* APP RENTAL V3 — lignes de détail et lignes ouvrant un modal. */
.rental-detail-summary-row:hover,
.rental-detail-summary-row:focus-visible{
  background:#f8fafc!important;
}
.rental-modal-detail-row .rental-row-chevron{
  transform:none!important;
}
#adminReservationModal .admin-native-date-hidden,
#ownerReservationModal .owner-native-date-hidden{
  display:none!important;
}

/* APP RENTAL V3 — état vide commun : aucun tableau n'est initialisé sans donnée métier. */
.rental-table-empty-state{margin:12px 0;padding:18px;border:1px dashed var(--border,#dfe3f2);border-radius:14px;background:var(--surface-soft,#f8f9fc);color:var(--muted,#667085);text-align:center;font-weight:700}


/* APP RENTAL V3 — calendrier annuel lisible avec menu réduit. */
html.app-sidebar-collapsed[data-app-page="gestion"] .calendar-year-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
html[data-app-page="gestion"] .calendar-grid-compact .calendar-rate.compact{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:5px 0 0!important;
  box-sizing:border-box!important;
  padding:3px 4px!important;
  color:#172033!important;
  font-size:8.5px!important;
  font-weight:850!important;
  line-height:1.15!important;
  letter-spacing:-.015em!important;
  text-align:right!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
@media(max-width:1100px){
  html.app-sidebar-collapsed[data-app-page="gestion"] .calendar-year-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:650px){
  html.app-sidebar-collapsed[data-app-page="gestion"] .calendar-year-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* APP RENTAL V3 — finitions mobiles Analyse CA et Réservations. */
@media (max-width:640px){
  /* Analyse CA : les quatre compteurs restent toujours sur deux colonnes. */
  html[data-app-page="gestion"] #reportBody > .metric-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  html[data-app-page="gestion"] #reportBody > .metric-grid > .metric{
    width:100%!important;
    min-width:0!important;
    min-height:72px!important;
    padding:11px 12px!important;
    border:1px solid var(--border,#dbe3ef)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(20,34,70,.045)!important;
  }
  html[data-app-page="gestion"] #reportBody > .metric-grid > .metric span{
    font-size:11px!important;
    line-height:1.25!important;
  }
  html[data-app-page="gestion"] #reportBody > .metric-grid > .metric strong{
    font-size:18px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }

  /* Tous les onglets Analyse CA reprennent la carte Réservations. */
  html[data-app-page="gestion"] #reportBody .card-list{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:14px!important;
    overflow:hidden!important;
    border:1px solid var(--border,#dbe3ef)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 7px 18px rgba(20,34,70,.045)!important;
    box-sizing:border-box!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card[role="button"]{
    cursor:pointer!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px 12px!important;
    align-items:start!important;
    margin:0!important;
    padding:0 0 12px!important;
    border-bottom:1px solid var(--border,#dbe3ef)!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card header > *{
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card header > div > strong{
    display:block!important;
    color:var(--text,#17143f)!important;
    font-size:16px!important;
    line-height:1.25!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card header > strong,
  html[data-app-page="gestion"] #reportBody .report-mobile-card header > span{
    justify-self:end!important;
    color:var(--text,#17143f)!important;
    font-size:14px!important;
    font-weight:850!important;
    line-height:1.25!important;
    text-align:right!important;
    white-space:nowrap!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card dl{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    margin:12px 0 0!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card dl > div{
    min-width:0!important;
    padding:9px 10px!important;
    border:1px solid var(--border,#dbe3ef)!important;
    border-radius:12px!important;
    background:var(--soft,#f7f8fc)!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card dt{
    color:var(--muted,#667085)!important;
    font-size:11px!important;
    font-weight:750!important;
    line-height:1.2!important;
  }
  html[data-app-page="gestion"] #reportBody .report-mobile-card dd{
    min-width:0!important;
    margin:4px 0 0!important;
    color:var(--text,#17143f)!important;
    font-size:13px!important;
    font-weight:800!important;
    line-height:1.3!important;
    overflow-wrap:anywhere!important;
  }
  html[data-app-page="gestion"] #reportBody .report-extra-group{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  html[data-app-page="gestion"] #reportBody .report-extra-group-head{
    margin:0 0 10px!important;
    padding:0 0 10px!important;
    border-bottom:1px solid var(--border,#dbe3ef)!important;
  }

  /* Réservations : cinq compteurs sur exactement deux lignes (3 + 2). */
  html[data-app-page="admin"] body.admin-view-reservations #summary.summary-grid{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:8px!important;
  }
  html[data-app-page="admin"] body.admin-view-reservations #summary.summary-grid > .summary-card{
    grid-column:span 2!important;
    width:100%!important;
    min-width:0!important;
    min-height:66px!important;
    padding:9px 8px!important;
  }
  html[data-app-page="admin"] body.admin-view-reservations #summary.summary-grid > .summary-card:nth-child(4),
  html[data-app-page="admin"] body.admin-view-reservations #summary.summary-grid > .summary-card:nth-child(5){
    grid-column:span 3!important;
  }
  html[data-app-page="admin"] body.admin-view-reservations #summary .summary-number{
    font-size:18px!important;
    line-height:1.05!important;
  }
  html[data-app-page="admin"] body.admin-view-reservations #summary .summary-label{
    font-size:9.5px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
}

/* APP RENTAL — dialogues de confirmation intégrés, sans fenêtre native du navigateur. */
.rental-app-dialog-backdrop{position:fixed;inset:0;z-index:1000003;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.52);backdrop-filter:blur(3px)}
.rental-app-dialog{width:min(420px,calc(100vw - 32px));min-height:0;height:auto;max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;padding:18px;border:1px solid var(--app-border,#dce2ea);border-radius:16px;background:var(--app-surface,#fff);color:var(--app-text,#111827);box-shadow:0 20px 56px rgba(15,23,42,.26)}
.rental-app-dialog h2{margin:0;font-size:18px;line-height:1.25}.rental-app-dialog-message{margin:8px 0 0;white-space:pre-line;overflow-wrap:anywhere;color:var(--app-text-muted,#667085);font-size:14px;line-height:1.45}.rental-app-dialog-message:empty{display:none}
.rental-app-dialog-input{display:block;width:100%;min-height:40px;box-sizing:border-box;margin-top:14px;padding:8px 10px;border:1px solid var(--app-border-strong,#c7d0dc);border-radius:10px;background:#fff;color:inherit;font:inherit}.rental-app-dialog textarea.rental-app-dialog-input{min-height:100px;resize:vertical}
.rental-app-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.rental-app-dialog-actions .btn{min-height:38px;padding:7px 14px;border-radius:10px}
@media(max-width:560px){.rental-app-dialog-backdrop{padding:10px}.rental-app-dialog{width:min(400px,calc(100vw - 20px));padding:16px}.rental-app-dialog-actions{display:flex;flex-wrap:wrap}.rental-app-dialog-actions .btn{width:auto;flex:1 1 120px}}

/* V3.0.0-rc.1 — dialogues partagés : empêcher le défilement de l’arrière-plan. */
body.rental-app-dialog-open{overflow:hidden}

/* APP RENTAL 3.0.0-rc.1 — messages, modales et gabarits unifiés */
.rental-feedback-host{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:2147483000;width:min(680px,calc(100vw - 28px));pointer-events:none}
.rental-feedback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 14px 14px 18px;border:1px solid var(--app-border,#dbe3ef);border-radius:16px;background:#fff;box-shadow:0 18px 48px rgba(15,35,70,.22);opacity:0;transform:translateY(18px) scale(.98);transition:.18s ease;pointer-events:auto}
.rental-feedback.is-visible{opacity:1;transform:none}.rental-feedback.is-leaving{opacity:0;transform:translateY(12px)}
.rental-feedback__body{display:grid;gap:2px;min-width:0}.rental-feedback__body strong{font-size:13px}.rental-feedback__body span{overflow-wrap:anywhere}
.rental-feedback__actions{display:flex;gap:6px;flex:0 0 auto}.rental-feedback__actions button{min-height:36px;border:1px solid #d5deeb;border-radius:10px;background:#fff;padding:7px 10px;font-weight:750;cursor:pointer}
.rental-feedback--success{border-left:5px solid #16a364}.rental-feedback--error{border-left:5px solid #d9364f}.rental-feedback--warning{border-left:5px solid #e59a18}.rental-feedback--info{border-left:5px solid #3b5cff}
.rental-create-modal-backdrop{position:fixed;inset:0;z-index:2147482000;background:rgba(13,28,55,.52);display:grid;place-items:center;padding:22px;overflow:auto}
.rental-create-modal{width:min(1040px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 28px 80px rgba(9,25,52,.3)}
.rental-create-modal__head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e7f0;background:#fff}.rental-create-modal__head h2{margin:0}.rental-create-modal__head button{width:42px;height:42px;border:1px solid #d5deeb;border-radius:12px;background:#fff;font-size:24px;cursor:pointer}
.rental-create-modal__content{padding:0}.rental-create-modal__content>[hidden]{display:none!important}.rental-create-modal__content>.card,.rental-create-modal__content>.users-card,.rental-create-modal__content>.lc-card{margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.rental-add-trigger{margin:0 0 18px auto;display:flex}.app-main,.admin-main,.users-main,.platform-main,.maintenance-main{min-width:0}.app-content,.admin-content,.users-wrap,.platform-wrap,.maintenance-wrap{width:100%;max-width:1440px;margin-inline:auto;box-sizing:border-box}
@media(max-width:700px){.rental-feedback-host{bottom:12px}.rental-feedback{align-items:flex-start}.rental-feedback__actions [data-copy]{display:none}.rental-create-modal-backdrop{padding:8px}.rental-create-modal{max-height:calc(100vh - 16px);border-radius:16px}.rental-create-modal__head{padding:16px}}

/* APP RENTAL 3.0.0-rc.1 — largeur et formulaires harmonisés */
:root{--app-page-max:1540px}.app-content,.admin-content,.gestion-content,.profitability-content,.platform-wrap,.users-wrap,.maintenance-wrap{max-width:var(--app-page-max)!important;width:calc(100% - 32px)!important;margin-inline:auto!important}.filters,.filter-grid,.admin-reservations-filters,.report-filters{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important}.filters select,.filters input,.filter-grid select,.filter-grid input{min-width:0;width:100%}.btn.primary,button[type=submit]{min-height:42px}.modal-actions{gap:10px}.modal-actions .btn{width:auto;min-width:110px}.rental-modal-close{opacity:1!important;visibility:visible!important;z-index:20!important}


/* APP RENTAL 3.0.0-rc.1 — SaaS UI consolidation */
:root{--app-content-max:1500px;--app-sidebar-width:250px;--app-sidebar-collapsed-width:66px;--app-page-gap:18px}
html,body{overflow-x:hidden}
.app-shell,.admin-shell,.owner-shell,.lc-app,.maintenance-shell{width:100%;min-width:0}
.app-shell>main,.admin-shell>main,.owner-shell>main,.lc-app>main,.maintenance-shell>main,.main,.admin-main-content{min-width:0;width:100%;max-width:none}
.topbar,.content,.admin-content,.platform-page,.tenant-page,.maintenance-main,.profitability-main,.gestion-main{width:100%;max-width:var(--app-content-max);margin-left:auto;margin-right:auto;box-sizing:border-box}
.top-card,.panel,.card,.platform-card,.tenant-card,.maintenance-card{box-sizing:border-box}
@media (min-width:901px){
  .app-shell,.admin-shell,.owner-shell,.lc-app,.maintenance-shell{display:grid!important;grid-template-columns:var(--app-sidebar-width) minmax(0,1fr)!important;transition:grid-template-columns .18s ease}
  html.app-sidebar-collapsed .app-shell,html.app-sidebar-collapsed .admin-shell,html.app-sidebar-collapsed .owner-shell,html.app-sidebar-collapsed .lc-app,html.app-sidebar-collapsed .maintenance-shell{grid-template-columns:var(--app-sidebar-collapsed-width) minmax(0,1fr)!important}
  app-sidebar{grid-column:1;grid-row:1;position:relative;z-index:200}
  .app-shell>main,.admin-shell>main,.owner-shell>main,.lc-app>main,.maintenance-shell>main{grid-column:2;grid-row:1;position:relative;z-index:1;margin:0!important;left:auto!important;right:auto!important}
}
/* Headers and sticky tables follow the available content width */
.topbar,.top-card,.page-header,.admin-topbar,.gestion-topbar,.profitability-topbar{left:auto!important;right:auto!important;max-width:none!important}
.table-wrap,.admin-table-wrap,.data-table-wrap{max-width:100%;overflow:auto}
table{max-width:100%}
thead{z-index:4}
/* Modern Hostinger-like cards */
.top-card,.panel,.card,.platform-card,.tenant-card,.maintenance-card{border:1px solid #dbe3f1;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(25,48,83,.055)}
.btn,.button,button{min-height:42px;border-radius:10px}
.btn.primary,.button.primary{padding-left:18px;padding-right:18px;width:auto;max-width:100%}
input,select,textarea{min-height:46px;border-radius:10px}
/* Compact creation dialogs */
.rental-create-modal{width:min(900px,calc(100vw - 32px))!important;max-height:min(82vh,760px)!important;border-radius:18px!important}
.rental-create-modal__head{min-height:68px!important;padding:16px 20px!important}
.rental-create-modal__head h2{font-size:24px!important;line-height:1.2!important}
.rental-modal-x{display:grid!important;place-items:center!important;width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;color:#17233b!important;background:#fff!important;border:1px solid #cfd8e8!important;border-radius:12px!important;font-size:24px!important;font-weight:800!important;line-height:1!important;opacity:1!important}
.rental-modal-x:hover{background:#f2f5fb!important}
.rental-create-modal__content{padding:18px 20px 20px!important}
.rental-create-modal__content form,.rental-create-modal__content section{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}
.rental-create-modal__content .form-grid,.rental-create-modal__content .tenant-admin-grid,.rental-create-modal__content .user-form-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}
.rental-create-modal__content .actions,.rental-create-modal__content .form-actions{justify-content:flex-end!important}
.rental-create-modal__content button[type=submit]{width:auto!important;min-width:130px!important}
.password-field,.password-input-wrap{position:relative;display:flex;align-items:center}
.password-field input,.password-input-wrap input{padding-right:48px!important;width:100%}
.password-field .password-toggle,.password-input-wrap .password-toggle,[data-password-toggle]{position:absolute!important;right:6px!important;top:50%!important;transform:translateY(-50%)!important;width:38px!important;height:38px!important;min-height:38px!important;padding:0!important}
/* Tenant users form aligned and roomy */
.users-card,.tenant-users-card{width:100%;max-width:none!important}
.users-card form:not(.user-editor-form),.tenant-users-card form:not(.user-editor-form){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;align-items:start}
.users-card form:not(.user-editor-form) .actions,.tenant-users-card form:not(.user-editor-form) .actions{grid-column:1/-1;justify-content:flex-start}
/* Notifications: only errors/warnings are persistent; no copy on info/success */
.rental-feedback--success [data-copy],.rental-feedback--info [data-copy]{display:none!important}
/* Clean empty states: no toast needed */
.empty,.empty-state{border-radius:14px}
@media(max-width:1050px){.rental-create-modal__content .form-grid,.rental-create-modal__content .tenant-admin-grid,.rental-create-modal__content .user-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.rental-create-modal{width:calc(100vw - 16px)!important;max-height:92vh!important}.rental-create-modal__content .form-grid,.rental-create-modal__content .tenant-admin-grid,.rental-create-modal__content .user-form-grid,.users-card form:not(.user-editor-form),.tenant-users-card form:not(.user-editor-form){grid-template-columns:1fr!important}.topbar,.content,.admin-content{padding-left:10px!important;padding-right:10px!important}}

/* APP RENTAL 3.0.0-rc.1 — hiérarchie globale des modales au-dessus du menu latéral */
html[data-app-page] :where(.dialog-backdrop,.stay-charge-modal-backdrop,.modal-backdrop,.owner-modal-backdrop,.rental-app-dialog-backdrop,.rental-create-modal-backdrop,.rate-info-modal){z-index:2147483200!important}
html[data-app-page="admin"] body #adminCalendarDayModal.modal-backdrop:not(.hidden),
html[data-app-page="admin"] body #adminReservationModal.modal-backdrop:not(.hidden){z-index:2147483200!important}
html[data-app-page="admin"] body #adminCancelModal.modal-backdrop:not(.hidden),
html[data-app-page="admin"] body #adminDeleteModal.modal-backdrop:not(.hidden){z-index:2147483210!important}
html[data-app-page] .rental-feedback-host{z-index:2147483400!important}
@media(min-width:901px){
  html[data-app-page] .app-shell>main,
  html[data-app-page] .admin-shell>main,
  html[data-app-page] .owner-shell>main,
  html[data-app-page] .lc-app>main,
  html[data-app-page] .maintenance-shell>main{z-index:auto!important}
}

/* ========================================================================== */
/* APP RENTAL 3.0.0-rc.1 — DESIGN SYSTEM UNIFIÉ 2026-08-08                         */
/* Couche canonique finale : Admin / Gestion / Owner / Ménage / SaaS / Tech.  */
/* ========================================================================== */
:root{
  --app-bg:#f4f6fb;
  --app-surface:#ffffff;
  --app-surface-soft:#f8fafc;
  --app-surface-muted:#f2f5fa;
  --app-text:#172033;
  --app-text-muted:#667085;
  --app-border:#dfe5ef;
  --app-border-strong:#cfd8e8;
  --app-primary:var(--rental-primary,var(--app-primary-color,#385bf8));
  --app-danger:#b42318;
  --app-success:#067647;
  --app-warning:#b54708;
  --app-radius-xs:8px;
  --app-radius-sm:10px;
  --app-radius:14px;
  --app-radius-lg:18px;
  --app-shadow-sm:0 2px 8px rgba(25,48,83,.035);
  --app-shadow:0 8px 24px rgba(25,48,83,.055);
  --app-shadow-modal:0 28px 80px rgba(9,25,52,.26);
  --app-control-h:44px;
  --app-content-max:1500px;
  --app-page-x:clamp(14px,2.4vw,34px);
  --app-page-y:24px;
  --app-gap:18px;
}

/* Base commune */
html[data-app-page]{background:var(--app-bg)!important;color:var(--app-text)!important}
html[data-app-page] body{background:var(--app-bg)!important;color:var(--app-text)!important;font-family:var(--app-font,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;font-size:14px!important;line-height:1.45!important}
html[data-app-page] :where(.main,.admin-main-content,.platform-console-main,.technical-main,.maintenance-main){min-width:0!important}
html[data-app-page] :where(.content,.admin-content,.owner-content,.platform-console-wrap,.technical-wrap,.maintenance-wrap,.gestion-content,.profitability-content){box-sizing:border-box;min-width:0;max-width:var(--app-content-max)!important}

/* Typographie */
html[data-app-page] :where(h1,.page-title,.owner-page-title,.admin-welcome-title,.top-title h1,.platform-hero h1){color:var(--app-text)!important;font-size:clamp(24px,2vw,30px)!important;font-weight:800!important;line-height:1.16!important;letter-spacing:-.025em!important}
html[data-app-page] :where(h2,.panel-head h2,.platform-panel h2,.platform-card h2,.users-card h2,.lc-card h2,.maint-card h2){color:var(--app-text)!important;font-size:20px!important;font-weight:800!important;line-height:1.25!important;letter-spacing:-.015em!important}
html[data-app-page] :where(h3,.panel-head h3,.platform-card h3,.maint-card h3){color:var(--app-text)!important;font-size:16px!important;font-weight:800!important;line-height:1.3!important}
html[data-app-page] :where(.muted,.subtitle,.owner-sync-status,.field-help,.admin-field-help,.owner-field-help,.cell-sub,small){color:var(--app-text-muted)!important}

/* En-têtes de page : même gabarit partout */
html[data-app-page] :where(.top-card,.owner-page-header,.platform-hero,.admin-welcome-card,.page-header,.technical-header,.maint-header){
  width:100%!important;min-height:88px!important;margin:0 0 var(--app-gap)!important;padding:20px 22px!important;
  border:1px solid var(--app-border)!important;border-radius:var(--app-radius-lg)!important;background:var(--app-surface)!important;
  box-shadow:var(--app-shadow)!important;box-sizing:border-box!important;
}
html[data-app-page] :where(.top-card,.owner-page-header,.platform-hero,.page-header){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important}
html[data-app-page] .platform-hero p{max-width:900px!important}
html[data-app-page] :where(.top-title p,.platform-hero p,.page-header p){margin:5px 0 0!important;color:var(--app-text-muted)!important;font-size:13px!important;line-height:1.45!important}

/* Surfaces / cartes */
html[data-app-page] :where(
  .panel,.card,.owner-view-panel,.platform-panel,.platform-card,.users-card,.tenant-users-card,
  .lc-card,.maint-card,.maintenance-card,.connector-panel,.rental-page-panel,.ob-card,
  .summary-card,.metric,.platform-stat,.platform-stat-card,.platform-audit-stat,.settings-card
){
  box-sizing:border-box!important;border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;
  background:var(--app-surface)!important;box-shadow:var(--app-shadow-sm)!important;
}
html[data-app-page] :where(.panel,.platform-panel,.platform-card,.users-card,.tenant-users-card,.lc-card,.maint-card,.maintenance-card,.connector-panel,.rental-page-panel,.ob-card){padding:20px!important}
html[data-app-page] :where(.panel-head,.platform-card-head,.connector-panel-head,.maint-section-head){display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 16px!important}
html[data-app-page] :where(.panel-head,.platform-card-head,.connector-panel-head,.maint-section-head) :where(h2,h3,p){margin-top:0!important}

/* Compteurs */
html[data-app-page] :where(.summary-grid,.summary,.metric-grid,.platform-stats,.platform-stat-grid,.platform-audit-stats){gap:12px!important}
html[data-app-page] :where(.summary-card,.metric,.platform-stat,.platform-stat-card,.platform-audit-stat){min-height:88px!important;padding:15px 16px!important}
html[data-app-page] :where(.summary-number,.metric strong,.platform-stat strong,.platform-stat-card strong){color:var(--app-text)!important;font-size:22px!important;font-weight:850!important;line-height:1.08!important}
html[data-app-page] :where(.summary-label,.metric span,.platform-stat span,.platform-stat-card span){color:var(--app-text-muted)!important;font-size:12px!important;font-weight:700!important;line-height:1.3!important}

/* Formulaires */
html[data-app-page] label{margin:0!important;color:#344054!important;font-size:13px!important;font-weight:700!important;line-height:1.3!important}
html[data-app-page] :where(.field,.platform-field,.lc-field){gap:6px!important}
html[data-app-page] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html[data-app-page] select,
html[data-app-page] textarea{
  width:100%!important;max-width:100%!important;min-height:var(--app-control-h)!important;margin:0!important;padding:9px 11px!important;
  border:1px solid var(--app-border-strong)!important;border-radius:var(--app-radius-sm)!important;background:#fff!important;color:var(--app-text)!important;
  font:inherit!important;line-height:1.3!important;box-shadow:none!important;box-sizing:border-box!important;
}
html[data-app-page] textarea{min-height:104px!important;resize:vertical!important}
html[data-app-page] input:focus,html[data-app-page] select:focus,html[data-app-page] textarea:focus{outline:0!important;border-color:var(--app-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--app-primary) 14%,transparent)!important}
html[data-app-page] :where(.form-grid,.grid,.platform-form-grid,.admin-modal-grid,.owner-modal-grid,.settings-fields){gap:16px!important}
html[data-app-page] :where(.form-actions,.actions,.platform-actions,.modal-actions,.owner-modal-actions,.lc-actions){gap:9px!important}

/* Boutons : une seule famille visuelle */
html[data-app-page] :where(.btn,.button,.platform-btn,.lc-btn){
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:42px!important;
  padding:8px 14px!important;border:1px solid var(--app-border-strong)!important;border-radius:var(--app-radius-sm)!important;
  background:#fff!important;color:#344054!important;font:700 14px/1.2 var(--app-font,Inter,system-ui,sans-serif)!important;
  text-decoration:none!important;box-shadow:none!important;cursor:pointer!important;white-space:nowrap!important;
}
html[data-app-page] :where(.btn,.button,.platform-btn,.lc-btn):hover{border-color:#aeb9c8!important;background:var(--app-surface-soft)!important;transform:none!important}
html[data-app-page] :where(.btn.primary,.btn.active,.button.primary,.platform-btn.primary,.lc-btn.primary,button.primary){border-color:var(--app-primary)!important;background:var(--app-primary)!important;color:#fff!important}
html[data-app-page] :where(.btn.secondary,.button.secondary,.platform-btn.secondary,.lc-btn.secondary){border-color:var(--app-border-strong)!important;background:#fff!important;color:#344054!important}
html[data-app-page] :where(.btn.danger,.button.danger,.platform-btn.danger,.lc-btn.danger,button.danger){border-color:var(--app-danger)!important;background:var(--app-danger)!important;color:#fff!important}
html[data-app-page] :where(.btn.ghost,.button.ghost,.platform-btn.ghost){border-color:transparent!important;background:transparent!important;box-shadow:none!important}
html[data-app-page] :where(.btn.small,.btn.compact,.platform-btn.compact,.lc-btn.compact){min-height:36px!important;padding:6px 11px!important;font-size:12px!important}
html[data-app-page] :where(.btn.icon,.icon-action-btn,.admin-icon-btn,.view-icon-btn){width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;border-radius:10px!important}
html[data-app-page] :where(.btn,.button,.platform-btn,.lc-btn):disabled{opacity:.52!important;cursor:not-allowed!important}

/* Interrupteurs / cases */
html[data-app-page] input[type="checkbox"],html[data-app-page] input[type="radio"]{accent-color:var(--app-primary)}
html[data-app-page] .module-setting-card{border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;background:#fff!important;box-shadow:none!important}
html[data-app-page] .module-setting-card:hover{border-color:color-mix(in srgb,var(--app-primary) 38%,var(--app-border))!important;background:#fbfcff!important}

/* Tableaux : en-tête, densité et actions identiques */
html[data-app-page] :where(.table-wrap,.admin-table-wrap,.data-table-wrap,.platform-table-wrap,.maint-table-wrap,.connector-table-wrap,.scroll){
  width:100%!important;max-width:100%!important;overflow:auto!important;border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;background:#fff!important;box-shadow:none!important;
}
html[data-app-page] table{width:100%!important;max-width:100%!important;border-collapse:separate!important;border-spacing:0!important;color:var(--app-text)!important;font-size:13px!important}
html[data-app-page] th{padding:11px 12px!important;border:0!important;border-bottom:1px solid var(--app-border)!important;background:#f6f8fc!important;color:#475467!important;font-size:11px!important;font-weight:800!important;line-height:1.2!important;letter-spacing:.025em!important;text-transform:uppercase!important;vertical-align:middle!important;white-space:nowrap!important}
html[data-app-page] td{padding:12px!important;border:0!important;border-bottom:1px solid #edf0f5!important;background:#fff!important;color:var(--app-text)!important;vertical-align:middle!important;line-height:1.35!important}
html[data-app-page] tbody tr:last-child td{border-bottom:0!important}
html[data-app-page] tbody tr:hover td{background:#fafbfe!important}
html[data-app-page] :where(.cell-primary,.table-primary){font-weight:800!important;color:var(--app-text)!important}
html[data-app-page] :where(.cell-sub,.table-secondary){margin-top:3px!important;color:var(--app-text-muted)!important;font-size:12px!important;line-height:1.35!important}
html[data-app-page] :where(td.cell-action,td.actions-cell){white-space:normal!important}

/* Onglets / filtres */
html[data-app-page] :where(.tabs,.tenant-tabs,.platform-channex-tabs){display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:6px!important;padding:5px!important;border:1px solid var(--app-border)!important;border-radius:12px!important;background:#eef2f7!important;box-shadow:none!important}
html[data-app-page] :where(.tabs button,.tenant-tab,.platform-channex-tab){min-height:38px!important;padding:7px 13px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:#475467!important;font-weight:750!important;text-decoration:none!important;box-shadow:none!important}
html[data-app-page] :where(.tabs button.active,.tenant-tab.active,.platform-channex-tab.is-active){background:#fff!important;color:var(--app-primary)!important;box-shadow:0 1px 4px rgba(25,48,83,.10)!important}
html[data-app-page] :where(.filters,.toolbar,.filter-grid,.journal-filter-row){border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;background:#fff!important;box-shadow:none!important;padding:12px!important}

/* Badges et états */
html[data-app-page] :where(.badge,.pill,.status,.platform-badge,.tag,[class*="status-badge"]){display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:25px!important;padding:4px 8px!important;border-radius:999px!important;background:#eef2f7!important;color:#475467!important;font-size:11px!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important}
html[data-app-page] :where(.badge.ok,.platform-badge.ok,.status.ok,.tag.ok){background:#ecfdf3!important;color:#067647!important}
html[data-app-page] :where(.badge.bad,.platform-badge.bad,.status.bad,.tag.bad){background:#fff1f0!important;color:#b42318!important}
html[data-app-page] :where(.badge.warn,.platform-badge.warn,.status.warn,.tag.warn){background:#fffaeb!important;color:#b54708!important}

/* Notices et états vides */
html[data-app-page] :where(.notice,.platform-notice,.lc-notice,.scope-note,.platform-scope-note){padding:12px 14px!important;border:1px solid var(--app-border)!important;border-radius:12px!important;background:#f8fafc!important;color:#475467!important;box-shadow:none!important}
html[data-app-page] :where(.notice.error,.platform-notice.error){border-color:#fecdca!important;background:#fff6f5!important;color:#b42318!important}
html[data-app-page] :where(.notice.ok,.platform-notice.success){border-color:#abefc6!important;background:#ecfdf3!important;color:#067647!important}
html[data-app-page] :where(.notice.warning,.platform-notice.warning){border-color:#fedf89!important;background:#fffaeb!important;color:#b54708!important}
html[data-app-page] :where(.empty,.empty-state,.platform-empty){min-height:84px!important;padding:20px!important;border:1px dashed var(--app-border-strong)!important;border-radius:var(--app-radius)!important;background:#fafbfc!important;color:var(--app-text-muted)!important;text-align:center!important;box-shadow:none!important}

/* Modales */
html[data-app-page] :where(.modal-backdrop,.owner-modal-backdrop,.rental-create-modal-backdrop,.audit-modal-backdrop,.rental-app-dialog-backdrop){background:rgba(15,23,42,.50)!important;backdrop-filter:blur(3px)!important;padding:18px!important}
html[data-app-page] :where(.admin-modal,.owner-modal,.rental-create-modal,.audit-modal,.rental-app-dialog,[role="dialog"]){border:1px solid var(--app-border)!important;border-radius:var(--app-radius-lg)!important;background:#fff!important;color:var(--app-text)!important;box-shadow:var(--app-shadow-modal)!important}
html[data-app-page] :where(.admin-modal,.owner-modal){padding:22px!important}
html[data-app-page] .rental-create-modal{display:flex!important;flex-direction:column!important;width:min(980px,calc(100vw - 28px))!important;max-height:min(90dvh,860px)!important;overflow:hidden!important}
html[data-app-page] .rental-create-modal__head{min-height:66px!important;padding:15px 20px!important;border-bottom:1px solid var(--app-border)!important;background:#fff!important}
html[data-app-page] .rental-create-modal__head h2{font-size:21px!important}
html[data-app-page] .rental-create-modal__content{flex:1 1 auto!important;overflow:auto!important;padding:20px!important}
html[data-app-page] :where(.rental-modal-close,.rental-modal-x){display:grid!important;place-items:center!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;border:1px solid var(--app-border-strong)!important;border-radius:10px!important;background:#fff!important;color:#344054!important;opacity:1!important}
html[data-app-page] :where(.modal-actions,.owner-modal-actions,.rental-app-dialog-actions){display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:9px!important;margin-top:18px!important}

/* Connexion / écrans autonomes */
html[data-app-page="auth"] :where(.rental-auth-page,.login-wrap,.standalone-page){min-height:100dvh!important;padding:24px!important;background:var(--app-bg)!important}
html[data-app-page="auth"] :where(.rental-auth-card,.login-card,.standalone-card,.card){width:min(520px,100%)!important;margin-inline:auto!important;padding:24px!important;border:1px solid var(--app-border)!important;border-radius:var(--app-radius-lg)!important;background:#fff!important;box-shadow:var(--app-shadow)!important}
html[data-app-page="auth"] :where(.login-actions,.actions){display:flex!important;gap:9px!important;margin-top:16px!important}
html[data-app-page="auth"] :where(.login-actions .btn,.actions .btn,button[type="submit"]){min-height:44px!important}

/* Owner et future application Ménage : même langage visuel */
html[data-app-page="owner"] .owner-content,
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-content{display:grid!important;gap:var(--app-gap)!important}
html[data-app-page="owner"] .owner-view-panel,
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-view-panel{padding:20px!important}
html[data-app-page="owner"] .owner-topbar,
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-topbar{max-width:var(--app-content-max)!important;margin-left:auto!important;margin-right:auto!important}

/* Plateforme : même hiérarchie que le reste de l'app */
html[data-app-page="admin"] .platform-console-main{padding:var(--app-page-y) var(--app-page-x)!important}
html[data-app-page="admin"] .platform-console-wrap{max-width:var(--app-content-max)!important}
html[data-app-page="admin"] .platform-hero{min-height:88px!important}
html[data-app-page="admin"] .platform-panel,
html[data-app-page="admin"] .platform-card{margin-bottom:var(--app-gap)!important}
html[data-app-page="admin"] .platform-stat-grid,
html[data-app-page="admin"] .platform-audit-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}

/* Mobile : mêmes règles partout */
@media(max-width:900px){
  :root{--app-page-y:14px;--app-page-x:12px}
  html[data-app-page] :where(.top-card,.owner-page-header,.platform-hero,.admin-welcome-card,.page-header,.technical-header,.maint-header){min-height:0!important;padding:16px!important;border-radius:14px!important}
  html[data-app-page] :where(.top-card,.owner-page-header,.platform-hero,.page-header){align-items:flex-start!important;flex-direction:column!important}
  html[data-app-page] :where(.panel,.platform-panel,.platform-card,.users-card,.tenant-users-card,.lc-card,.maint-card,.maintenance-card,.connector-panel,.rental-page-panel,.ob-card,.owner-view-panel){padding:16px!important;border-radius:14px!important}
  html[data-app-page] .rental-create-modal{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important}
  html[data-app-page] .rental-create-modal__content{padding:16px!important}
}
@media(max-width:640px){
  html[data-app-page] :where(h1,.page-title,.owner-page-title,.admin-welcome-title,.top-title h1,.platform-hero h1){font-size:23px!important}
  html[data-app-page] :where(.modal-actions,.owner-modal-actions,.rental-app-dialog-actions){display:grid!important;grid-template-columns:1fr!important}
  html[data-app-page] :where(.modal-actions,.owner-modal-actions,.rental-app-dialog-actions) :where(.btn,.button,.platform-btn,.lc-btn){width:100%!important}
  html[data-app-page="admin"] .platform-console-main{padding:76px 10px 16px!important}
}

/* Phase 6.1 — Espace Ménage : mêmes primitives que Owner, adapté au terrain. */
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-app{width:100%;max-width:var(--app-content-max);margin:0 auto;padding:var(--app-page-y) var(--app-page-x) 42px;box-sizing:border-box}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-topbar{position:sticky;top:12px;z-index:20;background:#fff!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-title{margin:0!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-subtitle{margin:5px 0 0!important;color:var(--app-text-muted)!important;font-size:13px!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-identity{min-width:0;margin-right:4px;color:var(--app-text-muted);font-size:12px;line-height:1.3;text-align:right}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-identity strong{display:block;color:var(--app-text);font-weight:800;overflow-wrap:anywhere}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-content{display:grid;gap:var(--app-gap)}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:12px!important;margin:0!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-date-fields{display:grid;grid-template-columns:repeat(2,minmax(150px,240px));gap:10px}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-kpi{min-height:88px;padding:15px 16px;border:1px solid var(--app-border);border-radius:var(--app-radius);background:#fff;box-shadow:var(--app-shadow-sm)}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-kpi span{display:block;color:var(--app-text-muted);font-size:12px;font-weight:700}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-kpi strong{display:block;margin-top:5px;color:var(--app-text);font-size:22px;font-weight:850;line-height:1.08}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-list{display:grid;gap:12px}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task{overflow:hidden;border:1px solid var(--app-border);border-radius:var(--app-radius-lg);background:#fff;box-shadow:var(--app-shadow-sm)}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task.is-turnover{border-color:#f2c077}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #edf0f5;background:#fff}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-property{color:var(--app-text);font-size:18px;font-weight:850;line-height:1.2}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-dates{margin-top:5px;color:var(--app-text-muted);font-size:13px;line-height:1.4}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-turnover{display:inline-flex;align-items:center;margin-top:8px;padding:5px 8px;border-radius:999px;background:#fff7e8;color:#9a6700;font-size:11px;font-weight:800}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:5px 9px;border-radius:999px;background:#eef2f7;color:#475467;font-size:11px;font-weight:800;white-space:nowrap}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.EN_COURS{background:#eef2ff;color:#3448a8}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.FAIT{background:#ecfdf3;color:#067647}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.PROBLEME{background:#fff1f0;color:#b42318}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task-body{padding:16px 18px 18px}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions button{min-height:40px;padding:7px 10px;border:1px solid var(--app-border-strong);border-radius:10px;background:#fff;color:#475467;font:700 13px/1.2 var(--app-font,Inter,system-ui,sans-serif);cursor:pointer;box-shadow:none}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions button:hover{background:var(--app-surface-soft)}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions button.active{border-color:color-mix(in srgb,var(--app-primary) 45%,var(--app-border));background:#eef2ff;color:var(--app-primary)}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions button[data-status="FAIT"].active{border-color:#abefc6;background:#ecfdf3;color:#067647}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions button[data-status="PROBLEME"].active{border-color:#fecdca;background:#fff1f0;color:#b42318}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-maintenance{display:grid;gap:10px;padding:13px;border:1px solid var(--app-border);border-radius:12px;background:#fafbfc}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-maintenance>label:first-child{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-maintenance input[type="checkbox"]{width:19px;height:19px;flex:0 0 auto}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-save-row{display:flex;justify-content:flex-end;margin-top:14px}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border:1px solid var(--app-border-strong);border-radius:var(--app-radius-sm);background:#fff;color:#344054;font:700 14px/1.2 var(--app-font,Inter,system-ui,sans-serif);cursor:pointer}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-btn.primary{border-color:var(--app-primary);background:var(--app-primary);color:#fff}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) :where(.cleaner-empty,.cleaner-loading,.cleaner-error){min-height:90px;display:grid;place-items:center;padding:22px;border:1px dashed var(--app-border-strong);border-radius:var(--app-radius);background:#fafbfc;color:var(--app-text-muted);text-align:center}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-error{border-style:solid;border-color:#fecdca;background:#fff6f5;color:#b42318}
@media(max-width:760px){
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-app{padding:10px 8px 28px}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-topbar{top:6px}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-header-actions{width:100%;justify-content:flex-start}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-identity{width:100%;margin:0;text-align:left}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-toolbar{grid-template-columns:1fr!important}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-date-fields{grid-template-columns:1fr 1fr}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) #cleanerRefresh{width:100%!important}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-grid{grid-template-columns:1fr}
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task-head,:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-task-body{padding:14px}
}
@media(max-width:430px){:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-date-fields{grid-template-columns:1fr}:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-header-actions .btn{flex:1 1 auto}}

/* Les tableaux plateforme en cartes restent sans cadre de scroll sur mobile. */
@media(max-width:760px){html[data-app-page="admin"] .platform-table-wrap:has(.platform-table--responsive){overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important}}

/* Phase 6.2 — l'espace Interventions réutilise strictement le shell terrain de l'espace Ménage. */
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.URGENTE{background:#fff1f0;color:#b42318}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.HAUTE{background:#fff7e8;color:#9a6700}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.BLOQUE{background:#fff1f0;color:#b42318}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status.RESOLU{background:#ecfdf3;color:#067647}
:is(html[data-app-page="interventions"]) .intervention-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:8px}
:is(html[data-app-page="interventions"]) .intervention-note{grid-column:1/-1}
:is(html[data-app-page="interventions"]) .cleaner-status-actions button[data-status="RESOLU"].active{border-color:#abefc6;background:#ecfdf3;color:#067647}
:is(html[data-app-page="interventions"]) .cleaner-status-actions button[data-status="BLOQUE"].active{border-color:#fecdca;background:#fff1f0;color:#b42318}

/* Phase 6.3–6.6 — affectations terrain, rapport propriétaire et facturation SaaS */
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-assignment-info{display:grid;gap:4px;padding:12px 13px;border:1px solid var(--app-border);border-radius:12px;background:#fafbfc}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-assignment-info span{color:var(--app-text-muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.025em}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-assignment-info strong{color:var(--app-text);font-size:13px;overflow-wrap:anywhere}
html[data-app-page="owner"] .owner-report-toolbar{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;margin-bottom:14px!important}
html[data-app-page="owner"] .owner-report-toolbar .field{min-width:220px!important;margin:0!important}
html[data-app-page="owner"] .owner-report-kpis{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;margin:0 0 14px!important}
html[data-app-page="owner"] .owner-report-kpis .summary-card{min-height:92px!important;margin:0!important;padding:15px 16px!important;border:1px solid var(--app-border)!important;border-radius:var(--app-radius)!important;background:#fff!important;box-shadow:var(--app-shadow-sm)!important}
html[data-app-page="owner"] .owner-report-kpis .summary-card p{margin:0!important;color:var(--app-text-muted)!important;font-size:12px!important;font-weight:700!important}
html[data-app-page="owner"] .owner-report-kpis .summary-card strong{display:block!important;margin-top:5px!important;font-size:20px!important;color:var(--app-text)!important}
html[data-app-page="owner"] .owner-report-kpis .summary-card small{display:block!important;margin-top:4px!important;color:var(--app-text-muted)!important}
html[data-app-page="owner"] .owner-report-table td:not(:first-child),html[data-app-page="owner"] .owner-report-table th:not(:first-child){text-align:right!important}
html[data-app-page="admin"] .billing-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:14px 0 18px}
html[data-app-page="admin"] .billing-kpi{min-height:86px;padding:14px 15px;border:1px solid var(--app-border);border-radius:var(--app-radius);background:#fff;box-shadow:var(--app-shadow-sm)}
html[data-app-page="admin"] .billing-kpi span{display:block;color:var(--app-text-muted);font-size:12px;font-weight:700}
html[data-app-page="admin"] .billing-kpi strong{display:block;margin-top:6px;color:var(--app-text);font-size:20px;font-weight:850}
html[data-app-page="admin"] .billing-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
html[data-app-page="admin"] .billing-notes{grid-column:1/-1!important}
html[data-app-page="admin"] .billing-notes textarea{min-height:104px!important}
@media(max-width:900px){html[data-app-page="admin"] .billing-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-app-page="admin"] .billing-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}html[data-app-page="owner"] .owner-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){html[data-app-page="admin"] .billing-kpi-grid,html[data-app-page="admin"] .billing-form-grid,html[data-app-page="owner"] .owner-report-kpis{grid-template-columns:1fr!important}html[data-app-page="owner"] .owner-report-toolbar .field,html[data-app-page="owner"] #ownerReportRefresh{width:100%!important}}

/* APP RENTAL V3.0.0-rc.1 — surfaces structurelles sans bordure externe.
   Les contrôles interactifs (inputs, selects, boutons), tableaux, messages et modales
   conservent leurs propres bordures pour rester lisibles et accessibles. */
html[data-app-page] :where(
  .topbar > .top-card,
  .panel,
  .card,
  .box,
  .rental-page-panel,
  .owner-view-panel,
  .section-card,
  .platform-card,
  .tenant-card,
  .maintenance-card,
  .filters,
  .toolbar
){
  border-width:0 !important;
}

/* OWNER_STAY_SIMPLE_CHOICES */
.admin-owner-stay-simple-options,.owner-stay-services-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.admin-owner-stay-simple-options .checkline,.owner-stay-services-options .checkline{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:start!important;gap:10px!important;margin:0!important;min-width:0;padding:12px 14px!important}.admin-owner-stay-simple-options .checkline input,.owner-stay-services-options .checkline input{width:18px!important;height:18px!important;margin:2px 0 0!important}.admin-owner-stay-simple-options .checkline>span,.owner-stay-services-options .checkline>span{display:flex!important;flex-direction:column!important;gap:3px!important;min-width:0}.admin-owner-stay-simple-options .checkline strong,.owner-stay-services-options .checkline strong{display:block!important;line-height:1.25!important}.admin-owner-stay-simple-options .checkline small,.owner-stay-services-options .checkline small{display:block!important;line-height:1.35!important;color:var(--muted)!important}.admin-logement-edit-guard{margin:0 18px 14px;padding:12px 14px;border-radius:14px;background:#f7f9ff;display:flex;flex-direction:column;gap:4px}.admin-logement-edit-guard.is-protected{background:#fff8e8}.admin-logement-edit-guard strong{font-size:13px}.admin-logement-edit-guard span,.admin-logement-edit-guard small{line-height:1.35;color:var(--muted)}.admin-logement-section-note{margin:0 0 12px;padding:9px 12px;border-radius:12px;background:#fff8e8;font-size:12px;line-height:1.4}.admin-logement-modal select:disabled,.admin-logement-modal input:disabled{opacity:.72;cursor:not-allowed;background:#f3f5f8}@media(max-width:680px){.admin-owner-stay-simple-options,.owner-stay-services-options{grid-template-columns:1fr}.admin-logement-edit-guard{margin-left:0;margin-right:0}}

/* APP RENTAL V3.0.0-rc.1 — largeur mobile canonique.
   Une seule marge extérieure est gérée par le shell; les contenus et cartes ne se
   recentrent plus avec un second `calc(100% - 32px)` ou des marges automatiques. */
@media (max-width: 900px){
  :root{--app-mobile-gutter:8px}

  html[data-app-page] :where(
    .app-content,.admin-content,.gestion-content,.profitability-content,.owner-content,
    .platform-console-wrap,.platform-wrap,.users-wrap,.maintenance-wrap,.technical-wrap,
    .content,#content,#viewRoot,.cleaner-content
  ){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }

  html[data-app-page="admin"] .admin-main-content.main,
  html[data-app-page="gestion"] main.main,
  html[data-app-page="profitability"] main.main,
  html[data-app-page="legal-center"] .lc-main,
  html[data-app-page="maintenance"] .maintenance-main{
    padding-left:var(--app-mobile-gutter)!important;
    padding-right:var(--app-mobile-gutter)!important;
  }
  html[data-app-page="owner"] #ownerApp:not(.hidden){
    padding-left:var(--app-mobile-gutter)!important;
    padding-right:var(--app-mobile-gutter)!important;
  }

  html[data-app-page] :where(
    .cards,.admin-cards,.card-list,.owner-res-grid,.cleaner-grid,
    .summary,.summary-grid,.metric-grid,.settings-grid,.report-extra-groups,
    .platform-stat-grid,.platform-audit-stats,.billing-kpi-grid
  ){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  html[data-app-page] :where(
    .card,.summary-card,.mobile-card,.settings-card,.platform-card,.tenant-card,
    .maintenance-card,.maint-card,.users-card,.tenant-users-card,.lc-card,
    .connector-panel,.rental-page-panel,.ob-card,.owner-view-panel,.owner-admin-card,
    .cleaner-task,.billing-kpi
  ){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* Les cartes Réservations sont une seule colonne pleine largeur sur téléphone/tablette étroite. */
  html[data-app-page="admin"] #content .admin-cards,
  html[data-app-page="admin"] .admin-reservations-section .admin-cards,
  html[data-app-page="owner"] .owner-res-grid,
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}


/* APP RENTAL V3.0.0-rc.1 — verrou mobile final : priorité aux shells réels.
   Empêche les anciennes règles plus spécifiques de recréer une largeur centrée réduite. */
@media (max-width:900px){
  html[data-app-page="admin"] body .app-shell > main.admin-main-content.main,
  html[data-app-page="gestion"] body .app-shell > main.main,
  html[data-app-page="profitability"] body .app-shell > main.main,
  html[data-app-page="owner"] body #ownerApp:not(.hidden),
  html[data-app-page="cleaner"] body .cleaner-app,
  html[data-app-page="interventions"] body .cleaner-app,
  html[data-app-page="maintenance"] body .maintenance-main,
  html[data-app-page] body .platform-console-main{
    width:100%!important;min-width:0!important;max-width:100%!important;
    margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;
  }
  html[data-app-page="admin"] body #content,
  html[data-app-page="admin"] body #content > .admin-cards,
  html[data-app-page="gestion"] body .gestion-content,
  html[data-app-page="profitability"] body #viewRoot,
  html[data-app-page="owner"] body .owner-content,
  html[data-app-page="owner"] body .owner-res-grid,
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) body .cleaner-content,
  :is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) body .cleaner-grid{
    width:100%!important;min-width:0!important;max-width:100%!important;
    margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;
  }
}

/* Historique compact des changements de statut terrain. */
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-last{
  margin-top:12px;color:var(--app-text-muted,#667085);font-size:12px
}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-history{
  margin-top:12px;border-top:1px solid var(--app-border,#e4e8ef);padding-top:10px
}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-history summary{
  cursor:pointer;color:var(--app-text-muted,#667085);font-size:12px;font-weight:700
}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-history>div{
  display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #f0f2f6;font-size:12px
}
:is(html[data-app-page="cleaner"],html[data-app-page="interventions"]) .cleaner-status-history>div span{color:var(--app-text-muted,#667085);white-space:nowrap}
