.steins-scheduler {
  --stein-black: #171717;
  --stein-charcoal: #27272a;
  --stein-line: #d8d8dd;
  --stein-muted: #66666f;
  --stein-red: #cf202f;
  --stein-red-dark: #a71522;
  --stein-surface: #ffffff;
  --stein-soft: #f4f4f5;
  background: var(--stein-surface);
  border: 1px solid var(--stein-line);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(23, 23, 23, 0.12);
  color: var(--stein-black);
  font-family: inherit;
  max-width: 100%;
  overflow: hidden;
}

.steins-scheduler * {
  box-sizing: border-box;
}

.steins-scheduler__form {
  display: grid;
  gap: 18px;
  padding: 22px;
}

.steins-scheduler__header {
  border-bottom: 1px solid var(--stein-line);
  padding-bottom: 14px;
}

.steins-scheduler__eyebrow {
  color: var(--stein-red);
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.steins-scheduler h3 {
  color: var(--stein-black);
  font-size: 24px;
  line-height: 1.18;
  margin: 0;
}

.steins-scheduler__grid,
.steins-scheduler__details-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.steins-scheduler__progress {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0 0 4px;
}

.steins-scheduler__progress li {
  align-items: center;
  color: var(--stein-muted);
  display: flex;
  font-size: 12px;
  font-weight: 700;
  gap: 8px;
  min-width: 0;
}

.steins-scheduler__progress span {
  align-items: center;
  background: #e4e5e8;
  border-radius: 50%;
  color: #5e6169;
  display: inline-flex;
  flex: 0 0 22px;
  font-size: 11px;
  height: 22px;
  justify-content: center;
}

.steins-scheduler__progress .is-current,
.steins-scheduler__progress .is-complete {
  color: var(--stein-black);
}

.steins-scheduler__progress .is-current span,
.steins-scheduler__progress .is-complete span {
  background: var(--stein-red);
  color: #fff;
}

.steins-scheduler__step {
  animation: steinsStepIn 220ms ease both;
}

.steins-scheduler__step-title {
  margin-bottom: 4px;
}

.steins-scheduler__step-title h4 {
  font-size: 16px;
  margin: 0;
}

.steins-scheduler__step-title p {
  color: var(--stein-muted);
  font-size: 13px;
  line-height: 1.45;
  margin: 5px 0 14px;
}

.steins-scheduler__lookup-field,
.steins-scheduler__grid .is-wide {
  grid-column: 1 / -1;
}

.steins-scheduler__other-service {
  grid-column: 1 / -1;
  max-height: 170px;
  opacity: 1;
  overflow: hidden;
  transform: translateY(0);
  transition: max-height 260ms ease, opacity 180ms ease, transform 260ms ease;
}

.steins-scheduler__other-service.is-hidden {
  margin: 0;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}

.steins-scheduler__other-service small {
  color: var(--stein-muted);
  font-size: 12px;
}

.steins-scheduler__lookup-control {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.steins-scheduler__lookup-control button,
.steins-scheduler__back {
  background: #fff;
  border: 1px solid var(--stein-line);
  border-radius: 7px;
  color: var(--stein-charcoal);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  min-height: 44px;
  padding: 0 14px;
}

.steins-scheduler__lookup-control button:hover,
.steins-scheduler__back:hover {
  border-color: #a9abb2;
}

.steins-scheduler__lookup-field small {
  color: var(--stein-muted);
  font-size: 12px;
  min-height: 16px;
}

.steins-scheduler__lookup-field small[data-state="error"] {
  color: var(--stein-red-dark);
}

.steins-scheduler__lookup-field small[data-state="success"] {
  color: #166534;
}

.steins-scheduler--vertical .steins-scheduler__grid,
.steins-scheduler--vertical .steins-scheduler__details-grid {
  grid-template-columns: 1fr;
}

.steins-scheduler label,
.steins-scheduler__slots {
  display: grid;
  gap: 7px;
}

.steins-scheduler label span,
.steins-scheduler__slots > span {
  color: var(--stein-charcoal);
  font-size: 13px;
  font-weight: 700;
}

.steins-scheduler__required-marker {
  color: var(--stein-red);
  font-size: inherit;
  font-style: normal;
  font-weight: 800;
}

.steins-scheduler__field-error {
  color: var(--stein-red-dark);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  margin-top: -1px;
}

.steins-scheduler label.is-invalid input,
.steins-scheduler label.is-invalid select,
.steins-scheduler label.is-invalid textarea {
  border-color: var(--stein-red);
  box-shadow: 0 0 0 3px rgba(207, 32, 47, 0.12);
}

.steins-scheduler input,
.steins-scheduler select,
.steins-scheduler textarea {
  background: #fff;
  border: 1px solid var(--stein-line);
  border-radius: 8px;
  color: var(--stein-black);
  font: inherit;
  min-height: 44px;
  padding: 10px 12px;
  width: 100%;
}

.steins-scheduler textarea {
  min-height: 104px;
  resize: vertical;
}

.steins-scheduler input:focus,
.steins-scheduler select:focus,
.steins-scheduler textarea:focus {
  border-color: var(--stein-red);
  box-shadow: 0 0 0 3px rgba(207, 32, 47, 0.14);
  outline: none;
}

.steins-scheduler__submit:disabled {
  cursor: not-allowed;
  opacity: 0.48;
  transform: none;
}

.steins-scheduler__slots {
  grid-column: span 2;
}

.steins-scheduler--vertical .steins-scheduler__slots {
  grid-column: span 1;
}

.steins-scheduler__slot-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 42px;
}

.steins-scheduler__slot-list em {
  color: var(--stein-muted);
  font-size: 14px;
  line-height: 42px;
}

.steins-scheduler__slot {
  background: var(--stein-soft);
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--stein-black);
  cursor: pointer;
  font-weight: 700;
  min-height: 40px;
  min-width: 74px;
  padding: 8px 12px;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.steins-scheduler__slot:hover:not(:disabled),
.steins-scheduler__slot.is-selected {
  background: var(--stein-black);
  border-color: var(--stein-black);
  color: #fff;
  transform: translateY(-1px);
}

.steins-scheduler__slot:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}

