/* Mobile and responsive helpers for Catering Day Book */

body {
    overflow-x: hidden;
}

/* Layout padding */
@media (max-width: 1200px) {
    .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* Sidebar collapse and card spacing */
@media (max-width: 991px) {
    .navbar-brand {
        font-size: 20px;
    }
    .page-title {
        font-size: 22px;
    }
    .content-wrapper {
        margin-left: 0 !important;
        padding: 15px !important;
    }
    .sidebar {
        left: -260px;
        transition: left .3s ease;
    }
    .sidebar-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.45);
        opacity: 0;
        visibility: hidden;
        transition: opacity .25s ease, visibility .25s ease;
        z-index: 1500;
    }
    .sidebar-overlay.active {
        opacity: 1;
        visibility: visible;
    }
    .sidebar.show {
        left: 0;
        box-shadow: 0 10px 30px rgba(0,0,0,.18);
    }
    .sidebar-menu a {
        padding: 12px 16px;
    }
    .sidebar-header {
        padding: 20px;
    }
    .sidebar-header h4 {
        font-size: 1.05rem;
    }
}

/* Tablet and smaller */
@media (max-width: 768px) {
    .page-title {
        font-size: 20px;
    }
    .btn {
        min-height: 44px;
        font-size: .95rem;
    }
    .btn-sm {
        padding: .7rem 1rem;
    }
    .table-responsive {
        font-size: .92rem;
    }
    .card-body {
        padding: 1rem;
    }
    .card {
        margin-bottom: 20px;
    }
    .sidebar-menu a {
        font-size: .95rem;
    }
    .sidebar-header small {
        display: none;
    }
    .mobile-card-list .btn-icon {
        width: 40px;
        height: 40px;
        min-width: 40px;
        padding: 0;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 1rem;
    }
    .mobile-card-list .btn-icon i {
        font-size: 1.1rem;
    }
    .mobile-card-list .mobile-action-group {
        display: flex;
        gap: .5rem;
        justify-content: space-between;
        flex-wrap: wrap;
    }
}

/* Mobile phones */
@media (max-width: 576px) {
    .container,
    .container-fluid,
    .content-wrapper,
    .main-content {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .navbar {
        padding: 0 .5rem;
    }
    .page-title {
        font-size: 18px;
    }
    .card {
        margin-left: -8px;
        margin-right: -8px;
        border-radius: 16px;
    }
    .card-body {
        padding: .95rem !important;
    }
    .row.g-4,
    .row.g-3,
    .row.g-2 {
        gap: .75rem;
    }
    .col,
    [class*="col-"] {
        padding-left: 4px;
        padding-right: 4px;
    }
    .table-responsive {
        font-size: .9rem;
        margin-left: -8px;
        margin-right: -8px;
        padding-left: 8px;
        padding-right: 8px;
    }
    .table-responsive table th,
    .table-responsive table td {
        padding: .55rem .65rem;
    }
    .btn {
        min-height: 44px;
        font-size: .95rem;
        padding: .85rem 1rem;
    }
    .btn-sm {
        padding: .75rem 1rem;
    }
    .form-control,
    .form-select,
    .form-check-input {
        min-height: calc(1.5em + .75rem + 2px);
    }
    .sidebar {
        width: 260px;
    }
    .sidebar-menu a {
        padding: 10px 14px;
    }
    .content-wrapper {
        padding: 8px !important;
    }
    .dashboard-stat {
        padding: 18px;
    }
}

/* Small tablet and phone width */
@media (max-width: 768px) {
    .container,
    .container-fluid,
    .content-wrapper,
    .main-content {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .card {
        margin-left: -8px;
        margin-right: -8px;
    }
    .card-body {
        padding: 1rem !important;
    }
    .row.g-4,
    .row.g-3,
    .row.g-2 {
        gap: .75rem;
    }
    .col,
    [class*="col-"] {
        padding-left: 4px;
        padding-right: 4px;
    }
    .table-responsive {
        margin-left: -8px;
        margin-right: -8px;
        padding-left: 8px;
        padding-right: 8px;
    }
    .table-responsive table th,
    .table-responsive table td {
        padding: .65rem .7rem;
    }
    .btn {
        min-height: 44px;
        padding: .8rem 1rem;
    }
    .btn-sm {
        padding: .7rem 1rem;
    }
    .content-wrapper {
        padding: 8px !important;
    }
}

/* Table columns hidden on smaller screens */
@media (max-width: 768px) {
    .table-responsive .d-none-md {
        display: none !important;
    }
}

.table-responsive table {
    min-width: 100%;
    width: 100%;
    table-layout: auto; /* allow natural column widths */
}

.table-responsive th,
.table-responsive td {
    white-space: normal;
    /* Use standard wrapping rules: do not force character-level breaks */
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (max-width: 576px) {
    .table-responsive .d-flex {
        flex-direction: column !important;
    }
    .table-responsive .btn {
        width: 100% !important;
    }
    .table-responsive .btn + .btn {
        margin-top: .5rem !important;
    }
}
