/* ==========================================================================
   Reports & KPI — page bundle
   css/pages/reports.css  ·  hand-authored page chrome

   Above the marker: the five report views (Full Trip, Trip Legs, UpCountry,
   UpCountry KPI, Second Trips) and their shared filter/result furniture.
   Below the marker tools/build_design.py compiles the shared workspace shell,
   the shared operational components and the trip audit timeline.

   Sections: P1 report page furniture · P2 filters · P3 result tables
             P4 Full Trip legs & details · P5 Trips Database rows
             P6 UpCountry KPI · P7 Second Trips · P8 responsive
   ========================================================================== */

/* ------------------------ P1 Report page furniture ---------------------- */
/* Each report view opens with its own heading block. */
.report-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:4px 0 12px;}
.report-page-heading h2{font-size:20px;}
.report-page-heading p{color:var(--muted);font-size:12.5px;margin-top:4px;max-width:90ch;}
.report-page-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.report-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;
padding:13px 15px;border-bottom:1px solid var(--border);background:var(--panel2);}
.report-panel-head>div{display:flex;flex-direction:column;gap:2px;min-width:0;}
.report-panel-head h3,.report-panel-head strong{font-size:15px;font-weight:800;}
.report-panel-head span{font-size:12px;color:var(--muted);}
.report-panel-head .secondary{margin-top:0;}
.report-source-banner:empty{display:none;}
.report-source-banner{display:flex;align-items:center;gap:8px;padding:9px 13px;margin-bottom:13px;
border:1px solid var(--infoline);border-radius:var(--radius-sm);background:var(--infobg);font-size:12.5px;color:#12376e;}
/* "Run the report" gate shown before a query has been executed. */
.report-run-gate{display:flex;align-items:center;gap:13px;padding:22px;margin-bottom:14px;
border:1px dashed var(--line);border-radius:var(--radius);background:var(--panel2);}
.report-run-gate-mark{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;
border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:19px;font-weight:800;}
.report-run-gate-copy{min-width:0;font-size:13px;color:var(--text2);}
.report-run-gate-copy strong{display:block;font-size:14.5px;color:var(--text);margin-bottom:2px;}
.report-trip-id-with-timeline{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.report-trip-timeline-btn{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;
border:1px solid var(--line);border-radius:var(--radius-xs);background:#fff;color:var(--primary);}
.report-trip-timeline-btn svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;
stroke-linecap:round;stroke-linejoin:round;}
.report-trip-timeline-btn:hover{background:var(--primary-soft);border-color:#9fc0d5;}
.report-trip-timeline-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px;}
.report-movement-label{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);}
/* Release-gate contract: an EMPTY movement row is a continuation of the trip
   above it, not a row of its own. */
#completedView .report-empty-movement-row,#completedView .report-empty-movement-row>td{
background:transparent!important;border-top:0!important;}
.report-empty-movement-row>td{background:transparent!important;border-top:0!important;}
.report-empty-movement-badge{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);
background:var(--panel2);border:1px solid var(--border);font-size:10px;font-weight:800;color:var(--muted);}
.report-empty-movement-details{font-size:11.5px;color:var(--muted);}

/* ------------------------------ P2 Filters ------------------------------ */
/* A report's filter section is a panel; .filter-grid lays out the fields AND
   the run/reset/export buttons that sit inside it. */
.history-controls,.combined-completed-controls,.local-report-controls{display:block;padding:14px 15px;margin-bottom:14px;
background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:11px;align-items:end;}
.combined-completed-filter-grid,.local-report-filter-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));}
.filter-grid>.btn{height:42px;align-self:end;}
.combined-completed-search{grid-column:span 2;min-width:0;}
.check-row{display:flex;align-items:center;gap:8px;font-size:13px;height:42px;align-self:end;}
.check-row input{flex:none;}
/* Multi-select filter built on <details>: summary is the control, the
   checkbox list is its dropdown. */
.kpi-region-filter-field{min-width:0;}
.kpi-region-select{position:relative;min-width:0;}
.kpi-region-select>summary{list-style:none;cursor:pointer;height:42px;display:flex;align-items:center;
justify-content:space-between;gap:6px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);
background:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kpi-region-select>summary::-webkit-details-marker{display:none;}
.kpi-region-select>summary::after{content:"⌄";flex:none;color:var(--muted);font-size:13px;line-height:1;}
.kpi-region-select>summary:hover{border-color:#bcc7d4;}
.kpi-region-select[open]>summary{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);}
.kpi-region-checkboxes{position:absolute;z-index:35;top:calc(100% + 5px);inset-inline-start:0;min-width:100%;
max-width:330px;max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:6px;
background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);}
.kpi-region-check{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius-xs);
font-size:13px;cursor:pointer;white-space:nowrap;}
.kpi-region-check:hover{background:var(--panel2);}
.kpi-region-check input{flex:none;}

/* --------------------------- P3 Result tables --------------------------- */
/* Report tables carry long, multi-word headers: sentence case reads faster
   than the shell's compact uppercase. */
.full-trip-report-table,.all-completed-table,.all-trips-comprehensive-table,
.latest-upcountry-table,.local-report-table,.upcountry-daily-summary-table,
.full-trip-fleet-region-table,.local-last7-table,.full-trip-legs-table{width:100%;font-size:12.5px;}
.full-trip-report-table th,.all-completed-table th,.all-trips-comprehensive-table th,
.latest-upcountry-table th,.local-report-table th,.upcountry-daily-summary-table th,
.full-trip-fleet-region-table th,.local-last7-table th,.full-trip-legs-table th{
font-size:11.5px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--muted);}
.full-trip-report-table td,.all-completed-table td,.all-trips-comprehensive-table td,
.latest-upcountry-table td,.local-report-table td{padding:10px 11px;vertical-align:top;}
/* Every "<span>label</span><strong>value</strong>" pair in a report cell is a
   two-part line: muted label, then the value it belongs to. */
.all-trips-db-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:11.5px;line-height:1.45;}
.all-trips-db-line>span:first-child{color:var(--muted);}
.all-trips-db-line>strong{font-weight:700;color:var(--text);}
.full-trip-result-total{display:block;font-size:12.5px;font-weight:800;color:var(--text);margin-bottom:2px;}
.full-trip-result-total.movement{color:var(--info);}
.full-trip-result-total.credit{color:#5925dc;}
.full-trip-result-line.loaded>strong{color:var(--success);}
.full-trip-result-line.movement-empty>strong{color:#c11574;}
.full-trip-result-line.credit>strong{color:#5925dc;}
.all-trips-db-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;}
.all-trips-db-cell>.second-trip-status,.all-trips-db-cell>.all-trips-type-pill{align-self:flex-start;}
.all-trips-db-trip{gap:5px;}
.trip-leg-plate{font-weight:800;letter-spacing:.02em;}
.all-trips-db-route.full{color:var(--primary2);}
.full-trip-fleet-region-block{padding:14px 15px;border-top:1px solid var(--border);background:var(--panel2);}
.full-trip-fleet-region-block>div:first-child{display:flex;flex-direction:column;gap:2px;margin-bottom:9px;}
.full-trip-fleet-region-block strong{font-size:13.5px;}
.full-trip-fleet-region-block span{font-size:11.5px;color:var(--muted);}
.full-trip-fleet-region-table th,.full-trip-fleet-region-table td{padding:8px 10px;}
.upcountry-daily-summary-block{padding:14px 15px;border-top:1px solid var(--border);background:var(--panel2);}
.upcountry-summary-divider{height:1px;background:var(--border);margin:13px 0;}
.latest-upcountry-panel,.local-report-panel,.local-last7-panel{margin-top:14px;}
.daily-completed{color:var(--success);font-weight:700;}
.daily-active{color:var(--info);font-weight:700;}
.daily-cancelled{color:var(--danger);font-weight:700;}
.operational-category-stack{display:flex;flex-direction:column;gap:2px;min-width:0;}
.operational-category-stack-item{font-size:11.5px;color:var(--text2);}
.operational-category-stack-item:first-child{font-weight:700;color:var(--text);}
.operational-category-stack-arrow{color:var(--faint);font-size:10px;}
.trip-leg-mobile-label{display:none;}
.trip-leg-credit-types{display:flex;flex-wrap:wrap;gap:4px;}
.trip-leg-credit-type,.full-trip-credit-type{display:inline-flex;padding:2px 7px;border-radius:var(--radius-pill);
background:var(--primary-soft);border:1px solid #c7dcea;font-size:10px;font-weight:800;color:var(--primary2);}
.full-trip-credit-types{display:flex;flex-wrap:wrap;gap:4px;}
.trip-leg-credit-count{font-weight:800;}
.trip-leg-credit-region{font-size:10.5px;color:var(--muted);}
.trip-leg-no-credit{color:var(--faint);}

/* --------------------- P4 Full Trip legs & details ---------------------- */
/* The Details column is the table's trailing edge: header and toggle share the
   same alignment and never sit flush against the panel border. */
.all-trips-details-head{text-align:end;white-space:nowrap;padding-inline-end:16px;}
.all-trips-details-cell{text-align:end;white-space:nowrap;padding-inline-end:16px!important;vertical-align:top;}
.all-trips-details-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line);
border-radius:var(--radius-xs);background:#fff;font-size:12px;font-weight:700;color:var(--text2);}
.all-trips-details-toggle:hover{background:var(--panel2);border-color:#bcc7d4;}
.all-trips-details-toggle{margin-inline-start:auto;}
.all-trips-details-chevron{transition:transform .15s;font-size:10px;color:var(--muted);}
.details-open .all-trips-details-chevron{transform:rotate(180deg);}
.all-trips-details-row>td{padding:0!important;background:var(--panel2)!important;}
.all-trips-details-panel{padding:14px 15px;border-top:1px solid var(--border);
border-inline-start:3px solid var(--primary);}
/* .all-trips-details-head is the <th> of the Details column only — it is not a
   panel heading, and turning it into a flex box breaks the header row. */
.all-trips-details-label{font-weight:700;color:inherit;}
.all-trips-details-toggle[aria-expanded=true]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);}
.all-trips-detail-card{padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;}
.all-trips-detail-card h4{font-size:12.5px;font-weight:800;margin-bottom:7px;}
.all-trips-detail-card-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;}
.all-trips-detail-route{font-weight:800;color:var(--primary2);}
.full-trip-details-panel{background:var(--panel2);}
.full-trip-legs-shell{margin-top:11px;}
/* "<strong>Credit by City</strong><span>Jeddah · West: 1</span>" — title on the
   leading edge, detail on the trailing edge, never run together. */
.full-trip-legs-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
margin:11px 0 7px;}
.full-trip-legs-title strong{font-size:13px;font-weight:800;color:var(--text);}
.full-trip-legs-title span{font-size:11.5px;color:var(--muted);}
.full-trip-legs-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;}
/* Each leg cell is "<strong>value</strong><small>detail</small>" or a run of
   <span><b>label</b> value</span>. Both must stack, never run together. */
