/* Design: Projexo Soft Coastal — pages opérationnelles aérées, actions lisibles et surfaces cohérentes à grande comme à petite largeur. */
.admin-main input:not([type]),.admin-main input[type=search],.admin-main input[type=file]{min-height:43px;border:1px solid var(--line-strong,#bfd7d4);border-radius:10px;background:#fff;color:#213b4b;box-shadow:inset 0 1px 2px rgba(25,66,71,.025);transition:border-color .16s ease,box-shadow .16s ease}.admin-main input:not([type]):hover,.admin-main input[type=search]:hover,.admin-main input[type=file]:hover{border-color:#a9cac7}.admin-main input:not([type]):focus,.admin-main input[type=search]:focus,.admin-main input[type=file]:focus{border-color:var(--teal,#0a969f);outline:0;box-shadow:0 0 0 4px var(--focus,rgba(10,150,159,.18))}.admin-main input[type=file]{padding:8px;background:#fafdfe}.admin-main .list-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.45fr) auto;gap:12px;align-items:end;margin:0 0 20px;padding:16px;border:1px solid #e0ecea;border-radius:13px;background:#f8fbfb}.admin-main .list-filter label{display:grid;gap:6px;margin:0;color:#526b75;font:700 11px Manrope,sans-serif}.admin-main .list-filter label+label{max-width:none}.admin-main .list-filter .button{min-width:86px}.bookings-panel,.contacts-list-panel{overflow:hidden}.booking-table-head{padding:0 12px 10px}.booking-table-row{margin:7px 0;padding:14px 12px;border:1px solid #e6eeee;border-radius:11px;background:#fff;box-shadow:0 2px 5px rgba(25,66,71,.02);transition:border-color .16s ease,box-shadow .16s ease,transform .16s cubic-bezier(.23,1,.32,1)}.booking-table-row:hover{transform:translateY(-1px);border-color:#c5e2de;box-shadow:0 9px 20px rgba(25,88,92,.07)}.booking-table-row strong,.person-link{color:#25434f;font-size:13px}.booking-table-row small{font-size:12px}.booking-actions{gap:7px}.booking-actions .text-button{padding:6px 9px;border:1px solid #d7e8e5;border-radius:7px;background:#f9fcfb;color:#087b83;font-size:11px;line-height:1.1;transition:background .14s ease,border-color .14s ease,transform .14s ease}.booking-actions .text-button:hover{transform:translateY(-1px);border-color:#a6d4ce;background:#eaf8f6}.booking-actions .text-danger{border-color:#f0ced0;background:#fff8f8;color:#b03d48}.booking-actions .text-danger:hover{border-color:#e7a7ac;background:#fff0f1;color:#9a2732}.crm-grid{gap:20px}.crm-create-panel,.contacts-list-panel,.contact-detail-grid .panel{box-shadow:0 8px 22px rgba(27,69,74,.045)}.contact-list-row{margin:7px 0;padding:12px;border:1px solid #e6eeee;border-radius:11px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s cubic-bezier(.23,1,.32,1)}.contact-list-row:hover{transform:translateY(-1px);border-color:#c5e2de;box-shadow:0 9px 20px rgba(25,88,92,.07)}.contact-list-row:hover .row-chevron{transform:translateX(2px);color:var(--teal,#0a969f)}.contact-initials{width:38px;height:38px;border-radius:12px;background:#e2f4f2;color:#08757d;font-size:12px}.contact-list-name strong{color:#25434f;font-size:13px}.contact-list-name small{font-size:12px}.row-chevron{font-size:18px;transition:transform .16s cubic-bezier(.23,1,.32,1),color .16s ease}.tag-list i{border:1px solid color-mix(in srgb,var(--tag-color) 22%,white);padding:4px 7px;font-size:9px}.calendar-panel{padding:22px;overflow-x:auto}.calendar-toolbar{padding:13px 14px;border:1px solid #e0ecea;border-radius:12px;background:#f8fbfb}.calendar-weekdays span{padding:10px;color:#627984}.month-grid{border-color:#dfeae8;border-radius:13px;overflow:hidden}.calendar-day{min-height:160px;padding:11px;border-color:#dfeae8}.calendar-day.is-today{background:linear-gradient(180deg,#edfafa 0%,#fff 75%)}.calendar-date{width:27px;height:27px;margin-bottom:9px;display:grid;place-items:center;border-radius:8px;font-size:12px}.calendar-day.is-today .calendar-date{background:#d9f2ef;color:#08757d}.calendar-occurrence{padding:8px 9px;border:1px solid #cce7e4;border-left:4px solid #0b9da5;border-radius:8px;background:#edfafa;color:#174a54;box-shadow:0 2px 5px rgba(22,91,96,.03);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.calendar-occurrence:hover{border-color:#a8d9d4;border-left-color:#07858d;background:#e0f6f4;box-shadow:0 7px 15px rgba(22,91,96,.08)}.calendar-occurrence strong{font-size:12px}.calendar-occurrence small{font-size:11px}.calendar-event-menu[open] .calendar-occurrence{border-radius:8px 8px 0 0}.calendar-menu-trigger{width:28px;height:28px;border:1px solid #c6e2df;border-radius:8px;background:#fff}.calendar-menu-trigger i{width:3px;height:3px;background:#3e7b80}.calendar-event-popover{width:292px;border-color:#bfdfdb;border-radius:0 0 12px 12px;box-shadow:0 18px 34px rgba(25,74,79,.16)}.calendar-menu-heading{padding:12px 14px 9px;background:#f7fbfb;color:#6a858b}.calendar-menu-action{align-items:flex-start;gap:11px;padding:12px 14px}.calendar-menu-action strong{font-size:12px}.calendar-menu-action small{font-size:11px;line-height:1.35}.calendar-menu-icon{width:30px;height:30px;flex-basis:30px;border-radius:9px}.scope-form label{padding:12px 13px;border-color:#d8e7e5;border-radius:10px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.scope-form label:hover{border-color:#add4d0}.scope-form label:has(input:checked){border-color:#0a969f;background:#edfafa;box-shadow:inset 3px 0 0 #0a969f}.scope-form .danger-button{min-height:42px;border-radius:10px;box-shadow:0 7px 15px rgba(184,77,77,.15)}.invoices-layout{gap:20px}.invoice-create-panel,.billing-profile-panel,.invoice-list-panel,.invoice-document{border-radius:15px}.invoice-row{margin:7px 0;padding:14px 12px;border:1px solid #e6eeee;border-radius:11px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.invoice-row:hover{border-color:#c5e2de;box-shadow:0 8px 18px rgba(25,88,92,.06)}.invoice-status-form{padding:16px 0 0;gap:12px}.invoice-status-form label{display:grid;gap:6px;color:#526b75;font:700 11px Manrope,sans-serif}.invoice-secondary-actions .text-button,.invoice-document .text-button{padding:7px 9px;border-radius:7px}.invoice-document{padding:28px;box-shadow:0 14px 34px rgba(27,69,74,.08)}.invoice-document-header{padding-bottom:22px}.invoice-lines>div{padding:14px 0}.invoice-totals{margin-top:28px}.invoice-status-actions{padding-top:18px}.editor-layout{gap:22px}.editor-sidebar{position:sticky;top:24px;padding:21px;border-radius:15px}.editor-sidebar .editor-form{gap:14px}.theme-row{gap:8px}.theme-row input{height:37px!important;border-radius:9px!important}.section-nav{gap:10px;margin:2px 0;padding:10px 8px;border:1px solid transparent;border-radius:10px;transition:background .16s ease,border-color .16s ease,transform .16s cubic-bezier(.23,1,.32,1)}.section-nav:hover{transform:translateX(2px);border-color:#d8ebe8;background:#f4fbfa}.section-nav span{width:29px;height:29px;border-radius:9px}.section-editor-card{padding:26px;border-radius:15px}.section-editor-head{margin-bottom:19px}.move-actions button{width:32px;height:32px;border-radius:9px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.move-actions button:hover{transform:translateY(-1px);border-color:#a9d2cd;background:#edfafa;color:#08757d}.booking-editor-card{border-color:#d8cdfa;background:#fdfcff}.asset-form{padding:15px 0 0;border-top-color:#e0ecea}.payment-status-panel,.payment-rules-panel,.passes-layout .panel,.services-layout .panel{border-radius:15px}@media(max-width:980px){.admin-main .list-filter{grid-template-columns:1fr 1fr}.admin-main .list-filter .button{justify-self:start}.editor-sidebar{position:static}.calendar-day{min-height:150px}}@media(max-width:700px){.admin-main .list-filter{grid-template-columns:1fr}.admin-main .list-filter .button{width:100%}.booking-table-row{padding:13px}.booking-actions{grid-column:1/-1;padding-top:4px}.contact-list-row{padding:11px}.calendar-panel{padding:14px}.calendar-event-popover{width:min(292px,calc(100vw - 58px))}.invoice-document{padding:20px}.section-editor-card{padding:20px}.editor-sidebar{padding:18px}}

/* Contacts : réglage de l'espace client. */
.client-portal-settings { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.client-portal-settings > div { flex: 1 1 420px; }
.client-portal-settings h2 { margin: 2px 0 6px; }
.client-portal-settings p { margin: 0 0 6px; }
.client-portal-settings form { margin: 0; }
.contact-portal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.contact-portal-actions form { margin: 0; }
/* CRM : indicateurs, filtres, ligne de temps, doublons, import. */
.crm-header-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.crm-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 0 0 20px; }
.crm-kpis > div { padding: 14px 16px; border: 1px solid #e0ecea; border-radius: 13px; background: #fff; box-shadow: 0 6px 16px rgba(27,69,74,.04); }
.crm-kpis b { display: block; color: #213b4b; font: 800 20px Manrope, sans-serif; line-height: 1.2; }
.crm-kpis small { color: #627984; font-size: 12px; }
.crm-kpis .is-warn b { color: #b4532a; }
.crm-kpis-compact { margin: 14px 0; }
.crm-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 18px; padding: 14px 16px; border: 1px solid #f1d9a8; border-radius: 12px; background: #fff8ea; color: #6b4b0e; font-weight: 600; }
.crm-banner form { margin: 0; }
.crm-banner-danger { border-color: #f0ced0; background: #fff4f4; color: #8a1f28; }
.crm-filters { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(160px, .4fr) auto; gap: 12px; align-items: end; margin: 0 0 16px; padding: 16px; border: 1px solid #e0ecea; border-radius: 13px; background: #f8fbfb; }
.crm-filters label { display: grid; gap: 6px; margin: 0; color: #526b75; font: 700 11px Manrope, sans-serif; }
.crm-filter-more { grid-column: 1 / -1; }
.crm-filter-more summary { cursor: pointer; color: #087b83; font: 700 12px Manrope, sans-serif; }
.crm-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 12px 0 8px; }
.crm-duplicates { margin: 0 0 16px; padding: 12px 14px; border: 1px solid #f1d9a8; border-radius: 12px; background: #fffbf1; }
.crm-duplicates summary { cursor: pointer; }
.crm-duplicates summary small { color: #7a6a4a; margin-left: 6px; }
.crm-duplicate-group { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; padding: 8px 0; border-top: 1px dashed #f1d9a8; }
.crm-duplicate-group:first-of-type { margin-top: 8px; }
.crm-row { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px; }
.crm-row-stats { display: grid; justify-items: end; gap: 2px; color: #627984; font-size: 11px; white-space: nowrap; }
.crm-row-stats b { color: #213b4b; }
.crm-timeline { list-style: none; margin: 10px 0 0; padding: 0; max-height: 520px; overflow: auto; }
.crm-timeline li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 10px 0; border-top: 1px solid #edf3f2; }
.crm-timeline li:first-child { border-top: 0; }
.crm-timeline strong { display: block; color: #25434f; font-size: 13px; }
.crm-timeline small { display: block; color: #627984; font-size: 12px; overflow-wrap: anywhere; }
.crm-timeline time { color: #8197a0; font-size: 11px; white-space: nowrap; }
.crm-timeline-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: #edf6f5; color: #08757d; font-size: 13px; }
.crm-tone-ok .crm-timeline-icon { background: #e3f5ea; color: #1d6b3d; }
.crm-tone-warn .crm-timeline-icon { background: #fff1e5; color: #b4532a; }
.crm-mini-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px solid #edf3f2; color: #25434f; font-size: 12px; text-decoration: none; }
.crm-mini-row strong { font-size: 13px; }
a.crm-mini-row:hover strong { color: #087b83; }
.crm-subhead { margin-top: 18px !important; }
.crm-danger-panel { border-color: #f3dcdc !important; }
.crm-danger-panel .danger-button { background: #b03d48; color: #fff; border-color: #b03d48; }
.crm-format-list { margin: 10px 0; padding-left: 18px; color: #3b5662; font-size: 13px; line-height: 1.8; }
.crm-preview { overflow-x: auto; margin: 14px 0; border: 1px solid #e0ecea; border-radius: 12px; }
.crm-preview table { width: 100%; border-collapse: collapse; font-size: 12px; }
.crm-preview th { position: sticky; top: 0; background: #f4f9f8; color: #526b75; text-align: left; padding: 9px 10px; font: 700 11px Manrope, sans-serif; }
.crm-preview td { padding: 8px 10px; border-top: 1px solid #edf3f2; white-space: nowrap; }
.crm-preview-invalid td, .crm-preview-duplicate td { color: #b03d48; background: #fff8f8; }
.crm-preview-existing td:last-child { color: #7a5300; }
.crm-preview-new td:last-child { color: #1d6b3d; font-weight: 700; }
.crm-import-options { margin-top: 10px; }
.crm-import-options .checkbox-line { display: flex; gap: 8px; align-items: flex-start; font-weight: 600; color: #3b5662; }
.crm-import-actions { display: flex; gap: 10px; }
@media (max-width: 700px) {
    .crm-filters { grid-template-columns: 1fr; }
    .crm-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .crm-row-stats { grid-column: 2; justify-items: start; grid-auto-flow: column; gap: 10px; }
    .crm-mini-row { grid-template-columns: minmax(0, 1fr) auto; }
}
.crm-row, .crm-row:hover { text-decoration: none !important; }
.crm-row .contact-list-name { display: grid; gap: 3px; min-width: 0; }
.crm-row .contact-list-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-row .contact-initials { display: grid; place-items: center; text-decoration: none; }
.crm-danger-panel .button.danger-button { background: #b03d48 !important; border: 1px solid #b03d48 !important; color: #fff !important; min-height: 42px; }
.crm-danger-panel .button.danger-button:hover { background: #9a2732 !important; }
