/* Stacked garage owner alerts (trial / billing / tax): one row per notification, subtle divider */
.garage-top-notifications .garage-top-notification-row + .garage-top-notification-row {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Quotes / Invoices: tall enough panel so few rows still leave space for full action dropdowns */
.garage-datatable-panel {
    min-height: clamp(24rem, 52vh, 40rem);
    padding-bottom: 1.5rem;
}

.fc-timegrid-event {
    cursor: pointer;
}

/* Appointments calendar: shade time outside garage opening hours (FullCalendar businessHours / fc-non-business) */
.fc .fc-timegrid .fc-non-business {
    background: rgba(15, 23, 42, 0.07);
}

/* _LayoutApp: align logo display with public landing sizing */
body.layout-app {
    --ct-logo-lg-height: 68px;
    --ct-logo-sm-height: 60px;
}

/* Topbar logos (_LayoutPublic, _LayoutApp navbar) */
body.layout-app .navbar-custom .logo-box .logo-lg {
    height: 68px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

body.layout-app .navbar-custom .logo-box .logo-sm {
    height: 60px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

/* _LayoutPublic and other pages using navbar: same as landing sizing */
body:not(.layout-app) .navbar-custom .logo-box .logo-lg {
    height: 68px;
    width: auto;
}

body:not(.layout-app) .navbar-custom .logo-box .logo-sm {
    height: 60px;
    width: auto;
}

/* Quote/invoice totals: label column right-aligned (colon alignment), values right-aligned; gap between columns */
.totals-summary-grid {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 5px;
    justify-items: end;
    align-items: baseline;
    row-gap: 0.25rem;
}

/* In-app documentation: anchor links scroll below fixed topbar */
.documentation-page section[id] {
    scroll-margin-top: 5.5rem;
}
.documentation-page .doc-toc ul {
    padding-left: 1.25rem;
    margin-bottom: 0;
}
.documentation-page .doc-toc li {
    margin-bottom: 0.35rem;
}

/* Vehicle details modal: seven equal columns from md up; stack on small screens */
#car-details-modal .row-cars-detail-vehicle > .col {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
}
@media (min-width: 768px) {
    #car-details-modal .row-cars-detail-vehicle > .col {
        flex: 0 0 auto;
        width: 14.285714285714286%;
        max-width: 14.285714285714286%;
    }
}

/* Cars list: fixed layout; column % widths in cars.js (narrower Odometer, Email, Phone, dates, Actions vs equal split) */
#cars-datatable {
    table-layout: fixed;
    width: 100% !important;
}

#cars-datatable .cars-col-engine {
    overflow: hidden;
    word-break: break-word;
}

#cars-datatable .cars-col-email {
    overflow: hidden;
    word-break: break-word;
}

#cars-datatable .cars-col-actions {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

#cars-datatable .cars-col-actions .btn {
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

/* Car details modal: minimum tab area height so switching tabs does not resize the dialog sharply */
#car-details-modal .modal-dialog .modal-body > #car-details-content .tab-content {
    min-height: min(52vh, 32rem);
}

/* Car details — Appointments tab: wider date & time columns for localized strings */
#car-details-modal #car-details-appt-table th:nth-child(1),
#car-details-modal #car-details-appt-table td:nth-child(1) {
    min-width: 8rem;
    width: 15.36%;
    white-space: nowrap;
}

#car-details-modal #car-details-appt-table th:nth-child(2),
#car-details-modal #car-details-appt-table td:nth-child(2) {
    min-width: 3.6rem;
    width: 6.4%;
    white-space: nowrap;
}