.full-trip-legs-table{font-size:12px;}
.full-trip-legs-table th{background:var(--panel2);}
.full-trip-legs-table td{vertical-align:top;padding:10px 11px;}
.full-trip-legs-table td>strong{display:block;font-weight:700;}
.full-trip-legs-table td>small{display:block;font-size:11px;color:var(--muted);margin-top:2px;}
.full-trip-legs-table td>small+small{margin-top:1px;}
.full-trip-legs-loading,.full-trip-legs-empty,.full-trip-legs-placeholder{padding:16px;text-align:center;
font-size:12.5px;color:var(--muted);}
.full-trip-legs-error{padding:12px 14px;border:1px solid var(--dangerline);border-radius:var(--radius-sm);
background:var(--dangerbg);color:var(--danger);font-size:12.5px;}
.full-trip-legs-warning{padding:10px 13px;border:1px solid var(--warnline);border-radius:var(--radius-sm);
background:var(--warnbg);color:var(--warn);font-size:12px;margin-bottom:9px;}
.full-trip-legs-host{min-width:0;}
.full-trip-leg-route-cell{min-width:190px;font-weight:700;}
.full-trip-leg-timeline{font-size:11px;color:var(--muted);}
.full-trip-leg-timeline span{display:block;white-space:nowrap;}
.full-trip-leg-timeline span+span{margin-top:2px;}
.full-trip-leg-timeline b{font-weight:700;color:var(--text2);margin-inline-end:4px;}
.full-trip-leg-load{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);
font-size:10.5px;font-weight:800;background:var(--panel2);color:var(--text2);}
.full-trip-leg-load.loaded{background:var(--successbg);color:var(--success);}
.full-trip-leg-load.empty{background:var(--panel2);color:var(--muted);}
.full-trip-leg-credit{font-size:11.5px;}
.full-trip-legs-table td>strong.full-trip-leg-credit{font-size:12px;font-weight:800;color:#5925dc;}
.full-trip-legs-table td>strong.full-trip-leg-credit.no{color:var(--faint);font-weight:700;}
.full-trip-leg-route-cell>strong{white-space:nowrap;}
.full-trip-reference-strip{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px;}
.full-trip-reference-strip span{display:inline-flex;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);
background:#fff;border:1px solid var(--border);font-size:11px;color:var(--text2);}
.full-trip-summary-timeline{display:flex;flex-direction:column;gap:4px;}
.full-trip-summary-time-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:7px;}
.full-trip-summary-time-item>span{font-size:9.5px;color:var(--muted);letter-spacing:.02em;}
.full-trip-summary-time-item>strong{font-size:10.5px;font-weight:700;white-space:nowrap;}
.full-trip-summary-time-item>small{font-size:9.5px;color:var(--muted);white-space:nowrap;}
.full-trip-summary-time-cell{min-width:0;}
.full-trip-summary-duration{display:flex;align-items:baseline;gap:6px;padding-top:4px;
border-top:1px dashed var(--border);font-size:9.5px;}
.full-trip-summary-duration>span{color:var(--muted);}
.full-trip-summary-duration>strong{font-weight:800;color:var(--text);}

