/* SpeakPro — réservation de séances (apprenant) et agenda coach — 23/10/2026 */
.bk{ --bk-ink:#1E2430; --bk-ink2:#4A505B; --bk-mute:#6B707A; --bk-line:#E5DBCF; --bk-paper:#FBF8F3; --bk-card:#fff;
  --bk-navy:#10233F; --bk-copper:#A9552F; --bk-copper-soft:#F6E9E1; --bk-green:#1F7A4D; --bk-green-soft:#E6F3EC;
  --bk-amber:#9A6200; --bk-amber-soft:#FFF4DC; --bk-red:#A33A2B; --bk-red-soft:#FBEAE7;
  color:var(--bk-ink); padding:40px 0 80px; }
.bk-wrap{ max-width:1040px; margin:0 auto; padding:0 16px; }
.bk-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 32px; margin-bottom:26px; }
.bk-eyebrow{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--bk-copper); font-weight:700; margin:0 0 8px; }
.bk-h1{ font-family:'Fraunces',Georgia,serif; font-size:clamp(28px,4vw,40px); line-height:1.1; margin:0; color:var(--bk-navy); }
.bk-lead{ color:var(--bk-ink2); font-size:15.5px; margin:10px 0 0; max-width:60ch; }
.bk-back{ font-size:14px; font-weight:600; color:var(--bk-navy); text-decoration:none; border:1px solid var(--bk-line); border-radius:999px; padding:9px 16px; background:#fff; white-space:nowrap; }
.bk-back:hover{ border-color:var(--bk-navy); }

.bk-card{ background:var(--bk-card); border:1px solid var(--bk-line); border-radius:18px; padding:24px; box-shadow:0 1px 0 rgba(16,35,63,.03); }
.bk-card + .bk-card{ margin-top:18px; }
.bk .bk-card h2{ font-family:inherit; font-weight:700; font-size:19px; letter-spacing:0; margin:0 0 4px; color:var(--bk-navy); }
.bk-card .bk-sub{ color:var(--bk-mute); font-size:14px; margin:0 0 18px; }

/* Formule */
.bk-plan{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.bk-stat{ background:var(--bk-paper); border:1px solid var(--bk-line); border-radius:14px; padding:14px 16px; min-width:0; }
.bk-stat dt{ font-size:12px; color:var(--bk-mute); text-transform:uppercase; letter-spacing:.06em; margin:0 0 6px; }
.bk-stat dd{ margin:0; font-weight:700; font-size:16px; color:var(--bk-navy); overflow-wrap:anywhere; }
.bk-stat dd small{ display:block; font-weight:500; font-size:12.5px; color:var(--bk-mute); margin-top:3px; }
.bk-tz{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:16px; font-size:13.5px; color:var(--bk-ink2); }
.bk-tz select{ font:inherit; font-size:13.5px; padding:7px 10px; border-radius:10px; border:1px solid var(--bk-line); background:#fff; color:var(--bk-ink); max-width:100%; }
.bk-quota-bar{ height:6px; border-radius:6px; background:#EFE7DC; margin-top:8px; overflow:hidden; }
.bk-quota-bar i{ display:block; height:100%; background:var(--bk-copper); border-radius:6px; }

/* Étapes */
.bk-steps{ display:flex; gap:8px; list-style:none; padding:0; margin:26px 0 16px; flex-wrap:wrap; }
.bk-steps li{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--bk-mute); background:#fff; border:1px solid var(--bk-line); border-radius:999px; padding:6px 14px 6px 6px; }
.bk-steps li span{ width:22px; height:22px; border-radius:50%; display:inline-grid; place-items:center; background:#EFE7DC; color:var(--bk-ink2); font-size:12px; }
.bk-steps li.is-on{ color:var(--bk-navy); border-color:var(--bk-navy); }
.bk-steps li.is-on span{ background:var(--bk-navy); color:#fff; }
.bk-steps li.is-done span{ background:var(--bk-green); color:#fff; }

/* Coachs */
.bk-coaches{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.bk-coach{ display:flex; flex-direction:column; gap:12px; border:1px solid var(--bk-line); border-radius:16px; padding:18px; background:#fff; text-align:left; font:inherit; color:inherit; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.bk-coach:hover{ border-color:var(--bk-navy); }
.bk-coach.is-sel{ border-color:var(--bk-copper); box-shadow:0 0 0 3px var(--bk-copper-soft); }
.bk-coach-top{ display:flex; gap:12px; align-items:center; }
.bk-avatar{ width:52px; height:52px; border-radius:50%; flex:none; background:var(--bk-navy); color:#fff; display:grid; place-items:center; font-weight:700; font-size:18px; overflow:hidden; }
.bk-avatar img{ width:100%; height:100%; object-fit:cover; }
.bk-coach-name{ font-weight:700; font-size:16px; color:var(--bk-navy); margin:0; }
.bk-coach-title{ font-size:13px; color:var(--bk-mute); margin:2px 0 0; }
.bk-reasons{ list-style:none; margin:0; padding:0; display:grid; gap:6px; font-size:13px; color:var(--bk-ink2); }
.bk-reasons li{ display:flex; gap:8px; align-items:flex-start; }
.bk-reasons li::before{ content:""; flex:none; width:6px; height:6px; border-radius:50%; background:var(--bk-copper); margin-top:7px; }
.bk-coach-foot{ display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid #EFE7DC; padding-top:12px; font-size:13px; color:var(--bk-mute); }
.bk-coach-foot b{ color:var(--bk-navy); }
.bk-link{ color:var(--bk-copper); font-weight:600; font-size:13px; text-decoration:none; }
.bk-link:hover{ text-decoration:underline; }

/* Calendrier */
.bk-cal-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.bk-cal-nav strong{ font-size:15px; color:var(--bk-navy); text-align:center; }
.bk-icon-btn{ width:38px; height:38px; border-radius:50%; border:1px solid var(--bk-line); background:#fff; cursor:pointer; font-size:17px; color:var(--bk-navy); display:grid; place-items:center; flex:none; }
.bk-icon-btn:disabled{ opacity:.35; cursor:not-allowed; }
.bk-week{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.bk-day{ border:1px solid #EFE7DC; border-radius:12px; padding:10px 6px; background:var(--bk-paper); min-height:120px; display:flex; flex-direction:column; gap:6px; min-width:0; }
.bk-day.is-empty{ background:repeating-linear-gradient(135deg,#F7F2EC 0 6px,#F2ECE4 6px 12px); }
.bk-day-h{ text-align:center; font-size:12px; color:var(--bk-mute); text-transform:capitalize; margin-bottom:2px; }
.bk-day-h b{ display:block; font-size:16px; color:var(--bk-navy); }
.bk-day-none{ font-size:11.5px; color:#9A9EA6; text-align:center; margin-top:auto; margin-bottom:auto; }
.bk-slot{ font:inherit; font-size:13px; font-weight:600; padding:8px 4px; border-radius:9px; border:1px solid var(--bk-line); background:#fff; color:var(--bk-navy); cursor:pointer; position:relative; }
.bk-slot:hover{ border-color:var(--bk-navy); }
.bk-slot.is-pref{ border-color:#BFD9C9; background:var(--bk-green-soft); }
.bk-slot.is-sel{ background:var(--bk-navy); border-color:var(--bk-navy); color:#fff; }
.bk-legend{ display:flex; flex-wrap:wrap; gap:14px; margin-top:14px; font-size:12.5px; color:var(--bk-mute); }
.bk-legend i{ display:inline-block; width:12px; height:12px; border-radius:4px; vertical-align:-2px; margin-right:6px; border:1px solid var(--bk-line); background:#fff; }
.bk-legend i.p{ background:var(--bk-green-soft); border-color:#BFD9C9; }
.bk-legend i.n{ background:repeating-linear-gradient(135deg,#F7F2EC 0 3px,#EAE2D7 3px 6px); }

/* Récapitulatif */
.bk-summary{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0 0 18px; }
.bk-summary div{ min-width:0; }
.bk-summary dt{ font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--bk-mute); }
.bk-summary dd{ margin:4px 0 0; font-weight:600; color:var(--bk-navy); overflow-wrap:anywhere; }
.bk-rules{ font-size:13px; color:var(--bk-ink2); background:var(--bk-paper); border-radius:12px; padding:12px 14px; margin:0 0 18px; }
.bk-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.bk-btn{ font:inherit; font-weight:700; font-size:14.5px; border-radius:999px; padding:12px 22px; border:1px solid transparent; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.bk-btn--primary{ background:var(--bk-copper); color:#fff; }
.bk-btn--primary:hover{ background:#8E4626; }
.bk-btn--ghost{ background:#fff; color:var(--bk-navy); border-color:var(--bk-line); }
.bk-btn--ghost:hover{ border-color:var(--bk-navy); }
.bk-btn--danger{ background:#fff; color:var(--bk-red); border-color:#E9C4BD; }
.bk-btn--sm{ font-size:13px; padding:8px 14px; }
.bk-btn[disabled]{ opacity:.55; cursor:progress; }

/* Messages */
.bk-msg{ border-radius:14px; padding:14px 16px; font-size:14px; margin:0 0 16px; }
.bk-msg--ok{ background:var(--bk-green-soft); color:#174F34; }
.bk-msg--warn{ background:var(--bk-amber-soft); color:#6B4500; }
.bk-msg--err{ background:var(--bk-red-soft); color:#7A2A1F; }
.bk-empty{ text-align:center; padding:28px 16px; color:var(--bk-ink2); }
.bk-empty h3{ margin:0 0 6px; color:var(--bk-navy); font-size:18px; }

/* Mes séances */
.bk-list{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.bk-item{ display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:16px; align-items:center; border:1px solid #EFE7DC; border-radius:14px; padding:14px; background:#fff; }
.bk-date{ text-align:center; background:var(--bk-paper); border-radius:12px; padding:8px 4px; }
.bk-date small{ display:block; font-size:11.5px; text-transform:uppercase; color:var(--bk-mute); letter-spacing:.06em; }
.bk-date b{ display:block; font-size:22px; color:var(--bk-navy); line-height:1.1; }
.bk-item h3{ font-size:15px; margin:0; color:var(--bk-navy); }
.bk-item p{ margin:3px 0 0; font-size:13px; color:var(--bk-mute); }
.bk-item-actions{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.bk-badge{ display:inline-block; font-size:11.5px; font-weight:700; border-radius:999px; padding:3px 10px; margin-left:6px; vertical-align:2px; }
.bk-badge--confirmed{ background:var(--bk-green-soft); color:var(--bk-green); }
.bk-badge--pending{ background:var(--bk-amber-soft); color:var(--bk-amber); }
.bk-badge--rescheduled{ background:#E8EEF8; color:var(--bk-navy); }
.bk-badge--cancelled{ background:#F1EFEC; color:#6B707A; }
.bk-badge--completed{ background:#E8EEF8; color:var(--bk-navy); }
.bk-badge--no_show{ background:var(--bk-red-soft); color:var(--bk-red); }
.bk-proposal{ grid-column:1 / -1; background:var(--bk-amber-soft); border-radius:10px; padding:10px 12px; font-size:13.5px; color:#6B4500; display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.bk-tabs{ display:flex; gap:6px; margin-bottom:14px; }
.bk-tabs button{ font:inherit; font-size:13.5px; font-weight:600; border:1px solid var(--bk-line); background:#fff; color:var(--bk-ink2); border-radius:999px; padding:7px 14px; cursor:pointer; }
.bk-tabs button.is-on{ background:var(--bk-navy); border-color:var(--bk-navy); color:#fff; }
.bk-form-row{ display:grid; gap:6px; margin:0 0 12px; }
.bk-form-row label{ font-size:13px; font-weight:600; color:var(--bk-ink2); }
.bk-form-row input, .bk-form-row select, .bk-form-row textarea{ font:inherit; font-size:14px; padding:10px 12px; border-radius:10px; border:1px solid var(--bk-line); background:#fff; color:var(--bk-ink); width:100%; box-sizing:border-box; }
.bk-form-row textarea{ min-height:84px; resize:vertical; }
.bk-dialog{ border:none; border-radius:18px; padding:24px; max-width:440px; width:calc(100% - 32px); box-shadow:0 20px 60px rgba(16,35,63,.25); }
.bk-dialog::backdrop{ background:rgba(16,35,63,.45); }
.bk-dialog h3{ margin:0 0 8px; color:var(--bk-navy); }
.bk-dialog p{ color:var(--bk-ink2); font-size:14px; margin:0 0 14px; }
.bk-skel{ height:120px; border-radius:16px; background:linear-gradient(90deg,#F4EEE6,#FBF8F3,#F4EEE6); background-size:200% 100%; animation:bk-sk 1.2s infinite linear; }
@keyframes bk-sk{ to{ background-position:-200% 0; } }

@media (max-width:860px){
  .bk-plan{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px){
  .bk-week{ grid-template-columns:1fr; }
  .bk-day{ min-height:0; flex-direction:row; flex-wrap:wrap; align-items:center; padding:10px; }
  .bk-day-h{ width:100%; text-align:left; display:flex; gap:8px; align-items:baseline; }
  .bk-day-h b{ display:inline; font-size:15px; }
  .bk-day-none{ margin:0; text-align:left; }
  .bk-slot{ flex:1 1 calc(33% - 6px); min-width:84px; }
  .bk-summary{ grid-template-columns:1fr; }
  .bk-item{ grid-template-columns:60px minmax(0,1fr); }
  .bk-item-actions{ grid-column:1 / -1; justify-content:flex-start; }
  .bk-card{ padding:18px; }
}
@media (max-width:420px){
  .bk-plan{ grid-template-columns:1fr; }
}

/* Agenda coach */
.ca-h3{ font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--bk-mute); margin:22px 0 10px; }
.ca-days{ display:grid; gap:10px; }
.ca-day{ display:grid; grid-template-columns:180px minmax(0,1fr); gap:12px; align-items:center; border:1px solid #EFE7DC; border-radius:12px; padding:12px 14px; background:#fff; }
.ca-day-h{ display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.ca-day-h b{ color:var(--bk-navy); }
.ca-day-h .bk-link{ background:none; border:0; padding:0; cursor:pointer; font:inherit; font-size:13px; font-weight:600; color:var(--bk-copper); }
.ca-ranges{ display:flex; flex-wrap:wrap; gap:8px; }
.ca-range{ display:inline-flex; align-items:center; gap:6px; background:var(--bk-paper); border:1px solid var(--bk-line); border-radius:10px; padding:5px 6px 5px 10px; font-size:13px; }
.ca-range input{ font:inherit; font-size:13.5px; border:1px solid var(--bk-line); border-radius:8px; padding:5px 6px; background:#fff; }
.ca-rm{ width:28px; height:28px; border-radius:50%; border:0; background:transparent; color:var(--bk-red); font-size:18px; cursor:pointer; }
.ca-off{ font-size:13px; color:#9A9EA6; }
.ca-off-form{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 12px; margin-bottom:6px; }
.ca-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.ca-check{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--bk-ink2); padding-top:26px; }
.ca-check input{ width:18px; height:18px; flex:none; margin-top:2px; }
.ca-tabs{ display:flex; flex-wrap:wrap; gap:6px; margin:22px 0 14px; }
.ca-tabs button{ font:inherit; font-size:13.5px; font-weight:600; border:1px solid var(--bk-line); background:#fff; color:var(--bk-ink2); border-radius:999px; padding:8px 15px; cursor:pointer; }
.ca-tabs button.is-on{ background:var(--bk-navy); border-color:var(--bk-navy); color:#fff; }
@media (max-width:720px){
  .ca-day{ grid-template-columns:1fr; }
  .ca-day-h{ flex-direction:row; justify-content:space-between; width:100%; align-items:center; }
  .ca-off-form, .ca-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ca-grid{ grid-template-columns:1fr; }
  .ca-check{ padding-top:0; margin-bottom:12px; }
}
