:root {
  --cp-ink: #172938;
  --cp-muted: #60707c;
  --cp-blue: #073b70;
  --cp-green: #126044;
  --cp-red: #8a4038;
  --cp-amber: #7c5715;
  --cp-change-bg: #f4dfb6;
  --cp-change-bg-hover: #ead09d;
  --cp-change-border: #b78836;
  --cp-change-panel: #fffaf0;
  --cp-line: #d9e0e5;
  --cp-soft: #f1f4f6;
  --cp-white: #fff;
}

/* Education appointments: essential information first, secondary details collapsed. */
.csb { margin:0 0 18px; min-width:0; }
.csb-heading,.csb-card-head,.csb-card-bottom,.csb-dialog-head,.csb-dialog-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.csb-heading { margin-bottom:10px; flex-wrap:wrap; }
.csb-heading h2 { margin:0; color:var(--cp-blue); font-size:1.2rem; }
.csb-heading .cp-button,.csb-actions .cp-button,.csb-dialog-actions .cp-button { width:auto; max-width:100%; }
#csb-list { display:grid; gap:10px; }
.csb-card { padding:14px; min-width:0; background:#fff; border:1px solid var(--cp-line); border-radius:10px; }
.csb-card-head { align-items:flex-start; }
.csb-card-head > div { min-width:0; }
.csb-card h3 { margin:0; color:var(--cp-blue); font-size:.98rem; line-height:1.35; overflow-wrap:anywhere; }
.csb-time { margin:4px 0 0; font-size:1.08rem; font-weight:750; }
.csb-price { flex-shrink:0; max-width:42%; color:var(--cp-blue); font-size:1rem; line-height:1.35; text-align:right; overflow-wrap:anywhere; }
.csb-price--unknown { font-size:.8rem; font-weight:650; color:var(--cp-muted); }
.csb-address { margin:8px 0; font-size:.9rem; overflow-wrap:anywhere; }
.csb-card-bottom { align-items:flex-start; flex-wrap:wrap; }
.csb-details { flex:1 1 100px; min-width:0; }
.csb-details > summary { display:list-item; min-height:44px; padding:10px 0; color:var(--cp-blue); cursor:pointer; font-weight:650; font-size:.88rem; }
.csb-details dl { display:grid; gap:8px; margin:0 0 4px; font-size:.86rem; }
.csb-details dt { color:var(--cp-muted); font-size:.8rem; }
.csb-details dd { margin:2px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.csb-actions { display:flex; flex:0 1 auto; align-items:center; gap:8px; flex-wrap:wrap; max-width:100%; }
.csb-cancel { color:#8f2b22; background:#fff1ec; border-color:#d69785; }
.csb-cancel:hover { background:#ffe3d8; }
.csb-cutoff { margin:8px 0 0; font-size:.8rem; color:var(--cp-muted); }
.csb-pending { display:inline-block; margin-top:5px; color:var(--cp-amber); font-size:.78rem; font-weight:650; }
.csb-dialog { width:min(480px,calc(100% - 24px)); max-height:calc(100dvh - 32px); overflow:auto; margin:auto; padding:18px; color:var(--cp-ink); border:1px solid var(--cp-line); border-radius:12px; }
.csb-dialog::backdrop { background:rgb(8 27 46 / 48%); }
.csb-dialog h2 { margin:0; font-size:1.15rem; color:var(--cp-blue); }
.csb-close { display:grid; place-items:center; flex:0 0 44px; min-height:44px; border:1px solid #e5b4ad; border-radius:7px; color:#b91c1c; background:#fff4f2; font-size:1.8rem; line-height:1; cursor:pointer; }
.csb-dialog-actions { flex-wrap:wrap; justify-content:flex-end; margin-top:18px; }
#csb-dialog-recap { overflow-wrap:anywhere; line-height:1.6; }
#csb-dialog-error { color:#a42520; font-weight:650; }
.csb :focus-visible { outline:3px solid #296eaa; outline-offset:3px; }
.csb button:disabled { opacity:.65; cursor:wait; }
@media(max-width:390px) { .csb-card { padding:12px; } .csb-heading .cp-button { font-size:.84rem; } .csb-dialog-actions > button { flex:1 1 180px; } }

/* Agenda mensuel : jours proposés uniquement, sans grille vide. */
.wa { background:#fff; border:1px solid var(--cp-line); border-radius:18px; padding:24px; margin-bottom:28px; }
.wa-heading { margin:8px 0 20px; font-size:1.25rem; color:var(--cp-blue); }
.wa select { font:inherit; max-width:100%; min-height:44px; padding:8px 12px; border:1px solid #b7c6d2; border-radius:8px; background:#fff; color:var(--cp-blue); }
.wa-dog-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; padding-bottom:14px; border-bottom:1px solid var(--cp-line); }
.wa-dog-tab { min-height:44px; max-width:100%; padding:10px 18px; border:1px solid #b7c6d2; border-radius:8px; background:var(--cp-soft); color:var(--cp-blue); font:inherit; font-weight:600; line-height:1.4; overflow-wrap:anywhere; cursor:pointer; }
.wa-dog-tab:hover { background:#e2ebf3; border-color:var(--cp-blue); }
.wa-dog-tab[aria-selected="true"] { color:#fff; background:var(--cp-blue); border-color:var(--cp-blue); box-shadow:inset 0 -3px 0 #f8c800; }
.wa-dog-tab:disabled { opacity:.6; }
.wa-month-nav { display:grid; grid-template-columns:52px minmax(0,1fr) 52px; align-items:center; gap:12px; margin:20px 0 12px; }
.wa-month-nav h3 { margin:0; min-width:0; font-size:1.1rem; text-transform:capitalize; text-align:center; overflow-wrap:anywhere; }
.wa-month-nav button { display:flex; align-items:center; justify-content:center; padding:0; background:var(--cp-blue); border:1px solid var(--cp-blue); border-radius:10px; width:52px; height:52px; color:#fff; box-shadow:0 2px 4px #073b7026; cursor:pointer; }
.wa-month-nav button svg { display:block; width:28px; height:28px; flex-shrink:0; pointer-events:none; }
.wa-month-nav button:hover:not(:disabled) { background:#0b518f; border-color:#0b518f; }
.wa-month-nav button:active:not(:disabled) { background:#052c54; border-color:#052c54; box-shadow:none; }
.wa button:disabled { cursor:default; }
.wa-month-nav button:disabled { opacity:1; background:#edf1f5; border-color:#c5d0da; color:#71808f; box-shadow:none; }
.wa-date { display:grid; grid-template-columns:56px minmax(0,1fr); gap:16px; border-top:1px solid var(--cp-line); padding:22px 0; align-items:start; }
.wa-day { display:flex; flex-direction:column; align-items:center; color:var(--cp-blue); border-right:1px solid var(--cp-line); padding:10px 12px 0 0; }
.wa-day span { text-transform:uppercase; font-size:.76rem; }
.wa-day strong { font-size:1.65rem; line-height:1.25; }
.wa-choices { display:flex; flex-wrap:wrap; align-items:center; gap:10px; min-width:0; }
.wa-choices>small { flex-basis:100%; color:var(--cp-muted); }
.wa-slot { background:#fff; border:1px solid #164877; border-radius:9px; color:#093967; padding:12px 15px; min-height:48px; cursor:pointer; font-weight:600!important; text-align:center; }
.wa-slot[aria-pressed="true"] { background:#f8c800; border-color:#d7a900; }
.wa-slot small { display:block; font-size:.75rem; font-weight:400; max-width:190px; margin-top:3px; }
.wa-slot:disabled { background:#eef1f4; border-color:#d9dfe5; color:#536170; }
.wa-confirmed { display:block; border-radius:8px; padding:10px 12px; color:#155b39; background:#e4f1e6; font-weight:600; }
.wa-time-options { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; flex-basis:100%; min-width:0; }
.wa-booked-slot { flex:1 1 240px; min-width:0; padding:12px; border-radius:10px; background:#e4f1e6; }
.wa-booked-slot .wa-confirmed { padding:0; background:none; line-height:1.5; }
.wa-booked-slot>small { display:block; margin-top:4px; color:var(--cp-muted); }
.wa-booked-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.wa-booked-actions button { min-height:44px; padding:8px 12px; font-size:.9rem!important; }
.wa-presence { color:#155b39; border-color:#287046; background:#fff; }
.wa-presence:hover:not(:disabled) { background:#f1fbf3; border-color:#155b39; }
.wa-alternative { flex:0 1 auto; min-width:130px; max-width:100%; border-color:#1a619b; color:#124f80; background:#f2f7fc; }
.wa-alternative:hover:not(:disabled) { border-color:#073b70; background:#e1edf9; }
.wa-alternative small { max-width:none; color:inherit; line-height:1.35; }
.wa-change-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:16px 0; margin:0; border-top:1px solid var(--cp-line); border-bottom:1px solid var(--cp-line); }
.wa-change-summary dt { color:var(--cp-muted); font-size:.85rem; margin-bottom:5px; }
.wa-change-summary dd { margin:0; color:var(--cp-blue); font-weight:700; overflow-wrap:anywhere; }
.wa-change-future { display:flex; align-items:center; gap:10px; min-height:48px; margin-top:12px; color:var(--cp-blue); font-weight:600; cursor:pointer; }
.wa-change-future input { width:20px; height:20px; flex-shrink:0; margin:0; accent-color:var(--cp-blue); cursor:pointer; }
.wa-proposal { width:100%; padding:14px; border-radius:10px; background:#fff7d9; border:1px solid #dec578; display:flex; flex-wrap:wrap; gap:10px; }
.wa-proposal>strong,.wa-proposal>small { flex-basis:100%; }
.wa-proposal small { color:#5f501f; }
.wa-presets { border-top:1px solid var(--cp-line); padding-top:14px; font-size:.9rem; }
.wa-presets summary { cursor:pointer; min-height:44px; display:list-item; padding:10px 0; color:var(--cp-blue); }
.wa-presets>div { display:flex; gap:10px; flex-wrap:wrap; padding:10px 0; }
.wa-booking-bar { margin-top:18px; padding-top:12px; border-top:1px solid var(--cp-line); }
.wa-booking-bar .wa-book { width:100%; }
.wa-booking-bar .cp-link-button { display:block; margin:12px auto 0; }
.wa-book { background:#f8c800; border:1px solid #e2b700; border-radius:9px; color:#093967; min-height:48px; padding:12px 16px; font-weight:700!important; cursor:pointer; }
.wa-book:disabled { opacity:.6; }
.wa-note,.wa-limits,.wa-empty { color:#526477; line-height:1.5; }
.wa-limits { font-size:.78rem; margin:20px 0 0; }
.wa-message { color:#145936; white-space:pre-line; }
.wa-error,#wa-dialog-error { color:#9a322a; white-space:pre-line; }
.wa-dialog { width:min(510px,calc(100% - 24px)); max-height:90dvh; border:0; border-radius:18px; padding:24px; color:var(--cp-ink); }
.wa-dialog::backdrop { background:#08274699; }
.wa-dialog h2 { margin-top:0; font-size:1.3rem; }
.wa-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.wa-dialog-head h2 { min-width:0; margin:0; overflow-wrap:anywhere; }
.wa-dialog-close { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; padding:0; color:#a12821; background:#fff0ee; border:1px solid #cd574e; border-radius:9px; cursor:pointer; }
.wa-dialog-close svg { display:block; width:22px; height:22px; pointer-events:none; }
.wa-dialog-close:hover:not(:disabled) { background:#ffe0dc; }
.wa-dialog-close:disabled { opacity:.6; }
.wa-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; margin-top:20px; }
.wa-review-list { padding-left:20px; line-height:2; }
.wa-edit-options .wa-slot { margin:4px 8px 4px 0; }
.wa-cancel { display:block; color:#973a30; background:none; border:0; padding:15px 0; min-height:44px; text-decoration:underline; cursor:pointer; }
.wa-regular { font-size:1.1rem; font-weight:700; margin:8px 0; }
.wa-regular-bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; }
.wa-regular-bar .wa-regular { min-width:0; overflow-wrap:anywhere; }
.wa .wa-pause-action { min-height:44px; padding:9px 13px; border-radius:8px; font-size:.9rem!important; text-decoration:none!important; }
.wa-pause-summary { display:flex; align-items:baseline; gap:8px; margin:8px 0; color:var(--cp-amber); font-size:.9rem; line-height:1.5; }
.wa-pause-mark { flex-shrink:0; font-weight:700; }
.wa-scope { border:1px solid var(--cp-line); border-radius:8px; margin:16px 0; padding:10px; }
.wa-scope label { display:flex; align-items:center; gap:10px; min-height:48px; cursor:pointer; }
.wa-scope input { width:20px; height:20px; flex-shrink:0; }
.wa-pause-label { display:grid; gap:8px; }
.wa-pause-label input { font:inherit; min-height:48px; max-width:100%; padding:10px; border:1px solid #b7c6d2; border-radius:8px; }
.wa-pause-dates { max-height:35vh; overflow:auto; line-height:1.7; padding-left:22px; }
.wa-choices .cp-link-button { min-height:44px; padding:10px; }
.wa :focus-visible { outline:3px solid #b45415; outline-offset:3px; }
@media(max-width:480px) { .wa { padding:16px; } .wa-date { grid-template-columns:43px minmax(0,1fr); gap:10px; padding:20px 0; } .wa-slot { padding:10px; font-size:.9rem!important; } .wa-choices { gap:8px; } .wa-heading { font-size:1.15rem; } }

* { box-sizing: border-box; }
[hidden] { display: none !important; }

.client-portal-body {
  margin: 0;
  color: var(--cp-ink);
  background: #f5f7f8;
  font: 16px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.client-portal-body button,
.client-portal-body input,
.client-portal-body select,
.client-portal-body textarea { font: inherit; }

.client-portal-body :focus-visible {
  outline: 3px solid #c35418;
  outline-offset: 3px;
}

.cp-visually-hidden {
  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;
}

.cp-skip {
  position: fixed;
  z-index: 10;
  top: -5rem;
  left: 1rem;
  padding: .65rem .9rem;
  color: #fff;
  background: var(--cp-blue);
}
.cp-skip:focus { top: 1rem; }

.cp-header,
.cp-shell,
.cp-footer { width: min(720px, calc(100% - 2rem)); margin-inline: auto; }

.cp-header {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem 0;
  border-bottom: 1px solid var(--cp-line);
}
.cp-brand {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--cp-blue);
  font-size: .94rem;
  font-weight: 750;
  text-decoration: none;
}
.cp-brand img { width: 36px; height: 36px; object-fit: contain; }
.cp-language { display: flex; gap: .25rem; }
.cp-language a {
  display: grid;
  min-width: 39px;
  min-height: 36px;
  place-items: center;
  color: var(--cp-muted);
  border: 1px solid transparent;
  border-radius: .45rem;
  font-size: .78rem;
  font-weight: 750;
  text-decoration: none;
}
.cp-language a:hover { background: var(--cp-soft); }
.cp-language a[aria-current="page"] { color: var(--cp-blue); border-color: var(--cp-line); background: #fff; }

.cp-shell { padding: 1rem 0 2rem; }
.cp-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.cp-hero h1 { margin: 0; color: var(--cp-blue); font-size: clamp(1.55rem, 5vw, 1.9rem); line-height: 1.15; }
.cp-lead { margin: .35rem 0 0; color: var(--cp-muted); }
.cp-link-button {
  min-height: 38px;
  padding: .4rem .65rem;
  color: var(--cp-muted);
  border: 1px solid var(--cp-line);
  border-radius: .45rem;
  background: #fff;
  font-size: .83rem !important;
  font-weight: 650;
  cursor: pointer;
}

.cp-walks-section,
.cp-settings { margin-bottom: 1.5rem; }
.cp-walks-section > h2,
.cp-settings > h2 {
  margin: 0 0 .65rem;
  color: var(--cp-muted);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.cp-panel {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--cp-line);
  border-radius: .75rem;
  background: var(--cp-white);
}
.cp-panel h2 { margin: 0; color: var(--cp-blue); font-size: 1.25rem; line-height: 1.25; }
.cp-section-intro { margin: .35rem 0 1rem; color: var(--cp-muted); }
.cp-muted, .cp-small-note { color: var(--cp-muted); }
.cp-small-note { margin: .25rem 0 .75rem; font-size: .88rem; }
.cp-empty-message { margin: 0; padding: .85rem 1rem; border: 1px dashed var(--cp-line); border-radius: .65rem; color: var(--cp-muted); background: #fff; }

.cp-walk-list { display: grid; gap: .65rem; }
.cp-walk-card {
  padding: .85rem .95rem;
  border: 1px solid var(--cp-line);
  border-left: 4px solid #d2a64f;
  border-radius: .65rem;
  background: var(--cp-white);
  box-shadow: 0 2px 8px rgba(23, 41, 56, .035);
}
.cp-walk-card--confirmed { border-left-color: #559b7f; }
.cp-walk-card--refused,
.cp-walk-card--cancelled { border-left-color: #c58b85; background: #fdfcfc; }
.cp-walk-card--cancelled { opacity: .78; }
.cp-walk-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.cp-walk-date { margin: 0; color: var(--cp-ink); font-size: 1.02rem; line-height: 1.25; }
.cp-walk-time { margin: .08rem 0 0; color: var(--cp-blue); font-size: 1.22rem; font-weight: 800; letter-spacing: -.02em; }
.cp-walk-dogs { display: flex; flex-wrap: wrap; gap: .25rem .45rem; margin: .65rem 0 0; }
.cp-walk-dogs span { color: var(--cp-muted); }
.cp-walk-dogs span::before { content: "·"; margin-right: .45rem; color: #9aa7b0; }
.cp-time-change {
  margin-top: .65rem;
  overflow: hidden;
  border: 1px solid var(--cp-change-border);
  border-radius: .6rem;
  background: var(--cp-change-panel);
  box-shadow: 0 3px 10px rgba(23, 41, 56, .08);
}
.cp-time-change > summary {
  display: flex;
  width: 100%;
  min-height: 50px;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  padding: .7rem .85rem;
  color: var(--cp-blue);
  background: var(--cp-change-bg);
  font-size: .93rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
  transition: background-color .16s ease, box-shadow .16s ease;
}
.cp-time-change > summary:hover,
.cp-time-change[open] > summary { background: var(--cp-change-bg-hover); }
.cp-time-change > summary:focus-visible { outline-color: var(--cp-blue); outline-offset: -4px; }
.cp-time-change > summary::-webkit-details-marker { display: none; }
.cp-time-change > summary::after {
  content: "+";
  display: grid;
  flex: none;
  width: 1.55rem;
  height: 1.55rem;
  place-items: center;
  color: var(--cp-blue);
  border: 1px solid rgba(7, 59, 112, .28);
  border-radius: 50%;
  background: rgba(255, 255, 255, .48);
  font-size: 1rem;
  line-height: 1;
}
.cp-time-change[open] > summary::after { content: "−"; }
.cp-time-change__form { display: grid; gap: .65rem; padding: .7rem; border-top: 1px solid var(--cp-change-border); }
.cp-time-change__form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.cp-time-change__form legend { padding: 0; color: var(--cp-ink); font-size: .9rem; font-weight: 750; }
.cp-time-options { display: grid; gap: .4rem; }
.cp-time-option {
  display: grid;
  grid-template-columns: auto minmax(76px, .45fr) minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  min-height: 48px;
  padding: .5rem .6rem;
  border: 1px solid #b8cbd6;
  border-radius: .45rem;
  background: #fff;
  cursor: pointer;
}
.cp-time-option:has(input:checked) { border-color: var(--cp-green); box-shadow: inset 0 0 0 1px var(--cp-green); background: #eef8f3; }
.cp-time-option input { width: 20px; height: 20px; margin: 0; accent-color: var(--cp-green); }
.cp-time-option__main { display: grid; gap: .08rem; min-width: 0; }
.cp-time-option__time { color: var(--cp-blue); font-weight: 800; }
.cp-time-option__count { color: var(--cp-muted); font-size: .75rem; font-weight: 650; line-height: 1.25; }
.cp-time-option__state { color: var(--cp-green); font-size: .78rem; font-weight: 700; }
.cp-time-option--blocked {
  color: #6f5552;
  border-color: #dfbbb7;
  background-color: #fff8f7;
  background-image: repeating-linear-gradient(135deg, rgba(138, 64, 56, .065) 0, rgba(138, 64, 56, .065) 6px, transparent 6px, transparent 13px);
  cursor: not-allowed;
}
.cp-time-option--blocked .cp-time-option__time,
.cp-time-option--blocked .cp-time-option__state { color: var(--cp-red); }
.cp-time-option--blocked .cp-time-option__count { color: #6f5552; }
.cp-button:disabled { opacity: .58; cursor: not-allowed; filter: grayscale(.2); }
.cp-status {
  display: inline-flex;
  flex: none;
  align-items: center;
  margin: 0;
  padding: .24rem .52rem;
  border-radius: 999px;
  color: var(--cp-amber);
  background: #fff5dc;
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap;
}
.cp-status--confirmed { color: var(--cp-green); background: #e6f3ed; }
.cp-status--refused,
.cp-status--cancelled { color: var(--cp-red); background: #f8eae8; }

.cp-response-form { display: grid; gap: .6rem; margin-top: .75rem; padding-top: .7rem; border-top: 1px solid #e7ecef; }
.cp-response-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.cp-response-actions--confirmed,
.cp-response-actions--refused { grid-template-columns: minmax(0, 1fr); }
.cp-message { color: var(--cp-muted); font-size: .82rem; }
.cp-message > summary { width: max-content; padding: .1rem 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.cp-message label { display: block; margin-top: .5rem; }
.cp-message textarea {
  width: 100%;
  min-height: 70px;
  padding: .55rem .65rem;
  color: var(--cp-ink);
  border: 1px solid #9cadb8;
  border-radius: .45rem;
  background: #fff;
  resize: vertical;
}
.cp-save-message {
  margin-top: .4rem;
  padding: .42rem .65rem;
  color: var(--cp-blue);
  border: 1px solid var(--cp-line);
  border-radius: .4rem;
  background: #fff;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
}

.cp-disclosure { min-width: 0; }
.cp-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-height: 50px;
  padding: .65rem .8rem;
  color: var(--cp-blue);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.cp-disclosure > summary::-webkit-details-marker { display: none; }
.cp-disclosure > summary::after { content: "+"; flex: none; color: #72818c; font-size: 1.2rem; line-height: 1; }
.cp-disclosure[open] > summary::after { content: "−"; }
.cp-info-card { margin-top: .55rem; overflow: hidden; border: 1px solid var(--cp-line); border-radius: .55rem; background: #fff; }
.cp-info-card__title { margin: 0; padding: .7rem .8rem .55rem; color: var(--cp-blue); font-size: .98rem; }
.cp-info-list { margin: 0; padding: 0 .8rem .55rem; }
.cp-info-list > div {
  display: grid;
  grid-template-columns: minmax(105px, .72fr) minmax(0, 1.28fr);
  gap: .6rem;
  padding: .38rem 0;
  border-bottom: 1px solid #edf0f2;
}
.cp-info-list > div:last-child { border-bottom: 0; }
.cp-info-list dt { color: var(--cp-muted); font-size: .79rem; font-weight: 650; }
.cp-info-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .88rem; font-weight: 600; white-space: pre-line; }
.cp-info-list .cp-info-row--missing {
  margin: .15rem -.35rem 0;
  padding: .45rem .35rem;
  border: 1px solid #e1aaa4;
  border-radius: .4rem;
  background: #fff0ee;
}
.cp-info-list .cp-info-row--missing dt,
.cp-info-list .cp-info-row--missing dd { color: var(--cp-red); font-weight: 800; }
.cp-edit-panel { border-top: 1px solid var(--cp-line); background: #fbfcfc; }
.cp-edit-panel > summary { min-height: 44px; color: var(--cp-muted); font-size: .84rem; }
.cp-disclosure-content { padding: .8rem; border-top: 1px solid var(--cp-line); }
.cp-readonly { overflow-wrap: anywhere; margin: 0 0 .4rem; font-size: .88rem; }

.cp-form { display: grid; gap: .8rem; }
.cp-form label { display: grid; gap: .3rem; font-size: .88rem; font-weight: 700; }
.cp-form input:not([type="checkbox"]),
.cp-form select,
.cp-form textarea {
  width: 100%;
  min-height: 46px;
  padding: .55rem .65rem;
  color: var(--cp-ink);
  border: 1px solid #91a4b1;
  border-radius: .4rem;
  background: #fff;
  font-weight: 450;
}
.cp-form textarea { min-height: 82px; resize: vertical; }
.cp-checkbox { display: flex !important; align-items: center; gap: .55rem !important; font-weight: 500 !important; }
.cp-checkbox input { width: 22px; height: 22px; margin: 0; accent-color: var(--cp-blue); }
.cp-button {
  display: inline-flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: .52rem .8rem;
  border: 1px solid transparent;
  border-radius: .45rem;
  font-size: .9rem;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.cp-button--primary { color: #fff; background: var(--cp-blue); }
.cp-button--confirm { color: #fff; background: var(--cp-green); }
.cp-button--refuse { color: var(--cp-red); border-color: #d7aaa5; background: #fff; }
.cp-button:hover,
.cp-link-button:hover,
.cp-save-message:hover,
.cp-disclosure > summary:hover { filter: brightness(.96); }

.cp-history { padding: 0; }
.cp-history > summary { min-height: 48px; font-size: .92rem; }
.cp-history-list { padding: 0 .8rem .6rem; }
.cp-history-item { display: grid; grid-template-columns: 1fr auto; column-gap: .75rem; padding: .6rem 0; border-top: 1px solid var(--cp-line); }
.cp-history-item h3,
.cp-history-item p { margin: 0; }
.cp-history-item h3 { font-size: .88rem; }
.cp-history-item p { color: var(--cp-muted); font-size: .8rem; }
.cp-history-item .cp-status { grid-column: 2; grid-row: 1 / span 2; align-self: center; }

.cp-alert { margin: 0 0 .8rem; padding: .7rem .8rem; border: 1px solid; border-radius: .5rem; font-size: .9rem; font-weight: 650; }
.cp-alert--success { color: var(--cp-green); border-color: #a9cdbd; background: #edf7f2; }
.cp-alert--error { color: var(--cp-red); border-color: #dfbbb7; background: #fff2f0; }
.cp-empty { max-width: 560px; margin: 1rem auto; text-align: center; }
.cp-empty h1,
.cp-empty h2 { margin: 0 0 .5rem; }
.cp-empty h1 { color: var(--cp-blue); font-size: 1.3rem; }
.cp-empty p { margin: 0 0 1rem; color: var(--cp-muted); }
.cp-footer { padding: .8rem 0 1.5rem; border-top: 1px solid var(--cp-line); color: var(--cp-muted); font-size: .75rem; }
.cp-footer p { margin: 0; }

@media (max-width: 520px) {
  .cp-header,
  .cp-shell,
  .cp-footer { width: min(100% - 1.2rem, 720px); }
  .cp-shell { padding-top: .75rem; }
  .cp-hero { margin-bottom: .8rem; }
  .cp-brand span { display: none; }
  .cp-walk-card { padding: .75rem .8rem; }
  .cp-walk-card__head { gap: .45rem; }
  .cp-walk-date { font-size: .94rem; }
  .cp-walk-time { font-size: 1.12rem; }
  .cp-status { font-size: .7rem; }
  .cp-time-option { grid-template-columns: auto 1fr; gap: .35rem .5rem; }
  .cp-time-option__state { grid-column: 2; }
  .cp-info-list > div { grid-template-columns: minmax(92px, .65fr) minmax(0, 1.35fr); }
}

@media (max-width: 350px) {
  .cp-response-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Actions contextuelles et confirmation initiale. */
.wa-onboarding { margin:12px 0 18px; padding:12px 0; border-block:1px solid var(--cp-line); }
.wa-onboarding p { margin:0 0 12px; }
.wa-scope label { flex-wrap:wrap; }
.wa-scope input[type=number] { width:5rem; min-width:0; min-height:44px; padding:6px; }
.wa-pause-label { display:grid; gap:8px; margin:16px 0; }
.wa-pause-label select { font:inherit; min-height:44px; max-width:100%; width:100%; padding:8px; }
.wa-dialog details { margin-top:16px; }
.wa-dialog summary { cursor:pointer; min-height:44px; padding:10px 0; }
#wa-status:empty,#wa-dialog-error:empty { display:none; }
#wa-status.wa-message { position:fixed; bottom:16px; right:16px; z-index:1100; max-width:calc(100vw - 32px); padding:12px; background:white; border:1px solid #ccd8e3; border-radius:8px; }

/* Orange pour modifier une inscription, rouge pour annuler ou arrêter. */
.wa-action--caution { color:#8a3c00; background:#fff1d6; border:1px solid #c56a16; font-weight:700; }
.wa-action--caution:hover:not(:disabled) { background:#ffe3b0; }
.wa-cancel { color:#a12821; background:#fff0ee; border:1px solid #cd574e; border-radius:.45rem; padding:10px 14px; font:inherit; font-weight:650; text-decoration:none; }
.wa-cancel:hover:not(:disabled) { background:#ffe0dc; }
.wa-book.wa-action--danger { color:#fff; background:#b52b24; border-color:#b52b24; }
.wa-book.wa-action--danger:hover:not(:disabled) { background:#96211b; border-color:#96211b; }
.wa-action--caution:focus-visible,.wa-cancel:focus-visible,.wa-action--danger:focus-visible { outline:3px solid var(--cp-blue); outline-offset:3px; }
.wa-action--caution:disabled,.wa-cancel:disabled { opacity:.6; }
.cp-login { max-width:500px; margin:24px auto; }
.cp-login details,.cp-account details { margin:12px 0; }
.cp-login summary,.cp-account summary { cursor:pointer; padding:10px 0; min-height:44px; color:#205b87; font-weight:600; }
.cp-login .cp-form,.cp-account .cp-form { display:grid; gap:8px; max-width:480px; margin:12px 0; }
.cp-account { padding:0 0 14px; border-bottom:1px solid #dce4ea; margin-bottom:20px; }
.cp-address-row { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid #e4e9ed; }
.cp-address-row>div { min-width:0; overflow-wrap:anywhere; }
.cp-address-row span,.cp-address-row small { display:block; }
.cp-address-row small { color:#526977; }
.cp-address-row details { margin:0; max-width:50%; }
.cp-address-row .cp-button { margin:4px 0; }
.cp-login [hidden],.cp-account [hidden] { display:none !important; }
.cp-login :focus-visible,.cp-account :focus-visible { outline:3px solid #205b87; outline-offset:3px; }
@media(max-width:400px) { .cp-address-row { flex-wrap:wrap; } .cp-address-row details { max-width:100%; } }

.cp-button--danger { background:#fff2ef; color:#8a3028; border:1px solid #b5645c; }
.cac-pending { color:#754000; background:#fff6e4; border-inline-start:3px solid #bb741a; padding:8px 12px; margin:10px 0; overflow-wrap:anywhere; }
.cac-pending p { margin:4px 0; }
.cac-error { color:#a12821; overflow-wrap:anywhere; }
.cac-dialog { max-width:520px; }
.cac-dialog input { width:100%; min-width:0; box-sizing:border-box; }
.cac-dialog [hidden],.cac-pending[hidden] { display:none !important; }
.cac-suggestions { list-style:none; margin:0; padding:0; border:1px solid #adbdca; max-height:220px; overflow-y:auto; }
.cac-suggestions li { padding:12px; min-height:44px; cursor:pointer; overflow-wrap:anywhere; box-sizing:border-box; }
.cac-suggestions li:hover,.cac-suggestions li[aria-selected=true] { background:#e2eef8; color:#163f60; }
.cac-dialog :focus-visible { outline:3px solid #205b87; outline-offset:3px; }
#cac-quote strong,#cac-quote span,#cac-quote small { display:block; }
#cac-quote strong { font-size:1.05rem; }
#cac-quote small { margin-top:6px; }
