:root{color-scheme:light;--navy:#142c39;--muted:#65727a;--cream:#f6f5ef;--teal:#1b7969;--teal-dark:#115a4e;--line:#dfe5df;--soft:#eaf3ee;--danger:#a33e39;--radius:18px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--navy);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--teal);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #2e8cba;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3rem);font-weight:600;line-height:1.12;letter-spacing:-1.6px}h2{font-size:1.3rem;letter-spacing:-.4px;line-height:1.3}h3{font-size:1rem;line-height:1.4}p{margin-bottom:1rem}.shell{max-width:1260px;margin:auto;padding:30px 40px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:42px;padding-bottom:23px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;gap:12px;align-items:center;text-decoration:none;color:var(--navy);font-weight:750;letter-spacing:-.5px;font-size:20px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:var(--navy);color:#fff;font-size:19px}.brand small{font-size:12px;font-weight:500;letter-spacing:.5px;color:var(--muted);border-left:1px solid var(--line);margin-left:4px;padding-left:16px}.topbar-actions,.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:30px}.page-heading h1{margin-bottom:10px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.8px;text-transform:uppercase;color:var(--teal);margin-bottom:13px}.muted{color:var(--muted)}.small{font-size:12px}.button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--teal);color:#fff;border:1px solid transparent;border-radius:10px;padding:11px 17px;font-weight:650;text-decoration:none;line-height:1.4;min-height:44px;transition:background .15s}.button:hover{background:var(--teal-dark)}.button.secondary{background:#fff;border-color:var(--line);color:var(--navy)}.button.secondary:hover{background:var(--soft)}.button.ghost{background:transparent;color:var(--navy);border-color:transparent}.button.ghost:hover{background:#e9ede7}.button.danger{color:var(--danger);background:#fff;border-color:#ead0ca}.button.compact{font-size:12px;min-height:36px;padding:7px 11px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;color:var(--navy);background:#fff;font-size:21px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:0 3px 14px #183f2b03}.card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.card-header h2{margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stack{display:flex;flex-direction:column;gap:20px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;background:var(--soft);color:var(--teal-dark);font-size:11px;font-weight:700;letter-spacing:.15px;padding:4px 8px;white-space:nowrap}.badge.neutral{background:#edf0f2;color:#52636c}.badge.warning{background:#fff2d9;color:#805817}.badge.danger{background:#fae9e6;color:#8b342f}.notice{padding:14px 17px;border:1px solid #cbded1;background:#edf5ef;border-radius:11px;font-size:13px;line-height:1.6}.notice.error{background:#fbefec;color:#87332d;border-color:#eac7bf}.notice.warning{background:#fff7e7;border-color:#ecddb7;color:#715b24}.notice a{color:inherit;font-weight:600}.status-bar{margin:18px 0}.empty{padding:45px 24px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--navy);margin-bottom:8px;font-size:17px}.field{display:flex;flex-direction:column;gap:7px}.field label,.field-label{font-weight:650;font-size:13px}.field input,.field select,.field textarea,.input{width:100%;min-width:0;border:1px solid #cdd7d2;border-radius:9px;background:#fff;color:var(--navy);padding:10px 12px;min-height:43px}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{border-color:var(--teal)}.field textarea{resize:vertical;min-height:88px}.field small{color:var(--muted);font-size:12px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check-row{display:flex;align-items:center;gap:9px;font-size:13px}.check-row input{accent-color:var(--teal);width:17px;height:17px}.section-title{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:18px}.form-section+.form-section{margin-top:28px}.form-section h3{font-size:15px;margin-bottom:14px}.toast{position:fixed;z-index:1000;bottom:25px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100vw - 30px));background:var(--navy);color:#fff;border-radius:12px;padding:14px 22px;box-shadow:0 8px 30px #142c3933}.toast[data-type="error"]{background:#87332d}.demo-banner{padding:10px 18px;text-align:center;background:#fff0c9;color:#695116;font-size:12px;font-weight:650}.spinner{width:18px;height:18px;border:2px solid #c1d8cd;border-top-color:var(--teal);border-radius:50%;display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:45px;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:27px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px}.summary-card span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.summary-card strong{font-size:29px;line-height:1.2;letter-spacing:-1px;font-weight:600}.summary-card .summary-icon{float:right;color:var(--teal);background:var(--soft);width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:16px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:25px;overflow-x:auto}.tab{font-weight:650;white-space:nowrap;padding:14px 2px 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted)}.tab[aria-selected="true"]{color:var(--navy);border-bottom-color:var(--teal)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.segmented{display:inline-flex;background:#e9ede7;border-radius:10px;padding:4px;gap:3px}.segmented button{border:0;background:none;border-radius:7px;padding:7px 13px;font-size:12px;font-weight:650;color:var(--muted);min-height:34px}.segmented button[aria-pressed="true"]{background:#fff;color:var(--navy);box-shadow:0 1px 4px #00000008}.booking-list{display:flex;flex-direction:column}.appointment{display:grid;grid-template-columns:66px minmax(0,1fr) minmax(160px,.7fr) auto;gap:21px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.appointment:first-child{padding-top:3px}.appointment:last-child{padding-bottom:3px;border-bottom:0}.date-tile{background:var(--cream);border-radius:11px;padding:9px 8px;text-align:center}.date-tile strong{display:block;font-size:25px;font-weight:550;line-height:1.15}.date-tile span{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.appointment-title{font-size:15px;font-weight:700;margin-bottom:4px;overflow-wrap:anywhere}.appointment-meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.appointment-side{font-size:13px}.appointment-side .badge{margin-top:6px}.outcome-select{max-width:150px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px;font-size:12px}.event-card{display:flex;flex-direction:column;min-height:248px;border-top:3px solid var(--teal)}.event-card .event-description{font-size:13px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 16px}.event-card h3{font-size:18px;letter-spacing:-.3px;margin:17px 0 8px;overflow-wrap:anywhere}.event-card footer{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.event-card .badge{align-self:flex-start}.contact-table{width:100%;border-collapse:collapse;text-align:left}.contact-table th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:8px 12px 13px}.contact-table td{padding:17px 12px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top}.contact-table tr:last-child td{border:0}.table-wrap{overflow:auto}.contact-table strong{display:block}.connection-card{max-width:720px}.connection-logo{display:grid;place-items:center;flex-shrink:0;width:47px;height:47px;border:1px solid var(--line);border-radius:12px;font-size:23px;font-weight:700;color:#4285f4}.connection-heading{display:flex;gap:15px;align-items:center}.connection-heading h3{margin:0 0 3px;font-size:17px}.connection-heading p{margin:0;font-size:12px}.connection-body{padding:22px 0;color:var(--muted);font-size:14px}.footer-note{font-size:12px;color:var(--muted);margin-top:26px}.editor{border:0;border-radius:20px;padding:0;width:min(780px,calc(100vw - 30px));max-height:calc(100dvh - 40px);color:var(--navy);box-shadow:0 22px 70px #142c392b}.editor::backdrop{background:#142c3966;backdrop-filter:blur(3px)}.editor-header{padding:24px 29px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.editor-header h2{margin:0;font-size:21px}.editor-body{padding:25px 29px}.editor-footer{padding:18px 29px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);background:#fbfcf9;position:sticky;bottom:0}.hours-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center;margin:10px 0}.hours-inputs{display:flex;flex-wrap:wrap;gap:8px}.hours-inputs input{width:100%;padding:8px 10px;border:1px solid #cdd7d2;border-radius:8px;min-height:39px}.hours-row label{font-size:13px}.question-card,.override-row{padding:16px;background:#f8faf7;border:1px solid var(--line);border-radius:11px;margin-top:12px}.question-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.question-card header strong{font-size:13px}.override-row{display:grid;grid-template-columns:150px 1fr 35px;gap:10px;align-items:center}.override-row input{width:100%;border:1px solid #cdd7d2;border-radius:8px;padding:8px;min-height:40px}.code-label{display:block;overflow-wrap:anywhere;font-size:12px;color:var(--muted)}.booking-layout{display:grid;grid-template-columns:320px minmax(0,1fr);background:#fff;border:1px solid var(--line);border-radius:23px;overflow:hidden;box-shadow:0 14px 50px #142c3906}.booking-layout .sidebar{background:#f0f4ee;padding:36px;border-right:1px solid var(--line)}.booking-layout .content{padding:36px}.steps{display:flex;gap:16px;margin-bottom:30px;flex-wrap:wrap}.step{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.step.active{color:var(--teal);font-weight:700}.step-number{width:23px;height:23px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:10px}.step.active .step-number{background:var(--teal);color:white;border-color:var(--teal)}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.slot{background:#fff;border:1px solid #b7d3c5;border-radius:9px;padding:12px 8px;color:var(--teal-dark);font-weight:650;min-height:46px}.slot:hover{background:var(--soft)}.slot.selected,.slot[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}.details{margin:20px 0;display:flex;flex-direction:column;gap:12px}.details div{display:flex;justify-content:space-between;gap:20px;font-size:13px}.details dt{color:var(--muted)}.details dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.date-picker{padding:11px 13px;border:1px solid #cdd7d2;border-radius:9px;background:white;min-height:45px;max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.shell{padding:24px 24px 60px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment{grid-template-columns:58px 1fr auto;gap:16px}.appointment-side{grid-column:2}.appointment-action{grid-column:3;grid-row:1/3}.booking-layout{grid-template-columns:260px minmax(0,1fr)}.booking-layout .sidebar,.booking-layout .content{padding:25px}}@media(max-width:620px){.shell{padding:18px 16px 50px}.topbar{margin-bottom:27px;gap:10px;padding-bottom:18px}.brand{font-size:18px}.brand small{display:none}.topbar-actions .button{font-size:12px;padding:8px 10px;min-height:38px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:22px}.page-heading>.button{width:100%}h1{font-size:34px}.summary-grid{gap:8px}.summary-card{padding:13px 11px;border-radius:11px}.summary-card span{font-size:10px}.summary-card strong{font-size:23px}.summary-icon{display:none!important}.tabs{gap:19px}.tab{font-size:12px}.card{padding:18px}.grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}.appointment{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:19px 0}.appointment-action{grid-column:2;grid-row:auto}.appointment-side{grid-column:2}.appointment-title{font-size:14px}.appointment-side{font-size:12px}.date-tile strong{font-size:22px}.editor-body{padding:20px}.editor-header,.editor-footer{padding:18px 20px}.editor-footer{flex-direction:column;align-items:stretch;gap:12px}.editor-footer .actions{justify-content:flex-end}.hours-row{grid-template-columns:80px 1fr}.override-row{grid-template-columns:1fr 35px}.override-row input:nth-child(2){grid-column:1;grid-row:2}.override-row button{grid-column:2;grid-row:1/3}.booking-layout{grid-template-columns:1fr;border-radius:16px}.booking-layout .sidebar{border-right:0;border-bottom:1px solid var(--line);padding:24px}.booking-layout .content{padding:24px}.booking-layout .sidebar h1{font-size:28px}.slots{grid-template-columns:repeat(3,1fr)}.steps{gap:10px}.step{font-size:10px}.connection-heading{align-items:flex-start}.toolbar .input{width:100%}.contact-table th,.contact-table td{padding-left:6px;padding-right:12px}.notice{font-size:12px}.toast{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.spinner{animation:none}}
.branding-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);align-items:start;gap:26px}.branding-preview-wrap{position:sticky;top:24px}.branding-preview{padding:25px;border:1px solid var(--line);border-radius:18px;background:#f6f5ef;overflow:hidden}.branding-preview-top{display:flex;align-items:center;gap:12px;min-height:48px}.branding-preview-top strong{overflow-wrap:anywhere;font-size:15px;display:block}.branding-preview-top p{margin:3px 0 0;overflow-wrap:anywhere}.branding-preview-top img{width:46px;height:46px;object-fit:contain;flex:0 0 46px;border-radius:10px;background:#fff}.branding-avatar{height:46px;width:46px;flex:0 0 46px;border-radius:12px;display:grid;place-items:center;background:#1b7969;color:white;font-size:15px;font-weight:700}.branding-preview-body{background:white;color:var(--navy);border:1px solid var(--line);border-radius:13px;padding:24px 20px;margin:24px 0 18px}.branding-preview-body h3{font-size:22px;margin:13px 0 12px;font-weight:600;letter-spacing:-.5px}.branding-preview-body p{margin-bottom:23px}.branding-preview-button{display:inline-flex;justify-content:center;background:#1b7969;color:#fff;border-radius:9px;padding:11px 15px;font-size:13px;font-weight:650}.field .color-input{padding:5px 7px;min-height:44px;cursor:pointer}.branding-preview #brand-preview-footer{overflow-wrap:anywhere}@media(max-width:760px){.branding-layout{grid-template-columns:1fr}.branding-preview-wrap{position:static}.branding-preview{max-width:500px}}
.notification-settings fieldset{min-width:0;margin:0;padding:15px 16px 17px;border:1px solid var(--line);border-radius:11px;background:#f8faf7}.notification-settings legend{padding:0 7px;font-size:13px;font-weight:700}.notification-settings .check-row+.check-row{margin-top:13px}.notification-settings input{flex-shrink:0}.notification-detail{max-width:310px;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.5;margin-top:6px;color:var(--muted)}
.google-calendar-settings{margin-top:25px;padding-top:24px;border-top:1px solid var(--line)}.google-calendar-settings h3{font-size:16px;margin-bottom:10px}.google-calendar-settings .notice{margin-bottom:15px}.google-conflict-fieldset{border:1px solid var(--line);border-radius:11px;padding:17px;min-width:0}.google-conflict-fieldset legend{font-size:13px;font-weight:650;padding:0 6px}.google-conflict-fieldset .stack{gap:13px}.google-conflict-fieldset label{align-items:flex-start;overflow-wrap:anywhere}.google-conflict-fieldset input{flex-shrink:0;margin-top:4px}.google-calendar-settings .button{align-self:flex-start}

/* Preserve readable primary actions inside recovery notices. */
.notice a.button:not(.ghost):not(.secondary):not(.danger){color:#fff}
/* ——— Calendrier ——— */
.calendar-card{padding:0;overflow:hidden;border-radius:16px}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line);background:#fff}
.calendar-nav{display:inline-flex;align-items:center;gap:6px}
.calendar-nav .icon-button{width:34px;height:34px;font-size:18px;border-radius:9px;color:var(--muted)}
.calendar-nav .icon-button:hover{color:var(--navy);background:#f4f6f3}
.calendar-title{text-align:center;flex:1 1 200px}
.calendar-title h2{margin:0;font-size:1.15rem;font-weight:650;letter-spacing:-.3px}
.calendar-title p{margin:1px 0 0;font-size:12px}
.calendar-card .footer-note{margin:0;padding:11px 20px;border-top:1px solid var(--line);background:#fcfcfa;font-size:11.5px}
.calendar[data-scale="month"]{padding:16px 20px 20px}

/* ——— Grille horaire (jour / semaine) ——— */
.cal-time{
  --hour:58px;--gutter:64px;--daymin:122px;
  --grid-hour:#e6ebe6;--grid-half:#f1f4f0;--offhours:#fafaf7;--weekend:#fcfcf9;
  overflow:auto;max-height:min(70vh,700px);overscroll-behavior:contain;scrollbar-width:thin}
.cal-time-inner{min-width:calc(var(--gutter) + var(--days) * var(--daymin))}
.cal-time-head{display:grid;grid-template-columns:var(--gutter) minmax(0,1fr);align-items:stretch;position:sticky;top:0;z-index:6;background:#fff;box-shadow:0 1px 0 var(--line),0 4px 10px -8px #0f2e2426}
.cal-tz{display:grid;place-items:center end;padding:0 10px 10px 0;font-size:10px;font-weight:700;letter-spacing:.3px;color:#9aa5a0;font-variant-numeric:tabular-nums;position:sticky;left:0;z-index:7;background:#fff}
.cal-headcols{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr))}
.cal-dayhead{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:10px 4px;min-height:0;color:#8c9792;border-left:1px solid var(--line)}
.cal-dayhead:first-child{border-left:0}
.cal-dayhead:hover .cal-dayhead-num strong{background:#eef2ee;color:var(--navy)}
.cal-dayname{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}
.cal-dayhead-num{display:flex;align-items:center;gap:6px}
.cal-dayhead strong{display:grid;place-items:center;min-width:28px;height:28px;padding:0 7px;border-radius:99px;font-size:16px;font-weight:650;color:var(--navy);letter-spacing:-.3px;font-variant-numeric:tabular-nums;transition:background .12s,color .12s}
.cal-dayhead[data-today="true"]{color:var(--teal)}
.cal-dayhead[data-today="true"] strong{background:var(--teal);color:#fff}
.cal-dayhead[data-today="true"]:hover strong{background:var(--teal-dark);color:#fff}

.cal-time-body{display:grid;grid-template-columns:var(--gutter) minmax(0,1fr)}
.cal-hours{display:flex;flex-direction:column;position:sticky;left:0;z-index:4;background:#fff;border-right:1px solid var(--line)}
.cal-hour{height:var(--hour);position:relative}
.cal-hour span{position:absolute;top:-6px;right:10px;font-size:10.5px;font-weight:650;color:#9aa5a0;font-variant-numeric:tabular-nums;background:#fff;padding:0 2px;line-height:1}
.cal-hour:first-child span{top:0}
.cal-cols{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));position:relative}
.cal-col{
  position:relative;min-height:calc(var(--hour) * 24);border-left:1px solid var(--line);
  background-image:
    linear-gradient(to bottom,var(--offhours) 0 calc(var(--hour) * 7),transparent calc(var(--hour) * 7) calc(var(--hour) * 21),var(--offhours) calc(var(--hour) * 21) 100%),
    repeating-linear-gradient(to bottom,transparent 0 calc(var(--hour) / 2),var(--grid-half) calc(var(--hour) / 2) calc(var(--hour) / 2 + 1px),transparent calc(var(--hour) / 2 + 1px) var(--hour)),
    repeating-linear-gradient(to bottom,var(--grid-hour) 0 1px,transparent 1px var(--hour))}
.cal-col:first-child{border-left:0}
.cal-col[data-weekend="true"]{background-color:var(--weekend)}
.cal-col[data-today="true"]{background-color:#f3faf5}
.cal-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #e0443a;z-index:5;pointer-events:none}
.cal-now::before{content:"";position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:99px;background:#e0443a;box-shadow:0 0 0 3px #e0443a24}

.cal-event{
  position:absolute;display:flex;flex-direction:column;gap:0;overflow:hidden;text-align:left;
  padding:3px 7px;min-height:0;line-height:1.2;border:0;border-left:3px solid #0d5447;border-radius:6px;
  background:var(--teal);color:#fff;z-index:2;box-shadow:0 1px 2px #0f2e2424;
  transition:box-shadow .12s,transform .12s;margin-right:2px}
.cal-event:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px -2px #0f2e2440;z-index:4}
.cal-event:disabled{cursor:default}
.cal-event[data-size="xs"]{flex-direction:row;align-items:center;gap:6px;padding:1px 7px}
.cal-event[data-size="xs"] .cal-event-meta,.cal-event[data-size="sm"] .cal-event-meta{display:none}
.cal-event[data-size="xs"] .cal-event-time{font-size:9.5px}
.cal-event[data-size="xs"] .cal-event-name{font-size:11px}
.cal-event[data-state="pending"]{background:#b8821f;border-left-color:#855c10}
.cal-event[data-state="cancelled"]{background:#ececeA;border-left-color:#c6ccc4;color:#78817c;text-decoration:line-through;box-shadow:none}
.cal-event-time{flex:0 0 auto;font-size:10px;font-weight:750;letter-spacing:.2px;white-space:nowrap;opacity:.92;font-variant-numeric:tabular-nums}
.cal-event-name{flex:1 1 auto;min-width:0;font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-event-meta{font-size:10.5px;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-more{position:absolute;right:4px;width:30px;height:18px;display:grid;place-items:center;padding:0;min-height:0;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--navy);font-size:10px;font-weight:750;z-index:5;box-shadow:0 2px 5px -1px #0f2e2433}
.cal-more:hover{border-color:var(--teal);color:var(--teal);box-shadow:0 3px 8px -1px #0f2e2440}

/* ——— Grille mois ——— */
.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:8px}
.cal-weekdays span{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#9aa5a0;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.cal-cell{background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px;min-height:112px;display:flex;flex-direction:column;gap:6px;transition:border-color .12s,box-shadow .12s}
.cal-cell:hover{border-color:#cfd8cf;box-shadow:0 2px 8px -4px #0f2e241f}
.cal-cell[data-outside="true"]{background:#fbfbf8;border-color:#eaeee9}
.cal-cell[data-outside="true"] .cal-daynum{color:#aab3ad}
.cal-cell[data-today="true"]{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}
.cal-cell-head{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;border:0;background:none;padding:0;min-height:0;font:inherit;color:inherit}
.cal-daynum{display:grid;place-items:center;min-width:24px;height:24px;border-radius:99px;font-size:12.5px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;transition:background .12s}
.cal-cell-head:hover .cal-daynum{background:#eef2ee}
.cal-cell[data-today="true"] .cal-daynum{background:var(--teal);color:#fff}
.cal-cell-count{font-size:10px;font-weight:700;color:#7d8a84;background:#eff3ee;border-radius:99px;padding:1px 7px;font-variant-numeric:tabular-nums}
.cal-dayhead[data-today="true"] .cal-cell-count{background:#e3f1e8;color:var(--teal-dark)}
.cal-chips{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:188px;scrollbar-width:thin}
.cal-chip{display:flex;flex:none;flex-direction:column;gap:1px;width:100%;text-align:left;border:0;border-left:3px solid var(--teal);border-radius:7px;background:#edf5ef;padding:4px 8px;min-height:0;color:var(--navy);transition:background .12s}
.cal-chip:hover:not(:disabled){background:#e2eee6}
.cal-chip:disabled{cursor:default}
.cal-chip[data-state="pending"]{border-left-color:#b8821f;background:#fcf4e4}
.cal-chip[data-state="cancelled"]{border-left-color:#ccd2c9;background:#f4f4f1;color:#848d88;text-decoration:line-through}
.cal-chip-time{font-size:10px;font-weight:750;letter-spacing:.3px;color:#6f7b75;font-variant-numeric:tabular-nums}
.cal-chip[data-state="cancelled"] .cal-chip-time{color:inherit}
.cal-chip-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:860px){
  .calendar-head{padding:13px 14px;gap:12px}
  .calendar-title{order:-1;flex-basis:100%}
  .calendar[data-scale="month"]{padding:12px 12px 16px}
  .calendar-card .footer-note{padding:10px 14px}
  .cal-time{--hour:52px;--gutter:52px;--daymin:104px}
}
@media(max-width:700px){
  .calendar[data-scale="month"] .cal-cell{min-height:58px;padding:5px 4px;gap:4px;border-radius:9px}
  .calendar[data-scale="month"] .cal-cell-count{display:none}
  .calendar[data-scale="month"] .cal-cell-head{justify-content:center}
  .calendar[data-scale="month"] .cal-daynum{min-width:21px;height:21px;font-size:11.5px}
  .calendar[data-scale="month"] .cal-chips{flex-direction:row;flex-wrap:wrap;gap:3px;max-height:none;justify-content:center}
  .calendar[data-scale="month"] .cal-chip{width:6px;height:6px;min-height:0;padding:0;border:0;border-radius:99px;background:var(--teal);overflow:hidden}
  .calendar[data-scale="month"] .cal-chip[data-state="pending"]{background:#b8821f}
  .calendar[data-scale="month"] .cal-chip[data-state="cancelled"]{background:#ccd2c9}
  .calendar[data-scale="month"] .cal-chip span{display:none}
  .cal-weekdays span{font-size:9px;letter-spacing:.3px}
  .cal-grid,.cal-weekdays{gap:4px}
}

.service-draft-section{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.service-draft-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px}
.service-draft-heading h2{font-size:clamp(1.45rem,2.4vw,2rem);margin:0}
.service-draft-heading>p{max-width:38ch;margin:0}
.service-draft-card{display:flex;flex-direction:column;gap:11px;min-width:0}
.service-draft-card h3{font-size:1.2rem;margin:0}
.service-draft-card p{margin:0;line-height:1.6}
.service-draft-card p:last-of-type{margin-bottom:4px}
.service-draft-card>span{margin-top:auto}
.service-draft-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}
.service-draft-meta .eyebrow{margin:0}
@media(max-width:760px){.service-draft-heading{display:block}.service-draft-heading>p{margin-top:10px}}

/* Rose-May's authenticated workspace uses the same visual identity as her booking page. */
body[data-brand="rose-may"]{--navy:#3e2d24;--muted:#6d594d;--cream:#f4efea;--teal:#9c4f30;--teal-dark:#783d28;--line:#e5ddd3;--soft:#f3e6db;--radius:28px;background:var(--cream);color:var(--navy);font-family:"Jost",Arial,sans-serif}
body[data-brand="rose-may"] :is(h1,h2){font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;letter-spacing:-.025em}
body[data-brand="rose-may"] .page-heading h1{font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.04}
body[data-brand="rose-may"] .topbar{border-bottom-color:#d8cabc}
body[data-brand="rose-may"] .brand{font-family:"Cormorant Garamond",Georgia,serif;font-size:25px;font-weight:600;letter-spacing:-.02em}
body[data-brand="rose-may"] .brand small{font-family:"Jost",Arial,sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px}
body[data-brand="rose-may"] .brand-mark{width:48px;height:48px;border-radius:50%;background:#fffcf8;color:var(--navy);border:1px solid var(--line);font-family:"Jost",Arial,sans-serif;font-size:13px;overflow:hidden}
body[data-brand="rose-may"] .brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
body[data-brand="rose-may"] .card,body[data-brand="rose-may"] .summary-card{background:#fffcf8;border-color:var(--line);box-shadow:0 12px 35px -28px rgba(62,45,36,.25)}
body[data-brand="rose-may"] .summary-card{border-radius:24px}
body[data-brand="rose-may"] .button,body[data-brand="rose-may"] .icon-button{border-radius:999px}
body[data-brand="rose-may"] .badge{border-radius:999px}
body[data-brand="rose-may"] .segmented{background:#e9ded2;border-radius:999px}
body[data-brand="rose-may"] .segmented button{border-radius:999px}
body[data-brand="rose-may"] .event-card{border-top-color:#b65a32}
body[data-brand="rose-may"] .calendar-card{border-radius:28px}
body[data-brand="rose-may"] .cal-col[data-today="true"]{background-color:#f9eee3}
body[data-brand="rose-may"] .notice.warning{background:#fbf3e9;border-color:#e8d3be;color:#6d4b32}

/* Élodie's private workspace follows the green and ivory identity of her site. */
body[data-brand="elodie-menadier"]{--navy:#254337;--muted:#566357;--cream:#f8f6ef;--teal:#3d6558;--teal-dark:#2b4e42;--line:#d6e0d5;--soft:#e8efe7;--radius:26px;background:var(--cream);color:var(--navy);font-family:Inter,Arial,sans-serif}
body[data-brand="elodie-menadier"] :is(h1,h2){font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;letter-spacing:-.02em}
body[data-brand="elodie-menadier"] .page-heading h1{font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.05}
body[data-brand="elodie-menadier"] .topbar{border-bottom-color:#cbd9cc}
body[data-brand="elodie-menadier"] .brand{font-family:"Cormorant Garamond",Georgia,serif;font-size:25px;font-weight:600;letter-spacing:-.02em}
body[data-brand="elodie-menadier"] .brand small{font-family:Inter,Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:1.4px}
body[data-brand="elodie-menadier"] .brand-mark{width:48px;height:48px;border-radius:50%;background:#fffefa;color:var(--navy);border:1px solid var(--line);font-size:13px;overflow:hidden}
body[data-brand="elodie-menadier"] .brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
body[data-brand="elodie-menadier"] .card,body[data-brand="elodie-menadier"] .summary-card{background:#fffefa;border-color:var(--line);box-shadow:0 12px 35px -28px rgba(37,67,55,.25)}
body[data-brand="elodie-menadier"] .summary-card{border-radius:22px}
body[data-brand="elodie-menadier"] .button,body[data-brand="elodie-menadier"] .icon-button,body[data-brand="elodie-menadier"] .badge{border-radius:999px}
body[data-brand="elodie-menadier"] .segmented{background:#e4ece2;border-radius:999px}
body[data-brand="elodie-menadier"] .segmented button{border-radius:999px}
body[data-brand="elodie-menadier"] .event-card{border-top-color:#3d6558}
body[data-brand="elodie-menadier"] .calendar-card{border-radius:26px}
body[data-brand="elodie-menadier"] .cal-col[data-today="true"]{background-color:#edf5ed}

/* Jean-Marc Broner's private workspace uses the sand, charcoal and brass of jmB. */
body[data-brand="jean-marc-broner"]{--navy:#262321;--muted:#675c50;--cream:#eae4da;--teal:#8b6538;--teal-dark:#6d4d2c;--line:#d8cdbf;--soft:#f2eade;--radius:22px;background:var(--cream);color:var(--navy);font-family:Montserrat,Arial,sans-serif}
body[data-brand="jean-marc-broner"] :is(h1,h2){font-family:"Playfair Display",Georgia,serif;font-weight:600;letter-spacing:-.025em}
body[data-brand="jean-marc-broner"] .page-heading h1{font-size:clamp(2.25rem,4.5vw,3.7rem);line-height:1.13}
body[data-brand="jean-marc-broner"] .topbar{border-bottom-color:#d8cdbf}
body[data-brand="jean-marc-broner"] .brand{font-family:"Playfair Display",Georgia,serif;font-size:22px;font-weight:600;letter-spacing:-.02em}
body[data-brand="jean-marc-broner"] .brand small{font-family:Montserrat,Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:1.2px}
body[data-brand="jean-marc-broner"] .brand-mark{width:50px;height:50px;border-radius:16px;background:#f7f5f1;color:var(--navy);border:1px solid var(--line);font-size:13px;overflow:hidden}
body[data-brand="jean-marc-broner"] .brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
body[data-brand="jean-marc-broner"] .card,body[data-brand="jean-marc-broner"] .summary-card{background:#f7f5f1;border-color:var(--line);box-shadow:0 12px 35px -28px rgba(38,35,33,.25)}
body[data-brand="jean-marc-broner"] .summary-card{border-radius:20px}
body[data-brand="jean-marc-broner"] .button,body[data-brand="jean-marc-broner"] .icon-button,body[data-brand="jean-marc-broner"] .badge{border-radius:14px}
body[data-brand="jean-marc-broner"] .segmented{background:#e5dbce;border-radius:14px}
body[data-brand="jean-marc-broner"] .segmented button{border-radius:12px}
body[data-brand="jean-marc-broner"] .event-card{border-top-color:#a37c4b}
body[data-brand="jean-marc-broner"] .calendar-card{border-radius:22px}
body[data-brand="jean-marc-broner"] .cal-col[data-today="true"]{background-color:#f2eadd}

/* Les Murmures de la Tortue: site typography, forest and warm terracotta. */
body[data-brand="morgane-hypolite"]{--navy:#24352f;--muted:#52665a;--cream:#f7f4ef;--teal:#a85038;--teal-dark:#883e2b;--line:#d7dfd7;--soft:#eaf0e9;--radius:24px;background:var(--cream);color:var(--navy);font-family:Inter,Arial,sans-serif}
body[data-brand="morgane-hypolite"] :is(h1,h2){font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.025em}
body[data-brand="morgane-hypolite"] .page-heading h1{font-size:clamp(2.25rem,4.5vw,3.7rem);line-height:1.08}
body[data-brand="morgane-hypolite"] .topbar{border-bottom-color:#cbd9cc}
body[data-brand="morgane-hypolite"] .brand{font-family:Georgia,"Times New Roman",serif;font-size:23px;font-weight:600;letter-spacing:-.02em}
body[data-brand="morgane-hypolite"] .brand small{font-family:Inter,Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:1.2px}
body[data-brand="morgane-hypolite"] .brand-mark{width:49px;height:49px;border-radius:50% 50% 50% 20%;background:#eaf0e9;color:#314238;border:1px solid #cbd9cc;font:700 13px Inter,Arial,sans-serif}
body[data-brand="morgane-hypolite"] .brand-mark img{display:block;width:32px;height:32px;object-fit:contain}
body[data-brand="morgane-hypolite"] .card,body[data-brand="morgane-hypolite"] .summary-card{background:#fffdf8;border-color:var(--line);box-shadow:0 12px 35px -28px rgba(31,48,40,.2)}
body[data-brand="morgane-hypolite"] .summary-card{border-radius:22px}
body[data-brand="morgane-hypolite"] .button,body[data-brand="morgane-hypolite"] .icon-button,body[data-brand="morgane-hypolite"] .badge{border-radius:999px}
body[data-brand="morgane-hypolite"] .segmented{background:#e7efe8;border-radius:999px}
body[data-brand="morgane-hypolite"] .segmented button{border-radius:999px}
body[data-brand="morgane-hypolite"] .event-card{border-top-color:#c86d51}
body[data-brand="morgane-hypolite"] .calendar-card{border-radius:24px}
body[data-brand="morgane-hypolite"] .cal-col[data-today="true"]{background-color:#eaf0e9}

/* Native workspace branding for clients without a bespoke skin. */
body[data-brand="client"]{background:var(--cream);min-height:100vh}
body[data-brand="client"] .brand{min-width:0;overflow-wrap:anywhere}
body[data-brand="client"] .brand-mark{flex:0 0 48px;width:48px;height:48px;background:transparent;color:var(--navy)}
body[data-brand="client"] .brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
body[data-brand="client"] .button:not(.secondary):not(.ghost):not(.danger){color:var(--brand-button-text)}
body[data-brand="client"] .button:not(.secondary):not(.ghost):not(.danger):hover{filter:brightness(.94)}

/* ===========================================================================
   CONFORT TACTILE — ajouté le 2026-10-17, strictement sous 620px.
   Rien au-dessus de cette largeur n'est touché : la densité du bureau reste
   exactement celle que le Head of Design a validée.

   Deux défauts mesurés dans cette feuille, tous deux invisibles sur ordinateur :

   1. `body{font-size:15px}` et les champs héritent de 15px. Safari iOS ZOOME
      automatiquement sur tout champ de moins de 16px dès qu'on le touche, et il
      ne dézoome jamais ensuite. La page reste décalée, on fait défiler de côté
      pour retrouver le bouton d'enregistrement. C'est LA raison numéro un d'un
      formulaire qui « rame » sur téléphone, et ça tombait précisément sur les
      champs d'horaires et de fermetures exceptionnelles.
   2. Cibles tactiles sous 44 px (la recommandation Apple) : 34 px sur les
      segments, 36 sur les boutons compacts, 38 sur ceux de la barre du haut,
      39 sur les horaires, 40 sur les fermetures, 43 sur les champs. Un pouce
      n'est pas une souris.
   =========================================================================== */
@media(max-width:620px){
  /* 16px exactement : en dessous, iOS zoome ; au-dessus, la mise en page bouge. */
  input,select,textarea,.input,.outcome-select{font-size:16px}
  /* Pleine largeur et retour à la ligne déjà prévus par .hours-inputs et
     .override-row : élever la police les rend plus hauts, jamais plus larges. */
  .field input,.field select,.field textarea,.input,
  .hours-inputs input,.override-row input,
  .segmented button,.button.compact,.topbar-actions .button{min-height:44px}
}
