/* Shared layout rules: preserve explicit alignment and allow content to shrink. */
.text-start { text-align: start !important; }
.text-end { text-align: end !important; }

main .row > [class*="col-"],
main .card-body,
main .d-flex > * {
    min-width: 0;
}

main .form-control,
main .form-select,
main .table-responsive {
    max-width: 100%;
    min-width: 0;
}
main .table-responsive th { white-space: nowrap; }

main .btn {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

main textarea { resize: vertical; }
main img { max-width: 100%; }

main .chat-window { min-height: 260px; }
main .chat-window .card-header > .d-flex { flex-wrap: wrap; gap: 8px; }
main .chat-window .card-header .btn-link {
    flex: 0 0 36px;
    width: 36px;
    padding: 8px;
    margin-inline-end: 0 !important;
}
main .chat-window .chat-avatar { flex: 0 0 40px; margin-inline-end: 4px !important; }
main .chat-window .avatar-icon { width: 40px; height: 40px; }
main .chat-window .card-header > .d-flex > div:not(.chat-avatar):not(.ms-auto) { flex: 1 1 120px; }
main .chat-window .card-header h5 { font-size: 1.05rem; overflow-wrap: anywhere; }
main .chat-window .card-header .btn-sm { padding: 8px 12px; }
main .chat-window .card-footer form { align-items: center; }
main .chat-window .card-footer input[name="content"] { flex: 1 1 0; width: 0; min-width: 0; }
main .chat-window .card-footer button[type="submit"] {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Lateral entrance animations must not temporarily widen RTL documents. */
main .filters-card { animation-name: layout-filter-reveal; }
@keyframes layout-filter-reveal {
    from { opacity: 0; transform: none; }
    to { opacity: 1; transform: none; }
}

.pioneer-panel .dashboard-page,
.pioneer-panel .schedule-page,
.pioneer-panel .calendar-page,
.pioneer-panel .services-page {
    padding-top: 0;
    min-height: 0;
}

.pioneer-panel .schedule-stats .stat-item { display: block; min-width: 0; }
.pioneer-panel .schedule-stats .stat-item:last-child .stat-number {
    font-size: 1rem;
    overflow-wrap: anywhere;
}

.panel-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 44px;
}

@media (max-width: 575.98px) {
    main .card-body.p-5 { padding: 1.25rem !important; }
    main .steps-indicator .step { min-width: 0; }
    main .steps-indicator .step-label { overflow-wrap: anywhere; }

    main .col-lg-9 > .d-flex.justify-content-between,
    main .col-lg-9 .page-header { flex-wrap: wrap; gap: 12px; }
    main .col-lg-9 > .d-flex.justify-content-between > h2 { flex-basis: 100%; }
    main .col-lg-9 h2 { font-size: 1.5rem; }

    main .booking-steps { flex-wrap: wrap; gap: 8px; }
    main .booking-steps .step {
        flex: 1 1 calc(50% - 8px);
        min-width: 0;
        padding: 10px 12px;
        gap: 6px;
    }
    main .booking-steps .step-number { flex-shrink: 0; }

    main .review-page .review-card { padding: 20px; }
    main .review-page .rating-row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    main .review-page .rating-row > .d-flex { width: 100%; gap: 8px !important; }
    main .review-page .star-rating { flex: 1; min-width: 0; justify-content: space-between; gap: 0; }
    main .review-page .star-rating label { font-size: 1.125rem; }

    .pioneer-panel .calendar-card { padding: 16px; }
    .pioneer-panel .calendar-header { flex-wrap: wrap; gap: 12px; align-items: flex-start; }
    .pioneer-panel .calendar-header h2 { font-size: 1.5rem; line-height: 1.4; }
    .pioneer-panel .bulk-actions { flex-wrap: wrap; }
    .pioneer-panel .btn-bulk { flex: 1 1 6rem; padding: 10px 12px; }
    .pioneer-panel .time-selector { flex-wrap: wrap; width: 100%; }
    .pioneer-panel .time-selector label { flex-basis: 100%; }
    .pioneer-panel .time-input { flex: 1 1 90px; width: 90px; min-width: 0; }
    .pioneer-panel .calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
    .pioneer-panel .day-header { padding: 8px 0; font-size: 0.75rem; }
    .pioneer-panel .day-cell { min-height: 56px; padding: 4px 0; }
    .pioneer-panel .day-number { font-size: 0.9rem; }
    .pioneer-panel .day-time { font-size: 0.55rem; overflow-wrap: anywhere; }
}

@media (max-width: 991.98px) {
    main .chat-window { height: calc(100dvh - 290px) !important; }
}
