:root{--nav:#071d35;--accent:#0d6efd;--soft:#f4f7fb}body{background:var(--soft);font-family:Arial,Helvetica,sans-serif;color:#172033}.navbar{background:linear-gradient(90deg,#071d35,#0b3b6d)}.dropdown-menu{border:0;box-shadow:0 14px 40px #0b25451f}.card{border:0;border-radius:18px;box-shadow:0 8px 30px #102a4312}.kpi{font-size:1.65rem;font-weight:800;line-height:1.1}.kpi-card{min-height:105px}.kpi-icon{font-size:2rem;color:#0d6efd33}.table{font-size:.86rem}.badge{padding:.45rem .65rem}.section-title{font-weight:800}.status-ASSIGNED{background:#6c757d}.status-LOGSHEET_PENDING{background:#ffc107;color:#111}.status-SUBMITTED{background:#0dcaf0;color:#111}.status-VERIFIED{background:#198754}.status-CANCELLED{background:#dc3545}.trip-row-COMPLETED{background:#f0fff5}.trip-row-CANCELLED{background:#fff3f3}.login-bg{min-height:100vh;background:radial-gradient(circle at 20% 20%,#d7ebff 0,#f4f7fb 35%,#edf2f7 100%)}.login-card{max-width:480px;border-radius:26px}.brand-round{width:72px;height:72px;border-radius:50%;background:#0d6efd;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:900;margin:0 auto 14px}@media(max-width:768px){.navbar-brand{font-size:.95rem}.table{font-size:.78rem}.kpi{font-size:1.25rem}.card{border-radius:14px}}
.dt-buttons .btn{margin-right:6px}.dataTables_filter input{border-radius:8px;border:1px solid #ced4da;padding:.35rem .65rem}.dataTables_length select{border-radius:8px}.ms-erp-table thead th{white-space:nowrap;background:#fff}.select2-container--bootstrap-5 .select2-selection{min-height:38px}.action-nowrap{white-space:nowrap}.import-card{background:#f8fbff;border:1px dashed #bcd7ff}.table-actions .btn{margin:1px}
.bulk-duty-table select,.logsheet-table select{min-width:150px}.apply-down{white-space:nowrap}.editable[contenteditable=true]{outline:1px dashed #f5d25b}.editable[contenteditable=true]:focus,.editable-text[contenteditable=true]:focus{background:#fff8d7;outline:2px solid #0d6efd}.table-responsive{padding-bottom:.35rem}
/* v3.8 Duty Assignment searchable dropdown + action footer polish */
.duty-assignment-card .select2-container--bootstrap-5 .select2-selection{border-radius:.375rem}
.duty-assignment-card .select2-container--bootstrap-5.select2-container--focus .select2-selection{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.duty-entry-table .row-status-msg{white-space:nowrap}
.duty-action-footer{border-top:1px solid #e9ecef;padding-top:14px}

/* v3.9 Duty Assignment clean workflow + mobile usability */
.empty-duty-state{border:1px dashed #b8c6d8;border-radius:12px;background:#f8fbff;color:#5b6778;padding:18px;margin-top:8px;text-align:center;font-weight:600}.duty-entry-table tbody:empty{display:none}.duty-action-footer{justify-content:center!important}.duty-action-footer .btn{font-weight:700}.select2-container--bootstrap-5 .select2-search__field{min-height:34px}.logsheet-table .select2-container,.segment-table .select2-container{min-width:170px!important}.logsheet-table .select2-container--bootstrap-5 .select2-selection,.segment-table .select2-container--bootstrap-5 .select2-selection{min-height:32px;font-size:.82rem}.logsheet-table .select2-selection__rendered,.segment-table .select2-selection__rendered{line-height:30px!important}.logsheet-table .select2-selection__arrow,.segment-table .select2-selection__arrow{height:30px!important}@media(max-width:768px){main.container-fluid{padding-left:8px!important;padding-right:8px!important}.duty-common-row .col-md-2,.duty-common-row .col-md-5{margin-bottom:8px}.duty-entry-table{min-width:980px}.duty-action-footer{position:sticky;bottom:0;background:#fff;padding:12px;border-radius:14px;box-shadow:0 -8px 24px rgba(16,42,67,.12);z-index:20}.duty-action-footer .btn{width:100%;min-width:0}.logsheet-table{min-width:1500px}.segment-table{min-width:1200px}.dor-wide-scroll{border:1px solid #dbe5ef;border-radius:12px}.navbar-brand{font-size:.9rem}}


/* v4.1 safe viewport/table scroll fix
   Goal: prevent whole-page horizontal scroll WITHOUT clipping navbar dropdowns
   or disturbing Bootstrap/DataTables layouts. */
html,body{max-width:100%;overflow-x:hidden!important}
body{min-width:0}
main.container-fluid{width:100%;max-width:100%;min-width:0;overflow-x:hidden;padding-left:12px;padding-right:12px}
/* Navbar must stay overflow visible; otherwise Operation/HR/EV Depot dropdowns get clipped */
.navbar,.navbar .container-fluid,.navbar-collapse,.navbar-nav,.nav-item.dropdown{overflow:visible!important}
.navbar{z-index:1040}.navbar .dropdown-menu{z-index:2050}
.navbar-brand{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72vw}
/* Cards/rows should shrink inside viewport instead of pushing body width */
main .row,main [class^="col-"],main [class*=" col-"],main .card,main .card-body,.logsheet-page,.duty-page,.logsheet-card,.segment-box{min-width:0;max-width:100%}
.card{overflow:visible}
/* Horizontal scroll lives inside table wrappers only */
.table-responsive,.dor-wide-scroll,.duty-table-wrap,.ms-table-scroll{display:block;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;border-radius:12px}
.table-responsive>table,.dor-wide-scroll>table,.duty-table-wrap>table,.ms-table-scroll>table{margin-bottom:0;max-width:none}
.dor-wide-scroll>table,.duty-table-wrap>table{width:max-content}
/* Keep DataTables control/header responsive but do not hide its own dropdown/button UI */
.dataTables_wrapper{width:100%;max-width:100%;min-width:0;overflow:visible!important}
.dataTables_wrapper .row{margin-left:0;margin-right:0;max-width:100%}
.dataTables_wrapper table{max-width:none}
.dataTables_wrapper .dataTables_scroll,.dataTables_wrapper .dataTables_scrollHead,.dataTables_wrapper .dataTables_scrollBody{max-width:100%!important;overflow-x:auto!important}
.dt-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.dt-buttons .btn{margin-right:0}
.dataTables_filter{text-align:right}.dataTables_filter input{max-width:260px;width:100%;margin-left:.35rem}
/* Select2 must not create page overflow */
.select2-container{max-width:100%!important}.select2-dropdown{max-width:calc(100vw - 24px)!important;z-index:2060!important}
/* Logsheet sticky action bar: contained inside card, not wider than viewport */
.logsheet-card{overflow:visible}
.logsheet-card .dor-action-bar{position:sticky;bottom:0;left:0;right:0;max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:#fffffff2;backdrop-filter:blur(4px);border-top:1px solid #dbe7f3;padding:12px;z-index:50;border-radius:14px;box-shadow:0 -8px 24px rgba(16,42,67,.10)}
.logsheet-card .dor-action-bar .btn{white-space:normal}
@media(max-width:768px){
  main.container-fluid{padding-left:8px!important;padding-right:8px!important}
  .navbar-brand{font-size:.9rem;max-width:68vw}.navbar .dropdown-menu{max-width:calc(100vw - 16px)}
  .card{border-radius:14px}.logsheet-card{padding:.75rem!important}
  .logsheet-kpis{--bs-gutter-x:.5rem;--bs-gutter-y:.5rem}.logsheet-kpis .card{min-height:78px;padding:.75rem!important}.logsheet-kpis .small{font-size:.72rem}.logsheet-kpis .kpi{font-size:1.1rem}
  .table-responsive,.dor-wide-scroll,.duty-table-wrap,.ms-table-scroll{border:1px solid #dbe5ef;background:#fff}
  .logsheet-table{min-width:1450px!important}.segment-table{min-width:1050px!important}.vehicle-segment-table{min-width:1320px!important}.driver-segment-table{min-width:1350px!important}.duty-entry-table{min-width:850px!important}
  .logsheet-card .dor-action-bar{border-radius:12px;display:grid;grid-template-columns:1fr;gap:.5rem}.logsheet-card .dor-action-bar .btn{width:100%;min-width:0}
  .dataTables_wrapper .row>[class*=col-]{padding-left:0;padding-right:0;margin-bottom:.35rem}.dt-buttons .btn{flex:1 1 auto}.dataTables_filter{text-align:left!important}.dataTables_filter input{width:100%!important;max-width:none;margin-left:0!important}.dataTables_length select{width:auto!important}
}

/* v4.2 final DOR report layout */
.report-table-wrap{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border-radius:12px;}
.report-table th{white-space:nowrap;font-size:12px;vertical-align:middle;}
.report-table td{font-size:12px;vertical-align:middle;}
.minw-180{min-width:180px!important}.minw-220{min-width:220px!important}.minw-240{min-width:240px!important}.minw-260{min-width:260px!important}.minw-300{min-width:300px!important}
.report-filter-card .select2-container{width:100%!important;}
@media(max-width:768px){
  .report-table-wrap{margin-left:-.25rem;margin-right:-.25rem;}
  .report-table th,.report-table td{font-size:11px;}
  .report-filter-card .btn{min-height:38px;}
}


/* v4.4 Fleet/SOC + HQ dashboard final polish */
.dt-buttons .btn.btn-outline-secondary{color:#495057!important;background:#fff!important;border-color:#6c757d!important}
.dt-buttons .btn.btn-outline-secondary:hover{color:#fff!important;background:#6c757d!important}
.vehicle-two-line b,.driver-two-line b{display:block;line-height:1.15}.vehicle-two-line .small,.driver-two-line .small{display:block;line-height:1.2}.fleet-chip{font-size:.72rem;background:#eef6ff;color:#0b5ed7;border:1px solid #cfe2ff;border-radius:999px;padding:.08rem .45rem;white-space:nowrap}.soc-cell{min-width:78px}.allocation-table th,.allocation-table td{vertical-align:middle}.editable.saving{background:#e7f1ff!important}.editable.saved{background:#e8fff0!important}.editable.error{background:#ffe7e7!important;outline:2px solid #dc3545!important}.duty-entry-table{min-width:1180px}.duty-entry-table th{white-space:nowrap}.hq-card{border:0;border-radius:18px;background:#fff;box-shadow:0 8px 30px #102a4312}.hq-kpi .kpi{font-size:1.75rem}.hq-sub{font-size:.78rem;color:#6c757d}.bar-track{height:9px;border-radius:999px;background:#edf2f7;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#0d6efd,#20c997)}.bar-fill.warn{background:linear-gradient(90deg,#ffc107,#fd7e14)}.bar-fill.bad{background:linear-gradient(90deg,#dc3545,#fd7e14)}.mini-table th,.mini-table td{font-size:.78rem;vertical-align:middle}.dashboard-grid .card{height:100%}.dash-section-title{font-weight:800;letter-spacing:-.02em}.table-responsive>.allocation-table{min-width:1780px}.vehicle-segment-table{min-width:1380px!important}.driver-segment-table{min-width:1350px!important}
@media(max-width:768px){.hq-kpi .kpi{font-size:1.25rem}.dashboard-grid{--bs-gutter-x:.6rem;--bs-gutter-y:.6rem}.dashboard-grid .card{border-radius:14px}.mini-table th,.mini-table td{font-size:.72rem}.table-responsive>.allocation-table{min-width:1720px}.vehicle-segment-table{min-width:1320px!important}.duty-entry-table{min-width:1120px!important}.duty-action-footer{grid-template-columns:1fr}.duty-action-footer .btn{width:100%}}
