/* Foreman booking picker. Scoped under .fbk so it can sit inside the site's thank-you dialog (fm-modal) or stand alone.
   Tokens mirror foreman-site assets/site.css (light and dark). Geist is loaded by the page, not here. */
.fbk{
  --fbk-bg:#f4f2ef; --fbk-fg:#252322; --fbk-fg2:rgba(37,35,34,.827); --fbk-fg3:rgba(37,35,34,.63);
  --fbk-accent:#b5461a; --fbk-accent-strong:#c9521f; --fbk-accent-soft:#f1dccf; --fbk-accent-ink:#8f3511;
  --fbk-hair:rgba(21,20,19,.165); --fbk-hair2:rgba(21,20,19,.263); --fbk-card:rgba(21,20,19,.037);
  --fbk-btn-bg:#252322; --fbk-btn-fg:#fff; --fbk-ok:#2f7a4a;
  --fbk-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --fbk-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --fbk-ease:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
  font-family:var(--fbk-sans);color:var(--fbk-fg);font-size:15px;line-height:1.45;font-weight:470;
  -webkit-font-smoothing:antialiased;box-sizing:border-box;
  width:100%;max-width:46rem;
}
/* site copy: the site is light only, the prefers-color-scheme dark block was removed */
html[data-theme="dark"] .fbk{
  --fbk-bg:#151413; --fbk-fg:#f4f2f1; --fbk-fg2:rgba(244,242,241,.8); --fbk-fg3:rgba(244,242,241,.6);
  --fbk-accent:#e07a45; --fbk-accent-strong:#ea8a58; --fbk-accent-soft:#3a2416; --fbk-accent-ink:#f0a981;
  --fbk-hair:rgba(244,242,241,.18); --fbk-hair2:rgba(244,242,241,.3); --fbk-card:rgba(255,255,255,.045);
  --fbk-btn-bg:#f4f2f1; --fbk-btn-fg:#151413; --fbk-ok:#6fbf8a; color-scheme:dark}
html[data-theme="light"] .fbk{
  --fbk-bg:#f4f2ef; --fbk-fg:#252322; --fbk-fg2:rgba(37,35,34,.827); --fbk-fg3:rgba(37,35,34,.63);
  --fbk-accent:#b5461a; --fbk-accent-strong:#c9521f; --fbk-accent-soft:#f1dccf; --fbk-accent-ink:#8f3511;
  --fbk-hair:rgba(21,20,19,.165); --fbk-hair2:rgba(21,20,19,.263); --fbk-card:rgba(21,20,19,.037);
  --fbk-btn-bg:#252322; --fbk-btn-fg:#fff; --fbk-ok:#2f7a4a; color-scheme:light}

.fbk *,.fbk *:before,.fbk *:after{box-sizing:border-box;margin:0;padding:0;border:0 solid}
.fbk button,.fbk select{font:inherit;color:inherit;background:none;border:0}
.fbk button{cursor:pointer}
.fbk button:disabled{cursor:default}
.fbk a{color:inherit;text-decoration:none}
.fbk :focus-visible{outline:2px solid var(--fbk-accent);outline-offset:2px}

/* The dialog card */
.fbk-card{position:relative;width:100%;max-width:46rem;margin:0 auto;background:var(--fbk-bg);border-radius:16px;
  box-shadow:0 0 0 1px var(--fbk-hair),0 24px 60px rgba(21,20,19,.24);padding:1.75rem;overflow:hidden}
.fbk-x{position:absolute;top:.875rem;right:.875rem;width:2rem;height:2rem;border-radius:999px;display:grid;place-items:center;color:var(--fbk-fg3);font-size:1.25rem;line-height:1}
.fbk-x:hover{color:var(--fbk-fg);background:var(--fbk-card)}
.fbk-h{font-size:1.375rem;line-height:1.2;font-weight:520;letter-spacing:-.02em;padding-right:2.5rem}
.fbk-sub{margin-top:.375rem;color:var(--fbk-fg2);font-size:15px}

/* Two columns */
.fbk-body{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:1.75rem;margin-top:1.5rem;align-items:start}
.fbk-side{display:flex;flex-direction:column;gap:.75rem;padding-top:.25rem}
.fbk-side .fbk-k{font-family:var(--fbk-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--fbk-fg3);font-weight:500}
.fbk-side .fbk-v{font-size:16px;font-weight:520;letter-spacing:-.01em;margin-top:.125rem}
.fbk-meta{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem;color:var(--fbk-fg2);font-size:14px}
.fbk-meta li{display:flex;align-items:center;gap:.5rem}
.fbk-meta svg{width:16px;height:16px;flex:none;color:var(--fbk-fg3)}
.fbk-tz{margin-top:.5rem}
.fbk-tz label{display:block;font-family:var(--fbk-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--fbk-fg3);margin-bottom:.25rem}
.fbk-tz select{width:100%;max-width:100%;height:2.25rem;padding:0 1.75rem 0 .625rem;border-radius:.5rem;box-shadow:inset 0 0 0 1px var(--fbk-hair);background:var(--fbk-card) no-repeat right .5rem center;font-size:14px;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23888' stroke-width='1.5'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E")}
.fbk-tz select:hover{box-shadow:inset 0 0 0 1px var(--fbk-hair2)}
.fbk-ms{height:2rem;max-width:11rem;padding:0 1.75rem 0 .625rem;border-radius:.5rem;box-shadow:inset 0 0 0 1px var(--fbk-hair);background:var(--fbk-card) no-repeat right .5rem center;font-size:13px;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23888' stroke-width='1.5'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E")}
.fbk-ms:hover{box-shadow:inset 0 0 0 1px var(--fbk-hair2)}

/* Day strip */
.fbk-mh{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.625rem;min-width:0}
.fbk-mt{font-size:15px;font-weight:520;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbk-main{min-width:0}
.fbk-strip{display:grid;grid-template-columns:2rem minmax(0,1fr) 2rem;align-items:center;gap:.375rem}
.fbk-arrow{width:2rem;height:2.5rem;border-radius:.5rem;display:grid;place-items:center;color:var(--fbk-fg2)}
.fbk-arrow:hover:not(:disabled){background:var(--fbk-card);color:var(--fbk-fg)}
.fbk-arrow:disabled{color:var(--fbk-fg3);opacity:.4}
.fbk-arrow svg{width:16px;height:16px}
.fbk-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;min-width:0}
.fbk-day{display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.5rem 0 .375rem;border-radius:.625rem;color:var(--fbk-fg2);transition:background-color .15s,color .15s,box-shadow .15s;min-width:0}
.fbk-day .fbk-dw{font-family:var(--fbk-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--fbk-fg3)}
.fbk-day .fbk-dn{font-size:17px;font-weight:520;line-height:1.2;font-variant-numeric:tabular-nums}
.fbk-day .fbk-dot{width:5px;height:5px;border-radius:999px;background:var(--fbk-accent);margin-top:.125rem;opacity:0}
.fbk-day.has .fbk-dot{opacity:1}
.fbk-day.none .fbk-dot{opacity:.45;background:var(--fbk-fg3);width:3px;height:3px;margin:.0625rem 1px}
.fbk-day.sun:disabled{opacity:.3}
.fbk-day:hover:not(:disabled){background:var(--fbk-card);color:var(--fbk-fg)}
.fbk-day:disabled{color:var(--fbk-fg3);opacity:.45}
.fbk-day[aria-pressed="true"]{background:var(--fbk-fg);color:var(--fbk-bg);box-shadow:none}
.fbk-day[aria-pressed="true"] .fbk-dw{color:inherit;opacity:.7}
.fbk-day[aria-pressed="true"] .fbk-dot{background:var(--fbk-bg)}

/* Times */
.fbk-sel{margin-top:1.125rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.fbk-sel .fbk-k{font-family:var(--fbk-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--fbk-fg3)}
.fbk-sel .fbk-n{font-family:var(--fbk-mono);font-size:12px;color:var(--fbk-fg3);font-variant-numeric:tabular-nums}
.fbk-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.625rem;max-height:17.5rem;overflow:auto;padding:2px 2px 4px;overscroll-behavior:contain}
.fbk-t{height:2.5rem;border-radius:999px;box-shadow:inset 0 0 0 1px var(--fbk-hair);font-size:14px;font-weight:490;letter-spacing:-.01em;font-variant-numeric:tabular-nums;transition:box-shadow .15s,background-color .15s,color .15s;white-space:nowrap;padding:0 .25rem}
.fbk-t:hover{box-shadow:inset 0 0 0 1px var(--fbk-fg);background:var(--fbk-card)}
.fbk-t[aria-pressed="true"]{background:var(--fbk-accent);color:#fff;box-shadow:none}
.fbk-empty{margin-top:.75rem;color:var(--fbk-fg3);font-size:14px;padding:1.5rem 0;text-align:center;box-shadow:inset 0 0 0 1px var(--fbk-hair);border-radius:.75rem}
.fbk-loading{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.625rem}
.fbk-loading span{height:2.5rem;border-radius:999px;background:var(--fbk-card);animation:fbk-pulse 1.2s ease-in-out infinite}
.fbk-loading span:nth-child(2n){animation-delay:.15s}.fbk-loading span:nth-child(3n){animation-delay:.3s}
@keyframes fbk-pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* Confirm card */
.fbk-confirm{margin-top:1.125rem;padding:1.125rem 1.25rem;border-radius:.875rem;background:var(--fbk-card);box-shadow:inset 0 0 0 1px var(--fbk-hair)}
.fbk-confirm .fbk-when{font-size:1.125rem;font-weight:520;letter-spacing:-.015em;line-height:1.25}
.fbk-confirm .fbk-whensub{color:var(--fbk-fg3);font-size:13px;margin-top:.125rem}
.fbk-rows{margin-top:.875rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.375rem 1rem;font-size:14px}
.fbk-rows dt{font-family:var(--fbk-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--fbk-fg3);padding-top:.1em}
.fbk-rows dd{color:var(--fbk-fg);overflow-wrap:anywhere;min-width:0}
.fbk-actions{display:flex;align-items:center;gap:.75rem;margin-top:1.125rem;flex-wrap:wrap}
.fbk-btn{display:inline-flex;height:2.5rem;align-items:center;justify-content:center;gap:.375rem;border-radius:999px;padding:0 1.125rem;background:var(--fbk-btn-bg);color:var(--fbk-btn-fg);font-size:15px;font-weight:490;letter-spacing:-.02em;white-space:nowrap;transition:background-color .15s,color .15s,opacity .15s}
.fbk-btn:hover:not(:disabled){background:var(--fbk-accent);color:#fff}
.fbk-btn:disabled{opacity:.55}
.fbk-btn.alt{background:transparent;color:var(--fbk-fg);box-shadow:inset 0 0 0 1px var(--fbk-hair)}
.fbk-btn.alt:hover:not(:disabled){background:transparent;color:var(--fbk-fg);box-shadow:inset 0 0 0 1px var(--fbk-hair2)}
.fbk-link{color:var(--fbk-fg2);font-size:14px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--fbk-hair2)}
.fbk-link:hover{color:var(--fbk-fg)}
.fbk-err{margin-top:.75rem;color:var(--fbk-accent-ink);font-size:14px}
.fbk-err a{text-decoration:underline;text-underline-offset:3px}

/* Success */
.fbk-done{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem}
.fbk-done .fbk-check{width:2.5rem;height:2.5rem;border-radius:999px;background:var(--fbk-accent-soft);color:var(--fbk-accent-ink);display:grid;place-items:center;margin-bottom:.5rem}
.fbk-done .fbk-check svg{width:20px;height:20px}
.fbk-done h3{font-size:1.25rem;font-weight:520;letter-spacing:-.02em;line-height:1.25}
.fbk-done p{color:var(--fbk-fg2);font-size:15px;overflow-wrap:anywhere}
.fbk-done .fbk-actions{margin-top:.75rem}
.fbk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fbk [hidden]{display:none!important}

/* Phones: one column, the strip scrolls */
@media (max-width:40rem){
  .fbk-card{padding:1.25rem;border-radius:16px;max-height:calc(100dvh - 2rem);overflow:auto}
  .fbk-h{font-size:1.25rem}
  .fbk-body{grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:1.125rem}
  .fbk-side{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;padding-bottom:1rem;box-shadow:0 1px 0 var(--fbk-hair)}
  .fbk-side .fbk-title{flex:1 1 100%}
  .fbk-meta{flex-direction:row;gap:1rem;margin-top:0}
  .fbk-tz{margin-top:0;flex:1 1 100%}
  .fbk-strip{grid-template-columns:1.75rem minmax(0,1fr) 1.75rem;gap:.125rem}
  .fbk-arrow{width:1.75rem}
  .fbk-days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:.25rem}
  .fbk-days::-webkit-scrollbar{display:none}
  .fbk-day{flex:0 0 3.25rem;scroll-snap-align:start}
  .fbk-times{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none}
  .fbk-loading{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.fbk *{transition:none!important;animation:none!important}}
