body {
    background: #f4f6f8;
}

.navbar-brand {
    letter-spacing: .2px;
}

.stat-card {
    height: 100%;
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 .125rem .5rem rgba(0,0,0,.05);
    padding: 1rem;
}

.stat-label {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6c757d;
}

.stat-value {
    font-size: clamp(1.35rem, 4vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
    margin-top: .25rem;
}

.stat-sub {
    color: #6c757d;
    font-size: .86rem;
    margin-top: .2rem;
}

.pay-card .stat-value {
    font-size: clamp(2rem, 6vw, 3rem);
}

.card,
.form-control,
.form-select,
.btn,
.input-group-text,
.progress {
    border-radius: .35rem;
}

@media (max-width: 575.98px) {
    .container {
        padding-left: .75rem;
        padding-right: .75rem;
    }

    .stat-card {
        padding: .85rem;
    }

    .table {
        font-size: .88rem;
    }
}


.location-results {
    z-index: 1050;
    max-height: 240px;
    overflow-y: auto;
    display: none;
}

.location-results.show {
    display: block;
}

.movement-row {
    background: #fafafa;
}


.dashboard-hero {
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 .125rem .5rem rgba(0,0,0,.04);
    padding: 1rem;
}

.dashboard-section {
    margin-bottom: 1rem;
}

.dashboard-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6c757d;
    margin-bottom: .65rem;
}

.detail-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
    margin-bottom: .15rem;
}

.detail-value {
    font-size: 1.05rem;
    font-weight: 600;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.summary-row:last-child {
    border-bottom: 0;
}

.pay-total {
    font-size: 2rem;
    font-weight: 800;
}

.route-list {
    padding: 0;
}

.route-item {
    display: flex;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.route-item:last-child {
    border-bottom: 0;
}

.route-number {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    border-radius: 50%;
    background: #212529;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.route-content {
    flex: 1;
}

.route-location {
    display: flex;
    flex-direction: column;
}

.route-label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
    font-weight: 700;
}

.route-arrow {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: #6c757d;
    font-size: .85rem;
    padding: .4rem 0;
}

@media (max-width: 575.98px) {
    .dashboard-hero {
        padding: .85rem;
    }

    .dashboard-hero .btn {
        flex: 1;
    }

    .route-item {
        padding: .9rem;
    }
}


/* ==========================================================
   V2.3.0 UI REFRESH
   ========================================================== */

:root {
    --hgv-navy: #0b1f3a;
    --hgv-navy-dark: #07172c;
    --hgv-navy-soft: #18385f;
    --hgv-bg: #f4f6f8;
    --hgv-panel: #ffffff;
    --hgv-border: #d9dee5;
    --hgv-muted: #667085;
    --hgv-footer: #d9dde2;
    --hgv-footer-text: #394150;
}

/* Square-corner design language */
*,
*::before,
*::after {
    border-radius: 0 !important;
}

html,
body {
    min-height: 100%;
}

body {
    background: var(--hgv-bg);
    color: #1f2937;
}

.app-navbar {
    background: linear-gradient(180deg, var(--hgv-navy) 0%, var(--hgv-navy-dark) 100%);
    border-bottom: 3px solid var(--hgv-navy-soft);
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}

.app-navbar .navbar-brand {
    letter-spacing: .01em;
}

.app-navbar .nav-link {
    font-weight: 600;
    padding-left: .85rem;
    padding-right: .85rem;
}

.app-navbar .nav-link.active,
.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus {
    background: rgba(255,255,255,.08);
}

.app-navbar .dropdown-menu {
    border: 1px solid rgba(0,0,0,.12);
    box-shadow: 0 .4rem 1rem rgba(0,0,0,.12);
    padding: .35rem 0;
}

.app-navbar .dropdown-item {
    padding: .6rem .9rem;
}

.app-navbar .dropdown-item:hover,
.app-navbar .dropdown-item:focus {
    background: #eef2f6;
}

.card,
.stat-card,
.dashboard-hero {
    border: 1px solid var(--hgv-border) !important;
    box-shadow: 0 1px 4px rgba(16,24,40,.06) !important;
    background: var(--hgv-panel);
}

.card-header {
    border-bottom: 1px solid var(--hgv-border);
    background: #f8fafc !important;
    padding: .8rem 1rem;
}

.card-body {
    padding: 1rem;
}

.stat-card {
    padding: 1rem;
    min-height: 100%;
}

.stat-label {
    color: var(--hgv-muted);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.stat-value {
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.15;
    margin-top: .25rem;
    color: #182230;
}

.stat-sub {
    color: var(--hgv-muted);
    font-size: .8rem;
    margin-top: .25rem;
}

.dashboard-section-title {
    border-left: 4px solid var(--hgv-navy);
    padding-left: .65rem;
    color: #344054;
    margin-top: .25rem;
    margin-bottom: .75rem;
}

.dashboard-hero {
    padding: 1rem 1.1rem;
}

.btn {
    font-weight: 600;
}

.btn-primary {
    background: var(--hgv-navy);
    border-color: var(--hgv-navy);
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--hgv-navy-dark);
    border-color: var(--hgv-navy-dark);
}

.btn-outline-primary {
    color: var(--hgv-navy);
    border-color: var(--hgv-navy);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: var(--hgv-navy);
    border-color: var(--hgv-navy);
}

.form-control,
.form-select,
.input-group-text {
    border-color: #cfd6df;
    min-height: 42px;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--hgv-navy-soft);
    box-shadow: 0 0 0 .18rem rgba(24,56,95,.12);
}

.form-label {
    font-weight: 650;
    color: #344054;
}

.form-text {
    color: #7b8492;
}

.table {
    --bs-table-bg: transparent;
}

.table thead th {
    background: #eef2f6;
    color: #475467;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 1px solid #d5dbe3;
    white-space: nowrap;
}

.table > :not(caption) > * > * {
    padding: .75rem .85rem;
    border-color: #e4e8ee;
}

.table-hover > tbody > tr:hover > * {
    background: #f8fafc;
}

.badge {
    font-weight: 700;
    padding: .45em .65em;
}

.alert {
    border-width: 0 0 0 4px;
    box-shadow: none;
}

.modal-content {
    border: 1px solid var(--hgv-border);
    box-shadow: 0 1rem 2.5rem rgba(0,0,0,.18);
}

.modal-header {
    background: #f8fafc;
    border-bottom: 1px solid var(--hgv-border);
}

.modal-footer {
    background: #f8fafc;
    border-top: 1px solid var(--hgv-border);
}

.route-number {
    background: var(--hgv-navy);
}

.detail-label {
    color: var(--hgv-muted);
}

.summary-row {
    border-color: #e3e7ec;
}

.pay-total {
    color: var(--hgv-navy);
}

.app-footer {
    background: var(--hgv-footer);
    color: var(--hgv-footer-text);
    border-top: 1px solid #c5cbd3;
}

.container {
    max-width: 1320px;
}

/* Force square corners on Bootstrap components */
.card,
.btn,
.form-control,
.form-select,
.input-group-text,
.dropdown-menu,
.dropdown-item,
.list-group,
.list-group-item,
.alert,
.badge,
.modal-content,
.navbar-toggler,
.route-number {
    border-radius: 0 !important;
}

@media (max-width: 767.98px) {
    .app-navbar .navbar-collapse {
        padding-top: .65rem;
    }

    .app-navbar .dropdown-menu {
        background: rgba(255,255,255,.04);
        border-color: rgba(255,255,255,.08);
        box-shadow: none;
    }

    .app-navbar .dropdown-item {
        color: rgba(255,255,255,.88);
        padding-left: 1.4rem;
    }

    .app-navbar .dropdown-item:hover,
    .app-navbar .dropdown-item:focus {
        background: rgba(255,255,255,.07);
        color: #fff;
    }

    .stat-card {
        padding: .85rem;
    }

    .stat-value {
        font-size: 1.4rem;
    }

    .table > :not(caption) > * > * {
        padding: .65rem .7rem;
    }
}


/* V2.3.1 Recent Shifts dashboard refinement */

.recent-shifts-section {
    margin-top: 2rem;
}

.recent-shifts-list {
    background: #fff;
}

.recent-shift-row {
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #e4e8ee;
}

.recent-shift-row:last-child {
    border-bottom: 0;
}

.recent-shift-row:hover {
    background: #f8fafc;
}

.recent-shift-date {
    color: #172b4d;
    font-size: 1rem;
    font-weight: 800;
}

.recent-shift-date:hover {
    color: var(--hgv-navy);
}

.recent-shift-meta {
    color: var(--hgv-muted);
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    font-size: .85rem;
}

.recent-shift-mobile-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.recent-shift-mobile-stats span {
    background: #eef2f6;
    border: 1px solid #d9dee5;
    padding: .3rem .45rem;
    font-size: .8rem;
    font-weight: 700;
    color: #475467;
}

.recent-shift-card .card-body {
    padding: .9rem;
}

@media (max-width: 767.98px) {
    .recent-shifts-section {
        margin-top: 1.5rem;
    }
}


/* V2.3.3 Shift History layout */

.shift-history-list {
    background: #fff;
}

.shift-history-row {
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid #e4e8ee;
}

.shift-history-row:last-child {
    border-bottom: 0;
}

.shift-history-row:hover {
    background: #f8fafc;
}

