:root {
    --bg: #f5f6f8;
    --surface: #ffffff;
    --surface-soft: #f9fafb;
    --text: #151821;
    --muted: #657082;
    --border: #e1e5eb;
    --primary: #111827;
    --primary-hover: #283244;
    --accent: #5f56e8;
    --accent-hover: #756df0;
    --accent-soft: rgba(95, 86, 232, .10);
    --danger: #b42318;
    --danger-soft: #fef3f2;
    --success: #067647;
    --success-soft: #ecfdf3;
    --warning: #b54708;
    --warning-soft: #fffaeb;
    --radius: 14px;
    --shadow: 0 12px 35px rgba(17, 24, 39, .07);
    --topbar: 70px;
    --sidebar: 230px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--text);
    background: var(--bg);
    line-height: 1.5;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; color: var(--text); background: var(--bg); }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
small { color: var(--muted); }

.app-shell { min-height: 100vh; }
.topbar { position: fixed; z-index: 50; top: 0; left: 0; right: 0; height: var(--topbar); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--border); backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; gap: 11px; color: var(--text); }
.brand:hover { color: var(--text); }
.brand > span:last-child { display: grid; line-height: 1.1; }
.brand strong { font-size: 18px; letter-spacing: -.02em; }
.brand small { margin-top: 4px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; background: linear-gradient(145deg, var(--accent), #8a67e8); font-weight: 800; box-shadow: 0 8px 22px rgba(95,86,232,.24); }
.topbar-actions { display: flex; align-items: center; gap: 14px; }
.property-pill { display: inline-flex; align-items: center; gap: 7px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 7px 11px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 999px; font-size: 13px; font-weight: 650; }
.user-name { color: var(--muted); font-size: 13px; }
.nav-toggle { display: none; align-items: center; gap: 6px; border: 1px solid var(--border); border-radius: 9px; background: #fff; padding: 8px 12px; }
.sidebar { position: fixed; z-index: 40; top: var(--topbar); left: 0; bottom: 0; width: var(--sidebar); padding: 18px 12px 28px; overflow-y: auto; background: var(--surface); border-right: 1px solid var(--border); }
.sidebar a { display: flex; align-items: center; gap: 11px; min-height: 42px; margin: 2px 0; padding: 9px 12px; border-radius: 10px; color: #4c5667; font-size: 14px; font-weight: 560; transition: color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.sidebar a:hover { color: var(--accent-hover); background: rgba(95, 86, 232, .065); }
.sidebar a.active, .sidebar a.active:hover { color: var(--accent); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.nav-divider { display: block; margin: 18px 12px 7px; color: #8b94a3; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; }
.content { margin-left: var(--sidebar); padding: calc(var(--topbar) + 32px) 34px 60px; min-height: 100vh; }
.content-wide { margin-left: 0; max-width: 1240px; margin-right: auto; margin-inline: auto; }

.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-header h1 { margin: 1px 0 6px; font-size: clamp(27px, 3vw, 38px); line-height: 1.15; letter-spacing: -.035em; }
.page-header p { margin: 0; color: var(--muted); }
.eyebrow { color: var(--accent)!important; font-size: 11px; font-weight: 780; text-transform: uppercase; letter-spacing: .12em; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.top-gap { margin-top: 22px!important; }

.panel { position: relative; padding: 22px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 1px 2px rgba(17,24,39,.02); }
.panel h2 { margin: 0 0 16px; font-size: 18px; letter-spacing: -.02em; }
.panel h3 { margin: 18px 0 10px; font-size: 15px; }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 17px; }
.panel-header h2 { margin: 0; }
.panel-header p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.panel-header > a { color: var(--accent); font-size: 13px; font-weight: 650; }
.two-columns { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .9fr); gap: 20px; }
.card-list { display: grid; gap: 15px; }
.card-list.compact { gap: 9px; }

.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.stats-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.stats-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); margin: 0; }
.stat { display: grid; gap: 8px; padding: 19px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.stat span { color: var(--muted); font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.stat strong { font-size: 25px; line-height: 1.1; letter-spacing: -.035em; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 14px; border: 1px solid transparent; border-radius: 10px; font-size: 13px; font-weight: 700; line-height: 1; transition: .16s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: var(--primary); border-color: var(--primary); }
.btn-primary:hover { color: #fff; background: var(--primary-hover); }
.btn-secondary { color: var(--text); background: #fff; border-color: var(--border); }
.btn-secondary:hover { color: var(--text); border-color: #b8c0cc; }
.btn-ghost { color: var(--muted); background: transparent; border-color: transparent; }
.btn-danger { color: var(--danger); background: var(--danger-soft); border-color: #fecdca; }
.btn-danger:hover { color: #912018; background: #fee4e2; }
.btn-sm { min-height: 34px; padding: 7px 11px; font-size: 12px; }
.btn-xs { min-height: 28px; padding: 5px 8px; font-size: 11px; border-radius: 8px; }
.btn-block { width: 100%; }

.alert { margin-bottom: 18px; padding: 13px 16px; border: 1px solid; border-radius: 11px; font-size: 14px; }
.alert ul { margin: 7px 0 0; padding-left: 20px; }
.alert-success { color: var(--success); background: var(--success-soft); border-color: #abefc6; }
.alert-danger { color: var(--danger); background: var(--danger-soft); border-color: #fecdca; }
.alert-warning { color: var(--warning); background: var(--warning-soft); border-color: #fedf89; }
.copy-token { display: block; margin-top: 7px; padding: 9px; word-break: break-all; background: rgba(255,255,255,.7); border-radius: 7px; cursor: copy; }
.copy-token.copied::after { content: "  ✓ copié"; font-family: inherit; font-weight: 700; }

label { display: grid; gap: 6px; color: #3d4655; font-size: 12px; font-weight: 650; }
label small { display: block; font-weight: 450; }
input, select, textarea { width: 100%; min-height: 41px; padding: 9px 11px; color: var(--text); background: #fff; border: 1px solid #ccd2db; border-radius: 9px; outline: none; transition: border .15s, box-shadow .15s; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(95,86,232,.12); }
input[readonly] { background: var(--surface-soft); }
select[multiple] { min-height: 100px; }
.check { display: inline-flex; grid-template-columns: auto 1fr; align-items: center; gap: 8px; font-size: 13px; font-weight: 550; }
.check input { width: 17px; min-height: 17px; margin: 0; accent-color: var(--accent); }
.stack { display: grid; gap: 14px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.form-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.span-2 { grid-column: 1 / -1; }
.form-panel { padding: 25px; }
.form-section { padding: 7px 0 24px; margin-bottom: 20px; border-bottom: 1px solid var(--border); }
.form-section:last-of-type { margin-bottom: 0; }
.form-section h2 { margin-bottom: 16px; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding-top: 4px; }
.form-actions-between { justify-content: space-between; }
.form-inline { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 10px; }
.form-inline label { min-width: 170px; flex: 1; }
.checkbox-row, .check-grid { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 22px; }
.check-grid.vertical { display: grid; gap: 8px; }
fieldset { padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; }
legend { padding: 0 6px; color: var(--muted); font-size: 12px; font-weight: 650; }
.danger-zone { display: flex; justify-content: flex-end; margin-top: 18px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { padding: 11px 12px; color: var(--muted); border-bottom: 1px solid var(--border); text-align: left; font-size: 10px; font-weight: 760; text-transform: uppercase; letter-spacing: .07em; white-space: nowrap; }
td { padding: 13px 12px; border-bottom: 1px solid #edf0f3; vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fbfcfd; }
.cell-sub { display: block; margin-top: 3px; }
.empty-cell { padding: 28px; color: var(--muted); text-align: center; }
.filter-bar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 11px; margin-bottom: 16px; padding: 15px; }
.filter-bar label { min-width: 145px; flex: 1; }
.filter-bar label:first-child { min-width: 240px; flex: 2; }
.pagination-wrap { margin-top: 15px; }
.pagination-wrap nav > div:first-child { display: none; }
.pagination-wrap nav > div:last-child { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pagination-wrap nav span, .pagination-wrap nav a { display: inline-flex; min-width: 34px; min-height: 34px; align-items: center; justify-content: center; padding: 6px 9px; border: 1px solid var(--border); background: #fff; }

.badge { display: inline-flex; align-items: center; width: max-content; padding: 4px 8px; border-radius: 999px; color: #475467; background: #f2f4f7; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.badge-lg { padding: 6px 10px; font-size: 11px; }
.badge-success, .status-confirmed, .status-checked_in, .payment-paid, .payment-refunded { color: var(--success); background: var(--success-soft); }
.status-pending, .payment-pending, .payment-partially_paid, .payment-partially_refunded { color: var(--warning); background: var(--warning-soft); }
.status-cancelled, .status-expired, .status-no_show, .payment-failed, .payment-cancelled { color: var(--danger); background: var(--danger-soft); }
.badge-muted, .status-checked_out, .payment-unpaid, .payment-created { color: #475467; background: #f2f4f7; }

.timeline { display: grid; }
.timeline > a, .timeline > div { display: grid; grid-template-columns: 65px 1fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.timeline > :last-child { border-bottom: 0; }
.timeline time { color: var(--accent); font-size: 12px; font-weight: 750; }
.timeline span { display: grid; }
.timeline small { margin-top: 2px; }

.property-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(270px,1fr)); gap: 16px; }
.property-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 20px; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.property-card:hover { color: var(--text); border-color: #c4c9d2; transform: translateY(-2px); }
.property-card > span:nth-child(2) { display: grid; }
.property-initial { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; color: #fff; background: var(--primary); font-size: 18px; font-weight: 800; }
.empty-state { padding: 55px 24px; color: var(--muted); background: #fff; border: 1px dashed #cbd2dc; border-radius: var(--radius); text-align: center; }
.empty-state h2 { color: var(--text); }

.accommodation-card .panel-header p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.unit-list, .compact-list { display: grid; }
.unit-list > div, .compact-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.unit-list > div > span:first-child, .compact-list > div > span:first-child { display: grid; flex: 1; }
.unit-list > div:last-child, .compact-list > div:last-child { border-bottom: 0; }
.inline-form { margin-top: 13px; }
.inline-form summary, details summary { cursor: pointer; }
.inline-form summary { color: var(--accent); font-size: 13px; font-weight: 650; }
.inline-form form { margin-top: 12px; }

.calendar-wrap { padding: 0; max-width: 100%; }
.calendar-table { min-width: 980px; }
.calendar-table th, .calendar-table td { padding: 6px; text-align: center; }
.calendar-table thead th { height: 56px; }
.calendar-table thead th span, .calendar-table thead th strong { display: block; }
.calendar-table thead th strong { margin-top: 2px; color: var(--text); font-size: 14px; }
.calendar-table .sticky-col { position: sticky; z-index: 4; left: 0; min-width: 170px; background: #fff; text-align: left; box-shadow: 1px 0 0 var(--border); }
.calendar-table tbody .sticky-col { display: table-cell; }
.calendar-table tbody .sticky-col small { display: block; }
.calendar-table td { min-width: 48px; }
.calendar-table .weekend { background: #faf9ff; }
.calendar-table .closed-day { background: #fff1f1; }
.rate { display: block; color: var(--muted); font-size: 10px; }
.occupancy { display: inline-flex; margin-top: 3px; padding: 2px 5px; border-radius: 6px; color: var(--success); background: var(--success-soft); font-size: 10px; font-weight: 750; }
.occupancy.full { color: var(--danger); background: var(--danger-soft); }

.booking-items { display: grid; gap: 9px; }
.booking-items article { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 14px; align-items: center; padding: 13px; background: var(--surface-soft); border-radius: 10px; }
.booking-items article > div { display: grid; }
.note { margin-top: 16px; padding: 13px; background: #f7f9ff; border-left: 3px solid var(--accent); border-radius: 7px; }
.note.internal { background: var(--warning-soft); border-color: #f79009; }
.note p { margin: 5px 0 0; white-space: pre-line; }
.details { display: grid; grid-template-columns: 115px 1fr; gap: 9px 14px; margin: 0; }
.details dt { color: var(--muted); font-size: 12px; }
.details dd { margin: 0; overflow-wrap: anywhere; }
.action-grid { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 9px; }
.action-grid details { position: relative; }
.action-grid details > summary { list-style: none; }
.popover-form { display: grid; gap: 10px; min-width: 280px; margin-top: 8px; padding: 14px; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); }

.entity-editor { position: relative; border: 1px solid var(--border); border-radius: 11px; background: #fff; }
.entity-editor > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; list-style: none; }
.entity-editor > summary::-webkit-details-marker { display: none; }
.entity-editor > summary > span:first-child { display: grid; }
.entity-editor[open] .details-chevron { transform: rotate(180deg); }
.entity-editor[open] > summary { border-bottom: 1px solid var(--border); background: var(--surface-soft); }
.editor-body { padding: 16px; }
.editor-delete { display: flex; justify-content: flex-end; padding: 0 16px 16px; }
.create-panel { margin-top: 15px; }
.create-panel > summary { list-style: none; width: max-content; }
.connection-card { display: grid; gap: 11px; padding: 14px; border: 1px solid var(--border); border-radius: 11px; }
.connection-card > div:first-child { display: grid; }
.connection-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 12px; }
.error-text { margin: 0; color: var(--danger); font-size: 12px; }
.info-box { margin-top: 20px; padding: 13px; color: #344054; background: #f0f7ff; border: 1px solid #b2ddff; border-radius: 10px; }
.info-box p { margin: 5px 0 0; font-size: 12px; }
.code-block { overflow-x: auto; padding: 14px; color: #d1e9ff; background: #101828; border-radius: 10px; font-size: 12px; white-space: pre-wrap; word-break: break-word; }
.integration-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.integration-grid article { display: grid; gap: 7px; padding: 14px; background: var(--surface-soft); border-radius: 10px; }

.auth-page { display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at top, #eeecff 0, #f7f8fa 43%, #f3f5f7 100%); }
.auth-card { width: min(100%, 430px); padding: 34px; background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.7); border-radius: 20px; box-shadow: 0 30px 80px rgba(17,24,39,.13); }
.auth-brand { margin-bottom: 28px; }
.auth-card h1 { margin: 0 0 8px; font-size: 30px; letter-spacing: -.035em; }
.auth-card > p { margin: 0 0 23px; }
.muted { color: var(--muted); }
.payment-result { text-align: center; }
.result-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 20px; border-radius: 50%; font-size: 27px; font-weight: 800; }
.result-icon.success { color: var(--success); background: var(--success-soft); }
.result-icon.cancel { color: var(--danger); background: var(--danger-soft); }


/* Icônes et navigation */
.material-symbols-outlined {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    font-family: "Material Symbols Outlined";
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    font-synthesis: none;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "liga";
    font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 20;
}
.nav-icon { width: 21px; max-width: 21px; overflow: hidden; font-size: 20px; }
.nav-context { display: block; margin: 1px 12px 13px; color: var(--accent); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.btn-icon { gap: 7px; }
.btn-icon .material-symbols-outlined { font-size: 18px; }
.property-pill .material-symbols-outlined { font-size: 18px; }
.system-pill { color: var(--accent); background: var(--accent-soft); border-color: rgba(95,86,232,.20); }
.area-switch:hover { color: var(--accent-hover); border-color: rgba(95,86,232,.30); background: rgba(95,86,232,.06); }
.panel-heading-icon { color: var(--accent); font-size: 27px; }
.empty-icon { display: flex; width: max-content; margin: 0 auto 10px; color: var(--accent); font-size: 34px; }
.entity-summary-actions { display: inline-flex; align-items: center; gap: 8px; }
.details-chevron { color: var(--muted); transition: transform .16s ease; }
.entity-person { display: flex!important; grid-template-columns: none!important; align-items: center; gap: 10px; }
.entity-person > span:last-child { display: grid; }
.entity-avatar { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.property-arrow { color: var(--muted); transition: transform .16s ease, color .16s ease; }
.property-card:hover .property-arrow { color: var(--accent); transform: translateX(3px); }
.compact-empty { padding: 30px 18px; }
.compact-empty p { margin: 0; }
.create-panel-inline { position: relative; margin-top: 0; }
.create-panel-inline > summary::-webkit-details-marker { display: none; }
.create-panel-inline[open] > summary { color: #fff; background: var(--accent); border-color: var(--accent); }
.create-popover { position: absolute; z-index: 20; top: calc(100% + 10px); right: 0; width: min(720px, 82vw); max-height: calc(100vh - 120px); overflow-y: auto; box-shadow: 0 24px 65px rgba(17,24,39,.18); }

/* Debug / Logs superadministrateur */
.debug-header { align-items: center; }
.health-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.health-summary > div { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.health-count { display: inline-flex; align-items: baseline; gap: 6px; padding: 8px 11px; border-radius: 999px; font-size: 12px; font-weight: 650; }
.health-count strong { font-size: 18px; }
.health-green { color: var(--success); background: var(--success-soft); }
.health-orange { color: var(--warning); background: var(--warning-soft); }
.health-red { color: var(--danger); background: var(--danger-soft); }
.health-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.health-group { padding: 19px; }
.health-group-title { display: flex; align-items: center; gap: 9px; }
.health-group-title .material-symbols-outlined { color: var(--accent); font-size: 23px; }
.health-group-title h2 { margin: 0; }
.health-checks { display: grid; gap: 8px; }
.health-check { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: flex-start; padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); }
.health-check > div { display: grid; gap: 2px; min-width: 0; }
.health-check strong { font-size: 13px; }
.health-check span:not(.health-light) { color: #344054; font-size: 12px; overflow-wrap: anywhere; }
.health-check small { font-size: 11px; overflow-wrap: anywhere; }
.health-light { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; box-shadow: 0 0 0 4px rgba(71,84,103,.08); }
.health-check.status-green .health-light { background: #12b76a; box-shadow: 0 0 0 4px rgba(18,183,106,.12); }
.health-check.status-orange .health-light { background: #f79009; box-shadow: 0 0 0 4px rgba(247,144,9,.13); }
.health-check.status-red .health-light { background: #f04438; box-shadow: 0 0 0 4px rgba(240,68,56,.12); }
.health-check.status-green { border-color: #d1fadf; }
.health-check.status-orange { border-color: #fedf89; }
.health-check.status-red { border-color: #fecdca; }
.metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric-card { display: grid; gap: 5px; min-width: 0; padding: 15px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); }
.metric-card > span { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.metric-card strong { font-size: 21px; letter-spacing: -.025em; overflow-wrap: anywhere; }
.metric-card small { line-height: 1.35; }
.toggle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.toggle-card { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; min-height: 78px; padding: 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); cursor: pointer; }
.toggle-card > .material-symbols-outlined { color: var(--accent); font-size: 22px; }
.toggle-card input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.toggle-copy { display: grid; gap: 3px; min-width: 0; }
.toggle-copy strong { color: var(--text); font-size: 13px; }
.toggle-copy small { font-size: 11px; font-weight: 450; line-height: 1.35; }
.toggle-switch { position: relative; display: block; width: 38px; height: 22px; border-radius: 999px; background: #d0d5dd; transition: .16s ease; }
.toggle-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(17,24,39,.2); transition: transform .16s ease; }
.toggle-card input:checked + .toggle-switch { background: var(--accent); }
.toggle-card input:checked + .toggle-switch::after { transform: translateX(16px); }
.toggle-card:has(input:focus-visible) { outline: 3px solid rgba(95,86,232,.18); outline-offset: 2px; }
.debug-fields { margin-top: 5px; }
.debug-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.debug-log-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.log-entry { border: 1px solid var(--border); border-radius: 10px; background: var(--surface-soft); }
.log-entry + .log-entry { margin-top: 8px; }
.log-entry > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 13px; list-style: none; }
.log-entry > summary::-webkit-details-marker { display: none; }
.log-entry > summary span:first-child { display: grid; gap: 2px; min-width: 0; }
.log-entry > summary strong, .log-entry > summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.log-entry pre { max-height: 420px; margin: 0; padding: 13px; overflow: auto; color: #d1e9ff; background: #101828; border-radius: 0 0 9px 9px; font-size: 11px; white-space: pre-wrap; overflow-wrap: anywhere; }
.log-path { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.row-warning { background: #fffcf5; }
.row-danger { background: #fff7f6; }
.debug-log-preview { display: block; max-width: 520px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.constants-table code { color: #344054; }

@media (max-width: 1180px) {
    .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .toggle-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1050px) {
    .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .two-columns { grid-template-columns: 1fr; }
    .form-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 780px) {
    :root { --topbar: 62px; }
    .topbar { padding: 0 14px; }
    .brand small, .user-name, .property-pill { display: none; }
    .nav-toggle { display: inline-flex; margin-left: auto; margin-right: 10px; }
    .sidebar { width: min(84vw,280px); transform: translateX(-105%); transition: transform .2s ease; box-shadow: var(--shadow); }
    .sidebar.is-open { transform: translateX(0); }
    .content, .content-wide { margin-left: 0; padding: calc(var(--topbar) + 22px) 15px 45px; }
    .page-header { display: grid; }
    .stats-grid, .stats-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .form-grid, .form-grid-3 { grid-template-columns: 1fr; }
    .span-2 { grid-column: auto; }
    .panel, .form-panel { padding: 17px; }
    .booking-items article { grid-template-columns: 1fr; }
    .details { grid-template-columns: 90px 1fr; }
    .integration-grid { grid-template-columns: 1fr; }
    .health-summary { align-items: flex-start; flex-direction: column; }
    .health-groups, .debug-log-grid, .toggle-grid, .metrics-grid { grid-template-columns: 1fr; }
    .create-popover { position: fixed; top: calc(var(--topbar) + 12px); left: 12px; right: 12px; width: auto; }
    .form-actions-between, .debug-actions { align-items: stretch; flex-direction: column; }
}
@media (max-width: 470px) {
    .stats-grid, .stats-grid-3, .stats-grid-2 { grid-template-columns: 1fr; }
    .topbar-actions { gap: 5px; }
    .auth-card { padding: 25px; }
    .filter-bar { display: grid; }
}
@media print {
    .topbar, .sidebar, .btn, form, .nav-toggle { display: none!important; }
    .content { margin: 0; padding: 0; }
    .panel { box-shadow: none; break-inside: avoid; }
}

/* Installation web sans SSH */
.setup-page { min-height: 100vh; margin: 0; padding: 34px 18px 60px; background: radial-gradient(circle at top left, #efedff 0, #f7f8fb 34%, #eef2f7 100%); }
.setup-shell { width: min(1040px,100%); margin: 0 auto; }
.setup-shell-small { width: min(680px,100%); padding-top: 8vh; }
.setup-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; }
.setup-badge { padding: 8px 12px; color: #473aa7; background: #eeecff; border: 1px solid #d9d5ff; border-radius: 999px; font-size: 12px; font-weight: 750; }
.setup-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 30px; margin-bottom: 22px; padding: 32px; color: #fff; background: linear-gradient(145deg,#171923,#2f3547); border-radius: 22px; box-shadow: 0 24px 60px rgba(17,24,39,.16); }
.setup-hero h1, .setup-complete h1 { margin: 4px 0 10px; font-size: clamp(30px,5vw,48px); letter-spacing: -.045em; }
.setup-hero .muted { max-width: 720px; margin: 0; color: #d0d5dd; font-size: 16px; line-height: 1.65; }
.eyebrow { margin: 0; color: var(--accent); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.setup-hero .eyebrow { color: #c7c2ff; }
.setup-domain { min-width: 220px; padding: 16px 18px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; }
.setup-domain span, .setup-domain small { display: block; color: #cfd4df; font-size: 11px; }
.setup-domain strong { display: block; margin: 4px 0; font-size: 18px; }
.setup-form { display: grid; gap: 18px; }
.setup-panel { padding: 26px; background: rgba(255,255,255,.98); border: 1px solid #dfe4ec; border-radius: 18px; box-shadow: 0 14px 38px rgba(15,23,42,.07); }
.setup-panel h2 { margin: 3px 0 0; font-size: 22px; letter-spacing: -.025em; }
.setup-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.step-number { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; color: #fff; background: #171923; border-radius: 50%; font-weight: 800; }
.status-pill { padding: 7px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; }
.status-pill.ok { color: var(--success); background: var(--success-soft); }
.status-pill.error { color: var(--danger); background: var(--danger-soft); }
.requirements-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.requirement { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-soft); }
.requirement span { display: grid; place-items: center; flex: 0 0 27px; width: 27px; height: 27px; border-radius: 50%; font-weight: 850; }
.requirement p { margin: 0; font-size: 12px; font-weight: 650; line-height: 1.35; }
.requirement.ok span { color: var(--success); background: var(--success-soft); }
.requirement.error { border-color: #fecdca; background: #fff7f6; }
.requirement.error span { color: var(--danger); background: var(--danger-soft); }
.form-help { margin: -4px 0 18px; padding: 12px 14px; color: #344054; background: #f0f7ff; border: 1px solid #b2ddff; border-radius: 10px; font-size: 13px; line-height: 1.55; }
.form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.setup-panel label { display: grid; gap: 7px; color: #344054; font-size: 12px; font-weight: 750; }
.setup-panel label small { color: var(--muted); font-weight: 450; }
.setup-panel code { overflow-wrap: anywhere; }
.setup-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; background: #fff; border: 1px solid #dfe4ec; border-radius: 16px; box-shadow: 0 14px 38px rgba(15,23,42,.06); }
.setup-submit p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.setup-submit .btn { min-width: 190px; }
.setup-complete { text-align: center; }
.setup-complete .success-icon { display: grid; place-items: center; width: 70px; height: 70px; margin: 0 auto 20px; color: var(--success); background: var(--success-soft); border-radius: 50%; font-size: 34px; font-weight: 900; }
.recovery-box { display: grid; gap: 9px; margin: 28px 0 20px; padding: 18px; text-align: left; color: #344054; background: #fffaeb; border: 1px solid #fedf89; border-radius: 13px; }
.recovery-box > span { font-size: 12px; font-weight: 800; }
.recovery-box code { padding: 12px; color: #fff; background: #171923; border-radius: 9px; font-size: 13px; cursor: copy; overflow-wrap: anywhere; }
.recovery-box small { color: #7a5f20; }
.setup-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0 0 24px; text-align: left; }
.setup-summary > div { display: grid; gap: 4px; padding: 13px; background: var(--surface-soft); border-radius: 10px; }
.setup-summary span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.setup-summary strong { overflow-wrap: anywhere; font-size: 12px; }
.runtime-card { text-align: center; }
.runtime-icon { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 18px; border-radius: 50%; font-size: 28px; font-weight: 900; }
.runtime-icon.working { color: #4338ca; background: #eef2ff; }
.runtime-icon.error { color: var(--danger); background: var(--danger-soft); }
@media (max-width: 820px) {
    .setup-hero { grid-template-columns: 1fr; align-items: start; }
    .setup-domain { min-width: 0; }
    .requirements-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .setup-summary { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .setup-page { padding: 20px 12px 42px; }
    .setup-header, .setup-submit { align-items: stretch; flex-direction: column; }
    .setup-badge { width: max-content; }
    .setup-hero, .setup-panel { padding: 21px; }
    .requirements-grid, .form-grid.two { grid-template-columns: 1fr; }
    .setup-submit .btn { width: 100%; }
}

/* Booky 1.2.0 — interface enrichie, formulaires modaux, médias et Stripe Connect */
body {
    background:
        radial-gradient(circle at 96% 5%, rgba(95, 86, 232, .09), transparent 24rem),
        radial-gradient(circle at 10% 88%, rgba(117, 109, 240, .06), transparent 30rem),
        var(--bg);
}
.content { max-width: 1600px; }
.panel {
    border-color: #e3e6ef;
    box-shadow: 0 10px 30px rgba(30, 41, 59, .045), 0 1px 3px rgba(30, 41, 59, .04);
}
.panel:hover { border-color: #d8dcef; }
.page-header h1 { text-wrap: balance; }
.btn { gap: 7px; }
.btn .material-symbols-outlined { font-size: 18px; }
.btn-accent { color: #fff; background: var(--accent); border-color: var(--accent); box-shadow: 0 8px 20px rgba(95, 86, 232, .20); }
.btn-accent:hover { color: #fff; background: var(--accent-hover); border-color: var(--accent-hover); box-shadow: 0 10px 24px rgba(95, 86, 232, .26); }
.btn-accent:focus-visible { outline: 3px solid rgba(95,86,232,.28); outline-offset: 2px; }
.btn-icon { gap: 7px; }
.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 20; line-height: 1; }
.nav-context { display: flex; align-items: center; margin: 0 12px 12px; color: #7c8494; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.sidebar .nav-icon { flex: 0 0 20px; font-size: 20px; }
.heading-with-badge { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.heading-with-badge h2 { margin: 0; }
.table-subline, .cell-sub { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.empty-state-inline { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); }
.empty-state-featured { width: 100%; padding: 56px 24px; border: 1px dashed #cfd4e6; border-radius: 18px; background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(247,247,255,.95)); text-align: center; }
.empty-state-featured > .material-symbols-outlined { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 14px; color: var(--accent); background: var(--accent-soft); border-radius: 18px; font-size: 30px; }
.empty-state-featured h2 { margin: 0 0 6px; }
.empty-state-featured p { margin: 0 auto 18px; color: var(--muted); }

.section-title-with-icon { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.section-title-with-icon h2 { margin: 0 0 3px; }
.section-title-with-icon p { margin: 0; color: var(--muted); font-size: 13px; }
.section-icon { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; color: var(--accent); background: var(--accent-soft); border-radius: 11px; font-size: 21px; }
.form-section-highlight { margin: -4px -4px 20px; padding: 18px; background: linear-gradient(145deg, rgba(95,86,232,.055), rgba(255,255,255,.65)); border: 1px solid rgba(95,86,232,.13); border-radius: 14px; }
.status-options { align-items: stretch; }
.compact-toggle { min-width: 260px; flex: 1; }
.compact-toggle > span:last-child { display: grid; gap: 2px; }
.compact-toggle strong { font-size: 13px; }
.compact-toggle small { font-size: 11px; }
label.is-disabled { opacity: .48; }

/* Fenêtre modale globale */
body.modal-open { overflow: hidden; }
.booky-modal[hidden] { display: none; }
.booky-modal { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; padding: 28px; overflow-y: auto; background: rgba(15, 23, 42, .52); backdrop-filter: blur(7px); opacity: 0; transition: opacity .16s ease; }
.booky-modal.is-open { opacity: 1; }
.booky-modal-panel { width: min(1080px, 100%); max-height: calc(100vh - 56px); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; background: #f8f9fc; border: 1px solid rgba(255,255,255,.65); border-radius: 22px; box-shadow: 0 30px 100px rgba(15,23,42,.28); transform: translateY(12px) scale(.985); transition: transform .16s ease; }
.booky-modal.is-open .booky-modal-panel { transform: translateY(0) scale(1); }
.booky-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--border); }
.booky-modal-header .eyebrow { margin: 0; }
.booky-modal-header h2 { margin: 2px 0 0; font-size: 20px; letter-spacing: -.025em; }
.modal-close { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; padding: 0; color: #5e6675; background: #f7f8fa; border: 1px solid var(--border); border-radius: 12px; }
.modal-close:hover { color: var(--accent); background: var(--accent-soft); border-color: rgba(95,86,232,.2); }
.modal-close:focus-visible { outline: 3px solid rgba(95,86,232,.25); outline-offset: 2px; }
.booky-modal-body { min-height: 0; padding: 22px; overflow-y: auto; overscroll-behavior: contain; }
.booky-modal-body .modal-page-header { display: none; }
.booky-modal-body .modal-page-content { display: grid; gap: 0; }
.booky-modal-body .form-panel { margin: 0; box-shadow: none; }
.booky-modal-body .auto-modal-content > form, .booky-modal-body .auto-modal-content > .editor-body { margin: 0; padding: 4px; }
.booky-modal-body .editor-delete { margin: 14px 4px 4px; }
.modal-loading { display: grid; place-items: center; gap: 12px; min-height: 320px; color: var(--muted); }
.modal-loading .material-symbols-outlined { color: var(--accent); font-size: 40px; animation: booky-spin 1s linear infinite; }
.modal-errors { margin-bottom: 16px; }
@keyframes booky-spin { to { transform: rotate(360deg); } }
.js details.entity-editor > summary, .js details.create-panel > summary { cursor: pointer; }
.js details.entity-editor[open] > :not(summary), .js details.create-panel[open] > :not(summary) { display: none; }

/* Équipements */
.amenity-catalogue { display: grid; gap: 18px; }
.amenity-category { padding: 15px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 13px; }
.amenity-category h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #3d4655; font-size: 13px; }
.amenity-category h3 .material-symbols-outlined { color: var(--accent); font-size: 19px; }
.amenity-chips, .selection-chips, .weekday-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.amenity-chip, .selection-chip { display: inline-flex; grid-template-columns: none; align-items: center; gap: 7px; min-height: 38px; padding: 8px 11px; color: #586274; background: #fff; border: 1px solid #dce0e8; border-radius: 999px; font-size: 12px; font-weight: 650; cursor: pointer; user-select: none; transition: .15s ease; }
.amenity-chip:hover, .selection-chip:hover { color: var(--accent-hover); border-color: rgba(95,86,232,.35); background: rgba(95,86,232,.045); }
.amenity-chip input, .selection-chip input { position: absolute; width: 1px; height: 1px; min-height: 1px; margin: -1px; opacity: 0; pointer-events: none; }
.amenity-chip .material-symbols-outlined, .selection-chip .material-symbols-outlined { font-size: 18px; }
.amenity-chip.is-selected, .selection-chip.is-selected { color: var(--accent); background: var(--accent-soft); border-color: rgba(95,86,232,.42); box-shadow: inset 0 0 0 1px rgba(95,86,232,.08); }
.amenity-chip.is-selected .material-symbols-outlined { font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 20; }
.amenity-chip:has(input:focus-visible), .selection-chip:has(input:focus-visible) { outline: 3px solid rgba(95,86,232,.22); outline-offset: 2px; }
.legacy-amenities-note { display: flex; gap: 10px; margin-top: 16px; padding: 12px 14px; color: #5d4b17; background: #fffaeb; border: 1px solid #fedf89; border-radius: 11px; }
.legacy-amenities-note p { margin: 2px 0 0; font-size: 12px; }

/* Upload et galerie photo */
.photo-dropzone { padding: 24px; text-align: center; background: linear-gradient(145deg, #fafaff, #f4f3ff); border: 2px dashed #c7c2ff; border-radius: 16px; transition: .16s ease; }
.photo-dropzone.is-dragging { background: #eeecff; border-color: var(--accent); transform: scale(1.005); }
.photo-file-input { position: absolute; width: 1px; height: 1px; min-height: 1px; margin: -1px; opacity: 0; pointer-events: none; }
.photo-upload-button { display: inline-flex; grid-template-columns: none; align-items: center; gap: 12px; width: auto; padding: 14px 20px; color: #fff; background: var(--accent); border-radius: 12px; box-shadow: 0 10px 25px rgba(95,86,232,.22); cursor: pointer; }
.photo-upload-button:hover { background: var(--accent-hover); }
.photo-upload-button .material-symbols-outlined { font-size: 25px; }
.photo-upload-button > span:last-child { display: grid; gap: 3px; text-align: left; }
.photo-upload-button strong { font-size: 14px; }
.photo-upload-button small { color: rgba(255,255,255,.8); font-size: 11px; }
.photo-file-input:focus-visible + .photo-upload-button { outline: 3px solid rgba(95,86,232,.3); outline-offset: 3px; }
.photo-upload-help { margin: 12px 0 0; color: var(--muted); font-size: 11px; }
.photo-preview-grid, .media-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 17px; }
.photo-preview-card, .media-card { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
.photo-preview-card img, .media-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-preview-card figcaption { padding: 8px 9px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.photo-client-error { color: var(--danger); font-weight: 700; }
.media-card.is-primary { box-shadow: 0 0 0 2px var(--accent); }
.media-card-overlay { position: absolute; left: 7px; right: 7px; bottom: 7px; display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 6px; background: rgba(255,255,255,.94); border-radius: 9px; box-shadow: 0 6px 18px rgba(15,23,42,.15); }
.media-card-overlay .btn { min-width: 0; }
.media-card-overlay .material-symbols-outlined, .badge .material-symbols-outlined { font-size: 15px; }

/* Hébergements */
.accommodation-grid { grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); }
.accommodation-card-rich { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 0; padding: 0; overflow: hidden; }
.accommodation-cover { display: grid; place-items: center; min-height: 100%; color: #9098a7; background: linear-gradient(145deg, #eeecff, #f7f7fb); }
.accommodation-cover img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.accommodation-cover > .material-symbols-outlined { align-self: end; font-size: 36px; }
.accommodation-cover > small { align-self: start; }
.accommodation-card-body { min-width: 0; padding: 19px; }
.mini-amenity-list { display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 14px; }
.mini-amenity-list > span { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; color: #5d6575; background: var(--surface-soft); border-radius: 999px; font-size: 10px; }
.mini-amenity-list .material-symbols-outlined { font-size: 14px; }

/* Règles de réservation */
.rules-overview { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; color: #4d478b; background: linear-gradient(145deg, #f2f0ff, #fafaff); border-color: #d9d5ff; }
.rules-overview > .material-symbols-outlined { color: var(--accent); }
.rules-overview p { margin: 0; }
.rule-card { overflow: hidden; }
.rule-color-bar { position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--rule-color); }
.rule-facts { display: flex; flex-wrap: wrap; gap: 8px; }
.rule-facts > span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; color: #596273; background: var(--surface-soft); border-radius: 9px; font-size: 11px; }
.rule-facts .material-symbols-outlined { color: var(--rule-color); font-size: 17px; }
.day-rule-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.day-rule-grid fieldset { padding: 15px; }
.rule-enable { margin-bottom: 12px; }
.weekday-chips .selection-chip { min-width: 43px; justify-content: center; padding-inline: 9px; }
.accommodation-selection .selection-chip { border-radius: 11px; }

/* Email templates */
.variable-strip { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; padding: 14px 16px; background: #f2f0ff; border: 1px solid #d9d5ff; border-radius: 13px; }
.variable-strip > .material-symbols-outlined { color: var(--accent); }
.variable-strip > div { display: grid; gap: 4px; }
.variable-strip code { display: inline-block; margin: 2px 3px 2px 0; padding: 3px 6px; color: #4c44bd; background: rgba(255,255,255,.78); border-radius: 6px; font-size: 10px; }
.email-template-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(360px,1fr)); gap: 16px; }
.email-template-card { display: grid; gap: 14px; padding: 17px; background: #fff; border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 10px 30px rgba(30,41,59,.045); }
.email-template-info { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; }
.email-template-info > div { display: grid; gap: 3px; }
.email-template-info small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.email-preview-status { color: var(--muted); font-weight: 600; }
.email-event-icon { display: grid; place-items: center; width: 38px; height: 38px; color: var(--accent); background: var(--accent-soft); border-radius: 11px; }
.email-card-preview { height: 260px; overflow: hidden; background: #edf0f5; border: 1px solid var(--border); border-radius: 11px; }
.email-card-preview iframe { width: 135%; height: 350px; border: 0; transform: scale(.74); transform-origin: top left; pointer-events: none; }
.email-card-actions { display: flex; justify-content: flex-end; gap: 8px; }
.theme-picker { padding: 15px; }
.email-theme-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.email-theme-card { position: relative; display: grid; grid-template-columns: 78px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px; color: #4f596a; background: #fff; border: 1px solid var(--border); border-radius: 13px; cursor: pointer; }
.email-theme-card input { position: absolute; opacity: 0; pointer-events: none; }
.email-theme-card > span:nth-child(3) { display: grid; gap: 3px; }
.email-theme-card .theme-check { color: #c5c9d1; }
.email-theme-card.is-selected, .email-theme-card:has(input:checked) { color: var(--accent); background: var(--accent-soft); border-color: rgba(95,86,232,.45); }
.email-theme-card.is-selected .theme-check, .email-theme-card:has(input:checked) .theme-check { color: var(--accent); font-variation-settings: 'FILL' 1, 'wght' 300, 'GRAD' 0, 'opsz' 20; }
.email-theme-mini { display: grid; grid-template-rows: 16px 7px repeat(3,4px); gap: 4px; width: 78px; height: 58px; padding: 7px; background: #fff; border: 1px solid #d9dce5; border-radius: 7px; box-shadow: 0 3px 8px rgba(15,23,42,.08); }
.email-theme-mini i { display: block; border-radius: 3px; background: var(--accent); }
.email-theme-mini b { display: block; width: 65%; border-radius: 3px; background: #6b7280; }
.email-theme-mini em { display: block; border-radius: 3px; background: #e1e4ea; }
.email-theme-mini-elegance { background: #f6f2ed; border-radius: 12px; }
.email-theme-mini-hotel i { margin: -7px -7px 0; border-radius: 6px 6px 0 0; background: linear-gradient(135deg,#403a9d,var(--accent)); }
.email-preview-box { padding: 14px; background: #eef0f5; border-radius: 13px; }
.email-preview-box iframe { width: 100%; height: 520px; background: #fff; border: 1px solid var(--border); border-radius: 9px; }

/* Stripe Connect */
.stripe-architecture { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.stripe-architecture > article { padding: 13px; background: linear-gradient(145deg,#f8f7ff,#fff); border: 1px solid #dedaff; border-radius: 12px; }
.stripe-architecture span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.stripe-architecture strong { display: block; margin-top: 3px; color: #493fb7; font-size: 13px; overflow-wrap: anywhere; }
.stripe-flow { display: flex; align-items: stretch; gap: 8px; overflow-x: auto; padding: 4px 0 8px; }
.stripe-flow > article { min-width: 180px; padding: 14px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
.stripe-flow-arrow { display: grid; place-items: center; color: var(--accent); }

@media (max-width: 920px) {
    .accommodation-grid { grid-template-columns: 1fr; }
    .stripe-architecture { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .email-theme-grid { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
    .booky-modal { padding: 0; place-items: stretch; }
    .booky-modal-panel { width: 100%; max-height: 100vh; min-height: 100vh; border: 0; border-radius: 0; }
    .booky-modal-header { padding: 14px 15px; }
    .booky-modal-body { padding: 13px; }
    .booky-modal-body .panel, .booky-modal-body .form-panel { padding: 15px; border-radius: 13px; }
    .day-rule-grid { grid-template-columns: 1fr; }
    .accommodation-card-rich { grid-template-columns: 1fr; }
    .accommodation-cover img { min-height: 210px; max-height: 260px; }
    .email-template-list { grid-template-columns: 1fr; }
    .email-preview-box iframe { height: 420px; }
}
@media (max-width: 520px) {
    .stripe-architecture { grid-template-columns: 1fr; }
    .photo-preview-grid, .media-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .amenity-category { padding: 12px; }
    .email-template-card { padding: 13px; }
    .email-template-info { grid-template-columns: auto minmax(0,1fr); }
    .email-template-info > .badge { grid-column: 2; width: max-content; }
}

/* Booky 1.2 — Stripe Connect et finitions visuelles */
.stripe-architecture-panel { overflow: hidden; background: linear-gradient(145deg, #ffffff 0%, #f7f6ff 100%); border-color: #dedaff; box-shadow: 0 18px 55px rgba(69, 61, 166, .09); }
.architecture-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.architecture-card { display: grid; gap: 5px; min-width: 0; padding: 16px; background: rgba(255,255,255,.88); border: 1px solid #ddd9ff; border-radius: 14px; box-shadow: 0 8px 22px rgba(56,48,143,.055); }
.architecture-card > .material-symbols-outlined { width: 34px; height: 34px; display: grid; place-items: center; color: var(--accent); background: var(--accent-soft); border-radius: 10px; }
.architecture-card small { margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; letter-spacing: .07em; }
.architecture-card strong { color: #373168; font-size: 15px; }
.architecture-card code { min-width: 0; overflow-wrap: anywhere; color: #5f56e8; font-size: 10px; }
.stripe-connect-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 26px; padding: 28px; color: #fff; background: linear-gradient(135deg, #27234f 0%, #5f56e8 62%, #857ef4 100%); border-radius: 20px; box-shadow: 0 24px 60px rgba(58,48,162,.22); }
.stripe-connect-hero h2 { margin: 4px 0 8px; color: #fff; font-size: 26px; }
.stripe-connect-hero p { max-width: 720px; margin: 0; color: #e9e7ff; }
.stripe-connect-hero .eyebrow { color: #d7d3ff!important; }
.stripe-connect-hero .hero-icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 12px; color: #fff; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); border-radius: 14px; }
.stripe-connect-hero .btn-secondary { color: #25204e; border-color: rgba(255,255,255,.4); }
.stripe-connect-hero .btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); }
.commission-orb { display: grid; place-items: center; width: 178px; aspect-ratio: 1; padding: 20px; text-align: center; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.28); border-radius: 50%; backdrop-filter: blur(8px); }
.commission-orb span, .commission-orb small { color: #e9e7ff; }
.commission-orb strong { display: block; margin: 5px 0; color: #fff; font-size: 29px; }
.money-flow { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.money-flow li { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 11px; padding: 12px; background: #fafaff; border: 1px solid #e4e1ff; border-radius: 12px; }
.money-flow li > .material-symbols-outlined { display: grid; place-items: center; width: 34px; height: 34px; color: var(--accent); background: var(--accent-soft); border-radius: 10px; }
.money-flow li div { display: grid; gap: 2px; }
.requirement-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.requirement-list li { display: flex; align-items: center; gap: 8px; padding: 9px 10px; color: #8a4b08; background: var(--warning-soft); border-radius: 9px; }
.requirement-list .material-symbols-outlined { font-size: 18px; }
.health-dot { position: absolute; top: 13px; right: 13px; width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 0 4px rgba(0,0,0,.035); }
.metric-card { position: relative; background: linear-gradient(145deg, #fff, #fafaff); box-shadow: 0 8px 24px rgba(30,41,59,.04); }
.metric-card > .material-symbols-outlined { color: var(--accent); font-size: 23px; }
.health-dot.good { background: #12b76a; }
.health-dot.warning { background: #f79009; }
.health-dot.bad { background: #f04438; }
.modal-intro { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 13px; margin-bottom: 18px; padding: 14px; background: linear-gradient(145deg, #f2f0ff, #fbfbff); border: 1px solid #dedaff; border-radius: 13px; }
.modal-intro > .material-symbols-outlined { display: grid; place-items: center; width: 40px; height: 40px; color: var(--accent); background: #fff; border-radius: 11px; }
.modal-intro h2, .modal-intro p { margin: 0; }
.modal-intro p { margin-top: 4px; color: var(--muted); font-size: 12px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 6px; }
.section-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.section-heading > .material-symbols-outlined { display: grid; place-items: center; width: 38px; height: 38px; color: var(--accent); background: var(--accent-soft); border-radius: 11px; }
.section-heading h2, .section-heading p { margin: 0; }
.section-heading p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.empty-state-featured { padding: 42px 20px; text-align: center; background: radial-gradient(circle at top, #f0eeff, #fff 60%); border: 1px dashed #c9c4ff; border-radius: 18px; }
.empty-state-featured > .material-symbols-outlined { color: var(--accent); font-size: 43px; }

/* Plus de relief sans sacrifier la lisibilité. */
.content { background: radial-gradient(circle at 78% 0, rgba(95,86,232,.07), transparent 29%), linear-gradient(180deg, #f8f8fc 0%, #f4f5f8 100%); }
.panel { box-shadow: 0 10px 32px rgba(31,38,58,.045); }
.panel:hover { border-color: #d6d3ea; }
.page-header { padding: 3px 2px; }
.btn-accent { color: #fff; background: linear-gradient(135deg, var(--accent), #766df1); border-color: var(--accent); box-shadow: 0 8px 20px rgba(95,86,232,.18); }
.btn-accent:hover { color: #fff; background: linear-gradient(135deg, var(--accent-hover), #8b84f7); box-shadow: 0 11px 27px rgba(95,86,232,.24); }

@media (max-width: 980px) {
    .architecture-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .stripe-connect-hero { grid-template-columns: 1fr; }
    .commission-orb { width: 150px; justify-self: start; }
}
@media (max-width: 600px) {
    .architecture-grid { grid-template-columns: 1fr; }
    .stripe-connect-hero { padding: 20px; border-radius: 16px; }
    .commission-orb { width: 132px; }
}

/* Booky 1.3 — sélecteur de dates, calendrier, statistiques et éditeur d’e-mails */
.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; }
.section-title-with-icon { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.section-title-with-icon > .section-icon { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; margin: 0; color: var(--accent); background: var(--accent-soft); border-radius: 12px; line-height: 1; }
.section-title-with-icon h2, .section-title-with-icon p { margin: 0; }
.section-title-with-icon p { margin-top: 3px; color: var(--muted); font-size: 12px; }
.section-heading { align-items: center; }
.section-heading > .material-symbols-outlined { flex: 0 0 auto; align-self: center; }
.compact-section-heading { margin-bottom: 12px; }
.field-label-with-help { display: inline-flex; align-items: center; gap: 5px; }
.help-tip { position: relative; display: inline-grid; place-items: center; width: 18px; height: 18px; color: var(--accent); outline: none; }
.help-tip > .material-symbols-outlined { font-size: 17px; }
.help-tip-content { position: absolute; z-index: 70; left: 50%; bottom: calc(100% + 9px); width: min(300px, 80vw); padding: 10px 12px; color: #fff; background: #27244f; border-radius: 9px; box-shadow: 0 12px 30px rgba(15,23,42,.22); font-size: 11px; font-weight: 500; line-height: 1.45; opacity: 0; pointer-events: none; transform: translate(-50%, 5px); transition: .16s ease; }
.help-tip:hover .help-tip-content, .help-tip:focus .help-tip-content, .help-tip:focus-within .help-tip-content { opacity: 1; transform: translate(-50%, 0); }
.aligned-help-grid > label { grid-template-rows: auto auto minmax(30px, auto); align-content: start; }
.field-help-slot { min-height: 30px; color: var(--muted); font-size: 11px; font-weight: 450; line-height: 1.35; }

/* Date picker sans dépendance au rendu natif du navigateur. */
.booky-date-field { position: relative; display: block; width: 100%; }
.booky-date-native { position: absolute!important; inset: 0!important; width: 1px!important; height: 1px!important; min-height: 1px!important; padding: 0!important; opacity: 0!important; pointer-events: none!important; }
.booky-date-trigger { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 42px; padding: 9px 11px; color: #7a8494; text-align: left; background: #fff; border: 1px solid #ccd2db; border-radius: 9px; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.booky-date-trigger:hover { color: var(--accent); border-color: #b8b3f5; background: #fcfbff; }
.booky-date-trigger:focus-visible { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(95,86,232,.13); outline: none; }
.booky-date-trigger.has-value { color: var(--text); font-weight: 650; }
.booky-date-trigger > .material-symbols-outlined { color: var(--accent); font-size: 20px; }
input:disabled + .booky-date-trigger, .booky-date-native:disabled + .booky-date-trigger { color: #a5adba; background: #f3f4f6; border-color: #e1e5eb; cursor: not-allowed; }
.booky-datepicker { position: fixed; z-index: 1000; width: 350px; padding: 14px; background: rgba(255,255,255,.99); border: 1px solid #dcd9f8; border-radius: 16px; box-shadow: 0 24px 65px rgba(30,27,75,.23); opacity: 0; transform: translateY(-5px) scale(.985); transition: opacity .14s ease, transform .14s ease; backdrop-filter: blur(15px); }
.booky-datepicker.is-open { opacity: 1; transform: translateY(0) scale(1); }
.booky-datepicker-head { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 8px; margin-bottom: 10px; }
.booky-datepicker-head strong { text-align: center; text-transform: capitalize; font-size: 15px; }
.booky-datepicker-head button { display: grid; place-items: center; width: 38px; height: 38px; color: #5149ca; background: #f3f1ff; border: 0; border-radius: 10px; }
.booky-datepicker-head button:hover, .booky-datepicker-head button:focus-visible { color: #fff; background: var(--accent); outline: none; }
.booky-datepicker-weekdays, .booky-datepicker-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; }
.booky-datepicker-weekdays span { padding: 5px 0; color: #8b94a3; text-align: center; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.booky-datepicker-grid button { position: relative; z-index: 1; display: grid; place-items: center; min-width: 0; aspect-ratio: 1; padding: 0; color: #303747; background: transparent; border: 0; border-radius: 10px; font-size: 12px; font-weight: 650; }
.booky-datepicker-grid button::before { content: ''; position: absolute; z-index: -1; inset: 2px; border-radius: 9px; }
.booky-datepicker-grid button:hover::before, .booky-datepicker-grid button:focus-visible::before { background: #eceaff; }
.booky-datepicker-grid button:focus-visible { outline: 2px solid rgba(95,86,232,.4); outline-offset: 0; }
.booky-datepicker-grid button.is-outside { color: #b4bac4; }
.booky-datepicker-grid button.is-today { color: var(--accent); box-shadow: inset 0 0 0 1px rgba(95,86,232,.35); }
.booky-datepicker-grid button.is-range-span { background: #efedff; border-radius: 0; }
.booky-datepicker-grid button.is-in-range { color: #4038ac; }
.booky-datepicker-grid button.is-range-start, .booky-datepicker-grid button.is-range-end, .booky-datepicker-grid button.is-selected { color: #fff; background: var(--accent); border-radius: 10px; box-shadow: 0 5px 14px rgba(95,86,232,.25); }
.booky-datepicker-actions { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border); }
.booky-datepicker-actions button { min-height: 32px; padding: 6px 9px; color: var(--accent); background: transparent; border: 0; border-radius: 8px; font-size: 11px; font-weight: 750; }
.booky-datepicker-actions button:hover { background: var(--accent-soft); }

/* Périodes multiples des règles. */
.period-list { display: grid; gap: 11px; margin: 13px 0; transition: opacity .15s; }
.period-list.is-disabled { opacity: .52; }
.period-row { padding: 13px; background: linear-gradient(145deg,#fbfbff,#fff); border: 1px solid #e3e0fb; border-radius: 13px; }
.period-row-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.period-row-heading strong { color: #4a438e; font-size: 12px; }
.period-remove { width: 31px!important; height: 31px!important; color: var(--danger); background: var(--danger-soft); border-color: #fecdca; }
.period-add-button { margin-top: 2px; }
.period-all-time-toggle { margin-bottom: 11px; }

/* Calendrier tarifaire. */
.pricing-calendar-toolbar { display: grid; grid-template-columns: minmax(220px,.8fr) auto minmax(280px,1.15fr); align-items: end; gap: 18px; margin-bottom: 16px; padding: 15px 17px; }
.calendar-type-switcher label { min-width: 220px; }
.calendar-month-nav { display: flex; align-items: center; gap: 8px; }
.calendar-month-jump { min-width: 190px; }
.calendar-month-jump > span { display: none; }
.calendar-selection-summary { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; min-height: 50px; padding: 9px 12px; color: #4a438e; background: #f4f2ff; border: 1px solid #dedaff; border-radius: 11px; }
.calendar-selection-summary > .material-symbols-outlined { display: grid; place-items: center; width: 32px; height: 32px; color: var(--accent); background: #fff; border-radius: 9px; }
.calendar-selection-summary > span:last-child { display: grid; }
.calendar-selection-summary small { margin-top: 2px; font-size: 10px; }
.pricing-calendar-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(315px,360px); align-items: start; gap: 16px; }
.pricing-calendar-main { min-width: 0; padding: 15px; overflow: hidden; }
.pricing-calendar-weekdays, .pricing-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; }
.pricing-calendar-weekdays span { padding: 4px 0 7px; color: #7b8494; text-align: center; font-size: 10px; font-weight: 780; text-transform: uppercase; letter-spacing: .05em; }
.pricing-day-card { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 222px; padding: 10px; overflow: hidden; color: var(--text); text-align: left; background: linear-gradient(155deg,#fff,#fbfbfd); border: 1px solid #dfe3e9; border-radius: 12px; transition: border-color .15s, box-shadow .15s, transform .15s, background-color .15s; }
.pricing-day-card:hover { z-index: 2; color: var(--text); border-color: #b9b3f7; box-shadow: 0 10px 24px rgba(41,37,98,.11); transform: translateY(-2px); }
.pricing-day-card.is-outside { opacity: .42; }
.pricing-day-card.is-closed { background: linear-gradient(155deg,#fff5f4,#fff); }
.pricing-day-card.has-reservation { border-color: rgba(47,128,237,.36); }
.pricing-day-card.is-in-selected-range { background: linear-gradient(155deg,#f2f0ff,#fbfaff); border-color: rgba(95,86,232,.55); box-shadow: inset 0 0 0 1px rgba(95,86,232,.12); }
.pricing-day-card.is-range-start, .pricing-day-card.is-range-end { border-color: var(--accent); box-shadow: inset 0 0 0 2px var(--accent), 0 10px 24px rgba(95,86,232,.13); }
.pricing-day-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 5px; }
.pricing-day-head > span:first-child { display: flex; align-items: baseline; gap: 4px; }
.pricing-day-head strong { font-size: 14px; }
.pricing-day-head small { font-size: 9px; text-transform: uppercase; }
.day-state { padding: 3px 5px; border-radius: 999px; font-size: 8px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.day-state-busy { color: #175cd3; background: #eff8ff; }
.day-state-closed { color: var(--danger); background: var(--danger-soft); }
.pricing-day-price { display: grid; gap: 0; margin: 10px 0 7px; }
.pricing-day-price strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.pricing-day-price small { font-size: 9px; }
.pricing-day-extras, .pricing-day-constraints, .pricing-day-flags { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 8px; color: #606a79; font-size: 9px; }
.pricing-day-extras > span, .pricing-day-constraints > span { display: inline-flex; align-items: center; gap: 2px; }
.pricing-day-extras .material-symbols-outlined, .pricing-day-constraints .material-symbols-outlined, .pricing-day-flags .material-symbols-outlined { font-size: 14px; }
.pricing-day-constraints { margin-top: 5px; }
.pricing-day-flags { margin-top: 5px; }
.pricing-day-flags .is-allowed { color: #079455; }
.pricing-day-flags .is-forbidden { color: #d92d20; opacity: .7; }
.pricing-day-events { display: grid; gap: 3px; margin-top: auto; padding-top: 7px; }
.calendar-reservation-chip, .calendar-block-chip, .calendar-more-events { display: block; width: 100%; padding: 3px 5px; overflow: hidden; color: #fff; background: #2f80ed; border-radius: 6px; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; font-weight: 750; }
.calendar-block-chip { display: flex; align-items: center; gap: 3px; color: #8a4b08; background: #fffaeb; }
.calendar-block-chip .material-symbols-outlined { font-size: 11px; }
.calendar-more-events { color: #475467; background: #f2f4f7; }
.pricing-calendar-sidebar { position: sticky; top: calc(var(--topbar) + 16px); display: grid; gap: 14px; }
.calendar-rules-panel, .calendar-bulk-panel { padding: 16px; }
.calendar-rule-list { display: grid; gap: 8px; margin-bottom: 12px; }
.calendar-rule-card { position: relative; padding: 11px 38px 11px 11px; background: #fcfcff; border: 1px solid #e5e3f5; border-radius: 10px; }
.calendar-rule-card > div { display: flex; align-items: center; gap: 6px; }
.calendar-rule-card p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.calendar-rule-card > .icon-button { position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; }
.calendar-rules-empty { color: var(--muted); font-size: 11px; }
.calendar-type-checks { display: grid; gap: 7px; }
.selection-shortcuts { display: flex; gap: 7px; margin-top: 9px; }
.calendar-money-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.calendar-boolean-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.calendar-weekday-chips { gap: 5px; }
.calendar-weekday-chips .selection-chip { min-width: 38px; }
.month-jump-label { min-width: 165px; }
.boolean-edit-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }

/* Statistiques inspirées du tableau opérationnel historique. */
.analytics-mini-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.analytics-mini-card { min-width: 0; padding: 18px; background: #fff; border: 1px solid var(--border); border-radius: 15px; box-shadow: 0 10px 28px rgba(31,38,58,.05); }
.analytics-card-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: #2f3745; font-size: 12px; font-weight: 760; }
.analytics-card-heading > .material-symbols-outlined { color: #2f80b7; font-size: 20px; }
.analytics-donut-row { display: flex; align-items: center; gap: 13px; }
.analytics-donut { display: grid; place-items: center; flex: 0 0 auto; width: 68px; height: 68px; background: conic-gradient(#2f80b7 var(--metric-angle), #e8eaf0 0); border-radius: 50%; }
.analytics-donut::before { content: ''; grid-area: 1/1; width: 42px; height: 42px; background: #fff; border-radius: 50%; }
.analytics-donut span { z-index: 1; grid-area: 1/1; font-size: 11px; font-weight: 800; }
.analytics-donut.conversion { background: conic-gradient(var(--accent) var(--metric-angle), #e8eaf0 0); }
.analytics-donut-row > div:last-child { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.analytics-donut-row strong, .analytics-value-row > strong { font-size: 22px; letter-spacing: -.03em; }
.analytics-mini-card > p { margin: 12px 0 0; color: var(--muted); font-size: 10px; }
.metric-change { display: inline-flex; align-items: center; gap: 1px; padding: 3px 6px; border-radius: 999px; font-size: 9px; font-weight: 750; }
.metric-change > .material-symbols-outlined { font-size: 11px; }
.metric-change.positive { color: #067647; background: #ecfdf3; }
.metric-change.negative { color: #b42318; background: #fef3f2; }
.analytics-value-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.analytics-month-bars { display: grid; grid-template-columns: repeat(12,minmax(8px,1fr)); align-items: end; gap: 4px; height: 78px; margin-top: 13px; }
.analytics-month-bars > span { display: grid; grid-template-rows: 58px auto; align-items: end; gap: 4px; min-width: 0; height: 100%; }
.analytics-month-bars i { display: block; min-height: 3px; background: #2f80b7; border-radius: 5px 5px 2px 2px; }
.analytics-month-bars small { overflow: hidden; text-align: center; text-overflow: clip; white-space: nowrap; font-size: 7px; }
.analytics-booking-visual { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; margin-top: 13px; padding: 10px; background: #f6f7fb; border-radius: 10px; }
.analytics-booking-visual > .material-symbols-outlined { color: var(--accent); font-size: 28px; }
.analytics-booking-visual p { margin: 0; color: var(--muted); font-size: 9px; }
.statistics-page-header { align-items: stretch; }
.statistics-filter { display: grid; grid-template-columns: repeat(3,minmax(145px,1fr)) auto; align-items: end; gap: 9px; min-width: min(720px,100%); padding: 12px; box-shadow: none; }
.statistics-main-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.8fr); gap: 14px; }
.statistics-chart-panel { min-width: 0; }
.statistics-bar-chart, .occupancy-chart, .traffic-chart { display: flex; align-items: flex-end; gap: 4px; min-height: 230px; padding: 18px 4px 0; overflow-x: auto; border-top: 1px solid #eef0f4; background: repeating-linear-gradient(to top, transparent 0 54px, #f0f2f5 55px); }
.statistics-bar-column, .occupancy-chart > div, .traffic-chart-day { display: grid; grid-template-rows: 195px 22px; align-items: end; flex: 1 0 12px; min-width: 12px; height: 220px; }
.statistics-bar-column > span { display: flex; align-items: flex-end; height: 100%; }
.statistics-bar-column i { display: block; width: 100%; min-height: 3px; background: linear-gradient(180deg,#54a3db,#2477b5); border-radius: 5px 5px 1px 1px; }
.statistics-bar-column small, .occupancy-chart small, .traffic-chart small { overflow: hidden; color: #8992a1; text-align: center; font-size: 7px; white-space: nowrap; }
.source-analytics-layout { display: grid; grid-template-columns: 120px minmax(0,1fr); align-items: center; gap: 17px; }
.source-donut { position: relative; display: grid; place-items: center; width: 120px; height: 120px; }
.source-donut svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.source-donut circle { transform-origin: 50% 50%; }
.source-donut-track { fill: transparent; stroke: #e8eaf0; stroke-width: 5; }
.source-donut strong { margin-top: -3px; font-size: 20px; }
.source-donut small { margin-top: 22px; font-size: 9px; }
.source-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.source-list li { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.source-list li > i { width: 8px; height: 8px; border-radius: 50%; }
.source-list span { display: grid; }
.source-list strong { font-size: 11px; }
.source-list small { font-size: 9px; }
.source-list b { font-size: 10px; }
.occupancy-chart > div > span { display: block; width: 100%; min-height: 3px; background: linear-gradient(180deg,#5f56e8,#8179f0); border-radius: 4px 4px 1px 1px; }
.traffic-bars { display: flex; align-items: flex-end; justify-content: center; gap: 2px; height: 100%; }
.traffic-bars i, .traffic-bars b { width: calc(50% - 1px); min-height: 2px; border-radius: 3px 3px 0 0; }
.traffic-bars i { background: #2f80b7; }
.traffic-bars b { background: #12b76a; }
.chart-legend { display: flex; justify-content: center; gap: 17px; margin-top: 10px; color: var(--muted); font-size: 10px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.chart-legend i { width: 9px; height: 9px; border-radius: 2px; }
.chart-legend .searches { background: #2f80b7; }
.chart-legend .bookings { background: #12b76a; }

/* Editeur d’e-mails structuré : contenu simple à gauche, aperçu réel à droite. */
.email-editor-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.9fr); align-items: start; gap: 18px; }
.email-editor-fields { min-width: 0; }
.email-editor-section { padding: 16px; background: #fff; border: 1px solid var(--border); border-radius: 14px; }
.email-editor-section > .section-heading:first-child { margin-top: 0; }
.email-editor-section textarea { min-height: 86px; }
.email-summary-toggle { padding: 10px 11px; background: #f8f7ff; border: 1px solid #e1deff; border-radius: 10px; }
.compact-variable-strip { margin: 3px 0 0; padding: 10px; }
.email-live-preview { position: sticky; top: calc(var(--topbar) + 14px); min-width: 0; }
.email-live-preview iframe { min-height: 690px; }
.sticky-form-actions { position: sticky; bottom: 0; z-index: 2; padding: 10px 0 2px; background: linear-gradient(transparent,#fff 24%); }
.email-card-preview { position: relative; height: 230px; background: #eef0f5; }
.email-card-preview::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 55px; pointer-events: none; background: linear-gradient(transparent,#eef0f5); }
.email-card-preview iframe { width: 160%; height: 390px; transform: scale(.625); }

@media (max-width: 1280px) {
    .analytics-mini-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pricing-calendar-layout { grid-template-columns: minmax(0,1fr) 320px; }
    .pricing-day-card { min-height: 205px; padding: 8px; }
    .email-editor-layout { grid-template-columns: 1fr minmax(330px,.8fr); }
}
@media (max-width: 1080px) {
    .pricing-calendar-toolbar { grid-template-columns: 1fr auto; }
    .calendar-selection-summary { grid-column: 1 / -1; }
    .pricing-calendar-layout { grid-template-columns: 1fr; }
    .pricing-calendar-sidebar { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .statistics-page-header { display: grid; }
    .statistics-filter { min-width: 0; width: 100%; }
    .statistics-main-grid { grid-template-columns: 1fr; }
    .email-editor-layout { grid-template-columns: 1fr; }
    .email-live-preview { position: static; }
    .email-live-preview iframe { min-height: 600px; }
}
@media (max-width: 820px) {
    .pricing-calendar-main { overflow-x: auto; }
    .pricing-calendar-weekdays, .pricing-calendar-grid { min-width: 860px; }
    .pricing-calendar-sidebar { grid-template-columns: 1fr; }
    .pricing-day-card { min-height: 196px; }
    .statistics-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .statistics-filter .btn { width: 100%; }
    .boolean-edit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
    .booky-datepicker { z-index: 1200; top: auto!important; left: 0!important; right: 0!important; bottom: 0!important; width: 100%!important; max-height: min(76vh,580px); padding: 16px 14px calc(16px + env(safe-area-inset-bottom)); overflow-y: auto; border: 0; border-radius: 19px 19px 0 0; transform: translateY(18px); }
    .booky-datepicker.is-open { transform: translateY(0); }
    .booky-datepicker-grid button { min-height: 42px; aspect-ratio: auto; }
    .period-row { padding: 11px; }
    .period-row .form-grid { grid-template-columns: 1fr; }
    .pricing-calendar-toolbar { grid-template-columns: 1fr; align-items: stretch; }
    .calendar-month-nav { justify-content: space-between; }
    .calendar-month-jump { flex: 1; min-width: 0; }
    .pricing-calendar-weekdays, .pricing-calendar-grid { min-width: 760px; gap: 5px; }
    .pricing-day-card { min-height: 184px; }
    .analytics-mini-grid { grid-template-columns: 1fr; }
    .statistics-filter { grid-template-columns: 1fr; }
    .statistics-bar-chart, .occupancy-chart, .traffic-chart { min-width: 680px; }
    .statistics-chart-panel { overflow-x: auto; }
    .source-analytics-layout { grid-template-columns: 100px minmax(0,1fr); }
    .source-donut { width: 100px; height: 100px; }
    .email-theme-card { grid-template-columns: 64px minmax(0,1fr) auto; }
    .email-theme-mini { width: 64px; }
    .email-live-preview iframe { min-height: 480px; }
    .calendar-money-grid, .calendar-boolean-grid, .boolean-edit-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 430px) {
    .calendar-money-grid, .calendar-boolean-grid, .boolean-edit-grid { grid-template-columns: 1fr; }
    .email-editor-section { padding: 12px; }
    .email-live-preview { padding: 10px; }
    .email-live-preview iframe { min-height: 420px; }
    .source-analytics-layout { grid-template-columns: 1fr; justify-items: center; }
    .source-list { width: 100%; }
}
.dashboard-hero-header { align-items: center; margin-bottom: 18px; }
.dashboard-operations-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; margin-top: 14px; }
.dashboard-arrivals-panel .panel-header h2, .dashboard-events-panel .panel-header h2 { display: inline-flex; align-items: center; gap: 7px; }
.dashboard-arrivals-panel .panel-header h2 > .material-symbols-outlined, .dashboard-events-panel .panel-header h2 > .material-symbols-outlined { color: #2f80b7; font-size: 20px; }
.arrival-list, .dashboard-event-list { display: grid; gap: 8px; }
.arrival-card { display: grid; grid-template-columns: 52px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 10px; color: var(--text); background: #fbfcfd; border: 1px solid #e7eaf0; border-radius: 11px; transition: .15s ease; }
.arrival-card:hover { color: var(--text); background: #f8f7ff; border-color: #cbc6fb; transform: translateY(-1px); }
.arrival-date { display: grid; place-items: center; align-content: center; width: 52px; height: 52px; color: #1f6fa4; background: #eff8ff; border-radius: 10px; }
.arrival-date strong { font-size: 17px; line-height: 1; }
.arrival-date small { margin-top: 3px; font-size: 8px; font-weight: 750; text-transform: uppercase; }
.arrival-card > span:nth-child(2) { display: grid; min-width: 0; }
.arrival-card > span:nth-child(2) strong, .arrival-card > span:nth-child(2) small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-event-list article { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px; background: #fbfcfd; border: 1px solid #e7eaf0; border-radius: 11px; }
.dashboard-event-list article > span:nth-child(2) { display: grid; min-width: 0; }
.dashboard-event-list article strong, .dashboard-event-list article small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-event-list time { color: var(--muted); font-size: 9px; white-space: nowrap; }
.event-icon { display: grid; place-items: center; width: 38px; height: 38px; color: #fff; background: #2f80b7; border-radius: 10px; font-size: 19px; }
.event-icon-email { background: #12b76a; }
.operational-stats-grid { margin-top: 14px; margin-bottom: 0; }
@media (max-width: 1000px) { .dashboard-operations-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .dashboard-hero-header { align-items: stretch; }
    .dashboard-hero-header .actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .dashboard-hero-header .btn { width: 100%; }
    .arrival-card { grid-template-columns: 46px minmax(0,1fr); }
    .arrival-card > .badge { grid-column: 2; }
    .arrival-date { width: 46px; height: 46px; }
    .dashboard-event-list article { grid-template-columns: 34px minmax(0,1fr); }
    .dashboard-event-list time { grid-column: 2; }
    .event-icon { width: 34px; height: 34px; }
}

/* Correctif 1.3.2 — hiérarchie visuelle des modales et centrage des pictogrammes. */
.booky-modal-body .form-panel,
.booky-modal-body .auto-modal-content > .panel,
.booky-modal-body .auto-modal-content > form > .panel,
.booky-modal-body .modal-page-content > .panel:first-child {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.booky-modal-body .form-panel > .panel,
.booky-modal-body .form-panel > .form-section,
.booky-modal-body .modal-section-card {
    background: #fff;
}
.material-symbols-outlined,
.section-heading > .material-symbols-outlined,
.section-title-with-icon > .section-icon,
.email-event-icon,
.event-icon,
.panel-header > .material-symbols-outlined,
.panel-header h2 > .material-symbols-outlined,
.modal-intro > .material-symbols-outlined {
    line-height: 1;
}
.section-heading > .material-symbols-outlined,
.section-title-with-icon > .section-icon,
.email-event-icon,
.event-icon,
.panel-header > .material-symbols-outlined,
.modal-intro > .material-symbols-outlined {
    display: grid;
    place-items: center;
    align-self: center;
    text-align: center;
}
.has-inline-help {
    position: relative;
    padding-top: 0;
}
.has-inline-help > .help-tip {
    position: absolute;
    z-index: 4;
    top: 0;
    right: 0;
}
.coupon-value-type {
    border-color: rgba(95,86,232,.35);
    background-color: #fbfaff;
}
.coupon-value-type:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(95,86,232,.13);
}
.booky-modal-body form[action*="/extras"] .selection-chip,
.booky-modal-body form[action*="/coupons"] .selection-chip {
    width: max-content;
    max-width: 100%;
}
@media (max-width: 640px) {
    .booky-modal-body .form-panel,
    .booky-modal-body .auto-modal-content > .panel,
    .booky-modal-body .auto-modal-content > form > .panel,
    .booky-modal-body .modal-page-content > .panel:first-child {
        padding: 0;
        border-radius: 0;
    }
    .has-inline-help > .help-tip {
        top: -1px;
    }
}

/* Booky 1.3.3 — calendrier compact, formulaires modaux et réglages enrichis. */
.topbar-booking-link {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Une seule carte visuelle par section dans les formulaires chargés en modal. */
.modal-form-flat,
.booking-rule-form,
.calendar-rate-modal-form,
.option-form,
.fee-form,
.adjustment-form,
.email-settings-form {
    display: grid;
    gap: 16px;
}
.modal-section-card,
.booking-rule-card {
    min-width: 0;
    padding: 20px;
    background: #fff;
    border: 1px solid #e2e5ec;
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(31,38,58,.035);
}
.modal-section-card > :last-child,
.booking-rule-card > :last-child { margin-bottom: 0; }
.booky-modal-body .modal-section-card,
.booky-modal-body .booking-rule-card {
    border-color: #e2e5ec;
    border-radius: 16px;
    box-shadow: none;
}
.booky-modal-body .modal-page-header { display: none; }
.booky-modal-body .modal-page-content { padding: 0; }
.booky-modal-body .form-actions:last-child {
    position: sticky;
    z-index: 5;
    bottom: -22px;
    margin: 0 -22px -22px;
    padding: 16px 22px calc(16px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    border-top: 1px solid var(--border);
    backdrop-filter: blur(12px);
}

/* Règles de réservation : en-tête compact et champs parfaitement alignés. */
.booking-rule-modal-content { max-width: 1060px; margin: 0 auto; }
.booking-rule-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.booking-rule-card-header .section-title-with-icon { margin-bottom: 0; }
.booking-rule-header-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
.compact-color-control {
    display: inline-flex;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 8px;
    width: auto;
    min-height: 38px;
    padding: 6px 9px 6px 11px;
    color: #545e6e;
    background: #f8f8fc;
    border: 1px solid #e1e3eb;
    border-radius: 999px;
    font-size: 11px;
}
.compact-color-control input[type="color"] {
    width: 28px;
    height: 28px;
    min-height: 28px;
    padding: 2px;
    overflow: hidden;
    background: transparent;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
}
.compact-color-control input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.compact-color-control input[type="color"]::-webkit-color-swatch { border: 0; border-radius: 50%; }
.compact-color-control input[type="color"]::-moz-color-swatch { border: 0; border-radius: 50%; }
.booking-rule-active-toggle {
    width: auto;
    min-width: 178px;
    min-height: 44px;
    padding: 7px 11px;
    background: #f8f8fc;
    border-radius: 12px;
}
.booking-rule-active-toggle > span:last-child { display: grid; }
.booking-rule-active-toggle small { font-size: 9px; }
.booking-rule-main-grid > label,
.aligned-help-grid > label {
    display: grid;
    grid-template-rows: minmax(18px,auto) 42px minmax(30px,auto);
    align-content: start;
}
.booking-rule-main-grid input { height: 42px; }
.booking-rule-card .section-title-with-icon { margin-bottom: 18px; }
.booking-rule-period-list {
    gap: 2px;
    margin: 4px 0 12px;
    padding: 0;
}
.booking-rule-period-row,
.booking-rule-card .period-row {
    padding: 12px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #eceef3;
    border-radius: 0;
}
.booking-rule-period-row:first-child { padding-top: 0; }
.booking-rule-period-row:last-child { border-bottom: 0; }
.booking-rule-period-row .period-row-heading { margin-bottom: 9px; }
.booking-rule-period-row .period-row-heading strong { color: #5149ca; }
.booking-rule-card .inline-toggle {
    width: auto;
    min-width: 165px;
    padding: 7px 10px;
    background: #f7f7fb;
    border: 1px solid #e3e5ec;
    border-radius: 12px;
}
.booking-rule-card .inline-toggle small { font-size: 9px; }
.booking-rule-day-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
}
.booking-rule-day-grid fieldset {
    margin: 0;
    padding: 14px;
    background: #fafafe;
    border: 1px solid #e4e6ed;
    border-radius: 13px;
}
.booking-rule-day-grid legend { padding: 0 5px; }
.period-add-button { justify-self: start; }

/* Calendrier : cartes plus basses, contenu plus lisible et sélection évidente. */
.pricing-calendar-grid { align-items: stretch; }
.pricing-day-card {
    min-height: 174px;
    padding: 11px;
    border-radius: 13px;
}
.pricing-day-head { align-items: center; }
.pricing-day-head strong { font-size: 15px; line-height: 1; }
.pricing-day-head small { font-size: 9.5px; font-weight: 750; }
.day-state { padding: 3px 6px; font-size: 8.5px; }
.pricing-day-price { margin: 8px 0 6px; }
.pricing-day-price strong { font-size: 14px; line-height: 1.15; }
.pricing-day-price small { font-size: 10px; }
.pricing-day-extras,
.pricing-day-constraints,
.pricing-day-flags { gap: 4px 8px; font-size: 10px; line-height: 1.25; }
.pricing-day-extras .material-symbols-outlined,
.pricing-day-constraints .material-symbols-outlined,
.pricing-day-flags .material-symbols-outlined { font-size: 15px; }
.pricing-day-events { max-height: 41px; padding-top: 6px; overflow: hidden; }
.calendar-reservation-chip,
.calendar-block-chip,
.calendar-more-events { padding: 3px 6px; font-size: 9px; }
.pricing-day-card.is-in-selected-range {
    background: linear-gradient(155deg,#eeeaff,#fbfaff);
    border-color: rgba(95,86,232,.68);
}
.pricing-day-card.is-range-start,
.pricing-day-card.is-range-end {
    background: linear-gradient(155deg,#e7e3ff,#f9f8ff);
    box-shadow: inset 0 0 0 2px var(--accent), 0 10px 24px rgba(95,86,232,.15);
}
.calendar-selection-summary { grid-template-columns: auto minmax(0,1fr) auto; }
.calendar-rate-modal-content { max-width: 980px; margin: 0 auto; }
.calendar-rate-modal-form .calendar-rate-intro-card { background: linear-gradient(145deg,#f7f6ff,#fff); border-color: #dedaff; }
.calendar-rate-modal-form .calendar-date-range-fields { margin-top: 16px; }
.calendar-rate-modal-form .selection-chips { margin-top: 4px; }
.calendar-selection-help-panel { background: linear-gradient(145deg,#f9f8ff,#fff); border-color: #dedaff; }

/* Cartes Options / Frais et contrôles illustrés. */
.pricing-entities-layout { align-items: start; }
.entity-card-grid { display: grid; gap: 12px; }
.pricing-entity-card {
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 14px;
    background: #fbfcfe;
    border: 1px solid #e5e8ee;
    border-radius: 14px;
    transition: .16s ease;
}
.pricing-entity-card:hover { background: #fff; border-color: #cfcaf8; box-shadow: 0 9px 25px rgba(31,38,58,.06); }
.pricing-entity-illustration {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    overflow: hidden;
    color: var(--accent);
    background: var(--accent-soft);
    border-radius: 14px;
}
.pricing-entity-illustration img { width: 100%; height: 100%; object-fit: cover; }
.pricing-entity-illustration .material-symbols-outlined { font-size: 27px; }
.pricing-entity-main { min-width: 0; }
.pricing-entity-main p { margin: 4px 0; color: var(--muted); font-size: 11px; }
.pricing-entity-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.pricing-entity-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.illustration-mode-picker,
.adjustment-type-picker { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 15px; }
.illustration-panel { padding: 15px; background: #fafafe; border: 1px solid #e5e5ef; border-radius: 14px; }
.option-icon-catalogue { display: grid; gap: 16px; max-height: 380px; overflow: auto; padding-right: 4px; }
.option-icon-category h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; color: #41495a; font-size: 12px; }
.option-icon-category h3 .material-symbols-outlined { color: var(--accent); font-size: 18px; }
.option-icon-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.option-icon-chip { min-height: 38px; }
.option-photo-picker,
.email-logo-picker {
    display: grid;
    grid-template-columns: 110px minmax(0,1fr);
    align-items: center;
    gap: 16px;
}
.option-photo-picker img,
.option-photo-placeholder,
.email-logo-picker img,
.email-logo-placeholder {
    display: grid;
    place-items: center;
    width: 110px;
    height: 90px;
    object-fit: cover;
    color: var(--accent);
    background: #f0eeff;
    border: 1px dashed #c9c4ff;
    border-radius: 14px;
    font-size: 30px;
}
.option-photo-picker > div,
.email-logo-picker > div { display: grid; justify-items: start; gap: 8px; }
.file-button input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.accommodation-selection { display: flex; flex-wrap: wrap; gap: 8px; }
.selection-chip {
    transition: color .14s ease, background-color .14s ease, border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.selection-chip:hover { transform: translateY(-1px); border-color: #aaa3f5; }
.selection-chip.is-selected,
.selection-chip:has(input:checked) {
    color: #443bc3;
    background: #e6e3ff;
    border-color: #8c84ef;
    box-shadow: inset 0 0 0 1px rgba(95,86,232,.14);
}
.option-status-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.option-status-grid.two-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
.compact-status-card { padding: 14px; background: #fafafe; }
.adjustment-type-fieldset,
.weekday-fieldset { margin: 14px 0 0; padding: 0; border: 0; }
.adjustment-type-fieldset legend,
.weekday-fieldset legend { margin-bottom: 8px; padding: 0; font-size: 12px; }
.adjustment-values-grid { margin-top: 12px; }
.label-muted { color: var(--muted); font-size: 10px; font-weight: 500; }

/* Paramètres des e-mails et alignement systématique des icônes. */
.email-settings-modal { max-width: 1050px; margin: 0 auto; }
.email-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.email-setting-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: end;
    gap: 12px;
    min-width: 0;
    padding: 12px;
    background: #fafafe;
    border: 1px solid #e7e7ef;
    border-radius: 13px;
}
.email-setting-row.span-2 { grid-column: 1 / -1; }
.email-setting-row-block { align-items: start; }
.email-display-toggle {
    display: inline-flex;
    grid-template-columns: auto auto;
    align-items: center;
    align-self: end;
    gap: 7px;
    width: max-content;
    min-height: 39px;
    padding: 8px 10px;
    background: #fff;
    border: 1px solid #dfe2e9;
    border-radius: 10px;
    white-space: nowrap;
}
.email-display-toggle input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.email-setting-row.is-disabled { opacity: .67; }
.email-setting-row.is-disabled > label:first-child input,
.email-setting-row.is-disabled > label:first-child textarea { background: #f2f3f6; }
.email-logo-setting { align-items: center; }
.email-settings-warning { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: start; gap: 10px; }
.email-settings-warning > .material-symbols-outlined { display: grid; place-items: center; width: 36px; height: 36px; color: #b54708; background: #fff3d1; border-radius: 10px; }
.email-settings-warning p { margin: 3px 0 0; }
.email-event-icon,
.section-icon,
.event-icon,
.panel-header > .material-symbols-outlined,
.section-heading > .material-symbols-outlined,
.section-title-with-icon > .material-symbols-outlined {
    display: grid!important;
    place-items: center!important;
    align-self: center!important;
    line-height: 1!important;
}

/* Aide contextuelle utilisable au clic sur tactile. */
.help-tip.is-open .help-tip-content { opacity: 1; transform: translate(-50%,0); pointer-events: auto; }

@media (max-width: 1280px) {
    .pricing-day-card { min-height: 168px; }
    .pricing-entity-card { grid-template-columns: 52px minmax(0,1fr); }
    .pricing-entity-illustration { width: 52px; height: 52px; }
    .pricing-entity-actions { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (max-width: 900px) {
    .booking-rule-card-header { align-items: flex-start; }
    .booking-rule-header-controls { max-width: 420px; }
    .booking-rule-day-grid { grid-template-columns: 1fr; }
    .email-settings-grid { grid-template-columns: 1fr; }
    .email-setting-row.span-2 { grid-column: auto; }
    .option-status-grid { grid-template-columns: 1fr; }
    .option-status-grid.two-items { grid-template-columns: 1fr; }
    .pricing-entities-layout { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .topbar-booking-link span:last-child { display: none; }
    .topbar-booking-link { width: 38px; min-width: 38px; padding-inline: 0; }
    .booking-rule-card,
    .modal-section-card { padding: 15px; border-radius: 14px; }
    .booking-rule-card-header { display: grid; }
    .booking-rule-header-controls { justify-content: flex-start; max-width: none; }
    .booking-rule-active-toggle { flex: 1 1 190px; }
    .compact-color-control { flex: 0 0 auto; }
    .booking-rule-main-grid,
    .booking-rule-card .form-grid { grid-template-columns: 1fr; }
    .booking-rule-main-grid > label,
    .aligned-help-grid > label { grid-template-rows: auto 42px minmax(18px,auto); }
    .booking-rule-card .inline-toggle { width: 100%; }
    .booking-rule-card-header .inline-toggle { justify-self: stretch; }
    .pricing-day-card { min-height: 160px; padding: 9px; }
    .pricing-day-head strong { font-size: 14px; }
    .pricing-day-price strong { font-size: 13px; }
    .pricing-day-extras,
    .pricing-day-constraints { font-size: 9.5px; }
    .calendar-selection-summary { grid-template-columns: auto minmax(0,1fr); }
    .calendar-selection-summary .btn { grid-column: 1 / -1; width: 100%; }
    .option-photo-picker,
    .email-logo-picker { grid-template-columns: 84px minmax(0,1fr); }
    .option-photo-picker img,
    .option-photo-placeholder,
    .email-logo-picker img,
    .email-logo-placeholder { width: 84px; height: 76px; }
    .email-setting-row { grid-template-columns: 1fr; align-items: start; }
    .email-display-toggle { justify-self: start; }
    .pricing-entity-card { grid-template-columns: 48px minmax(0,1fr); padding: 12px; }
    .pricing-entity-illustration { width: 48px; height: 48px; }
    .booky-modal-body .form-actions:last-child { bottom: -14px; margin: 0 -14px -14px; padding: 13px 14px calc(13px + env(safe-area-inset-bottom)); }
}
@media (max-width: 440px) {
    .booking-rule-header-controls { display: grid; grid-template-columns: auto minmax(0,1fr); width: 100%; }
    .booking-rule-active-toggle { min-width: 0; }
    .pricing-day-card { min-height: 154px; }
    .pricing-entity-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pricing-entity-actions .btn,
    .pricing-entity-actions form,
    .pricing-entity-actions form .btn { width: 100%; }
    .option-photo-picker,
    .email-logo-picker { grid-template-columns: 1fr; }
}

/* Booky 1.3.3 — calendrier compact, formulaires métier et réglages e-mail. */
.topbar-booking-link { flex: 0 0 auto; }

/* Un seul niveau de carte dans les fenêtres modales. */
.booky-modal-body .modal-page-content,
.booky-modal-body .modal-form-flat,
.booky-modal-body .booking-rule-form,
.booky-modal-body .calendar-rate-modal-form {
    display: grid;
    gap: 16px;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.booky-modal-body .modal-section-card,
.booking-rule-card {
    margin: 0;
    padding: 20px;
    background: #fff;
    border: 1px solid #e2e5ee;
    border-radius: 17px;
    box-shadow: 0 1px 2px rgba(17,24,39,.025);
}
.booky-modal-body .modal-section-card .modal-section-card,
.booking-rule-card .booking-rule-card { padding: 0; background: transparent; border: 0; box-shadow: none; }
.booky-modal-body .section-title-with-icon,
.booking-rule-card .section-title-with-icon { align-items: center; margin-bottom: 17px; }
.section-icon,
.email-event-icon,
.event-icon,
.panel-title-icon,
.entity-illustration,
.modal-intro > .material-symbols-outlined,
.analytics-card-heading > .material-symbols-outlined {
    display: grid;
    place-items: center;
    align-content: center;
    line-height: 1;
    text-align: center;
}
.section-icon > *, .email-event-icon > *, .event-icon > * { line-height: 1; }

/* Formulaire de règle : identité compacte et sections sans boîtes imbriquées. */
.booking-rule-form { gap: 16px; }
.booking-rule-card-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.booking-rule-card-header .section-title-with-icon { margin: 0; }
.booking-rule-header-controls { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 0 0 auto; }
.compact-color-control { display: inline-flex; align-items: center; gap: 7px; width: auto; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .045em; }
.compact-color-control input[type="color"] { width: 38px; height: 38px; min-height: 38px; padding: 3px; overflow: hidden; border: 1px solid #d8dbea; border-radius: 11px; cursor: pointer; }
.booking-rule-active-toggle { flex: 0 0 auto; min-width: 185px; min-height: 46px; padding: 8px 11px; }
.booking-rule-active-toggle small { display: none; }
.booking-rule-main-grid { align-items: start; }
.booking-rule-main-grid > label { grid-template-rows: auto 44px 30px; }
.booking-rule-main-grid input { height: 44px; }
.booking-rule-period-list { gap: 0; margin: 0 0 13px; }
.booking-rule-period-list.is-disabled { opacity: .48; pointer-events: none; }
.booking-rule-period-row { padding: 13px 0; background: transparent; border: 0; border-top: 1px solid #eceef4; border-radius: 0; }
.booking-rule-period-row:first-child { padding-top: 0; border-top: 0; }
.booking-rule-period-row:last-child { padding-bottom: 0; }
.booking-rule-period-row .period-row-heading { margin-bottom: 10px; }
.booking-rule-card .inline-toggle { display: inline-flex; align-items: center; gap: 9px; width: auto; min-width: 180px; padding: 8px 10px; background: #f7f7fd; border: 1px solid #e6e4f7; border-radius: 12px; }
.booking-rule-card .inline-toggle > span:last-child { display: grid; line-height: 1.2; }
.booking-rule-card .inline-toggle small { font-size: 10px; }
.booking-rule-card fieldset { padding: 14px; background: #fbfcfe; }
.booking-rule-card .selection-chips { gap: 8px; }
.booking-rule-card .field-help-slot { min-height: 30px; }

/* Calendrier : cartes moins hautes, informations lisibles et sélection explicite. */
.pricing-calendar-weekdays, .pricing-calendar-grid { gap: 8px; }
.pricing-day-card {
    min-height: 176px;
    padding: 11px;
    border-radius: 13px;
}
.pricing-day-head { align-items: center; }
.pricing-day-head strong { font-size: 16px; line-height: 1; }
.pricing-day-head small { font-size: 9px; font-weight: 750; }
.pricing-day-price { margin: 8px 0 6px; }
.pricing-day-price strong { font-size: 14px; line-height: 1.2; }
.pricing-day-price small { font-size: 10px; }
.pricing-day-extras, .pricing-day-constraints, .pricing-day-flags { gap: 5px 9px; font-size: 10.5px; line-height: 1.3; }
.pricing-day-extras .material-symbols-outlined,
.pricing-day-constraints .material-symbols-outlined,
.pricing-day-flags .material-symbols-outlined { font-size: 16px; }
.pricing-day-constraints, .pricing-day-flags { margin-top: 4px; }
.pricing-day-events { gap: 3px; padding-top: 5px; }
.calendar-reservation-chip, .calendar-block-chip, .calendar-more-events { min-height: 20px; padding: 3px 6px; font-size: 9px; }
.pricing-day-card.is-in-selected-range { background: linear-gradient(155deg,#eeecff,#faf9ff); }
.pricing-day-card.is-range-start, .pricing-day-card.is-range-end { background: linear-gradient(155deg,#e8e5ff,#f8f7ff); }
.calendar-selection-summary { grid-template-columns: auto minmax(0,1fr) auto; }
.calendar-selection-summary > span:nth-child(2) { display: grid; }
.calendar-rate-modal-form .calendar-date-range-fields { margin-top: 6px; }
.calendar-rate-modal-form .selection-shortcuts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.calendar-rate-modal-form .calendar-weekday-chips { display: flex; flex-wrap: wrap; gap: 8px; }

/* Pilules de sélection communes. */
.selection-chips,
.adjustment-type-picker,
.illustration-mode-picker,
.option-icon-grid,
.weekday-chips { display: flex; align-items: stretch; flex-wrap: wrap; gap: 8px; }
.selection-chip { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; width: auto; padding: 8px 12px; color: #4e5868; background: #fff; border: 1px solid #d9dde6; border-radius: 999px; font-size: 12px; font-weight: 700; cursor: pointer; transition: .15s ease; }
.selection-chip:hover { color: var(--accent); background: #f8f7ff; border-color: #bbb5f7; }
.selection-chip input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.selection-chip:has(input:checked), .selection-chip.is-selected { color: #fff; background: var(--accent); border-color: var(--accent); box-shadow: 0 6px 14px rgba(95,86,232,.18); }
.selection-chip:has(input:focus-visible) { outline: 3px solid rgba(95,86,232,.24); outline-offset: 2px; }
.selection-chip .material-symbols-outlined { font-size: 18px; }

/* Options, frais, coupons et remises. */
.modal-form-flat { gap: 16px; }
.illustration-mode-picker, .adjustment-type-picker { margin-top: 4px; }
.illustration-panel { margin-top: 14px; padding: 15px; background: #f9fafc; border: 1px solid #e5e8ef; border-radius: 14px; }
.option-icon-catalogue { display: grid; gap: 14px; }
.option-icon-category { display: grid; gap: 8px; }
.option-icon-category > strong { color: #4b5565; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.option-icon-chip { min-width: 42px; padding-inline: 10px; }
.option-photo-picker, .email-logo-picker { display: flex; align-items: center; gap: 16px; min-height: 104px; padding: 14px; background: #fbfbfe; border: 1px dashed #c9c6f3; border-radius: 14px; }
.option-photo-picker img, .email-logo-picker img { width: 96px; height: 76px; object-fit: cover; background: #fff; border: 1px solid #e2e5ec; border-radius: 12px; }
.option-photo-placeholder, .email-logo-placeholder { display: grid; place-items: center; width: 96px; height: 76px; color: var(--accent); background: var(--accent-soft); border-radius: 12px; font-size: 32px; }
.file-button { position: relative; overflow: hidden; }
.file-button input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.adjustment-type-fieldset, .weekday-fieldset { padding: 0; border: 0; }
.adjustment-type-fieldset legend, .weekday-fieldset legend { margin-bottom: 8px; padding: 0; color: #3d4655; font-size: 12px; font-weight: 700; }
.adjustment-values-grid { margin-top: 14px; }
.option-status-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.option-status-grid.two-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
.compact-status-card { padding-block: 16px; }
.compact-status-card .toggle-card { min-width: 0; }

/* Paramètres e-mail. */
.email-settings-warning { display: flex; align-items: flex-start; gap: 11px; }
.email-settings-warning > .material-symbols-outlined { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; }
.email-settings-warning p { margin: 3px 0 0; }
.email-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.email-setting-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; padding: 12px; background: #fafbfc; border: 1px solid #e7e9ef; border-radius: 13px; }
.email-setting-row-block { align-items: start; }
.email-setting-row.is-display-disabled { opacity: .68; }
.email-display-toggle { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 104px; min-height: 41px; padding: 8px 10px; color: #4b5565; background: #fff; border: 1px solid #dde1e9; border-radius: 11px; white-space: nowrap; }
.email-display-toggle input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; }
.email-display-toggle .toggle-switch { flex: 0 0 auto; }
.email-logo-setting { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
.email-template-card .email-event-icon { align-self: start; }
.email-template-card .email-card-preview { overflow: hidden; border: 1px solid #e4e7ee; border-radius: 13px; }

/* Alignement des icônes des tableaux de bord et e-mails. */
.dashboard-event-list article { align-items: center; }
.dashboard-event-list .event-icon,
.email-template-card .email-event-icon,
.panel-header h2 > .material-symbols-outlined { align-self: center; vertical-align: middle; }
.panel-header h2 { align-items: center; }

@media (max-width: 1280px) {
    .pricing-day-card { min-height: 170px; }
}
@media (max-width: 900px) {
    .booking-rule-card-header { align-items: flex-start; flex-direction: column; }
    .booking-rule-header-controls { width: 100%; justify-content: space-between; }
    .calendar-selection-summary { grid-template-columns: auto minmax(0,1fr); }
    .calendar-selection-summary .btn { grid-column: 1 / -1; width: 100%; }
    .email-settings-grid { grid-template-columns: 1fr; }
    .email-setting-row.span-2 { grid-column: auto; }
}
@media (max-width: 700px) {
    .topbar-booking-link span:last-child { display: none; }
    .topbar-booking-link { width: 36px; min-height: 36px; padding: 0; border-radius: 10px; }
    .booky-modal-body .modal-section-card, .booking-rule-card { padding: 15px; border-radius: 14px; }
    .booking-rule-header-controls { align-items: stretch; flex-wrap: wrap; }
    .booking-rule-active-toggle { flex: 1 1 190px; }
    .compact-color-control { margin-left: auto; }
    .booking-rule-main-grid, .form-grid, .form-grid-3 { grid-template-columns: 1fr; }
    .pricing-calendar-weekdays, .pricing-calendar-grid { min-width: 820px; gap: 6px; }
    .pricing-day-card { min-height: 168px; padding: 10px; }
    .option-status-grid, .option-status-grid.two-items { grid-template-columns: 1fr; }
    .option-photo-picker, .email-logo-picker { align-items: stretch; flex-direction: column; }
    .email-logo-setting, .email-setting-row { grid-template-columns: 1fr; align-items: stretch; }
    .email-display-toggle { justify-content: flex-start; width: 100%; }
    .form-actions { align-items: stretch; flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; }
}
@media (max-width: 430px) {
    .booky-modal-body { padding: 10px; }
    .booky-modal-body .modal-section-card, .booking-rule-card { padding: 13px; }
    .selection-chip { min-height: 36px; padding: 7px 10px; font-size: 11px; }
    .booking-rule-card .inline-toggle { width: 100%; }
}
.help-tip.is-open .help-tip-content { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }

/* Booky 1.3.3 — finitions de lisibilité et suppression des cadres imbriqués. */
.booking-rule-card > .booking-rule-card-header > .inline-toggle {
    min-width: 0;
    padding: 4px 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
.booking-rule-day-grid fieldset {
    min-width: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
.booking-rule-day-grid fieldset + fieldset {
    padding-left: 20px;
    border-left: 1px solid #eceef4;
}
.booking-rule-main-grid > label,
.booking-rule-card .aligned-help-grid > label {
    display: grid;
    grid-template-rows: auto 44px minmax(28px, auto);
    align-content: start;
}
.booking-rule-main-grid > label > input,
.booking-rule-card .aligned-help-grid > label > input {
    height: 44px;
}
.compact-color-control > span { display: none; }
.compact-color-control input[type="color"] { width: 36px; height: 36px; min-height: 36px; border-radius: 10px; }

.pricing-day-card {
    min-height: 156px;
    padding: 10px;
}
.pricing-day-head strong { font-size: 16px; }
.pricing-day-head small { font-size: 9.5px; }
.pricing-day-price { margin: 6px 0 5px; }
.pricing-day-price strong { font-size: 15px; }
.pricing-day-price small { font-size: 10.5px; }
.pricing-day-extras,
.pricing-day-constraints,
.pricing-day-flags { font-size: 11px; line-height: 1.35; }
.pricing-day-extras .material-symbols-outlined,
.pricing-day-constraints .material-symbols-outlined,
.pricing-day-flags .material-symbols-outlined { font-size: 17px; }
.pricing-day-events { margin-top: auto; }
.calendar-reservation-chip,
.calendar-block-chip,
.calendar-more-events { min-height: 19px; font-size: 9.5px; }

.calendar-rate-modal-content { max-width: 980px; margin-inline: auto; }
.calendar-rate-modal-form .modal-section-card { scroll-margin-top: 16px; }
.discount-scope-fieldset { margin-top: 16px; }

.dashboard-event-list .event-icon,
.email-template-card .email-event-icon,
.section-title-with-icon .section-icon,
.panel-header h2 .panel-title-icon {
    display: inline-grid;
    place-items: center;
    align-content: center;
    justify-content: center;
    line-height: 1;
}
.dashboard-event-list .event-icon { align-self: center; }

@media (max-width: 900px) {
    .booking-rule-day-grid fieldset + fieldset {
        padding-top: 16px;
        padding-left: 0;
        border-top: 1px solid #eceef4;
        border-left: 0;
    }
    .pricing-day-card { min-height: 154px; }
}
@media (max-width: 700px) {
    .pricing-calendar-weekdays,
    .pricing-calendar-grid { min-width: 800px; }
    .pricing-day-card { min-height: 152px; }
    .pricing-day-extras,
    .pricing-day-constraints,
    .pricing-day-flags { font-size: 10.5px; }
}

/* Booky 1.3.6 — URL de réservation, calendrier et personnalisation publique */
.booking-url-section { overflow: visible; }
.booking-url-editor-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); align-items: end; gap: 16px; }
.booking-url-input-group { display: flex; align-items: stretch; min-width: 0; overflow: hidden; background: #fff; border: 1px solid #d5dae3; border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.booking-url-input-group:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(95,86,232,.12); }
.booking-url-prefix { display: flex; align-items: center; flex: 0 0 auto; max-width: 58%; padding: 0 0 0 13px; overflow: hidden; color: #697386; background: #f8f9fb; border-right: 1px solid #e3e6ec; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 650; }
.booking-url-input-group input { min-width: 110px; border: 0; border-radius: 0; box-shadow: none !important; }
.booking-slug-field > small { min-height: 18px; }
.booking-slug-field > small.is-checking { color: #667085; }
.booking-slug-field > small.is-available { color: #067647; }
.booking-slug-field > small.is-unavailable { color: #b54708; }
.booking-url-preview-card { display: grid; grid-template-columns: 42px minmax(0,1fr) 38px; align-items: center; gap: 10px; min-height: 78px; padding: 12px; background: linear-gradient(135deg,#f7f5ff,#fff); border: 1px solid rgba(95,86,232,.2); border-radius: 14px; }
.booking-url-preview-card > .material-symbols-outlined { display: grid; place-items: center; width: 42px; height: 42px; color: var(--accent); background: #eae7ff; border-radius: 12px; }
.booking-url-preview-card div { min-width: 0; }
.booking-url-preview-card small { display: block; margin-bottom: 3px; color: #7b8494; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.booking-url-preview-card a:not(.icon-button) { display: block; overflow: hidden; color: var(--accent); text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.booking-slug-suggestions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.booking-slug-suggestions > span { color: #667085; font-size: 12px; font-weight: 700; }
.wordpress-plugin-section { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 18px; background: linear-gradient(135deg,#f8f7ff,#fff); border: 1px solid rgba(95,86,232,.18); border-radius: 16px; }
.wordpress-plugin-section .section-title-with-icon { align-items: center; }
.wordpress-plugin-features { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.wordpress-plugin-features span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; color: #566173; background: #fff; border: 1px solid #e1e4eb; border-radius: 999px; font-size: 11px; font-weight: 650; }
.wordpress-plugin-features .material-symbols-outlined { font-size: 15px; color: var(--accent); }

.calendar-header-actions { position: relative; align-items: center; }
.calendar-display-settings { position: relative; }
.calendar-display-toggle { width: 44px; height: 44px; color: var(--accent); background: #f1efff; border-color: rgba(95,86,232,.22); }
.calendar-display-toggle:hover, .calendar-display-settings.is-open .calendar-display-toggle { color: #fff; background: var(--accent); border-color: var(--accent); }
.calendar-display-panel { position: absolute; z-index: 70; top: calc(100% + 10px); right: 0; width: min(360px,calc(100vw - 28px)); padding: 14px; background: #fff; border: 1px solid #dfe3ea; border-radius: 16px; box-shadow: 0 22px 60px rgba(17,24,39,.18); }
.calendar-display-panel-head { display: grid; grid-template-columns: minmax(0,1fr) 36px; align-items: center; gap: 10px; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #edf0f4; }
.calendar-display-panel-head strong, .calendar-display-panel-head small { display: block; }
.calendar-display-panel-head small { margin-top: 2px; color: #667085; font-size: 11px; font-weight: 500; }
.calendar-display-panel-head > .material-symbols-outlined { display: grid; place-items: center; width: 36px; height: 36px; color: var(--accent); background: #f0eeff; border-radius: 10px; }
.calendar-display-panel label { display: flex; grid-template-columns: none; align-items: center; gap: 9px; min-height: 38px; padding: 7px 8px; color: #475467; border-radius: 9px; cursor: pointer; font-size: 12px; font-weight: 650; }
.calendar-display-panel label:hover { background: #f8f7ff; }
.calendar-display-panel input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.calendar-display-panel .btn { margin-top: 8px; width: 100%; }
[data-calendar-field][hidden] { display: none !important; }

@media (max-width: 820px) {
    .booking-url-editor-grid { grid-template-columns: 1fr; }
    .wordpress-plugin-section { grid-template-columns: 1fr; }
    .wordpress-plugin-section > .btn { width: 100%; justify-content: center; }
}
@media (max-width: 560px) {
    .booking-url-prefix { display: none; }
    .booking-url-input-group input { border-radius: 12px; }
    .calendar-display-panel { position: fixed; z-index: 10020; top: auto; right: 0; bottom: 0; left: 0; width: 100%; padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; box-shadow: 0 -20px 50px rgba(17,24,39,.22); }
    .calendar-display-settings.is-open::before { position: fixed; z-index: 10019; inset: 0; background: rgba(17,24,39,.35); backdrop-filter: blur(2px); content: ""; }
}
.calendar-field-occupancy-hidden .pricing-day-card.is-closed { background: linear-gradient(155deg,#fff,#fbfbfd); }
.calendar-field-events-hidden .pricing-day-card.has-reservation { border-color: #dfe3e9; }

/* Booky 1.3.6 — page de réservation et e-mail plateforme */
.settings-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:6px;background:#f1f2f7;border:1px solid #e2e5ec;border-radius:14px}
.settings-tab{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 13px;color:#566173;border-radius:10px;font-size:13px;font-weight:750;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s}
.settings-tab .material-symbols-outlined{display:grid;place-items:center;width:20px;height:20px;font-size:19px;line-height:1}
.settings-tab:hover{color:var(--accent);background:#fff}
.settings-tab.active{color:#fff;background:var(--accent);box-shadow:0 8px 20px rgba(95,86,232,.22)}
.booking-page-settings{overflow:visible}
.booking-page-settings .form-section{padding:22px}
.booking-page-settings-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:22px;align-items:start}
.booking-banner-editor{display:grid;gap:12px}
.booking-banner-preview{position:relative;display:grid;place-items:center;align-content:center;gap:5px;overflow:hidden;min-height:250px;color:#667085;background:linear-gradient(145deg,#f5f4ff,#eef0f5);border:1px dashed #cfd4de;border-radius:18px;text-align:center}
.booking-banner-preview img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover}
.booking-banner-preview>.material-symbols-outlined{display:grid;place-items:center;width:54px;height:54px;color:var(--accent);background:#fff;border-radius:16px;font-size:30px;box-shadow:0 10px 26px rgba(17,24,39,.1)}
.booking-banner-preview small{max-width:320px;padding:0 16px}
.booking-banner-upload{display:flex;justify-content:flex-start;cursor:pointer}
.booking-banner-upload input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.booking-page-controls{display:grid;gap:11px}
.accent-color-control{display:grid;gap:7px;padding:14px;background:#fafaff;border:1px solid #e2e0ff;border-radius:14px}
.accent-color-fields{display:grid;grid-template-columns:58px minmax(0,1fr);gap:9px}
.accent-color-fields input[type=color]{min-height:46px;padding:4px;cursor:pointer}
.setting-toggle-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 38px;align-items:center;gap:10px;min-height:72px;padding:12px 13px;color:#344054;background:#fff;border:1px solid #e1e5ec;border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.setting-toggle-card:hover{border-color:#c9c4ff;background:#fdfcff}
.setting-toggle-card>input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.setting-toggle-card>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;color:var(--accent);background:#f0eeff;border-radius:12px;font-size:21px;line-height:1}
.setting-toggle-copy{display:grid;gap:2px;min-width:0}
.setting-toggle-card strong{font-size:13px}
.setting-toggle-card small{color:#667085;font-size:11px;font-weight:500;line-height:1.45}
.toggle-control{position:relative;display:inline-block;width:38px;height:22px;background:#d0d5dd;border-radius:999px;transition:background .15s}
.toggle-control::after{position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(17,24,39,.25);content:"";transition:transform .15s}
.setting-toggle-card>input[type=checkbox]:checked~.toggle-control,.inline-toggle>input[type=checkbox]:checked~.toggle-control{background:var(--accent)}
.setting-toggle-card>input[type=checkbox]:checked~.toggle-control::after,.inline-toggle>input[type=checkbox]:checked~.toggle-control::after{transform:translateX(16px)}
.setting-toggle-card:has(input:checked){border-color:rgba(95,86,232,.35);background:#faf9ff;box-shadow:0 8px 22px rgba(95,86,232,.08)}
.compact-check-row{display:flex;align-items:center;gap:8px}
.compact-check-row input{width:18px;height:18px;min-height:18px}
.rate-plan-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rate-plan-settings-card{padding:16px;background:#fbfbfd;border:1px solid #e0e4eb;border-radius:16px}
.rate-plan-settings-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.rate-plan-number{display:grid;place-items:center;width:34px;height:34px;color:var(--accent);background:#eeebff;border-radius:10px;font-size:13px;font-weight:850}
.inline-toggle{position:relative;display:flex;grid-template-columns:none;align-items:center;gap:8px;cursor:pointer}
.inline-toggle>input[type=checkbox]{position:absolute;opacity:0}
.inline-toggle .toggle-control{width:38px;min-height:22px}
.inline-toggle>span:last-child{font-size:12px;font-weight:750}
.compact-form-grid{gap:10px}
.rate-plan-refundable{align-self:end;min-height:46px;padding:10px 12px;background:#fff;border:1px solid #e2e5eb;border-radius:11px}
.rate-plan-refundable input{width:18px;height:18px;min-height:18px}
.sticky-form-actions{position:sticky;z-index:15;bottom:12px;margin-top:20px;padding:12px;background:rgba(255,255,255,.94);border:1px solid #e2e5ec;border-radius:14px;box-shadow:0 12px 34px rgba(17,24,39,.12);backdrop-filter:blur(12px)}
.form-help{margin:12px 0 0;color:#667085;font-size:12px}

.system-email-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}
.system-email-form{gap:16px}
.system-email-master-toggle{grid-template-columns:42px minmax(0,1fr) 38px}
.mailer-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}
.mailer-mode-grid legend{grid-column:1/-1;margin-bottom:2px;color:#344054;font-size:13px;font-weight:800}
.mailer-mode-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:10px;min-height:82px;padding:12px;color:#344054;background:#fff;border:1px solid #dde2e9;border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.mailer-mode-card>input{position:absolute;opacity:0;pointer-events:none}
.mailer-mode-card>.material-symbols-outlined:first-of-type{display:grid;place-items:center;width:42px;height:42px;color:var(--accent);background:#f1efff;border-radius:12px;font-size:22px;line-height:1}
.mailer-mode-card>span:nth-of-type(2){display:grid;gap:3px;min-width:0}
.mailer-mode-card .mode-check{display:grid;place-items:center;width:22px;height:22px;color:var(--accent);font-size:20px;line-height:1;opacity:0;transition:opacity .15s}
.mailer-mode-card:has(input:checked) .mode-check{opacity:1}
.mailer-mode-card strong{font-size:13px}
.mailer-mode-card small{color:#667085;font-size:11px;font-weight:500;line-height:1.4}
.mailer-mode-card:has(input:checked){border-color:var(--accent);background:#faf9ff;box-shadow:0 0 0 3px rgba(95,86,232,.1)}
.system-email-mode-fields{padding:16px;background:#f9fafc;border:1px solid #e3e6ec;border-radius:14px}
.system-email-mode-fields[hidden]{display:none!important}
.laravel-mail-summary,.native-mail-summary{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px}
.laravel-mail-summary>.material-symbols-outlined,.native-mail-summary>.material-symbols-outlined{display:grid;place-items:center;width:42px;height:42px;color:var(--accent);background:#eeebff;border-radius:12px}
.native-mail-summary>.material-symbols-outlined{color:#b54708;background:#fff4dc}
.laravel-mail-summary strong,.laravel-mail-summary small,.native-mail-summary strong,.native-mail-summary small{display:block}
.laravel-mail-summary small,.native-mail-summary small{margin-top:3px;color:#667085;font-size:11px}
.system-email-identity{margin:0;padding:18px}
.system-email-test-panel{position:sticky;top:84px}
.system-email-test-notes{margin-top:20px;padding:16px;background:#f8f9fc;border:1px solid #e4e7ec;border-radius:14px}
.system-email-test-notes h3{margin:0 0 8px;font-size:14px}
.system-email-test-notes ul{display:grid;gap:7px;margin:0;padding-left:18px;color:#667085;font-size:12px}
.status-pill{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:800}
.status-pill>.material-symbols-outlined{font-size:18px}
.status-pill.is-success{color:#067647;background:#ecfdf3;border:1px solid #abefc6}
.status-pill.is-muted{color:#667085;background:#f2f4f7;border:1px solid #e4e7ec}

@media(max-width:980px){
    .booking-page-settings-grid,.system-email-layout{grid-template-columns:1fr}
    .system-email-test-panel{position:static}
}
@media(max-width:760px){
    .rate-plan-settings-grid,.mailer-mode-grid{grid-template-columns:1fr}
    .booking-page-settings .form-section{padding:17px}
    .sticky-form-actions{position:static;display:grid}
    .sticky-form-actions .btn{width:100%;justify-content:center}
}
@media(max-width:560px){
    .settings-tabs{display:grid;grid-template-columns:1fr 1fr}
    .settings-tab{justify-content:center;padding-inline:8px;text-align:center}
    .booking-banner-preview,.booking-banner-preview img{min-height:190px}
    .setting-toggle-card{grid-template-columns:38px minmax(0,1fr) 38px;padding:11px}
    .setting-toggle-card>.material-symbols-outlined{width:38px;height:38px}
    .accent-color-fields{grid-template-columns:50px minmax(0,1fr)}
    .system-email-layout{gap:12px}
}
