/* Ox Floors events lead-capture page (spec 209). First-party origin, no Shadow DOM needed.
   Brand tokens from .claude/skills/ox-video/brand.json (crimson #b60c2d, coral #ff6269 on dark, near white #f9f8f8, off white #eae7e7, ink #2e2e2e, endcard #1c1c22); the warm-brown neutrals the chat widget carries were ruled off-brand by Mike 2026-09-24 and are not used here: Montserrat 600/700 headings,
   Open Sans 400/600 body, crimson accent. Light by default, dark via prefers-color-scheme.
   16px gutters; every tap target (button, input, checkbox hit area) is >= 44px.
   Opsec N1: the brand faces are local files, not the Google Fonts stylesheet (that request
   carried origin + IP on every view for no reason). Same asset names/format the build already
   ships to public/calendar/assets/ (montserrat.woff2, opensans.woff2). No other @import/URL
   fetch is added here or anywhere else in this page. */
@font-face{
  font-family:'Ox Montserrat';
  src:url('/calendar/assets/montserrat.woff2') format('woff2');
  font-weight:600 700;
  font-display:swap;
}
@font-face{
  font-family:'Ox Open Sans';
  src:url('/calendar/assets/opensans.woff2') format('woff2');
  font-weight:400 600;
  font-display:swap;
}
:root{
  --ox-accent:#b60c2d;
  --ox-accent-ink:#ffffff;
  --ox-canvas:#f9f8f8;
  --ox-ink:#2e2e2e;
  --ox-mute:#5f5e5e;
  --ox-card:#ffffff;
  --ox-line:#eae7e7;
  --ox-ok:#1f7a3a;
  --ox-warn:#9a6700;
  --ox-bad:#b60c2d;
  --ox-radius:16px;
}
@media (prefers-color-scheme: dark){
  :root{
    --ox-canvas:#1c1c22;
    --ox-ink:#f9f8f8;
    --ox-mute:#b3b2b2;
    --ox-card:#26262d;
    --ox-line:#3a3a42;
    --ox-accent:#ff6269;
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ox-canvas);
  color:var(--ox-ink);
  font-family:'Ox Open Sans','Open Sans',system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.45;
}
.ox-wrap{max-width:560px;margin:0 auto;padding:16px;min-height:100vh}
.ox-noscript{padding:16px;text-align:center}

.ox-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.ox-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--ox-accent);color:var(--ox-accent-ink);font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:700;font-size:13px}
.ox-logo{display:block;height:44px;width:auto}

/* the booth pill: shows once a session is set; long-press opens the change-show flow */
.ox-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--ox-card);border:1px solid var(--ox-line);border-radius:999px;
  padding:8px 14px;font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:600;font-size:13px;
  color:var(--ox-mute);min-height:44px;margin-bottom:12px;cursor:pointer;user-select:none;
  -webkit-user-select:none;-webkit-touch-callout:none;
}
.ox-pill:active{background:var(--ox-line)}

h1,h2{font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:700;margin:0 0 8px;line-height:1.2}
h1{font-size:26px}
h2{font-size:20px}
p{margin:0 0 16px}
.ox-intro{color:var(--ox-mute);font-size:15px}

.ox-field{margin-bottom:16px}
.ox-field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.ox-field input,.ox-field select{
  width:100%;min-height:44px;font:inherit;font-size:16px;
  padding:11px 14px;border:1px solid var(--ox-line);border-radius:10px;
  background:var(--ox-card);color:var(--ox-ink);
}
.ox-field input:focus,.ox-field select:focus{outline:3px solid var(--ox-accent);outline-offset:1px}
.ox-field .ox-err{color:var(--ox-bad);font-size:13px;margin-top:4px;display:none}
.ox-field.ox-invalid .ox-err{display:block}
.ox-field.ox-invalid input{border-color:var(--ox-bad)}

.ox-surfaces{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.ox-surface{
  display:flex;align-items:center;gap:8px;min-height:44px;
  border:1px solid var(--ox-line);border-radius:10px;padding:10px 12px;
  background:var(--ox-card);cursor:pointer;font-size:14px;
}
.ox-surface input{width:20px;height:20px;flex:none}
.ox-surface.ox-checked{border-color:var(--ox-accent);background:color-mix(in srgb, var(--ox-accent) 8%, var(--ox-card))}

.ox-consent{display:flex;gap:10px;align-items:flex-start;margin:6px 0 20px;font-size:13px;color:var(--ox-mute);line-height:1.5}
.ox-consent input{width:22px;height:22px;min-width:22px;margin-top:2px;flex:none}
.ox-consent a{color:var(--ox-accent)}

button{
  appearance:none;-webkit-appearance:none;border:0;min-height:48px;width:100%;
  font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:700;font-size:17px;
  border-radius:999px;background:var(--ox-accent);color:#fff;cursor:pointer;
  padding:12px 20px;
}
button:disabled{opacity:.5;cursor:default}
button.ox-secondary{background:transparent;color:var(--ox-accent);border:1.5px solid var(--ox-accent)}
button.ox-link{background:none;border:0;color:var(--ox-accent);text-decoration:underline;width:auto;padding:8px 0;font-weight:600}

.ox-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.ox-done{text-align:center;padding:24px 0}
.ox-done .ox-phone{font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:700;font-size:18px;color:var(--ox-accent)}

/* the offline badge (US4) */
.ox-badge{
  position:fixed;left:12px;bottom:12px;z-index:1000;
  display:none;align-items:center;gap:8px;min-height:44px;
  background:var(--ox-warn);color:#fff;border-radius:999px;padding:8px 16px;
  font-family:'Ox Montserrat','Montserrat',sans-serif;font-weight:700;font-size:13px;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.ox-badge[data-visible="1"]{display:inline-flex}

/* setup screen (US6) */
.ox-setup{background:var(--ox-card);border:1px solid var(--ox-line);border-radius:var(--ox-radius);padding:20px;margin-top:8px}
.ox-setup .ox-no-shows{color:var(--ox-mute);font-size:14px}

@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}