.shift-history-date {
    color: #172b4d;
    font-size: 1rem;
    font-weight: 800;
}

.shift-history-date:hover {
    color: var(--hgv-navy);
}

.shift-history-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    color: var(--hgv-muted);
    font-size: .85rem;
}

.shift-history-actions {
    min-width: max-content;
}

.shift-history-mobile-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.shift-history-mobile-stats span {
    background: #eef2f6;
    border: 1px solid #d9dee5;
    color: #475467;
    font-size: .8rem;
    font-weight: 700;
    padding: .35rem .5rem;
}

.shift-history-mobile-details {
    display: grid;
    gap: .4rem;
}

.shift-history-mobile-details > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid #edf0f3;
    padding-bottom: .35rem;
}

.shift-history-mobile-details > div:last-child {
    border-bottom: 0;
}

.shift-history-card .card-body {
    padding: 1rem;
}


/* V2.3.4 final polish */

.page-header {
    border-bottom: 1px solid #dbe1e8;
    padding-bottom: 1rem;
}

.page-kicker {
    color: #6b7280;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    margin-bottom: .15rem;
}

.page-description {
    color: #667085;
    font-size: .92rem;
}

.dashboard-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.quick-action {
    background: #fff;
    border: 1px solid #d9dee5;
    color: #25364d;
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .8rem .9rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 1px 3px rgba(16,24,40,.04);
}

.quick-action i {
    color: var(--hgv-navy);
    width: 1.1rem;
    text-align: center;
}

.quick-action:hover {
    background: #f8fafc;
    border-color: #bfc8d4;
    color: var(--hgv-navy);
}

.empty-state {
    text-align: center;
    padding: 2rem 1rem;
    color: #667085;
}

.empty-state i {
    display: block;
    color: #98a2b3;
    font-size: 1.8rem;
    margin-bottom: .65rem;
}

.empty-state h3 {
    color: #344054;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: .25rem;
}

.empty-state p {
    margin: 0 auto .85rem;
    max-width: 34rem;
    font-size: .88rem;
}

.settings-section-title {
    border-left: 4px solid var(--hgv-navy);
    color: #344054;
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: .03em;
    padding-left: .65rem;
    text-transform: uppercase;
}

/* Location category badges */
.badge-category-branch {
    background: #dbeafe;
    color: #1e3a8a;
}

.badge-category-customer {
    background: #dcfce7;
    color: #166534;
}

.badge-category-parking {
    background: #e5e7eb;
    color: #374151;
}

.badge-category-port {
    background: #cffafe;
    color: #155e75;
}

.badge-category-dealer {
    background: #fef3c7;
    color: #92400e;
}

.badge-category-workshop {
    background: #fee2e2;
    color: #991b1b;
}

.badge-category-storage {
    background: #ede9fe;
    color: #5b21b6;
}

.badge-category-other {
    background: #f3f4f6;
    color: #4b5563;
}

@media (max-width: 767.98px) {
    .dashboard-quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .quick-action {
        padding: .75rem;
    }

    .page-header {
        padding-bottom: .85rem;
    }

    .app-footer .container {
        text-align: center;
    }
}


/* V2.3.5 sticky footer / application shell */

.app-main {
    width: 100%;
    padding-bottom: 3rem;
}

.app-footer {
    margin-top: auto;
    flex-shrink: 0;
}


/* V2.3.6 compliance disclosure + statistics breakdown */

.compliance-disclosure {
    background: #eef2f6;
    border-left: 4px solid var(--hgv-navy);
    padding: 1rem 1.1rem;
}

.compliance-disclosure-title {
    color: #344054;
    font-weight: 800;
    margin-bottom: .65rem;
}

.stats-breakdown-section {
    margin-top: .25rem;
}

.stats-shift-list {
    background: #fff;
}

.stats-shift-row {
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid #e4e8ee;
}

.stats-shift-row:last-child {
    border-bottom: 0;
}

.stats-shift-row:hover {
    background: #f8fafc;
}

.stats-shift-date {
    color: #172b4d;
    font-size: 1rem;
    font-weight: 800;
}

.stats-shift-date:hover {
    color: var(--hgv-navy);
}

.stats-shift-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    color: var(--hgv-muted);
    font-size: .85rem;
}

.stats-shift-pay {
    min-width: 9rem;
}

.stats-shift-pay .h4 {
    color: var(--hgv-navy);
    font-weight: 800;
}

.stats-shift-mobile-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.stats-shift-mobile-stats span {
    background: #eef2f6;
    border: 1px solid #d9dee5;
    color: #475467;
    font-size: .8rem;
    font-weight: 700;
    padding: .35rem .5rem;
}

.stats-mobile-pay {
    color: var(--hgv-navy);
    font-size: 1.05rem;
}

.stats-shift-card .card-body {
    padding: 1rem;
}