.steins-scheduler__details {
  border-top: 1px solid var(--stein-line);
  padding-top: 14px;
}

.steins-scheduler__details summary {
  color: var(--stein-charcoal);
  cursor: pointer;
  font-weight: 800;
}

.steins-scheduler__details-grid {
  margin-top: 14px;
}

.steins-scheduler__details-grid label:last-child {
  grid-column: 1 / -1;
}

.steins-scheduler__footer {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.steins-scheduler__submit {
  background: var(--stein-red);
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  min-height: 46px;
  padding: 12px 18px;
  transition: background 160ms ease, transform 160ms ease;
}

.steins-scheduler__submit:hover:not(:disabled) {
  background: var(--stein-red-dark);
  transform: translateY(-1px);
}

.steins-scheduler__submit:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.steins-scheduler__back[hidden],
.steins-scheduler__submit[hidden] {
  display: none;
}

.steins-scheduler__status {
  color: var(--stein-muted);
  flex: 1 1 220px;
  font-size: 14px;
  margin: 0;
}

.steins-scheduler__status[data-state="success"] {
  color: #166534;
  font-weight: 700;
}

.steins-scheduler__status[data-state="error"] {
  color: var(--stein-red-dark);
  font-weight: 700;
}

.steins-scheduler__success {
  align-items: center;
  animation: steinsBookingSuccess 520ms cubic-bezier(.2,.76,.25,1) both;
  display: grid;
  justify-items: center;
  margin: 18px auto;
  max-width: 580px;
  min-height: 360px;
  padding: 34px 20px;
  text-align: center;
}

.steins-scheduler__success[hidden] {
  display: none;
}

.steins-scheduler__success-mark {
  align-items: center;
  animation: steinsBookingSuccessMark 700ms 100ms cubic-bezier(.2,.86,.22,1) both;
  background: #edf8f0;
  border: 1px solid #b9dfc1;
  border-radius: 50%;
  color: #16723a;
  display: inline-flex;
  height: 76px;
  justify-content: center;
  width: 76px;
}

.steins-scheduler__success-mark svg {
  fill: none;
  height: 48px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.7;
  width: 48px;
}

.steins-scheduler__success-mark path {
  animation: steinsBookingCheck 440ms 460ms ease-out both;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
}

.steins-scheduler__success-kicker {
  color: #16723a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  margin-top: 22px;
  text-transform: uppercase;
}

.steins-scheduler__success h4 {
  color: var(--stein-black);
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.12;
  margin: 10px 0 0;
}

.steins-scheduler__success p {
  color: var(--stein-muted);
  font-size: 15px;
  line-height: 1.55;
  margin: 12px 0 24px;
  max-width: 430px;
}

.steins-scheduler__restart {
  background: #fff;
  border: 1px solid var(--stein-charcoal);
  border-radius: 8px;
  color: var(--stein-charcoal);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  min-height: 46px;
  padding: 12px 18px;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.steins-scheduler__restart:hover,
.steins-scheduler__restart:focus-visible {
  background: var(--stein-black);
  color: #fff;
  outline: none;
  transform: translateY(-1px);
}

.steins-scheduler__verification {
  align-items: center;
  border-top: 1px solid var(--stein-line);
  display: flex;
  flex: 1 1 100%;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: space-between;
  margin-top: 6px;
  padding-top: 16px;
}

.steins-scheduler__verification[hidden] {
  display: none;
}

.steins-scheduler__turnstile {
  min-height: 65px;
  min-width: 300px;
}

.steins-scheduler__turnstile.is-unavailable {
  align-items: center;
  background: #f8f2f2;
  border: 1px solid #e3c7c9;
  border-radius: 8px;
  color: #8b2229;
  display: flex;
  font-size: 13px;
  min-height: 64px;
  padding: 0 14px;
}

.steins-scheduler__verification p {
  color: var(--stein-muted);
  flex: 1 1 200px;
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
}

.steins-scheduler__verification p[data-state="success"] {
  color: #166534;
  font-weight: 700;
}

.steins-scheduler__verification p[data-state="error"] {
  color: var(--stein-red-dark);
  font-weight: 700;
}

.steins-scheduler__trap {
  height: 1px;
  left: -10000px;
  opacity: 0;
  position: absolute;
  top: auto;
  width: 1px;
}

.steins-scheduler--emergency {
  border-color: rgba(207, 32, 47, 0.45);
}

.steins-scheduler--emergency .steins-scheduler__header {
  background: linear-gradient(90deg, rgba(207, 32, 47, 0.1), rgba(207, 32, 47, 0));
  margin: -22px -22px 0;
  padding: 22px;
}

@media (max-width: 720px) {
  .steins-scheduler__form {
    padding: 18px;
  }

  .steins-scheduler__grid,
  .steins-scheduler__details-grid {
    grid-template-columns: 1fr;
  }

  .steins-scheduler__slots {
    grid-column: span 1;
  }

  .steins-scheduler h3 {
    font-size: 21px;
  }

  .steins-scheduler__progress li {
    font-size: 0;
    justify-content: center;
  }

  .steins-scheduler__progress span {
    font-size: 11px;
  }

  .steins-scheduler__lookup-control {
    grid-template-columns: 1fr;
  }
}

@keyframes steinsStepIn {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Horizontal operational flow. The vertical shortcode keeps the compact form above. */
.steins-scheduler--horizontal {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0 auto;
  max-width: 1120px;
  overflow: visible;
}

.steins-scheduler--horizontal .steins-scheduler__form {
  display: block;
  padding: 0;
}

.steins-scheduler--horizontal .steins-scheduler__header--compact {
  display: none;
}

.steins-scheduler__intro {
  margin: 0 0 22px;
  max-height: 112px;
  opacity: 1;
  overflow: hidden;
  transform: translateY(0);
  transition: max-height 260ms ease, margin 260ms ease, opacity 220ms ease, transform 220ms ease;
}

.steins-scheduler__intro h2 {
  color: #202126;
  font-family: "Unbounded", ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(19px, 2.1vw, 29px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.3;
  margin: 0;
  text-align: center;
}

.steins-scheduler--horizontal.is-service-selected .steins-scheduler__intro {
  margin-bottom: 0;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
}

.steins-scheduler__service-choices {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 28px;
}

.steins-scheduler__service-choice {
  align-items: center;
  background: #fff;
  border: 1px solid #dfe1e5;
  border-radius: 6px;
  color: var(--stein-black);
  cursor: pointer;
  display: grid;
  gap: 16px;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  min-height: 92px;
  padding: 16px 18px;
  text-align: left;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.steins-scheduler__service-choice:hover,
.steins-scheduler__service-choice:focus-visible {
  border-color: #aeb2b9;
  box-shadow: 0 8px 20px rgba(20, 24, 31, 0.07);
  outline: none;
  transform: translateY(-1px);
}

.steins-scheduler__service-choice.is-selected {
  border-bottom: 3px solid var(--stein-red);
  box-shadow: 0 10px 20px rgba(20, 24, 31, 0.08);
  padding-bottom: 14px;
}

.steins-scheduler__service-choice > span:nth-child(2) {
  display: grid;
  gap: 5px;
}

.steins-scheduler__service-choice strong {
  font-size: 14px;
}

.steins-scheduler__service-choice small {
  color: var(--stein-muted);
  font-size: 12px;
  line-height: 1.35;
}

.steins-scheduler__service-choice i {
  color: #34373d;
  font-size: 24px;
  font-style: normal;
  font-weight: 300;
}

.steins-scheduler__service-symbol {
  align-items: center;
  border: 1px solid #d8dbe0;
  border-radius: 50%;
  color: #31343a;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  height: 46px;
  justify-content: center;
  letter-spacing: 0.04em;
  width: 46px;
}

.steins-scheduler__service-symbol--emergency {
  color: #a91a25;
}

.steins-scheduler__service-symbol svg {
  fill: none;
  height: 22px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 22px;
}

.steins-scheduler__service-symbol--emergency svg {
  fill: currentColor;
  stroke: none;
}

.steins-scheduler--horizontal .steins-scheduler__progress {
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 24px;
  padding: 0;
}

.steins-scheduler--horizontal:not(.is-service-selected) .steins-scheduler__progress,
.steins-scheduler--horizontal:not(.is-service-selected) .steins-scheduler__workspace,
.steins-scheduler--horizontal:not(.is-service-selected) .steins-scheduler__footer {
  display: none;
}

.steins-scheduler--horizontal.is-service-selected .steins-scheduler__progress,
.steins-scheduler--horizontal.is-service-selected .steins-scheduler__workspace,
.steins-scheduler--horizontal.is-service-selected .steins-scheduler__footer {
  animation: steinsBookingReveal 360ms cubic-bezier(.2, .7, .25, 1) 120ms both;
}

.steins-scheduler--horizontal .steins-scheduler__progress li {
  align-items: center;
  flex-direction: column;
  font-size: 11px;
  gap: 8px;
  position: relative;
  text-align: center;
}

.steins-scheduler--horizontal .steins-scheduler__progress li:not(:last-child)::after {
  background: #d9dce0;
  content: "";
  height: 1px;
  left: calc(50% + 18px);
  position: absolute;
  right: calc(-50% + 18px);
  top: 12px;
}

.steins-scheduler--horizontal .steins-scheduler__progress li.is-complete:not(:last-child)::after {
  background: var(--stein-red);
}

.steins-scheduler--horizontal .steins-scheduler__progress span {
  background: #fff;
  border: 1px solid #dfe1e5;
  color: #4c5159;
  height: 25px;
  position: relative;
  width: 25px;
  z-index: 1;
}

.steins-scheduler--horizontal .steins-scheduler__progress .is-current span,
.steins-scheduler--horizontal .steins-scheduler__progress .is-complete span {
  background: var(--stein-red);
  border-color: var(--stein-red);
  color: #fff;
}

.steins-scheduler__workspace {
  display: grid;
  gap: 20px;
}

.steins-scheduler--horizontal .steins-scheduler__workspace {
  align-items: stretch;
  grid-template-columns: minmax(0, 1.07fr) minmax(330px, 0.93fr);
}

.steins-scheduler--horizontal:not(.is-planner-visible) .steins-scheduler__workspace {
  grid-template-columns: minmax(0, 1fr);
}

.steins-scheduler--horizontal .steins-scheduler__form-area {
  background: #fff;
  border: 1px solid #e0e2e5;
  border-radius: 6px;
  min-height: 520px;
  padding: 24px;
}

.steins-scheduler--horizontal .steins-scheduler__step-title {
  margin-bottom: 17px;
}

.steins-scheduler--horizontal .steins-scheduler__step-title h4 {
  font-size: 17px;
  font-weight: 750;
}

.steins-scheduler--horizontal .steins-scheduler__step-title p {
  font-size: 12px;
  margin-bottom: 0;
}

.steins-scheduler--horizontal .steins-scheduler__grid {
  gap: 13px 14px;
}

.steins-scheduler--horizontal .steins-scheduler__grid label span {
  font-size: 11px;
}

.steins-scheduler--horizontal input,
.steins-scheduler--horizontal select,
.steins-scheduler--horizontal textarea {
  border-radius: 5px;
  font-size: 13px;
  min-height: 42px;
}

.steins-scheduler--horizontal textarea {
  min-height: 124px;
}

.steins-scheduler__planner {
  background: #17191c;
  border: 1px solid #24272b;
  border-radius: 6px;
  color: #f4f5f6;
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  min-height: 520px;
  padding: 24px;
}

.steins-scheduler__planner[hidden] {
  display: none;
}

.steins-scheduler__planner-heading {
  margin-bottom: 22px;
}

.steins-scheduler__planner-heading > span {
  display: block;
  font-size: 17px;
  font-weight: 750;
}

.steins-scheduler__planner-heading p {
  color: #bcc0c6;
  font-size: 12px;
  line-height: 1.45;
  margin: 5px 0 0;
}

.steins-scheduler__planner input[data-planner-date] {
  background: #1e2125;
  border: 1px solid #3b4047;
  color: #f5f6f7;
  color-scheme: dark;
  cursor: pointer;
  display: block;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  min-height: 46px;
  padding: 0 12px;
  width: 100%;
}

.steins-scheduler__planner input[data-planner-date]:hover {
  border-color: #626a74;
}

.steins-scheduler__planner input[data-planner-date]:focus {
  border-color: #e95b4c;
  box-shadow: 0 0 0 3px rgba(232, 72, 53, .18);
}

.steins-scheduler__planner-date small {
  color: #aeb4bc;
  font-size: 10px;
  line-height: 1.4;
}

.steins-scheduler__calendar {
  animation: steinsCalendarIn 300ms cubic-bezier(.2, .7, .25, 1) both;
  margin-bottom: 13px;
}

.steins-scheduler__calendar-head {
  align-items: center;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  margin-bottom: 12px;
}

.steins-scheduler__calendar-head strong {
  color: #f2f4f6;
  font-size: 13px;
  text-align: center;
  text-transform: capitalize;
}

.steins-scheduler__calendar-head button {
  align-items: center;
  background: transparent;
  border: 1px solid #3b4047;
  border-radius: 5px;
  color: #f0f2f4;
  cursor: pointer;
  display: inline-flex;
  font-size: 20px;
  height: 30px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, opacity 160ms ease, transform 160ms ease;
  width: 30px;
}

.steins-scheduler__calendar-head button:hover:not(:disabled),
.steins-scheduler__calendar-head button:focus-visible {
  background: #292d33;
  border-color: #5c636c;
  outline: none;
  transform: translateY(-1px);
}

.steins-scheduler__calendar-head button:disabled {
  cursor: default;
  opacity: .32;
}

.steins-scheduler__calendar-weekdays,
.steins-scheduler__calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.steins-scheduler__calendar-weekdays {
  color: #949ca6;
  font-size: 9px;
  gap: 3px;
  margin-bottom: 6px;
  text-align: center;
}

.steins-scheduler__calendar-grid {
  gap: 4px;
}

.steins-scheduler__calendar-empty,
.steins-scheduler__calendar-day {
  aspect-ratio: 1;
  min-height: 29px;
}

.steins-scheduler__calendar-day {
  background: #22262b;
  border: 1px solid transparent;
  border-radius: 5px;
  color: #e8ebee;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.steins-scheduler__calendar-day.is-available {
  background: rgba(79, 135, 205, .24);
  border-color: rgba(116, 166, 228, .32);
  color: #dcecff;
}

.steins-scheduler__calendar-day.is-partial {
  background: rgba(205, 151, 67, .2);
  border-color: rgba(222, 173, 96, .32);
  color: #fff1d5;
}

.steins-scheduler__calendar-day.is-unavailable,
.steins-scheduler__calendar-day.is-closed {
  background: #1b1e22;
  color: #656c75;
  cursor: default;
}

.steins-scheduler__calendar-day:hover:not(:disabled),
.steins-scheduler__calendar-day:focus-visible {
  border-color: #f4f5f6;
  outline: none;
  transform: translateY(-1px) scale(1.04);
}

.steins-scheduler__calendar-day.is-selected {
  background: var(--stein-red);
  border-color: #ff8c83;
  box-shadow: 0 0 0 2px rgba(207, 32, 47, .22);
  color: #fff;
}

.steins-scheduler__calendar-status {
  color: #adb4bd;
  font-size: 10px;
  line-height: 1.4;
  margin: 10px 0 0;
  min-height: 28px;
}

.steins-scheduler__calendar-legend {
  border-top: 1px solid #363a3f;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: 1px;
  padding-top: 13px;
}

.steins-scheduler__calendar-legend span {
  align-items: center;
  color: #adb4bd;
  display: inline-flex;
  font-size: 9px;
  gap: 5px;
}

.steins-scheduler__calendar-legend i {
  background: #5e6670;
  border-radius: 50%;
  display: inline-block;
  height: 6px;
  width: 6px;
}

.steins-scheduler__calendar-legend .is-available { background: #6e9fdd; }
.steins-scheduler__calendar-legend .is-partial { background: #d8a152; }
.steins-scheduler__calendar-legend .is-unavailable { background: #656c75; }

.steins-scheduler__planner label span,
.steins-scheduler__planner .steins-scheduler__slots > span {
  color: #e4e6e8;
  font-size: 11px;
}

.steins-scheduler__planner-date {
  margin-bottom: 19px;
}

.steins-scheduler__planner input[type="date"] {
  background: #1e2125;
  border-color: #34383d;
  color: #f7f8f8;
  color-scheme: dark;
}

.steins-scheduler__planner .steins-scheduler__slots {
  align-content: start;
  grid-column: auto;
}

.steins-scheduler__planner .steins-scheduler__slot-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.steins-scheduler__planner .steins-scheduler__slot-list em {
  color: #aeb4bc;
  grid-column: 1 / -1;
  line-height: 1.45;
  padding-top: 8px;
}

.steins-scheduler__planner .steins-scheduler__slot {
  background: transparent;
  border-color: #40444a;
  border-radius: 4px;
  color: #f2f3f4;
  font-size: 11px;
  min-height: 34px;
  min-width: 0;
  padding: 6px;
}

.steins-scheduler__planner .steins-scheduler__slot:hover:not(:disabled),
.steins-scheduler__planner .steins-scheduler__slot.is-selected {
  background: var(--stein-red);
  border-color: var(--stein-red);
  transform: none;
}

.steins-scheduler__request-summary {
  border-top: 1px solid #363a3f;
  display: grid;
  gap: 8px;
  margin: 22px 0 16px;
  padding-top: 15px;
}

.steins-scheduler__request-summary > div {
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.steins-scheduler__request-summary dt,
.steins-scheduler__request-summary dd {
  font-size: 11px;
  margin: 0;
}

.steins-scheduler__request-summary dt { color: #9ba2aa; }
.steins-scheduler__request-summary dd { color: #f0f2f4; text-align: right; }

.steins-scheduler__planner-note {
  border-top: 1px solid #363a3f;
  color: #aeb4bc;
  font-size: 10px;
  line-height: 1.45;
  margin: 0;
  padding-top: 13px;
}

.steins-scheduler__inline-calendar {
  animation: steinsCalendarIn 300ms cubic-bezier(.2, .7, .25, 1) both;
  border-top: 1px solid #363a3f;
  margin: 18px 0 15px;
  padding-top: 16px;
}

.steins-scheduler__inline-calendar-head {
  align-items: center;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 30px;
  margin-bottom: 12px;
}

.steins-scheduler__inline-calendar-head strong { color: #f2f4f6; font-size: 13px; text-align: center; text-transform: capitalize; }

.steins-scheduler__inline-calendar-head button {
  align-items: center;
  background: transparent;
  border: 1px solid #3b4047;
  border-radius: 5px;
  color: #f0f2f4;
  cursor: pointer;
  display: inline-flex;
  font-size: 19px;
  height: 30px;
  justify-content: center;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
  width: 30px;
}

.steins-scheduler__inline-calendar-head button:hover:not(:disabled),
.steins-scheduler__inline-calendar-head button:focus-visible { background: #292d33; border-color: #68717c; outline: none; transform: translateY(-1px); }
.steins-scheduler__inline-calendar-head button:disabled { cursor: default; opacity: .32; }

.steins-scheduler__inline-calendar-weekdays,
.steins-scheduler__inline-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.steins-scheduler__inline-calendar-weekdays { color: #949ca6; font-size: 9px; gap: 3px; margin-bottom: 6px; text-align: center; }
.steins-scheduler__inline-calendar-grid { gap: 4px; }
.steins-scheduler__inline-calendar-empty,
.steins-scheduler__inline-calendar-day { aspect-ratio: 1; min-height: 29px; }

.steins-scheduler__inline-calendar-day {
  background: #22262b;
  border: 1px solid transparent;
  border-radius: 5px;
  color: #e8ebee;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.steins-scheduler__inline-calendar-day.is-available { background: rgba(79,135,205,.24); border-color: rgba(116,166,228,.32); color: #dcecff; }
.steins-scheduler__inline-calendar-day.is-partial { background: rgba(205,151,67,.2); border-color: rgba(222,173,96,.32); color: #fff1d5; }
.steins-scheduler__inline-calendar-day.is-unavailable,
.steins-scheduler__inline-calendar-day.is-closed { background: #1b1e22; color: #656c75; cursor: default; }
.steins-scheduler__inline-calendar-day:hover:not(:disabled),
.steins-scheduler__inline-calendar-day:focus-visible { border-color: #f4f5f6; outline: none; transform: translateY(-1px) scale(1.04); }
.steins-scheduler__inline-calendar-day.is-selected { background: var(--stein-red); border-color: #ff8c83; color: #fff; }

.steins-scheduler__inline-calendar > p { color: #adb4bd; font-size: 10px; line-height: 1.4; margin: 10px 0; min-height: 14px; }
.steins-scheduler__inline-calendar-legend { display: flex; flex-wrap: wrap; gap: 7px 10px; }
.steins-scheduler__inline-calendar-legend span { align-items: center; color: #adb4bd; display: inline-flex; font-size: 9px; gap: 5px; }
.steins-scheduler__inline-calendar-legend i { background: #656c75; border-radius: 50%; height: 6px; width: 6px; }
.steins-scheduler__inline-calendar-legend .is-available { background: #6e9fdd; }
.steins-scheduler__inline-calendar-legend .is-partial { background: #d8a152; }

.steins-scheduler__how-it-works { margin: 52px auto 0; max-width: 940px; text-align: center; }
.steins-scheduler__how-it-works[data-process] { opacity: 0; transform: translateY(16px); transition: opacity 420ms ease, transform 420ms cubic-bezier(.2,.7,.25,1); }
.steins-scheduler__how-it-works[data-process].is-in-view { opacity: 1; transform: translateY(0); }
.steins-scheduler__how-it-works header h3 { font-size: 17px; margin: 0; }
.steins-scheduler__how-it-works header span { background: var(--stein-red); display: block; height: 2px; margin: 10px auto 26px; width: 28px; }
.steins-scheduler__how-it-works ol { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.steins-scheduler__how-it-works li { min-width: 0; position: relative; }
.steins-scheduler__how-it-works[data-process].is-in-view li { animation: steinsProcessItem 360ms ease both; }
.steins-scheduler__how-it-works[data-process].is-in-view li:nth-child(2) { animation-delay: 70ms; }
.steins-scheduler__how-it-works[data-process].is-in-view li:nth-child(3) { animation-delay: 140ms; }
.steins-scheduler__how-it-works[data-process].is-in-view li:nth-child(4) { animation-delay: 210ms; }
.steins-scheduler__how-it-works li:not(:last-child)::after { background: #dadddf; content: ""; height: 1px; left: calc(50% + 31px); position: absolute; right: calc(-50% + 31px); top: 26px; }
.steins-scheduler__process-icon { align-items: center; background: #fff; border: 1px solid #dce0e4; border-radius: 50%; color: #5a616a; display: inline-flex; height: 52px; justify-content: center; margin-bottom: 12px; transition: border-color 160ms ease, color 160ms ease, transform 180ms ease; width: 52px; }
.steins-scheduler__process-icon svg { fill: none; height: 23px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; width: 23px; }
.steins-scheduler__how-it-works strong { display: block; font-size: 12px; }
.steins-scheduler__how-it-works p { color: var(--stein-muted); font-size: 11px; line-height: 1.45; margin: 7px auto 0; max-width: 155px; }
.steins-scheduler__how-it-works li:hover .steins-scheduler__process-icon { border-color: var(--stein-red); color: var(--stein-red); transform: translateY(-3px); }

.steins-scheduler--horizontal .steins-scheduler__footer {
  justify-content: flex-end;
  margin-top: 16px;
}

.steins-scheduler--horizontal .steins-scheduler__status {
  order: -1;
}

.steins-scheduler--horizontal .steins-scheduler__verification {
  justify-content: flex-end;
}

@media (max-width: 820px) {
  .steins-scheduler__service-choices,
  .steins-scheduler--horizontal .steins-scheduler__workspace {
    grid-template-columns: 1fr;
  }

  .steins-scheduler__planner {
    min-height: auto;
  }
}

@media (max-width: 560px) {
  .steins-scheduler__intro { margin-bottom: 18px; }
  .steins-scheduler__intro h2 { font-size: 18px; line-height: 1.38; text-align: left; }
  .steins-scheduler__service-choices { gap: 10px; margin-bottom: 20px; }
  .steins-scheduler__service-choice { gap: 12px; grid-template-columns: 40px minmax(0, 1fr) auto; min-height: 82px; padding: 12px; }
  .steins-scheduler__service-symbol { height: 40px; width: 40px; }
  .steins-scheduler--horizontal .steins-scheduler__progress { margin-bottom: 18px; }
  .steins-scheduler--horizontal .steins-scheduler__progress li { font-size: 9px; gap: 6px; }
  .steins-scheduler--horizontal .steins-scheduler__progress li:not(:last-child)::after { left: calc(50% + 15px); right: calc(-50% + 15px); top: 11px; }
  .steins-scheduler--horizontal .steins-scheduler__progress span { height: 23px; width: 23px; }
  .steins-scheduler--horizontal .steins-scheduler__form-area,
  .steins-scheduler__planner { padding: 17px; }
  .steins-scheduler--horizontal .steins-scheduler__form-area { min-height: 0; }
  .steins-scheduler__calendar-day { font-size: 11px; }
  .steins-scheduler__calendar-legend { gap: 7px 10px; }
  .steins-scheduler__planner .steins-scheduler__slot-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steins-scheduler__inline-calendar-day { font-size: 11px; }
  .steins-scheduler__how-it-works { margin-top: 38px; text-align: left; }
  .steins-scheduler__how-it-works header { text-align: center; }
  .steins-scheduler__how-it-works ol { gap: 18px; grid-template-columns: 1fr 1fr; }
  .steins-scheduler__how-it-works li:not(:last-child)::after { display: none; }
  .steins-scheduler__how-it-works p { margin-left: 0; }
  .steins-scheduler--horizontal .steins-scheduler__footer { align-items: stretch; flex-direction: column; }
  .steins-scheduler--horizontal .steins-scheduler__footer button { justify-content: center; width: 100%; }
  .steins-scheduler__verification { align-items: flex-start; }
  .steins-scheduler__turnstile { min-width: 0; transform-origin: left top; }
}

@media (prefers-reduced-motion: reduce) {
  .steins-scheduler__service-choice,
  .steins-scheduler--horizontal .steins-scheduler__step,
  .steins-scheduler__intro,
  .steins-scheduler--horizontal.is-service-selected .steins-scheduler__progress,
  .steins-scheduler--horizontal.is-service-selected .steins-scheduler__workspace,
  .steins-scheduler--horizontal.is-service-selected .steins-scheduler__footer { animation: none; transition: none; }
  .steins-scheduler__inline-calendar,
  .steins-scheduler__success,
  .steins-scheduler__success-mark,
  .steins-scheduler__success-mark path,
  .steins-scheduler__process-icon,
  .steins-scheduler__how-it-works[data-process],
  .steins-scheduler__how-it-works[data-process].is-in-view li { animation: none; transition: none; }
}

@keyframes steinsBookingReveal {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes steinsBookingSuccess {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes steinsBookingSuccessMark {
  0% { opacity: 0; transform: scale(.65); }
  70% { transform: scale(1.07); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes steinsBookingCheck {
  to { stroke-dashoffset: 0; }
}

@keyframes steinsCalendarIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes steinsProcessItem {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
