/* Plus Jakarta Sans served from this app (fonts/OFL.txt): one variable file per script, no third-party request
   before the page can paint. */
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(fonts/plus-jakarta-sans-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url(fonts/plus-jakarta-sans-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(fonts/plus-jakarta-sans-italic-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: italic; font-weight: 200 800; font-display: swap;
  src: url(fonts/plus-jakarta-sans-italic-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --text: #1F2A37;
  --text-soft: rgba(31, 42, 55, .733);
  --ink: #111827;
  --muted: #4B5563;
  --faint: #9CA3AF;
  --border: #D1D5DB;
  --hairline: #E5E7EB;
  --input-bg: #F9FAFB;
  --page-bg: #F9FAFB;
  --card-bg: #FFFFFF;
  --navy: #031953;
  --blue: #1C64F2;
  --grad: linear-gradient(94deg, #031953 -43.1%, #0236C2 99.55%);
  --red: #DC2626;
  --green: #047857;
  --ring: #3B82F6;
  --ring-soft: rgba(59, 130, 246, .3);
  --ease: cubic-bezier(.32, .72, 0, 1);
  --font: "Plus Jakarta Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--page-bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14px;
  line-height: 20px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: transparent;
}
button, input, select, textarea { font: inherit; color: inherit; margin: 0; }
button { cursor: pointer; }
a { color: inherit; }
img { display: block; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.hp-field { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.icon { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Page and card */
.page { display: flex; flex-direction: column; align-items: center; min-height: 100vh; min-height: 100dvh; }
.card { width: 100%; max-width: 520px; min-height: 100vh; min-height: 100dvh; background: var(--card-bg); }
@media (min-width: 520px) {
  .page { padding: 56px 0 24px; }
  .card { max-width: 480px; min-height: 0; border: 1px solid var(--border); border-radius: 8px; }
}
@media (min-width: 900px) {
  .card--split { width: auto; max-width: none; }
  .card--split .card-body { display: flex; }
}

/* Step header */
.steps {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  margin: 0; padding: 16px; list-style: none;
  border-bottom: 1px solid var(--border);
}
@media (min-width: 900px) { .steps { padding: 10px 16px; column-gap: 24px; } }
.step {
  display: flex; align-items: center; padding: 0; border: 0; background: none;
  font-size: 14px; line-height: 20px; white-space: nowrap; color: var(--text); cursor: default;
}
button.step { cursor: pointer; border-radius: 4px; }
.step-btn {
  display: flex; align-items: center; padding: 0; border: 0; border-radius: 4px; background: none;
  font-size: 14px; line-height: 20px; color: inherit; cursor: default;
}
.step-btn:disabled { opacity: 1; }
.step-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--border); transition: background-color .3s var(--ease); }
.step-label { padding-left: 8px; opacity: .5; transition: opacity .3s var(--ease); }
.step.is-active .step-dot { background: var(--navy); }
.step.is-active .step-label { opacity: 1; }
/* Step 2: the done step shows a check and takes the lead back to the form. */
.step.is-done .step-btn { cursor: pointer; }
.step.is-done .step-dot { width: 14px; height: 14px; background: var(--navy); opacity: .5; }
.step.is-done .step-dot::after {
  content: ""; position: absolute; left: 5px; top: 2.5px; width: 3px; height: 6.5px;
  border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
}
@media (hover: hover) { .step.is-done .step-btn:hover .step-label { opacity: .8; text-decoration: underline; text-underline-offset: 2px; } }

/* Columns */
.col-left { padding: 20px 20px 40px; min-width: 0; }
.col-right { padding: 0 20px 16px; min-width: 0; }
@media (max-width: 899px) {
  .card--split.is-unlocked .col-right { min-height: 100vh; min-height: 100lvh; }
}
@media (min-width: 900px) {
  .col-left { width: 404px; flex: none; padding: 24px; }
  .col-right { width: 405px; flex: none; padding: 24px; border-left: 1px solid var(--border); }
}
/* Step 1 on a phone: once the rest of the form is open, the dimmed calendar under it goes, as on iClosed. */
@media (max-width: 899px) {
  .card--split.is-revealed:not(.is-step2) .col-right { display: none; }
  .card.is-step2 .col-left { padding-bottom: 8px; }
}
/* Step 2 ("Book your event"): the event's details on the left; from 1100px the day's times sit beside the month. */
@media (min-width: 900px) {
  .card.is-step2 .col-left { width: 328px; }
}
@media (min-width: 1100px) {
  .card.is-step2 .col-right { width: auto; }
  .card.is-step2 .cal--list { display: flex; align-items: stretch; }
  .card.is-step2 .cal--list .cal-box { width: 380px; flex: none; padding-right: 24px; }
  .card.is-step2 .cal--list .times-wrap {
    width: 235px; flex: none; padding-left: 24px; border-left: 1px solid var(--border); grid-template-rows: 1fr; opacity: 1;
  }
  .card.is-step2 .cal--list.is-empty .times-wrap { opacity: 0; }
  .card.is-step2 .cal--list .times { margin-top: 0; }
  .card.is-step2 .cal--list .slot-list { max-height: 400px; overflow-y: auto; overscroll-behavior: contain; padding: 2px 4px 2px 2px; }
}

/* Event details */
.ev-title { margin: 0; font-size: 18px; font-weight: 600; line-height: 24px; color: var(--text); overflow-wrap: anywhere; }
@media (min-width: 640px) { .ev-title { font-size: 20px; } }
.ev-desc { margin-top: 12px; font-size: 14px; line-height: 1.25; color: var(--text-soft); overflow-wrap: break-word; }
.ev-desc p { margin: 0; }
.ev-desc strong, .ev-desc b { font-weight: 700; }
.ev-desc ul, .ev-desc ol { margin: 0; padding-left: 20px; }
.ev-meta { margin-top: 16px; }
.meta-row { display: flex; align-items: center; gap: 8px; margin: 0; padding: 4px 2px; font-size: 14px; font-weight: 500; line-height: 20px; color: var(--text); }
.meta-row .icon { width: 20px; height: 20px; color: var(--muted); stroke-width: 1.6; }
.ev-meta .tz-host { margin-top: 8px; }
.ev-meta .guests { margin-top: 12px; }

/* Skeleton while the event loads */
.skel { display: block; border-radius: 6px; background: linear-gradient(90deg, #F3F4F6 0%, #E9EBEF 50%, #F3F4F6 100%); background-size: 200% 100%; animation: skel 1.4s var(--ease) infinite; }
.skel + .skel { margin-top: 8px; }
.skel--title { height: 22px; width: 82%; }
.skel--line { height: 12px; width: 100%; }
.skel--short { width: 58%; }
.skel--gap { margin-top: 16px !important; }
.skel--input { height: 44px; margin-top: 20px !important; border-radius: 8px; }
.skel--btn { height: 44px; margin-top: 20px !important; border-radius: 8px; }
@keyframes skel { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

/* Form */
.lead-form { margin-top: 16px; min-width: 250px; }
.row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 16px; }
.field { margin-bottom: 16px; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--text); overflow-wrap: anywhere; }
.req { color: var(--red); }
.input {
  display: block; width: 100%; height: 44px; padding: 10px 16px;
  font-size: 16px; line-height: 20px; color: var(--ink);
  background: var(--input-bg); border: 1px solid var(--border); border-radius: 8px;
  -webkit-appearance: none; appearance: none;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.input::placeholder { color: var(--muted); opacity: 1; }
.input:focus { outline: none; border-color: var(--ring); box-shadow: 0 0 0 3px var(--ring-soft); }
.input[aria-invalid="true"] { border-color: var(--red); }
.input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(220, 38, 38, .2); }
textarea.input { height: auto; min-height: 88px; resize: vertical; }
.err { display: block; margin-top: 2px; font-size: 12px; font-weight: 500; line-height: 18px; color: var(--red); }
.err:empty { display: none; }

/* Revealed second half of the form */
.reveal { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s var(--ease), opacity .4s var(--ease); }
.reveal.is-open { grid-template-rows: 1fr; opacity: 1; }
.reveal > .reveal-inner { min-height: 0; overflow: hidden; }
.reveal.is-open.is-done > .reveal-inner { overflow: visible; }

/* Questions */
.q { margin: 0 0 12px; min-width: 0; }
.q-label { display: block; margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--text); overflow-wrap: anywhere; }
.q-opts { margin-top: 4px; }
.q-opt {
  display: flex; gap: 8px; margin: 0; padding: 4px 24px 4px 0;
  font-size: 14px; font-weight: 500; line-height: 20px; color: var(--text); overflow-wrap: anywhere; cursor: pointer;
}
.q .err { margin-top: 0; }
.q--text .input { margin-top: 8px; }
.q.q--text .err { margin-top: 2px; }
/* "Collapse answers": a choice as a dropdown, with its chevron drawn since .input drops the native one. */
.q-select {
  margin-top: 8px; padding-right: 40px; cursor: pointer; text-overflow: ellipsis;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px 16px;
}
.q.q--select .err { margin-top: 2px; }
.radio {
  flex: none; width: 16px; height: 16px; margin: 2px 0 0; border: 1px solid var(--border); border-radius: 50%;
  background: #F3F4F6; -webkit-appearance: none; appearance: none; cursor: pointer;
  transition: background-color .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.radio:checked { border-color: var(--blue); background: var(--blue) radial-gradient(circle, #fff 0 3px, transparent 3.5px); }
.radio:focus-visible { outline: none; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--ring); }
.q[aria-invalid="true"] .radio { border-color: var(--red); }

/* Consent */
.consent { margin: 0 0 16px; font-size: 12px; line-height: 18px; color: var(--text); }
.consent a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 10px 20px; border-radius: 8px; border: 1px solid transparent;
  font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none; white-space: nowrap;
  transition: opacity .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.btn:active:not(:disabled) { transform: scale(.985); }
.btn:disabled { cursor: default; opacity: .75; }
.btn-block { display: flex; width: 100%; }
.btn-primary { background: var(--grad); color: #fff; }
.btn-outline { background: #fff; border-color: var(--border); color: var(--text); }
.btn-danger { background: var(--red); color: #fff; }
.btn-text-danger { color: var(--red); }
.link-btn {
  display: inline-flex; align-items: center; gap: 4px; padding: 4px 0; border: 0; background: none;
  font-size: 14px; font-weight: 600; line-height: 20px; color: var(--text); text-decoration: underline; text-underline-offset: 2px;
}
.spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); border-top-color: #fff; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Phone field */
.phone-field { position: relative; }
.phone-cc {
  position: absolute; left: 1px; top: 1px; bottom: 1px; z-index: 1; display: flex; align-items: center; gap: 4px;
  width: 44px; padding: 0 0 0 10px; border: 0; border-right: 1px solid var(--border); border-radius: 7px 0 0 7px; background: transparent;
}
.phone-cc:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }
.phone-cc .caret { width: 0; height: 0; border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid #555; }
.phone-input { padding-left: 56px; }
.flag { width: 20px; height: 15px; flex: none; border-radius: 2px; object-fit: cover; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }
.flag--none { background: #E5E7EB; }

/* Searchable list popover (countries, time zones) */
.pick-host { position: relative; }
.picker {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30;
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 12px 32px -8px rgba(17, 24, 39, .18), 0 2px 6px rgba(17, 24, 39, .06);
  transform-origin: top center; animation: pick-in .22s var(--ease);
}
@keyframes pick-in { from { opacity: 0; transform: translateY(-4px) scale(.99); } to { opacity: 1; transform: none; } }
.picker-search { padding: 8px; border-bottom: 1px solid var(--hairline); }
.picker-search .input { height: 40px; }
.picker-list { position: relative; max-height: 264px; margin: 0; padding: 4px; overflow-y: auto; overscroll-behavior: contain; list-style: none; -webkit-overflow-scrolling: touch; }
@media (hover: hover) { .picker-opt:hover { background: #F3F4F6; } }
.picker-opt {
  display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 10px; border-radius: 6px;
  font-size: 14px; line-height: 20px; color: var(--text); cursor: pointer;
}
.picker-opt[aria-selected="true"] { font-weight: 600; background: #EEF2FF; }
.picker-opt.is-active { background: #F3F4F6; }
.picker-opt[aria-selected="true"].is-active { background: #E0E7FF; }
.picker-opt-label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.picker-opt-hint { flex: none; color: var(--muted); font-variant-numeric: tabular-nums; }
.picker-empty { padding: 12px 10px; color: var(--muted); }

/* Calendar */
.cal { scroll-margin-top: 12px; }
.cal-box { position: relative; }
.cal-inner { transition: opacity .3s var(--ease); }
.cal.is-dim .cal-inner { opacity: .3; pointer-events: none; user-select: none; -webkit-user-select: none; }
.cal-head { display: flex; align-items: center; justify-content: space-between; min-height: 32px; }
.cal-month { margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; color: var(--text); }
.cal-nav { display: flex; align-items: center; gap: 8px; }
.cal-nav button {
  display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0;
  border: 1px solid var(--border); border-radius: 4px; background: #fff; color: var(--text);
}
.cal-nav button:disabled { opacity: .5; cursor: default; }
.cal-nav .icon { width: 16px; height: 16px; stroke-width: 2.2; }
.cal-table { padding-top: 17px; }
@media (min-width: 448px) { .cal-table { padding-top: 12px; } }
.cal-week, .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); column-gap: 6px; }
@media (min-width: 900px) { .cal-week, .cal-grid { column-gap: 8px; } }
.cal-week { margin: 0; }
.cal-wd { margin: 0; font-size: 12px; font-weight: 600; line-height: 16px; text-align: center; text-transform: uppercase; color: var(--text-soft); }
.cal-wd abbr { text-decoration: none; }
.cal-grid { margin-top: 8px; row-gap: 6px; }
@media (min-width: 448px) { .cal-grid { row-gap: 8px; } }
.day {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 100%; max-width: 44px; height: 44px; margin: 0 auto; padding: 0; border: 0; border-radius: 8px; background: none;
  font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; color: var(--faint);
}
@media (min-width: 384px) { .day { font-size: 16px; line-height: 24px; } }
.day-num { position: relative; }
.day-dot { position: relative; width: 6px; height: 6px; margin-top: 1px; border-radius: 50%; background: var(--navy); }
.cal.is-locked .day { color: var(--text); }
.day--open { color: var(--text); font-weight: 500; cursor: pointer; }
.day--open::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--grad); opacity: .3; transition: opacity .2s var(--ease); }
.day--selected { color: #fff; font-weight: 600; }
.day--selected::before { opacity: 1; }
.day--selected .day-dot { background: #fff; }
.day:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.cal-note {
  position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 0 12px;
  pointer-events: none; transition: opacity .3s var(--ease);
}
.cal-note[hidden] { display: none !important; }
.cal-note p {
  max-width: 270px; margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 4px; background: #fff;
  font-size: 14px; line-height: 20px; text-align: center; color: var(--ink); pointer-events: auto; cursor: default;
  filter: drop-shadow(0 4px 3px rgba(0, 0, 0, .07)) drop-shadow(0 2px 2px rgba(0, 0, 0, .06));
}

/* Times */
.times { margin-top: 20px; }
.times-bar { display: flex; align-items: center; gap: 8px; }
.tz-host { flex: 1; min-width: 0; }
.tz-btn {
  display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; height: 40px; padding: 0 12px;
  border: 1px solid var(--border); border-radius: 8px; background: #fff; color: var(--text); text-align: left;
  font-size: 14px; line-height: 20px;
}
.tz-btn-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tz-btn .icon { color: var(--muted); }
.seg { display: flex; flex: none; height: 40px; padding: 3px; border: 1px solid var(--border); border-radius: 8px; background: #F3F4F6; }
.seg button {
  min-width: 44px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent;
  font-size: 13px; font-weight: 600; line-height: 20px; color: var(--muted);
  transition: background-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);
}
.seg button[aria-pressed="true"] { background: #fff; color: var(--text); box-shadow: 0 1px 2px rgba(17, 24, 39, .12); }
.times-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.time-btn {
  position: relative; height: 44px; padding: 0 8px; border: 1px solid var(--border); border-radius: 8px; background: #fff;
  font-size: 14px; font-weight: 500; line-height: 20px; color: var(--text); font-variant-numeric: tabular-nums;
  transition: border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.time-btn::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; background: var(--grad); opacity: 0; transition: opacity .2s var(--ease); }
.time-btn span { position: relative; }
.time-btn:active { transform: scale(.985); }
.time-btn[aria-pressed="true"] { border-color: transparent; color: #fff; font-weight: 600; }
.time-btn[aria-pressed="true"]::before { opacity: 1; }
.times-empty { margin: 16px 0 0; color: var(--muted); }

/* Times as iClosed lists them (booking page): one column under the day, the picked time with its Confirm beside it */
.times-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; }
.times-day { margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; color: var(--text); }
.times-day b { font-weight: 600; }
.slot-list { display: grid; gap: 12px; margin-top: 12px; }
.slot-row {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0fr); column-gap: 0;
  transition: grid-template-columns .2s linear, column-gap .2s linear;
}
.slot-row.is-picked { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 8px; }
.slot-row .time-btn { min-width: 0; }
.times--list .time-btn[aria-pressed="true"] { border-color: #0236C2; color: var(--text); }
.times--list .time-btn[aria-pressed="true"]::before { opacity: 0; }
.slot-go {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; height: 44px; padding: 0 8px;
  overflow: hidden; border: 0; border-radius: 8px; background: var(--grad); color: #fff; white-space: nowrap;
  font-size: 14px; font-weight: 500; line-height: 20px; transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.slot-go:active:not(:disabled) { transform: scale(.985); }
.slot-go:disabled { cursor: default; opacity: .75; }
.slot-list .slot-skel { display: block; height: 44px; margin: 0 !important; border-radius: 8px; }
.cal.is-loading .cal-grid .day { animation: day-pulse 1.4s var(--ease) infinite; }
@keyframes day-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.cal.is-busy .day, .cal.is-busy .time-btn, .cal.is-busy .cal-nav button, .cal.is-busy .seg button { pointer-events: none; }
.cal.is-busy .slot-row:not(.is-picked) { opacity: .5; transition: opacity .2s var(--ease); }

/* Confirm area */
.confirm { padding-top: 16px; }
.summary { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--text); }
.summary .icon { margin-top: 2px; color: var(--muted); }
.guests { margin-top: 8px; }
.guest-list .field { margin: 8px 0 0; }
.guest-row { display: flex; gap: 8px; }
.guest-row .input { flex: 1; }
.icon-btn {
  display: flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; padding: 0;
  border: 1px solid var(--border); border-radius: 8px; background: #fff; color: var(--muted);
}
.confirm .btn-primary { margin-top: 16px; scroll-margin-bottom: 20px; }
.note { margin: 12px 0 0; font-size: 14px; font-weight: 500; line-height: 20px; color: var(--red); }
.note:empty { display: none; }
.note--info { color: var(--text); }

/* Demo tag and full-card messages */
.demo-tag {
  display: block; width: max-content; margin: 16px auto; padding: 2px 10px; border: 1px solid var(--hairline); border-radius: 999px;
  background: #F3F4F6; color: #6B7280; font-size: 11px; font-weight: 600; line-height: 18px;
}
.state { padding: 40px 20px; text-align: center; }
.state-title { margin: 0; font-size: 18px; font-weight: 600; line-height: 24px; color: var(--text); }
.state-text { margin: 8px 0 0; color: var(--text-soft); }
.state .btn { margin-top: 20px; }

/* Manage page */
.mg { padding: 24px 20px 32px; }
@media (min-width: 520px) { .mg { padding: 28px 24px 32px; } }
.mg-status { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 20px; }
.mg-status--ok { background: #ECFDF5; color: var(--green); }
.mg-status--off { background: #F3F4F6; color: #4B5563; }
.mg-rows { margin: 16px 0 0; padding: 0; list-style: none; }
.mg-row { display: flex; gap: 12px; padding: 6px 0; color: var(--text); font-size: 14px; line-height: 20px; }
.mg-row .icon { width: 18px; height: 18px; margin-top: 1px; color: var(--muted); stroke-width: 1.8; }
.mg-row-main { min-width: 0; overflow-wrap: anywhere; }
.nowrap { white-space: nowrap; }
.mg-sub { display: block; color: var(--text-soft); }
.mg-row a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.mg-section { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--hairline); }
.mg-h2 { margin: 0 0 12px; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--text); }
.addcal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.addcal .btn { padding: 0 8px; }
.mg-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mg-msg { margin: 0 0 4px; font-size: 16px; font-weight: 600; line-height: 24px; color: var(--text); }
.mg-msg--ok { color: var(--green); }
.mg-msg--info { padding: 10px 12px; border-radius: 8px; background: #FFFBEB; color: #92400E; font-size: 14px; line-height: 20px; }
.mg-cancel-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.mg-back { margin-top: 12px; }
.mg-actions > :only-child { grid-column: 1 / -1; }
.mg-rows--muted .mg-row { color: var(--text-soft); }
.mg-msg + .ev-title, .mg-msg + .mg-msg { margin-top: 12px; }
.mg-msg:focus { outline: none; }
.mg-reason-label { margin: 12px 0 6px; font-weight: 500; }
.mg-panel .cal { margin-top: 4px; }

@media (hover: hover) {
  .btn-primary:hover:not(:disabled) { opacity: .92; }
  .btn-outline:hover:not(:disabled) { border-color: #9CA3AF; }
  .btn-danger:hover:not(:disabled) { background: #B91C1C; }
  .phone-cc:hover { background: #F3F4F6; }
  .day--open:not(.day--selected):hover::before { opacity: .42; }
  .tz-btn:hover { border-color: #9CA3AF; }
  .time-btn:not([aria-pressed="true"]):hover { border-color: #0236C2; }
  .slot-go:hover:not(:disabled) { opacity: .92; }
  .icon-btn:hover { color: var(--text); border-color: #9CA3AF; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