/* V2.4.0 payroll timesheet preview */
.timesheet-paper{background:#fff;border:1px solid #cfd6df;padding:1rem;box-shadow:0 1px 4px rgba(16,24,40,.06)}
.timesheet-logo{width:250px;max-width:45%;height:58px;object-fit:contain;object-position:left center}
.timesheet-title{text-align:center;text-decoration:underline;font-size:1.45rem;font-weight:800;margin:.2rem 0 1rem}
.timesheet-driver-grid{display:grid;grid-template-columns:130px 1fr 85px 1fr 70px 1fr;border:1px solid #222;margin-bottom:1rem}
.timesheet-driver-grid>div{padding:.4rem .55rem;border-right:1px solid #222}.timesheet-driver-grid>div:last-child{border-right:0}
.ts-label{font-weight:800;text-decoration:underline;background:#f7f7f7}.ts-value{text-align:center;font-weight:700}
.timesheet-table{width:100%;min-width:1000px;border-collapse:collapse;table-layout:fixed}
.timesheet-table th,.timesheet-table td{border:1px solid #222;text-align:center;padding:.25rem;height:58px}
.timesheet-table th{font-size:.78rem}.timesheet-table th small{font-style:italic;text-decoration:none}
.timesheet-table input{width:100%;height:100%;border:0;background:transparent;text-align:center;padding:.2rem;font-size:.8rem}
.timesheet-table input:focus{outline:2px solid var(--hgv-navy-soft);background:#f8fafc}
.timesheet-signoff{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem;font-size:.85rem}
.timesheet-mobile-note{text-align:right;color:#2929a3;font-weight:700;font-size:.75rem;margin:.25rem 0 .6rem}
.timesheet-approval{border:1px solid #222;padding:.45rem .55rem;display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:.75rem;font-size:.8rem}.timesheet-approval strong{grid-column:1/-1;text-decoration:underline}
@media(max-width:767.98px){.timesheet-paper{padding:.65rem}.timesheet-logo{max-width:70%}.timesheet-title{font-size:1.05rem}.timesheet-driver-grid{grid-template-columns:95px 1fr}.timesheet-driver-grid>div{border-bottom:1px solid #222}.timesheet-signoff{flex-direction:column}.timesheet-mobile-note{text-align:left}}


/* V2.4.2 timesheet visual refinement */
.timesheet-paper{
    padding:.8rem;
}
.timesheet-logo{
    width:275px;
    height:60px;
    max-width:46%;
}
.timesheet-title{
    font-size:1.35rem;
    margin:.1rem 0 .75rem;
}
.timesheet-driver-grid{
    grid-template-columns:120px 1.55fr 85px 1.25fr 70px 1fr;
    margin-bottom:.7rem;
}
.timesheet-driver-grid>div{
    padding:.32rem .5rem;
    min-height:36px;
    display:flex;
    align-items:center;
}
.timesheet-table th,
.timesheet-table td{
    height:48px;
    padding:.18rem;
}
.timesheet-table th{
    font-size:.75rem;
    line-height:1.15;
}
.timesheet-table input{
    font-size:.78rem;
}
.timesheet-signoff{
    margin-top:.55rem;
    font-size:.8rem;
}
.timesheet-mobile-note{
    margin:.15rem 0 .45rem;
    font-size:.7rem;
}
.timesheet-approval{
    padding:.35rem .45rem;
    font-size:.75rem;
}


/* V2.4.3 timesheet preview rebuilt as an A4-style form */
.timesheet-preview-frame{
    background:#e9edf2;
    border:1px solid #cfd6df;
    padding:1rem;
    overflow-x:auto;
}

.timesheet-paper{
    width:1120px;
    min-height:705px;
    margin:0 auto;
    background:#fff;
    border:1px solid #aeb7c2;
    box-shadow:0 3px 12px rgba(16,24,40,.12);
    padding:14px 16px 12px;
}

.timesheet-logo-row{
    min-height:42px;
}

.timesheet-logo-panel{
    display:inline-flex;
    align-items:center;
    background:var(--hgv-navy);
    padding:4px 9px;
}

.timesheet-logo{
    display:block;
    width:255px;
    max-width:none;
    height:38px;
    object-fit:contain;
    object-position:left center;
}

.timesheet-title{
    text-align:center;
    text-decoration:underline;
    font-size:1.22rem;
    font-weight:800;
    margin:-2px 0 .55rem;
}

.timesheet-driver-grid{
    display:grid;
    grid-template-columns:110px 1.55fr 76px 1.25fr 64px 1fr;
    border:1px solid #222;
    margin-bottom:.5rem;
}

.timesheet-driver-grid>div{
    min-height:30px;
    padding:.25rem .45rem;
    border-right:1px solid #222;
    display:flex;
    align-items:center;
}

.timesheet-driver-grid>div:last-child{
    border-right:0;
}

.ts-label{
    font-weight:800;
    text-decoration:underline;
    background:#fafafa;
}

.ts-value{
    justify-content:center;
    text-align:center;
    font-weight:700;
}

.timesheet-table{
    width:100%;
    min-width:0;
    border-collapse:collapse;
    table-layout:fixed;
}

.timesheet-table th,
.timesheet-table td{
    border:1px solid #222;
    text-align:center;
    vertical-align:middle;
    padding:.12rem .18rem;
}

.timesheet-table th{
    height:46px;
    font-size:.68rem;
    line-height:1.1;
}

.timesheet-table td{
    height:43px;
}

.timesheet-table th:nth-child(1){width:6%}
.timesheet-table th:nth-child(2){width:8%}
.timesheet-table th:nth-child(3),
.timesheet-table th:nth-child(5){width:8%}
.timesheet-table th:nth-child(4),
.timesheet-table th:nth-child(6){width:20.5%}
.timesheet-table th:nth-child(7),
.timesheet-table th:nth-child(8){width:9.5%}
.timesheet-table th:nth-child(9){width:10%}

.timesheet-table input{
    width:100%;
    height:30px;
    border:1px solid #b8c0ca;
    background:#fff;
    text-align:center;
    padding:.15rem .2rem;
    font-size:.72rem;
}

.timesheet-table input:focus{
    outline:2px solid rgba(11,31,58,.25);
    border-color:var(--hgv-navy);
}

.timesheet-signoff{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    margin-top:.45rem;
    font-size:.74rem;
}

.timesheet-mobile-note{
    text-align:right;
    color:#24299a;
    font-weight:700;
    font-size:.64rem;
    margin:.1rem 0 .35rem;
}

.timesheet-approval{
    border:1px solid #222;
    padding:.3rem .45rem;
    display:grid;
    grid-template-columns:1.2fr 1.2fr 1fr;
    gap:.6rem;
    font-size:.7rem;
}

.timesheet-approval strong{
    grid-column:1/-1;
    text-decoration:underline;
}

.timesheet-form-version{
    margin-top:.35rem;
    text-align:center;
    font-size:.62rem;
    color:#555;
}

@media(max-width:767.98px){
    .timesheet-preview-frame{
        padding:.5rem;
    }

    .timesheet-paper{
        margin:0;
    }
}


/* V2.4.4 timesheet typography */
.timesheet-table th{
    font-weight:800;
}

.timesheet-table td.timesheet-day{
    font-weight:800;
}


/* V2.4.7 shift defect indicators and mobile list cards */
.shift-defect-indicator{
    display:inline-flex;
    align-items:center;
    gap:.2rem;
    margin-left:.4rem;
    color:#b54708;
    font-size:.78rem;
    font-weight:800;
    vertical-align:middle;
}
.shift-defect-indicator i{font-size:.8rem}
.defect-mobile-card .badge,
.location-mobile-card .badge{width:max-content}
@media(max-width:767.98px){
    .defect-mobile-card .card-body,
    .location-mobile-card .card-body{padding:.95rem}
}


/* V2.4.8 vehicle editor / defect emphasis / quick-action counts */

.shift-defects-card{
    border-left:4px solid #d97706 !important;
}

.shift-defects-header{
    background:#fff7ed !important;
    color:#92400e;
    border-bottom:1px solid #fed7aa;
}

.shift-defects-count{
    background:#d97706;
    color:#fff;
}

.shift-defect-item{
    padding:.8rem .85rem;
    margin-bottom:.75rem;
    border-left:3px solid #d97706;
    background:#fffbeb;
}

.shift-defect-item:last-child{
    margin-bottom:0;
}

.shift-defect-item.is-open{
    border-left-color:#b42318;
    background:#fff4f2;
}

.shift-defect-item.is-resolved{
    border-left-color:#16803a;
    background:#f0fdf4;
}

.defect-status-pill{
    display:inline-block;
    padding:.25rem .45rem;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.defect-status-pill.open{
    background:#fee4e2;
    color:#b42318;
}

.defect-status-pill.resolved{
    background:#dcfae6;
    color:#16703a;
}

.quick-action{
    position:relative;
}

.quick-action-count{
    margin-left:auto;
    min-width:1.7rem;
    padding:.15rem .4rem;
    background:#e9eef4;
    color:#344054;
    font-size:.72rem;
    font-weight:800;
    text-align:center;
}

.quick-action.has-warning .quick-action-count{
    background:#fff0db;
    color:#b54708;
}

.quick-action.has-warning i{
    color:#b54708;
}

/* V2.5.0 Calendar + Timesheet History */
.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:1rem}.calendar-legend{display:flex;flex-wrap:wrap;gap:.8rem 1.1rem;color:#667085;font-size:.82rem}.calendar-legend span{display:inline-flex;align-items:center;gap:.35rem}.calendar-dot{width:.7rem;height:.7rem;display:inline-block;border:1px solid rgba(0,0,0,.1)}
.calendar-shift-green{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important}.calendar-shift-amber{background:#fef3c7!important;color:#92400e!important;border-color:#fbbf24!important}.calendar-shift-blue{background:#dbeafe!important;color:#1e3a8a!important;border-color:#93c5fd!important}.calendar-shift-combined{background:#ede9fe!important;color:#5b21b6!important;border-color:#c4b5fd!important}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.calendar-week-day{background:#fff;border:1px solid #d9dee5;min-height:260px}.calendar-week-day.is-today{outline:2px solid var(--hgv-navy)}.calendar-week-heading{padding:.65rem .7rem;border-bottom:1px solid #e4e8ee;background:#f8fafc}.calendar-week-name{font-weight:800;color:#344054}.calendar-week-date{font-size:.78rem;color:#667085}.calendar-empty-day{padding:1rem .7rem;color:#98a2b3;font-size:.82rem}.calendar-shift-card{display:block;margin:.55rem;padding:.6rem;border:1px solid;text-decoration:none}
.calendar-month-wrap{overflow-x:auto}.calendar-month-head,.calendar-month-grid{min-width:900px}.calendar-month-head{display:grid;grid-template-columns:repeat(7,1fr);background:#eef2f6;border:1px solid #d9dee5;border-bottom:0}.calendar-month-head>div{padding:.45rem;text-align:center;font-size:.75rem;font-weight:800;color:#475467;text-transform:uppercase}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid #d9dee5;border-top:1px solid #d9dee5}.calendar-month-day{min-height:118px;padding:.4rem;background:#fff;border-right:1px solid #d9dee5;border-bottom:1px solid #d9dee5}.calendar-month-day.is-outside{background:#f8fafc;color:#98a2b3}.calendar-month-day.is-today{box-shadow:inset 0 0 0 2px var(--hgv-navy)}.calendar-day-number{font-size:.78rem;font-weight:800;margin-bottom:.3rem}.calendar-month-shift{display:block;padding:.35rem .4rem;margin-bottom:.3rem;font-size:.72rem;text-decoration:none;border:1px solid}
.timesheet-history-list{background:#fff}.timesheet-history-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid #e4e8ee}.timesheet-history-row:last-child{border-bottom:0}.timesheet-history-row:hover{background:#f8fafc}.timesheet-history-title{color:#172b4d;font-weight:800}.timesheet-status-progress{background:#fef3c7;color:#92400e}.timesheet-status-complete{background:#dcfce7;color:#166534}.timesheet-review-container{margin-top:1rem}
@media(max-width:991.98px){.calendar-week-grid{grid-template-columns:1fr}.calendar-week-day{min-height:auto}}@media(max-width:767.98px){.timesheet-history-row{align-items:flex-start}}

/* v2.5.1 */
.settings-tabs{overflow-x:auto;flex-wrap:nowrap}.settings-tabs .nav-link{white-space:nowrap;border-radius:0}.calendar-holiday-card{background:#f3e8ff;color:#6b21a8;border:1px solid #d8b4fe;padding:.45rem;margin:.35rem}.timesheet-table td.timesheet-day,.timesheet-table td.timesheet-date{font-size:.68rem;font-weight:700}.asset-maintenance-warning{font-weight:700}.vehicle-table-card td[data-label]{vertical-align:middle}
@media(max-width:767.98px){.vehicle-table-card .table-responsive{overflow:visible}.vehicle-table-card table,.vehicle-table-card tbody,.vehicle-table-card tr,.vehicle-table-card td{display:block;width:100%}.vehicle-table-card thead{display:none}.vehicle-table-card tr{padding:.8rem;border-bottom:1px solid #d9dee5}.vehicle-table-card td{border:0!important;padding:.3rem 0!important;text-align:left!important}.vehicle-table-card td[data-label]::before{content:attr(data-label) ': ';font-weight:700;color:#667085}.vehicle-table-card td[data-label=Registration]::before{display:none}.vehicle-table-card td[data-label=Registration]{font-size:1.05rem}.vehicle-table-card td[data-label=Actions]::before{display:none}.vehicle-table-card td[data-label=Actions]{padding-top:.6rem!important}.vehicle-table-card td[data-label=Actions] .btn{width:100%}}


/* V2.5.2 Settings tabs */
.settings-tabs{
    display:flex;
    flex-wrap:nowrap;
    gap:.4rem;
    border-bottom:1px solid #cfd6df;
    overflow:visible;
}

.settings-tabs .nav-item{
    flex:1 1 0;
}

.settings-tabs .nav-link{
    width:100%;
    border:1px solid #d8dee7 !important;
    border-bottom:0 !important;
    background:#eef2f6 !important;
    color:#344054 !important;
    font-weight:800;
    text-align:center;
    white-space:nowrap;
}

.settings-tabs .nav-link:hover{
    background:#e3e8ef !important;
    color:var(--hgv-navy) !important;
}

.settings-tabs .nav-link.active{
    background:var(--hgv-navy) !important;
    border-color:var(--hgv-navy) !important;
    color:#fff !important;
}

@media(max-width:575.98px){
    .settings-tabs{
        gap:.25rem;
    }

    .settings-tabs .nav-link{
        padding:.65rem .45rem;
        font-size:.86rem;
    }
}

.calendar-holiday{background:#fce7f3!important;color:#9d174d!important;border-color:#f9a8d4!important}

.maintenance-alert-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding:1rem 0;
    border-bottom:1px solid #e5e7eb;
    color:inherit;
}
.maintenance-alert-row:last-child{border-bottom:0}
.maintenance-alert-row:hover{background:#f8fafc}

/* V2.5.3B mobile modal safety */
@media(max-width:767.98px){
 .modal-dialog{margin:.5rem;max-height:calc(100dvh - 1rem)}
 .modal-dialog-scrollable .modal-content{max-height:calc(100dvh - 1rem)}
 .modal-dialog-scrollable .modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch}
 .modal-footer{position:sticky;bottom:0;background:#fff;z-index:3}
}
.maintenance-detail-box{border:1px solid #d8dee7;padding:1rem;background:#fff;height:100%}
.maintenance-detail-box .maintenance-title{font-weight:800;color:#172b4d;margin-bottom:.75rem}
.holiday-list-row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid #e5e7eb}
.holiday-list-row:last-child{border-bottom:0}


/* V2.6.0 Administration */
.admin-module-card{
    display:flex;
    align-items:center;
    gap:1rem;
    padding:1rem;
    border:1px solid #e3e8ef;
    border-radius:.75rem;
    text-decoration:none;
    color:inherit;
    margin-bottom:.75rem;
    background:#fff;
}
.admin-module-card:last-child{margin-bottom:0}
.admin-module-card:hover{
    border-color:#aab7c7;
    background:#f8fafc;
}
.admin-module-card small{
    display:block;
    color:#667085;
    margin-top:.15rem;
}
.admin-module-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:2.5rem;
    width:2.5rem;
    height:2.5rem;
    border-radius:.65rem;
    background:#eef2f6;
    color:var(--hgv-navy);
}
.audit-mini-row{
    padding:.7rem 0;
    border-bottom:1px solid #e5e7eb;
}
.audit-mini-row:last-child{border-bottom:0}


/* V2.6.2b navbar stacking */
.app-navbar {
    position: relative;
    z-index: 1030;
}
.app-navbar .dropdown-menu {
    z-index: 1050;
}

/* V2.6.5 modal viewport fix */
@media (max-width: 767.98px) {
    .modal-dialog-scrollable { height: calc(100dvh - 1rem); margin: .5rem; }
    .modal-dialog-scrollable .modal-content { max-height: calc(100dvh - 1rem); overflow: hidden; }
    .modal-dialog-scrollable .modal-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
    .modal-dialog-scrollable .modal-footer { flex-shrink: 0; background: #fff; }
}

.holiday-calendar-head,.holiday-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.holiday-calendar-head>div{text-align:center;font-size:.75rem;font-weight:700;color:#667085;padding:.4rem}
.holiday-cal-day{min-height:76px;border:1px solid #e5e7eb;background:#fff;padding:.4rem;text-align:left}
.holiday-cal-day.is-outside{background:#f8fafc;color:#98a2b3}
.holiday-cal-day.has-holiday{background:#ecfdf3}
.holiday-cal-day.is-selected{outline:2px solid #0b1f3a;outline-offset:-2px;background:#eef4ff}
.holiday-cal-num{display:block;font-weight:700}.holiday-cal-dot{display:block;margin-top:.35rem;font-size:.7rem;font-weight:600}
@media(max-width:767.98px){.holiday-cal-day{min-height:56px;padding:.25rem}.holiday-cal-dot{font-size:.58rem}}

/* V2.6.8 global mobile modal framework */
.defect-search-results{
    z-index:1080;
    max-height:260px;
    overflow-y:auto;
    display:none;
}
.defect-search-results.show{display:block}

@media (max-width: 767.98px){
    .modal{
        padding:0 !important;
    }
    .modal-dialog{
        width:auto;
        max-width:none;
        height:100dvh;
        min-height:100dvh;
        margin:0;
    }
    .modal-dialog .modal-content{
        height:100dvh;
        max-height:100dvh;
        border:0;
        display:flex;
        flex-direction:column;
    }
    .modal-dialog .modal-header,
    .modal-dialog .modal-footer{
        flex:0 0 auto;
        background:#fff;
        z-index:4;
    }
    .modal-dialog .modal-body{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto !important;
        -webkit-overflow-scrolling:touch;
        padding-bottom:1.25rem;
    }
    .modal-dialog .modal-footer{
        border-top:1px solid var(--hgv-border);
        padding-bottom:max(.75rem,env(safe-area-inset-bottom));
    }
}

/* V2.6.10 asset search overlay */
.asset-results,
.defect-search-results,
.location-results,
.company-results{
    background:#fff !important;
    border:1px solid #d0d5dd;
    border-radius:.5rem;
    box-shadow:0 .5rem 1.25rem rgba(16,24,40,.18);
    z-index:2000 !important;
    max-height:280px;
    overflow-y:auto;
}
.asset-results .list-group-item,
.defect-search-results .list-group-item,
.location-results .list-group-item,
.company-results .list-group-item{
    background:#fff !important;
}

/* V2.7.0 Users / permissions / support context */
.support-context-banner{
    display:flex;justify-content:space-between;align-items:center;gap:1rem;
    background:#fff3cd;border:1px solid #ffe69c;border-radius:.65rem;
    padding:.65rem .85rem;color:#664d03;
}
.permission-check-card{
    border:1px solid #e5e7eb;border-radius:.65rem;padding:.75rem;background:#fff;
}
.permission-check-card .form-check-label small{display:block;color:#667085;font-weight:400}
@media(max-width:767.98px){
    .support-context-banner{align-items:flex-start;flex-direction:column}
}


/* V2.7.0a User Administration modal hotfix */
@media (max-width: 767.98px){
    .user-admin-modal .modal-dialog{
        margin:0 !important;
        width:100% !important;
        max-width:100% !important;
        height:100dvh !important;
        min-height:100dvh !important;
    }

    .user-admin-modal .modal-content{
        height:100dvh !important;
        max-height:100dvh !important;
        border-radius:0 !important;
        overflow:hidden !important;
    }

    .user-admin-modal form{
        height:100%;
        min-height:0;
        display:flex;
        flex-direction:column;
    }

    .user-admin-modal .modal-header,
    .user-admin-modal .modal-footer{
        flex:0 0 auto;
        position:relative;
        z-index:5;
        background:#fff;
    }

    .user-admin-modal .modal-body{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto !important;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
        padding-bottom:1.5rem;
    }

    .user-admin-modal .modal-footer{
        padding-bottom:max(.75rem,env(safe-area-inset-bottom));
        box-shadow:0 -.25rem .75rem rgba(16,24,40,.08);
    }
}


/* V2.7.0b compact user permission list */
.permission-module-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:52px;
    padding:.65rem .85rem;
    border:1px solid #e5e7eb;
    border-radius:.55rem;
    background:#fff;
}
.permission-module-label{
    margin:0;
    font-weight:600;
    color:#1f2937;
    cursor:pointer;
    flex:1 1 auto;
}
.permission-module-row .form-switch{
    flex:0 0 auto;
    padding-left:2.7em;
}
.permission-module-row .form-check-input{
    width:2.4em;
    height:1.3em;
    margin-top:0;
    cursor:pointer;
}
#editUserModal .row.g-3 > .col-12:has(.permission-module-row),
#createUserModal .row.g-3 > .col-12:has(.permission-module-row){
    margin-top:.5rem;
}
@media(max-width:767.98px){
    .permission-module-row{
        min-height:48px;
        padding:.55rem .7rem;
    }
}

/* V2.7.1 global switch standard */
.form-switch .form-check-input{
    border-radius:999px !important;
    cursor:pointer;
}
.form-switch .form-check-label{
    cursor:default !important;
    pointer-events:none;
}
.permission-module-row{
    cursor:default;
}
.permission-module-label{
    cursor:default !important;
    pointer-events:none;
}
.permission-module-row .form-check-input{
    border-radius:999px !important;
}

/* V2.7.2 navigation group headings */
.admin-nav-menu .dropdown-header{
    font-size:.7rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#667085;
    font-weight:700;
}

/* V2.7.3 two-factor QR */
.totp-qr-wrap{width:max-content;max-width:100%;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem}
.totp-qr-wrap canvas{display:block;max-width:100%;height:auto}

/* V2.7.3b self-contained 2FA QR */
#totpQrCode canvas{
    display:block;
    max-width:100%;
    height:auto;
    image-rendering:pixelated;
}

/* V2.7.4 dashboard KPI drill-downs */
.dashboard-drill-card{position:relative;transition:transform .12s ease,box-shadow .12s ease}
.dashboard-drill-card:hover{transform:translateY(-1px);box-shadow:0 .4rem 1rem rgba(16,24,40,.10)}
.dashboard-drill-card::after{content:"›";position:absolute;right:.75rem;top:.55rem;color:#98a2b3;font-size:1.25rem}
.rest-timeline{max-width:900px}
.rest-timeline-shift{position:relative}
.rest-timeline-connector{display:grid;grid-template-columns:28px 1fr;gap:.75rem;min-height:92px;margin-left:1rem}
.rest-line{width:3px;background:#d0d5dd;margin:0 auto}
.rest-detail{align-self:center;margin:.65rem 0}
@media(max-width:767.98px){
 .rest-timeline-connector{grid-template-columns:18px 1fr;margin-left:.5rem}
}

/* V2.7.5 focused dashboard reports */
.compact-compliance-table{font-size:.92rem}
.compact-compliance-table th,.compact-compliance-table td{white-space:nowrap}
@media(max-width:575.98px){
    .compact-compliance-table{font-size:.82rem}
    .compact-compliance-table th,.compact-compliance-table td{padding:.5rem .4rem}
}


/* V2.7.7 global table alignment */
table th:first-child,
table td:first-child{
    text-align:left !important;
}
table th:not(:first-child),
table td:not(:first-child){
    text-align:center !important;
}

/* V2.7.7 calendar shift detail */
.calendar-duty{font-weight:600;opacity:.8;margin-left:.35rem}
.calendar-shift-badges{display:flex;flex-wrap:wrap;gap:.25rem}
.calendar-shift-badges .badge{font-size:.64rem}
.calendar-month-detail{font-size:.68rem;margin-top:.1rem}
.calendar-mini-badges{display:flex;gap:.2rem;flex-wrap:wrap;margin-top:.2rem}
.calendar-mini-badges span{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:18px;padding:0 .28rem;border-radius:.25rem;
    background:rgba(255,255,255,.72);font-size:.58rem;font-weight:800;
}
@media(max-width:767.98px){
    .calendar-month-shift{font-size:.68rem;padding:.28rem}
    .calendar-month-detail{font-size:.6rem}
    .calendar-mini-badges span{font-size:.52rem;min-height:16px}
}

/* V2.7.9 streamlined operational dashboard */
.dashboard-primary-actions{
    width:190px;
    display:flex;
    flex-direction:column;
    gap:.5rem;
}
@media(max-width:767.98px){
    .dashboard-primary-actions{width:100%}
}


/* V2.7.11 History table / expandable shifts */
.history-shift-table th,
.history-shift-table td{
    white-space:nowrap;
    vertical-align:middle;
}
.history-shift-summary{
    cursor:pointer;
}
.history-shift-summary:hover{
    background:#f8fafc;
}
.history-shift-detail-row:hover{
    background:transparent;
}
.history-shift-detail{
    background:#f8fafc;
    border-top:1px solid #e5e7eb;
    border-bottom:1px solid #e5e7eb;
}
.history-shift-summary[aria-expanded="true"] .history-shift-chevron{
    transform:rotate(180deg);
}
.history-shift-chevron{
    transition:transform .15s ease;
}
.history-total-row{
    background:#f8fafc;
    font-weight:800;
}
.history-wage-total{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding:1rem 1.25rem;
    border:1px solid #d0d5dd;
    border-radius:.65rem;
    background:#fff;
    font-weight:700;
}
.history-wage-total strong{
    font-size:1.35rem;
}
@media(max-width:767.98px){
    .history-shift-table{
        font-size:.78rem;
    }
    .history-shift-table th,
    .history-shift-table td{
        padding:.5rem .35rem;
    }
    .history-shift-detail{
        font-size:.86rem;
    }
}


/* V2.7.12 mobile-first Shift History reporting */
.shift-history-table-wrap{
    overflow-x:auto;
}
.shift-history-accordion-table{
    min-width:560px;
}
.shift-history-accordion-table th,
.shift-history-accordion-table td{
    white-space:nowrap;
    vertical-align:middle;
}
.shift-history-summary-row{
    cursor:pointer;
}
.shift-history-summary-row:hover{
    background:#f8fafc;
}
.shift-history-summary-row[aria-expanded="true"] .shift-history-chevron{
    transform:rotate(180deg);
}
.shift-history-chevron{
    transition:transform .15s ease;
}
.shift-history-detail-row:hover{
    background:transparent;
}
.shift-history-expanded{
    background:#f8fafc;
    border-top:1px solid #e5e7eb;
    border-bottom:1px solid #e5e7eb;
}
.shift-history-wage-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:1rem 1.25rem;
    border:1px solid #d0d5dd;
    border-radius:.65rem;
    background:#fff;
    font-weight:700;
}
.shift-history-wage-total strong{
    font-size:1.35rem;
}
@media(max-width:767.98px){
    .shift-history-accordion-table{
        min-width:500px;
        font-size:.78rem;
    }
    .shift-history-accordion-table th,
    .shift-history-accordion-table td{
        padding:.5rem .35rem;
    }
    .shift-history-expanded{
        font-size:.86rem;
    }
}


/* V2.7.15 Shift History mobile readability */
.shift-history-table-wrap{
    overflow-x:visible;
}
.shift-history-accordion-table{
    min-width:0 !important;
    width:100%;
    table-layout:fixed;
}
.shift-history-accordion-table th,
.shift-history-accordion-table td{
    overflow:hidden;
    text-overflow:clip;
    vertical-align:middle;
}
.shift-history-accordion-table th:nth-child(1),
.shift-history-accordion-table td:nth-child(1){width:21%;}
.shift-history-accordion-table th:nth-child(2),
.shift-history-accordion-table td:nth-child(2){width:12%;}
.shift-history-accordion-table th:nth-child(3),
.shift-history-accordion-table td:nth-child(3){width:12%;}
.shift-history-accordion-table th:nth-child(4),
.shift-history-accordion-table td:nth-child(4){width:18%;}
.shift-history-accordion-table th:nth-child(5),
.shift-history-accordion-table td:nth-child(5){width:18%;}
.shift-history-accordion-table th:nth-child(6),
.shift-history-accordion-table td:nth-child(6){width:19%;}
.shift-history-date-small{
    font-size:.76em;
    margin-top:.08rem;
}
.shift-history-total-row{
    background:#f8fafc;
    font-weight:800;
}
@media(max-width:575.98px){
    .shift-history-table-wrap{
        margin-left:-.15rem;
        margin-right:-.15rem;
    }
    .shift-history-accordion-table{
        font-size:.80rem !important;
        line-height:1.18;
    }
    .shift-history-accordion-table th,
    .shift-history-accordion-table td{
        padding:.55rem .20rem !important;
        letter-spacing:-.005em;
    }
    .shift-history-accordion-table th{
        font-size:.77rem;
    }
    .shift-history-accordion-table th:nth-child(1),
    .shift-history-accordion-table td:nth-child(1){width:21%;}
    .shift-history-accordion-table th:nth-child(2),
    .shift-history-accordion-table td:nth-child(2){width:12%;}
    .shift-history-accordion-table th:nth-child(3),
    .shift-history-accordion-table td:nth-child(3){width:12%;}
    .shift-history-accordion-table th:nth-child(4),
    .shift-history-accordion-table td:nth-child(4){width:18%;}
    .shift-history-accordion-table th:nth-child(5),
    .shift-history-accordion-table td:nth-child(5){width:18%;}
    .shift-history-accordion-table th:nth-child(6),
    .shift-history-accordion-table td:nth-child(6){width:19%;}
}


/* V2.7.16 Shift History first-column breathing room */
.shift-history-accordion-table th:first-child,
.shift-history-accordion-table td:first-child{
    padding-left:.65rem !important;
}
@media(max-width:575.98px){
    .shift-history-accordion-table th:first-child,
    .shift-history-accordion-table td:first-child{
        padding-left:.45rem !important;
    }
}


/* V2.7.17 Shift History spacing refinements */
.shift-history-accordion-table th:first-child,
.shift-history-accordion-table td:first-child{
    padding-left:.85rem !important;
    padding-right:.08rem !important;
}
.shift-history-accordion-table th:nth-child(2),
.shift-history-accordion-table td:nth-child(2){
    padding-left:.08rem !important;
}

/* Pull the expanded two-column detail layout closer together. */
.shift-history-expanded .row{
    --bs-gutter-x:.75rem;
}
@media(max-width:575.98px){
    .shift-history-accordion-table th:first-child,
    .shift-history-accordion-table td:first-child{
        padding-left:.65rem !important;
        padding-right:.05rem !important;
    }
    .shift-history-accordion-table th:nth-child(2),
    .shift-history-accordion-table td:nth-child(2){
        padding-left:.05rem !important;
    }
    .shift-history-expanded{
        padding-left:.75rem !important;
        padding-right:.75rem !important;
    }
    .shift-history-expanded .row{
        --bs-gutter-x:.45rem;
    }
}


/* V2.8.0 Expenses */
.expense-table th,.expense-table td{vertical-align:middle}
.expense-table tfoot{background:#f8fafc;font-weight:800}
.expense-status-draft{background:#e9ecef;color:#495057}
.expense-status-submitted{background:#cfe2ff;color:#084298}
.expense-status-queried{background:#fff3cd;color:#664d03}
.expense-status-approved{background:#d1e7dd;color:#0f5132}
.expense-status-rejected{background:#f8d7da;color:#842029}
.expense-status-paid{background:#d1e7dd;color:#0f5132}
@media(max-width:575.98px){
    .expense-table{font-size:.78rem}
    .expense-table th,.expense-table td{padding:.55rem .35rem}
    .expense-table th:nth-child(5),.expense-table td:nth-child(5){display:none}
}


/* V2.8.1 combined shift-time columns */
.shift-history-accordion-table th:nth-child(1),
.shift-history-accordion-table td:nth-child(1){width:20%;}
.shift-history-accordion-table th:nth-child(2),
.shift-history-accordion-table td:nth-child(2){width:24%;}
.shift-history-accordion-table th:nth-child(3),
.shift-history-accordion-table td:nth-child(3){width:18%;}
.shift-history-accordion-table th:nth-child(4),
.shift-history-accordion-table td:nth-child(4){width:18%;}
.shift-history-accordion-table th:nth-child(5),
.shift-history-accordion-table td:nth-child(5){width:20%;}

/* Expenses modal must remain usable with a mobile keyboard open. */
#expenseModal .modal-content{
    max-height:calc(100dvh - 1rem);
    overflow:hidden;
}
#expenseModal form{
    min-height:0;
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 1rem);
}
#expenseModal .modal-header,
#expenseModal .modal-footer{
    flex:0 0 auto;
    background:#fff;
    position:relative;
    z-index:2;
}
#expenseModal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}
@media(max-width:575.98px){
    #expenseModal .modal-dialog{
        margin:.5rem;
        height:calc(100dvh - 1rem);
        max-height:calc(100dvh - 1rem);
    }
    #expenseModal .modal-content,
    #expenseModal form{
        height:100%;
        max-height:100%;
    }
    #expenseModal .modal-body{
        padding-bottom:1.25rem;
    }
    #expenseModal .modal-footer{
        padding-bottom:max(.75rem,env(safe-area-inset-bottom));
        box-shadow:0 -.2rem .6rem rgba(16,24,40,.08);
    }

    .shift-history-accordion-table th:nth-child(1),
    .shift-history-accordion-table td:nth-child(1){width:19%;}
    .shift-history-accordion-table th:nth-child(2),
    .shift-history-accordion-table td:nth-child(2){width:25%;}
    .shift-history-accordion-table th:nth-child(3),
    .shift-history-accordion-table td:nth-child(3){width:18%;}
    .shift-history-accordion-table th:nth-child(4),
    .shift-history-accordion-table td:nth-child(4){width:18%;}
    .shift-history-accordion-table th:nth-child(5),
    .shift-history-accordion-table td:nth-child(5){width:20%;}
}


/* V2.8.2 Shift View expenses */
.shift-expense-list{
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.shift-expense-item{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding-bottom:.75rem;
    border-bottom:1px solid #eaecf0;
}
.shift-expense-item:last-child{
    padding-bottom:0;
    border-bottom:0;
}
.shift-expense-total{
    font-size:1rem;
}
.min-w-0{min-width:0}
@media(max-width:575.98px){
    .shift-expense-item{
        gap:.6rem;
    }
}

/* V2.8.3 calendar key and appearance */
.calendar-key{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.7rem .85rem;border:1px solid var(--bs-border-color);border-radius:.75rem;background:var(--bs-body-bg);font-size:.78rem}
.calendar-key-title{font-weight:800}.calendar-key-item{display:inline-flex;align-items:center;gap:.38rem;white-space:nowrap}
.calendar-key-swatch{width:.85rem;height:.85rem;border-radius:.22rem;display:inline-block;border:1px solid rgba(0,0,0,.12)}
.calendar-key-swatch.calendar-shift-green{background:#d1e7dd}.calendar-key-swatch.calendar-shift-amber{background:#fff3cd}.calendar-key-swatch.calendar-shift-blue{background:#cfe2ff}
.calendar-key-swatch.calendar-shift-combined{background:linear-gradient(135deg,#fff3cd 0 50%,#cfe2ff 50% 100%)}.calendar-key-swatch.calendar-holiday{background:#e2d9f3}
.app-setting-switch .form-check-input{width:3rem;height:1.55rem;cursor:pointer}
[data-bs-theme="dark"]{--bs-body-bg:#0b1220;--bs-body-color:#e6edf6;--bs-secondary-color:#9eacc0;--bs-tertiary-bg:#121c2b;--bs-secondary-bg:#111b29;--bs-border-color:#29364a;--bs-emphasis-color:#fff;--bs-link-color:#75b7ff;--bs-link-hover-color:#a8d2ff}
body.theme-dark{background:#0b1220!important;color:#e6edf6}
.theme-dark .card,.theme-dark .modal-content,.theme-dark .dropdown-menu,.theme-dark .list-group-item,.theme-dark .accordion-item,.theme-dark .offcanvas{background:#111b29;color:#e6edf6;border-color:#29364a!important}
.theme-dark .card-header,.theme-dark .modal-header,.theme-dark .modal-footer,.theme-dark .accordion-button,.theme-dark .table-light,.theme-dark .bg-white,.theme-dark .bg-light{background:#152235!important;color:#e6edf6!important;border-color:#29364a!important}
.theme-dark .accordion-button:not(.collapsed){background:#172840;color:#fff}.theme-dark .accordion-button::after{filter:invert(1) grayscale(1) brightness(1.8)}
.theme-dark .table{--bs-table-bg:#111b29;--bs-table-color:#e6edf6;--bs-table-border-color:#29364a;--bs-table-striped-bg:#142033;--bs-table-hover-bg:#18263a;--bs-table-hover-color:#fff}
.theme-dark .form-control,.theme-dark .form-select,.theme-dark .input-group-text{background:#0d1725;color:#f1f5f9;border-color:#34445b}
.theme-dark .form-control::placeholder{color:#738399}.theme-dark .form-control:focus,.theme-dark .form-select:focus{background:#0d1725;color:#fff;border-color:#6aaef7;box-shadow:0 0 0 .2rem rgba(65,145,230,.18)}
.theme-dark .text-secondary,.theme-dark .form-text,.theme-dark .page-description{color:#9eacc0!important}.theme-dark .alert-light{background:#152235;color:#e6edf6;border-color:#34445b!important}
.theme-dark .btn-outline-secondary{color:#c6d0dd;border-color:#526176}.theme-dark .btn-outline-secondary:hover{background:#26364c;color:#fff}
.theme-dark .nav-tabs{border-color:#29364a}.theme-dark .nav-tabs .nav-link{color:#aebbd0}.theme-dark .nav-tabs .nav-link.active{background:#111b29;color:#fff;border-color:#29364a #29364a #111b29}
.theme-dark .dropdown-item{color:#dce5f0}.theme-dark .dropdown-item:hover,.theme-dark .dropdown-item:focus{background:#1b2a40;color:#fff}
.theme-dark .app-footer{background:#08111f;color:#9eacc0;border-color:#233148}
.theme-dark .calendar-week-day,.theme-dark .calendar-month-wrap,.theme-dark .calendar-month-day,.theme-dark .calendar-month-head,.theme-dark .calendar-key{background:#111b29;color:#e6edf6;border-color:#29364a}
.theme-dark .calendar-month-day.is-outside{background:#0d1623;color:#738399}.theme-dark .calendar-empty-day{color:#738399}
.theme-dark .calendar-shift-green{background:#17382f!important;color:#b8f2da!important;border-color:#28604f!important}.theme-dark .calendar-shift-amber{background:#4a3516!important;color:#ffe1a3!important;border-color:#76551f!important}
.theme-dark .calendar-shift-blue{background:#173b5d!important;color:#c7e6ff!important;border-color:#285e8c!important}.theme-dark .calendar-shift-combined{background:linear-gradient(135deg,#4a3516 0 50%,#173b5d 50% 100%)!important;color:#fff!important;border-color:#596475!important}
.theme-dark .calendar-holiday{background:#35284d!important;color:#e8d8ff!important;border-color:#59427d!important}
.theme-dark .calendar-key-swatch.calendar-shift-green{background:#17382f}.theme-dark .calendar-key-swatch.calendar-shift-amber{background:#4a3516}.theme-dark .calendar-key-swatch.calendar-shift-blue{background:#173b5d}.theme-dark .calendar-key-swatch.calendar-shift-combined{background:linear-gradient(135deg,#4a3516 0 50%,#173b5d 50% 100%)}.theme-dark .calendar-key-swatch.calendar-holiday{background:#35284d}
.theme-dark .shift-history-total-row,.theme-dark .expense-table tfoot{background:#152235!important;color:#fff}.theme-dark .expense-status-draft{background:#334155;color:#e2e8f0}.theme-dark .expense-status-submitted{background:#173b5d;color:#c7e6ff}.theme-dark .expense-status-queried{background:#4a3516;color:#ffe1a3}.theme-dark .expense-status-approved,.theme-dark .expense-status-paid{background:#17382f;color:#b8f2da}.theme-dark .expense-status-rejected{background:#51242a;color:#ffc9cf}
.theme-dark #expenseModal .modal-header,.theme-dark #expenseModal .modal-footer{background:#152235}
@media(max-width:575.98px){.calendar-key{gap:.45rem .7rem;padding:.6rem .7rem}.calendar-key-item{font-size:.72rem}}


/* ==========================================================
   V2.8.4 COMPLETE DARK MODE
   ========================================================== */
body.theme-dark{
    --hgv-bg:#08111f;
    --hgv-panel:#111b29;
    --hgv-border:#2c3a4f;
    --hgv-muted:#9eacc0;
    --hgv-footer:#08111f;
    --hgv-footer-text:#9eacc0;
    background:#08111f !important;
    color:#e6edf6 !important;
}

.theme-dark .app-main{
    background:#08111f;
    color:#e6edf6;
}

/* Application cards/panels that predate Bootstrap colour variables. */
.theme-dark .stat-card,
.theme-dark .dashboard-hero,
.theme-dark .compliance-disclosure,
.theme-dark .stats-shift-list,
.theme-dark .stats-shift-card,
.theme-dark .history-shift-detail,
.theme-dark .shift-history-expanded,
.theme-dark .history-total-row,
.theme-dark .history-wage-total,
.theme-dark .shift-history-wage-total,
.theme-dark .movement-row,
.theme-dark .timesheet-history-row,
.theme-dark .timesheet-paper,
.theme-dark .calendar-toolbar,
.theme-dark .support-context-banner,
.theme-dark .empty-state{
    background:#111b29 !important;
    color:#e6edf6 !important;
    border-color:#2c3a4f !important;
    box-shadow:0 .125rem .5rem rgba(0,0,0,.22);
}

.theme-dark .stat-card,
.theme-dark .dashboard-hero{
    border:1px solid #2c3a4f !important;
}

.theme-dark .stat-label,
.theme-dark .stat-sub,
.theme-dark .dashboard-section-title,
.theme-dark .detail-label,
.theme-dark .route-label,
.theme-dark .route-arrow,
.theme-dark .stats-shift-meta{
    color:#9eacc0 !important;
}

.theme-dark .stat-value,
.theme-dark .detail-value,
.theme-dark .pay-total,
.theme-dark .timesheet-history-title,
.theme-dark .stats-shift-date,
.theme-dark .stats-shift-pay .h4{
    color:#f4f7fb !important;
}

.theme-dark .dashboard-drill-card::after{
    color:#8291a7;
}

.theme-dark .summary-row,
.theme-dark .route-item,
.theme-dark .shift-expense-item,
.theme-dark .stats-shift-row{
    border-color:#2c3a4f !important;
}

.theme-dark .stats-shift-row:hover,
.theme-dark .history-shift-summary:hover,
.theme-dark .shift-history-summary-row:hover{
    background:#162338 !important;
}

/* Bootstrap utilities and generic panels. */
.theme-dark .border,
.theme-dark .border-top,
.theme-dark .border-bottom,
.theme-dark hr{
    border-color:#2c3a4f !important;
}

.theme-dark .shadow-sm{
    box-shadow:0 .125rem .55rem rgba(0,0,0,.25) !important;
}

.theme-dark .badge.text-bg-light{
    background:#26364c !important;
    color:#e6edf6 !important;
}

.theme-dark .btn-outline-primary{
    color:#79b9ff;
    border-color:#4c8dce;
}
.theme-dark .btn-outline-primary:hover{
    color:#08111f;
    background:#79b9ff;
    border-color:#79b9ff;
}

/* Alerts retain meaning without flashing large pale panels at night. */
.theme-dark .alert-warning{
    --bs-alert-color:#ffe4a8;
    --bs-alert-bg:#3b2c0b;
    --bs-alert-border-color:#745815;
}
.theme-dark .alert-danger{
    --bs-alert-color:#ffc6cc;
    --bs-alert-bg:#3d171d;
    --bs-alert-border-color:#74303a;
}
.theme-dark .alert-success{
    --bs-alert-color:#b8f2da;
    --bs-alert-bg:#12352c;
    --bs-alert-border-color:#28604f;
}
.theme-dark .alert-secondary{
    --bs-alert-color:#d6deea;
    --bs-alert-bg:#1b2738;
    --bs-alert-border-color:#3b4a5f;
}
.theme-dark .alert-info{
    --bs-alert-color:#c7e6ff;
    --bs-alert-bg:#123451;
    --bs-alert-border-color:#285e8c;
}

/* Older app-specific pale pills/tiles. */
.theme-dark .stats-shift-mobile-stats span,
.theme-dark .compliance-disclosure,
.theme-dark .ts-label{
    background:#172438 !important;
    color:#d9e2ee !important;
    border-color:#2c3a4f !important;
}

/* Tables: remove any remaining white/light row backgrounds. */
.theme-dark .table > :not(caption) > * > *{
    background-color:transparent;
    color:inherit;
    border-color:#2c3a4f;
}
.theme-dark .table-warning > *{
    background:#3b2c0b !important;
    color:#ffe4a8 !important;
}
.theme-dark .table-danger > *{
    background:#3d171d !important;
    color:#ffc6cc !important;
}
.theme-dark .table-success > *{
    background:#12352c !important;
    color:#b8f2da !important;
}

/* Inputs, search results and dropdown chrome. */
.theme-dark .location-results .list-group-item,
.theme-dark .company-results .list-group-item{
    background:#111b29;
    color:#e6edf6;
    border-color:#2c3a4f;
}
.theme-dark .location-results .list-group-item:hover,
.theme-dark .company-results .list-group-item:hover{
    background:#1a2940;
}

/* Timesheet on-screen preview remains readable in dark mode without white glare. */
.theme-dark .timesheet-paper{
    color:#e6edf6 !important;
}
.theme-dark .timesheet-paper .timesheet-table th,
.theme-dark .timesheet-paper .timesheet-table td,
.theme-dark .timesheet-driver-grid,
.theme-dark .timesheet-driver-grid > div{
    border-color:#526176 !important;
}
.theme-dark .timesheet-paper input,
.theme-dark .timesheet-paper textarea{
    background:#0d1725;
    color:#f1f5f9;
}

/* Menu-level immediate theme control. */
.nav-theme-toggle{
    color:#fff;
    white-space:nowrap;
}
.nav-theme-toggle .form-check-input{
    width:2.8rem;
    height:1.45rem;
    cursor:pointer;
    margin-top:0;
    background-color:#667085;
    border-color:#98a2b3;
}
.nav-theme-toggle .form-check-input:checked{
    background-color:#3b9cff;
    border-color:#3b9cff;
}
.nav-theme-toggle.theme-saving{
    opacity:.65;
}
.nav-theme-toggle.theme-error{
    outline:1px solid #ff7b86;
    outline-offset:3px;
}
@media(max-width:991.98px){
    .nav-theme-toggle{
        padding:.7rem 0;
        border-top:1px solid rgba(255,255,255,.15);
        border-bottom:1px solid rgba(255,255,255,.15);
        margin:.5rem 0 1rem !important;
        justify-content:space-between;
    }
}


/* V2.8.5 Timesheet date alignment */
.timesheet-table th:first-child,
.timesheet-table td.timesheet-date{
    text-align:center !important;
}

/* V2.8.5 Defect History status headers */
.defect-history-status-row{
    padding:.48rem .75rem;
    font-size:.76rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.defect-history-status-open{background:#f8d7da;color:#842029}
.defect-history-status-warning{background:#fff3cd;color:#664d03}
.defect-history-status-monitor{background:#cfe2ff;color:#084298}
.defect-history-status-resolved{background:#d1e7dd;color:#0f5132}
.theme-dark .defect-history-status-open{background:#51242a;color:#ffc9cf}
.theme-dark .defect-history-status-warning{background:#4a3516;color:#ffe1a3}
.theme-dark .defect-history-status-monitor{background:#173b5d;color:#c7e6ff}
.theme-dark .defect-history-status-resolved{background:#17382f;color:#b8f2da}


/* ==========================================================
   V2.8.6 ADMIN MENU / TABLES / CHANGELOG
   ========================================================== */
.admin-nav-menu{
    min-width:18rem;
}
.admin-menu-group-toggle{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-weight:700;
}
.admin-menu-group-toggle[aria-expanded="true"] .admin-menu-chevron{
    transform:rotate(180deg);
}
.admin-menu-chevron{
    font-size:.7rem;
    transition:transform .15s ease;
}
.admin-menu-submenu{
    background:rgba(11,31,58,.035);
    border-left:3px solid var(--hgv-navy-soft);
    margin:0 .55rem .2rem;
}
.admin-menu-submenu .dropdown-item{
    padding-left:1.35rem;
    font-size:.92rem;
}
@media(max-width:767.98px){
    .admin-nav-menu{min-width:0}
    .admin-menu-submenu{
        background:rgba(255,255,255,.04);
        border-left-color:rgba(255,255,255,.25);
    }
    .admin-menu-group-toggle{
        color:rgba(255,255,255,.9) !important;
    }
}

/* Defect card status uses an app-theme colour line at the very top. */
.defect-history-card{
    border-top-width:5px !important;
    border-top-style:solid !important;
}
.defect-history-card.defect-history-status-open{border-top-color:#dc3545 !important}
.defect-history-card.defect-history-status-warning{border-top-color:#d39e00 !important}
.defect-history-card.defect-history-status-monitor{border-top-color:#0d6efd !important}
.defect-history-card.defect-history-status-resolved{border-top-color:#198754 !important}
.defect-history-card .defect-history-status-row{
    background:transparent !important;
    padding:.5rem .85rem .15rem;
    font-size:.75rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.defect-history-card.defect-history-status-open .defect-history-status-row{color:#b42318}
.defect-history-card.defect-history-status-warning .defect-history-status-row{color:#8a6100}
.defect-history-card.defect-history-status-monitor .defect-history-status-row{color:#0b5ed7}
.defect-history-card.defect-history-status-resolved .defect-history-status-row{color:#157347}
.theme-dark .defect-history-card.defect-history-status-open{border-top-color:#ff6b78 !important}
.theme-dark .defect-history-card.defect-history-status-warning{border-top-color:#ffc857 !important}
.theme-dark .defect-history-card.defect-history-status-monitor{border-top-color:#70b7ff !important}
.theme-dark .defect-history-card.defect-history-status-resolved{border-top-color:#62d6a6 !important}
.theme-dark .defect-history-card.defect-history-status-open .defect-history-status-row{color:#ff9ca5}
.theme-dark .defect-history-card.defect-history-status-warning .defect-history-status-row{color:#ffe1a3}
.theme-dark .defect-history-card.defect-history-status-monitor .defect-history-status-row{color:#a9d6ff}
.theme-dark .defect-history-card.defect-history-status-resolved .defect-history-status-row{color:#9ce6c7}

/* Standard data-table controls. */
.data-table-controls{
    padding:.75rem .85rem;
    border-top:1px solid var(--hgv-border);
    background:#f8fafc;
}
.data-table-row-select,
.admin-row-count-select{
    width:auto;
    min-width:4.5rem;
}
.theme-dark .data-table-controls{
    background:#152235;
    border-color:#2c3a4f;
}

/* Footer changelog link. */
.footer-version-link{
    appearance:none;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    padding:.15rem .25rem;
    text-decoration:underline;
    text-underline-offset:.18rem;
    cursor:pointer;
}
.footer-version-link:hover,
.footer-version-link:focus{
    color:var(--hgv-navy);
}
.theme-dark .footer-version-link:hover,
.theme-dark .footer-version-link:focus{
    color:#8fc6ff;
}
.changelog-modal-body{
    padding:0;
}
.changelog-text{
    white-space:pre-wrap;
    word-break:normal;
    font-family:inherit;
    font-size:.88rem;
    line-height:1.5;
    padding:1rem 1.1rem;
    background:transparent;
    color:inherit;
}


/* ==========================================================
   V2.8.7 ADMIN DASHBOARD / DEFECT TABLE
   ========================================================== */
.admin-module-grid .admin-module-tile{
    min-height:100%;
}
.admin-module-tile{
    position:relative;
    display:flex;
    align-items:center;
    gap:.7rem;
    padding:.75rem .8rem;
    border:1px solid var(--hgv-border);
    background:var(--hgv-panel);
    color:inherit;
}
.admin-module-tile:hover,
.admin-module-tile:focus{
    background:#f8fafc;
    border-color:#b9c3cf;
}
.admin-module-tile-icon{
    width:2rem;
    min-width:2rem;
    height:2rem;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef2f6;
    color:var(--hgv-navy);
}
.admin-module-tile-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:.08rem;
}
.admin-module-tile-copy strong{
    font-size:.9rem;
    line-height:1.15;
}
.admin-module-tile-copy small{
    color:var(--hgv-muted);
    font-size:.72rem;
    line-height:1.25;
}
.admin-module-tile-arrow{
    margin-left:auto;
    color:#98a2b3;
    font-size:.72rem;
}
.theme-dark .admin-module-tile:hover,
.theme-dark .admin-module-tile:focus{
    background:#17263a;
    border-color:#41516a;
}
.theme-dark .admin-module-tile-icon{
    background:#1d3048;
    color:#a9d6ff;
}

table th.text-center{
    text-align:center !important;
}
table td.defect-text-cell,
table td.defect-action-cell{
    text-align:left !important;
}


/* ==========================================================
   V2.8.8 ADMIN DASHBOARD ARRANGE MODE
   ========================================================== */
.admin-dashboard-section{
    position:relative;
}
.admin-section-drag-handle{
    display:none;
}
.admin-dashboard-arranging{
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.admin-dashboard-arranging .admin-dashboard-section{
    border:2px dashed #98a2b3;
    background:rgba(152,162,179,.05);
    padding:.55rem;
    cursor:grab;
}
.admin-dashboard-arranging .admin-dashboard-section:active{
    cursor:grabbing;
}
.admin-dashboard-arranging .admin-dashboard-section > .mb-4,
.admin-dashboard-arranging .admin-dashboard-section > [class*="mb-"]{
    margin-bottom:0 !important;
}
.admin-dashboard-arranging .admin-section-drag-handle{
    display:flex;
    align-items:center;
    gap:.5rem;
    margin:-.55rem -.55rem .55rem;
    padding:.5rem .65rem;
    background:#eef2f6;
    border-bottom:1px solid var(--hgv-border);
    color:#475467;
    font-size:.78rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.admin-section-dragging{
    opacity:.45;
}
.admin-section-move-buttons{
    display:flex;
    gap:.25rem;
}
.theme-dark .admin-dashboard-arranging .admin-dashboard-section{
    border-color:#596a82;
    background:rgba(89,106,130,.08);
}
.theme-dark .admin-dashboard-arranging .admin-section-drag-handle{
    background:#1b2b40;
    color:#cbd5e1;
    border-color:#34445a;
}


/* V2.9.0 employment profiles */
.employment-profile-card .badge{white-space:normal}






/* V2.9.3 employment profile modal scrolling */
.employment-profile-modal {
    overflow: hidden !important;
}
.employment-profile-modal .modal-dialog {
    display: flex !important;
    flex-direction: column !important;
    margin-top: 10px;
    margin-bottom: 10px;
}
.employment-profile-modal .modal-content {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    min-height: 0 !important;
}
.employment-profile-modal .modal-header,
.employment-profile-modal .modal-footer {
    flex: 0 0 auto !important;
}
.employment-profile-modal .employment-profile-modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.employment-profile-modal .employment-profile-modal-footer {
    background: var(--bs-body-bg) !important;
    z-index: 3;
}
@media (max-width: 767.98px) {
    .employment-profile-modal .modal-dialog {
        margin: 0 !important;
        width: 100% !important;
        max-width: none !important;
    }
    .employment-profile-modal .modal-content {
        border-radius: 0 !important;
    }
}


/* V2.9.8 viewport-aware User Administration modals */
.user-admin-modal{
    overflow:hidden !important;
}
.user-admin-modal .modal-dialog{
    display:flex !important;
    flex-direction:column !important;
}
.user-admin-modal .modal-content{
    display:flex !important;
    flex-direction:column !important;
    overflow:hidden !important;
    min-height:0 !important;
}
.user-admin-modal form{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
}
.user-admin-modal .modal-header,
.user-admin-modal .modal-footer{
    flex:0 0 auto !important;
}
.user-admin-modal .modal-body{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
}
@media(min-width:768px){
    .user-admin-modal .modal-dialog{
        margin-top:10px !important;
        margin-bottom:10px !important;
    }
}


/* V2.13.8.5 Dashboard Shift History - reuse full Shift History presentation */
.dashboard-shift-history-table{
    table-layout:fixed;
}
.dashboard-shift-history-table th:nth-child(1),
.dashboard-shift-history-table td:nth-child(1){width:23%;}
.dashboard-shift-history-table th:nth-child(2),
.dashboard-shift-history-table td:nth-child(2){width:29%;}
.dashboard-shift-history-table th:nth-child(3),
.dashboard-shift-history-table td:nth-child(3){width:24%;}
.dashboard-shift-history-table th:nth-child(4),
.dashboard-shift-history-table td:nth-child(4){width:24%;}
@media(max-width:575.98px){
    .dashboard-shift-history-table th,
    .dashboard-shift-history-table td{
        font-size:.875rem;
        padding-top:.72rem;
        padding-bottom:.72rem;
    }
    .dashboard-shift-history-table .shift-history-date-small{font-size:.75rem;}
}


/* v2.13.8.6 Banked Hours */
.banked-hours-table th,
.banked-hours-table td{white-space:nowrap;vertical-align:middle;}
.banked-hours-table th:not(:first-child),
.banked-hours-table td:not(:first-child){text-align:center;}
.banked-hours-table th:first-child,
.banked-hours-table td:first-child{text-align:left !important;}
@media (max-width: 575.98px){
  .banked-hours-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .banked-hours-table{font-size:.91rem;min-width:620px;}
  .banked-hours-table th,.banked-hours-table td{padding:.72rem .65rem;}
  .banked-balance-calc{font-size:.95rem;}
}