/* ----------------------- P5 Trips Database rows ------------------------- */
.all-trips-db-row td{vertical-align:top;}
.all-trips-db-cell{min-width:0;}
.all-trips-db-trip-id,.all-trips-db-trip{font-weight:800;white-space:nowrap;}
.all-trips-db-route{font-weight:700;}
.all-trips-db-line{font-size:11.5px;color:var(--text2);}
.all-trips-db-muted{font-size:11px;color:var(--muted);}
.all-trips-leg-list{display:flex;flex-direction:column;gap:3px;}
.all-trips-leg-line{font-size:11.5px;color:var(--text2);}
.all-trips-type-line{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.all-trips-type-pill,.all-trips-backload-pill,.all-trips-external-pill{display:inline-flex;align-items:center;gap:4px;
padding:2px 8px;border-radius:var(--radius-pill);font-size:10.5px;font-weight:700;background:var(--panel2);
border:1px solid var(--border);color:var(--text2);white-space:nowrap;}
.all-trips-type-pill i{font-style:normal;color:var(--faint);}
.all-trips-type-pill strong{font-weight:800;}
.all-trips-type-pill.second{background:#f4f3ff;border-color:#d9d6fe;color:#5925dc;}
.all-trips-type-pill.first{background:var(--primary-soft);border-color:#c7dcea;color:var(--primary2);}
.all-trips-backload-pill{background:var(--successbg);border-color:var(--successline);color:var(--success);}
.all-trips-external-pill{background:var(--warnbg);border-color:var(--warnline);color:var(--warn);}
/* ".empty" here is a modifier on the pill, not a block empty-state. */
.all-trips-external-pill.empty{padding:2px 8px;text-align:start;background:var(--panel2);
border-color:var(--border);color:var(--muted);}
.all-trips-backload-line{font-size:11px;color:var(--muted);}
.all-trips-op-category{font-weight:700;}

/* --------------------------- P6 UpCountry KPI --------------------------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px;}
.kpi-card{padding:14px;}
.kpi-label{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.kpi-value{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-top:3px;}
.kpi-sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.kpi-breakdown{padding:14px;margin-bottom:14px;}
.kpi-breakdown-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.kpi-breakdown-title{font-size:14px;font-weight:800;}
.kpi-breakdown-note{font-size:11.5px;color:var(--muted);margin-top:2px;max-width:70ch;}
.kpi-breakdown-total{font-size:12px;font-weight:800;color:var(--primary);}
.kpi-city-list{display:flex;flex-direction:column;gap:11px;}
.kpi-city-row{min-width:0;}
.kpi-city-line{display:flex;align-items:baseline;justify-content:space-between;gap:9px;}
.kpi-city-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kpi-city-count{font-size:13px;font-weight:800;color:var(--primary);flex:none;}
.kpi-city-track,.kpi-region-track,.kpi-truck-fill+.kpi-truck-fill{height:7px;border-radius:4px;background:var(--bg2);overflow:hidden;margin-top:5px;}
.kpi-city-fill,.kpi-region-fill{height:100%;border-radius:4px;background:var(--primary);transition:width .35s ease;}
.kpi-region-fill.trip{background:var(--primary);}
.kpi-region-fill.leg{background:#0ba5ec;}
.kpi-region-card{padding:14px;margin-bottom:14px;}
.kpi-region-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:11px;}
.kpi-region-title{font-size:14px;font-weight:800;}
.kpi-region-note{font-size:11.5px;color:var(--muted);margin-top:2px;max-width:70ch;}
.kpi-region-scope{font-size:11.5px;font-weight:700;color:var(--primary);}
.kpi-region-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:11px;}
.kpi-region-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);}
.kpi-region-dot{width:9px;height:9px;border-radius:50%;background:var(--primary);}
.kpi-region-legend-item:last-child .kpi-region-dot{background:#0ba5ec;}
.kpi-region-list{display:flex;flex-direction:column;gap:11px;}
.kpi-region-row{padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.kpi-region-row-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:9px;}
.kpi-region-name{font-size:13.5px;font-weight:800;}
.kpi-region-top{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);background:var(--successbg);
border:1px solid var(--successline);font-size:10px;font-weight:800;color:var(--success);}
.kpi-region-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:11px;}
.kpi-region-metric{min-width:0;}
.kpi-region-metric-head{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:9px;}
.kpi-region-metric-head .kpi-region-track{margin-top:0;}
.kpi-region-metric-label{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.kpi-region-rate{font-size:13px;font-weight:800;white-space:nowrap;}
.kpi-region-detail{font-size:11.5px;color:var(--muted);margin-top:4px;}
.kpi-region-empty{padding:18px;text-align:center;font-size:12.5px;color:var(--muted);}
/* Backload truck cards. The inline SVG is drawn on a 720x260 canvas: let it
   keep that aspect and cap its width so it never stretches across a wide card. */
.kpi-truck-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:13px;margin-bottom:14px;}
.kpi-truck-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;overflow:hidden;
background:linear-gradient(165deg,#faf9ff 0%,#fff 55%);}
.kpi-truck-card.leg-level{background:linear-gradient(165deg,#f5faff 0%,#fff 55%);}
.kpi-truck-copy{min-width:0;}
.kpi-truck-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.kpi-truck-eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7f56d9;}
.kpi-truck-card.leg-level .kpi-truck-eyebrow{color:#0ba5ec;}
.kpi-truck-title{font-size:17px;font-weight:800;margin-top:3px;}
.kpi-truck-note{font-size:11.5px;color:var(--muted);margin-top:5px;max-width:58ch;line-height:1.5;}
.kpi-truck-rate-row{display:flex;align-items:baseline;gap:7px;flex:none;}
.kpi-truck-rate{font-size:30px;font-weight:900;letter-spacing:-.025em;line-height:1;color:#5925dc;}
.kpi-truck-card.leg-level .kpi-truck-rate{color:#0086c9;}
.kpi-truck-rate-label{font-size:11px;color:var(--muted);white-space:nowrap;}
.kpi-truck-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;}
.kpi-truck-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);
background:#fff;border:1px solid var(--border);font-size:11.5px;color:var(--muted);}
.kpi-truck-chip strong{font-size:13px;font-weight:800;color:var(--text);}
.kpi-truck-chip.positive{background:var(--successbg);border-color:var(--successline);color:var(--success);}
.kpi-truck-chip.positive strong{color:var(--success);}
.kpi-truck-scope{font-size:11px;color:var(--faint);margin-top:10px;}
.kpi-truck-visual{display:flex;justify-content:center;min-width:0;margin-top:4px;}
.kpi-truck-svg{width:100%;max-width:540px;height:auto;display:block;}
/* js/history-kpi.js animates this rect with transform:scaleX(). In SVG the
   default transform-box is view-box with a 0 0 origin, so the rect scales out
   of the cargo bay and lands left of the truck. Anchor it to its own box. */
.kpi-truck-fill{transform-box:fill-box;transform-origin:left center;transition:transform .55s ease;}
.kpi-truck-card.kpi-truck-energized .kpi-truck-wheel{transform-box:fill-box;transform-origin:center;animation:tocWheel 1.6s linear infinite;}
@keyframes tocWheel{to{transform:rotate(360deg)}}
.kpi-truck-card.kpi-truck-complete{border-color:var(--successline);box-shadow:0 0 0 3px rgba(6,118,71,.09);}
/* Free Trip metrics */
.free-trip-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px;margin-bottom:13px;}
.free-trip-metric{padding:12px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.free-trip-metric-label{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.free-trip-metric-value{font-size:22px;font-weight:800;line-height:1.15;margin-top:3px;}
.free-trip-metric-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.free-trip-origin-title{font-size:13px;font-weight:800;margin:13px 0 7px;}

/* ---------------------------- P7 Second Trips --------------------------- */
.local-report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px;padding:14px 15px;
border-bottom:1px solid var(--border);background:var(--panel2);}
.local-report-kpi{padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;}
.local-report-kpi span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.local-report-kpi strong{display:block;font-size:20px;font-weight:800;margin-top:2px;}
.local-trips-view{min-width:0;}
.second-trip-update-modal .modal-body,.second-trip-cancel-modal .modal-body{padding-top:16px;}
.second-trip-update-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-bottom:14px;}
.second-trip-update-summary>div{padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.second-trip-status{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);
font-size:10.5px;font-weight:800;background:var(--panel2);color:var(--text2);white-space:nowrap;}
.second-trip-status.transit{background:var(--infobg);color:var(--info);}
.second-trip-status.done{background:var(--successbg);color:var(--success);}
.second-trip-status.cancelled{background:var(--dangerbg);color:var(--danger);}

/* --------------------------- P8 Reports responsive ---------------------- */
@media (max-width:1100px){
  .kpi-truck-duo{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:900px){
  .filter-grid,.combined-completed-filter-grid,.local-report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .combined-completed-search{grid-column:1/-1;}
  .kpi-region-metric-head{grid-template-columns:minmax(0,1fr);gap:5px;}
  .kpi-region-metric-head .kpi-region-track{margin-top:2px;}
  .check-row{padding-top:0;}
}
@media (max-width:700px){
  .filter-grid,.combined-completed-filter-grid,.local-report-filter-grid{grid-template-columns:minmax(0,1fr);}
  .kpi-region-checkboxes{max-width:none;}
  .kpi-grid,.free-trip-metric-grid,.local-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .kpi-truck-rate{font-size:23px;}
  .report-run-gate{flex-direction:column;align-items:flex-start;text-align:start;}
  .trip-leg-mobile-label{display:block;font-size:9.5px;font-weight:800;letter-spacing:.06em;
    text-transform:uppercase;color:var(--faint);}
}
@media (max-width:520px){
  .kpi-grid,.free-trip-metric-grid,.local-report-kpis{grid-template-columns:minmax(0,1fr);}
  .all-trips-detail-card-body{grid-template-columns:minmax(0,1fr);}
}

/* --------- P9 Trip Legs mobile contract (release-gate marker set) -------- */
/* Trip Legs carries its own labels in markup, so it opts out of the legacy
   36% label reservation and uses the full card width on mobile. */
body.mobile-ui #allCompletedView .all-trips-comprehensive-table tr.all-trips-db-row>td{
justify-content:flex-start!important;text-align:start!important;padding:9px 11px!important;}
body.mobile-ui #allCompletedView .all-trips-comprehensive-table tr.all-trips-db-row>td::before{content:none!important;}
body.mobile-ui #allCompletedView .all-trips-comprehensive-table tr.all-trips-db-row>td>*{max-width:none!important;width:100%!important;}

/* -------- P10 Full Trip Report column budget (v0.10.5.293) --------------
   Nine columns with no per-column classes, so the widths are declared here by
   position. table-layout:fixed stops the browser from re-proportioning them
   around whichever driver name happens to be longest, and a min-width lets the
   surrounding .table-wrap scroll instead of squeezing a heading onto two lines. */
@media (min-width:901px){
  .full-trip-report-table{table-layout:fixed;width:100%;min-width:1080px;}
  .full-trip-report-table thead th{white-space:nowrap;}
  .full-trip-report-table>thead>tr>*:nth-child(1),
  .full-trip-report-table>tbody>tr>*:nth-child(1){width:13%;}
  .full-trip-report-table>thead>tr>*:nth-child(2),
  .full-trip-report-table>tbody>tr>*:nth-child(2){width:11%;}
  .full-trip-report-table>thead>tr>*:nth-child(3),
  .full-trip-report-table>tbody>tr>*:nth-child(3){width:16%;}
  .full-trip-report-table>thead>tr>*:nth-child(4),
  .full-trip-report-table>tbody>tr>*:nth-child(4){width:10%;}
  .full-trip-report-table>thead>tr>*:nth-child(5),
  .full-trip-report-table>tbody>tr>*:nth-child(5){width:9%;}
  .full-trip-report-table>thead>tr>*:nth-child(6),
  .full-trip-report-table>tbody>tr>*:nth-child(6){width:9%;}
  .full-trip-report-table>thead>tr>*:nth-child(7),
  .full-trip-report-table>tbody>tr>*:nth-child(7){width:12%;}
  .full-trip-report-table>thead>tr>*:nth-child(8),
  .full-trip-report-table>tbody>tr>*:nth-child(8){width:14%;}
  .full-trip-report-table>thead>tr>*:nth-child(9),
  .full-trip-report-table>tbody>tr>*:nth-child(9){width:6%;}
  /* Driver: one line, clipped with an ellipsis, full name on hover */
  .full-trip-report-table>tbody>tr>td:nth-child(7){overflow:hidden;}
  .full-trip-report-table>tbody>tr>td:nth-child(7),
  .full-trip-report-table>tbody>tr>td:nth-child(7)>*{min-width:0;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  /* the long route reads better wrapped than clipped */
  .full-trip-report-table>tbody>tr>td:nth-child(3),
  .full-trip-report-table>tbody>tr>td:nth-child(4){overflow-wrap:anywhere;}
}

/* ------------------------ P9 Region Overview (v0.10.5.335) -------------- */
/* Its own first Reports tab (v0.10.5.340), so the five cards are large: three
   per row on desktop. Credits for the period on violet, then volume and
   efficiency. The top edge is teal, orchid when Credited Trips % fell. */
.region-overview{margin:4px 0 16px;}
.region-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-bottom:14px;}
.region-overview-head h3{font-size:20px;font-weight:800;color:#2a1446;}
.region-overview-head span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;}
.region-overview-periods{display:inline-flex;flex-wrap:wrap;padding:4px;gap:3px;border-radius:var(--radius-sm);background:#efeaf9;}
.region-overview-periods button{border:0;background:none;padding:7px 13px;border-radius:var(--radius-xs);font:inherit;font-size:13px;font-weight:700;color:#5b3a86;cursor:pointer;}
.region-overview-periods button.active{background:linear-gradient(135deg,#6a4fb8,#4b1e75);color:#fff;box-shadow:0 2px 6px rgba(75,30,117,.25);}
.region-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;transition:opacity .15s;}
.region-overview-grid.is-loading{opacity:.55;}
.region-overview-loading{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);font-size:14px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--panel);}
.region-overview-loading.error{color:var(--danger);}
.ro-card{display:flex;flex-direction:column;min-width:0;background:var(--panel);border:1px solid #e4def3;border-radius:16px;
overflow:hidden;box-shadow:0 6px 20px rgba(42,20,70,.07);border-top:5px solid #0f8b8d;}
.ro-card.hot{border-top-color:#a3307f;}
.ro-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 10px;min-height:24px;}
.ro-card-head strong{font-size:17px;font-weight:800;color:#2a1446;letter-spacing:.02em;}
.ro-trend{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap;}
.ro-trend.up{background:#e7f6ef;color:#067647;}
.ro-trend.down{background:#fbeaf3;color:#a3307f;}
.ro-trend.flat{background:#f1eff6;color:var(--muted);}
/* v0.10.5.350: what the Credited % means, under the card title */
.ro-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}
.ro-live{display:block;margin:0 12px;padding:12px 14px;border-radius:11px;background:linear-gradient(135deg,#2e1049,#4f217d);color:#fff;}
.ro-live .ro-kicker{color:rgba(236,224,255,.7);}
.ro-live-grid,.ro-perf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.ro-live-grid span,.ro-perf-grid span{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ro-live-grid b{font-size:26px;font-weight:800;line-height:1.05;}
.ro-live-grid small{font-size:11.5px;color:rgba(236,224,255,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* v0.10.5.356 (layout B): Earning Trips % hero + compact Credit list */
.ro-hero{display:flex;align-items:center;gap:14px;margin:0 12px;padding:13px 14px;border-radius:11px;background:linear-gradient(135deg,#2e1049,#4f217d);color:#fff;}
.ro-hero-rate{display:flex;flex-direction:column;gap:4px;flex:0 0 46%;min-width:0;}
.ro-hero-rate b{font-size:38px;font-weight:800;line-height:1;letter-spacing:-.01em;}
.ro-hero-rate small{font-size:11.5px;line-height:1.3;color:rgba(236,224,255,.82);text-wrap:balance;}
.ro-hero-list{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;padding-left:14px;border-left:1px solid rgba(255,255,255,.18);}
.ro-hero-list span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.ro-hero-list small{font-size:12.5px;color:rgba(236,224,255,.85);white-space:nowrap;}
.ro-hero-list b{font-size:16px;font-weight:800;}
.ro-perf{padding:13px 16px 15px;}
.ro-perf-grid{row-gap:12px;}
.ro-perf-grid b{font-size:19px;font-weight:800;color:#2a1446;line-height:1.1;}
.ro-perf-grid small{font-size:11.5px;line-height:1.25;color:var(--muted);}
@media (max-width:1100px){.region-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:640px){
  .region-overview-grid{grid-template-columns:minmax(0,1fr);gap:14px;}
  .ro-live-grid b{font-size:24px;}
  .ro-perf-grid b{font-size:18px;}
}

/* TOC WORKSPACE DESIGN: generated by tools/build_design.py */
:root{
--bg:#eef2f7;--bg2:#e4eaf2;--panel:#fff;--panel2:#f7f9fc;
--text:#182230;--text2:#344054;--muted:#667085;--faint:#98a2b3;
--border:#e0e5ec;--border2:#eef1f5;--line:#d7dee7;
--primary:#255476;--primary2:#1a3f5a;--primary-soft:#eaf1f6;--primary-ring:rgba(37,84,118,.14);
--accent:#0d6e9b;
--success:#067647;--successbg:#ecfdf3;--successline:#abefc6;
--warn:#b54708;--warnbg:#fffaeb;--warnline:#fedf89;
--danger:#b42318;--dangerbg:#fef3f2;--dangerline:#fecdca;
--info:#1849a9;--infobg:#eff4ff;--infoline:#b2ccff;
--dark:#101828;
--shadow-1:0 1px 2px rgba(16,24,40,.06);
--shadow-2:0 4px 14px rgba(16,24,40,.08);
--shadow-3:0 14px 38px rgba(16,24,40,.16);
--radius:14px;--radius-sm:9px;--radius-xs:7px;--radius-pill:999px;
--ff:"Segoe UI",system-ui,-apple-system,Roboto,Arial,Helvetica,sans-serif;
--shadow:var(--shadow-2);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--ff);font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.01em;}
h1{font-size:19px;}h2{font-size:20px;}h3{font-size:16px;}
p{margin:0;}
a{color:var(--primary);text-decoration:none;}
img,svg{max-width:100%;}
b,strong{font-weight:700;}
small{font-size:12px;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
[hidden]{display:none!important;}
.hidden{display:none!important;}
.container{width:100%;max-width:1560px;margin:0 auto;padding:18px 20px 34px;}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;}
input,select{height:42px;padding:0 11px;}
textarea{padding:10px 11px;min-height:88px;resize:vertical;line-height:1.5;}
select{appearance:none;-webkit-appearance:none;padding-inline-end:30px;
background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
background-position:calc(100% - 16px) 19px,calc(100% - 11px) 19px;background-size:5px 5px;background-repeat:no-repeat;}
input:focus,select:focus,textarea:focus{border-color:#8fb4cc;box-shadow:0 0 0 3px var(--primary-ring);}
input[readonly],input:disabled,select:disabled,textarea:disabled{background:var(--panel2);color:var(--text2);cursor:default;}
input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;}
::placeholder{color:var(--faint);}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.field>label{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.field.full{grid-column:1/-1;}
.form-grid,.auth-form-grid,.summary-grid,.trip-action-details-grid,.second-trip-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.form-grid>.trip-edit-destination-card{grid-column:1/-1;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);
padding:9px 14px;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;background:var(--panel2);color:var(--text2);
transition:background .15s,color .15s,border-color .15s,box-shadow .15s;}
.btn:hover{background:#eef2f7;}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed;}
.btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.btn-primary,.btn-main{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--shadow-1);}
.btn-primary:hover,.btn-main:hover{background:var(--primary2);border-color:var(--primary2);}
.btn-secondary{background:#fff;border-color:var(--line);color:var(--text2);}
.btn-secondary:hover{background:var(--panel2);border-color:#bcc7d4;}
.btn-secondary.active{background:var(--primary-soft);border-color:#9fc0d5;color:var(--primary);}
.btn-success{background:var(--success);border-color:var(--success);color:#fff;}
.btn-success:hover{background:#05603a;border-color:#05603a;color:#fff;filter:none;}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff;}
.btn-danger:hover{background:#912018;border-color:#912018;color:#fff;filter:none;}
.btn-sm{padding:6px 10px;font-size:12px;}
.panel,.card,.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);}
.panel{overflow:hidden;}
.card{padding:14px;}
.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;}
table{border-collapse:collapse;width:100%;}
th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
background:var(--panel2);border-bottom:1px solid var(--border);padding:11px 12px;white-space:nowrap;}
td{border-bottom:1px solid var(--border2);padding:12px;vertical-align:middle;}
tbody tr:hover{background:#fafcfe;}
.secondary{display:block;color:var(--muted);font-size:12px;margin-top:3px;}
td.loading,td.empty,div.loading,div.empty{padding:26px 16px;text-align:center;color:var(--muted);}
.route{font-weight:700;white-space:nowrap;}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.heading{font-weight:800;}
.search{min-width:240px;flex:1 1 340px;}
.tabs{display:flex;gap:5px;flex-wrap:wrap;padding:4px;border-radius:var(--radius-sm);background:var(--panel2);}
.tab{border:0;background:transparent;color:var(--text2);padding:9px 13px;border-radius:var(--radius-xs);font-size:13px;font-weight:700;}
.tab:hover{background:#e8eef4;}
.tab.active{background:#fff;color:var(--primary);box-shadow:var(--shadow-1);}
.status,.state{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);
font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap;background:var(--panel2);color:var(--text2);}
.status.transit,.state.transit,.status.live,.state.live{background:var(--infobg);color:var(--info);}
.status.await,.state.await,.status.pending,.state.pending,.status.warn,.state.warn,.status.preparing,.state.preparing{background:var(--warnbg);color:var(--warn);}
.status.done,.state.done,.status.arrived,.state.arrived,.status.completed,.state.completed,.status.success,.state.success,.status.ready,.state.ready,.status.green,.state.green,.status.resolved,.state.resolved,.status.sent,.state.sent{background:var(--successbg);color:var(--success);}
.status.deleted,.state.deleted,.status.danger,.state.danger,.status.failed,.state.failed,.status.expired,.state.expired{background:var(--dangerbg);color:var(--danger);}
.status.info,.state.info,.status.purple,.state.purple{background:var(--primary-soft);color:var(--primary);}
.notice:empty{display:none;}
.notice{border:1px solid var(--border);border-inline-start:4px solid var(--faint);border-radius:var(--radius-sm);
background:var(--panel2);padding:11px 13px;font-size:13px;margin-bottom:14px;}
.notice.info{background:var(--infobg);border-color:var(--infoline);border-inline-start-color:var(--info);color:#12376e;}
.notice.success{background:var(--successbg);border-color:var(--successline);border-inline-start-color:var(--success);color:#054f31;}
.notice.warn{background:var(--warnbg);border-color:var(--warnline);border-inline-start-color:var(--warn);color:#7a3908;}
.notice.danger,.notice.error{background:var(--dangerbg);border-color:var(--dangerline);border-inline-start-color:var(--danger);color:#8a1c13;}
.skip-to-content{position:absolute;left:-9999px;top:0;z-index:100;background:var(--primary);color:#fff;padding:10px 16px;border-radius:0 0 var(--radius-sm) 0;font-weight:700;}
.skip-to-content:focus{left:0;}
.app-footer{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
padding:20px;color:var(--muted);font-size:12px;border-top:1px solid var(--border);background:var(--panel);}
.footer-separator{color:var(--faint);}
body.auth-locked{overflow:hidden;}
.auth-gate{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:20px;
background:linear-gradient(160deg,#0b1a3d 0%,#162f61 55%,#1f3f82 100%);}
.auth-gate.show{display:flex;}
body:not(.auth-locked) .auth-gate{display:none;}
.auth-required-backdrop{position:fixed;inset:0;z-index:119;background:rgba(16,24,40,.55);}
.auth-card{width:100%;max-width:460px;background:var(--panel);border-radius:18px;box-shadow:var(--shadow-3);padding:26px;}
.auth-brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:800;color:var(--primary);margin-bottom:14px;}
.auth-brand img{width:38px;height:38px;border-radius:9px;}
.auth-kicker{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--muted);margin-bottom:6px;}
.auth-copy{color:var(--muted);font-size:13px;margin-bottom:16px;}
.auth-card .field{margin-bottom:13px;}
.auth-submit{width:100%;height:44px;margin-top:4px;}
.auth-message{margin-top:12px;font-size:13px;font-weight:600;color:var(--danger);min-height:18px;}
.auth-message.success{color:var(--success);}
.auth-security-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--border2);font-size:11.5px;color:var(--faint);text-align:center;}
.auth-loading-panel{text-align:center;}
.auth-loading-brand{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;color:var(--primary);font-size:16px;}
.auth-loading-brand img{width:42px;height:42px;border-radius:10px;}
.auth-loading-copy{margin-top:6px;}
.auth-loading-copy h2{font-size:17px;}
.auth-loading-status{margin-top:6px;font-size:12.5px;color:var(--muted);}
.auth-loading-footer{margin-top:16px;font-size:11.5px;color:var(--faint);}
.trip-route-loader{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0 16px;}
.trip-route-point{width:9px;height:9px;border-radius:50%;background:var(--primary);flex:none;}
.trip-route-track{position:relative;flex:1;max-width:190px;height:3px;border-radius:3px;background:var(--bg2);overflow:hidden;}
.trip-route-truck{position:absolute;top:50%;left:0;font-size:17px;line-height:1;transform:translate(-50%,-62%);animation:tocRoute 2.1s cubic-bezier(.5,0,.5,1) infinite;}
@keyframes tocRoute{0%{left:0}100%{left:100%}}
.loader,.live-loading-spinner,.trip-timeline-loading-spinner{display:inline-block;width:18px;height:18px;flex:none;
border:2.5px solid var(--bg2);border-top-color:var(--primary);border-radius:50%;animation:tocSpin .8s linear infinite;}
@keyframes tocSpin{to{transform:rotate(360deg)}}
.live-loading{display:flex;align-items:center;justify-content:center;gap:13px;padding:22px 12px;text-align:start;}
.live-loading-title{font-weight:800;color:var(--text);}
.live-loading-sub{font-size:12.5px;color:var(--muted);margin-top:3px;max-width:520px;}
.topbar{position:relative;z-index:40;background:var(--panel);border-bottom:1px solid var(--border);}
.topbar-inner{max-width:1560px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;}
.brand{display:flex;align-items:center;gap:11px;min-width:0;}
.brand-icon{flex:none;display:inline-flex;}
.brand-icon-img{width:38px;height:38px;border-radius:10px;box-shadow:var(--shadow-1);}
.brand-copy{display:flex;flex-direction:column;min-width:0;}
.brand-copy h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand-subtitle{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end;}
.refresh-meta{display:flex;flex-direction:column;align-items:flex-end;}
.refresh-label{font-size:11px;color:var(--muted);white-space:nowrap;}
.account-actions{display:flex;align-items:center;gap:7px;}
.top-refresh-btn{width:38px;height:38px;padding:0;border-radius:50%;}
.top-control-btn{display:inline-flex;align-items:center;gap:6px;}
.top-control-icon{font-size:15px;line-height:1;}
.user-account-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--radius-pill);
background:#fff;padding:4px 12px 4px 5px;text-align:start;transition:border-color .15s,background .15s;}
.user-account-btn:hover{background:var(--panel2);border-color:#bcc7d4;}
.user-account-avatar{width:30px;height:30px;flex:none;border-radius:50%;background:var(--primary-soft);display:inline-flex;align-items:center;justify-content:center;}
.user-account-avatar svg{width:19px;height:19px;fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round;}
.user-account-copy{display:flex;flex-direction:column;line-height:1.2;}
.user-account-copy strong{font-size:12.5px;}
.user-account-copy small{font-size:10.5px;color:var(--muted);}
.workspace-navigation{margin-bottom:16px;}
.workspace-main-tabs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 12px;
background:linear-gradient(120deg,#0f2350,#162f61 70%);border-radius:var(--radius);box-shadow:var(--shadow-2);color:#fff;}
.workspace-wordmark{display:inline-flex;align-items:center;gap:7px;font-weight:800;letter-spacing:.08em;font-size:13px;color:#fff;padding-inline-end:10px;}
.workspace-truck-logo{display:none;}
.workspace-nav-label{font-size:10px;font-weight:800;letter-spacing:.16em;color:rgba(255,255,255,.55);padding-inline-end:6px;}
.workspace-main-tab,.workspace-start-trip-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--radius-sm);
font-size:13px;font-weight:700;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.16);transition:background .15s,color .15s;}
.workspace-main-tab:hover,.workspace-start-trip-btn:hover{background:rgba(255,255,255,.18);color:#fff;}
.workspace-main-tab.active{background:#fff;color:var(--primary);border-color:#fff;box-shadow:var(--shadow-1);}
.workspace-main-tab-copy strong{font-weight:700;}
.workspace-nav-icon{width:17px;height:17px;flex:none;}
.workspace-reports-arrow{opacity:.7;}
#mainNavReports{margin-inline-start:auto;}
.workspace-live-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#12b76a;box-shadow:0 0 0 0 rgba(18,183,106,.6);animation:tocPulse 1.9s infinite;}
@keyframes tocPulse{70%{box-shadow:0 0 0 7px rgba(18,183,106,0)}100%{box-shadow:0 0 0 0 rgba(18,183,106,0)}}
.workspace-start-trip-btn{background:#12b76a;border-color:#12b76a;color:#fff;}
.workspace-start-trip-btn:hover{background:#0e9f5b;border-color:#0e9f5b;}
.workspace-start-trip-btn.active{background:#fff;color:#067647;border-color:#fff;}
.workspace-start-trip-plus{font-size:17px;line-height:1;font-weight:800;}
.workspace-subnav-shell{margin-top:11px;}
.workspace-subnav{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-1);}
.workspace-subnav .tab:hover{background:#f1ecfb;color:#4b1e75;}
.workspace-subnav .tab.active{background:linear-gradient(135deg,#6a4fb8,#4b1e75);color:#fff;box-shadow:0 2px 8px rgba(75,30,117,.28);}
.workspace-page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:16px 0 14px;}
.workspace-page-intro h2{font-size:22px;}
.workspace-page-intro h2:focus{outline:none;}
.workspace-page-intro p{color:var(--muted);font-size:13px;margin-top:3px;max-width:70ch;}
.modal-backdrop,.overlay{position:fixed;inset:0;z-index:80;display:none;align-items:flex-start;justify-content:center;
padding:24px 16px;overflow:auto;background:rgba(16,24,40,.55);backdrop-filter:blur(2px);}
.modal-backdrop.show,.overlay.show{display:flex;}
.overlay-card{margin:auto;display:flex;align-items:center;gap:12px;max-width:min(420px,100%);
padding:15px 20px;border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-3);}
.overlay-text{font-size:13.5px;font-weight:700;color:var(--text);line-height:1.35;}
.modal{width:100%;max-width:620px;margin:auto;background:var(--panel);border-radius:16px;box-shadow:var(--shadow-3);
display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden;}
.modal.wide{max-width:900px;}
#tripBackdrop .modal{max-width:820px;}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
padding:16px 18px;border-bottom:1px solid var(--border);background:var(--panel2);}
.modal-title{font-size:17px;}
.modal-sub{margin-top:3px;font-size:12.5px;color:var(--muted);}
.modal-header .close{flex:none;width:32px;height:32px;border:1px solid transparent;border-radius:var(--radius-xs);
background:transparent;font-size:19px;line-height:1;color:var(--muted);}
.modal-header .close:hover{background:#e8eef4;color:var(--text);}
.modal-body{padding:18px;overflow:auto;flex:1;}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;
padding:14px 18px;border-top:1px solid var(--border);background:var(--panel2);}
.trip-modal-header-combined .modal-sub{margin-top:6px;}
.trip-modal-identity{display:inline-flex;align-items:center;gap:7px;}
.trip-modal-identity strong{font-weight:800;color:var(--text);}
.trip-modal-header-chips{display:inline-flex;flex-wrap:wrap;gap:5px;margin-inline-start:8px;}
.trip-class-chip{background:var(--primary-soft);border-color:#c7dcea;color:var(--primary2);}
.trip-class-delivery-line{flex-basis:100%;display:flex;}
.trip-class-delivery-chip{background:#fff;border-color:var(--border);color:var(--text2);}
.trip-summary-action-first-hidden{display:none!important;}
.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;}
.summary-item{padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);min-width:0;}
.summary-label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);}
.summary-value{font-size:13px;font-weight:700;margin-top:2px;word-break:break-word;}
.action-box{border:1px solid var(--border);border-radius:var(--radius);padding:15px;background:var(--panel);box-shadow:var(--shadow-1);}
.action-box h3{font-size:15px;margin-bottom:11px;}
.trip-action-first-box{border-color:#c7dcea;box-shadow:0 0 0 3px var(--primary-ring);}
.trip-action-first-context{margin-bottom:12px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--primary-soft);border:1px solid #c7dcea;}
.trip-action-first-route{font-size:15px;font-weight:800;color:var(--primary2);}
.trip-action-first-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
.trip-action-next{display:flex;flex-direction:column;gap:2px;padding:9px 11px;margin-bottom:11px;
border-radius:var(--radius-sm);background:var(--panel2);border:1px dashed var(--line);}
.trip-action-next strong{font-size:13px;}
.trip-action-next span{font-size:11.5px;color:var(--muted);}
.trip-action-details{margin-top:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.trip-action-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;
padding:10px 13px;font-size:13px;font-weight:700;}
.trip-action-details>summary::-webkit-details-marker{display:none;}
.trip-action-details>summary::after{content:"⌄";color:var(--muted);}
.trip-action-details[open]>summary{border-bottom:1px solid var(--border);}
.trip-action-details-hint{font-size:11.5px;font-weight:600;color:var(--muted);}
.trip-action-details-grid{padding:13px;margin-bottom:0;background:#fff;}
.manual-time-field{margin-bottom:11px;}
.manual-time-field>label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.manual-time-hint{font-size:11.5px;color:var(--muted);margin-top:5px;}
.manual-action-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px;}
.manual-action-row .btn-main{flex:1 1 200px;height:44px;}
.action-validation-footer{margin-top:10px;}
.action-inline-notice{font-size:12.5px;font-weight:600;color:var(--danger);}
.action-inline-notice:empty{display:none;}
.action-inline-notice.success{color:var(--success);}
.stage-bridge-card{padding:15px;border:1px solid var(--successline);border-radius:var(--radius);background:var(--successbg);}
.stage-bridge-status{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--success);}
.stage-bridge-check{width:22px;height:22px;border-radius:50%;background:var(--success);color:#fff;
display:inline-flex;align-items:center;justify-content:center;font-size:12px;}
.stage-bridge-question{font-size:16px;font-weight:800;margin-top:9px;}
.stage-bridge-sub{font-size:12.5px;color:var(--text2);margin-top:3px;}
.stage-bridge-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px;}
.stage-bridge-actions .btn{flex:1 1 180px;height:42px;}
.dispatch-details-panel{margin-top:13px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.dispatch-movement-field{grid-column:1/-1;margin-bottom:2px;}
.dispatch-movement-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:0;}
.dispatch-movement-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 12px;cursor:pointer;
text-align:start;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;
transition:border-color .15s,box-shadow .15s,background .15s;}
.dispatch-movement-option:hover{border-color:#a9bccd;background:var(--panel2);}
.dispatch-movement-option strong{font-size:12.5px;font-weight:800;line-height:1.3;}
.dispatch-movement-option span{font-size:11px;color:var(--muted);line-height:1.35;}
.dispatch-movement-option input{margin-top:2px;flex:none;}
.dispatch-movement-option[aria-pressed=true],.dispatch-movement-option.selected,.dispatch-movement-option:has(input:checked){
border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);background:var(--primary-soft);}
.dispatch-movement-option[aria-pressed=true] strong{color:var(--primary2);}
.dispatch-details-panel .form-grid{align-items:start;}
@media (max-width:900px){.dispatch-movement-options{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:520px){.dispatch-movement-options{grid-template-columns:minmax(0,1fr);}}
.dispatch-choice-required{border:1.5px solid var(--warn)!important;border-radius:var(--radius-sm)!important;
padding:9px!important;background:var(--warnbg)!important;box-shadow:0 0 0 3px rgba(181,71,8,.10)!important;}
.dispatch-choice-required>label,.dispatch-choice-required>.field>label{color:var(--warn);}
.required-missing{border-color:var(--danger)!important;}
.movement-line{font-weight:700;}
.movement-arrow{color:var(--muted);}
.leg-order{font-size:11.5px;}
.filter-input-wrap{position:relative;}
.filter-input-wrap input{padding-inline-end:34px;}
.filter-clear{position:absolute;inset-inline-end:5px;top:50%;transform:translateY(-50%);width:26px;height:26px;
border:0;border-radius:var(--radius-xs);background:transparent;color:var(--muted);font-size:15px;line-height:1;}
.filter-clear:hover{background:var(--panel2);color:var(--text);}
.master-locked-field input,.master-locked-field select{background:var(--panel2);}
.master-locked-hint{font-size:11px;color:var(--faint);}
.trip-edit-destination-card{border:1px solid #c7dcea;border-radius:var(--radius-sm);background:var(--primary-soft);padding:13px;}
.trip-edit-destination-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px;}
.trip-edit-destination-head strong{display:block;font-size:14px;}
.trip-edit-destination-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:11px;}
.trip-edit-destination-actions{display:flex;justify-content:flex-end;margin-top:12px;}
.trip-cancel-modal .modal-body textarea{min-height:120px;}
.email-warehouse-targets{gap:5px;margin-top:16px;padding:14px;
border:1px solid #c7d4ee;border-radius:var(--radius);background:#eef3ff;}
.email-warehouse-targets>.filter-input-wrap,.email-warehouse-targets input{background:var(--panel);}
.email-warehouse-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.email-warehouse-heading label{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.email-warehouse-optional{font-size:9.5px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:var(--radius-pill);
background:var(--panel2);color:var(--faint);border:1px solid var(--border);}
.email-warehouse-hint{margin-top:0;margin-bottom:6px;}
.email-warehouse-picker{position:relative;}
.email-warehouse-search-wrap{position:relative;}
.email-warehouse-search{padding-inline-end:34px;}
.email-warehouse-clear{position:absolute;inset-inline-end:5px;top:50%;transform:translateY(-50%);width:26px;height:26px;
border:0;border-radius:var(--radius-xs);background:transparent;color:var(--muted);font-size:15px;}
.email-warehouse-clear:hover{background:var(--panel2);}
.email-warehouse-menu{margin-top:6px;max-height:230px;overflow:auto;padding:6px;
background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);}
.email-warehouse-option{display:flex;align-items:baseline;gap:8px;width:100%;padding:8px 10px;border:0;
border-radius:var(--radius-xs);background:transparent;text-align:start;cursor:pointer;font-size:13px;color:var(--text2);}
.email-warehouse-option strong{flex:none;min-width:44px;font-weight:800;color:var(--text);}
.email-warehouse-option span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.email-warehouse-option small{flex:none;font-size:10.5px;color:var(--faint);}
.email-warehouse-option:hover,.email-warehouse-option.matched{background:var(--panel2);}
.email-warehouse-option.is-selected{background:var(--primary-soft);color:var(--primary2);}
.email-warehouse-option.is-selected strong{color:var(--primary);}
.email-warehouse-empty{padding:10px;font-size:12.5px;color:var(--muted);}
.account-modal .modal-body{display:flex;flex-direction:column;gap:14px;}
.account-section-title{font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);}
.account-password-notice{font-size:12.5px;color:var(--muted);}
.push-settings-btn{display:inline-flex;align-items:center;gap:6px;}
.push-settings-icon{font-size:14px;line-height:1;}
.push-settings-modal .modal-body{display:flex;flex-direction:column;gap:14px;}
.push-settings-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px;}
.push-status-card{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.push-status-card span{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);}
.push-status-card strong{font-size:13px;}
.push-status-card strong.checking{color:var(--warn);}
.push-settings-notice{font-size:12.5px;font-weight:600;color:var(--text2);}
.push-settings-notice:empty{display:none;}
.push-preference-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--panel2);}
.push-preference-title{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.push-pref-row{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;margin-bottom:7px;cursor:pointer;
border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;}
.push-pref-row:hover{border-color:#bcc7d4;}
.push-pref-row input{margin-top:2px;flex:none;}
.push-pref-row strong{display:block;font-size:13px;}
.push-pref-row small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
.push-all-ownerships{background:var(--primary-soft);border-color:#c7dcea;}
.push-scope-divider{height:1px;background:var(--border);margin:13px 0;}
.push-ownership-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;}
.push-ownership-row{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;
border:1px solid var(--border);border-radius:var(--radius-xs);background:#fff;font-size:12.5px;}
.push-ownership-row:hover{border-color:#bcc7d4;}
.push-ownership-empty{padding:10px;font-size:12.5px;color:var(--muted);}
.push-scope-hint,.push-privacy-note{font-size:11.5px;color:var(--muted);}
.push-scope-hint{margin-top:10px;}
.push-settings-actions{display:flex;gap:9px;flex-wrap:wrap;}
.pwa-install-btn{display:inline-flex;align-items:center;gap:6px;
background:linear-gradient(180deg,#f6f0fd,#eee3fa);border-color:#d9c7f0;color:#4b1e75;font-weight:700;}
.pwa-install-btn:hover{background:linear-gradient(180deg,#efe5fb,#e3d3f6);border-color:#c3a9e6;color:#3b1560;}
.pwa-install-btn:focus-visible{outline:2px solid #7a4fb0;outline-offset:1px;}
.pwa-install-icon svg{width:16px;height:16px;}
.pwa-install-btn .pwa-install-icon{color:#6b3a9e;}
.pwa-ios-install-modal .modal-body{display:flex;flex-direction:column;gap:14px;}
.pwa-ios-install-steps{display:flex;flex-direction:column;gap:10px;}
.pwa-ios-install-step{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;
border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);}
.pwa-ios-step-number{width:24px;height:24px;flex:none;border-radius:50%;background:var(--primary);color:#fff;
display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}
.pwa-ios-install-step strong{display:block;font-size:13px;}
.pwa-ios-install-step small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
.pwa-ios-share-icon{font-weight:800;color:var(--primary);}
.pwa-ios-install-note{padding:11px 13px;border-radius:var(--radius-sm);background:var(--infobg);border:1px solid var(--infoline);
font-size:12px;color:#12376e;}
.toast{position:fixed;z-index:130;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(520px,92vw);
padding:12px 17px;border-radius:var(--radius-sm);background:var(--dark);color:#fff;font-size:13px;font-weight:600;
box-shadow:var(--shadow-3);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px);}
.toast-success{background:var(--success);}
.toast-error{background:var(--danger);}
.checkbox{display:inline-flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;}
.checkbox input{flex:none;}
.is-locked{opacity:.55;pointer-events:none;}
@media (max-width:1024px){
  .container{padding:16px 14px 30px;}
  .topbar-inner{padding:10px 14px;}
  .summary-grid,.trip-action-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .workspace-page-intro h2{font-size:20px;}
}
@media (max-width:900px){
  .brand-subtitle{display:none;}
  .workspace-nav-label,.workspace-wordmark{display:none;}
  .workspace-main-tabs{gap:7px;padding:8px;}
  .workspace-main-tab,.workspace-start-trip-btn{flex:1 1 0;justify-content:center;}
  #mainNavReports{margin-inline-start:0;flex:1 1 100%;justify-content:center;}
  .form-grid,.auth-form-grid{grid-template-columns:minmax(0,1fr);}
  .modal{max-width:none;}
  #tripBackdrop .modal{max-width:none;}
}
@media (max-width:760px){
  .topbar-inner{flex-wrap:wrap;gap:9px;}
  .refresh-meta{order:3;width:100%;align-items:flex-start;}
  .actions{gap:7px;}
  .user-account-copy{display:none;}
  .user-account-btn{padding:4px;}
  .top-control-text,.push-settings-text,.pwa-install-label{display:none;}
  .summary-grid,.trip-action-details-grid{grid-template-columns:minmax(0,1fr);}
  .modal-backdrop,.overlay{padding:0;}
  .modal{max-height:100vh;border-radius:0;min-height:100vh;}
  .toast{left:12px;right:12px;bottom:12px;transform:none;max-width:none;}
  .toast.show{transform:translateY(-2px);}
}
@media (max-width:520px){
  .auth-card{padding:20px;}
  .manual-action-row .btn-main{flex:1 1 100%;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
@media print{
  .topbar,.workspace-navigation,.app-footer,.skip-to-content,.modal-backdrop,.overlay{display:none!important;}
  .container{max-width:none;padding:0;}
  .panel,.card,.stat{box-shadow:none;border-color:#ccc;}
}
.manager-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
padding:11px 14px;border-top:1px solid var(--border);background:var(--panel2);}
.manager-pagination-bottom{border-top:1px solid var(--border);}
.manager-page-summary{font-size:12px;color:var(--muted);}
.manager-page-summary span{color:var(--faint);}
.manager-page-buttons{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.manager-page-btn{min-width:32px;height:32px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius-xs);
background:#fff;font-size:12px;font-weight:700;color:var(--text2);}
.manager-page-btn:hover:not(:disabled){background:var(--panel2);border-color:#bcc7d4;}
.manager-page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.manager-page-btn.nav{font-size:10.5px;letter-spacing:.05em;}
.manager-page-btn:disabled{opacity:.45;cursor:not-allowed;}
.manager-page-gap{padding:0 4px;color:var(--faint);}
.form-bottom-notice{margin-top:12px;font-size:12.5px;font-weight:600;color:var(--danger);}
.form-bottom-notice:empty{display:none;}
.ops-view-filter{display:flex;flex-direction:column;gap:5px;flex:0 1 165px;min-width:140px;}
.ops-view-filter>label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.ops-multi-select,.st-multi-select,.local-multi-select,.history-multi-select,.manager-multi-select{position:relative;}
.ops-multi-select>summary,.st-multi-select>summary,.local-multi-select>summary,.history-multi-select>summary,.manager-multi-select>summary{
list-style:none;cursor:pointer;height:40px;display:flex;align-items:center;justify-content:space-between;gap:6px;
padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13px;font-weight:600;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ops-multi-select>summary::-webkit-details-marker,.st-multi-select>summary::-webkit-details-marker,
.local-multi-select>summary::-webkit-details-marker,.history-multi-select>summary::-webkit-details-marker,
.manager-multi-select>summary::-webkit-details-marker{display:none;}
.ops-multi-select>summary::after,.st-multi-select>summary::after,.local-multi-select>summary::after,
.history-multi-select>summary::after{content:"⌄";flex:none;color:var(--muted);font-size:13px;line-height:1;}
.ops-multi-select>summary:hover,.st-multi-select>summary:hover,.local-multi-select>summary:hover,
.history-multi-select>summary:hover,.manager-multi-select>summary:hover{border-color:#bcc7d4;}
.ops-multi-select[open]>summary,.st-multi-select[open]>summary,.local-multi-select[open]>summary,
.history-multi-select[open]>summary{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);}
.ops-multi-select.has-active>summary,.ops-multi-select>summary.has-active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);}
.ops-multi-options,.local-multi-options,.manager-access-menu{position:absolute;z-index:35;top:calc(100% + 5px);
inset-inline-start:0;min-width:100%;max-width:320px;max-height:290px;overflow:auto;padding:6px;
background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);}
.ops-multi-option,.st-multi-option,.local-multi-option{display:flex;align-items:center;gap:8px;padding:7px 9px;
border-radius:var(--radius-xs);font-size:13px;cursor:pointer;}
.ops-multi-option:hover,.st-multi-option:hover,.local-multi-option:hover{background:var(--panel2);}
.ops-multi-option input,.st-multi-option input,.local-multi-option input{width:15px;height:15px;flex:none;}
.ops-multi-option span,.st-multi-option span,.local-multi-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ops-multi-empty,.st-multi-empty,.local-multi-empty{padding:10px;font-size:12.5px;color:var(--muted);}
.ops-more-filters{position:relative;flex:none;align-self:flex-end;}
.ops-more-filters>summary{list-style:none;cursor:pointer;height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 13px;
border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13px;font-weight:700;}
.ops-more-filters>summary::-webkit-details-marker{display:none;}
.ops-more-filters[open]>summary{border-color:var(--primary);color:var(--primary);}
.ops-more-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;
border-radius:var(--radius-pill);background:var(--primary);color:#fff;font-size:11px;font-weight:800;}
.ops-more-filter-caret{color:var(--muted);font-size:13px;line-height:1;}
.ops-more-filters-popover{position:absolute;z-index:36;top:calc(100% + 6px);inset-inline-end:0;width:min(620px,86vw);
display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:13px;
background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-3);}
.ops-more-filters-popover .ops-view-filter{flex:1 1 auto;min-width:0;}
.ops-filter-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);
background:var(--primary-soft);color:var(--primary);font-size:11.5px;font-weight:700;}
.ops-filter-status-prefix{font-weight:800;color:var(--text2);letter-spacing:.03em;text-transform:uppercase;font-size:10.5px;}
.status.normal,.state.normal,.status.total,.state.total,.status.dock,.state.dock,.status.nav,.state.nav,
.status.leg,.state.leg,.status.trip,.state.trip,.status.audit,.state.audit,.status.second,.state.second,
.status.compact,.state.compact,.status.setup,.state.setup,.status.configured,.state.configured{background:var(--panel2);color:var(--text2);}
.status.arranged,.state.arranged,.status.handoff,.state.handoff,.status.processing,.state.processing,
.status.updating,.state.updating,.status.movement,.state.movement{background:var(--infobg);color:var(--info);}
.status.cancelled,.state.cancelled,.status.critical,.state.critical,.status.affected,.state.affected{background:var(--dangerbg);color:var(--danger);}
.status.inactive,.state.inactive{background:var(--panel2);color:var(--faint);}
.status.warning,.state.warning{background:var(--warnbg);color:var(--warn);}
.status.positive,.state.positive,.status.yes,.state.yes,.status.credit,.state.credit,.status.loaded,.state.loaded,
.status.core,.state.core{background:var(--successbg);color:var(--success);}
.has-delay,.has-overdue{color:var(--warn);}
.error-text{color:var(--danger);font-size:12.5px;font-weight:600;}
.btn-warn{background:var(--warn);border-color:var(--warn);color:#fff;}
.btn-warn:hover{filter:brightness(.93);}
.unified-workspace-tabs,.workspace-action-tabs,.workspace-command-bar-v38{position:relative;}
.workspace-control-subnav .tab{font-size:12.5px;}
body.mobile-ui .container{padding-inline:12px;}
body.mobile-ui .table-wrap{-webkit-overflow-scrolling:touch;}
.delay-selected,.overdue-selected{border-color:#9f1239!important;box-shadow:0 0 0 3px rgba(159,18,57,.17)!important;}
.status.open,.state.open,.status.no,.state.no{background:var(--panel2);color:var(--muted);}
.leg-level,.trip-level{min-width:0;}
.manager-head>div:first-child,.report-panel-head>div:first-child,
.driver-link-card-head>div:first-child,.trip-edit-destination-head>div:first-child{
display:flex;flex-direction:column;gap:2px;min-width:0;}
.manager-head>div:first-child>span,.report-panel-head>div:first-child>span,
.driver-link-card-head>div:first-child>span{font-size:12px;color:var(--muted);}
.manager-head>div:not(:first-child),.report-panel-head>div:not(:first-child){
display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
@media (min-width:1101px){
  :root{--sidebar:236px;}
  body{padding-inline-start:var(--sidebar);}
  .workspace-navigation{margin:0;}
  .workspace-navigation:has(.workspace-subnav-shell){margin-bottom:16px;}
  #workspaceCommandBar{position:fixed;z-index:45;inset-block:0;inset-inline-start:0;
  width:var(--sidebar);flex-direction:column;align-items:stretch;justify-content:flex-start;
  flex-wrap:nowrap;gap:9px;padding:20px 14px;border-radius:0;
  background:linear-gradient(180deg,#0f2350,#162f61 62%);
  box-shadow:2px 0 14px rgba(16,24,40,.10);overflow:auto;}
  .workspace-wordmark{gap:12px;padding:2px 4px 10px;font-size:22px;letter-spacing:.10em;}
  .workspace-truck-logo{display:block;width:50px;height:50px;padding:0;flex:none;
  border-radius:9px;background:none;}
  .workspace-nav-label{display:none;}
  .topbar .brand-icon{display:none;}
  .topbar .brand{gap:0;}
  .workspace-main-tab,.workspace-start-trip-btn{position:relative;width:100%;
  justify-content:flex-start;padding:11px 13px;font-size:13.5px;}
  .workspace-start-trip-btn{background:var(--primary);border-color:var(--primary);}
  .workspace-start-trip-btn:hover{background:var(--primary2);border-color:var(--primary2);}
  .workspace-main-tab{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12);}
  .workspace-main-tab:hover{background:rgba(255,255,255,.14);}
  .workspace-main-tab.active{background:rgba(255,255,255,.12);color:#fff;
  border-color:rgba(255,255,255,.20);box-shadow:none;}
  .workspace-main-tab.active::before,.workspace-start-trip-btn.active::before{content:"";
  position:absolute;inset-block:8px;inset-inline-start:-14px;width:3px;
  border-radius:0 3px 3px 0;background:#22b8cf;}
  .workspace-reports-arrow{margin-inline-start:auto;}
}
@media (min-width:1101px){
  #newTripBtn{--nav-accent:#7fb2ff;--nav-rgb:127,178,255;}
  #mainNavLive{--nav-accent:#5fd4a6;--nav-rgb:95,212,166;}
  #mainNavNetwork{--nav-accent:#5cc8d8;--nav-rgb:92,200,216;}
  #mainNavMessages{--nav-accent:#a3a0ff;--nav-rgb:163,160,255;}
  #mainNavReports{--nav-accent:#c7a4f5;--nav-rgb:199,164,245;}
  #mainNavSupport{--nav-accent:#f0a8c8;--nav-rgb:240,168,200;}
  .workspace-main-tab,.workspace-start-trip-btn{background:rgba(var(--nav-rgb,255,255,255),.12);
  border-color:rgba(var(--nav-rgb,255,255,255),.28);}
  .workspace-main-tab:hover,.workspace-start-trip-btn:hover{background:rgba(var(--nav-rgb,255,255,255),.16);
  border-color:rgba(var(--nav-rgb,255,255,255),.34);}
  .workspace-main-tab.active,.workspace-start-trip-btn.active{background:rgba(var(--nav-rgb,255,255,255),.20);
  border-color:rgba(var(--nav-rgb,255,255,255),.45);}
  .workspace-start-trip-btn.active{color:#fff;}
  .workspace-main-tab.active::before,.workspace-start-trip-btn.active::before{background:var(--nav-accent,#22b8cf);}
  .workspace-nav-icon,.workspace-start-trip-plus,.workspace-reports-arrow{color:var(--nav-accent,#fff);}
  .workspace-live-dot{background:var(--nav-accent,#12b76a);}
  .workspace-wordmark>span{font-size:34px;line-height:1;font-weight:900;letter-spacing:.07em;
  background:linear-gradient(180deg,#f6f1ff,#d8cbfb);-webkit-background-clip:text;background-clip:text;color:transparent;}
}
@media (max-width:1100px){
  #newTripBtn{--nav-accent:#7fb2ff;--nav-rgb:127,178,255;}
  #mainNavLive{--nav-accent:#5fd4a6;--nav-rgb:95,212,166;}
  #mainNavNetwork{--nav-accent:#5cc8d8;--nav-rgb:92,200,216;}
  #mainNavMessages{--nav-accent:#a3a0ff;--nav-rgb:163,160,255;}
  #mainNavReports{--nav-accent:#c7a4f5;--nav-rgb:199,164,245;}
  #mainNavSupport{--nav-accent:#f0a8c8;--nav-rgb:240,168,200;}
  #workspaceCommandBar{background:linear-gradient(120deg,#0f2350,#162f61 70%);}
  .workspace-main-tab,.workspace-start-trip-btn{color:#fff;background:rgba(var(--nav-rgb,255,255,255),.12);
  border-color:rgba(var(--nav-rgb,255,255,255),.28);box-shadow:none;}
  .workspace-main-tab:hover,.workspace-start-trip-btn:hover{color:#fff;background:rgba(var(--nav-rgb,255,255,255),.18);
  border-color:rgba(var(--nav-rgb,255,255,255),.36);}
  .workspace-main-tab.active,.workspace-start-trip-btn.active{color:#fff;background:rgba(var(--nav-rgb,255,255,255),.24);
  border-color:rgba(var(--nav-rgb,255,255,255),.55);box-shadow:inset 0 -3px 0 var(--nav-accent,#22b8cf);}
  .workspace-nav-icon,.workspace-start-trip-plus,.workspace-reports-arrow{color:var(--nav-accent,#fff);}
  .workspace-live-dot{background:var(--nav-accent,#12b76a);}
  .workspace-wordmark>span{background:linear-gradient(180deg,#f6f1ff,#d8cbfb);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .workspace-main-tab,.workspace-start-trip-btn{min-height:46px;height:46px;white-space:nowrap;justify-content:center;
  font-size:12.5px;padding:0 10px;}
  .workspace-main-tab-copy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}
@media (max-width:900px){
  #mainNavReports,#mainNavSupport{flex:1 1 0;}
}
@media (max-width:620px){
  .workspace-main-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));}
  .workspace-main-tab,.workspace-start-trip-btn{width:100%;}
  #mainNavSupport{grid-column:1/-1;}
}
.scroll-top-btn{position:fixed;z-index:60;inset-block-end:22px;inset-inline-end:22px;
width:46px;height:46px;padding:0;display:grid;place-items:center;
border:1px solid #3a1760;border-radius:50%;background:#4b1e75;color:#fff;
box-shadow:0 6px 18px rgba(16,24,40,.16);cursor:pointer;
opacity:0;visibility:hidden;transform:translateY(10px);
transition:opacity .18s ease,transform .18s ease,visibility .18s,background .15s,border-color .15s;}
.scroll-top-btn.show{opacity:1;visibility:visible;transform:none;}
.scroll-top-btn:hover{background:#331451;border-color:#24103a;color:#fff;}
.scroll-top-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.scroll-top-btn svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;
stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
body:has(.modal-backdrop.show,.overlay.show) .scroll-top-btn{opacity:0;visibility:hidden;}
@media print{.scroll-top-btn{display:none!important;}}
.toc-picker-menu{position:fixed;z-index:125;overflow-y:auto;overscroll-behavior:contain;
background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);
box-shadow:var(--shadow-3);padding:4px;}
.toc-picker-menu[hidden]{display:none;}
.toc-picker-item{padding:8px 10px;border-radius:var(--radius-xs);cursor:pointer;
color:var(--text);font-size:14px;line-height:1.3;}
.toc-picker-item small{display:block;color:var(--muted);font-size:12px;}
.toc-picker-item:hover,.toc-picker-item.active{background:var(--primary-soft);color:var(--primary2);}
.toc-picker-empty{padding:8px 10px;color:var(--muted);font-size:13px;}
.filter-input-wrap input[data-picker-list]{padding-inline-end:52px;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23667085' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 34px center;background-size:10px 6px;}
.filter-input-wrap input[data-picker-list][readonly]{background-image:none;padding-inline-end:34px;}
button.workspace-main-tab{font:inherit;cursor:pointer;}
.workspace-messages-tab{position:relative;}
.team-msg-nav-badge{min-width:19px;height:19px;padding:0 5px;border-radius:999px;
background:#e5484d;color:#fff;border:2px solid #fff;font-size:11px;font-weight:800;line-height:15px;text-align:center;}
.team-msg-nav-badge[hidden]{display:none;}
@media (min-width:1101px){.team-msg-nav-badge{margin-inline-start:auto;border-color:#162f61;}}
.live-status-activity{font-weight:700;color:var(--text);}
.live-status-time{font-size:11.5px;color:var(--muted);}
.live-plate-stack{display:flex;flex-direction:column;gap:3px;min-width:0;}
.live-plate-head{display:flex;align-items:center;gap:6px;}
.live-plate-number{font-weight:800;letter-spacing:.02em;}
.live-plate-meta{font-size:11px;color:var(--muted);}
.live-plate-ownership{font-weight:700;color:var(--text2);}
.compact-live-plate-stack{gap:2px;}
.exception-list{display:flex;flex-wrap:wrap;gap:4px;}
.exception-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);
font-size:10.5px;font-weight:800;background:var(--panel2);color:var(--text2);border:1px solid var(--border);}
.exception-badge.warn{background:var(--warnbg);color:var(--warn);border-color:var(--warnline);}
.exception-badge.danger,.exception-badge.attention{background:var(--dangerbg);color:var(--danger);border-color:var(--dangerline);}
.exception-badge.green,.exception-badge.success{background:var(--successbg);color:var(--success);border-color:var(--successline);}
.exception-badge.purple{background:#f4f3ff;color:#5925dc;border-color:#d9d6fe;}
.exception-badge.info,.exception-badge.notes{background:var(--infobg);color:var(--info);border-color:var(--infoline);}
.trip-context-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);
background:var(--panel2);border:1px solid var(--border);font-size:10.5px;font-weight:700;color:var(--text2);}
.transit-status-check-row-alert{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:var(--radius-xs);
background:var(--warnbg);border:1px solid var(--warnline);font-size:11.5px;color:var(--warn);}
.transit-status-check-row-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn);}
.transit-status-check-row-title{font-weight:800;}
.driver-quick-tools{display:inline-flex;align-items:center;gap:6px;flex:none;}
.driver-tool-icon,.driver-arrival-report-btn{position:relative;flex:none;
width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;
border:1px solid #b6c4d8;border-radius:var(--radius-xs);background:#fff;color:var(--muted);
box-shadow:0 1px 1px rgba(16,24,40,.05);
transition:background .15s,border-color .15s,color .15s,box-shadow .15s;}
.driver-tool-icon svg,.driver-arrival-report-btn svg,
.driver-connection-vector svg,.driver-app-link-icon,.driver-map-pin-icon{
width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;
stroke-linecap:round;stroke-linejoin:round;}
.driver-connection-vector{display:inline-flex;align-items:center;justify-content:center;color:inherit;}
.driver-tool-icon:hover,.driver-arrival-report-btn:not(:disabled):hover{
background:var(--panel2);border-color:#a9bccd;color:var(--text2);}
.driver-tool-icon:focus-visible,.driver-arrival-report-btn:focus-visible{
outline:2px solid var(--primary);outline-offset:1px;}
.driver-tool-icon.link.connected{color:var(--success);border-color:var(--successline);background:var(--successbg);}
.driver-tool-icon.link.connected:hover{background:#d5f5e3;}
.driver-tool-icon.link.not-connected{color:var(--faint);}
.driver-tool-icon.unavailable{opacity:.45;cursor:default;background:var(--panel2);}
.driver-tool-icon:disabled{cursor:default;}
.driver-tool-icon.chat.has-unread{color:var(--primary);border-color:#9fc0d5;background:var(--primary-soft);}
.driver-tool-icon.has-unread:not(:has(.driver-chat-tool-unread))::after{content:"";position:absolute;
top:-3px;inset-inline-end:-3px;width:9px;height:9px;border-radius:50%;
background:var(--danger);border:2px solid #fff;}
.driver-tool-icon .driver-chat-tool-unread{position:absolute;top:-7px;inset-inline-end:-7px;z-index:2;
min-width:17px;height:17px;padding:0 4px;border:2px solid #fff;border-radius:var(--radius-pill);
background:var(--danger);color:#fff;font-size:9.5px;font-weight:800;line-height:1;
box-shadow:0 1px 3px rgba(16,24,40,.22);pointer-events:none;}
.driver-tool-icon .driver-chat-tool-unread::after{content:none;}
.driver-tool-icon.map.live{color:var(--info);border-color:var(--infoline);background:var(--infobg);}
.driver-tool-icon.map.manual-sent,.driver-tool-icon.manual-sent,.manual-sent{border-color:var(--warnline);color:var(--warn);background:var(--warnbg);}
.driver-map-manual-badge{position:absolute;bottom:-4px;inset-inline-end:-4px;width:13px;height:13px;
border-radius:50%;background:var(--warn);color:#fff;border:1.5px solid #fff;
display:inline-flex;align-items:center;justify-content:center;}
.driver-map-manual-badge svg{width:8px;height:8px;stroke-width:2.4;}
.driver-arrival-report-btn.reported{background:#fdf2fa;border-color:#f6d0e7;color:#c11574;}
.driver-arrival-report-btn.reported:hover{background:#fce7f6;}
.driver-arrival-report-btn.idle{opacity:.35;cursor:default;}
.vehicle-msg-tool{color:var(--primary);}
.vehicle-msg-tool.unread{color:#b42318;border-color:#f3c3c0;background:#fdecec;}
.vehicle-note-badge[hidden]{display:none;}
.vehicle-note-badge{position:absolute;top:-3px;inset-inline-end:-3px;width:9px;height:9px;
border-radius:50%;background:var(--danger);border:1.5px solid #fff;}
.active-driver-contact-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.trip-table-action-pair{display:inline-flex;gap:5px;}
.trip-actions-trigger{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);
border-radius:var(--radius-sm);background:#f8fafe;font-size:12.5px;font-weight:700;color:var(--text2);}
.trip-actions-trigger:hover{background:var(--panel2);border-color:#bcc7d4;}
.trip-actions-trigger[aria-expanded=true]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);}
.trip-actions-dots{font-size:15px;line-height:1;}
.trip-actions-caret{font-size:11px;color:var(--muted);}
.compact-trip-action-trigger{padding:6px 10px;}
.trip-actions-popover{position:fixed;z-index:90;min-width:205px;max-width:290px;padding:6px;
background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);}
.trip-actions-menu-item{display:flex;align-items:flex-start;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:var(--radius-xs);
background:transparent;text-align:start;color:var(--text2);}
.trip-actions-menu-item:hover{background:var(--panel2);}
.trip-actions-menu-item strong{display:block;font-size:13px;color:var(--text);}
.trip-actions-menu-item small{display:block;font-size:11px;color:var(--muted);margin-top:1px;}
.trip-actions-menu-item.primary strong{color:var(--primary);}
.trip-actions-menu-item.status-action strong{color:var(--success);}
.trip-actions-menu-item.danger strong{color:var(--danger);}
.trip-actions-menu-item.danger:hover{background:var(--dangerbg);}
.trip-action-icon{width:22px;height:22px;flex:none;display:inline-flex;align-items:center;justify-content:center;
border-radius:var(--radius-xs);background:var(--panel2);font-size:13px;color:inherit;}
.trip-actions-menu-divider{height:1px;margin:5px 2px;background:var(--border);}
.trip-start-kicker{font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);}
.trip-preparation-identity{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.trip-preparation-identity span{display:inline-flex;align-items:center;padding:4px 11px;border-radius:var(--radius-pill);
background:var(--primary-soft);border:1px solid #c7dcea;font-size:12px;font-weight:700;color:var(--primary2);}
.trip-preparation-identity:empty{display:none;}
.trip-start-section-label{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.trip-start-position-panel{padding:12px 14px;margin-bottom:13px;background:var(--panel);border:1px solid var(--border);
border-inline-start:4px solid var(--primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);}
.trip-start-position-field{display:flex;flex-direction:column;gap:7px;}
.trip-start-position-field>label{font-size:12.5px;font-weight:800;letter-spacing:0;text-transform:none;color:var(--text);}
.trip-start-time-panel{margin-top:11px;padding:12px 13px;border:1px solid var(--border);
border-radius:var(--radius-sm);background:var(--panel2);}
.trip-start-time-copy{font-size:11.5px;color:var(--muted);margin-top:6px;}
.trip-start-position-choice{display:flex;align-items:center;gap:9px;padding:10px 12px;cursor:pointer;
border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13px;}
.trip-start-position-choice.selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary-ring);}
.toc-start-detail-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;margin-top:13px;}
.second-trip-form-grid{gap:12px;}
.required-missing,.profile-required-pending{border:1.5px solid var(--warn)!important;
background:var(--warnbg)!important;box-shadow:0 0 0 3px rgba(181,71,8,.12)!important;}
.trip-start-position-panel:has(.required-missing){border-inline-start-color:var(--warn);}
@media (max-width:900px){
  .second-trip-form-grid{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:760px){
  .trip-chat-panel{max-width:none;max-height:92vh;}
}
@media (max-width:520px){
  .stage-bridge-actions .btn{flex:1 1 100%;}
}
@media print{
  .trip-actions-popover{display:none!important;}
}
.trip-actions-label{font-weight:700;}
.trip-chat-message.read .trip-chat-bubble{opacity:.92;}
.summary-item.origin .summary-value,.summary-item.arrival .summary-value{font-weight:800;}
.driver-link-status-mobile.phone a{color:var(--primary);font-weight:700;}
.warehouse-status-waiting_for_loading{background:var(--warnbg);color:var(--warn);}
.warehouse-status-heading_to_loading{background:var(--infobg);color:var(--info);}
.email-warehouse-picker.open>.email-warehouse-menu,.ops-multi-select.open>.ops-multi-options{display:block;}
.trip-timeline-modal .modal-body{padding-top:14px;}
.trip-timeline-header{align-items:center;}
.trip-timeline-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-bottom:13px;}
.trip-timeline-summary-item{padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel2);min-width:0;}
.trip-timeline-summary-item span{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);}
.trip-timeline-summary-item strong{display:block;font-size:13px;font-weight:700;margin-top:2px;word-break:break-word;}
.trip-timeline-summary-item.route strong{color:var(--primary);}
.trip-timeline-summary-loading{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;}
.trip-timeline-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px;}
.trip-timeline-filter{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line);
border-radius:var(--radius-pill);background:#fff;font-size:12px;font-weight:700;color:var(--text2);}
.trip-timeline-filter:hover{background:var(--panel2);}
.trip-timeline-filter.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.trip-timeline-list{display:flex;flex-direction:column;gap:9px;}
.trip-timeline-item{display:flex;gap:11px;}
.trip-timeline-marker{position:relative;flex:none;width:26px;display:flex;justify-content:center;}
.trip-timeline-marker::before{content:"";position:absolute;top:26px;bottom:-14px;width:2px;background:var(--border);}
.trip-timeline-item:last-child .trip-timeline-marker::before{display:none;}
.trip-timeline-marker span{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:#fff;
border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);}
.trip-timeline-card{flex:1;min-width:0;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);}
.trip-timeline-card-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;}
.trip-timeline-card-head strong{font-size:13.5px;}
.trip-timeline-category{font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
padding:2px 7px;border-radius:var(--radius-pill);background:var(--panel2);color:var(--muted);border:1px solid var(--border);}
.trip-timeline-meta{font-size:11.5px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:8px;}
.trip-timeline-body{font-size:12.5px;color:var(--text2);margin-top:6px;word-break:break-word;}
.trip-timeline-status{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);font-size:10px;font-weight:800;
background:var(--panel2);color:var(--text2);}
.trip-timeline-empty{padding:26px 12px;text-align:center;color:var(--muted);font-size:13px;}
.trip-timeline-footer-note{margin-inline-end:auto;font-size:11.5px;color:var(--faint);}
.audit-timeline-modal .modal-body{padding-top:14px;}
.audit-timeline{display:flex;flex-direction:column;gap:0;}
.audit-timeline-item{display:flex;gap:11px;padding-bottom:12px;}
.audit-timeline-item:last-child{padding-bottom:0;}
.audit-timeline-rail{position:relative;flex:none;width:14px;display:flex;justify-content:center;padding-top:5px;}
.audit-timeline-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--primary);
box-shadow:0 0 0 3px var(--primary-soft);}
.audit-timeline-line{position:absolute;top:18px;bottom:-12px;width:2px;background:var(--border);}
.audit-timeline-card{flex:1;min-width:0;padding:10px 13px;border:1px solid var(--border);
border-radius:var(--radius-sm);background:var(--panel);}
.audit-timeline-top{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;}
.audit-timeline-top strong{font-size:13.5px;}
.audit-timeline-top span{font-size:11.5px;color:var(--muted);}
.audit-timeline-user{font-size:11.5px;color:var(--muted);margin-top:2px;}
.audit-timeline-field{display:inline-flex;margin-top:6px;padding:2px 8px;border-radius:var(--radius-pill);
background:var(--panel2);border:1px solid var(--border);font-size:10.5px;font-weight:800;
letter-spacing:.03em;text-transform:uppercase;color:var(--text2);}
.audit-timeline-change{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12.5px;}
.audit-timeline-change span{padding:3px 9px;border-radius:var(--radius-xs);background:var(--panel2);
border:1px solid var(--border);word-break:break-word;}
.audit-timeline-change span:first-child{color:var(--muted);text-decoration:line-through;}
.audit-timeline-change span:last-child{background:var(--successbg);border-color:var(--successline);color:var(--success);text-decoration:none;}
.audit-timeline-change b{color:var(--faint);}
.audit-timeline-details{margin-top:6px;font-size:12px;color:var(--text2);white-space:pre-wrap;word-break:break-word;}
.audit-trip-link{font-weight:700;color:var(--primary);}
.audit-trip-link:hover{text-decoration:underline;}
.audit-action-pill{display:inline-flex;padding:2px 8px;border-radius:var(--radius-pill);background:var(--panel2);
border:1px solid var(--border);font-size:10.5px;font-weight:800;color:var(--text2);white-space:nowrap;}
.audit-row.affected{background:var(--dangerbg);}
