/* Final mobile polish for the app-like booking experience. */

.date-badge {
  min-height: 28px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 1;
}

.slot.is-selected {
  border-width: 2px;
  border-color: #4f7fff;
  box-shadow: 0 0 0 1px rgba(91, 141, 255, .18), 0 8px 18px rgba(37, 99, 235, .10);
}

.slot.is-selected .slot-cancel,
.slot-cancel.is-selected,
.slot-cancel:disabled {
  display: none;
}

.slot.is-selected .slot-status {
  font-size: 13px;
  padding: 5px 12px;
}

.slot-cancel {
  font-size: 14px;
  min-height: 42px;
}

@media (max-width: 760px) {
  .hero {
    padding: 18px 18px 16px;
  }

  .hero .eyebrow {
    font-size: 10px;
    line-height: 1.2;
    margin-bottom: 4px;
  }

  .hero h1 {
    font-size: 28px;
    line-height: 1.05;
    margin-bottom: 4px;
  }

  .hero p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.3;
    max-width: 340px;
  }

  .layout {
    padding-top: 12px;
  }

  .app-calendar-card {
    padding: 16px;
  }

  .visual-calendar {
    margin-top: 10px;
  }

  .calendar-label-row {
    gap: 8px;
    font-size: 13px;
  }

  .date-badge {
    min-height: 26px;
    padding: 0 8px;
    font-size: 11px;
  }

  .slot {
    min-height: 86px;
    padding: 14px 16px;
  }

  .slot.is-selected {
    min-height: 82px;
    padding: 14px 16px;
  }

  .slot-time {
    font-size: 21px;
    line-height: 1.15;
  }

  .slot-cancel {
    min-width: 106px;
    min-height: 40px;
    padding: 0 14px;
  }
}

@media (prefers-color-scheme: dark) {
  .slot.is-selected {
    border-color: #5b8dff;
    box-shadow: 0 0 0 1px rgba(91, 141, 255, .18), 0 8px 18px rgba(0, 0, 0, .18);
  }
}
