.admin-body { min-height:100vh; background:#E9EAE2; color:var(--ink); }
.admin-topbar { height:72px; padding:0 max(24px,calc((100vw - 1240px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line-light); background:var(--charcoal); color:var(--off-white); }
.admin-topbar .wordmark { font-size:12px; }
.admin-topbar .wordmark-logo { width:118px; max-height:62px; }
.admin-topbar > a:last-child { color:#C8CCC2; text-decoration:none; font-size:12px; }
.admin-topbar > a:last-child span { color:var(--lime); margin-left:8px; }
.admin-main { width:min(1120px,calc(100% - 48px)); margin:0 auto; padding:70px 0 90px; }
.admin-login { width:min(460px,100%); margin:40px auto 90px; padding:45px; border:1px solid var(--line-light); background:var(--off-white); }
.admin-login .eyebrow { margin-bottom:16px; }
.admin-login h1,.admin-heading h1 { margin:0; font-size:clamp(56px,7vw,88px); line-height:.93; }
.admin-login h1 em,.admin-heading h1 em { color:#718844; font-style:normal; }
.admin-login > p:not(.eyebrow) { margin:19px 0 27px; color:#62665D; font-size:12px; }
.admin-login label,.admin-field label { display:block; margin-bottom:8px; font-size:12px; font-weight:700; }
.admin-login input,.admin-field input,.admin-field select { width:100%; min-height:43px; padding:9px 11px; border:1px solid #C4C7BD; border-radius:0; background:transparent; color:var(--ink); font:500 12px var(--body); }
.admin-login .button { width:100%; margin-top:18px; }
.admin-login .admin-message { margin:15px 0 0; }
.admin-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:35px; }
.admin-heading .eyebrow { margin-bottom:15px; }
.admin-heading-actions { display:flex; align-items:center; gap:20px; }
.admin-heading-actions .button { white-space:nowrap; }
.text-button { padding:8px 0; border:0; background:transparent; color:#61665B; text-decoration:underline; text-underline-offset:4px; font-size:12px; font-weight:700; cursor:pointer; }
.admin-message { min-height:18px; color:#4D6A2C; font-size:14px; }
.admin-message.error { color:#A24B3B; }
.admin-card { margin-top:18px; padding:30px 34px 33px; border:1px solid rgba(23,25,22,.12); background:var(--off-white); }
.admin-card-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:14px; }
.admin-card-heading .eyebrow { margin-bottom:8px; }
.admin-card-heading h2 { margin:0; font-size:clamp(28px,3.5vw,42px); line-height:1.05; }
.admin-explain { max-width:760px; margin:0 0 23px; color:#686C63; font-size:12px; line-height:1.75; }
.status-pill { padding:7px 10px; border:1px solid #C7C9C0; color:#696D64; font-size:12px; font-weight:700; white-space:nowrap; }
.status-pill.is-connected { border-color:#82964F; background:#E6EBDC; color:#526B30; }
#google-connect-area .button { margin:0 0 10px; }
.connected-account { margin:0 0 16px; color:#526B30; font-size:12px; font-weight:700; }
.calendar-setting-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:32px; padding:22px 0; border-top:1px solid var(--line-light); border-bottom:1px solid var(--line-light); }
.admin-field small { display:block; margin-top:8px; color:#777B72; font-size:12px; line-height:1.6; }
.calendar-check-field { min-width:0; margin:0; padding:0; border:0; }
.calendar-check-field legend { margin-bottom:7px; font-size:12px; font-weight:700; }
.calendar-check-field > p { margin:0 0 12px; color:#777B72; font-size:12px; }
.calendar-checks { display:grid; grid-template-columns:1fr 1fr; gap:8px; max-height:190px; overflow:auto; }
.calendar-check { display:flex; align-items:flex-start; gap:8px; padding:8px; border:1px solid rgba(23,25,22,.12); color:#4F544B; font-size:12px; line-height:1.4; cursor:pointer; }
.calendar-check input { flex:0 0 auto; margin:1px 0 0; accent-color:#637B3B; }
.calendar-check small { display:block; color:#8A8E85; font-size:11px; }
.admin-actions { display:flex; align-items:center; gap:20px; margin-top:20px; }
.admin-actions .button { min-height:46px; }
.admin-step-note { color:#777B72; font-size:12px; }
.weekly-hours { border-top:1px solid var(--line-light); }
.week-row { min-height:55px; display:grid; grid-template-columns:150px 1fr 1fr; align-items:center; gap:17px; border-bottom:1px solid var(--line-light); }
.week-day { display:flex; align-items:center; gap:11px; font-size:12px; font-weight:700; }
.week-day input { width:15px; height:15px; margin:0; accent-color:#687E40; }
.week-row input[type=time] { width:100%; max-width:170px; min-height:35px; padding:4px 8px; border:1px solid #C4C7BD; background:transparent; color:var(--ink); font:500 11px var(--body); }
.week-row input:disabled { opacity:.35; }
.booking-limits { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:570px; margin-top:22px; }
.booking-limits input { max-width:220px; }
.override-form { display:grid; grid-template-columns:1.1fr 1.15fr .8fr .8fr 1.3fr auto; align-items:end; gap:12px; }
.override-form .admin-field label span { color:#85897F; font-weight:400; }
.override-form .button { min-height:43px; padding-inline:13px; gap:12px; white-space:nowrap; font-size:12px; }
.override-list { margin-top:18px; border-top:1px solid var(--line-light); }
.override-item { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:12px 2px; border-bottom:1px solid var(--line-light); font-size:12px; }
.override-item strong { font-weight:700; }
.override-item span { display:block; margin-top:3px; color:#767A71; }
.override-item button,.appointment-cancel { border:0; background:transparent; color:#8B4C3F; text-decoration:underline; text-underline-offset:3px; font-size:12px; cursor:pointer; }
.appointments-list { border-top:1px solid var(--line-light); }
.appointment-row { display:grid; grid-template-columns:1.2fr 1.1fr 1.4fr auto; gap:18px; align-items:center; padding:17px 2px; border-bottom:1px solid var(--line-light); }
.appointment-when strong,.appointment-client strong { display:block; font-size:12px; }
.appointment-when span,.appointment-client span,.appointment-service span { display:block; margin-top:3px; color:#777B72; font-size:12px; }
.appointment-service strong { display:block; font-size:12px; }
.appointment-health { grid-column:1 / -1; padding:12px 14px; border-left:2px solid #82964F; background:#E7E9DF; color:#42463E; }
.appointment-health strong { display:block; font-size:12px; }
.appointment-health p { margin:5px 0 0; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.health-note-delete { margin-top:8px; padding:0; border:0; background:transparent; color:#58683A; text-decoration:underline; text-underline-offset:3px; font:600 9px var(--body); cursor:pointer; }
.appointment-empty { padding:18px 0; color:#777B72; font-size:12px; }
.admin-footnote { margin:22px 0 0; color:#767A71; font-size:12px; }
@media(max-width:820px) {
  .admin-main { width:calc(100% - 36px); padding:43px 0 65px; }
  .admin-heading { display:block; }
  .admin-heading-actions { justify-content:space-between; margin-top:23px; }
  .admin-card { padding:23px 20px 25px; }
  .admin-card-heading { align-items:flex-start; }
  .calendar-setting-grid { grid-template-columns:1fr; gap:20px; }
  .override-form { grid-template-columns:repeat(2,1fr); }
  .override-form .button { width:100%; }
  .appointment-row { grid-template-columns:1fr 1fr; gap:13px; }
  .appointment-cancel { justify-self:start; }
}
@media(max-width:520px) {
  .admin-topbar { height:64px; padding:0 18px; }
  .admin-topbar .wordmark { font-size:12px; }
  .admin-topbar > a:last-child { font-size:12px; }
  .admin-login { margin:15px auto 55px; padding:28px 22px; }
  .admin-login h1,.admin-heading h1 { font-size:58px; }
  .admin-heading-actions { align-items:flex-start; flex-direction:column; gap:8px; }
  .admin-heading-actions .button { width:100%; }
  .admin-card-heading { display:block; }
  .admin-card-heading h2 { font-size:34px; }
  .status-pill,.admin-step-note { display:inline-block; margin-top:12px; }
  .calendar-checks { grid-template-columns:1fr; }
  .admin-actions { align-items:flex-start; flex-direction:column; gap:12px; }
  .admin-actions .button { width:100%; }
  .week-row { grid-template-columns:100px 1fr 1fr; gap:8px; }
  .week-day { gap:6px; font-size:12px; }
  .booking-limits { grid-template-columns:1fr; }
  .override-form { grid-template-columns:1fr 1fr; }
}

/* Melding blijft zichtbaar tijdens scrollen, zodat een opslaan-/foutmelding onderaan de pagina niet gemist wordt */
#admin-message:not(:empty) { position:sticky; top:10px; z-index:5; padding:12px 16px; border-left:3px solid #82964F; background:#F5F6EF; box-shadow:0 4px 18px rgba(23,25,22,.12); }
#admin-message.error:not(:empty) { border-color:#A24B3B; }
.admin-main input,.admin-main select { font-size:16px; }
.week-row input[type=time] { font-size:16px; }
 .admin-body{background:var(--paper)}.admin-login h1 em{color:var(--brown)}.admin-topbar{padding-inline:5%}.button-lime{color:var(--ink);background:#e8c7a4}.admin-body .eyebrow{color:#765335}
