/* Auto-extracted from template: public/public_add_reservation.html */

/* Wrap long texts (emails, notes) cleanly on small screens */
    .text-break-anywhere {
      overflow-wrap: anywhere;
      word-break: break-word;
    }

    /* Info cards row: wrap on mobile, equal width on larger screens */
    .info-row {
      display: flex;
      flex-wrap: wrap;
      gap: .5rem;
      margin-top: 1rem;
    }
    .info-row .card {
      flex: 1 1 240px;
      min-width: 0;
    }
    /* instead of :has(), hide empty bodies */
    .info-row .card .card-body:empty { display: none; }

    /* Compact headings on phones */
    @media (max-width: 575.98px) {
      .card-header h1,
      .card-header h2 {
        font-size: 1.25rem;
      }
    }

    form p {
      margin-bottom: 0.5rem !important;
    }

    /* Make selects/inputs full width on phones, grid on md+ */
    .form-grid .col-md-3,
    .form-grid .col-md-4 {
      margin-bottom: .5rem;
    }

    /* Weekly schedule: turn table into labeled cards on phones */
    .schedule-table thead th {
      white-space: nowrap;
    }
    @media (max-width: 575.98px) {
      .schedule-table thead {
        display: none;
      }
      .schedule-table tbody tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .5rem .75rem;
        padding: .5rem .25rem;
        border-top: 1px solid var(--bs-border-color);
      }
      .schedule-table td {
        display: flex;
        flex-direction: column;
        text-align: left !important;
      }
      .schedule-table td::before {
        content: attr(data-label);
        font-size: .8rem;
        font-weight: 600;
        color: var(--bs-secondary-color);
        margin-bottom: .25rem;
      }
      .schedule-table td[colspan] {
        grid-column: 1 / -1;
      }
    }

    /* Buttons expand on phones, auto on md+ */
    .btn-w-mobile {
      width: 100%;
    }
    @media (min-width: 768px) {
      .btn-w-mobile {
        width: auto;
      }
    }
