    :root { --navy:#123047; --teal:#147d83; --ink:#253746; --muted:#71808a; --line:#dce5e9; --bg:#f4f7f8; --white:#fff; --green:#2c8c62; --amber:#a66a10; --auth-gradient:linear-gradient(135deg,#0d2338 0%,#123b50 58%,#0c6870 100%); }
    * { box-sizing:border-box; }
    body { margin:0; height:100vh; overflow:hidden; background:var(--bg); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
    button, input, select, textarea { font:inherit; }
    .global-loading-progress { position:fixed; top:0; left:0; right:0; z-index:100; height:4px; overflow:visible; background:rgba(20,125,131,.14); opacity:1; pointer-events:none; transition:opacity .24s ease,visibility .24s ease; }
    .global-loading-progress.is-hidden { visibility:hidden; opacity:0; }
    .global-loading-progress-bar { width:8%; height:100%; border-radius:0 999px 999px 0; background:linear-gradient(90deg,#147d83,#58c6bd); box-shadow:0 0 10px rgba(20,125,131,.42); transition:width .26s ease; }
    .global-loading-progress-label { position:absolute; top:8px; right:16px; padding:3px 8px; border:1px solid rgba(20,125,131,.18); border-radius:999px; background:rgba(255,255,255,.92); box-shadow:0 3px 10px rgba(18,48,71,.08); color:var(--teal); font-size:10px; line-height:1.2; white-space:nowrap; }
    @media (prefers-reduced-motion:reduce) { .global-loading-progress, .global-loading-progress-bar { transition:none; } }
    .shell { display:flex; height:100vh; min-height:0; }
    #app-shell { display:none; }
    #app-shell.authenticated-shell { display:flex; }
    /* Public login home. Light teal workspace. */
    aside { position:relative; width:232px; flex:0 0 auto; background:var(--navy); color:#e8f1f3; padding:20px 14px; transition:width .2s ease,padding .2s ease; }
    #app-sidebar { display:flex; flex-direction:column; min-height:0; }
    .brand { position:relative; display:flex; flex:0 0 auto; min-width:0; align-items:center; gap:10px; padding:0 0 18px; border-bottom:1px solid rgba(255,255,255,.14); }
    .brand .brand-mark { display:grid; width:36px; height:36px; flex:0 0 36px; margin:0; place-items:center; padding:4px; border-radius:10px; background:#fff; }
    .brand .brand-mark img { display:block; width:100%; height:100%; object-fit:contain; }
    .brand strong { display:block; font-size:20px; letter-spacing:1px; }
    .brand span { display:block; margin-top:8px; color:#9fc6cc; font-size:12px; }
    .sidebar-collapse-toggle { position:static; display:grid; flex:0 0 28px; width:28px; height:28px; margin-left:auto; place-items:center; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:7px; background:#17475b; color:#fff; cursor:pointer; transition:background .16s ease,transform .16s ease; }
    .sidebar-collapse-toggle:hover { background:#1f6672; transform:translateY(-1px); }
    .sidebar-collapse-toggle:focus-visible { outline:3px solid rgba(112,197,191,.5); outline-offset:2px; }
    .brand .sidebar-collapse-toggle span { display:block; margin:0; color:inherit; font-size:22px; line-height:1; }
    body.sidebar-collapsed #app-sidebar { width:72px; padding-right:14px; padding-left:14px; }
    body.sidebar-collapsed #app-sidebar .brand { flex-direction:column; justify-content:center; padding-right:0; padding-left:0; }
    body.sidebar-collapsed #app-sidebar .brand > div { display:none; }
    body.sidebar-collapsed #app-sidebar .sidebar-collapse-toggle { margin-left:0; }
    #app-sidebar nav[hidden] { display:none !important; }
    #app-sidebar nav { flex:1 1 auto; min-height:0; min-width:0; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; }
    #app-sidebar nav button { min-width:0; max-width:100%; }
    nav { padding-top:20px; }
    nav button { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; border:0; background:transparent; color:#bfd4d8; text-align:left; padding:12px 12px; border-radius:8px; cursor:pointer; margin-bottom:4px; }
    nav button:hover, nav button.active { background:#1c5364; color:#fff; }
    main { display:flex; flex:1; flex-direction:column; height:100vh; min-height:0; overflow:hidden; padding:30px 36px 30px; max-width:none; width:100%; min-width:0; }
    .topbar { display:flex; flex:0 0 auto; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:24px; }
    .page-kicker { display:none; color:var(--teal); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; }
    .page-subtitle { display:none; margin:7px 0 0; color:var(--muted); font-size:13px; }
    .topbar-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
    .app-version { background:#e6f3f3; color:var(--teal); }
    .user-chip { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid var(--line); border-radius:20px; background:#fff; color:var(--ink); font-size:12px; }
    .user-chip::before { width:7px; height:7px; border-radius:50%; background:var(--green); content:""; }
    .permission-dialog { position:fixed; inset:0; z-index:60; display:flex; align-items:center; justify-content:center; padding:24px; }
    .permission-dialog[hidden] { display:none; }
    .permission-dialog-backdrop { position:absolute; inset:0; background:rgba(18,48,71,.42); }
    .permission-dialog-panel { position:relative; width:min(780px,100%); max-height:min(88vh,900px); margin:0; overflow:auto; }
    .permission-groups { display:grid; gap:14px; margin-top:14px; }
    .permission-group { border:1px solid var(--line); border-radius:12px; background:#fbfefe; padding:14px; }
    .permission-group-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; }
    .permission-group-head strong { color:var(--navy); font-size:14px; }
    .permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .permission-option { display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid #dce5e9; border-radius:10px; background:#fff; cursor:pointer; }
    .permission-option input { margin-top:2px; }
    .permission-option span { display:flex; flex-direction:column; gap:3px; min-width:0; }
    .permission-option strong { color:var(--navy); font-size:13px; }
    .permission-option small { color:var(--muted); font-size:12px; line-height:1.45; }
    .permission-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
    .readonly-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border-radius:999px; background:#fff4e6; color:var(--amber); font-size:11px; }
    .readonly-badge::before { width:6px; height:6px; border-radius:50%; background:currentColor; content:""; }
    .employee-account-summary { display:flex; flex-direction:column; gap:6px; }
    .employee-permission-inline { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; min-width:190px; }
    .employee-permission-inline .secondary { flex:0 0 auto; padding:7px 14px; }
    .employee-permission-count { color:var(--muted); font-size:12px; white-space:nowrap; }
    .nav-parent { display:flex; justify-content:space-between; align-items:center; padding-right:10px; font-weight:600; background:#1c5364; color:#fff; }
    .nav-parent-label { display:flex; flex-direction:column; min-width:0; gap:3px; }
    .nav-parent-label strong { font-size:14px; line-height:1.25; }
    .nav-parent-label small { color:#b9d4d8; font-size:10px; font-weight:400; line-height:1.35; white-space:normal; }
    .nav-children { min-width:0; margin:4px 0 10px 0; padding-left:8px; border-left:1px solid rgba(255,255,255,.2); }
    .nav-section-title { margin:14px 10px 6px 0; color:#7faeb5; font-size:11px; font-weight:700; letter-spacing:.7px; }
    nav button.nav-section-toggle { margin-bottom:4px; padding:10px 10px; border-radius:8px; color:#e4f0f1; font-size:14px; font-weight:650; letter-spacing:0; }
    nav button.nav-section-toggle:first-child { margin-top:0; }
    nav button.nav-section-toggle:hover, nav button.nav-section-toggle.active { background:#2a6878; color:#fff; }
    #transport-nav-arrow, .nav-section-arrow { display:inline-grid; place-items:center; flex:0 0 16px; width:16px; height:16px; color:#9fc6cc; font-size:0; line-height:1; }
    #transport-nav-arrow::before, .nav-section-arrow::before { content:""; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(225deg); }
    [aria-expanded="false"] > #transport-nav-arrow::before, [aria-expanded="false"] > .nav-section-arrow::before { transform:rotate(45deg); }
    .nav-section-items { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; gap:2px; margin:0 0 8px 0; padding-left:20px; border-left:1px solid rgba(255,255,255,.14); }
    nav button.nav-children-item { color:#bfd4d8; font-size:13px; padding:9px 10px; }
    nav button.nav-children-item:hover, nav button.nav-children-item.active { background:#2a6878; color:#fff; }
    nav button.nav-section-link { color:#e4f0f1; font-size:14px; font-weight:650; padding:10px 10px; }
    nav button.nav-section-link:hover, nav button.nav-section-link.active { background:#2a6878; color:#fff; }
    nav button.nav-standalone { margin-bottom:4px; }
    .nav-section-link-label, .nav-section-label { display:flex; align-items:center; gap:7px; min-width:0; }
    .nav-section-logo, .robot-logo { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:20px; height:20px; color:#9fc6cc; font-size:14px; line-height:1; }
    .nav-section-logo.agent-nav-logo { width:24px; height:24px; padding:0; border:0; border-radius:0; background:transparent; color:inherit; font-size:18px; font-weight:400; letter-spacing:0; box-shadow:none; }
    .nav-section-link.active .nav-section-logo, .nav-section-link:hover .nav-section-logo, .nav-section-toggle.active .nav-section-logo, .nav-section-toggle:hover .nav-section-logo { color:#fff; }
    .nav-item-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .nav-count { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; min-width:22px; height:20px; padding:0 6px; border:1px solid rgba(185,212,216,.28); border-radius:999px; background:rgba(255,255,255,.1); color:#d9eeee; font-size:11px; line-height:1; }
    nav button.nav-children-item.active .nav-count, nav button.nav-children-item:hover .nav-count { border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.18); color:#fff; }
    h1 { margin:0; font-size:28px; color:var(--navy); }
    .sub { margin-top:7px; color:var(--muted); font-size:14px; }
    .badge { background:#e6f3f3; color:var(--teal); border-radius:20px; padding:8px 12px; font-size:12px; white-space:nowrap; }
    .view { display:none; min-height:0; }
    .view.active { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; overflow:hidden; }
    .dashboard-workbench { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; gap:12px; overflow-y:auto; padding-right:4px; }
    .dashboard-command-summary { padding:12px 16px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 3px 12px rgba(18,48,71,.04); }
    .dashboard-command-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:10px; border-bottom:1px solid #e6edef; }
    .dashboard-command-head h2 { margin:0; color:var(--navy); font-size:18px; }
    .dashboard-command-head p { margin:5px 0 0; color:var(--muted); font-size:12px; }
    .dashboard-command-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(150px,.9fr); align-items:stretch; padding-top:10px; }
    .dashboard-command-metric { min-width:0; padding:1px 16px; border-right:1px solid #e6edef; }
    .dashboard-command-metric:first-child { padding-left:0; }
    .dashboard-command-metric span { display:block; color:var(--muted); font-size:12px; }
    .dashboard-command-metric strong { display:block; margin-top:5px; color:var(--navy); font-size:27px; line-height:1; font-variant-numeric:tabular-nums; }
    .dashboard-command-metric.is-moving strong { color:#178a52; }
    .dashboard-command-metric.is-attention strong { color:#d85b25; }
    .dashboard-primary-action { align-self:center; min-height:42px; margin-left:18px; padding:0 20px; font-size:14px; white-space:nowrap; }
    .dashboard-command-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(266px,.38fr); gap:10px; align-items:start; }
    .dashboard-priority-panel, .dashboard-resource-panel, .dashboard-shortcuts, .dashboard-result-panel { margin-bottom:0; }
    .dashboard-priority-panel { min-height:0; padding:14px 16px; }
    .dashboard-priority-panel .panel-head, .dashboard-resource-panel .panel-head, .dashboard-shortcuts .panel-head, .dashboard-result-panel .panel-head { align-items:flex-start; margin-bottom:8px; }
    .dashboard-priority-panel h2, .dashboard-resource-panel h2, .dashboard-shortcuts h2, .dashboard-result-panel h2 { margin:0; color:var(--navy); font-size:17px; }
    .dashboard-priority-panel .panel-head .muted { display:block; margin-top:4px; font-size:12px; }
    .dashboard-side-column { display:flex; width:auto; height:auto; max-height:none; overflow:visible; flex:initial; flex-direction:column; gap:10px; min-width:0; padding:0; background:transparent; color:inherit; transition:none; }
    .dashboard-priority-list { display:flex; flex-direction:column; gap:6px; }
    .dashboard-priority-group { overflow:hidden; border:1px solid #e6edef; border-radius:9px; background:#fff; }
    .dashboard-priority-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:42px; padding:0 12px; border-bottom:1px solid #e6edef; background:#f7fafb; }
    .dashboard-priority-group-head strong { color:var(--navy); font-size:13px; }
    .dashboard-priority-group-head .dashboard-group-action { flex:0 0 auto; min-height:44px; padding:0 4px; border:0; background:transparent; color:#176072; font-size:12px; font-weight:700; cursor:pointer; }
    .dashboard-priority-group.route-review .dashboard-priority-group-head { background:#fff8ea; border-bottom-color:#f6e3b8; }
    .dashboard-priority-group.route-review .dashboard-priority-group-head strong, .dashboard-priority-group.route-review .dashboard-group-action { color:#9b6500; }
    .dashboard-priority-group.exception .dashboard-priority-group-head { background:#fff3f0; border-bottom-color:#f4d7ce; }
    .dashboard-priority-group.exception .dashboard-priority-group-head strong, .dashboard-priority-group.exception .dashboard-group-action { color:#b8452e; }
    .dashboard-priority-group.pending .dashboard-priority-group-head { background:#eff8fc; border-bottom-color:#d5e9f6; }
    .dashboard-priority-group.pending .dashboard-priority-group-head strong, .dashboard-priority-group.pending .dashboard-group-action { color:#176aa1; }
    .dashboard-priority-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; min-height:44px; padding:4px 12px; border:0; border-bottom:1px solid #edf1f2; background:#fff; color:inherit; text-align:left; cursor:pointer; }
    .dashboard-priority-row:last-child { border-bottom:0; }
    .dashboard-priority-row:hover { background:#f7fbfb; }
    .dashboard-priority-row:focus-visible, .dashboard-group-action:focus-visible, .dashboard-shortcut:focus-visible { outline:3px solid rgba(20,125,131,.35); outline-offset:-3px; }
    .dashboard-priority-row strong { display:block; color:var(--navy); font-size:12px; line-height:1.2; }
    .dashboard-priority-row .detail { display:block; margin-top:2px; overflow:hidden; color:var(--muted); font-size:11px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
    .dashboard-priority-row .status { min-width:52px; text-align:center; }
    .dashboard-empty { display:flex; align-items:center; justify-content:center; min-height:100px; padding:16px; color:var(--muted); font-size:13px; text-align:center; }
    .dashboard-load-error { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:100px; padding:16px; border:1px solid #f0cbc0; border-radius:9px; background:#fff7f4; color:#8c3a26; font-size:13px; }
    .dashboard-load-error button { flex:0 0 auto; min-height:40px; padding:0 12px; border:1px solid #d28e7c; border-radius:7px; background:#fff; color:#8c3a26; font-weight:700; cursor:pointer; }
    .dashboard-load-error button:focus-visible { outline:3px solid rgba(216,91,37,.32); outline-offset:2px; }
    .dashboard-domain-error { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; padding:10px 12px; border:1px solid #f0cbc0; border-radius:8px; background:#fff7f4; color:#8c3a26; font-size:13px; line-height:1.45; }
    .dashboard-domain-error button { flex:0 0 auto; min-height:40px; }
    .dashboard-domain-error button:focus-visible, .dashboard-overview-retry:focus-visible { outline:3px solid rgba(20,125,131,.32); outline-offset:2px; }
    .dashboard-overview-retry { min-height:40px; margin-top:8px; }
    .dashboard-resource-list { margin:0; border:1px solid #e6edef; border-radius:9px; overflow:hidden; }
    .dashboard-resource-list > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 12px; border-bottom:1px solid #e6edef; }
    .dashboard-resource-list > div:last-child { border-bottom:0; }
    .dashboard-resource-list dt { color:var(--muted); font-size:13px; }
    .dashboard-resource-list dd { margin:0; color:var(--navy); font-size:18px; font-weight:750; font-variant-numeric:tabular-nums; }
    .dashboard-resource-list > div:last-child dd { color:#178a52; }
    .dashboard-shortcuts { display:flex; flex-direction:column; gap:8px; }
    .dashboard-shortcuts .panel-head { margin-bottom:4px; }
    .dashboard-shortcut { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:12px; border:1px solid #e6edef; border-radius:9px; background:#fff; color:var(--navy); text-align:left; cursor:pointer; }
    .dashboard-shortcut:hover { border-color:#b8d9db; background:#f7fbfb; }
    .dashboard-shortcut strong, .dashboard-shortcut small { display:block; }
    .dashboard-shortcut strong { font-size:13px; }
    .dashboard-shortcut small { margin-top:3px; color:var(--muted); font-size:11px; }
    .dashboard-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .dashboard-result-grid > div { min-width:0; }
    .dashboard-result-grid span, .dashboard-result-grid strong { display:block; }
    .dashboard-result-grid span { color:var(--muted); font-size:12px; }
    .dashboard-result-grid strong { margin-top:6px; overflow:hidden; color:var(--navy); font-size:18px; font-variant-numeric:tabular-nums; text-overflow:ellipsis; white-space:nowrap; }
    .dashboard-results-rule { margin:10px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
    [data-dashboard-metric].dashboard-unavailable strong, [data-dashboard-metric].dashboard-unavailable dd { color:var(--muted); font-size:14px; }
    .dashboard-command-metric.dashboard-unavailable strong { margin-top:10px; }
    .dashboard-command-summary, .dashboard-priority-panel, .dashboard-resource-panel { will-change:auto; }
    #period-report { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; margin-bottom:0; overflow:hidden; }
    .report-panel-head { flex:0 0 auto; align-items:center; }
    .report-panel-title { display:flex; align-items:center; gap:18px; min-width:0; flex-wrap:wrap; }
    .report-view-switcher { display:flex; align-items:center; gap:4px; padding:3px; border:1px solid var(--line); border-radius:9px; background:#f6f9fa; }
    .report-view-button { margin:0; padding:7px 12px; border:0; border-radius:6px; background:transparent; color:var(--muted); }
    .report-view-button:hover { background:#e6f3f3; color:var(--teal); }
    .report-view-button.active { background:var(--teal); color:#fff; }
    #period-report-content { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; overflow-y:auto; overflow-x:hidden; padding-right:4px; }
    .report-workspace { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; gap:16px; overflow:visible; padding-right:4px; }
    .report-driver-performance-full { display:none; flex:1 1 auto; min-height:0; overflow:hidden; }
    @media (max-width:1100px) { .dashboard-command-grid { grid-template-columns:1fr; } .dashboard-side-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; } .dashboard-result-panel { grid-column:1 / -1; } }
    @media (max-width:860px) { .dashboard-command-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 0; } .dashboard-command-metric:nth-child(2) { border-right:0; } .dashboard-command-metric:nth-child(3) { padding-left:0; } .dashboard-primary-action { grid-column:1 / -1; width:100%; margin:2px 0 0; } .dashboard-side-column { grid-template-columns:1fr; } .dashboard-result-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    @media (max-width:560px) { .dashboard-workbench { gap:10px; padding-right:0; } .dashboard-command-summary, .dashboard-priority-panel, .dashboard-resource-panel, .dashboard-shortcuts, .dashboard-result-panel { padding:14px; } .dashboard-command-head { align-items:flex-start; } .dashboard-command-metrics { padding-top:13px; } .dashboard-command-metric { padding:2px 12px; } .dashboard-command-metric strong { font-size:25px; } .dashboard-priority-panel { min-height:0; } .dashboard-priority-group-head { align-items:flex-start; flex-direction:column; padding:10px 12px; } .dashboard-priority-group-head .dashboard-group-action { min-height:44px; } .dashboard-priority-row { align-items:flex-start; grid-template-columns:minmax(0,1fr); } .dashboard-priority-row .status { display:none; } .dashboard-priority-row .detail { white-space:normal; } .dashboard-load-error, .dashboard-domain-error { align-items:flex-start; flex-direction:column; } .dashboard-result-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    .cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
    .card, .panel { background:var(--white); border:1px solid var(--line); border-radius:12px; box-shadow:0 3px 12px rgba(18,48,71,.04); }
    .card { padding:18px; }
    .card .label { color:var(--muted); font-size:13px; }
    .card .number { color:var(--navy); font-size:29px; font-weight:700; margin-top:10px; }
    .grid { display:grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.9fr); gap:20px; }
    .panel { padding:20px; margin-bottom:20px; }
    #dashboard.view.active, #reports.view.active { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
    #reports > .panel { flex:1 1 auto; min-height:0; margin-bottom:0; overflow:hidden; }
    #dashboard .panel-head { margin-bottom:10px; }
    #dashboard .cards { gap:12px; }
    #dashboard .card { padding:14px; }
    #dashboard .card .number { margin-top:6px; font-size:26px; }
    #period-report #report-period-controls { margin-bottom:10px !important; }
    #demands .demand-workspace { flex:1 1 auto; height:auto; min-height:0; margin-bottom:0; }
    #tasks .task-workspace { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; gap:16px; overflow-y:auto; padding-right:4px; }
    #tasks .task-dispatch-panel { height:auto; min-height:0; flex:1 1 auto; margin-bottom:0; overflow:hidden; display:flex; flex-direction:column; }
    .dispatch-shared-controls { flex:0 0 auto; margin-bottom:10px; }
    .dispatch-view-switcher-row { flex:0 0 auto; min-width:0; margin-bottom:12px; }
    .dispatch-view-switcher-row .report-view-switcher { max-width:100%; overflow-x:auto; }
    .dispatch-view-switcher-row .report-view-button { flex:0 0 auto; white-space:nowrap; }
    .dispatch-view-switcher-row .report-view-button[aria-selected="true"] { background:var(--teal); color:#fff; }
    .dispatch-tab-panel[hidden] { display:none; }
    .dispatch-guarantee-panel { position:relative; min-width:0; min-height:0; overflow:auto; }
    .dispatch-guarantee-panel .dispatch-supply-overview { position:sticky; top:0; z-index:3; }
    .dispatch-demands-panel { min-width:0; min-height:0; overflow:auto; }
    .dispatch-risk-panel { min-width:0; min-height:0; overflow:auto; }
    .dispatch-sheet-panel { display:flex; flex:1 1 auto; min-width:0; min-height:0; flex-direction:column; overflow:hidden; }
    #tasks .dispatch-sheet-panel-head { flex:0 0 auto; align-items:flex-start; justify-content:flex-end; }
    .dispatch-sheet-top-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
    .dispatch-sheet-controls { flex:0 0 auto; }
    @media (max-width:640px) { .dispatch-shared-controls label { flex:1 1 150px; } .dispatch-sheet-panel-head { flex-direction:column; align-items:stretch; } .dispatch-sheet-top-actions { justify-content:flex-start; } }
    #exceptions #exception-center { display:flex; flex:1 1 auto; flex-direction:column; height:100%; min-height:0; margin-bottom:0; overflow:hidden; padding:0; }
    .agent-workspace { display:grid; grid-template-columns:236px minmax(0,1fr); flex:1 1 auto; min-height:0; overflow:hidden; }
    .agent-session-panel { display:flex; min-width:0; flex-direction:column; gap:12px; padding:18px 16px; border-right:1px solid var(--line); background:#f7fafb; }
    .agent-session-brand { display:flex; align-items:center; gap:9px; min-height:36px; padding:0 2px 3px; }
    .agent-session-avatar, .agent-message-avatar { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:32px; height:32px; padding:3px; border:1px solid #dce5e9; border-radius:9px; background:#fff url('/static/shunxin-mark.png') center/contain no-repeat; color:transparent; font-size:0; font-weight:800; letter-spacing:0; box-shadow:0 2px 7px rgba(18,48,71,.1); }
    .agent-session-brand strong { display:block; color:var(--navy); font-size:15px; line-height:1.2; }
    .agent-session-brand > .agent-session-avatar { display:inline-flex; margin-top:0; color:transparent; font-size:0; }
    .agent-new-chat { width:auto; min-width:108px; padding:8px 12px; border-color:#cddde8; background:#fff; color:#3153bb; }
    .agent-session-new-chat { width:100%; min-width:0; }
    .agent-session-label { margin:4px 2px 0; color:var(--muted); font-size:13px; font-weight:700; }
    .agent-conversation-item { display:flex; align-items:flex-start; gap:8px; width:100%; padding:9px 10px; border:1px solid #d9e6ed; border-radius:8px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
    .agent-conversation-item.active { border-color:#c5d8ef; background:#eef4ff; }
    .agent-conversation-item strong { display:block; font-size:14px; }
    .agent-conversation-item span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }
    .agent-conversation-open { flex:1; min-width:0; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
    .agent-conversation-actions { display:flex; gap:4px; }
    .agent-conversation-actions button { min-width:34px; min-height:34px; padding:5px 7px; border:0; background:transparent; color:var(--muted); font-size:14px; cursor:pointer; }
    .agent-conversation-actions button:hover { color:var(--teal); }
    .agent-conversation-search { display:flex; gap:6px; margin:0; }
    .agent-conversation-search input { min-width:0; width:100%; padding:8px 9px; border:1px solid #d9e6ed; border-radius:8px; font-size:14px; }
    .agent-conversation-search button { min-height:38px; padding:7px 9px; border:1px solid #d9e6ed; border-radius:8px; background:#fff; color:var(--ink); font-size:14px; cursor:pointer; }
    .hermes-conversation-list { display:grid; align-content:start; grid-auto-rows:max-content; gap:7px; flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; padding-right:2px; }
    .hermes-evidence-card { padding:13px 14px; border:1px solid #f0d5a8; border-radius:10px; background:#fff9ef; color:var(--ink); }
    .hermes-evidence-card strong { display:block; color:var(--navy); font-size:13px; }
    .hermes-evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; margin-top:9px; color:var(--muted); font-size:13px; }
    .hermes-evidence-grid span { display:block; }
    .hermes-review-controls { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
    .hermes-confirmation-card { margin-top:12px; padding:12px 14px; border:1px solid #b8d9db; border-radius:10px; background:#f1f9f8; }
    .hermes-confirmation-card p { margin:6px 0 10px; color:var(--muted); font-size:13px; }
    .agent-chat-panel { display:flex; min-width:0; min-height:0; flex-direction:column; background:#fff; }
    .agent-chat-header { display:flex; flex:0 0 auto; align-items:center; padding:15px 22px; border-bottom:1px solid var(--line); }
    .agent-chat-title { display:flex; align-items:baseline; gap:10px; min-width:0; }
    .agent-chat-title h2 { margin:0; color:var(--navy); font-size:16px; }
    .agent-chat-status-text { color:var(--muted); font-size:13px; }
    .agent-message-status::before { width:7px; height:7px; border-radius:50%; background:var(--green); content:""; }
    .exception-chat-history { display:flex; flex:1 1 auto; flex-direction:column; gap:12px; min-height:0; overflow-y:auto; padding:24px 34px 18px; }
    #exceptions #exception-chat-history { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-bottom:20px; }
    #exceptions #exception-chat-messages { flex:0 0 auto; }
    .exception-chat-messages { display:flex; flex-direction:column; gap:16px; }
    .agent-message-row { display:flex; align-items:flex-start; gap:10px; max-width:min(780px,92%); }
.agent-message-row.user { display:flex; align-self:flex-end; flex-direction:row-reverse; }
    .agent-message-row.user .agent-message-avatar { display:none; }
    .agent-message-row.motion-enter, .task-card.motion-enter, .dashboard-kpi.motion-enter, .dashboard-list-panel.motion-enter { will-change:transform,opacity; }
    .agent-thinking-row { display:flex; align-items:flex-start; gap:10px; max-width:min(780px,92%); }
    .agent-thinking-card { padding:11px 14px; border:1px solid #dcebed; border-radius:4px 10px 10px 10px; background:#f7fbfb; color:var(--muted); font-size:13px; box-shadow:0 2px 8px rgba(18,48,71,.04); }
    .agent-thinking-title { display:flex; align-items:center; gap:7px; color:var(--navy); font-weight:700; }
    .agent-thinking-title::before { width:7px; height:7px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 4px rgba(20,125,131,.12); content:""; }
    .agent-thinking-steps { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .agent-thinking-step { padding:4px 7px; border:1px solid #d6e9e9; border-radius:999px; background:#fff; color:var(--muted); }
    .agent-thinking-step.active { border-color:#8dcac8; background:#eaf7f6; color:var(--teal); }
    .agent-message-body { min-width:0; }
    .agent-message-meta { display:none; }
    .agent-message-status { display:inline-flex; align-items:center; gap:4px; color:var(--green); }
    .agent-message-time { margin-left:auto; color:#9aaab2; }
    .exception-chat-message { max-width:100%; padding:11px 14px; border:1px solid #e1eaee; border-radius:4px 10px 10px 10px; line-height:1.55; font-size:13px; background:#fff; box-shadow:0 2px 8px rgba(18,48,71,.04); }
    .exception-chat-message.user { align-self:flex-end; padding:10px 14px; border:0; border-radius:10px; background:#315bdd; color:#fff; box-shadow:none; }
    .exception-chat-message.assistant { align-self:flex-start; border-left:1px solid #e1eaee; background:#fff; }
    .hermes-task-board { margin-top:12px; border:1px solid #d8e7ea; border-radius:9px; background:#f8fbfb; overflow:hidden; }
    .hermes-task-board summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; color:var(--navy); font-size:13px; font-weight:700; cursor:pointer; list-style:none; }
    .hermes-task-board summary::-webkit-details-marker { display:none; }
    .hermes-task-board summary::after { color:var(--teal); content:"展开"; font-size:13px; font-weight:500; }
    .hermes-task-board[open] summary::after { content:"收起"; }
    .hermes-task-board-content { display:grid; gap:8px; padding:0 12px 12px; border-top:1px solid #e5eef0; }
    .hermes-task-board-goal { padding-top:10px; color:var(--muted); font-size:13px; }
    .hermes-task-card { padding:9px 10px; border:1px solid #e0eaed; border-radius:8px; background:#fff; }
    .hermes-task-card-head { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--navy); font-size:13px; }
    .hermes-task-status { flex:0 0 auto; padding:3px 7px; border-radius:999px; background:#e8f4f3; color:var(--teal); font-size:13px; }
    .hermes-task-evidence { margin:6px 0 0 18px; padding:0; color:var(--muted); font-size:13px; }
    .hermes-task-next { padding:8px 10px; border-radius:7px; background:#eef7f6; color:var(--navy); font-size:13px; }
    .agent-empty-state { display:grid; place-items:center; min-height:150px; padding:28px; border:1px dashed #cfe0e5; border-radius:12px; background:#fbfdfd; text-align:center; }
    .agent-empty-state-title { color:var(--navy); font-size:18px; font-weight:700; }
    .agent-empty-state-copy { max-width:420px; margin-top:8px; color:var(--muted); font-size:13px; line-height:1.6; }
    .agent-process-details { margin-top:12px; border:1px solid #d8e7ea; border-radius:9px; background:#f8fbfb; overflow:hidden; }
    .agent-process-details summary { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; color:var(--navy); font-size:13px; font-weight:700; cursor:pointer; list-style:none; }
    .agent-process-details summary::-webkit-details-marker { display:none; }
    .agent-process-details summary span { color:var(--teal); font-size:13px; font-weight:500; }
    .agent-process-details ol { display:grid; gap:9px; margin:0; padding:10px 12px 12px 14px; border-top:1px solid #e5eef0; list-style:none; }
    .agent-process-step { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:8px; align-items:start; color:var(--muted); font-size:13px; }
    .agent-process-step strong, .agent-process-step span { display:block; }
    .agent-process-step strong { color:var(--navy); font-size:13px; }
    .agent-process-step em { color:var(--teal); font-size:13px; font-style:normal; }
    .agent-process-dot { width:8px; height:8px; margin-top:4px; border-radius:50%; background:#b9c9cf; }
    .agent-process-step.completed .agent-process-dot { background:var(--green); }
    .agent-process-step.running .agent-process-dot { background:var(--teal); box-shadow:0 0 0 4px rgba(20,125,131,.12); }
    .agent-process-step.confirmation .agent-process-dot { background:#d28a24; }
    .agent-process-step.failed .agent-process-dot { background:#b54735; }
    @media (max-width:900px) { .agent-workspace { grid-template-columns:214px minmax(0,1fr); } .exception-chat-history { padding-left:22px; padding-right:22px; } }
    @media (max-width:680px) { .agent-workspace { display:flex; flex-direction:column; } .agent-session-panel { flex:0 0 auto; max-height:220px; overflow-y:auto; border-right:0; border-bottom:1px solid var(--line); } .agent-chat-panel { min-height:0; } .agent-action-summary { padding-left:14px; padding-right:14px; } .exception-chat-composer { padding:12px 14px; } }
    .exception-hermes-planner { margin-top:10px; }
    .exception-hermes-planner .planner-facts { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
    .exception-hermes-planner .planner-fact { padding:4px 7px; border-radius:999px; background:#e7f3f3; color:var(--navy); font-size:13px; }
    .exception-hermes-plan { margin-top:8px; }
    .exception-hermes-plan strong { color:var(--navy); }
    .exception-chat-composer { display:flex; flex:0 0 auto; align-items:center; gap:10px; padding:14px 22px 16px; border-top:1px solid var(--line); background:#fff; }
    #exceptions #exception-chat-composer { position:relative; z-index:1; }
    .exception-chat-composer input, .exception-chat-composer textarea { flex:1 1 auto; min-width:0; min-height:42px; }
    .exception-chat-composer textarea { min-height:42px; max-height:120px; resize:vertical; line-height:1.5; }
    .agent-send-button { flex:0 0 auto; min-width:72px; padding:10px 16px; }
    #transport-records > .panel { flex:1 1 auto; min-height:0; margin-bottom:0; overflow:hidden; display:flex; flex-direction:column; padding:16px; }
    #gps-vehicle-overview { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; overflow:hidden; }
    #gps-vehicle-detail { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; overflow:hidden; }
    #gps-vehicle-detail .panel-head, #gps-vehicle-detail .gps-detail-legend, #gps-vehicle-detail .gps-detail-summary { flex:0 0 auto; }
    #settlements > .panel { flex:1 1 auto; min-height:0; margin-bottom:0; overflow:hidden; display:flex; flex-direction:column; }
    #settlement-cards { display:flex; flex:1 1 auto; min-height:0; min-width:0; overflow:hidden; }
    .settlement-sheet-table-wrap { flex:1 1 auto; min-height:0; min-width:0; overflow:auto; }
    .settlement-sheet-table { width:100%; min-width:2155px; border-collapse:collapse; table-layout:fixed; }
    .settlement-sheet-table th, .settlement-sheet-table td { padding:10px 12px; border-bottom:1px solid #e3eaed; text-align:left; vertical-align:top; }
    .settlement-sheet-table th { white-space:nowrap; }
    .settlement-sheet-table .settlement-col-sequence { width:96px; }
    .settlement-sheet-table .settlement-col-pickup { width:230px; }
    .settlement-sheet-table .settlement-col-farmer { width:120px; }
    .settlement-sheet-table .settlement-col-phone { width:125px; }
    .settlement-sheet-table .settlement-col-quantity { width:130px; }
    .settlement-sheet-table .settlement-col-collected-quantity { width:145px; }
    .settlement-sheet-table .settlement-col-warehouse-quantity { width:125px; }
    .settlement-sheet-table .settlement-col-driver { width:150px; }
    .settlement-sheet-table .settlement-col-outbound-distance { width:180px; }
    .settlement-sheet-table .settlement-col-planned-distance { width:140px; }
    .settlement-sheet-table .settlement-col-distance { width:280px; }
    .settlement-sheet-table .settlement-col-fee { width:140px; }
    .settlement-sheet-table .settlement-col-status { width:90px; }
    .settlement-sheet-table .settlement-col-operation { width:160px; }
    .settlement-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px 14px; padding-bottom:14px; flex:0 0 auto; }
    .settlement-toolbar label { display:grid; gap:5px; color:var(--muted); font-size:12px; }
    .settlement-toolbar input { max-width:180px; box-sizing:border-box; }
    .settlement-toolbar-actions { display:flex; flex-wrap:wrap; gap:8px; }
    .settlement-toolbar button { padding:8px 12px; }
    #settlement-filter-feedback { flex-basis:100%; font-size:12px; }
    .settlement-batch-panel { max-width:min(900px,75vw); }
    .settlement-batch-toggle { padding:5px 8px; font-size:15px; font-weight:700; }
    .settlement-batch-summary { display:flex; flex-wrap:wrap; gap:6px 20px; margin-top:8px; color:var(--ink); font-size:12px; white-space:normal; }
    .settlement-batch-summary small { color:var(--muted); margin-left:4px; }
    .settlement-batch-heading th { background:#eaf5f5; border-top:2px solid #bcdede; padding:12px 16px; text-align:left; }
    .settlement-batch-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 18px; color:var(--navy); }
    .settlement-batch-title strong { font-size:15px; }
    .settlement-batch-title span, .settlement-batch-context { font-size:12px; color:var(--muted); }
    .settlement-batch-context { margin-top:4px; white-space:normal; overflow-wrap:anywhere; }
    .settlement-sheet-row-completed { background:#fbfdfd; }
    .settlement-sheet-field-stack { display:grid; gap:7px; }
    .settlement-sheet-field-stack label { display:grid; gap:4px; color:var(--muted); font-size:11px; line-height:1.35; }
    .settlement-sheet-field-stack input, .settlement-sheet-field-stack select { width:100%; min-width:0; box-sizing:border-box; padding:7px 8px; font-size:12px; }
    .settlement-sheet-field-stack input[readonly] { background:#f4f7f8; color:var(--teal); font-weight:600; }
    .settlement-distance-inline { display:flex; align-items:center; gap:8px; min-width:0; }
    .settlement-distance-inline input { flex:1 1 auto; min-width:0; }
    .settlement-distance-inline select { flex:0 0 96px; min-width:96px; }
    .settlement-sheet-form-actions { display:grid; gap:8px; }
    .settlement-sheet-form-actions button { padding:8px 12px; }
    .settlement-sheet-form-actions .reply { min-width:0; margin:0; padding:7px 9px; font-size:12px; }
    .settlement-sheet-readonly { color:var(--muted); font-size:12px; line-height:1.7; }
    .settlement-sheet-readonly strong { color:var(--ink); }
    .settlement-sheet-readonly .muted { margin-top:4px; }
    #carriers.view.active, #driver-performance.view.active { overflow:hidden; }
    #carriers > .panel, #driver-performance > .panel { flex:1 1 auto; min-height:0; margin-bottom:0; overflow:hidden; display:flex; flex-direction:column; }
    .driver-entry-layout { display:block; flex:1 1 auto; min-height:0; }
    .driver-status-card { min-height:0; border:1px solid var(--line); border-radius:10px; background:#fbfefe; padding:16px; }
    .driver-status-card { display:flex; flex-direction:column; overflow:hidden; }
    .carrier-management-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:4px; margin-bottom:12px; border:1px solid var(--line); border-radius:10px; background:#f6f9fa; }
    .carrier-management-tab { min-width:0; margin:0; border:0; border-radius:7px; background:transparent; color:var(--muted); font-weight:700; }
    .carrier-management-tab:hover { background:#e6f3f3; color:var(--teal); }
    .carrier-management-tab.active { background:var(--teal); color:#fff; box-shadow:0 2px 8px rgba(21,141,147,.18); }
    .carrier-tab-count { display:inline-flex; min-width:20px; height:20px; align-items:center; justify-content:center; margin-left:4px; padding:0 6px; border-radius:999px; background:rgba(18,62,90,.1); font-size:11px; }
    .carrier-management-tab.active .carrier-tab-count { background:rgba(255,255,255,.2); }
    .carrier-management-panel { flex:1 1 auto; min-height:0; overflow:hidden; }
    .carrier-management-panel[hidden] { display:none; }
    .driver-status-toolbar { display:flex; align-items:end; gap:8px; flex:0 0 auto; margin-bottom:10px; }
    #carrier-status-toolbar[hidden], #carrier-status-pagination[hidden] { display:none; }
    .driver-status-search { flex:1 1 auto; min-width:0; }
    .driver-status-search label { gap:5px; }
    .driver-status-toolbar button { flex:0 0 auto; padding:8px 10px; }
    .driver-status-toolbar .muted { flex:0 0 auto; white-space:nowrap; }
    .driver-status-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); align-content:stretch; gap:10px; flex:1 1 auto; min-height:0; }
    .driver-status-item { border:1px solid var(--line); border-radius:8px; padding:11px; background:#fff; min-width:0; min-height:0; display:flex; flex-direction:column; justify-content:flex-start; }
    .driver-status-item strong { color:var(--navy); }
    .carrier-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .carrier-card-heading .muted { margin-top:4px; }
    .carrier-card-note { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
    .driver-status-controls { display:flex; flex-direction:column; gap:8px; margin-top:9px; width:100%; }
    .driver-status-controls input, .driver-status-controls select, .driver-status-controls button { min-width:0; width:100%; height:44px; min-height:44px; max-height:44px; box-sizing:border-box; padding:7px 8px; font-size:12px; line-height:20px; }
    .driver-status-controls > select { width:100%; height:44px; min-height:44px; max-height:44px; }
    .driver-status-period { display:grid; grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr); align-items:center; gap:5px; width:100%; height:44px; min-width:0; min-height:44px; max-height:44px; }
    .driver-status-period input { width:100%; height:44px; min-height:44px; max-height:44px; padding:7px 5px; font-size:10px; line-height:20px; }
    .driver-status-period span { color:var(--muted); text-align:center; font-size:11px; }
    .driver-change-form { grid-template-columns:minmax(0,1fr); align-items:stretch; gap:8px; width:100%; height:auto; min-height:0; max-height:none; margin-top:10px; }
    .driver-change-form input { padding:7px 8px; font-size:12px; }
    .driver-change-form .driver-status-save { margin-top:0; }
    .driver-status-save { display:flex; align-items:center; justify-content:center; margin-top:2px; width:100%; height:44px; min-height:44px; max-height:44px; }
    .driver-status-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; width:100%; }
    .driver-status-pagination { display:flex; align-items:center; justify-content:center; gap:10px; flex:0 0 auto; margin-top:10px; }
    .carrier-jt808-panel { display:flex; flex-direction:column; gap:12px; overflow:auto; }
    .carrier-jt808-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
    .carrier-jt808-heading h3 { margin:0 0 4px; color:var(--navy); font-size:16px; }
    .carrier-jt808-panel .table-scroll { flex:1 1 auto; min-height:0; overflow:auto; }
    .gps-readiness-panel { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#f8fbfb; }
    .gps-readiness-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
    .gps-readiness-head > div { display:grid; gap:3px; }
    .gps-readiness-counts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
    .gps-readiness-metric { padding:9px; border:1px solid #dce8e8; border-radius:8px; background:#fff; }
    .gps-readiness-metric span { display:block; color:var(--muted); font-size:11px; }
    .gps-readiness-metric strong { display:block; margin-top:3px; color:var(--navy); font-size:17px; }
    .gps-readiness-blockers { color:#8a472d; font-size:12px; line-height:1.6; }
    .gps-readiness-blockers:empty { display:none; }
    .driver-fleet-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .driver-fleet-grid label { gap:4px; font-size:11px; }
    .driver-fleet-grid input { height:38px; min-height:38px; padding:6px 8px; font-size:12px; }
    .demand-workspace { display:flex; flex-direction:column; height:calc(100vh - 150px); min-height:480px; overflow:hidden; }
    .demand-entry-section { flex:0 0 auto; }
    .demand-template-heading { display:flex; align-items:center; gap:8px; min-width:0; }
    .demand-template-title { margin:0; color:var(--muted); font-size:13px; font-weight:700; line-height:1.3; }
    .demand-template-cloud-note { color:var(--teal); font-size:12px; line-height:1.3; }
    .demand-template-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
    .demand-template-select-label { flex-direction:row; align-items:center; gap:6px; white-space:nowrap; }
    .demand-template-toolbar select { width:200px; min-width:150px; padding:7px 9px; }
    .demand-template-toolbar button { padding:7px 10px; white-space:nowrap; }
    .demand-template-sharing-status { color:var(--muted); font-size:12px; white-space:nowrap; }
    .demand-entry-form { display:flex; flex-direction:column; gap:9px; padding:11px; border:1px solid var(--line); border-radius:8px; background:#fbfefe; }
    .demand-basic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 10px; }
    .demand-basic-grid > label, .demand-contact-field, .demand-business-card > label { min-width:0; gap:4px; }
    .demand-basic-grid > label > input, .demand-basic-grid > label > select, .demand-basic-grid > .demand-contact-field > input, .demand-business-card > label > input, .demand-business-card > label > select { height:36px; min-height:36px; padding:7px 9px; }
    .demand-basic-grid .muted { min-height:0; font-size:10px; line-height:1.25; }
    .demand-business-card { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 10px; padding:12px; border:1px solid #cfe3e5; border-radius:9px; background:#f4fafa; box-shadow:0 1px 2px rgba(18,48,71,.04); }
    .demand-business-heading { grid-column:1 / -1; padding:0 0 8px; border-bottom:1px solid #dcebed; color:var(--navy); font-size:12px; font-weight:700; }
    .demand-contact-field { position:relative; display:flex; flex-direction:column; color:var(--muted); font-size:12px; }
    .demand-vehicle-match-control { display:flex; flex-direction:column; gap:7px; min-width:0; }
    .demand-field-caption { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
    .demand-field-caption .muted { font-size:11px; }
    .demand-vehicle-length-options { display:flex; flex-wrap:wrap; gap:4px; min-height:36px; align-items:center; padding:5px 7px; border:1px solid var(--line); border-radius:7px; background:#fff; }
    .demand-vehicle-length-option { display:inline-flex; flex-direction:row; align-items:center; gap:3px; padding:3px 5px; border-radius:5px; color:var(--navy); font-size:11px; cursor:pointer; white-space:nowrap; }
    .demand-vehicle-length-option:hover { background:#eef7f7; }
    .demand-vehicle-length-option input { width:auto; min-height:auto; margin:0; padding:0; accent-color:var(--teal); }
    .demand-shift-control { min-width:0; margin:0; padding:0; border:0; }
    .demand-shift-control legend { margin-bottom:5px; color:var(--muted); font-size:12px; font-weight:700; }
    .demand-shift-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
    .demand-shift-options label { display:flex; align-items:center; justify-content:center; gap:5px; min-height:38px; padding:6px 8px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--navy); font-weight:700; cursor:pointer; }
    .demand-shift-options label:has(input:checked) { border-color:var(--teal); background:#eaf5f5; color:var(--teal); }
    .demand-shift-options input { width:auto; min-height:auto; margin:0; accent-color:var(--teal); }
    .demand-shift-control > .muted { display:block; margin-top:4px; font-size:11px; }
    .dispatch-sequence-cell { display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
    .dispatch-shift-badge { display:inline-flex; align-items:center; width:max-content; padding:3px 7px; border-radius:999px; background:#edf7f7; color:var(--teal); font-size:11px; font-weight:800; white-space:nowrap; }
    .dispatch-shift-badge.late { background:#eef1fb; color:#435b91; }
    .dispatch-shift-badge.deviated { background:#fff4de; color:#a45b00; }
    .demand-species-control { grid-column:auto; }
    .demand-location-field { position:relative; grid-column:1 / -1; }
    .location-suggestion-list { position:absolute; z-index:20; top:calc(100% + 4px); left:0; right:0; max-height:240px; overflow-y:auto; padding:6px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 8px 24px rgba(18,48,71,.14); }
    .location-suggestion-list[hidden] { display:none; }
    .location-suggestion { display:flex; width:100%; flex-direction:column; align-items:flex-start; gap:3px; padding:9px 10px; border:0; border-radius:6px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
    .location-suggestion:hover, .location-suggestion:focus { background:var(--action-soft); outline:none; }
    .location-suggestion strong { color:var(--navy); font-size:13px; }
    .location-suggestion span { color:var(--muted); font-size:12px; line-height:1.4; }
    .location-selection-hint { margin-top:6px; color:var(--amber); font-size:12px; }
    .location-selection-hint.selected { color:var(--green); }
    .demand-location-map { width:100%; height:clamp(150px,18vh,170px); min-height:150px; max-height:170px; margin-top:5px; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:linear-gradient(135deg,#e7f4f0,#f7fbf9 45%,#eaf1f7); position:relative; }
    .demand-location-map .map-empty { height:100%; min-height:0; display:flex; align-items:center; justify-content:center; color:var(--muted); padding:20px; text-align:center; }
    .demand-form-actions { display:flex; align-items:center; gap:7px; padding-top:2px; }
    .demand-form-actions button { min-height:36px; padding:7px 14px; }
    .pickup-time-control { grid-column:1 / -1; padding:12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
    .pickup-time-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:10px 14px; }
    .pickup-time-grid input { height:42px; min-height:42px; padding:10px 11px; line-height:20px; }
    .pickup-time-grid input[type="time"] { font-variant-numeric:tabular-nums; }
    .species-control { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
    .species-control select { height:42px; min-height:42px; padding:10px 11px; }
    .panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
    .panel-title-select { display:flex; align-items:center; gap:14px; flex-wrap:wrap; min-width:0; }
    .panel-title-select h2 { flex:0 0 auto; }
    .inline-task-select { flex-direction:row; align-items:center; gap:8px; min-width:280px; margin:0; }
    .inline-task-select span { white-space:nowrap; }
    h2 { color:var(--navy); font-size:17px; margin:0; }
    h3 { color:var(--teal); font-size:15px; margin:20px 0 10px; }
    .muted { color:var(--muted); font-size:13px; }
    .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; }
    input, select, textarea { width:100%; border:1px solid var(--line); border-radius:7px; padding:10px 11px; color:var(--ink); background:#fff; }
    input:focus, select:focus { outline:2px solid #bfe3e3; border-color:var(--teal); }
    input[type="date"], input[type="time"], input[type="datetime-local"] { font-variant-numeric:tabular-nums; cursor:pointer; }
    .wide { grid-column:1/-1; }
    .primary { border:0; border-radius:7px; background:var(--teal); color:#fff; padding:10px 16px; cursor:pointer; }
    .secondary { border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--navy); padding:8px 12px; cursor:pointer; }
    .report-period-button.active { background:var(--teal); border-color:var(--teal); color:#fff; }
    .report-chart-panel { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
    .report-chart-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
    .report-chart-selector { display:flex; flex-direction:row; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
    .report-chart-selector select { width:auto; min-width:150px; padding:8px 10px; }
    .report-chart-type { color:var(--teal); font-size:12px; }
    .report-chart { min-height:320px; overflow-x:auto; }
    .report-chart svg { display:block; width:100%; min-width:640px; height:100%; min-height:320px; }
    .report-chart .chart-axis-unit { fill:var(--muted); font-size:11px; }
    .report-chart .report-chart-hover-target { cursor:crosshair; pointer-events:all; }
    .report-chart .report-chart-hover-date { fill:var(--navy); font-size:12px; font-weight:600; }
    .report-chart .report-chart-hover-value { fill:var(--muted); font-size:11px; }
    .report-chart .report-chart-hover-line { stroke:var(--teal); stroke-width:1; stroke-dasharray:4 3; pointer-events:none; }
    .report-chart-empty { display:flex; min-height:320px; align-items:center; justify-content:center; color:var(--muted); font-size:13px; }
    .danger { color:#a04c43; }
    table { width:100%; border-collapse:collapse; font-size:13px; }
    .table-scroll { overflow-x:auto; }
    #jt808-terminal-list table { min-width:1320px; table-layout:fixed; }
    #jt808-terminal-list th, #jt808-terminal-list td { vertical-align:middle; white-space:nowrap; }
    #jt808-terminal-list th:nth-child(1), #jt808-terminal-list td:nth-child(1) { width:132px; }
    #jt808-terminal-list th:nth-child(2), #jt808-terminal-list td:nth-child(2) { width:112px; }
    #jt808-terminal-list th:nth-child(3), #jt808-terminal-list td:nth-child(3) { width:96px; }
    #jt808-terminal-list th:nth-child(4), #jt808-terminal-list td:nth-child(4) { width:100px; }
    #jt808-terminal-list th:nth-child(5), #jt808-terminal-list td:nth-child(5) { width:138px; }
    #jt808-terminal-list th:nth-child(6), #jt808-terminal-list td:nth-child(6) { width:168px; }
    #jt808-terminal-list th:nth-child(7), #jt808-terminal-list td:nth-child(7) { width:168px; }
    #jt808-terminal-list th:nth-child(8), #jt808-terminal-list td:nth-child(8) { width:210px; }
    #jt808-terminal-list th:nth-child(9), #jt808-terminal-list td:nth-child(9) { width:160px; }
    #jt808-terminal-list .jt808-match-select { width:100%; min-width:0; }
    #jt808-terminal-list .jt808-terminal-actions { display:flex; align-items:center; gap:6px; flex-wrap:nowrap; }
    #jt808-terminal-list .jt808-terminal-actions .secondary { white-space:nowrap; }
    .carrier-table-toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:10px; margin-bottom:12px; }
    .carrier-search-field { flex:1 1 320px; max-width:520px; }
    .carrier-search-field label { gap:5px; }
    .carrier-sort-field { flex:0 0 190px; gap:5px; }
    .carrier-filter-control { display:block; width:100%; min-height:32px; margin-top:6px; padding:4px 6px; font-size:12px; }
    #driver-performance th { vertical-align:top; white-space:normal; }
    .carrier-pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:12px; }
    .carrier-pagination .page-info { min-width:76px; text-align:center; color:var(--muted); font-size:12px; }
    #driver-performance .panel-head { flex:0 0 auto; }
    #driver-performance .driver-performance-rule { flex:0 0 auto; margin:-4px 0 14px; }
    #driver-performance .carrier-table-toolbar { flex:0 0 auto; }
    #driver-performance #carriers-table { flex:0 0 auto; min-height:0; overflow:hidden; }
    #driver-performance .table-scroll { height:auto; overflow:hidden; }
    #driver-performance table { table-layout:fixed; }
    #driver-performance th, #driver-performance td { padding:12px 10px; vertical-align:middle; }
    #driver-performance tbody tr { height:64px; }
    #driver-performance .driver-performance-main-row { cursor:pointer; }
    #driver-performance .driver-performance-main-row:hover { background:#f7fbfb; }
    #driver-performance .driver-performance-main-row:focus { outline:2px solid #bfe3e3; outline-offset:-2px; }
    #driver-performance .driver-performance-detail-row td { padding:0 14px 14px; background:#f7fbfb; }
    #driver-performance .driver-performance-detail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 18px; padding:12px 14px; border:1px solid #d8eded; border-radius:8px; }
    #driver-performance .driver-performance-detail strong { display:block; color:var(--navy); margin-bottom:3px; }
    #driver-performance .driver-performance-detail .muted { line-height:1.4; }
    #driver-performance > .panel { padding-bottom:14px; }
    #driver-performance .carrier-pagination { flex:0 0 auto; min-height:38px; margin-top:14px; padding-bottom:2px; }

    /* 统一各业务页面的主内容框：与总览报表保持同一尺寸和边界。 */
    .view.active > .panel,
    .view.active > .demand-workspace,
    .view.active > .task-workspace {
      flex:1 1 auto;
      width:100%;
      height:auto;
      min-height:0;
      margin-top:0;
      margin-bottom:0;
    }
    #tasks > .task-workspace { overflow:hidden; padding-right:0; }
    #transport-records > .panel { margin-top:0 !important; }

    .carrier-capacity-cell { white-space:nowrap; }
    th, td { text-align:left; padding:11px 9px; border-bottom:1px solid var(--line); vertical-align:top; }
    th { color:var(--muted); font-size:12px; font-weight:500; background:#f8fafb; }
    tr:last-child td { border-bottom:0; }
    .status { display:inline-block; padding:4px 8px; border-radius:12px; background:#edf5f5; color:var(--teal); font-size:11px; white-space:nowrap; }
    .status.busy { background:#fff4df; color:var(--amber); }
    .status.done { background:#eaf5ef; color:var(--green); }
    .status.risk-low { background:#edf5f5; color:var(--teal); }
    .status.risk-medium { background:#fff4df; color:var(--amber); }
    .status.risk-high { background:#fdecec; color:#b42318; }
    .empty { text-align:center; color:var(--muted); padding:28px 10px; }
    .gps-overview-map { height:clamp(220px,30vh,400px); min-height:0; flex:0 0 clamp(220px,30vh,400px); border:1px solid var(--line); border-radius:10px; overflow:hidden; background:linear-gradient(135deg,#e7f4f0,#f7fbf9 45%,#eaf1f7); position:relative; }
    .gps-overview-map .map-empty { height:100%; min-height:0; display:flex; align-items:center; justify-content:center; color:var(--muted); padding:24px; text-align:center; }
    .gps-task-marker { display:flex; align-items:center; justify-content:center; width:max-content; min-width:56px; height:30px; padding:0 8px; transform:translateX(-50%); box-sizing:border-box; border:3px solid #fff; border-radius:17px; background:#2c8c62; color:#fff; font-size:11px; font-weight:800; line-height:1; white-space:nowrap; box-shadow:0 2px 8px rgba(22,62,90,.35); }
    .gps-task-marker.normal { background:#2c8c62; }
    .gps-map-route-legend { position:absolute; z-index:4; top:12px; right:12px; display:flex; flex-wrap:wrap; align-items:center; gap:7px 12px; max-width:min(520px,calc(100% - 24px)); padding:8px 10px; border:1px solid rgba(220,229,233,.92); border-radius:9px; background:rgba(255,255,255,.92); box-shadow:0 3px 12px rgba(18,48,71,.12); color:var(--muted); font-size:11px; pointer-events:auto; backdrop-filter:blur(5px); }
    .gps-map-route-legend[hidden] { display:none; }
    .gps-map-route-key { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
    .gps-map-route-key::before { width:18px; height:3px; border-radius:3px; background:#1976d2; content:""; }
    .gps-map-route-key.recommended::before { background:#8ab6e6; }
    .gps-map-route-key.actual::before { height:0; border-top:3px dashed #159447; background:transparent; }
    .gps-map-route-key.overlap::before { height:4px; background:#0f7a3a; }
    .gps-map-route-key.status::before { width:8px; height:8px; border-radius:50%; background:#2c8c62; }
    .route-map-stop-marker { display:flex; align-items:center; justify-content:center; min-width:30px; height:22px; padding:0 7px; border:2px solid #fff; border-radius:999px; color:#fff; font-size:10px; font-weight:700; line-height:1; white-space:nowrap; box-shadow:0 2px 8px rgba(22,62,90,.25); }
    .route-map-stop-marker.pickup { background:#147d83; }
    .route-map-stop-marker.wudi_checkpoint { background:#a66a10; }
    .route-map-stop-marker.warehouse { background:#123047; }
    .gps-vehicle-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none; grid-auto-rows:minmax(88px,auto); flex:1 1 auto; min-height:0; overflow:auto; align-content:start; gap:10px; }
    .transport-task-card-list { display:grid; grid-template-columns:1fr; gap:12px; margin-top:16px; overflow:auto; }
    .transport-task-card-list > article { margin:0; }
    .transport-task-dot-list { display:grid; gap:6px; margin-top:8px; }
    .transport-batch-group { min-width:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fbfdfd; }
    .transport-batch-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:5px 10px; }
    .transport-batch-heading h3 { margin:0; font-size:14px; color:var(--navy); }
    .transport-batch-title { display:inline-flex; align-items:center; min-height:40px; padding:6px 10px; margin-left:-10px; border:0; border-radius:8px; background:transparent; color:inherit; font:inherit; font-weight:inherit; cursor:pointer; box-shadow:none; }
    .transport-batch-title:hover,.transport-batch-title[aria-pressed="true"] { color:var(--teal); background:rgba(20,125,131,.08); }
    .transport-batch-title:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
    @media (max-width:900px) { .transport-task-card-list { grid-template-columns:1fr; } }
    #gps-vehicle-overview .gps-overview-map { height:auto; min-height:clamp(320px,38vh,620px); flex:1 1 auto; }
    #gps-vehicle-overview .gps-vehicle-list { flex:0 0 auto; overflow:visible; }
    .gps-vehicle-list-head { display:flex; justify-content:space-between; align-items:center; flex:0 0 auto; margin-top:12px; margin-bottom:8px; color:var(--navy); }
    .gps-vehicle-card { min-height:88px; overflow:hidden; border:1px solid var(--line); border-radius:8px; padding:10px; background:#fbfefe; font-size:12px; cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .15s; }
    .gps-vehicle-card:hover,.gps-vehicle-card:focus { border-color:var(--teal); box-shadow:0 4px 14px rgba(20,130,135,.12); transform:translateY(-1px); outline:none; }
    .gps-vehicle-card strong { display:block; color:var(--navy); margin-bottom:4px; }
    .gps-card-task-hint { margin-top:8px; color:var(--muted); font-size:12px; }
    .gps-vehicle-card .gps-card-row { display:flex; justify-content:space-between; gap:8px; margin-top:7px; color:var(--muted); }
    .transport-task-card-clickable { cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .15s; }
    .transport-task-card-clickable:hover, .transport-task-card-clickable:focus { border-color:var(--teal); box-shadow:0 4px 14px rgba(20,130,135,.12); transform:translateY(-1px); outline:none; }
    .transport-task-card { padding:0; overflow:hidden; }
    .transport-task-dot { display:block; width:100%; min-width:0; min-height:44px; padding:0; border:1px solid var(--line); border-left-width:3px; border-radius:7px; color:var(--ink); font-size:14px; font-weight:600; line-height:1.4; }
    .transport-task-dot.pending { background:#f2f5f8; border-left-color:#647c94; }
    .transport-task-dot.normal { background:#f3faf6; border-left-color:#2c8c62; }
    .transport-task-dot:hover { box-shadow:0 2px 6px rgba(22,62,90,.12); }
    .transport-task-dot:focus-within, .transport-task-dot.selected { outline:2px solid var(--teal); outline-offset:1px; }
    .transport-task-dot > .transport-task-card-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:5px 10px; width:100%; min-height:44px; padding:8px 10px; border:0; border-radius:5px; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
    .transport-task-dot-label { font-size:15px; font-weight:700; overflow-wrap:anywhere; }
    .transport-task-row-status { font-size:14px; }
    .transport-task-dot.pending .transport-task-row-status { color:#50677e; }
    .transport-task-dot.normal .transport-task-row-status { color:#23744f; }
    .transport-task-card-detail { padding:14px 16px 16px; }
    .transport-task-card-detail .meta { margin-top:14px; }
    .transport-task-card-detail .route-comparison { margin-top:14px; }
    .gps-monitor-layout { width:100%; display:grid; grid-template-columns:minmax(0,2.15fr) minmax(280px,.7fr); gap:14px; flex:1 1 auto; min-height:0; }
    .gps-monitor-map-panel { display:flex; flex-direction:column; width:100%; min-width:0; min-height:0; }
    .gps-monitor-task-panel { display:flex; flex:1 1 auto; flex-direction:column; gap:14px; width:100%; min-width:0; min-height:0; overflow:hidden; align-content:flex-start; padding:0; background:#fff; color:var(--ink); }
    .gps-monitor-task-box { display:flex; flex:1 1 auto; flex-direction:column; min-width:0; min-height:0; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; overflow:hidden; }
    .gps-monitor-task-panel .panel-head { flex:0 0 auto; align-items:flex-start; gap:10px; margin:0 0 10px; }
    .gps-monitor-task-panel .panel-head > div { display:flex; flex-direction:column; align-items:flex-end; gap:7px; min-width:0; text-align:right; }
    .gps-monitor-task-panel .panel-head .muted { font-size:11px; line-height:1.45; }
    .gps-monitor-task-panel .transport-task-card-list { flex:1 1 auto; min-height:0; margin-top:0; overflow:auto; align-content:start; }
    .gps-monitor-task-panel .transport-task-card-list > article { width:100%; }
    #gps-monitor-layout .gps-overview-map { height:auto; min-height:0; flex:1 1 auto; }
    @media (max-width:1100px) { .gps-monitor-layout { grid-template-columns:minmax(0,1.6fr) minmax(260px,.75fr); } }
    @media (max-width:900px) { #transport-records > .panel { overflow:auto; } #gps-vehicle-overview { overflow:visible; } .gps-monitor-layout { grid-template-columns:1fr; grid-template-rows:minmax(320px,1fr) auto; } .gps-monitor-map-panel { min-height:320px; } .gps-monitor-task-panel { min-height:280px; max-height:none; } }
    @media (max-width:640px) { .gps-monitor-layout { display:flex; flex-direction:column; } .gps-monitor-map-panel { min-height:220px; } .gps-monitor-task-panel { min-height:300px; } .gps-monitor-task-panel .panel-head { flex-direction:column; } .gps-monitor-task-panel .panel-head > div { align-items:flex-start; text-align:left; } }
    .gps-card-completion { margin-top:10px; padding-top:9px; border-top:1px solid var(--line); cursor:default; }
    .gps-card-completion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .gps-card-completion label { gap:4px; font-size:11px; }
    .gps-card-completion input { padding:7px 8px; font-size:12px; }
    .gps-card-completion input[readonly] { background:#f4f7f8; color:var(--teal); font-weight:600; }
    .gps-card-completion button { width:100%; margin-top:8px; padding:8px 10px; }
    .gps-card-completion .reply { margin-top:8px; padding:8px; font-size:12px; }
    .gps-vehicle-pagination { display:flex; align-items:center; justify-content:center; gap:12px; flex:0 0 auto; margin-top:12px; padding-bottom:2px; }
    .gps-vehicle-pagination .page-info { min-width:76px; text-align:center; color:var(--muted); font-size:12px; }
    #gps-detail-map { flex:1 1 auto; min-height:0; height:auto; }
    .gps-detail-summary { border:1px solid var(--line); border-radius:9px; padding:14px; background:#fbfefe; }
    .gps-detail-title { color:var(--navy); font-size:18px; font-weight:600; margin-bottom:10px; }
    .gps-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 18px; }
    .gps-detail-grid span { display:block; color:var(--muted); font-size:12px; margin-bottom:4px; }
    .gps-detail-grid strong { color:var(--ink); font-size:13px; font-weight:500; }
    .gps-detail-legend { display:flex; flex-wrap:wrap; gap:16px; color:var(--muted); font-size:12px; padding:12px 0 10px; }
    .route-toggle { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:12px; cursor:pointer; }
    .route-toggle input { margin:0; accent-color:#1976d2; }
    .route-line { display:inline-block; width:22px; height:3px; vertical-align:middle; margin-right:5px; border-radius:2px; }
    .route-line.current { background:#1976d2; }
    .route-line.recommended { background:#8ab6e6; opacity:.85; }
    .route-line.actual { background:repeating-linear-gradient(90deg,#159447 0 6px,transparent 6px 10px); }
    .route-line.position { width:10px; height:10px; border-radius:50%; background:#163e5a; }
    @media (max-width:900px) { .gps-vehicle-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .driver-status-list { grid-template-columns:1fr; } }
    @media (max-width:640px) { .gps-overview-map { height:220px; min-height:220px; flex-basis:220px; } #gps-vehicle-overview .gps-overview-map { min-height:220px; } .gps-vehicle-list { grid-template-columns:1fr; } .gps-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .carrier-management-switcher { grid-template-columns:1fr; } .carrier-management-tab { text-align:left; } .carrier-jt808-heading { align-items:stretch; flex-direction:column; } .gps-readiness-counts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    .reply { margin-top:12px; background:#f1f7f7; border-left:3px solid var(--teal); padding:12px; font-size:13px; line-height:1.7; display:none; }
    .task-workspace { display:block; }
    .dispatch-list-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
    .dispatch-list-toolbar label { display:grid; gap:4px; color:var(--muted); font-size:13px; }
    .dispatch-list-toolbar .dispatch-date-filter { gap:5px; }
    .dispatch-date-heading { color:var(--muted); font-size:12px; font-weight:700; line-height:1.2; }
    .dispatch-list-toolbar input { min-height:38px; }
    .dispatch-generation-status { align-self:center; min-width:180px; color:var(--teal); font-size:12px; }
    .dispatch-generation-status[hidden] { display:none; }
    .dispatch-confirm-progress { display:grid; grid-template-columns:minmax(180px,360px) minmax(0,1fr); align-items:center; gap:12px; margin:-2px 0 12px; padding:10px 12px; border:1px solid #b9dddd; border-radius:9px; background:#f1f9f9; color:var(--teal); font-size:13px; }
    .dispatch-confirm-progress[hidden] { display:none; }
    .dispatch-confirm-progress-track { height:7px; overflow:hidden; border-radius:999px; background:#d7eaea; }
    .dispatch-confirm-progress-bar { display:block; width:42%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#17888f,#29aaa7); animation:dispatch-confirm-loading 1.1s ease-in-out infinite; }
    .dispatch-confirm-conflict { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:-2px 0 12px; padding:11px 12px; border:1px solid #e6c98b; border-radius:9px; background:#fff8e8; color:#805816; font-size:13px; }
    .dispatch-confirm-conflict[hidden] { display:none; }
    .dispatch-confirm-conflict span { min-width:0; }
    .dispatch-workflow { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
    .dispatch-workflow-step { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:5px 10px; border:1px solid #d9e4e7; border-radius:999px; background:#f7f9fa; color:var(--muted); font-size:13px; }
    .dispatch-workflow-step::before { content:attr(data-step); display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#dfe8ea; color:#50656d; font-size:11px; font-weight:700; }
    .dispatch-workflow-step.complete { border-color:#a7d7d3; background:#eff8f7; color:#14777c; }
    .dispatch-workflow-step.complete::before { content:'✓'; background:#17888f; color:#fff; }
    .dispatch-workflow-step.current { border-color:#17888f; background:#e7f6f5; color:#0d6d72; font-weight:700; }
    .dispatch-workflow-step.current::before { background:#17888f; color:#fff; }
    .dispatch-transition-review { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; margin:0 0 12px; padding:14px 16px; border:1px solid #9fd3d0; border-radius:10px; background:#f3fbfa; }
    .dispatch-transition-review[hidden] { display:none; }
    .dispatch-transition-review strong { display:block; margin-bottom:5px; color:var(--navy); }
    .dispatch-transition-review p { margin:0; color:#50656d; font-size:13px; line-height:1.6; }
    .dispatch-transition-review .dispatch-list-actions { justify-content:flex-end; }
    @keyframes dispatch-confirm-loading { from { transform:translateX(-110%); } to { transform:translateX(340%); } }
    @media (prefers-reduced-motion:reduce) { aside, .sidebar-collapse-toggle { transition:none; } .dispatch-confirm-progress-bar { width:100%; animation:none; } }
    @media (max-width:640px) { .dispatch-confirm-progress, .dispatch-transition-review { grid-template-columns:1fr; } .dispatch-confirm-conflict { align-items:stretch; flex-direction:column; } }
    .dispatch-list-table-wrap { overflow-x:auto; overflow-y:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y; scrollbar-gutter:stable; }
    .dispatch-list-table-wrap:focus-visible { outline:2px solid #17888f; outline-offset:2px; }
    .dispatch-sheet-panel .dispatch-list-table-wrap { flex:1 1 auto; min-height:0; }
    .dispatch-list-table { width:100%; border-collapse:collapse; min-width:1460px; table-layout:fixed; }
    .dispatch-list-table th, .dispatch-list-table td { padding:10px 12px; border-bottom:1px solid #e3eaed; text-align:left; vertical-align:top; }
    .dispatch-list-table .dispatch-col-sequence { width:96px; }
    .dispatch-list-table .dispatch-col-pickup { width:320px; }
    .dispatch-list-table .dispatch-col-farmer { width:120px; }
    .dispatch-list-table .dispatch-col-phone { width:126px; }
    .dispatch-list-table .dispatch-col-driver { width:132px; }
    .dispatch-list-table .dispatch-col-salesperson { width:150px; }
    .dispatch-list-table .dispatch-col-slaughter-line { width:92px; }
    .dispatch-list-table .dispatch-col-cage { width:114px; }
    .dispatch-cage-evidence { display:grid; justify-items:start; gap:4px; min-width:0; line-height:1.2; }
    .dispatch-cage-count { color:var(--ink); font-size:13px; font-weight:700; white-space:nowrap; }
    .dispatch-cage-tier { display:inline-flex; align-items:center; min-height:20px; padding:2px 7px; border:1px solid transparent; border-radius:999px; font-size:10px; font-weight:700; line-height:1; white-space:nowrap; }
    .dispatch-cage-tier.tier-a { border-color:#d5e2e7; background:#eef4f6; color:#526f7b; }
    .dispatch-cage-tier.tier-b { border-color:#bcded9; background:#e8f5f3; color:#187b78; }
    .dispatch-cage-tier.tier-c { border-color:#cad6e8; background:#edf1f8; color:#3f6088; }
    .dispatch-cage-tier.other, .dispatch-cage-tier.unknown { border-color:#e0e5e7; background:#f4f6f7; color:#6d7d85; }
    .dispatch-cage-length { font-size:11px; white-space:nowrap; }
    .dispatch-list-table .dispatch-col-quantity { width:100px; }
    .dispatch-list-table .dispatch-col-weight { width:100px; }
    .dispatch-list-table .dispatch-col-distance { width:100px; }
    .dispatch-list-table .dispatch-col-arrival { width:190px; }
    .dispatch-list-table .dispatch-col-shift { width:92px; }
    .dispatch-list-table .dispatch-col-status { width:82px; }
    .dispatch-list-table .dispatch-col-actions { width:272px; }
    .dispatch-list-table th { color:#55666e; font-size:12px; white-space:nowrap; background:#f6f9fa; }
    .dispatch-list-table td { font-size:13px; }
    .dispatch-cell-two-lines { display:-webkit-box; max-height:2.8em; overflow:hidden; overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.4; }
    .dispatch-contact-lines { display:block; line-height:1.45; overflow-wrap:anywhere; }
    .dispatch-location-cell { display:grid; gap:2px; max-height:2.8em; overflow:hidden; line-height:1.4; }
    .dispatch-location-cell > span { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .dispatch-location-region { color:var(--muted); }
    .dispatch-location-detail { color:var(--ink); }
    .dispatch-driver-cell { display:grid; gap:4px; min-width:0; max-height:78px; overflow:hidden; }
    .dispatch-driver-identity { display:grid; gap:2px; min-width:0; line-height:1.4; }
    .dispatch-driver-identity > * { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .dispatch-driver-plate { color:var(--ink); }
    .dispatch-driver-name { color:var(--muted); }
    .dispatch-driver-cell .manual-dispatch-control { flex-wrap:nowrap; margin-top:0; overflow:hidden; }
    .dispatch-driver-cell .manual-dispatch-control select { flex:1 1 auto; min-width:0; width:auto; }
    .dispatch-driver-cell .manual-dispatch-control button { flex:0 0 auto; padding:6px 8px; }
    .manual-dispatch-control { display:flex; align-items:center; flex-wrap:wrap; gap:4px; margin-top:6px; min-width:0; }
    .dispatch-manual-editor { margin:0 0 12px; padding:14px 16px; border:1px solid #9fd3d0; border-radius:10px; background:#f7fcfb; }
    .dispatch-manual-editor[hidden] { display:none; }
    .dispatch-manual-editor-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
    .dispatch-manual-editor-head h3 { margin:0 0 4px; font-size:17px; color:var(--navy); }
    .dispatch-manual-editor-grid { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:10px; }
    .dispatch-manual-editor-grid label { display:flex; flex-direction:column; gap:5px; color:#50656d; font-size:13px; }
    .dispatch-manual-editor-grid .wide { grid-column:span 2; }
    .dispatch-manual-location-field { position:relative; display:flex; flex-direction:column; gap:5px; }
    .dispatch-manual-location-input-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
    .dispatch-manual-location-input-row button { white-space:nowrap; }
    .dispatch-manual-location-field .location-suggestion-list { top:64px; }
    .dispatch-manual-location-map { position:relative; width:100%; height:180px; min-height:180px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:linear-gradient(135deg,#e7f4f0,#f7fbf9 45%,#eaf1f7); cursor:crosshair; }
    .dispatch-manual-location-map .map-empty { height:100%; display:flex; align-items:center; justify-content:center; padding:18px; color:var(--muted); text-align:center; }
    .dispatch-manual-editor-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:12px; }
    .dispatch-row-actions { display:flex; gap:5px; align-items:center; }
    .dispatch-shift-badge.normal { border-color:#d9e3e6; background:#f2f5f6; color:#596c75; }
    .dispatch-salesperson-control { display:grid; gap:6px; min-width:128px; }
    .dispatch-salesperson-control input { min-width:0; width:100%; padding:6px 8px; font-size:12px; }
    .dispatch-salesperson-control .dispatch-row-actions button { padding:5px 7px; font-size:12px; }
    @media (max-width:1100px) { .dispatch-manual-editor-grid { grid-template-columns:repeat(2,minmax(150px,1fr)); } }
    @media (max-width:640px) { .dispatch-manual-editor-grid { grid-template-columns:1fr; } .dispatch-manual-editor-grid .wide { grid-column:auto; } .dispatch-manual-location-input-row { grid-template-columns:1fr; } .dispatch-manual-location-map { height:160px; min-height:160px; } }
    .manual-dispatch-control select { flex:1 1 100%; min-width:0; max-width:100%; }
    .dispatch-supply-overview { margin:0 0 12px; padding:12px 14px 10px; border:1px solid #c7e0df; border-radius:10px; background:linear-gradient(135deg,#f2faf9,#f8fbfc 64%,#f1f6fa); box-shadow:0 2px 8px rgba(18,48,71,.05); }
    .dispatch-all-demands-card { margin:0 0 12px; padding:12px 14px 10px; border:1px solid #d5e2e6; border-radius:10px; background:#fff; box-shadow:0 2px 8px rgba(18,48,71,.04); }
    .dispatch-all-demands-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:9px; }
    .dispatch-all-demands-head h3 { margin:0 0 3px; color:var(--navy); font-size:17px; }
    .dispatch-all-demands-table-wrap { overflow-x:auto; max-height:360px; border:1px solid #e3eaed; border-radius:8px; }
    .dispatch-all-demands-table { width:100%; min-width:920px; border-collapse:collapse; table-layout:fixed; }
    .dispatch-all-demands-table th:nth-child(1) { width:5%; }
    .dispatch-all-demands-table th:nth-child(2) { width:16%; }
    .dispatch-all-demands-table th:nth-child(3) { width:5%; }
    .dispatch-all-demands-table th:nth-child(4) { width:14%; }
    .dispatch-all-demands-table th:nth-child(5) { width:9%; }
    .dispatch-all-demands-table th:nth-child(6) { width:8%; }
    .dispatch-all-demands-table th:nth-child(7) { width:7%; }
    .dispatch-all-demands-table th:nth-child(8) { width:12%; }
    .dispatch-all-demands-table th:nth-child(9) { width:9%; }
    .dispatch-all-demands-table th:nth-child(10) { width:8%; }
    .dispatch-all-demands-table th:nth-child(11) { width:7%; }
    .dispatch-preallocated-line { display:inline-block; padding:3px 5px; border-radius:5px; background:#f1f5f7; color:#607580; white-space:nowrap; }
    .dispatch-preallocated-line[data-line="南线"] { background:#fff2df; color:#9a5910; }
    .dispatch-preallocated-line[data-line="北线"] { background:#e9f1fc; color:#245f9d; }
    .dispatch-preallocated-line[data-line="南北混合"] { background:#e3f4f3; color:#137b7f; }
    .dispatch-all-demands-table th, .dispatch-all-demands-table td { padding:8px 6px; border-bottom:1px solid #e8eef0; text-align:left; vertical-align:top; }
    .dispatch-all-demands-table .dispatch-demand-action { width:92px; white-space:nowrap; }
    .dispatch-all-demands-table .dispatch-demand-delete { padding:5px 8px; font-size:12px; white-space:nowrap; }
    .dispatch-all-demands-table .dispatch-demand-delete-disabled { display:inline-block; padding-top:5px; white-space:nowrap; }
    .dispatch-all-demands-table th { color:#55666e; font-size:12px; white-space:nowrap; background:#f6f9fa; position:sticky; top:0; z-index:1; }
    .dispatch-all-demands-table td { color:#294653; font-size:13px; overflow-wrap:anywhere; }
    .dispatch-all-demands-table tr:last-child td { border-bottom:0; }
    .dispatch-supply-overview-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:9px; }
    .dispatch-supply-overview-head h3 { margin:0 0 3px; color:var(--navy); font-size:17px; }
    .dispatch-line-supply-overviews { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
    .dispatch-line-supply-card { min-width:0; padding:10px; border:1px solid #d5e6e7; border-left:4px solid #15958c; border-radius:9px; background:rgba(255,255,255,.72); }
    .dispatch-line-supply-card.north { border-left-color:#3478bd; }
    .dispatch-line-supply-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px; }
    .dispatch-line-supply-head h4 { margin:0 0 2px; color:var(--navy); font-size:15px; }
    .dispatch-supply-overview-body { display:block; }
    .dispatch-hourly-reserve-panel { min-width:0; padding:8px 10px; border:1px solid #dbe9e9; border-radius:8px; background:rgba(255,255,255,.62); }
    .dispatch-hourly-reserve-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 0 6px; }
    .dispatch-hourly-reserve { display:block; min-width:0; }
    .dispatch-hourly-chart-legend { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; padding:8px 0 3px; font-size:12px; }
    .dispatch-hourly-chart-legend span { display:inline-flex; align-items:center; gap:6px; }
    .dispatch-hourly-chart-legend i { width:24px; border-top:3px solid #16867d; }
    .dispatch-hourly-chart-legend .shortage { width:8px; height:8px; border:2px solid #c14444; border-radius:50%; }
    .dispatch-hourly-chart-legend .demand { border-top:3px dashed #bc7819; }
    .dispatch-hourly-chart-scroll { max-width:100%; overflow-x:auto; }
    .dispatch-hourly-chart { display:block; width:100%; height:auto; }
    .dispatch-hourly-grid { stroke:#e1eaed; stroke-width:1; }
    .dispatch-hourly-axis { fill:#627780; font-size:12px; }
    .dispatch-hourly-date { font-size:10px; }
    .dispatch-hourly-interval { font-size:10px; }
    .dispatch-hourly-break-band { fill:#e7eef4; }
    .dispatch-hourly-break-label { fill:#526c7e; font-size:11px; font-weight:600; }
    .dispatch-hourly-supply-line, .dispatch-hourly-demand-line { fill:none; stroke:#16867d; stroke-width:2.5; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
    .dispatch-hourly-demand-line { stroke:#bc7819; stroke-dasharray:6 4; }
    .dispatch-hourly-supply-point { fill:#16867d; stroke:#fff; stroke-width:1.5; }
    .dispatch-hourly-demand-point { fill:#fff; stroke:#bc7819; stroke-width:2; }
    .dispatch-hourly-supply-point.shortage { stroke:#c14444; stroke-width:3; }
    .dispatch-hourly-chart g:focus { outline:2px solid #3478bd; }
    .dispatch-hourly-chart-note { margin:4px 0 8px; color:var(--muted); font-size:12px; line-height:1.6; }
    .dispatch-hourly-chart-empty { padding:24px 12px; text-align:center; color:var(--muted); background:#f7fafb; border-radius:6px; }
    .dispatch-hourly-chart-details { font-size:12px; }
    .dispatch-hourly-chart-details summary { cursor:pointer; color:#197b76; padding:4px 0; }
    .dispatch-hourly-chart-details table { width:100%; min-width:620px; border-collapse:collapse; }
    .dispatch-hourly-chart-details th, .dispatch-hourly-chart-details td { padding:7px 10px; text-align:left; border-bottom:1px solid #e1eaed; white-space:nowrap; }
    @media (max-width:760px) { .dispatch-supply-overview { padding:11px 12px 9px; } .dispatch-line-supply-card { padding:9px; } .dispatch-hourly-reserve-head { align-items:flex-start; flex-direction:column; gap:2px; } }
    .dispatch-list-status-note { margin-top:10px; }
    .dispatch-supply-evidence { min-width:190px; line-height:1.55; }
    .dispatch-supply-evidence .muted { display:block; }
    @media print {
      body * { visibility:hidden; }
      #tasks, #tasks * { visibility:visible; }
      #tasks { display:block !important; position:absolute; inset:0; padding:0; }
      #tasks .dispatch-list-toolbar, #tasks .dispatch-list-actions { display:none !important; }
      #tasks .panel { box-shadow:none; border:none; }
      #tasks .dispatch-list-table { min-width:0; }
    }
    .task-overview-panel, .task-dispatch-panel { min-width:0; }
    .task-overview-panel { overflow:auto; }
    .task-selector-only { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
    .task-selector-only label { flex:0 1 460px; flex-direction:row; align-items:center; gap:10px; color:var(--muted); }
    .task-selector-only label span { white-space:nowrap; }
    .task-selector-only select { flex:1; min-width:220px; }
    .task-card-grid { flex:1 1 auto; min-height:0; overflow-y:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(1,minmax(0,1fr)); gap:12px; }
    .task-card { min-width:0; min-height:0; overflow-y:auto; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:9px; padding:14px; background:#fbfefe; }
    .task-card.motion-enter { will-change:transform,opacity; }
    .task-card .title { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; color:var(--navy); font-weight:700; }
    .task-card .title > .status { flex:0 0 auto; align-self:flex-start; }
    .task-card .meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 12px; margin-top:12px; color:var(--muted); font-size:12px; }
    .task-card .meta strong { color:var(--ink); font-weight:500; }
    .task-card .reason { flex:1 1 auto; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.55; }
    .task-card-actions { display:flex; gap:8px; margin-top:12px; }
    .task-card-actions button { flex:1; min-width:0; }
    .task-card-pagination { flex:0 0 auto; display:flex; align-items:center; justify-content:center; gap:12px; padding-top:12px; }
    .task-card-pagination .page-info { min-width:76px; text-align:center; color:var(--muted); font-size:12px; }
    .task-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
    .task-summary-card { border:1px solid var(--line); border-radius:8px; padding:12px; background:#fbfefe; }
    .task-summary-card .label { color:var(--muted); font-size:12px; }
    .task-summary-card .number { margin-top:6px; color:var(--navy); font-size:22px; font-weight:700; }
    .score { color:var(--teal); white-space:nowrap; }
    .selected-task-card { border:1px solid #cfe3e5; border-radius:9px; padding:14px; background:#f7fbfb; margin-bottom:16px; }
    .selected-task-card .task-title { color:var(--navy); font-weight:700; font-size:15px; }
    .selected-task-card .task-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin-top:10px; font-size:13px; }
    .selected-task-card .task-meta span { color:var(--muted); }
    .status-guide { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:14px; }
    .status-guide-item { border:1px solid var(--line); border-radius:7px; padding:8px; background:#fbfefe; font-size:12px; }
    .status-guide-item strong { display:block; color:var(--navy); margin-bottom:4px; }
    .task-list-toolbar { display:flex; justify-content:space-between; align-items:end; gap:12px; margin-bottom:16px; }
    .toast { position:fixed; right:24px; bottom:24px; background:var(--navy); color:#fff; padding:12px 16px; border-radius:8px; opacity:0; transform:translateY(10px); transition:.2s; pointer-events:none; }
    .toast.show { opacity:1; transform:translateY(0); }

    /* 统一页面剩余空间的使用方式：固定卡片保持内容尺寸，长列表在自己的区域滚动。 */
    .view.active > .panel { display:flex; flex-direction:column; }
    #reports .report-chart-panel { display:flex; flex:0 0 auto; flex-direction:column; min-height:0; }
    #reports .report-chart { flex:0 0 320px; height:320px; min-height:320px; overflow-y:hidden; }
    #reports .report-summary-table-panel { flex:0 0 auto; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
    #reports .report-summary-table-panel h3 { margin:0 0 10px; }
    #reports .report-summary-table-wrap { max-width:100%; overflow-x:auto; }
    #demands .demand-entry-section { flex:1 1 auto; min-height:0; overflow-y:auto; }
    #demands .panel-head { margin-bottom:10px; }
    #demands .demand-entry-section { display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; }
    #demands .demand-entry-form { min-height:0; flex:0 0 auto; }
    #demands .demand-basic-grid { flex:0 0 auto; min-height:0; grid-template-rows:auto; }
    #demands .demand-location-field { display:flex; flex-direction:column; min-height:0; }
    #demands .demand-location-field .demand-location-map { flex:0 0 auto; height:clamp(150px,18vh,170px); min-height:150px; max-height:170px; }
    #tasks .task-card-grid { align-content:start; grid-template-rows:none; grid-auto-rows:max-content; }
    #tasks .task-card { min-height:220px; }
    #task-history > .panel { flex:1 1 auto; min-height:0; margin-bottom:0; overflow:hidden; }
    #task-history .task-history-toolbar { display:grid; grid-template-columns:minmax(240px,2fr) minmax(145px,1fr) minmax(145px,1fr) auto; align-items:end; gap:10px; margin-bottom:14px; }
    #task-history .task-history-toolbar label { display:flex; flex-direction:column; gap:5px; color:#50656d; font-size:12px; }
    #task-history .task-history-toolbar-actions { display:flex; align-items:center; gap:8px; }
    #task-history .task-history-toolbar-actions button { white-space:nowrap; }
    #task-history #task-history-search-summary { grid-column:1 / -1; }
    #task-history .history-gps-track { margin-top:10px; padding:9px 10px; border:1px solid #d8eded; border-radius:9px; background:#f7fbfb; }
    #task-history .history-gps-track-head { display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--navy); font-size:12px; }
    #task-history .history-gps-track-head .muted { font-size:11px; }
    #task-history .history-gps-track svg { display:block; width:100%; height:96px; margin-top:7px; border-radius:6px; background:linear-gradient(135deg,#edf7f5,#f5f8f8); }
    .route-comparison { margin-top:10px; padding:9px 10px; border:1px solid #d8eded; border-radius:9px; background:#f7fbfb; }
    .route-comparison-head { display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--navy); font-size:12px; }
    .route-comparison-head .muted { font-size:11px; }
    .route-comparison svg { display:block; width:100%; height:96px; margin-top:7px; border-radius:6px; background:linear-gradient(135deg,#edf7f5,#f5f8f8); }
    .route-comparison polyline { fill:none; stroke-linecap:round; stroke-linejoin:round; }
    .route-comparison .route-recommended { stroke:#8ab6e6; stroke-width:5; stroke-opacity:.85; }
    .route-comparison .route-actual { stroke:#159447; stroke-width:3.5; stroke-opacity:.95; stroke-dasharray:8 6; }
    .route-comparison .route-overlap { stroke:#0f7a3a; stroke-width:5; stroke-opacity:1; }
    .route-comparison .route-stop-circle { fill:#fff; stroke-width:2.3; }
    .route-comparison .route-stop-circle.pickup { stroke:#147d83; }
    .route-comparison .route-stop-circle.wudi_checkpoint { stroke:#8b5cf6; }
    .route-comparison .route-stop-circle.warehouse { stroke:#123047; }
    .route-comparison .route-stop-label { fill:var(--navy); font-size:4px; font-weight:700; paint-order:stroke; stroke:#fff; stroke-width:1.3px; stroke-linejoin:round; }
    .route-comparison-legend { display:flex; flex-wrap:wrap; gap:6px 12px; margin-top:6px; color:var(--muted); font-size:11px; }
    .route-comparison-legend span { display:inline-flex; align-items:center; gap:4px; }
    .route-swatch { display:inline-block; width:16px; height:3px; border-radius:2px; }
    .route-swatch.recommended { background:#8ab6e6; }
    .route-swatch.actual { background:repeating-linear-gradient(90deg,#159447 0 6px,transparent 6px 10px); }
    .route-swatch.overlap { background:#0f7a3a; }
    .route-stop-swatch { display:inline-block; width:8px; height:8px; border:2px solid; border-radius:50%; background:#fff; }
    .route-stop-swatch.pickup { border-color:#147d83; }
    .route-stop-swatch.wudi_checkpoint { border-color:#8b5cf6; }
    .route-stop-swatch.warehouse { border-color:#123047; }
    .route-comparison-meta { margin-top:5px; color:var(--muted); font-size:11px; }
    .route-comparison-empty { color:var(--muted); font-size:12px; }
    #task-history .route-comparison { margin-top:10px; }
    #task-history .history-gps-track-meta { margin-top:5px; color:var(--muted); font-size:11px; }
    #task-history .history-gps-track-empty { color:var(--muted); font-size:12px; }
    #task-history #task-history-cards { display:flex; align-content:start; flex-direction:column; min-width:0; flex:1 1 auto; overflow:auto; }
    #task-history .task-history-table-wrap { min-width:0; flex:1 1 auto; overflow:auto; border:1px solid var(--line); border-radius:9px; }
    #task-history .task-history-table { width:100%; min-width:820px; table-layout:fixed; }
    #task-history .task-history-table th, #task-history .task-history-table td { padding:11px 12px; border-bottom:1px solid #e3eaed; text-align:left; vertical-align:top; }
    #task-history .task-history-table th { color:#55666e; font-size:12px; white-space:nowrap; background:#f6f9fa; }
    #task-history .task-history-table td { font-size:12px; }
    #task-history .task-history-table tbody tr:last-child td { border-bottom:0; }
    #task-history .task-history-row:hover { background:#fbfefe; }
    #task-history .task-history-col-time { width:130px; }
    #task-history .task-history-col-location { width:230px; }
    #task-history .task-history-col-driver { width:140px; }
    #task-history .task-history-col-quantity { width:170px; }
    #task-history .task-history-col-status { width:86px; }
    #task-history .task-history-col-action { width:104px; }
    #task-history .task-history-primary { display:block; color:var(--navy); font-weight:700; line-height:1.4; }
    #task-history .task-history-secondary { display:block; margin-top:4px; color:var(--muted); line-height:1.45; }
    #task-history .task-history-detail-toggle { padding:7px 10px; }
    #task-history .task-history-detail-row > td { padding:0; background:#f8fbfb; }
    #task-history .task-history-details { display:grid; gap:12px; padding:16px; border-bottom:1px solid #d8e6e8; }
    #task-history .task-history-detail-group { border:1px solid #d8e6e8; border-radius:9px; background:#fff; overflow:hidden; }
    #task-history .task-history-detail-group h3 { margin:0; padding:9px 12px; color:var(--navy); font-size:13px; background:#eef7f6; border-bottom:1px solid #d8e6e8; }
    #task-history .task-history-detail-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
    #task-history .task-history-detail-item { min-width:0; padding:9px 12px; border-right:1px solid #edf1f2; border-bottom:1px solid #edf1f2; }
    #task-history .task-history-detail-item span { display:block; margin-bottom:4px; color:var(--muted); font-size:11px; }
    #task-history .task-history-detail-item strong { display:block; color:var(--ink); font-size:12px; font-weight:600; line-height:1.45; overflow-wrap:anywhere; }
    #task-history .task-history-empty { padding:38px 14px; }
    #carriers .driver-entry-layout { display:flex; min-height:0; }
    #carriers .driver-status-card { flex:1 1 auto; min-height:0; }
    #carriers .driver-status-list { align-content:start; grid-template-rows:none; grid-auto-rows:max-content; overflow-y:auto; }
    #carriers .driver-status-item { min-height:220px; }
    #driver-performance #carriers-table { flex:1 1 auto; min-height:0; overflow:auto; }
    #driver-performance .table-scroll { height:100%; overflow:auto; }
    #driver-performance .carrier-capacity-cell { white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
    #driver-performance .carrier-score-cell { white-space:nowrap; text-align:center; }
    #driver-performance .carrier-performance-primary { color:var(--navy); font-size:15px; }
    #driver-performance .carrier-confidence-cell { white-space:nowrap; text-align:center; }
    #driver-performance .carrier-history-cell { white-space:nowrap; text-align:right; }
    #driver-performance .carrier-identity-cell { overflow-wrap:anywhere; }
    #driver-performance th, #driver-performance td { padding:6px 8px; line-height:15px; }
    #driver-performance tbody tr { height:44px; }

    @media (max-width:1100px) { .task-workspace { grid-template-columns:1fr; } .task-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #driver-performance .driver-performance-detail { grid-template-columns:repeat(2,minmax(0,1fr)); } #task-history .task-history-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); } #task-history .task-history-keyword { grid-column:1 / -1; } #task-history .task-history-toolbar-actions { grid-column:1 / -1; } #task-history .task-history-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    @media (max-width:900px) { main { padding:24px 20px; } .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .grid { grid-template-columns:1fr; } }
    @media (max-width:640px) { #app-shell.authenticated-shell { display:flex; flex-direction:column; } .shell { display:block; } aside { width:100%; max-width:100%; max-height:42vh; flex:0 0 auto; overflow:hidden; padding:16px; } .sidebar-collapse-toggle { min-width:36px; min-height:36px; } nav { display:block; min-width:0; overflow:visible; padding-top:10px; } nav button { width:100%; white-space:normal; } body.sidebar-collapsed #app-sidebar { width:100%; max-height:none; overflow:visible; padding:10px 16px; } body.sidebar-collapsed #app-sidebar .brand { flex-direction:row; justify-content:flex-start; padding:0; border-bottom:0; } body.sidebar-collapsed #app-sidebar .brand .brand-mark { width:36px; height:36px; flex-basis:36px; margin:0; } body.sidebar-collapsed #app-sidebar .sidebar-collapse-toggle { margin-left:auto; min-width:36px; min-height:36px; } main { width:100%; min-width:0; min-height:0; height:auto; flex:1 1 auto; padding:20px 14px; max-width:none; } .cards { grid-template-columns:1fr 1fr; gap:10px; } .form-grid, .demand-basic-grid, .demand-business-card, .pickup-time-grid, .permission-grid { grid-template-columns:1fr; } .demand-species-control { grid-column:auto; } #demands .demand-location-field .demand-location-map { height:140px; min-height:140px; max-height:140px; } .task-card-grid { grid-template-columns:1fr; } .topbar { display:block; } .badge { display:inline-block; margin-top:12px; } table { min-width:680px; } .panel { overflow:auto; } #task-history .task-history-toolbar { grid-template-columns:1fr; } #task-history .task-history-keyword, #task-history .task-history-toolbar-actions, #task-history #task-history-search-summary { grid-column:auto; } #task-history .task-history-toolbar-actions { flex-wrap:wrap; } #task-history .task-history-detail-grid { grid-template-columns:1fr; } }
    @media (max-width:640px) { .demand-template-head { align-items:stretch; flex-direction:column; gap:9px; } .demand-template-heading { width:100%; flex-wrap:wrap; } .demand-template-title { white-space:nowrap; } .demand-template-cloud-note { flex:1 1 190px; } .demand-template-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; } .demand-template-select-label { grid-column:1 / -1; width:100%; } .demand-template-toolbar select { width:100%; min-width:0; } .demand-template-toolbar button { width:100%; } .demand-template-sharing-status { grid-column:1 / -1; } }
    @media (max-width:640px) { body[data-active-view="exceptions"] #app-shell.authenticated-shell { display:flex; flex-direction:column; } body[data-active-view="exceptions"] aside { width:100%; max-width:100%; max-height:220px; overflow-y:auto; flex:0 0 auto; padding:16px; } body[data-active-view="exceptions"] .brand { padding-bottom:12px; } body[data-active-view="exceptions"] nav { display:block; min-width:0; padding-top:10px; } body[data-active-view="exceptions"] main { width:100%; min-width:0; min-height:0; height:auto; flex:1 1 auto; padding:20px 14px; max-width:none; } }

/* 派车清单视觉整理：保留现有业务结构，只强化参考图中的留白、层级和操作区。 */
@media (min-width:901px) {
  .brand { gap:12px; padding:0 0 18px; }
  .brand .brand-mark { width:44px; height:44px; flex-basis:44px; border-radius:12px; }
  #app-sidebar .sidebar-brand-title { flex:1 1 auto; min-width:0; }
  #app-sidebar .sidebar-brand-title strong { font-size:18px; line-height:1.4; letter-spacing:0; white-space:nowrap; }
  .brand span { margin-top:7px; line-height:1.45; }
  nav { padding-top:28px; }
  main { padding:42px 46px 42px; background:#f3f6f7; }
  .topbar { align-items:center; margin:0 0 34px; }
  .topbar h1 { font-size:34px; letter-spacing:.01em; }
  .topbar-actions { gap:10px; }
  .topbar-actions .badge { padding:10px 15px; font-size:13px; }
  .topbar-actions .user-chip { padding:10px 14px; font-size:13px; }
  .topbar-actions button.secondary { min-height:42px; padding:9px 16px; font-size:15px; font-weight:650; }
}

/* 指挥中心参考尺寸：避免长标题换行挤压工作台首屏；窄屏仍沿用默认自适应换行。 */
@media (min-width:1360px) {
  body[data-active-view="exceptions"] .topbar { gap:14px; margin-bottom:24px; }
  body[data-active-view="exceptions"] .topbar > div:first-child { min-width:0; }
  body[data-active-view="exceptions"] .topbar h1 { font-size:30px; line-height:1.2; letter-spacing:0; white-space:nowrap; }
  body[data-active-view="exceptions"] .topbar-actions { flex:0 0 auto; gap:7px; }
  body[data-active-view="exceptions"] .topbar-actions .badge { padding:8px 12px; font-size:12px; }
  body[data-active-view="exceptions"] .topbar-actions .user-chip { padding:8px 11px; font-size:12px; }
  body[data-active-view="exceptions"] .topbar-actions button.secondary { min-height:36px; padding:7px 10px; font-size:13px; }
}

#tasks .task-dispatch-panel {
  padding:26px 28px 30px;
  border-color:#d8e3e7;
  border-radius:16px;
  box-shadow:0 2px 7px rgba(18,48,71,.035);
  background:#fff;
}
#tasks .dispatch-shared-controls { margin-bottom:14px; }
#tasks .dispatch-date-filter { gap:8px; }
#tasks .dispatch-date-heading { color:#71808a; font-size:14px; letter-spacing:.02em; }
#tasks .dispatch-view-switcher-row { margin:0; padding:0 0 16px; border-bottom:1px solid #e6edef; }
#tasks .dispatch-view-switcher-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
#tasks .dispatch-view-switcher-row .report-view-switcher { width:max-content; padding:0; border:0; border-radius:0; background:transparent; }
#tasks .dispatch-view-switcher-row .report-view-button { min-height:40px; padding:9px 16px; border-radius:9px; font-size:15px; font-weight:650; }
#tasks .dispatch-view-switcher-row .report-view-button:not(.active) { color:#68718c; background:#f5f3fc; }
#tasks .dispatch-view-switcher-row .report-view-button[aria-selected="true"] { background:var(--teal); color:#fff; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter { display:grid; flex:0 0 auto; gap:8px; min-width:190px; margin:0; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter input { min-height:40px; height:40px; border-color:#d4e0e5; border-radius:9px; font-size:15px; }
#tasks .dispatch-sheet-panel { overflow:visible; }
#tasks .dispatch-sheet-panel-head { flex:0 0 auto; align-items:flex-start; justify-content:flex-end; }
#tasks .dispatch-sheet-command-bar { display:grid; grid-template-columns:minmax(260px,1fr) auto auto; grid-template-areas:"title controls actions" "workflow workflow workflow"; align-items:center; gap:12px 14px; margin:18px 0 12px; padding:14px 16px; border:1px solid #dfeaec; border-radius:12px; background:#fbfdfd; box-shadow:0 2px 7px rgba(18,48,71,.025); }
#tasks .dispatch-sheet-command-main, #tasks .dispatch-sheet-command-left { display:contents; }
#tasks .dispatch-sheet-command-title { grid-area:title; min-width:0; }
#tasks .dispatch-sheet-command-title strong { color:var(--navy); font-size:14px; font-weight:650; white-space:nowrap; }
#tasks .dispatch-sheet-controls { grid-area:controls; display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-height:0; margin:0 !important; }
#tasks .dispatch-sheet-controls button { min-height:40px; padding:8px 13px; border-radius:9px; font-size:14px; font-weight:650; }
#tasks .dispatch-sheet-top-actions { grid-area:actions; display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap; gap:8px; min-width:0; }
#tasks .dispatch-sheet-top-actions button { min-height:40px; padding:8px 14px; border-radius:9px; font-size:14px; font-weight:650; white-space:nowrap; }
#tasks .dispatch-sheet-top-actions .primary { padding-inline:18px; box-shadow:0 4px 10px rgba(20,125,131,.12); }
#tasks .dispatch-workflow-row { grid-area:workflow; display:flex; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:12px; margin:0; padding-top:12px; border-top:1px solid #e3ecee; }
#tasks .dispatch-workflow { margin:0; }
#tasks .dispatch-workflow-step { min-height:34px; padding:6px 12px; font-size:14px; font-weight:650; }
#tasks .dispatch-list-status-note { margin:0 0 12px !important; padding:12px 14px; border:1px solid #dfeaec; border-left:4px solid #78bcb9; border-radius:9px; background:#fbfdfd; }
#transport-records .dispatch-risk-section { margin-top:18px; padding:18px; border:1px solid #dfeaec; border-radius:12px; background:#fbfdfd; box-shadow:0 2px 7px rgba(18,48,71,.025); }
#transport-records .dispatch-risk-section-head { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 14px; margin-bottom:14px; }
#transport-records .dispatch-risk-section-head h3 { margin:0; color:var(--navy); font-size:16px; }
#transport-records .dispatch-risk-section .dispatch-list-status-note { margin-bottom:0 !important; background:#fff; }
#transport-records .dispatch-route-risk-overview { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#transport-records .dispatch-route-risk-copy { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 12px; min-width:0; }
#transport-records .dispatch-route-risk-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
#tasks .dispatch-list-status-note strong { color:var(--navy); font-size:15px; }
#tasks .dispatch-list-table-wrap { flex:0 0 auto; max-height:calc(100vh - 390px); overflow-x:auto; overflow-y:auto; border:1px solid #dfe8eb; border-radius:10px; background:#fff; }
#tasks .dispatch-list-table { min-width:1960px; }
#tasks .dispatch-list-table th { position:sticky; top:0; z-index:2; padding:12px; color:#60737c; font-size:13px; font-weight:650; background:#f5f8f9; }
#tasks .dispatch-list-table td { padding:12px; background:#fff; }
#tasks .dispatch-list-table tbody tr:hover td { background:#f8fbfb; }
#tasks .dispatch-list-table th:first-child, #tasks .dispatch-list-table td:first-child { position:sticky; left:0; z-index:3; box-shadow:1px 0 0 #e3eaed; }
#tasks .dispatch-list-table th:first-child { z-index:4; background:#f5f8f9; }
#tasks .dispatch-list-table td:first-child { background:#fff; }
#tasks .dispatch-list-table tbody tr:hover td:first-child { background:#f8fbfb; }
#tasks .dispatch-list-table td:last-child { vertical-align:middle; }
#tasks .dispatch-list-table td:last-child .dispatch-row-actions { flex-wrap:nowrap; gap:8px; min-width:max-content; }
#tasks .dispatch-list-table td:last-child .dispatch-row-actions button { flex:0 0 auto; min-width:76px; min-height:38px; padding:8px 10px; white-space:nowrap; line-height:1.2; }

@media (max-width:900px) {
  #tasks .task-dispatch-panel { padding:20px; }
  #tasks .dispatch-sheet-command-bar { grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"title controls" "actions actions" "workflow workflow"; }
  #tasks .dispatch-sheet-top-actions { justify-content:flex-start; }
}
@media (max-width:640px) {
  #tasks .task-dispatch-panel { overflow:auto; padding:16px; border-radius:12px; }
  #tasks .dispatch-view-switcher-row { align-items:stretch; flex-direction:column; gap:12px; }
  #tasks .dispatch-view-switcher-row .dispatch-date-filter { width:100%; }
  #tasks .dispatch-sheet-command-bar { grid-template-columns:1fr; grid-template-areas:"title" "controls" "actions" "workflow"; }
  #tasks .dispatch-workflow-row { align-items:stretch; flex-direction:column; }
  #tasks .dispatch-sheet-controls { align-items:stretch; }
  #tasks .dispatch-sheet-top-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; }
  #tasks .dispatch-sheet-top-actions button { font-size:14px; }
  #transport-records .dispatch-route-risk-overview, #transport-records .dispatch-route-risk-copy { align-items:flex-start; flex-direction:column; }
  #tasks .dispatch-list-status-note strong { font-size:14px; }
}

/* 调度保障组件微调：缩短无效留白，统一日期、线路卡和指标卡的视觉密度。 */
body[data-active-view="tasks"] .topbar { margin-bottom:24px; }
#tasks .task-dispatch-panel { padding:22px 24px 24px; }
#tasks .dispatch-shared-controls { margin-bottom:10px; }
#tasks .dispatch-view-switcher-row { padding-bottom:12px; gap:16px; }
#tasks .dispatch-view-switcher-row .report-view-button { min-height:38px; padding:8px 14px; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter { min-width:178px; gap:6px; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter input { min-height:38px; height:38px; font-size:14px; }
#tasks .dispatch-supply-overview { margin-bottom:10px; padding:10px 12px 8px; }
#tasks .dispatch-line-supply-overviews { gap:8px; }
#tasks .dispatch-line-supply-card { padding:8px 9px; }
#tasks .dispatch-line-supply-head { margin-bottom:6px; }
#tasks .dispatch-line-supply-head h4 { font-size:14px; }
#tasks .dispatch-hourly-reserve-panel { padding:7px 9px; }
#tasks .dispatch-hourly-reserve-head { margin-bottom:5px; }
#tasks .dispatch-hourly-reserve-head strong { font-size:14px; }


/* 派车导航必须始终可见：部分旧页面状态会在加载/切换时遗留隐藏样式，
   导致当日需求、调度保障、路线风险、派车单四个入口只剩空白区域。 */
#tasks .dispatch-view-switcher-row,
#tasks #dispatch-view-switcher,
#tasks #dispatch-view-switcher .report-view-button,
#tasks .dispatch-view-switcher-row .dispatch-date-filter {
  visibility: visible !important;
  opacity: 1 !important;
}
#tasks .dispatch-view-switcher-row { display:flex !important; }
#tasks #dispatch-view-switcher { display:flex !important; }
#tasks #dispatch-view-switcher .report-view-button { display:inline-flex !important; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter { display:grid !important; }

@media (max-width:760px) {
  #tasks .task-dispatch-panel { padding:14px; }
  #tasks .dispatch-line-supply-card { padding:8px; }
}

/* 路线风险：把规划快照、实时路况和人工提醒组织成可快速扫读的风险台账。 */
#transport-records .dispatch-risk-panel { flex:1 1 auto; width:100%; min-width:0; min-height:0; overflow:auto; overscroll-behavior-y:contain; scrollbar-gutter:stable; }
#transport-records .dispatch-risk-section { box-sizing:border-box; width:100%; min-width:0; max-width:100%; margin:0; padding:20px; border-color:#d9e6e9; background:#fff; box-shadow:0 6px 18px rgba(18,48,71,.035); }
#transport-records .dispatch-risk-section-head { align-items:flex-end; justify-content:space-between; gap:12px 20px; margin-bottom:16px; }
#transport-records .dispatch-risk-section-title { display:flex; align-items:baseline; gap:10px; min-width:0; }
#transport-records .dispatch-risk-section-head h3 { font-size:19px; letter-spacing:.01em; }
#transport-records .dispatch-risk-section-head > .muted { min-width:0; max-width:100%; color:#526670; font-size:13px; line-height:1.5; text-align:right; overflow-wrap:anywhere; }
#transport-records .dispatch-risk-section #dispatch-route-risk-overview { display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; margin:0 !important; padding:16px; border:1px solid #d9e7e9; border-left:4px solid #69b6b3; border-radius:12px; background:#f9fcfc; overflow:hidden; }
#transport-records .dispatch-route-risk-overview-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; min-width:0; }
#transport-records .dispatch-route-risk-overview-head > * { min-width:0; max-width:100%; }
#transport-records .dispatch-route-risk-copy { display:flex; align-items:flex-start; flex-direction:column; gap:7px; min-width:0; }
#transport-records .dispatch-route-risk-heading { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
#transport-records .dispatch-route-risk-heading strong { color:var(--navy); font-size:17px; font-weight:720; }
#transport-records .dispatch-route-risk-summary { max-width:100%; color:#4e626d; font-size:13px; line-height:1.55; overflow-wrap:anywhere; word-break:break-word; }
#transport-records .dispatch-risk-status, #transport-records .dispatch-risk-source, #transport-records .dispatch-risk-phase, #transport-records .dispatch-risk-level { display:inline-flex; align-items:center; white-space:nowrap; }
#transport-records .dispatch-risk-status { min-height:25px; padding:4px 9px; border-radius:999px; background:#edf3f4; color:#526670; font-size:12px; font-weight:700; }
#transport-records .dispatch-risk-status[data-risk-tone="current"], #transport-records .dispatch-risk-status[data-risk-tone="planning"] { background:#e4f5f2; color:#12656a; }
#transport-records .dispatch-risk-status[data-risk-tone="stale"] { background:#fff3df; color:#80550c; }
#transport-records .dispatch-risk-status[data-risk-tone="insufficient"] { background:#f1f3f4; color:#526670; }
#transport-records .dispatch-risk-source { flex:0 1 auto; min-height:27px; padding:5px 9px; border:1px solid #dce8e9; border-radius:7px; background:#fff; color:#4e626d; font-size:12px; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; min-width:0; max-width:100%; margin-top:16px; }
#transport-records .dispatch-route-risk-metric { display:grid; gap:4px; min-width:0; min-height:64px; padding:10px 12px; border:1px solid #e0eaeb; border-radius:9px; background:#fff; }
#transport-records .dispatch-route-risk-metric span { color:#526670; font-size:12px; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-metric strong { color:var(--navy); font-size:18px; font-weight:720; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-list { display:grid; gap:9px; min-width:0; max-width:100%; margin-top:14px; }
#transport-records .dispatch-route-risk-item { min-width:0; padding:13px 14px; border:1px solid #e0e9eb; border-left:3px solid #8bbec0; border-radius:9px; background:#fff; transition:border-color .16s ease,box-shadow .16s ease; }
#transport-records .dispatch-route-risk-item[data-risk-tone="high"] { border-left-color:#c55b55; background:#fffafa; }
#transport-records .dispatch-route-risk-item[data-risk-tone="medium"] { border-left-color:#d59c35; background:#fffdf8; }
#transport-records .dispatch-route-risk-item[data-risk-tone="low"] { border-left-color:#55a696; }
#transport-records .dispatch-route-risk-item:hover { border-color:#bfd8da; box-shadow:0 4px 12px rgba(18,48,71,.05); }
#transport-records .dispatch-route-risk-item-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; min-width:0; }
#transport-records .dispatch-route-risk-item-head > * { min-width:0; max-width:100%; }
#transport-records .dispatch-route-risk-item-title { display:flex; align-items:flex-start; gap:9px; min-width:0; }
#transport-records .dispatch-route-risk-item-title strong { min-width:0; color:var(--navy); font-size:14px; font-weight:650; line-height:1.5; overflow-wrap:anywhere; word-break:break-word; }
#transport-records .dispatch-risk-level { flex:0 0 auto; min-height:23px; padding:3px 8px; border-radius:6px; background:#e8f5f2; color:#1c6b64; font-size:12px; font-weight:720; }
#transport-records .dispatch-risk-level[data-risk-tone="high"] { background:#fdebea; color:#a3433f; }
#transport-records .dispatch-risk-level[data-risk-tone="medium"] { background:#fff0d8; color:#84570a; }
#transport-records .dispatch-risk-level[data-risk-tone="insufficient"], #transport-records .dispatch-risk-level[data-risk-tone="stale"] { background:#edf1f2; color:#526670; }
#transport-records .dispatch-risk-phase { padding-top:4px; color:#526670; font-size:12px; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-item-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 18px; margin-top:11px; padding-top:10px; border-top:1px solid #edf2f2; }
#transport-records .dispatch-route-risk-item-meta span { display:grid; gap:3px; min-width:0; }
#transport-records .dispatch-route-risk-item-meta em { color:#526670; font-size:12px; font-style:normal; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-item-meta strong { color:#415965; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-empty { display:grid; gap:5px; margin-top:14px; padding:15px; border:1px dashed #cbdcde; border-radius:9px; background:#fff; }
#transport-records .dispatch-route-risk-empty[hidden] { display:none; }
#transport-records .dispatch-route-risk-empty strong { color:var(--navy); font-size:14px; }
#transport-records .dispatch-route-risk-empty span { color:#526670; font-size:12px; line-height:1.55; overflow-wrap:anywhere; word-break:break-word; }
#transport-records .dispatch-route-risk-reminders { margin-top:15px; padding-top:14px; border-top:1px solid #e4edef; }
#transport-records .dispatch-route-risk-reminders-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
#transport-records .dispatch-route-risk-reminders-head > div { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 12px; }
#transport-records .dispatch-route-risk-reminders-head strong { color:var(--navy); font-size:14px; }
#transport-records .dispatch-route-risk-reminders-head .muted { font-size:12px; }
#transport-records .dispatch-route-risk-reminders-note { color:#80550c; font-size:12px; overflow-wrap:anywhere; }
#transport-records .dispatch-route-risk-actions { display:grid; gap:8px; margin-top:10px; }
#transport-records .dispatch-route-risk-action { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; max-width:100%; padding:9px 10px; border:1px solid #ecdcbf; border-radius:8px; background:#fffaf1; }
#transport-records .dispatch-risk-action-text { min-width:0; color:#5f4c2c; font-size:12px; line-height:1.55; overflow-wrap:anywhere; word-break:break-word; }
#transport-records .dispatch-route-risk-action button { flex:0 0 auto; min-height:32px; padding:6px 10px; border-radius:7px; font-size:12px; }
#transport-records .dispatch-route-risk-no-actions { padding:8px 0 2px; font-size:12px; }
@media (max-width:900px) {
  #transport-records .dispatch-route-risk-overview-head { flex-wrap:wrap; }
  #transport-records .dispatch-route-risk-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #transport-records .dispatch-risk-section-head > .muted { text-align:left; }
}
@media (max-width:640px) {
  #transport-records .dispatch-risk-section { padding:14px; }
  #transport-records .dispatch-risk-section-head { align-items:flex-start; flex-direction:column; margin-bottom:12px; }
  #transport-records .dispatch-risk-section-title { align-items:flex-start; flex-direction:column; gap:4px; }
  #transport-records .dispatch-risk-section-head h3 { font-size:17px; }
  #transport-records .dispatch-route-risk-overview-head, #transport-records .dispatch-route-risk-reminders-head { align-items:flex-start; flex-direction:column; }
  #transport-records .dispatch-route-risk-metrics { gap:7px; margin-top:13px; }
  #transport-records .dispatch-route-risk-metric { min-height:58px; padding:8px 9px; }
  #transport-records .dispatch-route-risk-metric strong { font-size:16px; }
  #transport-records .dispatch-route-risk-item { padding:12px; }
  #transport-records .dispatch-route-risk-item-head, #transport-records .dispatch-route-risk-item-title, #transport-records .dispatch-route-risk-action { align-items:flex-start; flex-direction:column; }
  #transport-records .dispatch-route-risk-item-meta { grid-template-columns:1fr 1fr; gap:8px 12px; }
  #transport-records .dispatch-route-risk-action button { width:100%; }
}

/* AI Agent command center: all cards are views over the existing Hermes conversations. */
#exceptions #exception-center { position:relative; overflow:visible; background:#f8fbfc !important; }
#exceptions .agent-workspace { grid-template-columns:minmax(0,1fr); }
.agent-command-center { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; gap:14px; }
.agent-employee-directory { flex:0 0 auto; padding:17px 19px 16px; border-bottom:1px solid #dfe8eb; background:#fff; }
.agent-command-section-heading, .agent-command-board-header, .agent-command-queue-heading, .agent-approval-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.agent-command-section-heading h2 { margin:0; color:var(--navy); font-size:18px; line-height:1.3; }
.agent-command-runtime, .agent-runtime-status { display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; border:1px solid #cde4e3; border-radius:999px; background:#f1f9f8; color:#187277; font-size:14px; font-weight:650; }
.agent-command-runtime { padding:7px 10px; }
.agent-runtime-status { padding:4px 8px; }
.agent-runtime-status::before { width:6px; height:6px; border-radius:50%; background:#238f80; content:""; }
.agent-employee-tabs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:15px; }
.agent-employee-tab { display:flex; align-items:center; min-width:0; gap:9px; padding:11px 10px; border:1px solid #dce7ea; border-radius:9px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; transition:border-color .16s ease,box-shadow .16s ease,background .16s ease; }
.agent-employee-tab:hover, .agent-employee-tab.active { border-color:#6eabb0; background:#f4fbfb; box-shadow:0 4px 12px rgba(18,48,71,.06); }
.agent-employee-icon, .agent-command-active-icon, .agent-command-work-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; color:#267d84; }
.agent-employee-icon { width:33px; height:33px; border:1px solid #d5e7e8; border-radius:8px; background:#f4fafb; font-size:17px; }
.agent-employee-tab strong { overflow:hidden; color:var(--navy); font-size:14px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.agent-command-layout { display:grid; grid-template-columns:minmax(0,1fr) 245px; flex:1 1 auto; min-height:0; gap:14px; padding:0 14px 14px; }
.agent-session-brand > div { min-width:0; }
.agent-session-brand span { display:block; margin-top:3px; color:var(--muted); font-size:13px; line-height:1.35; }
.agent-new-chat { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.agent-command-board { display:flex; min-width:0; flex-direction:column; padding:18px; border:1px solid #dfe8eb; border-radius:11px; background:#fff; }
.agent-command-active-employee { display:flex; align-items:flex-start; min-width:0; gap:11px; }
.agent-command-active-icon { width:42px; height:42px; border-radius:11px; background:#e9f6f5; font-size:21px; }
.agent-command-active-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.agent-command-active-title h3, .agent-approval-heading h3 { margin:0; color:var(--navy); font-size:20px; }
.agent-command-active-employee p { margin:5px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.agent-command-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.agent-command-actions button, .agent-approval-card button { display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap; }
.agent-command-actions button { min-height:38px; padding:8px 12px; font-size:14px; }
.agent-command-queue-heading { align-items:center; margin:18px 0 9px; padding-bottom:10px; border-bottom:1px solid #e8eff1; }
.agent-command-queue-heading h4 { margin:0; color:var(--navy); font-size:16px; }
.agent-command-queue-heading span { display:block; margin-top:3px; color:var(--muted); font-size:14px; }
.agent-command-readonly { display:inline-flex !important; align-items:center; gap:6px; margin:0 !important; color:#3e6871 !important; font-size:14px !important; font-weight:650; text-align:right; }
.agent-command-work-queue { display:grid; align-content:start; min-height:174px; overflow-x:auto; border:1px solid #e0eaed; border-radius:9px; }
.agent-command-queue-table-head > [role="row"], .agent-command-work-item { display:grid; grid-template-columns:minmax(210px,1.75fr) minmax(145px,1.05fr) minmax(106px,.8fr) minmax(150px,1fr) auto; min-width:760px; gap:12px; align-items:center; }
.agent-command-queue-table-head { padding:12px 13px; border-bottom:1px solid #e2eaed; background:#f7fafb; color:#617781; font-size:14px; font-weight:700; }
.agent-command-queue-body { display:grid; }
.agent-command-work-item { padding:13px; border-bottom:1px solid #e6edef; background:#fff; color:var(--ink); transition:background .16s ease; }
.agent-command-work-item:last-child { border-bottom:0; }
.agent-command-work-item:hover, .agent-command-work-item.active { background:#f7fbfb; }
.agent-command-work-copy, .agent-command-work-status { display:grid; min-width:0; gap:4px; }
.agent-command-work-copy strong, .agent-command-work-copy small, .agent-command-work-status strong, .agent-command-work-status small, .agent-command-work-time, .agent-command-work-evidence { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.agent-command-work-copy strong, .agent-command-work-status strong { color:var(--navy); font-size:14px; }
.agent-command-work-copy small, .agent-command-work-status small, .agent-command-work-time, .agent-command-work-evidence { color:var(--muted); font-size:13px; }
.agent-command-work-operation button { display:inline-flex; align-items:center; gap:5px; min-height:38px; padding:7px 10px; font-size:14px; white-space:nowrap; }
.agent-command-empty, .agent-approval-empty { display:grid; place-items:center; gap:7px; min-height:154px; padding:20px; border:1px dashed #cfdee2; border-radius:9px; background:#fbfdfd; color:#67808a; text-align:center; }
.agent-command-empty i, .agent-approval-empty i { color:#74a6a9; font-size:21px; }
.agent-command-empty p, .agent-approval-empty p { margin:0; color:var(--navy); font-size:16px; font-weight:650; }
.agent-command-empty.compact { min-height:92px; }
.agent-command-run-records { display:grid; gap:6px; margin-top:11px; padding:11px; border:1px solid #dce9eb; border-radius:9px; background:#f8fbfb; }
.agent-command-run-records[hidden] { display:none; }
.agent-admin-panel { display:grid; gap:16px; }
.agent-admin-runtime { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.agent-admin-runtime > div { display:grid; gap:4px; padding:13px; border:1px solid #dce8eb; border-radius:10px; background:#f8fbfb; }
.agent-admin-runtime strong { color:var(--navy); font-size:15px; }
.agent-admin-runtime span { color:var(--muted); font-size:14px; }
.agent-admin-skill-head, .agent-admin-detail-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.agent-admin-skill-head h3, .agent-admin-detail-head h3 { margin:0; color:var(--navy); font-size:18px; }
.agent-admin-detail-head h3 span { color:var(--muted); font-size:14px; font-weight:600; }
.agent-admin-detail-head p { margin:4px 0 0; color:var(--muted); font-size:14px; }
.agent-admin-skill-list { display:grid; gap:8px; }
.agent-admin-skill-row { display:flex; width:100%; align-items:center; justify-content:space-between; gap:14px; padding:13px; border:1px solid #dbe7ea; border-radius:10px; background:#fff; color:var(--ink); text-align:left; }
.agent-admin-skill-row:hover, .agent-admin-skill-row.active { border-color:#72afb2; background:#f5fbfb; }
.agent-admin-skill-row span { display:grid; min-width:0; gap:4px; }
.agent-admin-skill-row strong { color:var(--navy); font-size:15px; }
.agent-admin-skill-row small { overflow:hidden; color:var(--muted); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.agent-admin-status { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:#edf3f4; color:#49636b; font-size:13px; font-style:normal; font-weight:700; }
.agent-admin-status.evaluated { background:#eef6ff; color:#347099; }.agent-admin-status.published { background:#eaf7f1; color:#237b56; }.agent-admin-status.rolled_back { background:#f8eeee; color:#a34a3b; }
.agent-admin-detail { display:grid; gap:13px; padding:16px; border:1px solid #d8e6e8; border-radius:10px; background:#fbfdfd; }
.agent-admin-detail details { border:1px solid #dfe9eb; border-radius:8px; background:#fff; }.agent-admin-detail summary { padding:10px 12px; color:var(--navy); cursor:pointer; font-weight:700; }.agent-admin-detail pre { max-height:270px; overflow:auto; margin:0; padding:12px; border-top:1px solid #e4edef; color:#435962; font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; }
.agent-admin-action-form { display:flex; align-items:end; gap:10px; }.agent-admin-action-form label { display:grid; flex:1 1 auto; gap:5px; color:var(--muted); font-size:14px; }.agent-admin-action-form input { min-height:40px; }.agent-admin-action-form button { min-height:40px; }
.agent-run-records-head, .agent-run-record { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; }
.agent-run-records-head { padding-bottom:7px; border-bottom:1px solid #e3edef; }
.agent-run-records-head strong { color:var(--navy); font-size:14px; }
.agent-run-records-head span, .agent-run-record { color:var(--muted); font-size:13px; }
.agent-run-record span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.agent-approval-rail { display:flex; min-width:0; flex-direction:column; padding:16px; border:1px solid #dfe8eb; border-radius:11px; background:#fff; }
.agent-approval-heading > i { display:grid; width:34px; height:34px; place-items:center; border-radius:9px; background:#eef7f7; color:#287b82; }
.agent-approval-content { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; margin-top:14px; }
.agent-approval-empty { flex:1 1 auto; min-height:142px; }
.agent-approval-card { display:grid; gap:10px; padding:13px; border:1px solid #ecd8a4; border-radius:9px; background:#fffcf5; }
.agent-approval-card-label { color:#9d6a17; font-size:13px; font-weight:750; }
.agent-approval-card > strong { color:var(--navy); font-size:14px; }
.agent-approval-card p { margin:0; color:#5f7077; font-size:14px; line-height:1.5; }
.agent-approval-card button { min-height:40px; width:100%; padding:9px; font-size:14px; }
.agent-approval-evidence { display:grid; gap:7px; padding-top:9px; border-top:1px solid #eadfca; }
.agent-approval-evidence > strong { color:#536a74; font-size:13px; }
.agent-approval-evidence span { display:flex; justify-content:space-between; gap:10px; color:#445e69; font-size:13px; }
.agent-approval-evidence small { color:var(--muted); font-size:13px; }
.agent-chat-drawer { position:absolute; z-index:45; top:0; right:0; bottom:0; display:flex; width:min(820px,calc(100% - 42px)); border-left:1px solid #cbdce1; background:#fff; box-shadow:-14px 0 30px rgba(18,48,71,.16); }
.agent-chat-drawer[hidden] { display:none; }
.agent-chat-drawer .agent-session-panel { width:224px; min-width:190px; gap:10px; padding:14px 12px; border-right:1px solid #dfe8eb; background:#f7fafb; }
.agent-chat-drawer .agent-session-panel .agent-conversation-search button { display:grid; min-width:34px; place-items:center; padding:7px; }
.agent-chat-drawer .agent-session-panel .agent-conversation-search button i { font-size:13px; }
.agent-chat-drawer .agent-session-panel .agent-conversation-item { padding:8px; }
.agent-chat-drawer .agent-session-panel .agent-conversation-actions { display:none; }
.agent-chat-drawer .agent-session-panel .agent-conversation-item:hover .agent-conversation-actions, .agent-chat-drawer .agent-session-panel .agent-conversation-item.active .agent-conversation-actions { display:flex; }
.agent-chat-drawer .agent-session-panel .agent-conversation-actions button { min-width:32px; min-height:32px; padding:4px; font-size:13px; }
.agent-chat-drawer .agent-chat-panel { flex:1 1 auto; min-width:0; width:auto; }
.agent-chat-close { display:grid; width:33px; height:33px; place-items:center; padding:0; border:1px solid #d8e4e7; border-radius:7px; background:#fff; color:#506972; cursor:pointer; }
.agent-chat-close:hover { border-color:#8bb8bb; color:#176f75; }
.agent-chat-header { justify-content:space-between; }
.agent-chat-drawer .exception-chat-history { padding:22px 24px 16px; }
.agent-chat-drawer .exception-chat-composer { padding:13px 18px 16px; }
@media (max-width:1280px) { .agent-command-layout { grid-template-columns:minmax(0,1fr) 220px; gap:10px; padding:0 10px 10px; } .agent-command-board { padding:15px; } .agent-command-board-header { flex-direction:column; } .agent-command-actions { justify-content:flex-start; } .agent-employee-tabs { gap:7px; } .agent-employee-tab { padding:9px 8px; } .agent-employee-icon { width:29px; height:29px; } }
@media (max-width:900px) { .agent-employee-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); } .agent-command-layout { grid-template-columns:minmax(0,1fr); } .agent-approval-rail { min-height:0; } .agent-approval-content { min-height:112px; } .agent-approval-empty { min-height:104px; } .agent-chat-drawer { width:min(720px,calc(100% - 20px)); } }
@media (max-width:680px) { #exceptions #exception-center { overflow:hidden; } .agent-command-center { gap:0; } .agent-employee-directory { padding:14px; } .agent-command-section-heading { flex-direction:column; } .agent-employee-tabs { display:flex; padding-bottom:3px; overflow-x:auto; } .agent-employee-tab { flex:0 0 156px; } .agent-command-layout { display:flex; flex-direction:column; padding:10px; overflow-y:auto; } .agent-command-board { min-height:360px; } .agent-command-queue-heading { align-items:flex-start; flex-direction:column; } .agent-command-readonly { text-align:left; } .agent-command-actions { width:100%; } .agent-command-actions button { flex:1 1 130px; } .agent-chat-drawer { position:fixed; top:0; right:0; bottom:0; width:100%; border-left:0; flex-direction:column; } .agent-chat-drawer .agent-session-panel { width:auto; min-width:0; min-height:154px; max-height:208px; border-right:0; border-bottom:1px solid #dfe8eb; } .agent-chat-drawer .exception-chat-history { padding:18px 14px 14px; } .agent-chat-drawer .exception-chat-composer { padding:12px 14px; } .agent-run-records-head, .agent-run-record { grid-template-columns:minmax(0,1fr) auto; } .agent-run-record span:last-child { grid-column:1 / -1; } }
@media (max-width:680px) { .agent-admin-runtime { grid-template-columns:1fr; }.agent-admin-action-form { align-items:stretch; flex-direction:column; }.agent-admin-action-form button { width:100%; } }

/* 信息报表：报表工作区是唯一纵向滚动容器；明细表和司机表只在水平方向滚动。 */
#reports .report-workspace { display:block; flex:1 1 auto; min-height:0; padding-right:0; overflow-x:hidden; overflow-y:auto; }
#reports .report-shell { min-height:0; margin:0; padding:22px 24px 24px; overflow:visible; }
#reports #period-report { display:block; min-height:0; margin:0; overflow:visible; }
#reports #period-report[hidden], #reports #driver-performance[hidden] { display:none; }
#reports .report-panel-head { align-items:flex-start; gap:16px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid #e1eaed; }
#reports .report-panel-title { min-width:0; }
#reports .report-view-switcher { padding:4px; border-color:#d6e2e6; border-radius:11px; background:#f4f7f8; }
#reports .report-view-button { min-height:42px; padding:9px 17px; border-radius:8px; font-size:15px; font-weight:700; }
#reports .report-period-label { margin-left:auto; padding-top:10px; color:#687b86; font-size:14px; font-variant-numeric:tabular-nums; text-align:right; }
#reports .report-period-controls { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px 14px; padding-bottom:18px; border-bottom:1px solid #e2ebee; }
#reports .report-period-toggle, #reports .report-period-actions { display:flex; gap:8px; }
#reports .report-period-button, #reports .report-period-actions button { min-height:40px; padding:8px 15px; font-size:14px; font-weight:650; }
#reports .report-date-field { display:grid; gap:6px; min-width:190px; margin:0; }
#reports .report-date-field span { color:#60747f; font-size:12px; }
#reports .report-date-field input { min-height:40px; padding:8px 10px; border-color:#d4e0e5; border-radius:8px; font-size:14px; }
#reports .report-data-feedback { display:flex; align-items:center; min-height:22px; gap:8px; margin:11px 0 0; color:#61757f; font-size:13px; }
#reports .report-data-feedback #report-loading::before { display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:999px; background:#18868a; content:""; animation:report-pulse 1s ease-in-out infinite; }
#reports .report-error { margin-top:10px; padding:9px 11px; border-left:3px solid #b65545; background:#fff9f7; color:#994431; font-size:13px; }
#reports .report-retry { margin-top:10px; }
#reports .report-summary-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:16px 0 18px; border:1px solid #dce7ea; border-radius:10px; background:#fbfdfd; overflow:hidden; }
#reports .report-summary-strip article { display:grid; gap:3px; min-width:0; padding:13px 15px; border-right:1px solid #e2eaec; }
#reports .report-summary-strip article:last-child { border-right:0; }
#reports .report-summary-strip span, #reports .report-summary-strip small { color:#70828c; font-size:12px; line-height:1.35; }
#reports .report-summary-strip strong { overflow:hidden; color:#143a50; font-size:20px; font-variant-numeric:tabular-nums; text-overflow:ellipsis; white-space:nowrap; }
#reports .report-chart-panel { display:block; margin:0; padding:17px 0 0; border-top:1px solid #e0eaed; }
#reports .report-chart-toolbar { align-items:flex-end; gap:14px; margin-bottom:12px; }
#reports .report-chart-toolbar h3, #reports .report-table-head h3, #reports .report-driver-heading h3 { margin:0; color:#157c81; font-size:17px; }
#reports .report-chart-toolbar p, #reports .report-table-head p { margin:5px 0 0; }
#reports .report-chart-selector { flex:0 0 auto; align-items:center; }
#reports .report-chart-selector select { min-width:164px; min-height:38px; border-color:#d4e0e5; border-radius:8px; }
#reports .report-chart-type { padding:8px 10px; border-radius:999px; background:#edf8f7; color:#177b80; font-weight:650; white-space:nowrap; }
#reports .report-chart { position:relative; height:260px; min-height:260px; overflow-x:auto; overflow-y:hidden; border:1px solid #e0e9ec; border-radius:9px; background:#fff; }
#reports .report-chart svg { width:100%; min-width:560px; height:260px; min-height:260px; }
#reports .report-chart-mark { transition:opacity .16s ease,stroke-width .16s ease,filter .16s ease; }
#reports .report-chart-mark.selected { filter:drop-shadow(0 1px 2px rgba(18,48,71,.25)); opacity:1; stroke:#123047; stroke-width:3; }
#reports .report-chart-tooltip { position:absolute; z-index:2; top:12px; transform:translateX(-50%); max-width:220px; padding:6px 9px; border-radius:6px; background:#123047; color:#fff; font-size:12px; line-height:1.35; pointer-events:none; white-space:nowrap; }
#reports .report-chart-empty { display:grid; min-height:258px; gap:5px; place-content:center; padding:18px; color:#6d808a; text-align:center; }
#reports .report-chart-empty strong { color:#415d6b; font-size:14px; }
#reports .report-chart-empty span { font-size:13px; }
#reports .report-summary-table-panel { margin-top:20px; padding-top:17px; border-top:1px solid #e0eaed; }
#reports .report-table-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
#reports .report-summary-table-wrap, #reports .report-summary-table-wrap .table-scroll { max-width:100%; overflow-x:auto; overflow-y:visible; }
#reports .report-summary-table-wrap table { min-width:850px; }
#reports .report-summary-table-wrap th { color:#607680; background:#f5f8f9; font-weight:650; white-space:nowrap; }
#reports .report-summary-table-wrap td { color:#405761; font-variant-numeric:tabular-nums; white-space:nowrap; }
#reports .report-summary-row { cursor:pointer; outline:0; transition:background .15s ease; }
#reports .report-summary-row:hover, #reports .report-summary-row:focus, #reports .report-summary-row.selected { background:#edf8f7; }
#reports .report-summary-row.selected td:first-child { box-shadow:inset 3px 0 0 #18868a; }
#reports .report-table-empty { padding:24px 16px; border:1px dashed #c9d9de; border-radius:8px; color:#71838c; text-align:center; }
#reports .report-driver-performance-full { display:block; min-height:0; }
#reports .report-driver-heading { margin-bottom:16px; padding-bottom:15px; border-bottom:1px solid #e0eaed; }
#reports .driver-performance-rule { margin:5px 0 0; }
#reports .report-driver-performance-full #carriers-table { max-width:100%; overflow:visible; }
#reports .report-driver-performance-full .carrier-table-toolbar { margin-bottom:12px; }
#reports .report-driver-performance-full .table-scroll { overflow-x:auto; overflow-y:visible; }
@keyframes report-pulse { 50% { opacity:.35; } }
@media (max-width:900px) { #reports .report-panel-head { flex-direction:column; } #reports .report-period-label { margin-left:0; padding-top:0; text-align:left; } #reports .report-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); } #reports .report-summary-strip article:nth-child(2) { border-right:0; } #reports .report-summary-strip article:nth-child(-n+2) { border-bottom:1px solid #e2eaec; } }
@media (max-width:640px) { #reports .report-shell { padding:16px 14px 18px; } #reports .report-panel-head { margin-bottom:15px; padding-bottom:13px; } #reports .report-view-switcher { width:100%; } #reports .report-view-button { flex:1 1 0; padding:8px 10px; } #reports .report-period-controls { align-items:stretch; } #reports .report-date-field { flex:1 1 100%; } #reports .report-period-actions { flex:1 1 100%; } #reports .report-period-actions button { flex:1 1 0; } #reports .report-chart-toolbar { align-items:flex-start; flex-wrap:wrap; } #reports .report-chart-selector { width:100%; } #reports .report-chart-selector select { flex:1 1 auto; } #reports .report-chart-type { display:none; } #reports .report-summary-strip article { padding:12px; } #reports .report-summary-strip strong { font-size:18px; } #reports .report-table-head { display:block; } #reports .report-chart { height:250px; min-height:250px; } }
/* Demand catching teams: native checkboxes support keyboard and touch multi-select. */
#demands .farm-entry-rule { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px; padding:12px; border:1px solid #cbdde0; border-radius:8px; background:#f4fafa; }
#demands .farm-entry-rule label { flex:1 1 230px; min-width:0; }
#demands .farm-entry-rule small { display:block; color:#607680; line-height:1.5; }
#demands .farm-entry-rule [hidden] { display:none !important; }
#demands .catching-team-field { min-width:0; display:flex; flex-direction:column; gap:6px; font-size:13px; color:#36535f; }
#demands #catching-team-label { font-size:12px; font-weight:400; color:var(--muted); }
#demands .catching-team-field details { position:relative; min-width:0; }
#demands .catching-team-field summary { height:36px; min-height:36px; box-sizing:border-box; display:flex; align-items:center; gap:8px; padding:7px 9px; border:1px solid #d8e4eb; border-radius:8px; background:#fff; cursor:pointer; list-style:none; }
#demands .catching-team-field summary::-webkit-details-marker { display:none; }
#demands .catching-team-field summary::after { content:'▾'; margin-left:auto; }
#demands .catching-team-field summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#demands .catching-team-options { position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0; display:flex; flex-direction:column; gap:2px; max-height:220px; overflow:auto; padding:6px; border:1px solid #d4e5e5; border-radius:8px; background:#fff; box-shadow:0 6px 18px #12344820; }
#demands .catching-team-option { display:flex; flex-direction:row; align-items:center; gap:8px; padding:7px; cursor:pointer; min-width:0; }
#demands .catching-team-option input { width:16px; height:16px; min-height:0; flex-shrink:0; margin:0; }
#demands .catching-team-option span { overflow-wrap:anywhere; }
#demands .social-catching-team-count-field { min-width:0; display:flex; align-items:flex-end; }
#demands .social-catching-team-count-field label { display:flex; flex-direction:column; gap:6px; width:100%; }
#demands .social-catching-team-count-field small { color:var(--muted); line-height:1.45; }
#demands .social-catching-team-count-field[hidden] { display:none; }

    #demands .demand-save-feedback { grid-column:1 / -1; padding:12px 16px; border:1px solid #d97706; border-radius:8px; background:#fffbeb; color:#92400e; overflow-wrap:anywhere; }
    #demands .demand-save-feedback[data-state="success"] { border-color:#2c8875; background:#effaf5; color:#17634f; }
    #demands .demand-save-feedback[data-state="pending"] { border-color:#80b5bf; background:#f1f9fb; color:#18576b; }
    #demands .demand-save-feedback[hidden] { display:none; }

/* Daily production and resource inputs for the rebuilt dispatcher. */
.dispatch-planning-dialog{width:min(1100px,94vw);max-height:90vh;overflow:auto;border:1px solid #cbd5e1;border-radius:14px;padding:24px;color:#172b3a;background:#fff}
.dispatch-planning-dialog::backdrop{background:rgba(15,23,42,.48)}
.dispatch-planning-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.dispatch-planning-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:14px 0}
.dispatch-planning-grid label{display:flex;flex-direction:column;gap:6px}
.dispatch-planning-dialog input,.dispatch-planning-dialog select{font:inherit;padding:8px;border:1px solid #cbd5e1;border-radius:6px;min-width:0}
.dispatch-planning-dialog details{border-top:1px solid #dbe3e9;padding:16px 0}
.dispatch-planning-dialog summary{cursor:pointer;font-weight:600}
.dispatch-planning-team,.dispatch-planning-batch{border:1px solid #dbe3e9;border-radius:8px;padding:12px;margin:12px 0}
.dispatch-planning-scroll{overflow:auto;max-height:420px;margin:12px 0}
.dispatch-planning-attendance{border-collapse:collapse;white-space:nowrap}
.dispatch-planning-attendance th,.dispatch-planning-attendance td{padding:6px;border:1px solid #dbe3e9}
.dispatch-planning-attendance input{width:65px}
.dispatch-planning-attendance td{min-width:130px;vertical-align:top}
.dispatch-planning-attendance td>select{display:block;width:100%;min-width:0;margin:4px 0}
.dispatch-planning-attendance details label{display:block}
.dispatch-planning-attendance details input{display:block}
.dispatch-planning-error{color:#b42318;white-space:pre-wrap}
.dispatch-planning-window{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.dispatch-planning-window label{display:flex;gap:6px;align-items:center}
.dispatch-planning-team-checks{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.dispatch-planning-team-checks label{display:flex;flex-direction:row;align-items:center;gap:8px}
.dispatch-planning-team-checks input[type="checkbox"]{width:auto;margin:0}

    .dispatch-driver-cell .rebuilt-manual-control { flex-wrap:wrap; overflow:visible; }
    .dispatch-driver-cell .rebuilt-manual-control select { flex-basis:100%; }

    .dispatch-driver-cell.dispatch-driver-editable { max-height:none; overflow:visible; }

/* Dispatch planning: shared resources, completeness checks and evidence tables. */
.dispatch-planning-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:12px 0; }
.dispatch-planning-toolbar label { display:flex; flex-direction:row; gap:8px; align-items:center; }
.dispatch-planning-toolbar input[type="checkbox"] { width:auto; }
.dispatch-planning-checklist { padding:12px 16px; margin:12px 0; border:1px solid #d7e1e7; border-radius:10px; background:#f5f8fa; }
.dispatch-planning-checklist ul { max-height:160px; overflow:auto; margin:8px 0 0; padding-left:22px; }
.dispatch-issue-link { border:0; background:transparent; color:var(--action-primary); text-align:left; padding:4px; text-decoration:underline; }
.dispatch-detail-panel { padding:16px; margin:12px 0; border:1px solid #d7e1e7; border-radius:12px; background:#fff; }
.dispatch-detail-panel details { margin:12px 0; }
.dispatch-detail-panel summary { cursor:pointer; font-weight:600; padding:8px 0; }
.dispatch-detail-panel table { border-collapse:collapse; width:100%; min-width:620px; font-size:14px; }
.dispatch-detail-panel th,.dispatch-detail-panel td { padding:10px; border-bottom:1px solid #e1e7ec; text-align:left; white-space:nowrap; }
.dispatch-detail-panel th { background:#f0f5f8; }
.dispatch-detail-panel li { margin:10px 0; }
.dispatch-missing-parameters-wrap { overflow-x:auto; margin:10px 0 16px; }
.dispatch-missing-parameters { border-collapse:collapse; width:100%; min-width:720px; font-size:14px; }
.dispatch-missing-parameters th,.dispatch-missing-parameters td { padding:9px 10px; border:1px solid #dbe3e9; text-align:left; vertical-align:top; }
.dispatch-missing-parameters th { background:#f0f5f8; white-space:nowrap; }

.transport-execution-toolbar { flex:0 0 auto; padding-bottom:12px; }
.transport-execution-date-picker { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.transport-execution-date-picker label { margin:0; font-weight:600; }
.transport-execution-date-picker input, .transport-execution-date-picker select { width:auto; min-width:150px; }
.transport-execution-date-picker .active { background:var(--teal); color:white; }

/* Monitor, return exceptions and route risk share one selected date. */
.transport-function-tabs { flex:0 0 auto; margin-bottom:14px; }
.transport-monitor-panel { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; }
.transport-monitor-panel[hidden], #transport-risk-panel[hidden], .transport-return-panel[hidden] { display:none; }

.dispatch-supply-return-point { fill:#16867d; stroke:#fff; stroke-width:1.5; }
.dispatch-stock-shortage { color:#b54838; }

.dispatch-stock-time-point { fill:#16867d; stroke:#fff; stroke-width:1; }
.dispatch-stock-cursor { stroke:#738797; stroke-width:1; stroke-dasharray:4 3; pointer-events:none; }
.dispatch-stock-cursor[hidden] { display:none; }
.dispatch-stock-time-control { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:8px 0; font-size:13px; }
.dispatch-stock-time-control label { display:flex; align-items:center; gap:10px; flex:1 1 250px; }
.dispatch-stock-time-picker { flex:1; min-width:100px; accent-color:#16867d; }
.dispatch-stock-time-value { color:#126c65; font-weight:600; }

.dispatch-stock-chart-viewport { width:100%; min-width:0; overflow:hidden; }
.dispatch-stock-chart { width:100%; min-width:0; max-width:100%; height:auto; }

.dispatch-stock-filters { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 4px; }
.dispatch-stock-filters .active { background:var(--teal); color:white; border-color:var(--teal); }
.dispatch-combined-stock-card h4 { margin:0 0 6px; color:var(--navy); font-size:16px; }
.dispatch-stock-line-details { margin-top:10px; font-size:13px; }
.dispatch-stock-line-details > summary { padding:8px 0; cursor:pointer; color:#197b76; }
.dispatch-stock-line[data-line="north"] { stroke:#3478bd; }
.dispatch-stock-line[data-line="south"] { stroke:#16867d; }
[data-line="north"] .dispatch-supply-return-point, [data-line="north"] .dispatch-stock-time-point { fill:#3478bd; }
[data-line="south"] .dispatch-supply-return-point, [data-line="south"] .dispatch-stock-time-point { fill:#16867d; }
.dispatch-hourly-chart-legend .stock-north { border-color:#3478bd; }
.dispatch-hourly-chart-legend .stock-south { border-color:#16867d; }
.dispatch-stock-reference { pointer-events:none; }
.dispatch-stock-start-line { stroke:#7b65a8; stroke-width:1.5; stroke-dasharray:6 5; vector-effect:non-scaling-stroke; }
.dispatch-stock-reserve-line { stroke:#bd7622; stroke-width:1.5; stroke-dasharray:9 4 2 4; vector-effect:non-scaling-stroke; }
.dispatch-stock-reference-label { font-size:11px; font-weight:600; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; }
.dispatch-stock-start-label { fill:#705793; }
.dispatch-stock-reserve-label { fill:#9d6119; }
.dispatch-hourly-chart-legend .stock-start { border-top:2px dashed #7b65a8; }
.dispatch-hourly-chart-legend .stock-reserve { border-top:2px dashed #bd7622; }


.transport-return-panel { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; min-width:0; }
.transport-return-bulk-actions { display:flex; flex:0 0 auto; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:8px; }
.transport-return-exceptions { flex:1 1 auto; min-height:0; min-width:0; overflow:auto; overscroll-behavior:contain; padding:2px; }
.transport-return-exception-count { display:inline-block; min-width:24px; margin-left:5px; padding:1px 6px; border-radius:12px; background:#fff0d5; color:#955912; font-size:13px; font-variant-numeric:tabular-nums; }
.transport-return-exception-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-content:start; }
.transport-return-exception-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; align-items:center; padding:14px; border:1px solid #e7d6b6; border-radius:10px; background:#fffdf8; min-width:0; }
.transport-return-exception-item > strong { color:var(--navy); font-size:17px; }
.transport-return-exception-item > strong, .transport-return-exception-meta, .transport-return-exception-item p { grid-column:1; min-width:0; overflow-wrap:anywhere; }
.transport-return-exception-meta { display:flex; flex-wrap:wrap; gap:4px 12px; color:var(--muted); font-size:13px; }
.transport-return-exception-item p { margin:0; color:#955912; font-size:14px; }
.transport-return-exception-actions { grid-column:2; grid-row:1 / span 3; display:flex; flex-direction:column; gap:8px; }
.transport-return-exception-item button { padding:6px 10px; min-height:34px; }
@media(max-width:1100px) { .transport-return-exception-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:640px) {
  .transport-return-panel, .transport-return-exceptions { flex:0 0 auto; overflow:visible; }
  .transport-return-exception-item { grid-template-columns:minmax(0,1fr); }
  .transport-return-exception-actions { grid-column:1; grid-row:auto; flex-direction:row; justify-self:end; }
}

/* Operations reports: one scrolling workspace, full-width charts and bounded tables. */
#reports .report-summary-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
#reports .report-summary-strip article { min-width:0; padding:16px; background:#f5fafb; border:1px solid #dce9ec; border-radius:12px; }
#reports .report-summary-strip strong { font-size:24px; overflow-wrap:anywhere; }
#reports .report-summary-strip small { display:block; margin-top:8px; line-height:1.6; }
#reports .report-period-controls { flex-wrap:wrap; align-items:end; }
#reports .report-period-controls label { display:flex; flex-direction:column; gap:6px; }
#reports #report-batch { max-width:140px; }
#reports .report-pagination { display:flex; gap:16px; align-items:center; justify-content:flex-end; padding:14px 0; }
#reports .report-chart svg { width:100%; min-width:0; }
#reports .report-chart-panel, #reports .report-summary-table-panel { margin-top:18px; padding:18px; border:1px solid #dce9ec; border-radius:12px; }
#reports #report-detail-table .table-scroll { max-height:560px; overflow:auto; }
#reports #report-detail-table td { max-width:240px; white-space:normal; min-width:100px; }
@media(max-width:1000px) { #reports .report-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { #reports .report-summary-strip { grid-template-columns:1fr; } #reports .report-pagination { flex-wrap:wrap; } }

/* Business workspace density: readable values, less repeated guidance and whitespace. */
#app-shell > main { padding:18px 22px; }
#app-shell .topbar { align-items:center; gap:12px; margin-bottom:12px; }
#app-shell h1 { font-size:24px; line-height:1.25; }
#app-shell .topbar .badge, #app-shell .user-chip { padding:6px 9px; }
#app-shell .view .panel { margin-bottom:12px; }
#tasks .task-dispatch-panel, #settlements > .panel, #task-history > .panel, #carriers > .panel { padding:14px; }
#transport-records > .panel { padding:12px; }
#reports .report-shell { padding:14px 16px; }
#app-shell .view h3 { margin-top:12px; margin-bottom:8px; }
#app-shell .view .panel-head { gap:10px; margin-bottom:10px; }
#app-shell .view label { gap:4px; font-size:13px; }
#app-shell .view input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
#app-shell .view select, #app-shell .view textarea { padding:7px 9px; font-size:14px; }
#app-shell .view input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), #app-shell .view select { min-height:34px; }
#app-shell .view button { line-height:1.35; }
#app-shell .view .primary, #app-shell .view .secondary { min-height:34px; padding:6px 10px; font-size:14px; }
#app-shell .view .muted { color:#627782; line-height:1.4; }
#app-shell .view .form-grid { gap:10px; }
.ui-help { margin:4px 0 8px; color:#536d78; font-size:13px; line-height:1.5; }
.ui-help > summary, .ui-cell-details > summary { width:fit-content; max-width:100%; cursor:pointer; color:#23767c; border-radius:4px; }
.ui-help > summary:focus-visible, .ui-cell-details > summary:focus-visible { outline:2px solid #147d83; outline-offset:3px; }
.ui-help[open] { padding:8px 10px; border:1px solid #dce7e9; border-radius:7px; background:#f8fbfc; }
.ui-help[open] > summary { margin-bottom:6px; }
.ui-help p { margin:6px 0 0; }
.ui-help-inline { flex:0 1 auto; margin:0; }
.ui-help-inline[open] { flex-basis:100%; }
.ui-help dl { display:grid; grid-template-columns:max-content 1fr; gap:4px 12px; margin:8px 0 0; }
.ui-help dt { font-weight:600; }
.ui-help dd { margin:0; }
#tasks .dispatch-view-switcher-row { gap:12px; padding-bottom:8px; margin-bottom:8px; align-items:center; }
#tasks .dispatch-view-switcher-row .dispatch-date-filter { min-width:158px; }
#tasks .dispatch-sheet-command-bar { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"title controls actions"; gap:8px 12px; margin:8px 0; padding:8px 10px; }
#tasks .dispatch-sheet-command-title { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
#tasks .dispatch-salesperson-control { min-width:0; max-width:100%; }
#tasks .dispatch-salesperson-control select { min-width:0; width:100%; max-width:100%; }
#tasks .dispatch-workflow-row { margin:0; padding:0; border:0; }
#tasks .dispatch-workflow-step { padding:4px 8px; font-size:13px; }
#tasks .dispatch-list-table-wrap { flex:1 1 auto; max-height:none; min-height:0; }
#tasks .dispatch-list-table { min-width:1700px; }
#tasks .dispatch-list-table th, #tasks .dispatch-list-table td { padding:8px; font-size:14px; line-height:1.4; }
#tasks .dispatch-list-table .dispatch-col-sequence { width:84px; }
#tasks .dispatch-list-table .dispatch-col-driver { width:132px; }
#tasks .dispatch-list-table .dispatch-col-salesperson { width:100px; }
#tasks .dispatch-list-table .dispatch-col-slaughter-line { width:68px; }
#tasks .dispatch-list-table .dispatch-col-pickup { width:210px; }
#tasks .dispatch-list-table .dispatch-col-farmer { width:84px; }
#tasks .dispatch-list-table .dispatch-col-phone { width:120px; }
#tasks .dispatch-list-table .dispatch-col-cage { width:110px; }
#tasks .dispatch-list-table .dispatch-col-quantity { width:100px; }
#tasks .dispatch-list-table .dispatch-col-weight { width:100px; }
#tasks .dispatch-list-table .dispatch-col-distance { width:88px; }
#tasks .dispatch-list-table .dispatch-col-arrival { width:128px; }
#tasks .dispatch-list-table .dispatch-col-shift { width:66px; }
#tasks .dispatch-list-table .dispatch-col-status { width:80px; }
#tasks .dispatch-list-table .dispatch-col-actions { width:180px; }
#tasks .dispatch-list-table th { white-space:normal; }
#tasks .dispatch-list-table td:nth-child(n+8):nth-child(-n+11), #tasks .dispatch-list-table th:nth-child(n+8):nth-child(-n+11) { text-align:right; font-variant-numeric:tabular-nums; }
#tasks .dispatch-cage-evidence { grid-template-columns:auto auto; gap:3px 5px; justify-content:end; align-items:center; }
#tasks .dispatch-cage-count { grid-column:1/-1; justify-self:end; font-size:14px; }
#tasks .dispatch-cage-tier { padding:2px 4px; font-size:11px; }
#tasks .dispatch-cage-length { font-size:12px; }
#tasks .dispatch-unit-weight, #tasks .dispatch-driver-name { font-size:13px; }
#tasks .dispatch-list-table td:last-child .dispatch-row-actions { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:4px; }
#tasks .dispatch-list-table td:last-child button { min-height:30px; padding:5px 7px; font-size:13px; }
#tasks .dispatch-list-table td { font-variant-numeric:tabular-nums; }
#tasks .dispatch-list-table thead th { position:sticky; top:0; z-index:3; background:#eef5f6; }
#tasks .dispatch-list-table tbody td:first-child, #tasks .dispatch-list-table tbody td:nth-child(2) { position:sticky; z-index:2; background:#fff; }
#tasks .dispatch-list-table tbody td:first-child, #tasks .dispatch-list-table thead th:first-child { left:0; }
#tasks .dispatch-list-table tbody td:nth-child(2), #tasks .dispatch-list-table thead th:nth-child(2) { left:84px; }
#tasks .dispatch-list-table thead th:first-child, #tasks .dispatch-list-table thead th:nth-child(2) { z-index:5; }
#tasks .dispatch-list-table td:last-child, #tasks .dispatch-list-table th:last-child { position:sticky; right:0; background:#fff; z-index:2; box-shadow:-3px 0 5px rgba(18,48,71,.04); }
#tasks .dispatch-list-table th:last-child { z-index:5; background:#eef5f6; }
#settlements .settlement-sheet-table-wrap { container-type:inline-size; }
#settlements .settlement-sheet-table { min-width:1776px; }
#settlements .settlement-sheet-table th, #settlements .settlement-sheet-table td { padding:8px; font-size:14px; line-height:1.4; }
#settlements .settlement-sheet-table th { white-space:normal; }
#settlements .settlement-col-sequence { width:84px; }
#settlements .settlement-col-driver { width:130px; }
#settlements .settlement-col-pickup { width:176px; }
#settlements .settlement-col-farmer { width:76px; }
#settlements .settlement-col-phone { width:116px; }
#settlements .settlement-col-quantity { width:112px; }
#settlements .settlement-col-collected-quantity { width:118px; }
#settlements .settlement-col-warehouse-quantity { width:112px; }
#settlements .settlement-col-outbound-distance { width:150px; }
#settlements .settlement-col-planned-distance { width:116px; }
#settlements .settlement-col-distance { width:240px; }
#settlements .settlement-col-fee { width:118px; }
#settlements .settlement-col-status { width:76px; }
#settlements .settlement-col-operation { width:152px; }
#settlements .settlement-sheet-table thead th { position:sticky; top:0; z-index:3; background:#eef5f6; }
#settlements .settlement-sheet-row td { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#settlements .settlement-sheet-row td:first-child, #settlements .settlement-sheet-row td:nth-child(2) { position:sticky; z-index:2; background:#fff; }
#settlements .settlement-sheet-table thead th:first-child, #settlements .settlement-sheet-row td:first-child { left:0; }
#settlements .settlement-sheet-table thead th:nth-child(2), #settlements .settlement-sheet-row td:nth-child(2) { left:84px; }
#settlements .settlement-sheet-table thead th:first-child, #settlements .settlement-sheet-table thead th:nth-child(2) { z-index:5; }
#settlements .settlement-sheet-table thead th:last-child, #settlements .settlement-sheet-row td:last-child { position:sticky; right:0; z-index:2; background:#fff; box-shadow:-3px 0 5px rgba(18,48,71,.04); }
#settlements .settlement-sheet-table thead th:last-child { z-index:5; background:#eef5f6; }
#settlements .settlement-sheet-readonly { font-size:13px; line-height:1.4; }
#settlements .settlement-sheet-readonly strong { font-size:14px; }
.ui-vehicle-identity { display:grid; gap:2px; line-height:1.4; }
.ui-vehicle-identity strong { white-space:nowrap; }
.ui-vehicle-identity span { font-size:13px; color:#627782; }
.ui-cell-details { margin-top:3px; font-size:12px; line-height:1.4; }
.ui-cell-details[open] { padding-top:2px; }
.ui-cell-details div { padding-top:5px; overflow-wrap:anywhere; }
#settlements .settlement-distance-inline { gap:6px; }
#settlements .settlement-distance-inline select { flex:0 0 90px; min-width:90px; padding-left:6px; padding-right:4px; }
#settlements .settlement-sheet-field-stack { gap:4px; }
#settlements .settlement-sheet-field-stack input, #settlements .settlement-sheet-field-stack textarea, #settlements .settlement-distance-inline input { padding:7px; font-size:14px; }
#settlements .settlement-sheet-field-stack textarea { min-height:54px; }
#settlements .settlement-sheet-row td:nth-child(7) input, #settlements .settlement-sheet-row td:nth-child(8) input, #settlements .settlement-sheet-row td:nth-child(12) input { text-align:right; }
#settlements .settlement-batch-heading th { padding:8px 10px; }
#settlements .settlement-batch-panel { position:sticky; left:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:3px 12px; max-width:min(1000px,calc(100cqw - 20px)); }
#settlements .settlement-batch-context { margin:0; align-self:center; font-size:13px; }
#settlements .settlement-batch-summary { grid-column:1/-1; margin-top:2px; gap:4px 14px; font-size:13px; }
#settlements .settlement-toolbar { gap:8px 10px; margin-bottom:8px; }
#settlements .settlement-toolbar label { font-size:13px; }
#settlements #settlement-filter-feedback { flex-basis:auto; align-self:center; margin-left:auto; }
#settlements .settlement-sheet-form-actions { gap:5px; }
#reports .report-panel-head { padding-bottom:10px; margin-bottom:10px; }
#reports .report-period-controls { gap:8px 10px; padding-bottom:10px; }
#reports .report-date-field { min-width:160px; }
#reports .report-period-button, #reports .report-period-actions button { padding:6px 10px; min-height:34px; }
#reports .report-period-label { padding-top:4px; }
#reports .report-data-feedback { margin:6px 0; }
#reports .report-summary-strip { gap:8px; margin:10px 0; border:0; background:transparent; overflow:visible; }
#reports .report-summary-strip article { padding:10px 12px; gap:4px; grid-template-rows:auto auto 1fr; align-content:start; border:1px solid #dce9ec; }
#reports .report-summary-strip strong { font-size:22px; }
#reports .report-summary-strip small { margin-top:2px; }
#reports .report-metric-help { grid-column:1/-1; margin:0; }
#reports .report-chart-panel, #reports .report-summary-table-panel { margin-top:12px; padding:12px; }
#reports .report-chart-toolbar h3, #reports .report-table-head h3 { margin:0; }
#reports .report-driver-heading { margin-bottom:8px; }
#transport-records .transport-function-tabs { margin-bottom:8px; }
#transport-records .transport-execution-date-picker { gap:8px; margin-bottom:4px; }
#transport-records .dispatch-risk-section { padding:14px; }
#transport-records .dispatch-risk-section-head { gap:10px; margin-bottom:10px; }
#transport-records .dispatch-risk-section #dispatch-route-risk-overview { padding:12px; }
#transport-records .dispatch-route-risk-card { padding:10px; }
#carriers .carrier-management-switcher { margin-bottom:8px; gap:6px; }
#carriers .gps-readiness-panel { padding:10px; gap:8px; }
#demands .demand-template-head { margin-bottom:10px; }
#demands .demand-template-cloud-note { font-size:12px; }
#demands .demand-basic-grid { gap:8px 10px; }
#employee-accounts .panel { padding:14px; }
#app-shell .view .table-scroll th, #app-shell .view .table-scroll td { padding:8px; }
@media(min-width:901px) { #app-sidebar nav { padding-top:14px; } }
@media(max-width:900px) {
  #app-shell > main { padding:14px; }
  #tasks .dispatch-sheet-command-bar { grid-template-columns:1fr; grid-template-areas:"title" "controls" "actions"; }
  #app-shell .topbar-actions { gap:6px; }
  #tasks .dispatch-list-table tbody td:first-child, #tasks .dispatch-list-table tbody td:nth-child(2), #tasks .dispatch-list-table td:last-child,
  #settlements .settlement-sheet-row td:first-child, #settlements .settlement-sheet-row td:nth-child(2), #settlements .settlement-sheet-row td:last-child { position:static; box-shadow:none; }
  #tasks .dispatch-list-table thead th, #tasks .dispatch-list-table thead th:first-child, #tasks .dispatch-list-table thead th:nth-child(2), #tasks .dispatch-list-table thead th:last-child,
  #settlements .settlement-sheet-table thead th, #settlements .settlement-sheet-table thead th:first-child, #settlements .settlement-sheet-table thead th:nth-child(2), #settlements .settlement-sheet-table thead th:last-child { left:auto; right:auto; }
  #settlements .settlement-batch-panel { grid-template-columns:1fr; max-width:calc(100cqw - 20px); }
  #settlements #settlement-filter-feedback { margin-left:0; }
}
@media(max-width:640px) {
  #app-shell > main { padding:10px; }
  #app-shell h1 { font-size:21px; }
  #app-shell .topbar { gap:8px; margin-bottom:8px; }
  #app-shell .view .primary, #app-shell .view .secondary, #app-shell .view input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), #app-shell .view select { min-height:44px; }
  #tasks .task-dispatch-panel, #settlements > .panel, #reports .report-shell { padding:10px; }
  #reports .report-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #reports .report-summary-strip strong { font-size:20px; white-space:normal; }
  #reports .report-date-field { min-width:0; }
  .ui-help dl { grid-template-columns:1fr; gap:3px; }
  .ui-help dd { margin-bottom:6px; }
  #tasks .dispatch-list-table-wrap { min-height:280px; }
}

/* Primary task sheets: essentials fit the workspace; full controls live in details. */
#dispatch-list-table .sheet-col-vehicle { width:13%; }
#dispatch-list-table .sheet-col-batch { width:13%; }
#dispatch-list-table .sheet-col-pickup { width:15%; }
#dispatch-list-table .sheet-col-salesperson { width:10%; }
#dispatch-list-table .sheet-col-return { width:11%; }
#dispatch-list-table .sheet-col-quantity { width:12%; }
#dispatch-list-table .sheet-col-distance { width:11%; }
#dispatch-list-table .sheet-col-status { width:7%; }
#dispatch-list-table .sheet-col-actions { width:8%; }
#dispatch-list-table .sheet-task-number { display:block; margin-top:3px; color:#253746; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#tasks #dispatch-list-table .dispatch-salesperson-control { min-width:0; gap:4px; }
#tasks #dispatch-list-table .dispatch-salesperson-control select { width:100%; min-width:0; padding:5px; font-size:13px; }
#tasks #dispatch-list-table .dispatch-salesperson-control .dispatch-row-actions { display:flex; flex-wrap:wrap; gap:4px; }
#tasks #dispatch-list-table .dispatch-salesperson-control button { min-height:28px; padding:3px 6px; font-size:12px; }
#settlement-sheet-table .sheet-col-vehicle { width:15%; }
#settlement-sheet-table .sheet-col-return { width:12%; }
#settlement-sheet-table .sheet-col-quantity { width:16%; }
#settlement-sheet-table .sheet-col-planned-distance { width:15%; }
#settlement-sheet-table .sheet-col-actual-distance { width:13%; }
#settlement-sheet-table .sheet-col-fee { width:10%; }
#settlement-sheet-table .sheet-col-status { width:7%; }
#settlement-sheet-table .sheet-col-actions { width:12%; }
#tasks #dispatch-list-table, #settlements #settlement-sheet-table { width:100%; min-width:0; table-layout:fixed; }
#tasks .dispatch-list-table-wrap, #settlements .settlement-sheet-table-wrap { overflow-x:hidden; }
#tasks #dispatch-list-table tbody td, #settlements #settlement-sheet-table tbody td,
#tasks #dispatch-list-table thead th, #settlements #settlement-sheet-table thead th { position:static; left:auto; right:auto; box-shadow:none; padding:9px 8px; text-align:left; vertical-align:middle; font-size:14px; overflow-wrap:anywhere; }
#tasks #dispatch-list-table thead th, #settlements #settlement-sheet-table thead th { position:sticky; top:0; z-index:2; background:#eef5f6; line-height:1.4; }
.sheet-primary-table td { line-height:1.45; }
.sheet-primary-table td > strong, .sheet-primary-table .sheet-distance > span { display:block; }
.sheet-primary-table .sheet-secondary { display:block; margin-top:2px; color:#627782; font-size:13px; line-height:1.4; }
.sheet-primary-table .sheet-warning, .sheet-primary-table .sheet-missing { display:block; color:#9b6417; font-size:13px; line-height:1.4; }
.sheet-primary-table .sheet-return-point { display:grid; gap:2px; font-variant-numeric:tabular-nums; }
.sheet-primary-table .sheet-return-point strong { font-size:17px; }
#tasks .dispatch-summary-row .sheet-return-point > .sheet-secondary { display:none; }
.sheet-primary-table .sheet-location { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; line-height:1.45; }
.sheet-primary-table .sheet-truncate { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#tasks #dispatch-list-table .dispatch-cell-text { white-space:normal; }
#tasks #dispatch-list-table .dispatch-driver-identity { gap:2px; }
#tasks #dispatch-list-table td:last-child button, #settlements #settlement-sheet-table td:last-child button { max-width:100%; min-width:0; min-height:34px; padding:6px 7px; font-size:13px; white-space:normal; }
#settlements #settlement-sheet-table .settlement-batch-heading th { padding:8px; }
#settlements .settlement-batch-panel { position:static; width:100%; max-width:none; }
#settlements .settlement-batch-context { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#settlements .settlement-batch-summary { gap:4px 12px; }
.sheet-detail-dialog { width:min(1050px,calc(100vw - 32px)); max-width:none; max-height:90vh; padding:0; border:1px solid #cedee3; border-radius:14px; background:#fff; color:#253746; overflow:auto; box-shadow:0 18px 70px rgba(18,48,71,.25); font-size:14px; }
.sheet-detail-dialog::backdrop { background:rgba(12,32,47,.45); }
.sheet-detail-heading { position:sticky; top:0; z-index:4; display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid #dce5e9; background:#fff; }
.sheet-detail-heading h2 { margin:0; font-size:20px; }
.sheet-detail-heading button { flex-shrink:0; }
.sheet-detail-body { padding:16px 18px; }
.sheet-detail-dialog button { min-height:36px; padding:7px 10px; font-size:14px; }
.sheet-detail-dialog input:not([type="checkbox"]), .sheet-detail-dialog select, .sheet-detail-dialog textarea { width:100%; min-width:0; padding:8px; font-size:14px; }
.sheet-detail-dialog label { min-width:0; font-size:13px; }
.sheet-detail-context { margin:0 0 10px; color:#627782; }
.sheet-detail-return { display:flex; align-items:center; gap:14px; margin-bottom:14px; padding:10px 12px; border-radius:8px; background:#edf7f7; }
.sheet-detail-return time { display:flex; align-items:center; gap:10px; }
.sheet-detail-return time strong { font-size:22px; color:#147d83; }
.sheet-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.sheet-detail-field { min-width:0; padding:12px; border:1px solid #dce7e9; border-radius:8px; overflow-wrap:anywhere; line-height:1.5; }
.sheet-detail-label { display:block; margin-bottom:7px; color:#627782; font-size:13px; font-weight:600; }
.sheet-detail-warning { margin:0 0 14px; padding:10px 12px; border:1px solid #ecd39b; border-radius:8px; background:#fff9ee; color:#8e5e15; }
.sheet-detail-actions { margin-top:14px; padding-top:12px; border-top:1px solid #dce7e9; }
.sheet-detail-dialog .dispatch-row-actions { display:flex; flex-wrap:wrap; gap:8px; }
.sheet-detail-dialog .dispatch-driver-cell { max-height:none; overflow:visible; }
.sheet-detail-dialog .manual-dispatch-control { display:flex; flex-wrap:wrap; gap:6px; }
.sheet-detail-dialog .manual-dispatch-control select { flex-basis:100%; }
.sheet-detail-dialog .dispatch-salesperson-control { min-width:0; }
.sheet-detail-dialog .dispatch-cage-evidence { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.sheet-detail-dialog .settlement-detail-table, .sheet-detail-dialog .settlement-detail-table tbody { display:block; min-width:0; width:100%; }
.sheet-detail-dialog .settlement-sheet-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.sheet-detail-dialog .settlement-sheet-row > td { display:block; min-width:0; max-width:none; padding:12px; border:1px solid #dce7e9; border-radius:8px; overflow-wrap:anywhere; vertical-align:top; }
.sheet-detail-dialog .settlement-sheet-row > td::before { content:attr(data-label); display:block; color:#627782; font-size:13px; font-weight:600; margin-bottom:7px; }
.sheet-detail-dialog .settlement-sheet-row > td:nth-child(11) { grid-column:span 2; }
.sheet-detail-dialog .settlement-sheet-row > td:last-child { position:sticky; bottom:0; grid-column:1/-1; background:#f3f9fa; z-index:3; }
.sheet-detail-dialog .settlement-sheet-row > td:last-child::before { display:none; }
.sheet-detail-dialog .settlement-distance-inline { display:flex; gap:8px; margin-bottom:8px; }
.sheet-detail-dialog .settlement-distance-inline input { flex:1 1 auto; }
.sheet-detail-dialog .settlement-distance-inline select { flex:0 0 116px; }
.sheet-detail-dialog .settlement-sheet-form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.sheet-detail-dialog .settlement-sheet-form-actions .reply { flex:1 1 240px; margin:0; }
.sheet-detail-dialog .settlement-sheet-field-stack textarea { min-height:70px; }
@media(max-width:1100px) {
  #tasks #dispatch-list-table colgroup, #settlements #settlement-sheet-table colgroup,
  #tasks #dispatch-list-table thead, #settlements #settlement-sheet-table thead { display:none; }
  #tasks #dispatch-list-table, #tasks #dispatch-list-table tbody,
  #settlements #settlement-sheet-table, #settlements #settlement-sheet-table tbody { display:block; }
  #tasks #dispatch-list-table .dispatch-summary-row, #settlements #settlement-sheet-table .settlement-summary-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin-bottom:10px; padding:12px; border:1px solid #dce7e9; border-radius:9px; background:#fff; }
  #tasks #dispatch-list-table .dispatch-summary-row > td, #settlements #settlement-sheet-table .settlement-summary-row > td { display:block; padding:0; border:0; }
  #tasks #dispatch-list-table .dispatch-summary-row > td::before, #settlements #settlement-sheet-table .settlement-summary-row > td::before { content:attr(data-label); display:block; margin-bottom:3px; color:#627782; font-size:12px; }
  #tasks #dispatch-list-table .dispatch-summary-row > td:first-child, #settlements #settlement-sheet-table .settlement-summary-row > td:first-child { grid-column:1/-1; padding-bottom:8px; border-bottom:1px solid #e5edef; }
  #tasks #dispatch-list-table .dispatch-summary-row > td:first-child::before, #settlements #settlement-sheet-table .settlement-summary-row > td:first-child::before { display:none; }
  #tasks #dispatch-list-table .dispatch-summary-row > td:last-child, #settlements #settlement-sheet-table .settlement-summary-row > td:last-child { align-self:end; }
  #settlements #settlement-sheet-table .settlement-batch-heading { display:block; }
  #settlements #settlement-sheet-table .settlement-batch-heading th { display:block; width:100%; }
  #settlements .settlement-batch-panel { grid-template-columns:1fr; }
  #tasks .dispatch-list-table-wrap { min-height:240px; }
}
@media(max-width:720px) {
  .sheet-detail-dialog { width:calc(100vw - 16px); max-height:94vh; border-radius:10px; }
  .sheet-detail-heading { padding:10px 12px; }
  .sheet-detail-heading h2 { font-size:18px; }
  .sheet-detail-body { padding:12px; }
  .sheet-detail-grid, .sheet-detail-dialog .settlement-sheet-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .sheet-detail-dialog button { min-height:44px; }
}
@media(max-width:480px) {
  .sheet-detail-grid, .sheet-detail-dialog .settlement-sheet-row { grid-template-columns:1fr; }
  .sheet-detail-dialog .settlement-sheet-row > td:nth-child(11) { grid-column:auto; }
  .sheet-detail-return, .sheet-detail-return time { flex-wrap:wrap; }
}

/* Shared workspace sizing: controls wrap, content scrolls inside its own page. */
#app-shell [hidden], .sheet-detail-dialog [hidden] { display:none !important; }
#app-shell .view, #app-shell .view > *, #app-shell .form-grid > *,
#app-shell .panel-head > *, #app-shell .topbar > * { min-width:0; }
#app-shell .topbar, #app-shell .view .panel-head { flex-wrap:wrap; }
#app-shell .topbar-actions { max-width:100%; }
#app-shell .view .panel-head h2, #app-shell .view .panel-head h3 { margin:0; }
#app-shell .view label, .sheet-detail-dialog label { min-width:0; }
#app-shell .view input:not([type="checkbox"]):not([type="radio"]),
#app-shell .view select, #app-shell .view textarea { min-width:0; max-width:100%; }
#app-shell .view .table-scroll { max-width:100%; min-width:0; }
#app-shell .view .empty { padding:24px 12px; line-height:1.5; }
#app-shell .view .reply, #app-shell .view .ui-help, .sheet-detail-context { overflow-wrap:anywhere; }
#app-shell .view .panel-head .primary, #app-shell .view .panel-head .secondary { flex-shrink:0; }

/* Filters keep a usable input width and move actions onto the next row as needed. */
#reports .report-period-toggle, #reports .report-period-actions,
#carriers .driver-status-toolbar, #task-history .task-history-toolbar-actions { flex-wrap:wrap; }
#reports .report-period-controls > label { flex:1 1 145px; }
#reports .report-period-controls #report-batch { max-width:none; }
#reports .report-period-actions { margin-left:auto; }
#reports .report-chart-toolbar { flex-wrap:wrap; }
#reports .report-chart-toolbar > div { min-width:0; flex:1 1 240px; }
#reports .report-chart-selector { min-width:0; max-width:100%; }
#reports .report-chart-selector select { min-width:0; max-width:100%; }
#reports .report-data-feedback { flex-wrap:wrap; overflow-wrap:anywhere; }
#reports .report-summary-strip strong { white-space:normal; }
#reports .report-summary-strip article { align-content:start; }
#reports .report-driver-performance-full #carriers-table { overflow-x:auto; }
#driver-performance #carriers-table table { min-width:1120px; }
#driver-performance .carrier-filter-control { min-width:92px; }
#driver-performance #carriers-table th, #driver-performance #carriers-table td { overflow-wrap:normal; }
#driver-performance .carrier-table-toolbar .carrier-search-field { min-width:180px; }
#settlements .settlement-toolbar label { flex:1 1 145px; }
#settlements .settlement-toolbar input { width:100%; max-width:none; }
#settlements .settlement-toolbar-actions { align-self:end; }
#task-history .task-history-toolbar { grid-template-columns:repeat(3,minmax(0,1fr)); }
#task-history .task-history-toolbar-actions { grid-column:1/-1; }
#carriers .driver-status-search { min-width:180px; flex:1 1 240px; }
#carriers .driver-status-toolbar .muted { white-space:normal; }
#demands .demand-template-head { align-items:flex-start; }
#demands .demand-template-heading { flex-wrap:wrap; flex:1 1 240px; }
#demands .demand-template-toolbar { min-width:0; max-width:100%; }

/* Long edit forms must not push their save buttons outside a clipped flex panel. */
#tasks .dispatch-list-table-wrap, #settlements .settlement-sheet-table-wrap { width:100%; }
#tasks .dispatch-sheet-panel:has(#dispatch-manual-editor:not([hidden])) { overflow-y:auto; }
#tasks .dispatch-sheet-panel:has(#dispatch-manual-editor:not([hidden])) > * { flex-shrink:0; }
#tasks .dispatch-sheet-panel:has(#dispatch-manual-editor:not([hidden])) .dispatch-list-table-wrap { flex:0 0 280px; }
#tasks .dispatch-manual-editor-head, #tasks .dispatch-manual-editor-actions { flex-wrap:wrap; }
#tasks .dispatch-manual-editor-grid > *, #tasks .dispatch-manual-location-input-row > * { min-width:0; }
#tasks .dispatch-shared-controls { flex-wrap:wrap; }
#tasks .dispatch-sheet-command-main, #tasks .dispatch-sheet-command-left { min-width:0; }
#tasks .dispatch-sheet-command-title, #tasks .dispatch-sheet-controls { flex-wrap:wrap; }
#tasks .dispatch-line-supply-head, #tasks .dispatch-hourly-reserve-head { flex-wrap:wrap; }
#tasks .dispatch-guarantee-panel .dispatch-supply-overview { position:static; }

/* A stacked title and legend leave enough room for the monitoring task list. */
.gps-monitor-task-panel .panel-head { flex-direction:column; align-items:stretch; }
.gps-monitor-task-panel .panel-head h2 { white-space:nowrap; }
.gps-monitor-task-panel .panel-head > div { align-items:flex-start; text-align:left; }
.gps-monitor-task-panel .gps-monitor-task-box { padding:12px; }
#transport-records .transport-execution-toolbar { flex:0 0 auto; min-width:0; }
#transport-records .transport-execution-date-picker > * { max-width:100%; }
#transport-records .transport-execution-date-picker label { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:8px; }
#transport-records .transport-execution-date-picker input { width:160px; }
#transport-records .transport-execution-date-picker select { flex:0 1 200px; }
#transport-records .dispatch-route-risk-overview-head, #transport-records .dispatch-route-risk-item-head { flex-wrap:wrap; }
#transport-records .dispatch-risk-source { white-space:normal; max-width:100%; }

/* Account and device maintenance use bounded lists; narrow screens use labeled cards. */
#employee-accounts > .panel { display:flex; flex-direction:column; overflow:hidden; }
#employee-account-form { flex:0 0 auto; grid-template-columns:repeat(3,minmax(0,1fr)); }
#employee-account-form > div { grid-column:1/-1; justify-content:flex-end; }
#employee-account-list { min-height:0; flex:1 1 auto; overflow:auto; }
#employee-account-list table { min-width:760px; }
#employee-account-list td { overflow-wrap:anywhere; }
#employee-account-list td:last-child button { margin:0 4px 4px 0; }
#carriers .carrier-card-heading > div { min-width:0; overflow-wrap:anywhere; }
#carriers .carrier-card-heading .status { flex:0 0 auto; }
#carriers .driver-status-card { min-width:0; }
#carriers .carrier-management-switcher, #carriers .driver-status-toolbar,
#carriers .driver-status-pagination { flex-shrink:0; }
#jt808-terminal-list th, #jt808-terminal-list td { white-space:normal; overflow-wrap:anywhere; }
#jt808-terminal-list table { min-width:1720px; }
#jt808-terminal-list th:nth-child(10), #jt808-terminal-list td:nth-child(10) { width:180px; }
#jt808-terminal-list th:nth-child(11), #jt808-terminal-list td:nth-child(11) { width:132px; }
#jt808-terminal-list .jt808-terminal-actions { flex-wrap:wrap; }
#jt808-terminal-list .jt808-match-select { min-width:100px; }
.sheet-detail-dialog .sheet-detail-heading { flex-wrap:wrap; }
.sheet-detail-dialog .sheet-detail-heading h2 { min-width:0; overflow-wrap:anywhere; flex:1 1 200px; }
.sheet-detail-dialog .sheet-detail-return { flex-wrap:wrap; }
.sheet-detail-dialog .sheet-detail-grid > *, .sheet-detail-dialog .settlement-sheet-row > td { min-width:0; }
.permission-dialog-panel .panel-head { flex-wrap:wrap; align-items:flex-start; }
.permission-group-head, .permission-dialog-actions { flex-wrap:wrap; }

@media(max-width:1100px) {
  #task-history .task-history-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #task-history .task-history-keyword { grid-column:1/-1; }
  #task-history .task-history-table, #task-history .task-history-table tbody,
  #employee-account-list table, #employee-account-list tbody,
  #jt808-terminal-list table, #jt808-terminal-list tbody { display:block; min-width:0; width:100%; }
  #task-history .task-history-table colgroup, #task-history .task-history-table thead,
  #employee-account-list thead, #jt808-terminal-list thead { display:none; }
  #task-history .task-history-row, #employee-account-list tbody tr, #jt808-terminal-list tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; padding:12px; margin-bottom:10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
  #task-history .task-history-row > td, #employee-account-list td, #jt808-terminal-list td { display:block; width:auto; min-width:0; padding:0; border:0; font-size:14px; overflow-wrap:anywhere; }
  #task-history .task-history-row > td::before, #employee-account-list td::before, #jt808-terminal-list td::before { display:block; content:attr(data-label); margin-bottom:4px; color:var(--muted); font-size:12px; line-height:1.4; }
  #task-history .task-history-row > td:first-child, #employee-account-list td:first-child, #jt808-terminal-list td:first-child { grid-column:1/-1; padding-bottom:8px; border-bottom:1px solid var(--line); }
  #task-history .task-history-detail-row { display:block; }
  #task-history .task-history-detail-row > td { display:block; width:100%; }
  #jt808-terminal-list .jt808-terminal-table td { width:auto; }
  #employee-account-list td:last-child, #jt808-terminal-list td:last-child { grid-column:1/-1; }
}
@media(max-width:640px) {
  #app-shell > main { flex:1 1 0; overflow-y:auto; overflow-x:hidden; }
  #app-shell .dashboard-workbench { flex:0 0 auto; overflow:visible; }
  #settlement-cards { flex:0 0 auto; overflow:visible; }
  #app-shell .topbar { display:flex; flex-direction:column; align-items:stretch; }
  #app-shell .topbar-actions { justify-content:flex-start; }
  #app-shell .topbar .badge { margin-top:0; }
  #app-shell .view.active { flex:0 0 auto; overflow:visible; }
  #app-shell .view.active > .panel, #app-shell .view.active > .task-workspace,
  #app-shell .view.active > .demand-workspace, #reports .report-workspace { flex:0 0 auto; height:auto; overflow:visible; }
  #tasks .task-dispatch-panel, #tasks .dispatch-sheet-panel, #tasks .dispatch-guarantee-panel,
  #tasks .dispatch-demands-panel, #demands .demand-entry-section,
  #carriers .driver-entry-layout, #carriers .driver-status-card, #carriers .carrier-management-panel { height:auto; max-height:none; overflow:visible; }
  #tasks .dispatch-list-table-wrap, #settlements .settlement-sheet-table-wrap,
  #task-history #task-history-cards, #employee-account-list { flex:0 0 auto; max-height:none; overflow:visible; }
  #tasks .dispatch-sheet-panel:has(#dispatch-manual-editor:not([hidden])) .dispatch-list-table-wrap { flex:0 0 auto; }
  #tasks .dispatch-manual-editor-grid { grid-template-columns:1fr; }
  #settlements .settlement-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #settlements .settlement-toolbar-actions, #settlements #settlement-filter-feedback { grid-column:1/-1; }
  #task-history .task-history-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #task-history .task-history-toolbar-actions { gap:6px; }
  #task-history .task-history-toolbar-actions button { flex:1 1 auto; white-space:normal; }
  #carriers .driver-status-toolbar { align-items:stretch; }
  #carriers .driver-status-search { min-width:0; flex-basis:100%; }
  #carriers .driver-status-toolbar .muted { flex:1 1 100%; }
  #carriers .driver-status-pagination, #reports .carrier-pagination { flex-wrap:wrap; gap:8px; }
  #reports .report-period-toggle { flex:1 1 100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #reports .report-period-controls > label { flex:1 1 calc(50% - 10px); }
  #reports .report-period-actions { margin:0; flex-wrap:wrap; }
  #reports .report-period-actions button { flex:1 1 100px; }
  #reports .report-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #reports .report-summary-strip strong { font-size:19px; }
  #employee-account-form { grid-template-columns:1fr; }
  #jt808-terminal-list td:nth-child(6), #jt808-terminal-list td:nth-child(7), #jt808-terminal-list td:nth-child(8), #jt808-terminal-list td:nth-child(10),
  #employee-account-list td:nth-child(5) { grid-column:1/-1; }
  #transport-records .transport-execution-date-picker select { flex-basis:100%; }
  .permission-dialog { padding:8px; }
  .permission-dialog-panel { width:100%; max-height:94vh; padding:12px; }
  .permission-grid { grid-template-columns:1fr; }
  .sheet-detail-dialog .settlement-distance-inline { flex-wrap:wrap; }
  .sheet-detail-dialog .settlement-distance-inline input { flex:1 1 100%; }
  .sheet-detail-dialog .settlement-distance-inline select { flex:1 1 100%; }
}

.permission-option, .route-toggle { flex-direction:row; }
.permission-option input[type="checkbox"], .route-toggle input[type="checkbox"] { width:16px; height:16px; flex:0 0 16px; padding:0; }
#dispatch-manual-add-resources label:has(> input[type="checkbox"]) { flex-direction:row; align-items:center; }
#dispatch-manual-add-resources input[type="checkbox"] { width:16px; height:16px; flex:0 0 16px; }
@media(min-width:641px) and (max-width:800px) {
}

#carriers .data-maintenance-panel { flex:0 0 auto; min-width:0; margin-bottom:10px; border:1px solid var(--line); border-radius:8px; background:#f8fbfc; }
#carriers .data-maintenance-panel > summary { padding:9px 12px; color:var(--navy); font-size:14px; font-weight:650; cursor:pointer; }
#carriers .data-maintenance-panel > summary .muted { margin-left:12px; font-size:12px; font-weight:400; }
#carriers .data-maintenance-panel[open] { max-height:220px; overflow-y:auto; }
#carriers .data-maintenance-actions, #carriers #data-maintenance-status { margin:0 12px 10px; }
#carriers #data-maintenance-status p { margin:6px 0; font-size:13px; line-height:1.5; }
#carriers .data-maintenance-panel > summary:focus-visible { outline:2px solid var(--teal); outline-offset:-2px; }
@media(max-width:640px) { #carriers .data-maintenance-panel > summary .muted { display:block; margin:4px 0 0; } }

/* Demand entry: one-screen primary form with on-demand optional fields and map. */
#app-shell #demands .demand-workspace { flex:1 1 auto; min-height:0; height:auto; overflow:hidden; margin:0; }
#demands .demand-entry-section { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; min-width:0; overflow:visible; }
#demands .demand-template-head { flex:0 0 auto; align-items:center; min-height:40px; gap:12px; margin:0 0 16px; }
#demands .demand-template-title { font-size:16px; line-height:24px; color:var(--navy); margin:0; }
#demands .demand-template-menu { position:relative; flex:0 0 auto; }
#demands .demand-template-menu > summary { cursor:pointer; min-height:40px; padding:9px 14px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--navy); font-weight:700; font-size:14px; line-height:20px; }
#demands .demand-template-menu .demand-template-toolbar { position:absolute; z-index:30; top:calc(100% + 6px); right:0; width:300px; max-width:calc(100vw - 64px); max-height:calc(100dvh - 160px); overflow-y:auto; padding:12px; display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 8px 24px #12304720; }
#demands .demand-template-select-label, #demands .demand-template-sharing-status { grid-column:1/-1; }
#demands .demand-template-toolbar select { width:100%; min-width:0; }
#demands .demand-entry-form { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; overflow:visible; padding:0; border:0; background:transparent; gap:0; }
#demands .demand-basic-grid { display:grid; flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; padding:2px 4px 18px 0; align-content:start; align-items:start; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none; grid-auto-rows:max-content; gap:18px 20px; }
#demands .demand-basic-grid > label, #demands .demand-contact-field, #demands .demand-vehicle-match-control, #demands .catching-team-field, #demands .demand-catching-controls label, #demands .demand-business-card > label { gap:8px; font-size:14px; line-height:20px; min-width:0; }
#demands .demand-field-caption, #demands .demand-contact-field > label, #demands .catching-team-field > span, #demands .demand-location-field > label { min-height:20px; line-height:20px; font-weight:600; font-size:14px; }
#demands .demand-shift-control legend { padding:0; margin:0 0 8px; line-height:20px; font-size:14px; font-weight:600; }
#demands .demand-basic-grid input:not([type=checkbox]):not([type=radio]):not([type=hidden]), #demands .demand-basic-grid select, #demands #demand-catching-team-dropdown > summary, #demands .demand-location-dialog input { height:40px; min-height:40px; padding:9px 10px; font-size:14px; line-height:20px; box-sizing:border-box; }
#demands .demand-shift-options label { position:relative; height:40px; min-height:40px; padding:9px 6px; font-size:14px; line-height:20px; }
#demands .demand-shift-options input { position:absolute; opacity:0; width:1px; height:1px; }
#demands .demand-shift-options label:focus-within { outline:2px solid var(--teal); outline-offset:2px; }
#demands .demand-vehicle-match-control { grid-column:span 2; }
#demands .demand-vehicle-length-options { min-height:40px; gap:5px 8px; padding:0; border:0; background:transparent; }
#demands .demand-vehicle-length-option { min-height:36px; padding:6px 8px; font-size:14px; line-height:20px; gap:4px; border:1px solid var(--line); border-radius:6px; background:#f7fafa; }
#demands .demand-vehicle-length-option input { width:14px; height:14px; flex:0 0 14px; }
#demands .catching-team-field { min-width:0; display:flex; flex-direction:column; }
#demands .catching-team-options { max-height:min(220px,40dvh); }
#demands #demand-catching-team-summary { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#demands .demand-catching-controls { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:10px; align-items:start; }
#demands .demand-catching-controls .social-catching-team-count-field { grid-column:auto; min-width:0; }
#demands .social-catching-team-count-field[hidden] { display:none; }
#demands .demand-location-field { grid-column:1/-1; display:flex; flex-direction:column; min-width:0; gap:8px; }
#demands .demand-location-row { display:flex; gap:10px; align-items:start; }
#demands .demand-location-input-wrap { position:relative; min-width:0; flex:1 1 auto; }
#demands .demand-location-row > button { height:40px; flex:0 0 auto; white-space:nowrap; padding:9px 14px; }
#demands .location-selection-hint { margin:0; font-size:12px; line-height:18px; overflow-wrap:anywhere; }
#demands .demand-location-field > .location-selection-hint { display:none; }
#demands .demand-optional-fields { grid-column:1/-1; min-width:0; margin-top:4px; border:1px solid var(--line); border-radius:9px; background:#fbfdfd; }
#demands .demand-optional-fields > .demand-optional-title { display:flex; gap:12px; padding:14px 16px; font-size:14px; line-height:20px; font-weight:600; }
#demands .demand-business-card { padding:0 16px 18px; gap:14px 18px; border:0; box-shadow:none; background:transparent; }
#demands .demand-form-actions { flex:0 0 auto; display:flex; flex-direction:row-reverse; justify-content:flex-start; gap:10px; margin:0; padding:16px 0 0; border-top:1px solid var(--line); background:#fff; }
#demands .demand-form-actions button { min-width:90px; min-height:40px; height:40px; padding:9px 18px; font-size:14px; line-height:20px; }
#demands .demand-form-actions .primary { min-width:140px; }
#demands .demand-save-feedback { flex:0 0 auto; margin:0 0 10px; max-height:80px; overflow-y:auto; }
#demands .demand-location-dialog { width:min(760px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:20px; border:1px solid var(--line); border-radius:12px; color:var(--ink); overflow-y:auto; }
#demands .demand-location-dialog::backdrop { background:#12304770; }
#demands .demand-location-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
#demands .demand-location-dialog-head h3 { margin:0; }
#demands .demand-location-dialog-search { position:relative; z-index:2; display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
#demands .demand-location-dialog .demand-location-map { display:block; height:clamp(220px,42dvh,380px); min-height:220px; max-height:none; margin:0; }
#demands .demand-location-dialog-actions { display:flex; justify-content:flex-end; margin-top:16px; }
@media (min-width:641px) and (max-width:1100px) {
  #demands .demand-basic-grid, #demands .demand-business-card { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  #demands .demand-vehicle-match-control, #demands .demand-catching-controls { grid-column:1/-1; }
  #demands .demand-catching-controls .catching-team-field { grid-column:auto; }
}
@media (max-width:640px) {
  #app-shell #demands .demand-workspace { flex:0 0 auto; height:auto; min-height:0; overflow:visible; padding:16px; }
  #demands .demand-entry-section, #demands .demand-entry-form { flex:0 0 auto; overflow:visible; }
  #demands .demand-basic-grid, #demands .demand-business-card { grid-template-columns:minmax(0,1fr); overflow:visible; }
  #demands .demand-vehicle-match-control, #demands .demand-catching-controls { grid-column:1/-1; }
  #demands .demand-catching-controls { grid-template-columns:minmax(0,1fr) 96px; }
  #demands .demand-template-menu .demand-template-toolbar { max-width:calc(100vw - 60px); }
  #demands .demand-form-actions { position:sticky; bottom:0; z-index:3; padding:12px 0; }
  #demands .demand-form-actions button { flex:1; min-width:0; }
}
/* The two dispatch guarantee charts share one card and control treatment. */
#tasks #dispatch-guarantee-panel > #dispatch-supply-overview { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#tasks #dispatch-guarantee-panel .dispatch-chart-card { padding:18px; border:1px solid #d5e6e7; border-left:4px solid var(--teal); border-radius:12px; background:#fff; box-shadow:none; }
#tasks #dispatch-guarantee-panel .dispatch-chart-card h4 { margin:0; color:var(--navy); font-size:16px; font-weight:700; line-height:1.5; }
#tasks #dispatch-guarantee-panel .dispatch-chart-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; }
#tasks #dispatch-guarantee-panel .dispatch-chart-head > span { color:var(--muted); font-size:13px; }
#tasks #dispatch-guarantee-panel .dispatch-chart-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; min-height:140px; margin-top:14px; padding:24px 16px; border:1px dashed #dce7eb; border-radius:8px; background:#f7fafb; color:var(--muted); font-size:14px; line-height:1.6; text-align:center; }
#tasks #dispatch-guarantee-panel .dispatch-chart-empty .dispatch-hourly-chart-empty { margin:0; padding:0; background:transparent; }
#tasks #dispatch-guarantee-panel .dispatch-stock-filters { gap:8px; margin:14px 0 8px; font-size:13px; }
#tasks #dispatch-guarantee-panel .dispatch-stock-filters button { min-height:34px; padding:6px 12px; border-radius:8px; font-size:13px; }
#tasks #dispatch-guarantee-panel :is(.dispatch-stock-time-control,.dispatch-waiting-time) { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin-top:12px; padding:12px 0 0; border-top:1px solid var(--line); font-size:13px; }
#tasks #dispatch-guarantee-panel :is(.dispatch-stock-time-control,.dispatch-waiting-time) label { display:flex; align-items:center; gap:10px; flex-direction:row; flex:1 1 260px; min-width:0; margin:0; }
#tasks #dispatch-guarantee-panel :is(.dispatch-stock-time-picker,.dispatch-waiting-picker) { flex:1; min-width:80px; accent-color:var(--teal); }
#tasks #dispatch-guarantee-panel :is(.dispatch-stock-time-control,.dispatch-waiting-time) output { color:var(--teal); font-weight:600; font-variant-numeric:tabular-nums; }
@media(max-width:640px) { #tasks #dispatch-guarantee-panel .dispatch-chart-card { padding:14px; } #tasks #dispatch-guarantee-panel .dispatch-chart-card h4 { font-size:15px; } }

.dispatch-waiting-bays { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:14px 18px; margin-bottom:12px; border:1px solid var(--border, #dce7eb); border-radius:12px; background:white; }

#demands .demand-business-card > [hidden] { display:none !important; }
.dispatch-waiting-chart-head, .dispatch-waiting-time { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; }
.dispatch-waiting-chart-head { justify-content:space-between; }
.dispatch-waiting-chart-head h4 { margin:0; }
.dispatch-waiting-timeline { min-width:0; margin-bottom:12px; }
.dispatch-waiting-chart { display:block; width:100%; height:auto; min-height:180px; }
.dispatch-waiting-interval { fill:transparent; cursor:pointer; }
.dispatch-waiting-interval.peak { fill:#e1f2ed; }
.dispatch-waiting-interval.excess { fill:#fce4e4; }
.dispatch-waiting-interval:hover, .dispatch-waiting-interval:focus { fill:#bfe1e1; outline:none; }
.dispatch-waiting-line { fill:none; stroke:var(--teal); stroke-width:2.5; pointer-events:none; }
.dispatch-waiting-limit { stroke:#c48118; stroke-width:2; stroke-dasharray:7 5; pointer-events:none; }
.dispatch-waiting-limit-label { fill:#9d6513; font-size:13px; pointer-events:none; }
.dispatch-waiting-cursor { stroke:#24485a; stroke-width:1; stroke-dasharray:3 3; pointer-events:none; }
.dispatch-waiting-time label { display:flex; align-items:center; gap:10px; flex:1; min-width:180px; }
.dispatch-waiting-picker { flex:1; min-width:80px; }
.dispatch-waiting-vehicles { margin-top:12px; max-height:280px; overflow:auto; }
.dispatch-waiting-vehicles table { width:100%; table-layout:fixed; }
.dispatch-waiting-vehicles td, .dispatch-waiting-vehicles th { padding:8px; overflow-wrap:anywhere; }
@media(max-width:600px) { .dispatch-waiting-vehicles td, .dispatch-waiting-vehicles th { font-size:12px; padding:5px 2px; } }

/* Checkbox choices are one field, without a second decorative box. */
#demands .demand-vehicle-length-options { border:0; border-radius:0; background:transparent; padding:6px 0; }

/* One public trip reference across dispatch, execution and settlement. */
.transport-task-number, #settlement-sheet-table .sheet-task-number { display:block; color:inherit; font-size:14px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }

#settlements .settlement-inline-fee { display:grid;grid-template-columns:minmax(0,1fr);gap:5px;min-width:0; }
#settlements .settlement-inline-fee input { width:100%;min-width:0;min-height:34px;padding:6px;font-size:14px; }
#settlements .settlement-inline-fee button { min-width:0;min-height:30px;padding:4px 7px;font-size:13px; }
#settlements .settlement-inline-fee [role="status"] { color:#526b75;font-size:12px;overflow-wrap:anywhere; }

#settlements .settlement-inline-quantities { display:grid; gap:4px; margin-top:5px; min-width:0; }
#settlements .settlement-inline-quantity-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
#settlements .settlement-inline-quantity-fields label { display:flex; flex-direction:column; gap:3px; min-width:0; margin:0; font-size:12px; color:var(--muted); }
#settlements .settlement-inline-quantity-fields input { width:100%; min-width:0; min-height:30px; height:30px; padding:4px 5px; font-size:14px; color:var(--ink); }
#settlements .settlement-inline-quantities button { min-width:0; min-height:30px; padding:4px 7px; font-size:13px; }
#settlements .settlement-inline-quantities [role="status"] { color:#526b75; font-size:12px; overflow-wrap:anywhere; }

/* Keep the settlement entry controls aligned and the primary action clear. */
#settlements .settlement-toolbar { display:grid; grid-template-columns:repeat(2,minmax(112px,140px)) minmax(80px,100px) minmax(140px,1fr) auto; align-items:end; gap:8px 10px; padding-bottom:10px; margin-bottom:0; }
#settlements .settlement-toolbar label { min-width:0; }
#settlements .settlement-toolbar input { min-height:34px; height:34px; padding:5px 8px; font-size:14px; }
#settlements .settlement-toolbar-actions { flex-wrap:nowrap; gap:6px; }
#settlements .settlement-toolbar-actions button { min-height:34px; padding:5px 8px; font-size:13px; white-space:nowrap; }
#settlements #settlement-filter-feedback { grid-column:1/-1; text-align:right; font-size:13px; }
#settlements .settlement-inline-fee, #settlements .settlement-inline-quantities { gap:5px; }
#settlements .settlement-inline-fee input, #settlements .settlement-inline-quantity-fields input { min-height:32px; height:32px; font-size:14px; font-variant-numeric:tabular-nums; text-align:right; border-radius:6px; }
#settlements .settlement-inline-actions { display:flex; align-items:center; gap:6px; min-width:0; min-height:30px; }
#settlements .settlement-inline-actions button { flex:0 0 auto; width:auto; height:30px; min-height:30px; padding:4px 7px; border-color:#bdd5d8; background:#fff; color:var(--teal); font-size:13px; white-space:nowrap; }
#settlements .settlement-inline-actions button:hover { background:#edf7f7; }
#settlements .settlement-inline-actions [role="status"] { flex:1 1 auto; min-width:0; font-size:12px; line-height:1.3; }
@media(max-width:1200px) {
  #settlements .settlement-toolbar { grid-template-columns:repeat(4,minmax(0,1fr)); }
  #settlements .settlement-toolbar-actions { grid-column:1/-1; justify-content:flex-end; }
}
@media(max-width:640px) {
  #settlements .settlement-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #settlements .settlement-toolbar-actions { flex-wrap:wrap; justify-content:flex-start; }
  #settlements #settlement-filter-feedback { text-align:left; }
}

/* Compact task cards share each desktop row instead of tall table rows. */
#settlements #settlement-sheet-table { display:block; width:100%; min-width:0; }
#settlements #settlement-sheet-table .settlement-batch-heading { display:block; margin:0 0 10px; }
#settlements #settlement-sheet-table .settlement-batch-panel { position:sticky; top:0; z-index:2; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:4px 14px; max-width:none; padding:8px 10px; border:1px solid #dae8eb; border-radius:9px; background:#f2f7f8; }
#settlements .settlement-batch-title { gap:8px; flex-wrap:nowrap; }
#settlements .settlement-batch-toggle { padding:4px 7px; font-size:14px; }
#settlements .settlement-batch-context { min-width:0; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#settlements .settlement-batch-summary { grid-column:1/-1; gap:4px 14px; margin:0; font-size:12px; }
#settlements .settlement-task-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:8px 0 0; }
#settlements #settlement-sheet-table .settlement-task-card { display:flex; flex-direction:column; gap:4px; min-width:0; margin:0; padding:6px 12px; border:1px solid #dbe6e9; border-radius:9px; background:#fff; }
#settlements #settlement-sheet-table .settlement-task-card:focus-within { border-color:#7ab7b9; box-shadow:0 0 0 1px #d3eaea; }
#settlements .settlement-card-header { line-height:1.3; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; }
#settlements .settlement-card-identity { display:grid; gap:3px; min-width:0; }
#settlements .settlement-card-vehicle { display:flex; align-items:baseline; flex-wrap:wrap; gap:3px 10px; min-width:0; }
#settlements .settlement-card-vehicle > strong { color:var(--navy); font-size:17px; }
#settlements .settlement-card-vehicle > span { color:#627782; font-size:13px; }
#settlements .settlement-card-return { display:grid; grid-template-columns:auto auto; align-items:baseline; gap:2px 6px; text-align:right; color:#627782; font-size:12px; }
#settlements .settlement-card-return .sheet-return-point { display:contents; }
#settlements .settlement-card-return strong { font-size:18px; color:var(--navy); font-variant-numeric:tabular-nums; }
#settlements .settlement-card-return .sheet-secondary { display:none; }
#settlements .settlement-card-entry { line-height:1.3; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); align-items:start; gap:10px; min-width:0; }
#settlements .settlement-card-entry .settlement-inline-quantities, #settlements .settlement-card-entry .settlement-inline-fee { margin:0; gap:6px; }
#settlements .settlement-card-entry .settlement-inline-quantity-fields { gap:10px; }
#settlements .settlement-inline-quantity-fields label > span::after { content:'（只）'; }
#settlements .settlement-card-entry .settlement-inline-quantity-fields label { gap:5px; font-size:13px; }
#settlements .settlement-card-fee { display:grid; gap:5px; min-width:0; }
#settlements .settlement-card-field-label { color:var(--muted); font-size:13px; line-height:normal; }
#settlements .settlement-card-entry input { height:32px; min-height:32px; }
#settlements .settlement-card-footer { display:flex; justify-content:space-between; align-items:center; gap:8px; min-width:0; padding-top:6px; border-top:1px solid #edf1f3; }
#settlements .settlement-card-facts { min-width:0; font-size:13px; color:#627782; }
#settlements .settlement-card-facts strong { color:var(--ink); font-weight:500; }
#settlements .settlement-card-detail { flex:0 0 auto; min-height:24px; padding:2px 0 2px 8px; border:0; background:transparent; font-size:13px; color:#627782; }
@media(max-width:1000px) {
  #settlements .settlement-task-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:640px) {
  #settlements #settlement-sheet-table .settlement-batch-panel { grid-template-columns:minmax(0,1fr); }
  #settlements .settlement-card-entry { gap:8px; }
  #settlements .settlement-card-vehicle > strong { font-size:15px; }
}

#settlements .settlement-card-footer-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:0; }
#settlements .settlement-card-footer-actions .settlement-inline-actions { min-height:30px; }
#settlements .settlement-card-footer-actions .settlement-inline-actions button { height:30px; min-height:30px; padding:4px 14px; border-color:var(--teal); background:var(--teal); color:#fff; }
#settlements .settlement-card-footer-actions [role="status"] { max-width:160px; }
@media(max-width:640px) {
  #settlements .settlement-card-footer { flex-wrap:wrap; }
  #settlements .settlement-card-footer-actions { margin-left:auto; }
  #settlements .settlement-card-footer-actions [role="status"] { max-width:120px; }
}

/* Keep the farmer name, phone and planned quantity readable in batch headings. */
#settlements .settlement-batch-context { overflow:visible; white-space:normal; }
#settlements .settlement-farmer-details { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:6px 16px; margin:6px 0; }
#settlements .settlement-farmer-details + .settlement-farmer-details { border-top:1px solid #dae8eb; padding-top:10px; }
#settlements .settlement-farmer-details > div { display:flex; align-items:baseline; gap:8px; min-width:0; }
#settlements .settlement-farmer-details dt { flex-shrink:0; color:var(--muted); }
#settlements .settlement-farmer-details dd { margin:0; color:var(--text); overflow-wrap:anywhere; }

/* Leave management uses dense rows; owner-change forms keep their own layout. */
#carriers .carrier-management-switcher { grid-template-columns:repeat(2,minmax(0,1fr)); }
#carriers .driver-status-card { padding:12px; }
#carriers #carrier-panel-leave:not([hidden]), #carriers #carrier-panel-salespeople:not([hidden]) { display:flex; flex-direction:column; }
#carriers #carrier-status-list, #carriers #salesperson-resource-list { display:block; flex:1 1 auto; min-height:0; overflow:auto; }
#carriers .carrier-leave-table { width:100%; min-width:0; max-width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; }
#carriers .carrier-leave-table .leave-identity-col { width:20%; }
#carriers .carrier-leave-table .leave-status-col { width:12%; }
#carriers .carrier-leave-table .leave-setting-col { width:14%; }
#carriers .carrier-leave-table .leave-dates-col { width:42%; }
#carriers .carrier-leave-table .leave-action-col { width:12%; }
#carriers .carrier-leave-table th { position:sticky; top:0; z-index:1; padding:8px 10px; font-size:13px; background:#edf5f6; }
#carriers .carrier-leave-table td { padding:6px 10px; font-size:14px; vertical-align:middle; overflow-wrap:anywhere; }
#carriers .carrier-leave-table strong { color:var(--navy); }
#carriers .carrier-leave-driver { display:block; margin-top:2px; color:var(--muted); font-size:13px; line-height:1.3; }
#carriers .carrier-leave-table input, #carriers .carrier-leave-table select, #carriers .carrier-leave-save { width:100%; min-width:0; height:34px; min-height:34px; max-height:34px; margin:0; padding:5px 7px; font-size:13px; line-height:22px; }
#carriers .carrier-leave-save:disabled { background:#edf2f4; color:#8c98a0; border-color:var(--line); cursor:not-allowed; opacity:1; }
#carriers .carrier-leave-table .driver-status-period { grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr); height:34px; min-height:34px; max-height:34px; }
#carriers .carrier-leave-table [hidden] { display:none!important; }
#carriers .carrier-leave-empty { color:var(--muted); }
#carriers .driver-status-pagination { flex-wrap:wrap; }
#carriers .carrier-page-size { display:flex; flex-direction:row; align-items:center; gap:6px; margin:0; color:var(--muted); font-size:13px; }
#carriers .carrier-page-size select { width:90px; min-height:34px; padding:5px 7px; font-size:13px; }
#carriers .leave-management-toolbar { gap:8px 12px; align-items:flex-end; }
#carriers .leave-management-toolbar > label { flex:0 0 158px; margin:0; gap:4px; }
#carriers .leave-management-toolbar > label[hidden] { display:none; }
#carriers .leave-management-toolbar .driver-status-search { flex:1 1 240px; }
#carriers .leave-management-toolbar input, #carriers .leave-management-toolbar select,
#carriers .leave-management-toolbar button { min-height:36px; height:36px; margin:0; padding:6px 9px; font-size:13px; }
#carriers .leave-management-toolbar .muted { margin-left:auto; font-size:13px; }
#carriers .leave-save-feedback { display:block; font-size:12px; line-height:16px; color:#137b62; overflow-wrap:anywhere; }
#carriers .leave-save-feedback:empty { display:none; }
#carriers .leave-save-feedback.error { color:#b33a34; }
@media(max-width:800px) {
  #carriers .leave-management-toolbar > label { flex:1 1 135px; }
  #carriers .leave-management-toolbar .driver-status-search { flex-basis:100%; }
  #carriers .carrier-leave-table, #carriers .carrier-leave-table tbody { display:block; }
  #carriers .carrier-leave-table colgroup, #carriers .carrier-leave-table thead { display:none; }
  #carriers .carrier-leave-table .carrier-leave-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 12px; margin-bottom:8px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; }
  #carriers .carrier-leave-table td { display:block; min-width:0; width:auto; padding:0; border:0; }
  #carriers .carrier-leave-table td:nth-child(2) { text-align:right; }
  #carriers .carrier-leave-table .carrier-leave-dates { grid-column:1/-1; order:1; }
  #carriers .carrier-leave-dates:has(.driver-status-period[hidden]) { display:none; }
}

/* Dispatch salesperson checkbox picker: selection saves directly. */
details.dispatch-salesperson-control { position:relative; min-width:110px; }
.dispatch-salesperson-control summary { cursor:pointer; padding:8px 10px; border:1px solid #d6e3e8; border-radius:8px; background:#fff; white-space:normal; }
.dispatch-salesperson-control fieldset { position:relative; min-width:0; max-height:220px; overflow:auto; margin:4px 0 0; padding:6px; border:1px solid #d6e3e8; border-radius:8px; background:#fff; box-shadow:0 6px 18px #13374b24; }
.dispatch-salesperson-control fieldset label { display:flex; flex-direction:row; justify-content:flex-start; text-align:left; align-items:center; gap:8px; padding:7px; cursor:pointer; white-space:nowrap; }
.dispatch-salesperson-control fieldset input { width:16px; min-width:16px; height:16px; margin:0; }
.dispatch-salesperson-control fieldset:disabled { opacity:.65; }



/* Explicit settlement confirmation and batch archive. */
.settlement-inline-review { padding:0 12px 8px; }
.settlement-inline-review textarea { width:100%; min-height:64px; margin-top:6px; }
.task-history-batch td { background:#eef6f7; padding:10px; font-weight:600; }
.task-history-batch button { margin-right:12px; }

/* Archive detail groups complement, rather than repeat, the summary row. */
#task-history .task-history-details { grid-template-columns:minmax(0,1fr); align-items:start; }
#task-history .task-history-details .task-history-detail-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
#task-history .task-history-details { gap:10px; padding:12px; }
#task-history .task-history-detail-item { padding:7px 10px; }
#task-history .task-history-detail-item span { margin-bottom:3px; }
@media(max-width:1100px) { #task-history .task-history-details .task-history-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
#task-history .task-history-evidence { margin:10px 12px; }
#task-history .task-history-evidence summary { cursor:pointer; color:#176f78; font-weight:600; }
#task-history .task-history-evidence pre { max-height:220px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; }
@media(max-width:900px) { #task-history .task-history-details { grid-template-columns:1fr; } }
@media(max-width:480px) { #task-history .task-history-details .task-history-detail-grid { grid-template-columns:1fr; } }

/* Archived routes and position records are an independent, expanded panel. */
#task-history .task-history-route-panel { grid-column:1/-1; }
#task-history .task-history-route-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:12px; }
#task-history .task-history-route-map { min-width:0; }
#task-history .task-history-route-records { min-width:0; max-height:290px; overflow:auto; }
#task-history .task-history-route-records table { display:table; width:100%; min-width:0; table-layout:fixed; }
#task-history .task-history-route-records thead { display:table-header-group; }
#task-history .task-history-route-records tbody { display:table-row-group; }
#task-history .task-history-route-records colgroup { display:table-column-group; }
#task-history .task-history-route-records col { display:table-column; }
#task-history .task-history-route-records tr { display:table-row; }
#task-history .task-history-route-records th, #task-history .task-history-route-records td { display:table-cell; padding:8px 6px; overflow-wrap:anywhere; white-space:normal; font-size:12px; }
#task-history .task-history-route-records th { position:sticky; top:0; background:#eef7f6; }
#task-history .task-history-route-empty { padding:14px; color:var(--muted); }
@media(max-width:900px) { #task-history .task-history-route-content { grid-template-columns:1fr; } }

#task-history .task-history-route-records .task-history-route-time { width:40%; }
#task-history .task-history-route-records .task-history-route-coordinate { width:22%; }
#task-history .task-history-route-records .task-history-route-speed { width:16%; }

/* Archived routes use the same Tianditu adapter as transport execution. */
#task-history .task-history-map-canvas { position:relative; width:100%; height:320px; min-height:240px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#f5f8fa; }
#task-history .task-history-map-notices { display:flex; flex-direction:column; gap:4px; padding-top:8px; color:var(--muted); font-size:13px; }
#task-history .task-history-map-error { display:flex; height:100%; flex-direction:column; justify-content:center; align-items:center; gap:12px; padding:16px; text-align:center; }

.map-route-switches { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; padding:8px 0; }
.map-route-switch { display:inline-flex; flex-direction:row; gap:5px; align-items:center; margin:0; color:#365361; font-size:13px; font-weight:500; white-space:nowrap; cursor:pointer; }
.map-route-switch input { width:15px; height:15px; margin:0; accent-color:#147d83; }
.map-route-switch i { display:inline-block; width:24px; height:0; border-top:3px solid #397fc4; }
.map-route-switch.actual i { border-top:3px dashed #dd7617; }
.map-route-switch.overlap i { border-top:5px solid #15803d; }
.map-route-switch:has(input:disabled) { opacity:.55; cursor:default; }
.map-route-notice { color:var(--muted); font-size:13px; padding:2px 0 6px; }
.gps-map-route-legend { display:block; z-index:600; }
.gps-map-route-legend .map-route-switches { padding:2px 0; }

/* Server-hosted map renderer */
.server-map-status{position:absolute;bottom:30px;left:12px;right:12px;z-index:850;background:#fff4df;color:#8a5512;padding:8px 12px;border-radius:6px;pointer-events:none;font-size:13px}
.server-map-label{background:transparent;border:0;white-space:nowrap}
.server-map-pin span{display:block;width:18px;height:18px;border-radius:50%;background:#13838a;border:3px solid white;box-shadow:0 1px 5px #3456}
.leaflet-container{font-family:inherit;isolation:isolate;background:#edf4f4}

/* Selected transport task: facts stay readable in the narrow map sidebar. */
.transport-detail-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 10px; }
.transport-detail-heading h3 { margin:0; font-size:16px; }
.transport-detail-heading > span { color:var(--muted); font-size:13px; }
.transport-detail-notice { margin:12px 0; padding:10px 12px; background:#fff7e6; border-left:3px solid #db9b27; border-radius:6px; color:#805a17; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.transport-fact-section { margin-top:16px; }
.transport-fact-section h4 { margin:0 0 6px; font-size:13px; color:var(--teal); }
.transport-fact-section dl { margin:0; }
.transport-fact { display:grid; grid-template-columns:88px minmax(0,1fr); gap:8px; padding:6px 0; border-bottom:1px solid #edf2f4; font-size:13px; line-height:1.55; }
.transport-fact dt { color:var(--muted); }
.transport-fact dd { margin:0; color:var(--ink); font-weight:500; overflow-wrap:anywhere; }
.transport-fact-note { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }

/* Backend owner administration: compact vehicle rows and one change dialog. */
#carrier-owners.view.active { overflow:hidden; }
#carrier-owners > .panel { display:flex; flex-direction:column; flex:1; min-height:0; margin:0; overflow:hidden; }
.carrier-owner-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.carrier-owner-heading h2 { margin:0; font-size:19px; }
.carrier-owner-heading p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.carrier-owner-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin-bottom:16px; }
.carrier-owner-toolbar label { flex:1 1 260px; margin:0; }
.carrier-owner-toolbar button { flex:0 0 auto; }
.carrier-owner-list { flex:1; min-height:0; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.carrier-owner-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:14px; }
.carrier-owner-table th { position:sticky; top:0; z-index:1; background:#edf5f7; color:#536f7e; text-align:left; padding:12px 16px; }
.carrier-owner-table th:first-child { width:34%; }.carrier-owner-table th:nth-child(2) { width:25%; }
.carrier-owner-table th:nth-child(3) { width:16%; }
.carrier-owner-table td { padding:12px 16px; border-bottom:1px solid var(--line); vertical-align:middle; overflow-wrap:anywhere; }
.carrier-owner-table tr:last-child td { border-bottom:0; }.carrier-owner-table tbody tr:hover { background:#f7fbfc; }
.carrier-owner-secondary { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.carrier-owner-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.carrier-owner-row-actions > button { padding:7px 12px; white-space:nowrap; font-size:13px; }
.carrier-owner-more { position:relative; color:var(--muted); font-size:12px; }
.carrier-owner-more summary { cursor:pointer; padding:8px; list-style:none; }
.carrier-owner-more .driver-delete { display:block; color:#ad4545; font-size:12px; padding:7px; white-space:nowrap; }
.carrier-owner-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding-top:14px; font-size:13px; color:var(--muted); }
.carrier-owner-pagination label { display:flex; flex-direction:row; align-items:center; gap:8px; margin:0; }
.carrier-owner-pagination select { width:auto; padding:7px 10px; font-size:13px; }
.carrier-owner-pagination > div { margin-left:auto; display:flex; gap:8px; }.carrier-owner-pagination button { padding:7px 12px; font-size:13px; }
.carrier-owner-dialog { width:min(520px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); padding:24px; border:1px solid var(--line); border-radius:16px; color:var(--navy); box-sizing:border-box; overflow:auto; }
.carrier-owner-dialog::backdrop { background:rgba(18,48,71,.35); }
.carrier-owner-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.carrier-owner-dialog-heading h2 { margin:0; font-size:20px; }.carrier-owner-dialog-heading button { padding:6px 10px; font-size:12px; }
.carrier-owner-current { margin-top:20px; padding:16px; border-radius:10px; background:#f0f7f8; }
.carrier-owner-current > strong { font-size:21px; }.carrier-owner-current dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0 0; }
.carrier-owner-current dt { color:var(--muted); font-size:12px; }.carrier-owner-current dd { margin:5px 0 0; overflow-wrap:anywhere; font-size:14px; }
.carrier-owner-dialog .driver-change-form { display:grid; gap:16px; margin:20px 0; }
.carrier-owner-dialog .driver-change-form input,.carrier-owner-dialog textarea { font-size:14px; padding:11px 12px; width:100%; box-sizing:border-box; }
.carrier-owner-dialog textarea { min-height:90px; resize:vertical; }
.carrier-owner-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
#carrier-owner-save-message { margin:12px 0 0; color:#a63c36; }
@media (max-width:700px) {
  .carrier-owner-heading { align-items:flex-start; }.carrier-owner-toolbar label { flex-basis:100%; }
  .carrier-owner-table thead { display:none; }.carrier-owner-table,.carrier-owner-table tbody { display:block; }
  .carrier-owner-table tr { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); padding:6px; }
  .carrier-owner-table td { display:block; padding:10px; border:0; }.carrier-owner-table tr:last-child { border:0; }
  .carrier-owner-row-actions { justify-content:flex-end; }.carrier-owner-dialog { padding:18px; }
}

/* Horizon workspace: production login, shell and platform home. */
.login-visual{overflow:hidden;position:relative;background:linear-gradient(142deg,#123047 0%,#1c5364 43%,#147d83 100%);color:white;min-height:100dvh;padding:42px 48px 30px;isolation:isolate;display:flex;flex-direction:column}.magic-grid,.banner-grid{position:absolute;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(#ffffff0c 1px,transparent 1px),linear-gradient(90deg,#ffffff0c 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(120deg,transparent,black);transform:perspective(900px) rotateY(-12deg) scale(1.15)}.magic-grid:after{content:"";position:absolute;width:48px;height:48px;left:60%;top:37%;background:#ffffff15;box-shadow:-192px 96px #ffffff0c,96px 192px #ffffff10;animation:grid-pulse 6s ease-in-out infinite}.ambient-glow{position:absolute;width:380px;height:380px;filter:blur(85px);border-radius:50%;pointer-events:none;z-index:-1}.glow-one{background:#65dce255;top:30%;right:-170px}.glow-two{background:#56d8df40;bottom:-220px;left:-130px}.visual-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.visual-wordmark{font-size:8px;letter-spacing:1.7px;color:#caf3f599}.glass-tag{font-size:9px;padding:7px 10px;border:1px solid #ffffff25;border-radius:20px;color:#ebfafb;background:#ffffff0a;white-space:nowrap}.visual-copy{margin-top:clamp(50px,9vh,110px)}.visual-kicker{display:flex;align-items:center;gap:8px;color:#cef4f6;font-size:11px;letter-spacing:1px}.visual-kicker>span{width:5px;height:5px;background:#acecef;border-radius:50%;box-shadow:0 0 12px #c1f1f3}.visual-copy h2{font-size:clamp(32px,3.2vw,48px);line-height:1.4;font-weight:650;letter-spacing:1.8px;margin-top:17px}.visual-copy p{font-size:12px;line-height:1.95;color:#c4eff1;margin-top:16px}.system-scene{position:relative;width:100%;max-width:570px;height:280px;min-height:250px;margin:auto;flex:1;max-height:350px}.scene-orbit{position:absolute;border:1px solid #c4f1f424;border-radius:50%;left:50%;top:51%;transform:translate(-50%,-50%) rotate(-20deg)}.orbit-one{width:92%;height:70%}.orbit-two{width:69%;height:106%;transform:translate(-50%,-50%) rotate(37deg)}.scene-node{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 14px;background:#ffffff0e;border:1px solid #ffffff24;border-radius:14px;backdrop-filter:blur(16px);box-shadow:0 12px 24px #0d434613;min-width:170px;font-size:12px;z-index:2}.scene-node small{display:block;font-size:9px;color:#bbecef;margin-top:4px}.node-demand{left:0;top:23%;transform:rotate(-5deg)}.node-archive{right:0;bottom:15%;transform:rotate(6deg)}.scene-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#ffffff14;color:#ebfafb}.scene-icon svg{width:19px;height:19px}.node-state{width:6px;height:6px;background:#9cf2d6;border-radius:50%;margin-left:6px;box-shadow:0 0 8px #8bf2cf5e}.central-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-43%) rotate(-5deg);width:255px;padding:23px 22px 18px;border-radius:20px;background:linear-gradient(135deg,#ffffff30,#ffffff10);border:1px solid #def7f966;backdrop-filter:blur(28px);box-shadow:0 25px 60px #0d41443d;color:white;z-index:3;overflow:hidden}.beam-border:before{content:"";position:absolute;top:0;left:-70%;width:70%;height:1px;background:linear-gradient(90deg,transparent,#fff,transparent);animation:border-beam 7s linear infinite;pointer-events:none}.central-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.scene-icon.large{width:46px;height:46px;background:linear-gradient(140deg,#bdf0f375,#e5f9fa20);border:1px solid #ffffff24;border-radius:14px}.scene-icon.large svg{width:26px;height:26px}.mini-pill{font-size:8px;border:1px solid #ffffff30;border-radius:20px;padding:4px 8px;color:#dff8f9}.central-card>strong{font-size:21px;font-weight:600;letter-spacing:.5px}.central-card>p{font-size:10px;color:#ccf3f5;margin-top:8px}.central-card-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:19px;border-top:1px solid #ffffff20;margin-top:21px}.central-card-bottom>span:last-child{display:flex;gap:8px;align-items:center;font-size:9px;color:#dff8f9}.central-card-bottom svg{width:13px;height:13px}.avatars{display:flex;padding-left:4px}.avatars b{display:grid;place-items:center;font-weight:500;font-size:9px;width:24px;height:24px;margin-left:-4px;border-radius:50%;border:2px solid #37abb1;background:#5bc2c8;color:white}.avatars b:nth-child(2){background:#44b0b6}.avatars b:nth-child(3){background:#6d8bca}.scene-spark{position:absolute;width:5px;height:5px;background:#cdf3f5;border-radius:50%;box-shadow:0 0 20px 5px #aeecf040}.spark-one{left:20%;bottom:14%}.spark-two{right:14%;top:16%}.visual-bottom{display:flex;gap:12px;align-items:center;font-size:10px;color:#c5f2f4a8;position:relative;margin-top:20px}.visual-bottom b{font-weight:400;color:#b1eaed60}.visual-page-number{margin-left:auto;font-size:8px;letter-spacing:1.5px;color:#c0f0f375}
.login-gate { display:flex; height:100vh; min-height:100vh; overflow-y:auto; background:#fff; }
.auth-shell { display:grid; grid-template-columns:minmax(0,.46fr) minmax(0,.54fr); width:100%; min-height:100vh; }
.auth-login-panel { display:flex; flex-direction:column; padding:38px 52px 28px; min-width:0; background:#fff; }
.auth-platform-mark { color:#123047; line-height:1.1; letter-spacing:1px; }
.auth-platform-mark strong { font-size:25px; }.auth-platform-mark strong span { display:block; margin-top:7px; font-size:11px; font-weight:500; letter-spacing:4px; color:#9398af; }
.auth-login-panel-inner { width:100%; max-width:360px; margin:auto; padding:50px 0 64px; }
.auth-login-kicker { display:block; margin-bottom:18px; font-size:10px; letter-spacing:2px; color:#749799; }
.auth-login-intro h1 { margin:0; color:#123047; font-size:40px; letter-spacing:-1px; }.auth-login-intro h1 span { color:#35d0d8; }
.auth-login-intro p { margin:13px 0 34px; font-size:14px; color:#71808a; }
.auth-login-card .form-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.auth-login-card .form-grid > label { gap:10px; font-size:13px; color:#364060; font-weight:600; }
.auth-input-wrap { display:block; position:relative; }.auth-input-wrap > i { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:#a1a7bd; pointer-events:none; }
.auth-input-wrap input { width:100%; min-height:50px; padding:12px 45px; border:1px solid #e3e6f0; background:#fcfeff; color:#293052; border-radius:12px; font-size:14px; }
.auth-input-wrap input::placeholder { color:#a4acc0; font-weight:400; }.auth-input-wrap input:focus { outline:3px solid #46d4dc15; border-color:#50d7de; }
#auth-password-visibility { position:absolute; top:5px; right:5px; display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; background:transparent; color:#8e95a8; border-radius:8px; cursor:pointer; }
#auth-password-visibility:hover { background:#edf8f9; color:#147d83; }
.auth-account-help { display:flex; flex-wrap:wrap; gap:5px; margin:0; font-size:10px; color:#8791ab; }.auth-account-help span { margin-left:auto; }
.auth-login-card .primary { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:50px; border-radius:12px; font-size:14px; background:linear-gradient(110deg,#147d83,#10696e); box-shadow:0 7px 17px #27c6cf2b; }
.auth-login-card .primary:hover { background:linear-gradient(110deg,#10696e,#0d5960); }.auth-login-card .reply { margin-top:16px; padding:11px 13px; border:0; border-radius:8px; background:#f5fdfd; color:#517274; font-size:12px; line-height:1.7; overflow-wrap:anywhere; }.auth-login-card .reply:empty { display:none!important; }
.auth-login-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:10px; color:#939bb1; }
.login-visual { min-height:100%; }.login-visual .system-scene { flex:1; }.login-visual .bi { font-size:20px; }.login-visual .large .bi { font-size:26px; }
#login-gate button:focus-visible, #dashboard button:focus-visible { outline:3px solid #b1edf0; outline-offset:3px; }
#app-sidebar { background:#fff; color:#71808a; border-right:1px solid #dce5e9; padding:28px 18px 18px; }
/* Compact module identity stays legible in every independent center. */
#app-sidebar .brand { display:grid; grid-template-columns:34px minmax(0,1fr) 28px; gap:9px; align-items:center; border-bottom:1px solid #eaf0f2; padding:0 0 20px; margin-bottom:8px; }
#app-sidebar .sidebar-brand-mark { display:grid; place-items:center; width:34px; height:38px; margin:0; border:1px solid #d4ece9; border-radius:11px; background:linear-gradient(145deg,#effaf7,#e4f3f3); color:#147d83; font-size:18px; }
#app-sidebar .sidebar-brand-title { min-width:0; }
#app-sidebar .sidebar-brand-eyebrow { display:block; margin:0 0 3px; color:#789499; font-size:9px; font-weight:500; line-height:1.4; letter-spacing:.7px; white-space:nowrap; }
#app-sidebar .sidebar-brand-title strong { display:block; color:#123047; font-size:15px; font-weight:700; letter-spacing:-.2px; line-height:1.5; white-space:nowrap; }
#app-sidebar .sidebar-collapse-toggle { width:28px; height:30px; margin:0; border:1px solid #e2ecef; border-radius:9px; background:#fff; color:#708b92; box-shadow:none; }
#app-sidebar .brand .sidebar-collapse-toggle span { margin:0; font-size:20px; font-weight:400; line-height:1; }
#app-sidebar .sidebar-collapse-toggle:hover { border-color:#b7dbd9; background:#f0f9f8; color:#147d83; transform:none; }
body.sidebar-collapsed #app-sidebar .brand { display:flex; flex-direction:column; gap:12px; }
body.sidebar-collapsed #app-sidebar .sidebar-brand-mark { flex:none; }
@media(max-width:640px) { #app-sidebar .brand { grid-template-columns:34px minmax(0,1fr) 32px; padding-bottom:14px; } #app-sidebar .sidebar-collapse-toggle { width:32px; height:36px; } }
#app-sidebar nav button { color:#71808a; font-size:13px; border-radius:10px; }
#app-sidebar nav button:hover, #app-sidebar nav button.active { color:#147d83; background:#eefbfc; }
#app-sidebar .nav-parent { background:#f7fdfd; color:#555f7c; margin-bottom:12px; }
#app-sidebar .nav-section-link { color:#6e7895; }#app-sidebar .nav-section-items { border-color:#e7f1f2; }
#app-sidebar .nav-count { background:#edf8f9; color:#54a2a6; border-color:#e0f5f6; }
#app-shell > main { padding:26px 32px 24px; background:#f4f7f8; }
#app-shell .topbar { align-items:center; margin-bottom:24px; }#app-shell .topbar h1 { font-size:25px; color:#123047; letter-spacing:.5px; }
#app-shell .page-kicker { display:block; margin-bottom:6px; font-size:10px; font-weight:400; color:#929bb2; letter-spacing:.5px; }
#app-shell .topbar-actions > .secondary { background:#fff; border-color:#dce5e9; border-radius:10px; font-size:12px; padding:9px 12px; }
#app-shell .app-version { background:#ebf7f8; color:#60a5a8; border-radius:20px; font-size:10px; }
#dashboard .dashboard-workbench { display:flex; flex-direction:column; gap:20px; padding:0 4px 16px 0; }
#dashboard .dashboard-command-summary { position:relative; isolation:isolate; overflow:hidden; min-height:182px; flex-shrink:0; padding:27px 32px; border:0; border-radius:22px; background:linear-gradient(110deg,#147d83,#20978e 45%,#62b9ac); color:#fff; box-shadow:0 10px 30px #29ccd512; }
#dashboard .dashboard-command-head { position:relative; z-index:2; max-width:calc(100% - 260px); }
#dashboard .dashboard-command-head h2 { font-size:25px; color:#fff; margin:13px 0 10px; font-weight:600; }
#dashboard .dashboard-command-head p { color:#dff8f9; font-size:12px; margin:0; }
#dashboard .banner-eyebrow { font-size:9px; color:#dbf7f8; letter-spacing:2px; }
#dashboard-date { color:#dff8f9; font-size:10px; margin-top:20px; line-height:1.6; }
#dashboard .dashboard-overview-retry { color:#147d83; background:#fff; border:0; margin-top:10px; }
#dashboard .dashboard-command-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; padding:0; border:0; }
#dashboard .dashboard-command-metric { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #eef0f7; border-radius:17px; padding:20px 17px; min-width:0; }
#dashboard .dashboard-command-metric > div > span { display:block; font-size:12px; color:#8791ab; margin-bottom:7px; }
#dashboard .dashboard-command-metric strong { font-size:26px; color:#123047; font-weight:650; white-space:nowrap; }
#dashboard .dashboard-metric-icon { display:grid; place-items:center; width:43px; height:43px; border-radius:14px; flex-shrink:0; font-size:20px; }
#dashboard .violet { color:#35d0d8; background:#edfbfc; }#dashboard .blue { color:#6495ed; background:#edf4ff; }#dashboard .amber { color:#d99a44; background:#fff5e7; }#dashboard .rose { color:#d9788d; background:#fff0f3; }
#dashboard .dashboard-command-grid { grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr); gap:20px; }
#dashboard .dashboard-primary-column, #dashboard .dashboard-side-column { display:flex; flex-direction:column; gap:20px; min-width:0; }
#app-shell #dashboard .panel { border:1px solid #eef0f7; border-radius:20px; padding:22px; margin:0; box-shadow:none; }
#app-shell #dashboard .panel-head { margin-bottom:19px; align-items:flex-start; gap:12px; }
#dashboard .panel h2 { margin:0; font-size:17px; font-weight:650; color:#123047; }
#dashboard .panel .muted { font-size:11px; color:#8791ab; line-height:1.6; }#dashboard .panel p.muted { margin:6px 0 0; }
#dashboard .dashboard-vehicle-app { overflow:hidden; border:1px solid #e7f8f9; border-radius:14px; background:linear-gradient(120deg,#fcfefe,#fff); }
#dashboard .dashboard-app-main { display:flex; align-items:center; gap:13px; padding:19px 17px; }
#dashboard .dashboard-app-icon { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; border-radius:14px; background:linear-gradient(140deg,#44d4db,#26c1c9); color:#fff; font-size:25px; box-shadow:0 5px 14px #28ccd427; }
#app-shell #dashboard .dashboard-app-main h3 { font-size:14px; margin:0; }#dashboard .dashboard-app-main .status { margin-left:6px; background:#e9f8f0; color:#448e68; border:0; padding:3px 6px; font-size:9px; }
#dashboard .dashboard-primary-action { margin:0 0 0 auto; padding:9px 14px; border-radius:9px; font-size:11px; white-space:nowrap; flex-shrink:0; width:auto; background:linear-gradient(110deg,#147d83,#10696e); }
#dashboard .dashboard-app-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:13px 6px; border-top:1px solid #edf7f8; background:#fcfefe; }
#dashboard .dashboard-app-shortcuts button { display:flex; justify-content:center; align-items:center; gap:7px; padding:3px 4px; border:0; border-right:1px solid #e9f5f6; background:none; color:#628486; font-size:11px; cursor:pointer; }#dashboard .dashboard-app-shortcuts button:last-child { border:0; }#dashboard .dashboard-app-shortcuts button:hover { color:#147d83; }#dashboard .dashboard-app-shortcuts .bi-chevron-right { font-size:9px; }
#dashboard .dashboard-priority-group { border:0; background:none; margin:0; }#dashboard .dashboard-priority-group-head { background:#f9fefe; border:0; border-radius:9px; padding:10px 12px; }#dashboard .dashboard-priority-group-head strong { font-size:12px; color:#607e80; }#dashboard .dashboard-group-action { color:#3d9fa4; font-size:11px; }
#dashboard .dashboard-priority-row { padding:15px 0; border-bottom:1px solid #f0f7f7; }#dashboard .dashboard-priority-row strong { font-size:13px; color:#364060; }#dashboard .dashboard-priority-row .detail { color:#8791ab; font-size:11px; margin-top:6px; }#dashboard .dashboard-priority-row:last-child { border-bottom:0; }
#dashboard .dashboard-result-grid { display:flex; flex-direction:column; gap:20px; margin-top:24px; }#dashboard .dashboard-result-grid > div { border:0; background:none; padding:0; }#dashboard .dashboard-result-grid strong { font-size:28px; color:#147d83; margin-top:9px; }#dashboard .dashboard-result-grid span { font-size:12px; color:#8791ab; }
#dashboard .dashboard-results-rule { padding-top:18px; border-top:1px solid #eef0f7; margin-top:24px; font-size:10px; line-height:1.9; color:#8791ab; }
#dashboard .dashboard-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }#dashboard .dashboard-shortcut { display:flex; flex-direction:column; gap:10px; align-items:center; justify-content:center; padding:0; border:0; background:none; text-align:center; cursor:pointer; }#dashboard .dashboard-shortcut i { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; font-size:20px; }#dashboard .dashboard-shortcut strong { font-size:11px; font-weight:500; color:#71808a; }
#dashboard .dashboard-home-footer { display:flex; justify-content:space-between; gap:12px; color:#9aa2b8; font-size:10px; margin-top:4px; }
@media (min-width:761px) and (max-width:1050px) { .auth-login-panel { padding:36px 32px; }.login-visual { padding:36px 30px; }.scene-node { min-width:145px; }.central-card { width:210px; } }
@media (max-width:1180px) { #dashboard .dashboard-command-grid { grid-template-columns:1fr; }#dashboard .dashboard-side-column { display:grid; grid-template-columns:1fr 1fr; align-items:start; }#dashboard .dashboard-app-main { flex-wrap:wrap; }#dashboard .dashboard-command-metrics { gap:10px; }#dashboard .dashboard-command-metric { padding:17px 12px; gap:9px; }#dashboard .dashboard-metric-icon { width:35px; height:35px; } }
@media (max-width:760px) { .auth-shell { grid-template-columns:minmax(0,1fr); }.auth-login-panel { padding:30px 28px; min-height:100vh; }.login-visual { display:none; }.auth-login-panel-inner { max-width:420px; }.auth-login-intro h1 { font-size:34px; }#app-shell > main { padding:18px 16px; }#app-shell .topbar { gap:12px; flex-wrap:wrap; margin-bottom:18px; }#app-shell .topbar-actions { gap:5px; }#dashboard .dashboard-command-summary { padding:24px; min-height:174px; }#dashboard .dashboard-command-head { max-width:100%; }#dashboard .welcome-platform { opacity:.18; right:-100px; pointer-events:none; }#dashboard .dashboard-command-head h2 { font-size:23px; }#dashboard .dashboard-command-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }#dashboard .dashboard-command-metric strong { font-size:24px; }#dashboard .dashboard-side-column { display:flex; }#app-shell #dashboard .panel { padding:18px; }#dashboard .dashboard-app-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 0; }#dashboard .dashboard-app-shortcuts button:nth-child(2) { border-right:0; }#dashboard .dashboard-app-main > .primary { margin-left:0; }#dashboard .dashboard-home-footer span:last-child { display:none; } }
@media (prefers-reduced-motion:reduce) { .magic-grid:after, .beam-border:before { animation:none; } }

.banner-grid{background-size:32px 32px;mask-image:linear-gradient(90deg,transparent 30%,black);transform:perspective(600px) rotateY(-15deg) scale(1.2)}.banner-eyebrow{font-size:8px;letter-spacing:2px;color:#dbf7f8}.welcome-date{display:flex;align-items:center;gap:6px;color:#dff8f9;font-size:9px;margin-top:20px}.welcome-date svg{width:12px;height:12px}.welcome-platform{width:320px;position:absolute;right:22px;top:0;height:100%;display:grid;place-items:center}.platform-ring{border:1px solid #ffffff1d;border-radius:50%;position:absolute;width:210px;height:210px;transform:rotate(-25deg) scaleY(.55)}.platform-ring.ring-two{width:300px;height:300px;transform:rotate(22deg) scaleY(.45)}.floating-tile{position:absolute;display:grid;place-items:center;box-shadow:0 14px 25px #20919727;border:1px solid #ffffff45;background:linear-gradient(135deg,#e2f8fa7a,#b4eef144);backdrop-filter:blur(8px);border-radius:16px;transform:rotate(-15deg)}.tile-one{width:63px;height:63px;left:66px;top:43px;z-index:2}.tile-one svg{width:32px;height:32px}.tile-two{width:43px;height:43px;right:45px;top:32px;transform:rotate(15deg)}.tile-three{width:39px;height:39px;left:32px;bottom:30px;transform:rotate(8deg)}.welcome-platform>span{position:absolute;bottom:32px;right:37px;font-size:13px;font-weight:500;letter-spacing:1px}.welcome-platform small{display:block;font-size:8px;font-weight:400;letter-spacing:1px;color:#daf6f8;margin-top:7px}

.login-visual .visual-copy h2 { color:#fff; }
@keyframes grid-pulse { 0%,100% { opacity:.4; } 50% { opacity:1; } }
@keyframes border-beam { to { left:130%; } }
#dashboard .dashboard-command-head { border:0; padding:0; }
@media (max-width:640px) { #app-sidebar { padding:16px; max-height:30vh; } }

/* Shared teal controls across every business view and its dialogs.
   Keep sizes local to dense tables; use the same semantic colors and states. */
:root {
  --action-primary:#147d83;
  --action-hover:#10696e;
  --action-soft:#e9f5f4;
  --action-border:#bfdfdd;
  --action-focus:#66aaa8;
  --action-danger:#b83a49;
  --action-danger-soft:#fff1f3;
  --action-radius:10px;
}
button { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button:where(.primary,.secondary,.report-view-button,.carrier-management-tab) {
  font-weight:600; border-radius:var(--action-radius);
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;
}
.primary,
#settlements .settlement-card-footer-actions .settlement-inline-actions button {
  border:1px solid transparent; border-radius:var(--action-radius); background:var(--action-primary); color:#fff;
  box-shadow:0 3px 8px #147d8318;
}
.primary:not(:disabled):not([aria-disabled="true"]):hover,
#settlements .settlement-card-footer-actions .settlement-inline-actions button:not(:disabled):hover {
  background:var(--action-hover); border-color:var(--action-hover); box-shadow:0 4px 12px #147d8328;
}
.secondary { background:#fff; color:var(--ink); border-color:var(--line); border-radius:var(--action-radius); box-shadow:0 1px 2px #25374604; }
.secondary:not(:disabled):not([aria-disabled="true"]):hover,
#app-shell .topbar-actions > .secondary:not(:disabled):hover {
  background:var(--action-soft); color:var(--action-primary); border-color:var(--action-border);
}
button.secondary.active, button.secondary[aria-pressed="true"] {
  background:var(--action-primary); border-color:var(--action-primary); color:#fff;
}
button.secondary.active:not(:disabled):hover, button.secondary[aria-pressed="true"]:not(:disabled):hover {
  background:var(--action-hover); border-color:var(--action-hover); color:#fff;
}
button.danger, button.driver-delete, .carrier-owner-more button.driver-delete {
  color:var(--action-danger); border-color:#f0ccd2; background:#fff7f8; box-shadow:none;
}
button:is(.danger,.driver-delete):not(:disabled):not([aria-disabled="true"]):hover {
  color:#9e2638; border-color:#e8a8b4; background:var(--action-danger-soft);
}
/* Segmented navigation, including reports, dispatch, transport and leave. */
.report-view-switcher, .carrier-management-switcher { background:#f3fcfc; border-color:var(--line); }
.report-view-button, .carrier-management-tab { color:#68718c; }
.report-view-button:not(:disabled):hover, .carrier-management-tab:not(:disabled):hover,
#tasks .dispatch-view-switcher-row .report-view-button:not(.active):hover {
  color:var(--action-primary); background:var(--action-soft);
}
.report-view-button.active, .carrier-management-tab.active,
#tasks .dispatch-view-switcher-row .report-view-button[aria-selected="true"],
.dispatch-view-switcher-row .report-view-button[aria-selected="true"] {
  background:var(--action-primary); color:#fff; box-shadow:0 3px 8px #147d8320;
}
.report-view-button.active:not(:disabled):hover, .carrier-management-tab.active:not(:disabled):hover {
  background:var(--action-hover); color:#fff;
}
/* Native disclosure controls retain their open/closed behavior and marker. */
#app-shell summary { border-radius:8px; }
#app-shell summary:not(:has(button)):hover { color:var(--action-primary); }
#demands .demand-template-menu > summary,
#demands .catching-team-field summary,
.dispatch-salesperson-control summary { border-color:var(--line); color:var(--ink); background:#fff; }
#demands .demand-template-menu > summary:hover,
#demands .catching-team-field summary:hover,
.dispatch-salesperson-control summary:hover { border-color:var(--action-border); background:var(--action-soft); }
#app-shell :is(.ui-help,.ui-cell-details,.dispatch-stock-line-details,.dispatch-hourly-chart-details) > summary,
#task-history .task-history-evidence summary { color:var(--action-primary); }
#settlements .settlement-inline-actions button { border-color:var(--action-border); }
#settlements .settlement-inline-actions button:not(:disabled):hover { background:var(--action-soft); }
#settlements .settlement-card-footer-actions .settlement-inline-actions button:not(:disabled):hover { background:var(--action-hover); }
/* Focus and disabled states apply to dynamically rendered controls as well. */
#app-shell button:focus-visible, #login-gate button:focus-visible,
#app-shell summary:focus-visible, .permission-dialog button:focus-visible,
.carrier-owner-dialog button:focus-visible, .sheet-detail-dialog button:focus-visible,
.dispatch-planning-dialog button:focus-visible {
  outline:3px solid var(--action-focus); outline-offset:3px;
}
button:is(.primary,.secondary):not(:disabled):active { box-shadow:inset 0 2px 4px #2537461a; }
#app-shell button:disabled, #login-gate button:disabled,
#settlements .settlement-card-footer-actions .settlement-inline-actions button:disabled,
#carriers .carrier-leave-save:disabled, .permission-dialog button:disabled,
.carrier-owner-dialog button:disabled, .sheet-detail-dialog button:disabled,
.dispatch-planning-dialog button:disabled {
  background:#eef0f6; border-color:#e2e5ef; color:#8a92a8;
  box-shadow:none; cursor:not-allowed; opacity:1;
}
button[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
button[aria-busy="true"] { cursor:progress; }
button[aria-busy="true"]::after {
  content:""; display:inline-block; width:12px; height:12px; margin-left:7px; vertical-align:-1px;
  border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:action-spin .8s linear infinite;
}
@keyframes action-spin { to { transform:rotate(360deg); } }
/* Maps retain the blue/orange/green route keys; only their controls use teal. */
.map-route-switch input, .route-toggle input { accent-color:var(--action-primary); }
.map-route-switch { padding:5px 7px; border:1px solid transparent; border-radius:8px; color:var(--ink); }
.map-route-switch:has(input:checked) { border-color:var(--action-border); background:var(--action-soft); }
.map-route-switch:has(input:focus-visible), .route-toggle:has(input:focus-visible) { outline:3px solid var(--action-focus); outline-offset:2px; }
.leaflet-bar { border-color:var(--line); border-radius:10px; overflow:hidden; box-shadow:0 3px 12px #25374612; }
.leaflet-bar a { color:var(--ink); }
.leaflet-bar a:hover { background:var(--action-soft); color:var(--action-primary); }
/* Action rows wrap instead of compressing labels or hiding secondary actions. */
.dispatch-row-actions, .task-card-actions, .permission-dialog-actions,
.carrier-owner-dialog-actions, .dispatch-manual-editor-actions,
.jt808-terminal-actions { flex-wrap:wrap; gap:8px; }
#app-shell :is(.primary,.secondary) { overflow-wrap:anywhere; }
@media (max-width:760px), (pointer:coarse) {
  /* Overrides dense desktop row sizes so every control keeps a touch target. */
  #app-shell button, #login-gate button,
  .permission-dialog button, .carrier-owner-dialog button,
  .sheet-detail-dialog button, .dispatch-planning-dialog button { min-height:44px !important; }
  #app-shell :is(.primary,.secondary,.report-view-button,.carrier-management-tab) { white-space:normal; }
  #app-shell .topbar-actions { gap:8px; }
  .map-route-switch, .route-toggle { min-height:44px; }
  .leaflet-bar a { min-width:44px; min-height:44px; line-height:44px; }
  #app-shell summary { min-height:44px; align-content:center; }
  .dispatch-row-actions, .jt808-terminal-actions { align-items:stretch; }
}
@media (prefers-reduced-motion:reduce) {
  button:where(.primary,.secondary,.report-view-button,.carrier-management-tab) { transition:none; }
  button[aria-busy="true"]::after { animation:none; border-right-color:currentColor; }
}

/* Common desktop action proportions, with card and table layouts preserved. */
#app-shell :is(.view,.topbar-actions) button:is(.primary,.secondary,.report-view-button,.carrier-management-tab) {
  border-radius:var(--action-radius); font-weight:600; line-height:1.4;
}
#settlements .settlement-card-footer-actions .settlement-inline-actions button {
  height:auto; min-height:36px; padding:7px 16px; border-radius:var(--action-radius);
}
#app-shell .carrier-management-tab { min-height:38px; padding:8px 12px; }
.demand-shift-options label { border-radius:var(--action-radius); }
.demand-shift-options label:has(input:checked) { color:var(--action-primary); border-color:var(--action-border); background:var(--action-soft); }
.demand-shift-options label:has(input:focus-visible) { outline:3px solid var(--action-focus); outline-offset:2px; }

/* Keep the batch staffing choice beside the address on wide demand forms. */
@media (min-width:1101px) {
  #demands .demand-basic-grid .demand-location-field { grid-column:span 2; }
}

/* GPS operations: keep location evidence and controls visible at desk and phone widths. */
.gps-position-empty {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:rgba(255,255,255,.8);padding:24px;text-align:center}
#transport-task-search {width:100%;margin:4px 0}
#transport-clear-selection {padding:6px 8px;font-size:12px}
#transport-task-search-summary {margin:6px 0;font-size:12px}
.jt808-toolbar {display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}
.jt808-toolbar input {flex:1;min-width:180px}
.jt808-toolbar select {width:170px}
.jt808-secondary {display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.5}
#jt808-terminal-list {overflow-x:auto}
#jt808-terminal-list .jt808-terminal-table {min-width:0;width:100%;table-layout:fixed}
#jt808-terminal-list .jt808-terminal-table th,#jt808-terminal-list .jt808-terminal-table td {width:auto;overflow-wrap:anywhere;white-space:normal}
#jt808-terminal-list .jt808-terminal-table th:nth-child(1) {width:19%}
#jt808-terminal-list .jt808-terminal-table th:nth-child(2) {width:19%}
#jt808-terminal-list .jt808-terminal-table th:nth-child(3) {width:22%}
#jt808-terminal-list .jt808-terminal-table th:nth-child(4) {width:24%}
#jt808-terminal-list .jt808-terminal-table th:nth-child(5) {width:16%}
#jt808-terminal-list .jt808-terminal-actions {flex-direction:column;align-items:stretch;gap:6px}
#jt808-terminal-list .jt808-match-select {min-width:0;width:100%;font-size:12px}
.jt808-pagination {display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;flex-wrap:wrap}
.jt808-pagination span {margin-right:auto;color:var(--muted);font-size:13px}
.jt808-detail-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.jt808-detail-grid div {min-width:0;border-bottom:1px solid var(--line);padding-bottom:12px}
.jt808-detail-grid dt {color:var(--muted);font-size:13px}
.jt808-detail-grid dd {margin:6px 0 0;overflow-wrap:anywhere}
@media(max-width:900px) {
 #jt808-terminal-list .jt808-terminal-table,#jt808-terminal-list .jt808-terminal-table tbody {display:block;width:100%;min-width:0}
 #jt808-terminal-list .jt808-terminal-table thead {display:none}
 #jt808-terminal-list .jt808-terminal-table tr {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
 #jt808-terminal-list .jt808-terminal-table td {display:block;padding:0;border:0;width:auto}
 #jt808-terminal-list .jt808-terminal-table td:before {content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
 #jt808-terminal-list .jt808-terminal-table td:first-child,#jt808-terminal-list .jt808-terminal-table td:last-child {grid-column:1/-1}
 #jt808-terminal-list .jt808-terminal-actions {flex-direction:row;flex-wrap:wrap}
 .jt808-detail-grid {grid-template-columns:1fr}
}

.jt808-readiness-details summary {cursor:pointer;color:var(--teal);font-size:12px;padding:4px 0}
.jt808-readiness-details[open] {display:grid;gap:8px}
#gps-readiness-brief {font-weight:600;color:var(--navy);font-size:12px}
#jt808 .carrier-jt808-panel {gap:8px}
#jt808 .carrier-jt808-panel .table-scroll {min-height:220px}
#jt808 .gps-readiness-head {flex-wrap:wrap}
#jt808 .gps-readiness-panel {padding:10px;gap:4px}
#jt808 .jt808-toolbar {margin:4px 0}

/* Batch and single-trip views share the same map/sidebar scope. */
.transport-batch-filter-label{font-size:12px;color:var(--muted);margin:6px 0 4px;display:block}
#transport-batch-filter{width:100%;margin-bottom:8px}
.gps-monitor-task-selector .panel-head{flex-wrap:wrap;gap:8px}
#transport-clear-selection{font-size:12px;padding:7px 10px}

.gps-monitor-task-selector .transport-task-card-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px}
.gps-monitor-task-selector .transport-task-dot-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gps-monitor-task-selector .transport-task-number{font-size:13px;white-space:nowrap}
.gps-monitor-task-selector .transport-task-row-status{grid-column:1 / -1}

.transport-batch-filter-label{color:var(--navy);font-weight:600}

/* Position facts remain separate from task execution status. */
.transport-last-position-toggle { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:6px; margin:8px 0; color:var(--ink); font-size:12px; }
.transport-last-position-toggle input { width:16px; height:16px; margin:0; accent-color:var(--teal); }
.transport-last-position-toggle small { color:var(--muted); font-size:11px; }
#transport-task-search-summary { line-height:1.7; font-variant-numeric:tabular-nums; }
.gps-monitor-task-selector .transport-gps-state { justify-self:start; padding:3px 7px; border-radius:5px; font-size:11px; line-height:1.3; color:#62717b; background:#edf1f3; }
.gps-monitor-task-selector .transport-gps-state.current { color:#25764e; background:#eaf5ee; }
.gps-monitor-task-selector .transport-gps-state.stale { color:#956018; background:#fff3dc; }
.gps-monitor-task-selector .transport-gps-time { grid-column:1/-1; color:var(--muted); font-size:11px; font-weight:400; line-height:1.5; overflow-wrap:anywhere; }
.gps-task-marker.historical { height:auto; min-height:30px; flex-wrap:wrap; max-width:200px; background:#73818b; border-style:dashed; padding:5px 8px; }
.gps-marker-trip-count { margin-left:5px; padding-left:5px; border-left:1px solid rgba(255,255,255,.5); font-size:10px; }
.gps-marker-last-time { flex-basis:100%; margin-top:4px; font-size:10px; font-weight:500; text-align:center; }

/* Day and batch closure is explicit, including when grid rules are active. */
#settlements .settlement-day { border:1px solid #d6e5e8; border-radius:10px; margin-bottom:12px; overflow:hidden; }
#settlements .settlement-day-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; padding:12px; background:#f1f7f7; }
#settlements .settlement-day-toggle { font-size:17px; font-weight:700; padding:6px 10px; }
#settlements .settlement-day-progress { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); }
#settlements .settlement-progress { display:inline-block; font-size:17px; color:var(--teal); font-variant-numeric:tabular-nums; white-space:nowrap; }
#settlements .settlement-day-body { padding:10px; }
#settlements .settlement-day-body[hidden], #settlements .settlement-task-grid[hidden] { display:none!important; }

/* Report center: one scroll owner, concise cards, consistent read-only tables. */
#reports .report-center { padding:24px; min-width:0; background:#fff; }
#reports .rc-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:22px; }
#reports .rc-heading h2 { font-size:26px; margin:3px 0 8px; color:#173b4a; }
#reports .rc-heading p { margin:0; color:#73858d; }
#reports .rc-eyebrow { color:#258b8c; font-size:10px; font-weight:700; letter-spacing:2px; }
#reports .rc-tabs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; padding:6px; border-radius:16px; background:#f0f8f7; margin-bottom:20px; }
#reports .rc-tab { display:flex; justify-content:center; align-items:center; gap:9px; border:0; background:transparent; color:#668080; border-radius:12px; min-height:48px; padding:10px; box-shadow:none; font-weight:650; }
#reports .rc-tab.active { background:#147d83; color:white; box-shadow:0 3px 7px #147d8320; }
#reports .rc-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:18px; border:1px solid #e1eeee; border-radius:14px; background:#fbfdfd; }
#reports .rc-filters label { display:grid; gap:6px; font-size:12px; color:#6b8087; flex:1 1 140px; min-width:0; }
#reports .rc-filters label input,#reports .rc-filters label select { width:100%; min-width:0; height:40px; margin:0; font-size:13px; }
#reports .rc-filters .report-period-toggle { flex:1 1 100%; display:flex; flex-wrap:wrap; gap:6px; }
#reports .rc-filter-actions { display:flex; flex-wrap:wrap; gap:8px; flex:1 1 100%; justify-content:flex-end; }
#reports .rc-filter-actions button { min-height:38px; font-size:13px; padding:8px 15px; }
#reports .rc-query-context { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:12px; color:#678087; margin:14px 0 8px; }
#reports .rc-note { color:#637980; font-size:12px; line-height:1.6; margin-bottom:18px; }
#reports .rc-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 20px; }
#reports .rc-metric { text-align:left; display:flex; flex-direction:column; min-width:0; align-items:flex-start; justify-content:flex-start; gap:10px; padding:18px; background:#f5faf9; border:1px solid #deecea; border-radius:14px; box-shadow:none; color:#183e4b; }
#reports button.rc-metric:hover { border-color:#71b2ac; background:#edf8f5; }
#reports .rc-metric>span { color:#658080; font-size:12px; }
#reports .rc-metric strong { font-size:24px; line-height:1.35; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#reports .rc-metric small { font-size:11px; line-height:1.6; color:#6b858a; }
#reports .rc-section { border:1px solid #deebec; border-radius:14px; padding:18px; margin:16px 0; min-width:0; background:#fff; }
#reports .rc-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
#reports .rc-section h3 { margin:0; color:#225862; font-size:16px; }
#reports .rc-caption { color:#6d8389; font-size:12px; line-height:1.7; margin:10px 0; }
.rc-table-wrap { overflow-x:auto; width:100%; }
.rc-table { width:100%; border-collapse:collapse; font-size:12px; color:#2d4a55; font-variant-numeric:tabular-nums; }
.rc-table th { background:#f1f7f7; color:#5b7982; font-size:11px; font-weight:650; text-align:left; position:sticky; top:0; white-space:nowrap; padding:12px; }
.rc-table td { padding:12px; border-bottom:1px solid #e8f0ef; vertical-align:top; overflow-wrap:anywhere; max-width:340px; }
.rc-table td small { display:block; color:#829298; font-size:10px; margin-top:5px; }
.rc-table tbody tr:hover { background:#f7fbfa; }
#reports .rc-empty { padding:28px; color:#7a9095; text-align:center; }
.rc-link { border:0; background:transparent; color:#147d83; padding:0; font-size:inherit; box-shadow:none; text-decoration:underline; text-underline-offset:3px; }
.rc-badge { display:inline-block; padding:4px 8px; background:#edf6f2; color:#238262; border-radius:7px; font-size:11px; white-space:nowrap; }
.rc-badge.amber { background:#fff5df; color:#946519; }
#reports .rc-state-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
#reports .rc-state-flow>div { border-left:3px solid #9ac9be; background:#f8fbfa; padding:12px; display:grid; gap:9px; }
#reports .rc-state-flow span { font-size:12px; color:#6c8188; }
#reports .rc-state-flow strong { font-size:24px; color:#275f64; }
#reports .rc-bars { display:flex; align-items:end; gap:14px; overflow-x:auto; padding:12px 8px 4px; min-height:190px; }
#reports .rc-bar-button { flex:1 0 64px; max-width:140px; padding:8px; border:1px solid transparent; background:transparent; display:flex; align-items:center; flex-direction:column; box-shadow:none; color:#50717a; font-size:11px; }
#reports .rc-bar-button.selected { background:#edf8f5; border-color:#64aba3; }
#reports .rc-bar-button strong { font-size:11px; white-space:nowrap; }
#reports .rc-bar-track { display:flex; align-items:end; height:120px; width:25px; background:#f2f8f6; border-radius:5px; margin:12px 0; }
#reports .rc-bar-track>span { width:100%; display:block; background:linear-gradient(#4ca995,#147d83); border-radius:5px; min-height:2px; }
#reports .rc-pagination { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:15px; font-size:12px; color:#6b8189; }
#reports .rc-pagination button { padding:7px 12px; font-size:12px; }
#reports .rc-group { border:1px solid #e0ecea; border-radius:10px; margin:10px 0; padding:0 12px; }
#reports .rc-group>summary { padding:16px 2px; color:#295960; font-weight:600; cursor:pointer; font-size:13px; }
#reports .rc-group>summary span { float:right; font-size:12px; color:#71928d; }
#reports .rc-batch { background:#fbfdfc; }
#reports .rc-inline-controls { display:flex; flex-wrap:wrap; gap:18px; margin:14px 0; }
#reports .rc-inline-controls label,#reports .rc-plan-selector { display:flex; align-items:center; gap:10px; color:#617b83; font-size:12px; }
#reports .rc-inline-controls select,#reports .rc-plan-selector select { min-width:170px; max-width:100%; font-size:12px; }
#reports .rc-definitions { margin-top:20px; font-size:12px; color:#67818b; }
#reports .rc-definitions summary { cursor:pointer; padding:12px 0; }
#reports .rc-definitions dt { color:#255d64; font-weight:650; margin:15px 0 5px; }
#reports .rc-definitions dd { margin:0; line-height:1.7; }
#reports .rc-gantt { overflow-x:auto; max-height:480px; }
#reports .rc-gantt-row { display:grid; grid-template-columns:180px minmax(200px,1fr) 170px; gap:10px; align-items:center; padding:7px 0; font-size:10px; }
#reports .rc-gantt-row>div { position:relative; background:#eff6f3; height:12px; border-radius:4px; }
#reports .rc-gantt-row i { position:absolute; height:12px; border-radius:4px; background:#54aa99; }
#reports .rc-gantt-row small { color:#719088; }
#reports .rc-plan-evidence { margin-top:12px; }
#reports .rc-plan-evidence td { max-width:600px; }
.rc-drawer { position:fixed; inset:0 0 0 auto; width:min(740px,95vw); height:100dvh; max-height:100dvh; margin:0; padding:24px; border:0; border-left:1px solid #d7e8e3; background:#fff; color:#254a54; box-shadow:-20px 0 80px #123d4820; overflow-y:auto; }
.rc-drawer::backdrop { background:#123f4c45; backdrop-filter:blur(2px); }
.rc-drawer-head { position:sticky; top:-24px; background:#fff; z-index:2; display:flex; justify-content:space-between; align-items:center; padding:15px 0; gap:15px; }
.rc-drawer-head h3 { margin:0; font-size:18px; }
.rc-drawer-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
#reports #driver-performance[hidden] { display:none!important; }
#reports [hidden] { display:none!important; }
@media(min-width:1600px) { #reports .rc-metrics {grid-template-columns:repeat(6,minmax(0,1fr));} #reports .rc-metric strong {font-size:22px;} }
@media(max-width:1050px) { #reports .rc-tabs {grid-template-columns:repeat(3,minmax(0,1fr));} #reports .rc-metrics {grid-template-columns:repeat(2,minmax(0,1fr));} #reports .rc-metric strong {font-size:22px;} }
@media(max-width:620px) { #reports .report-center {padding:14px;} #reports .rc-heading {align-items:start;flex-direction:column;} #reports .rc-tab {min-height:46px;font-size:12px;gap:5px;} #reports .rc-filters {padding:12px;} #reports .rc-filters label {flex-basis:calc(50% - 12px);} #reports .rc-filter-actions {justify-content:flex-start;} #reports .rc-metrics {gap:8px;} #reports .rc-metric {padding:12px;gap:7px;} #reports .rc-metric strong {font-size:19px;} #reports .rc-section {padding:12px;} #reports .rc-state-flow {grid-template-columns:repeat(2,minmax(0,1fr));} #reports .rc-group>summary span {float:none;display:block;margin-top:7px;} #reports .rc-pagination {gap:7px;justify-content:center;} #reports .rc-plan-selector {flex-direction:column;align-items:stretch;} .rc-drawer {padding:16px;} }

.rc-table td.rc-number { text-align:right; }

/* Platform directory: business metrics live inside the vehicle center. */
.platform-home-workspace { flex:1 1 auto; width:100%; max-width:1360px; margin:0 auto; display:flex; flex-direction:column; gap:20px; overflow-y:auto; min-height:0; padding-bottom:24px; }
/* Keep portal sections at their natural height; only the workspace scrolls. */
.platform-home-workspace > * { flex:0 0 auto; }
.platform-home-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px; border:1px solid #dcefe9; border-radius:22px; background:linear-gradient(120deg,#edf9f4,#f9fdfb); color:#194d4b; }
.platform-eyebrow { display:block; font-size:11px; font-weight:700; letter-spacing:2px; color:#318c7c; margin-bottom:16px; }
.platform-home-hero h2 { margin:0 0 14px; font-size:30px; font-weight:700; }
.platform-home-hero p { margin:0; color:#6c8781; font-size:14px; }
.platform-hero-symbol { display:grid; place-items:center; width:100px; height:100px; border:1px solid #d1e9e0; border-radius:26px; background:#ffffff90; color:#52a490; font-size:42px; flex:0 0 auto; box-shadow:0 12px 36px #2b7d6920; transform:rotate(-6deg); }
.platform-center-panel { padding:24px; min-height:320px; }
#platform-home .platform-home-workspace > .platform-center-panel { height:auto; margin:0; }
.platform-center-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
#app-shell #platform-home .platform-center-heading h3 { margin:0 0 8px; font-size:18px; color:#224e56; }
.platform-center-heading p { margin:0; color:#7b9394; font-size:12px; }
.platform-center-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.platform-center-card { display:flex; flex-direction:column; gap:12px; padding:20px; border:1px solid #d5e9e2; border-radius:18px; background:linear-gradient(145deg,#fff,#f8fcfa); min-width:0; transition:box-shadow .2s,border-color .2s; }
.platform-center-card:hover { box-shadow:0 10px 30px #26785c12; border-color:#80bca9; }
.platform-center-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.platform-center-icon { width:54px; height:54px; border-radius:15px; display:grid; place-items:center; font-size:25px; background:#e7f5ef; color:#288970; }
.platform-center-access { display:flex; align-items:center; gap:5px; padding:5px 9px; color:#36876c; background:#edf8f0; border-radius:20px; font-size:11px; }
#app-shell #platform-home .platform-center-card h3 { color:#224c55; font-size:20px; margin:0; }
.platform-center-card p { color:#7a8d92; font-size:12px; line-height:1.7; margin:0; }
.platform-center-features { display:flex; flex-wrap:wrap; gap:7px; flex:1; align-content:start; }
.platform-center-features span { color:#6c8b88; font-size:10px; background:#eff6f3; padding:5px 8px; border-radius:6px; }
.platform-enter-button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:42px; margin-top:4px; font-size:13px; }
.platform-centers-empty { grid-column:1/-1; padding:40px 20px; text-align:center; color:#7a9193; }
.platform-centers-empty>i { font-size:34px; color:#91b8a9; }
.platform-centers-empty h3 { font-size:17px; color:#577b7b; }
.platform-centers-empty p { font-size:13px; }
.platform-permission-note { display:flex; align-items:center; gap:8px; font-size:12px; color:#829793; padding:0 6px; margin:0; }
.platform-management-actions { display:flex; align-items:center; }
/* Business navigation belongs to the selected center, never the platform portal. */
body:not([data-center="vehicle"]):not([data-center="configuration"]):not([data-center="teaching"]):not([data-center="crm"]):not([data-center="warehouse"]):not([data-center="agent"]):not([data-center="skill"]) #app-sidebar { display:none; }
#platform-center-error { margin:0 0 16px; padding:12px; background:#fff5e2; color:#906c26; border-radius:9px; font-size:13px; }
#platform-management-nav[hidden],#platform-return-button[hidden],#transport-nav-toggle[hidden] { display:none!important; }
@media(min-width:1650px) { .platform-center-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1150px) { .platform-center-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .platform-home-workspace {gap:16px;} .platform-home-hero {padding:24px;} .platform-home-hero h2 {font-size:23px;} .platform-hero-symbol {width:60px;height:60px;font-size:28px;border-radius:18px;} .platform-center-panel {padding:18px;} .platform-center-grid {grid-template-columns:1fr;} .platform-center-card {padding:20px;} .platform-permission-note {align-items:flex-start;line-height:1.7;} }

@media(max-width:640px) { .platform-home-workspace { flex:0 0 auto; overflow:visible; } }

/* 当日需求：桌面一屏查看完整批次，保留小屏横向滚动。 */
@media (min-width:1100px) {
  #tasks:has(#dispatch-demands-panel:not([hidden])) .task-dispatch-panel { padding:12px 14px; }
  #tasks:has(#dispatch-demands-panel:not([hidden])) .dispatch-view-switcher-row { padding-bottom:8px; }
  #tasks .dispatch-all-demands-card { padding:8px 10px; margin-bottom:0; }
  #tasks .dispatch-all-demands-head { margin-bottom:6px; gap:8px; align-items:center; }
  #tasks .dispatch-all-demands-head h3 { font-size:16px; }
  #tasks .dispatch-all-demands-head .muted { font-size:12px; }
  #tasks .dispatch-all-demands-head button { min-height:32px; padding:6px 10px; font-size:13px; }
  #tasks .dispatch-all-demands-table-wrap { max-height:none; overflow:visible; }
  #tasks .dispatch-all-demands-table { min-width:0; width:100%; }
  #tasks .dispatch-all-demands-table th, #tasks .dispatch-all-demands-table td { padding:4px 3px; line-height:1.2; font-size:12px; }
  #tasks .dispatch-all-demands-table th { white-space:normal; vertical-align:middle; }
  #tasks .dispatch-all-demands-table .dispatch-shift-badge, #tasks .dispatch-all-demands-table .dispatch-preallocated-line { padding:2px 4px; font-size:11px; }
  #tasks .dispatch-all-demands-total { padding-top:4px; font-size:12px; }
}

/* 需求清单：两行队伍数量与联系方式形成稳定行高，数字和状态分组对齐。 */
.dispatch-all-demands-table .dispatch-demand-team { display:grid; gap:2px; white-space:nowrap; }
.dispatch-all-demands-table .dispatch-demand-team b { font-weight:600; font-variant-numeric:tabular-nums; }
.dispatch-all-demands-table .dispatch-demand-phone { color:#71808a; font-size:11px; margin-top:2px; font-variant-numeric:tabular-nums; }
#tasks .dispatch-all-demands-table th, #tasks .dispatch-all-demands-table td { vertical-align:middle; }
#tasks .dispatch-all-demands-table th:nth-child(n+5), #tasks .dispatch-all-demands-table td:nth-child(n+5) { text-align:center; }
#tasks .dispatch-all-demands-table th:nth-child(5), #tasks .dispatch-all-demands-table td:nth-child(5),
#tasks .dispatch-all-demands-table th:nth-child(6), #tasks .dispatch-all-demands-table td:nth-child(6) { text-align:right; font-variant-numeric:tabular-nums; }
#tasks .dispatch-all-demands-table tbody tr:hover { background:#f7fbfb; }

/* 报表等待明细与选中时间联动。 */
#rc-waiting-chart .dispatch-waiting-time { margin:12px 0; padding-top:12px; border-top:1px solid var(--line); }
#rc-waiting-chart .dispatch-waiting-time label { display:flex; flex-direction:row; align-items:center; gap:12px; flex:1 1 260px; margin:0; min-width:0; }
#rc-waiting-chart .dispatch-waiting-picker { flex:1; min-width:80px; accent-color:var(--teal); }
#rc-waiting-chart .dispatch-waiting-time output { color:var(--teal); font-weight:600; }

/* 结算清单：压缩日期与批次摘要，保留展开后的录入和确认操作。 */
#settlements > .panel { padding:12px 14px; }
#settlements .settlement-day { margin-bottom:8px; border-radius:8px; }
#settlements .settlement-day-heading { gap:6px 14px; padding:6px 8px; }
#settlements .settlement-day-heading .settlement-day-toggle { height:28px; min-height:28px; padding:3px 6px; font-size:14px; line-height:20px; }
#settlements .settlement-day-progress { gap:5px; font-size:12px; }
#settlements .settlement-day-heading > .muted { font-size:12px; }
#settlements .settlement-day-body { padding:5px 6px; }
#settlements #settlement-sheet-table .settlement-batch-heading { margin-bottom:5px; }
#settlements #settlement-sheet-table .settlement-batch-heading:last-child { margin-bottom:0; }
#settlements #settlement-sheet-table .settlement-batch-panel { padding:5px 7px; gap:3px 12px; border-radius:6px; }
#settlements .settlement-batch-title { gap:6px; font-size:12px; }
#settlements .settlement-batch-title .settlement-batch-toggle { height:28px; min-height:28px; padding:3px 6px; font-size:13px; line-height:20px; }
#settlements .settlement-farmer-details { gap:3px 12px; margin:0; font-size:12px; line-height:1.35; }
#settlements .settlement-farmer-details > div { gap:5px; }
#settlements .settlement-farmer-details + .settlement-farmer-details { margin-top:4px; padding-top:4px; }
#settlements .settlement-task-grid { gap:6px; padding-top:5px; }
#settlements #settlement-sheet-table .settlement-task-card { padding:6px 8px; gap:3px; }
#settlements .settlement-card-header { gap:6px; }
#settlements .settlement-card-vehicle { gap:2px 7px; }
#settlements .settlement-card-vehicle > strong { font-size:15px; }
#settlements .settlement-card-vehicle > span { font-size:12px; }
#settlements .settlement-card-entry { gap:7px; }
#settlements .settlement-card-entry .settlement-inline-quantity-fields { gap:6px; }
#settlements .settlement-card-footer { gap:6px; padding-top:4px; }
@media (min-width:1100px) {
  #settlements #settlement-sheet-table .settlement-batch-panel { grid-template-columns:minmax(235px,auto) minmax(0,1fr); }
  #settlements .settlement-farmer-details { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr); }
}

/* 展开车辆结算卡：录入与确认并排，减少独立底栏占用。 */
@media (min-width:1100px) {
  #settlements #settlement-sheet-table .settlement-task-card { display:grid; grid-template-columns:minmax(0,1fr) 108px; align-items:start; gap:5px 10px; padding:7px 9px; }
  #settlements .settlement-task-card .settlement-card-header { grid-column:1/-1; gap:8px; }
  #settlements .settlement-task-card .settlement-card-identity { gap:0; }
  #settlements .settlement-task-card .settlement-card-vehicle { gap:3px 7px; }
  #settlements .settlement-task-card .settlement-card-vehicle > strong { font-size:14px; }
  #settlements .settlement-task-card .settlement-card-return { font-size:11px; gap:2px 5px; }
  #settlements .settlement-task-card .settlement-card-return strong { font-size:15px; }
  #settlements .settlement-task-card .settlement-card-entry { grid-column:1; grid-row:2; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:6px; }
  #settlements .settlement-task-card .settlement-inline-quantity-fields { gap:6px; }
  #settlements .settlement-task-card .settlement-inline-quantity-fields label, #settlements .settlement-task-card .settlement-card-field-label { font-size:12px; gap:3px; }
  #settlements .settlement-task-card .settlement-card-fee { gap:3px; }
  #settlements .settlement-task-card .settlement-card-entry input { height:30px; min-height:30px; padding:4px 5px; font-size:13px; }
  #settlements .settlement-task-card .settlement-card-footer { grid-column:2; grid-row:2; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-end; gap:4px; align-self:stretch; padding:0; border:0; }
  #settlements .settlement-task-card .settlement-card-facts { font-size:11px; line-height:1.25; text-align:right; }
  #settlements .settlement-task-card .settlement-card-footer-actions { gap:0; }
  #settlements .settlement-task-card .settlement-inline-actions { flex-wrap:wrap; justify-content:flex-end; gap:3px; min-height:28px; }
  #settlements .settlement-task-card .settlement-inline-actions button { height:28px; min-height:28px; padding:3px 8px; font-size:12px; }
  #settlements .settlement-task-card .settlement-inline-actions [role="status"] { flex-basis:100%; max-width:none; overflow-wrap:anywhere; }
  #settlements .settlement-task-card .settlement-inline-review { grid-column:1/-1; grid-row:3; }
}

/* 车辆工作台左侧统一为今日待办。 */
#dashboard .dashboard-primary-column > .dashboard-priority-panel { flex:1; min-height:420px; }
#dashboard .dashboard-priority-panel .dashboard-empty { min-height:240px; }
@media (max-width:760px) { #dashboard .dashboard-primary-column > .dashboard-priority-panel { min-height:280px; } #dashboard .dashboard-priority-panel .dashboard-empty { min-height:160px; } }

/* 桌面车辆结算三列：保留完整输入与归档操作。 */
@media (min-width:1280px) {
  #settlements .settlement-task-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
  #settlements #settlement-sheet-table .settlement-task-card { grid-template-columns:minmax(0,1fr) 86px; gap:3px 6px; padding:5px 6px; }
  #settlements .settlement-task-card .settlement-card-header { gap:5px; }
  #settlements .settlement-task-card .settlement-card-vehicle { gap:2px 5px; }
  #settlements .settlement-task-card .settlement-card-vehicle > strong { font-size:13px; }
  #settlements .settlement-task-card .settlement-card-vehicle > span { font-size:11px; }
  #settlements .settlement-task-card .settlement-card-return { gap:2px 3px; font-size:10px; }
  #settlements .settlement-task-card .settlement-card-return strong { font-size:13px; }
  #settlements .settlement-task-card .settlement-card-entry, #settlements .settlement-task-card .settlement-inline-quantity-fields { gap:4px; }
  #settlements .settlement-task-card .settlement-inline-quantity-fields label, #settlements .settlement-task-card .settlement-card-field-label { font-size:11px; gap:2px; }
  #settlements .settlement-task-card .settlement-card-entry input { height:28px; min-height:28px; padding:3px 4px; font-size:12px; }
  #settlements .settlement-task-card .settlement-card-footer { gap:3px; }
  #settlements .settlement-task-card .settlement-inline-actions button { height:26px; min-height:26px; padding:2px 6px; font-size:12px; }
}

/* 车辆结算录入行：四个等宽控件统一底边与间距。 */
@media (min-width:1100px) {
  #settlements #settlement-sheet-table .settlement-task-card { grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:4px; }
  #settlements .settlement-task-card .settlement-card-entry { grid-column:1/span 3; align-self:end; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
  #settlements .settlement-task-card .settlement-inline-quantities, #settlements .settlement-task-card .settlement-inline-quantity-fields { display:contents; }
  #settlements .settlement-task-card .settlement-inline-quantity-fields label, #settlements .settlement-task-card .settlement-card-fee { display:grid; gap:3px; min-width:0; align-self:end; }
  #settlements .settlement-task-card .settlement-inline-quantity-fields label > span, #settlements .settlement-task-card .settlement-card-field-label { min-height:14px; line-height:14px; }
  #settlements #settlement-sheet-table .settlement-task-card .settlement-card-entry input { box-sizing:border-box; width:100%; height:28px; min-height:28px; margin:0; padding:3px 4px; }
  #settlements .settlement-task-card .settlement-card-footer { grid-column:4; gap:3px; }
  #settlements .settlement-task-card .settlement-card-footer-actions, #settlements .settlement-task-card .settlement-inline-actions { width:100%; }
  #settlements .settlement-task-card .settlement-inline-actions { min-height:28px; gap:3px; }
  #settlements .settlement-task-card .settlement-inline-actions button { box-sizing:border-box; width:100%; height:28px; min-height:28px; margin:0; padding:3px 4px; line-height:20px; }
}

/* 计划数量回归卡片顶部，录入行上方不再为数量摘要留空。 */
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts { white-space:nowrap; font-size:10px; line-height:1.2; text-align:right; }
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts strong { font-size:11px; font-weight:600; }
@media (min-width:1100px) {
  #settlements #settlement-sheet-table .settlement-task-card { padding-top:3px; row-gap:2px; }
  #settlements .settlement-task-card .settlement-card-header { grid-template-columns:minmax(0,1fr) auto auto; gap:4px; align-items:center; }
  #settlements .settlement-task-card .settlement-card-vehicle { flex-wrap:nowrap; }
  #settlements .settlement-task-card .settlement-card-vehicle > strong { flex-shrink:0; }
  #settlements .settlement-task-card .settlement-card-vehicle > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #settlements .settlement-task-card .settlement-card-return { white-space:nowrap; }
}
@media (max-width:1099px) {
  #settlements .settlement-task-card .settlement-card-return { grid-column:1/-1; justify-self:end; }
}

/* 资源管理：司机和业务员共用轻量请假工作区。 */
#carriers > .panel { border-radius:18px; padding:20px; }
#carriers .driver-status-card { padding:0; border:0; border-radius:0; background:transparent; }
#carriers .leave-workspace-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex:0 0 auto; }
#carriers .leave-workspace-head h2 { margin:0; font-size:18px; color:var(--navy); }
#carriers .leave-workspace-head p { margin:5px 0 0; color:var(--muted); font-size:12px; }
#carriers .carrier-management-switcher { flex:0 1 340px; margin:0; padding:4px; gap:4px; border:1px solid #e5eeee; border-radius:11px; background:#f1f7f7; }
#carriers .carrier-management-switcher .carrier-management-tab { min-height:36px; padding:7px 14px; border:0; border-radius:8px; font-size:13px; color:#6c818a; background:transparent; box-shadow:none; }
#carriers .carrier-management-switcher .carrier-management-tab.active { color:var(--teal); background:#fff; box-shadow:0 2px 6px #173b4210; }
#carriers .leave-management-toolbar { padding:12px; margin-bottom:14px; border:1px solid #edf2f3; border-radius:12px; background:#f8fafb; gap:10px; }
#carriers .leave-management-toolbar > label { flex-basis:150px; font-size:12px; }
#carriers .leave-management-toolbar .driver-status-search { flex:1 1 260px; }
#carriers .leave-management-toolbar .driver-status-search label { gap:4px; font-size:12px; }
#carriers .leave-management-toolbar input, #carriers .leave-management-toolbar select, #carriers .leave-management-toolbar button { height:36px; min-height:36px; border-radius:8px; background:#fff; }
#carriers .leave-management-toolbar button { padding-inline:12px; font-size:12px; white-space:nowrap; }
#carriers .carrier-leave-table .leave-identity-col { width:22%; }
#carriers .carrier-leave-table .leave-status-col { width:12%; }
#carriers .carrier-leave-table .leave-setting-col { width:16%; }
#carriers .carrier-leave-table .leave-dates-col { width:38%; }
#carriers .carrier-leave-table .leave-action-col { width:12%; }
#carriers .carrier-leave-table th { padding:10px 12px; background:#f4f8f8; color:#738791; font-size:12px; font-weight:600; border-bottom:1px solid #e5eeee; }
#carriers .carrier-leave-table td { padding:9px 12px; border-bottom:1px solid #edf2f3; font-size:13px; background:#fff; }
#carriers .carrier-leave-table tbody tr:hover td { background:#f8fcfb; }
#carriers .carrier-leave-table strong { font-size:14px; }
#carriers .carrier-leave-driver { margin-top:4px; font-size:12px; }
#carriers .carrier-leave-table .carrier-leave-save { max-width:92px; border-radius:8px; box-shadow:none; }
#carriers .carrier-leave-table .carrier-leave-save:not(:disabled) { background:#fff; border:1px solid #b9d9d7; color:var(--teal); }
#carriers .carrier-leave-table .carrier-leave-save:not(:disabled):hover { background:#eaf7f3; border-color:var(--teal); }
#carriers .driver-status-pagination { padding-top:12px; margin-top:10px; border-top:1px solid #edf2f3; justify-content:flex-end; gap:8px; }
#carriers .driver-status-pagination .carrier-page-size { margin-right:auto; }
#carriers .driver-status-pagination button, #carriers .driver-status-pagination select { min-height:34px; border-radius:8px; font-size:12px; }
#carriers .driver-status-pagination .page-info { font-size:12px; }
@media(max-width:800px) {
 #carriers > .panel { padding:14px; }
 #carriers .leave-workspace-head { align-items:stretch; flex-direction:column; gap:12px; }
 #carriers .carrier-management-switcher { flex:0 0 auto; width:100%; }
 #carriers .leave-management-toolbar > label { flex:1 1 120px; }
 #carriers .leave-management-toolbar .driver-status-search { flex-basis:100%; }
 #carriers .carrier-leave-table td { padding:0; background:transparent; border:0; }
 #carriers .carrier-leave-table tbody tr:hover td { background:transparent; }
 #carriers .carrier-leave-table .carrier-leave-row { padding:14px; margin-bottom:10px; border-radius:12px; }
 #carriers .carrier-leave-table .carrier-leave-save { max-width:none; }
 #carriers .driver-status-pagination { justify-content:center; }
 #carriers .driver-status-pagination .carrier-page-size { margin-right:0; }
}

/* Daily demand unlock and immutable version history. */
.dispatch-demand-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.daily-demand-dialog{width:min(560px,calc(100% - 24px));max-height:85vh;border:1px solid var(--line);border-radius:14px;padding:22px;background:var(--white);color:var(--ink)}
.daily-demand-history-dialog{width:min(850px,calc(100% - 24px))}
.daily-demand-dialog::backdrop{background:rgb(15 35 45 / 40%)}
.daily-demand-dialog textarea{width:100%;box-sizing:border-box;margin-top:6px;resize:vertical}
.daily-demand-dialog-actions{display:flex;justify-content:flex-end;margin-top:16px}
#daily-demand-unlock-error{color:#b42318}
.daily-demand-version{padding:14px 0;border-bottom:1px solid var(--line)}
.daily-demand-version h3,.daily-demand-version p{margin:6px 0}
.daily-demand-changes{background:var(--bg);padding:8px 12px;border-radius:8px;margin:10px 0}
.daily-demand-snapshot{padding:8px 0}
.daily-demand-snapshot dl>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr);gap:12px;padding:4px 0}
.daily-demand-snapshot dd{margin:0;overflow-wrap:anywhere}
@media(max-width:640px){.dispatch-demand-actions{justify-content:flex-start}.daily-demand-dialog{padding:16px}.daily-demand-snapshot dl>div{grid-template-columns:1fr}.daily-demand-snapshot dd{padding-left:8px}}
/* 车辆信息行统一字号、行高、基线与字段间距。 */
#settlements .settlement-task-card .settlement-card-header { column-gap:4px; }
#settlements .settlement-task-card .settlement-card-header .settlement-card-vehicle,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-return { display:flex; align-items:baseline; gap:4px; margin:0; padding:0; line-height:16px; font-size:12px; font-variant-numeric:tabular-nums; }
#settlements .settlement-task-card .settlement-card-header .settlement-card-vehicle > strong,
#settlements .settlement-task-card .settlement-card-header .settlement-card-vehicle > span,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts strong,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-return strong,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-return > span { font-size:12px; line-height:16px; }
#settlements .settlement-task-card .settlement-card-header strong { font-weight:600; }
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts { color:#627782; }
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts strong { color:var(--navy); }

#tasks .dispatch-all-demands-table .daily-demand-edit{padding:3px 5px;font-size:11px;white-space:nowrap;margin-top:3px}

/* Keep both attendance filter bars aligned. */
#carriers #carrier-status-toolbar { display:grid; grid-template-columns:150px minmax(180px,1fr) 150px auto; align-items:end; }
#carriers #carrier-status-toolbar[hidden] { display:none; }
#carriers #carrier-status-toolbar > label, #carriers #carrier-status-toolbar .driver-status-search { min-width:0; width:auto; }
@media(max-width:1250px) {
 #carriers #carrier-status-toolbar { grid-template-columns:150px minmax(140px,1fr) 150px auto; }
}
@media(max-width:800px) {
 #carriers #carrier-status-toolbar { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 #carriers #carrier-status-toolbar .driver-status-search { grid-column:1 / -1; grid-row:2; }
 #carriers #leave-view-status-control { grid-column:2; grid-row:1; }
 #carriers #carrier-status-toolbar > button { width:100%; }
}
#tasks .dispatch-all-demands-table .daily-demand-edit{padding:3px 5px;font-size:11px;white-space:nowrap;margin:0}

/* Reserve a rightmost action column while keeping pickup addresses compact. */
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(2){width:15%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(4){width:13%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(8){width:10%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(9){width:8%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(12){width:5%}
#tasks .dispatch-all-demands-table .daily-demand-action-cell{white-space:nowrap;text-align:center}

/* Fit the expanded demand form on a desktop screen without hiding fields. */
@media (min-width:1101px) {
 #app-shell #demands .demand-workspace { padding:16px 20px; }
 #demands .demand-template-head { min-height:34px; margin-bottom:10px; }
 #demands .demand-template-menu > summary { min-height:34px; padding:6px 12px; }
 #demands .demand-basic-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 16px; padding-bottom:10px; }
 #demands .demand-basic-grid > label, #demands .demand-contact-field, #demands .demand-vehicle-match-control, #demands .catching-team-field, #demands .demand-catching-controls label, #demands .demand-location-field, #demands .demand-business-card > label { gap:4px; font-size:13px; }
 #demands .demand-field-caption, #demands .demand-contact-field > label, #demands .catching-team-field > span, #demands .demand-location-field > label, #demands .demand-shift-control legend { font-size:13px; }
 #demands .demand-shift-control legend { margin-bottom:4px; }
 #demands .demand-basic-grid input:not([type=checkbox]):not([type=radio]):not([type=hidden]), #demands .demand-basic-grid select, #demands #demand-catching-team-dropdown > summary, #demands .demand-shift-options label, #demands .demand-location-row > button { height:34px; min-height:34px; padding:6px 9px; font-size:13px; }
 #demands .demand-vehicle-length-options { min-height:34px; gap:5px; }
 #demands .demand-vehicle-length-option { min-height:34px; padding:5px 7px; font-size:13px; }
 #demands .demand-optional-fields { margin-top:0; }
 #demands .demand-optional-fields > .demand-optional-title { padding:8px 12px; font-size:13px; }
 #demands .demand-business-card { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 14px; padding:0 12px 12px; }
 #demands #demand-first-farm-entry-field { grid-column:span 2; }
 #demands #demand-first-farm-entry-field small { font-size:11px; line-height:16px; }
 #demands .demand-form-actions { padding-top:10px; gap:8px; }
 #demands .demand-form-actions button { height:34px; min-height:34px; padding:6px 16px; font-size:13px; }
}

/* Keep demand edit and delete adjacent in the final action column. */
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(2){width:14%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(4){width:12%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(8){width:9%}
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(12){width:8%}
#tasks .daily-demand-row-actions{display:flex;justify-content:center;align-items:center;gap:4px}
#tasks .daily-demand-row-actions button{padding:3px 5px;margin:0;font-size:11px;white-space:nowrap;min-width:0}
/* Stable last row for the first vehicle entry rule, including its disabled time. */
#demands .demand-farm-entry-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 14px}
#demands .demand-farm-entry-row > label{min-width:0;gap:4px;font-size:13px}
#demands .demand-farm-entry-row #demand-first-farm-entry-field{grid-column:auto}
#demands #demand-first-farm-entry-time:disabled, #demands #demand-salesperson-count:disabled{background:#f1f4f5;color:var(--muted);cursor:not-allowed}
@media(max-width:640px){#demands .demand-farm-entry-row{grid-template-columns:minmax(0,1fr)}}

.teaching-entry {display:flex;align-items:center;justify-content:space-between;gap:16px;}
.teaching-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.teaching-card {border:1px solid #dce5e9;border-radius:12px;padding:18px;min-width:0;}
.teaching-card h3 {margin:0 0 16px;color:var(--teal);}.teaching-card h4 {margin:12px 0 8px;font-size:14px;}.teaching-card ol {padding-left:20px;margin:0;font-size:14px;line-height:1.8;}.teaching-card li+li {margin-top:8px;}.teaching-video {margin-top:16px;border-top:1px solid #e7eff2;}.teaching-video p {font-size:13px;}
@media(max-width:1200px){.teaching-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.teaching-grid{grid-template-columns:1fr;}.teaching-entry{align-items:stretch;flex-direction:column;}}

.preview-center-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.preview-center-entries .panel{margin:0;}.center-preview-notice{padding:12px 16px;border-radius:10px;background:#fff7e7;color:#896222;font-size:13px;}.center-preview-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0;}.center-preview-tabs .active{background:var(--teal);color:white;}.center-preview-panel [hidden]{display:none!important;}.center-preview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0;}.center-preview-stats>div{border:1px solid #dce5e9;padding:16px;border-radius:10px;}.center-preview-stats span{display:block;font-size:13px;color:#71808a;}.center-preview-stats strong{display:block;font-size:25px;margin-top:8px;}.center-preview-flow{padding:12px;background:#eff8f8;line-height:1.8;border-radius:8px;}.center-preview-search{display:block;max-width:480px;margin:14px 0;}.crm-preview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}.crm-preview-cards article{padding:16px;border:1px solid #dce5e9;border-radius:10px;min-width:0;}.crm-preview-cards h3{font-size:16px;margin:0;}.crm-preview-cards p,.crm-preview-cards dl{font-size:13px;line-height:1.8;}.crm-preview-cards summary{cursor:pointer;color:var(--teal);}.crm-preview-cards dd{margin:0 0 8px;}.center-preview-panel table{width:100%;}.center-preview-panel .table-scroll{overflow:auto;}
@media(max-width:1100px){.crm-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr));}}@media(max-width:640px){.preview-center-entries,.crm-preview-cards{grid-template-columns:1fr;}.center-preview-stats{gap:6px;}.center-preview-stats>div{padding:10px;}.center-preview-stats strong{font-size:20px;}}

.center-preview-tabs .secondary:not(.active){background:#fff;color:#123047;border-color:#dce5e9;}

/* The dispatch sheet toolbar exposes only manual addition; generation stays on daily demands. */
#tasks .dispatch-workflow-row,#tasks #dispatch-list-generate,#tasks #dispatch-list-regenerate,#tasks #dispatch-list-delete {display:none!important;}

/* Dispatch details: grouped facts instead of twelve oversized equal cards. */
#dispatch-item-detail-dialog {width:min(1100px,calc(100vw - 32px));}
#dispatch-item-detail-dialog .sheet-detail-body {padding:14px 18px 0;}
#dispatch-item-detail-dialog .dispatch-detail-section {margin:0 0 14px;border:1px solid #dce7e9;border-radius:10px;overflow:hidden;}
#dispatch-item-detail-dialog .dispatch-detail-section h3 {margin:0;padding:9px 12px;background:#f1f8f8;color:#254757;font-size:14px;font-weight:650;line-height:1.4;}
#dispatch-item-detail-dialog .sheet-detail-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:start;}
#dispatch-item-detail-dialog .sheet-detail-field {padding:10px 12px;border:0;border-radius:0;line-height:1.5;}
#dispatch-item-detail-dialog .sheet-detail-field-wide {grid-column:span 2;}
#dispatch-item-detail-dialog .sheet-detail-label {margin:0 0 4px;font-size:12px;font-weight:500;}
#dispatch-item-detail-dialog .sheet-detail-value {font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
#dispatch-item-detail-dialog .dispatch-contact-lines {display:block;margin:0;line-height:1.5;}
#dispatch-item-detail-dialog .manual-dispatch-control {margin-top:6px;}
#dispatch-item-detail-dialog .sheet-detail-actions {position:sticky;bottom:0;z-index:3;margin:0;padding:12px 0;background:#fff;}
#dispatch-item-detail-dialog .dispatch-row-actions {justify-content:flex-end;gap:8px;}
@media(max-width:900px){#dispatch-item-detail-dialog .sheet-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){#dispatch-item-detail-dialog{width:calc(100vw - 16px);}#dispatch-item-detail-dialog .sheet-detail-body{padding:10px 10px 0;}#dispatch-item-detail-dialog .sheet-detail-grid{grid-template-columns:1fr;}#dispatch-item-detail-dialog .sheet-detail-field-wide{grid-column:auto;}#dispatch-item-detail-dialog .sheet-detail-field{padding:8px 10px;}}

/* Transport sidebar: separate controls, compact metrics and a scrollable task list. */
.gps-monitor-task-selector {gap:10px;padding:14px;}
.gps-monitor-task-selector > .panel-head {align-items:center;margin:0 0 2px;}
.gps-monitor-task-selector .panel-head h2 {font-size:17px;line-height:1.4;margin:0;}
.gps-monitor-task-selector .transport-batch-filter-label {margin:0;font-size:12px;color:#627782;font-weight:500;}
.gps-monitor-task-selector #transport-batch-filter,.gps-monitor-task-selector #transport-task-search {flex:0 0 auto;width:100%;min-width:0;height:38px;min-height:38px;margin:0;padding:8px 10px;font-size:13px;}
.gps-monitor-task-selector #transport-task-search-summary {margin:0;line-height:1.4;flex:0 0 auto;}
.transport-task-metrics {display:flex;flex-wrap:wrap;gap:6px;}
.transport-task-metrics > span {padding:5px 7px;border-radius:6px;background:#f1f6f7;color:#627782;font-size:11px;white-space:nowrap;}
.transport-task-metrics > span:nth-child(-n+2) {color:#17475b;background:#eaf5f5;font-weight:650;}
.transport-summary-scope {display:block;margin-bottom:6px;color:#147d83;font-size:12px;}
.gps-monitor-task-selector .transport-last-position-toggle {display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin:0;padding:10px 0;border-top:1px solid #edf1f3;border-bottom:1px solid #edf1f3;flex:0 0 auto;}
.gps-monitor-task-selector .transport-last-position-toggle input {flex:0 0 16px;}
.gps-monitor-task-selector .transport-last-position-toggle span {font-size:12px;font-weight:500;line-height:1.5;}
.gps-monitor-task-selector .transport-last-position-toggle small {display:block;font-size:11px;font-weight:400;color:#7a8c96;}
.gps-monitor-task-selector .transport-task-card-list {gap:8px;align-content:start;}
.gps-monitor-task-selector .transport-task-empty {padding:24px 8px;text-align:center;color:#7a8c96;line-height:1.6;}
.transport-task-empty > span {display:grid;place-items:center;width:36px;height:36px;margin:0 auto 10px;border-radius:50%;background:#f1f7f8;color:#70a2a5;font-size:24px;}
.transport-task-empty strong {display:block;font-size:14px;color:#50677e;font-weight:600;}.transport-task-empty p {margin:6px 0 0;font-size:12px;}
.gps-monitor-task-selector .transport-batch-heading {padding:6px 8px;}.gps-monitor-task-selector .transport-task-card-summary {padding:8px;gap:4px 8px;}
.gps-monitor-task-selector > .panel-head {justify-content:space-between;text-align:left;}
.gps-monitor-task-selector > .panel-head h2 {flex:1;text-align:left;}
.gps-monitor-task-selector .transport-batch-group {padding:8px;}
.gps-monitor-task-selector .transport-batch-heading {padding:0 0 6px;}
.gps-monitor-task-selector .transport-batch-heading h3 {margin:0;font-size:13px;line-height:1.5;}
.gps-monitor-task-selector .transport-batch-title {min-height:28px;padding:0 4px;font-size:13px;}
.gps-monitor-task-selector .transport-task-card-summary {display:grid;grid-template-columns:minmax(0,1fr) auto;text-align:left;}
.gps-monitor-task-selector .transport-task-dot-label {font-size:13px;}
.gps-monitor-task-selector .transport-task-row-status {font-size:12px;}
.gps-monitor-task-selector .transport-gps-time {grid-column:1/-1;}

.configuration-entry-actions{display:flex;gap:8px;flex-wrap:wrap;}.agent-management-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0;}.agent-management-metrics>div:not(.agent-management-version-summary){padding:16px;border:1px solid #dce7e9;border-radius:10px;}.agent-management-metrics span{display:block;font-size:12px;color:#71808a;}.agent-management-metrics strong{display:block;font-size:20px;margin-top:8px;overflow-wrap:anywhere;}.agent-management-version-summary{grid-column:1/-1;color:#71808a;font-size:13px;}.agent-management-card{padding:20px;border:1px solid #dce7e9;border-radius:12px;}.agent-management-card h3{display:inline-block;margin:0 0 0 10px;}.agent-management-icon{display:inline-grid;place-items:center;width:38px;height:38px;background:#eaf5f5;color:#147d83;border-radius:10px;font-weight:bold;}.agent-management-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0;}.agent-management-card dt{color:#71808a;font-size:12px;margin-bottom:6px;}.agent-management-card dd{margin:0;font-size:14px;line-height:1.6;}.skill-management-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin:16px 0;}.skill-management-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr);gap:16px;align-items:start;}.skill-management-layout:has(.skill-management-detail[hidden]){grid-template-columns:1fr;}.skill-management-list{display:grid;gap:8px;}.agent-admin-skill-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;text-align:left;border:1px solid #dce7e9;border-radius:8px;background:#fff;}.agent-admin-skill-row.active{border-color:#147d83;background:#f1f9f9;}.agent-admin-skill-row small{display:block;font-size:12px;color:#71808a;margin-top:5px;}.agent-admin-status{font-size:12px;white-space:nowrap;font-style:normal;color:#147d83;}.skill-management-detail{padding:16px;border:1px solid #dce7e9;border-radius:10px;min-width:0;}.agent-admin-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start;}.agent-admin-detail-head h3{margin:0;font-size:16px;overflow-wrap:anywhere;}.agent-admin-detail-head p{font-size:12px;color:#71808a;}.skill-management-detail pre{max-height:300px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f8fa;padding:12px;font-size:12px;}.agent-admin-action-form{display:flex;align-items:end;gap:8px;margin-top:16px;flex-wrap:wrap;}.agent-admin-action-form label{flex:1;min-width:160px;}.agent-management-panel [hidden]{display:none!important;}
@media(max-width:900px){.skill-management-layout{grid-template-columns:1fr;}.agent-management-card dl{grid-template-columns:1fr;}}@media(max-width:640px){.agent-management-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.skill-management-toolbar{grid-template-columns:1fr;}.configuration-entry-actions{flex-direction:column;}.agent-management-card{padding:14px;}}

/* One consistent directory for all business, learning and configuration entries. */
#platform-home .platform-home-workspace{max-width:1600px;gap:16px;}
#platform-home .platform-home-hero{padding:24px 28px;min-height:0;}
#platform-home .platform-home-hero h2{font-size:28px;}
#platform-home .platform-center-panel{flex:0 0 auto;padding:22px;}
#platform-home .platform-center-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch;}
#platform-home .platform-directory-card{padding:18px;gap:12px;min-height:254px;border:1px solid #dce9e8;border-radius:14px;background:linear-gradient(145deg,#fff,#fbfdfd);box-shadow:none;}
#platform-home .platform-directory-card .platform-center-icon{width:42px;height:42px;font-size:21px;border-radius:12px;flex:0 0 42px;}
#platform-home .platform-directory-card h3{font-size:18px;line-height:1.4;}
#platform-home .platform-directory-card p{font-size:12px;line-height:1.7;min-height:40px;}
#platform-home .platform-directory-card .platform-center-features{gap:5px;}
#platform-home .platform-directory-card .platform-center-features span{font-size:10px;padding:4px 6px;}
#platform-home .platform-directory-button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:38px;margin-top:auto;font-size:13px;}
#platform-home .platform-directory-card .platform-center-access{font-size:10px;padding:4px 8px;}
#platform-home .platform-center-access.is-preview{background:#fff4df;color:#9b6c23;}
#platform-home .tone-blue .platform-center-icon{background:#edf3ff;color:#4c76bb;}#platform-home .tone-orange .platform-center-icon{background:#fff3e8;color:#b58045;}#platform-home .tone-purple .platform-center-icon{background:#f0edff;color:#8270b5;}#platform-home .tone-slate .platform-center-icon{background:#edf1f4;color:#62798b;}
@media(max-width:1250px){#platform-home .platform-center-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:920px){#platform-home .platform-center-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){#platform-home .platform-center-grid{grid-template-columns:1fr;}#platform-home .platform-center-panel{padding:14px;}#platform-home .platform-home-hero{padding:20px;}#platform-home .platform-home-hero h2{font-size:23px;}}

.gps-monitor-task-selector #transport-clear-selection {align-self:flex-start;}

#task-history .task-history-col-time{width:160px;}#task-history .task-history-col-location{width:210px;}#task-history .task-history-col-driver{width:160px;}#task-history .task-history-col-quantity{width:180px;}#task-history .task-history-col-freight{width:110px;}#task-history .task-history-freight{font-variant-numeric:tabular-nums;white-space:nowrap;}

.transport-date-toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin-bottom:14px; }
.transport-date-toolbar label { display:grid; gap:6px; color:var(--muted); }
.transport-date-toolbar input { width:190px; }
.transport-date-toolbar > .muted { align-self:center; margin-left:auto; font-size:12px; }
@media(max-width:640px) { .transport-date-toolbar label { flex:1; }.transport-date-toolbar input { width:100%; }.transport-date-toolbar > .muted { width:100%; margin-left:0; } }
#app-sidebar [data-center-nav][hidden] { display:none !important; }

#employee-account-permission-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
.permission-module-note,[data-permission-module-group="vehicle"] { grid-column:1/-1; }
.permission-module-note { margin:0; font-size:13px; color:var(--muted); }
.permission-module-label { display:flex; flex-direction:row; align-items:center; gap:10px; cursor:pointer; }
.permission-module-label input[type="checkbox"] { width:17px; height:17px; margin:0; flex:0 0 17px; }
.permission-group p.muted { font-size:12px; margin:9px 0 0; line-height:1.6; }
.permission-module-restricted { background:#f7f9fa; }
.permission-role-badge { font-size:11px; color:var(--muted); background:#eef2f4; padding:3px 8px; border-radius:12px; white-space:nowrap; }
[data-permission-module-group="vehicle"] .permission-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:900px) { [data-permission-module-group="vehicle"] .permission-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { #employee-account-permission-groups,[data-permission-module-group="vehicle"] .permission-grid { grid-template-columns:1fr; } }
.teaching-module-tabs { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:18px; }
#teaching-center .teaching-module-tab[aria-selected="true"] { background:var(--teal); border-color:var(--teal); color:#fff; }
.teaching-module-panel[hidden] { display:none !important; }
.teaching-module-heading { margin-bottom:16px; }
.teaching-module-heading h3 { margin:0 0 6px; color:var(--navy); font-size:18px; }
.teaching-module-heading p { margin:0; font-size:13px; line-height:1.6; }
@media(max-width:640px) { .teaching-module-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.teaching-module-tab { min-width:0; padding:10px 8px; font-size:12px; } }

.teaching-upload-library { margin:0 0 22px; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fbfefe; }
.teaching-library-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }.teaching-library-head h3 { margin:0; font-size:16px; }
.teaching-materials-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.teaching-material-card { display:flex; flex-direction:column; gap:10px; border:1px solid var(--line); border-radius:10px; padding:14px; min-width:0; background:#fff; }.teaching-material-card h4 { margin:0; overflow-wrap:anywhere; }.teaching-material-card>.secondary { margin-top:auto; align-self:start; }.teaching-material-card>.muted { font-size:12px; overflow-wrap:anywhere; }.teaching-material-kind { color:var(--teal); font-size:12px; }.teaching-material-description { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.7; margin:0; }.teaching-material-empty { margin:0; font-size:13px; }
.teaching-upload-dialog,.teaching-viewer-dialog { width:min(760px,calc(100vw - 32px)); max-height:88vh; box-sizing:border-box; overflow:auto; border:1px solid var(--line); border-radius:14px; padding:22px; color:var(--ink); }.teaching-upload-dialog::backdrop,.teaching-viewer-dialog::backdrop { background:#12304770; }.teaching-upload-dialog h3,.teaching-viewer-dialog h3 { margin:0; }.teaching-upload-dialog form { display:grid; gap:14px; }.teaching-upload-dialog form>label { display:grid; gap:6px; }.teaching-upload-dialog p { font-size:12px; }.teaching-upload-actions { display:flex; justify-content:end; gap:8px; }.teaching-upload-dialog progress { width:100%; accent-color:var(--teal); }#teaching-viewer-body { display:grid; gap:14px; }#teaching-viewer-body img { max-width:100%; height:auto; justify-self:center; }#teaching-viewer-body video { width:100%; max-height:60vh; background:#123047; }#teaching-viewer-body iframe { width:100%; height:60vh; border:0; }#teaching-viewer-body>a { justify-self:start; }
@media(max-width:900px) { .teaching-materials-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .teaching-materials-list { grid-template-columns:1fr; }.teaching-upload-dialog,.teaching-viewer-dialog { padding:16px; } }
/* Shared template search and compact selectable cards. */
#demands .demand-template-menu .demand-template-toolbar { width:540px; max-width:calc(100vw - 64px); gap:10px; }
#demands .demand-template-select-label input { width:100%; min-width:0; }
#demands .demand-template-cards { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:300px; overflow-y:auto; padding:2px; }
#demands .demand-template-card { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:12px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--navy); text-align:left; white-space:normal; }
#demands .demand-template-card strong, #demands .demand-template-card span, #demands .demand-template-card small { overflow-wrap:anywhere; }
#demands .demand-template-card span { color:var(--muted); font-size:12px; line-height:1.5; }
#demands .demand-template-card small { color:var(--muted); font-size:12px; }
#demands .demand-template-card:hover, #demands .demand-template-card[aria-pressed="true"] { border-color:var(--teal); background:#edf9f8; }
#demands .demand-template-card:focus-visible { outline:2px solid var(--teal); outline-offset:1px; }
#demands .demand-template-empty { grid-column:1/-1; margin:0; padding:20px 8px; color:var(--muted); text-align:center; }
@media(max-width:640px) { #demands .demand-template-cards { grid-template-columns:1fr; max-height:260px; } }
@media(max-width:640px) {
 #demands .demand-template-menu { width:100%; }
 #demands .demand-template-menu > summary { width:fit-content; margin-left:auto; }
 #demands .demand-template-menu .demand-template-toolbar { width:100%; max-width:100%; box-sizing:border-box; }
}

.teaching-file-field { display:grid; gap:8px; }
.teaching-file-dropzone { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:12px; border:2px dashed #bdd9dc; border-radius:10px; background:#f7fcfc; padding:20px; }
.teaching-file-dropzone.is-dragover { border-color:var(--teal); background:#e9f8f6; }
#teaching-upload-filename { flex:1 1 160px; min-width:0; overflow-wrap:anywhere; font-size:13px; color:var(--muted); }
.teaching-file-native { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Teaching guides and uploaded materials must remain reachable in the fixed workspace. */
#app-shell #teaching-center > .teaching-panel { overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; }
#app-shell #teaching-center > .teaching-panel > * { flex-shrink:0; }
#jt808 .gps-readiness-metric { min-width:0; }
#jt808 .gps-readiness-metric strong { overflow-wrap:anywhere; }

.personal-avatar { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; flex:0 0 28px; border-radius:50%; overflow:hidden; background:#e1f3f1; color:var(--teal); font-weight:700; }
.personal-avatar img { width:100%; height:100%; object-fit:cover; }
.personal-avatar.large { width:80px; height:80px; flex-basis:80px; font-size:30px; }
.personal-settings-dialog { width:min(570px,calc(100vw - 28px)); max-height:90dvh; overflow:auto; padding:24px; border:1px solid var(--line); border-radius:14px; color:var(--ink); }
.personal-settings-dialog::backdrop { background:#12304770; }
.personal-settings-dialog .panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.personal-settings-dialog h2 { margin:0; font-size:21px; }
.personal-settings-dialog form { display:grid; gap:16px; }
.personal-settings-dialog label { display:grid; gap:6px; min-width:0; }
.personal-settings-dialog input { min-width:0; max-width:100%; }
.personal-settings-dialog input[readonly] { background:#f3f6f7; color:var(--muted); }
.personal-avatar-editor { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.personal-avatar-editor p { font-size:12px; margin:8px 0 0; }
.personal-settings-actions { display:flex; justify-content:end; gap:10px; }
@media(max-width:600px) { .personal-settings-dialog { padding:18px; }.personal-settings-dialog .form-grid { grid-template-columns:1fr; } }

.personal-avatar-file { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

[data-permission-module-group="teaching"] { grid-column:1/-1; }
[data-permission-module-group="teaching"] .permission-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:900px) { [data-permission-module-group="teaching"] .permission-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { [data-permission-module-group="teaching"] .permission-grid { grid-template-columns:1fr; } }

.teaching-management-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.teaching-management-actions button{min-height:40px}.teaching-material-card h4{overflow-wrap:anywhere}
/* Three report flows: three signals and one paginated table per page. */
#reports .rc-heading {margin-bottom:16px;} #reports .rc-heading h2 {font-size:19px;margin:0;}
#reports .rc-tabs {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px;}
#reports .rc-tab {min-height:66px;justify-content:flex-start;padding:12px 18px;gap:12px;text-align:left;}
#reports .rc-tab>span {display:grid;gap:4px;} #reports .rc-tab small {font-size:11px;font-weight:400;opacity:.75;}
#reports .rc-filters {padding:14px;gap:10px;margin-bottom:12px;} #reports .rc-filters .report-period-toggle {flex:0 1 auto;}
#reports .rc-filters>label {flex:1 1 150px;} #reports .rc-filter-actions {margin-left:auto;}
#reports .rc-filter-more {flex:1 0 100%;font-size:12px;color:#6b8087;} #reports .rc-filter-more>summary {cursor:pointer;width:max-content;}
#reports .rc-filter-extra {display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;} #reports .rc-filter-extra label {flex:1 1 150px;}
#reports .rc-export-menu {position:relative;font-size:13px;} #reports .rc-export-menu>summary {cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 14px;color:var(--ink);font-weight:600;}
#reports .rc-export-menu>div {position:absolute;right:0;top:calc(100% + 6px);z-index:6;display:grid;gap:6px;min-width:160px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 8px 24px #12304714;}
#reports .rc-metrics {grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;} #reports .rc-metric {padding:16px;min-width:0;} #reports .rc-metric strong {font-size:25px;overflow-wrap:anywhere;}
#reports .rc-note {font-size:11px;margin:8px 0 14px;} #reports .rc-query-context {font-size:11px;}
#reports .rc-flow-table-head {display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;} #reports .rc-flow-table-head h3 {font-size:15px;margin:0;}
#reports .rc-table th {font-size:12px;} #reports .rc-table td {padding:12px 10px;} #reports .rc-definitions {margin-top:12px;font-size:12px;}
@media(max-width:620px) {#reports .rc-tab {padding:10px 8px;gap:6px;min-height:62px;} #reports .rc-tab small {font-size:10px;} #reports .rc-tab .bi {font-size:15px;} #reports .rc-metrics {grid-template-columns:1fr;gap:8px;} #reports .rc-metric {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:12px;} #reports .rc-metric strong {font-size:22px;} #reports .rc-metric small {grid-column:1/-1;} #reports .rc-filters .report-period-toggle {flex-basis:100%;} #reports .rc-filter-actions {width:100%;justify-content:flex-end;} }

#reports .rc-filter-extra label[hidden] {display:none;}

.teaching-video-cover{position:relative;display:block;isolation:isolate;aspect-ratio:16/9;width:100%;overflow:hidden;border:0;border-radius:9px;padding:0;margin:0;color:#fff;background:radial-gradient(circle at 90% 5%,#52a99c55,transparent 55%),linear-gradient(125deg,#123747,#167d80);text-align:left;cursor:pointer}
.teaching-video-cover:focus-visible{outline:3px solid #75d0c6;outline-offset:3px}.teaching-video-cover>img{position:absolute;inset:0;z-index:1;object-fit:cover;width:100%;height:100%;border-radius:inherit}.teaching-video-cover>img[hidden]{display:none}
.teaching-cover-brand{position:absolute;top:12px;left:14px;font-size:10px;letter-spacing:1px;opacity:.8}.teaching-cover-heading{position:absolute;bottom:14px;left:14px;right:14px;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teaching-cover-play{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#ffffffed;color:#147d83;box-shadow:0 3px 16px #12304738;font-size:23px}.teaching-video-cover:hover .teaching-cover-play{background:#fff;color:#0c6065}
.teaching-cover-field{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fcfc}.teaching-cover-field[hidden]{display:none}.teaching-cover-field>label{display:grid;gap:5px}.teaching-cover-preview{width:min(280px,100%);aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(125deg,#123747,#167d80);border-radius:8px;overflow:hidden;color:#fff}.teaching-cover-preview>img{width:100%;height:100%;object-fit:cover}.teaching-cover-preview>span{display:flex;align-items:center;gap:9px;font-size:13px}.teaching-cover-actions{display:flex;gap:8px;flex-wrap:wrap}.teaching-cover-file{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;pointer-events:none}

.teaching-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.teaching-drag-handle{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #dcebea;border-radius:7px;background:#f5faf9;color:#557b7c;font-size:11px;cursor:grab;touch-action:none;user-select:none;white-space:nowrap}.teaching-drag-handle:active{cursor:grabbing}.teaching-drag-handle:focus-visible{outline:3px solid #9cdbd7;outline-offset:2px}.teaching-drag-handle:disabled{cursor:wait;opacity:.5}
.teaching-material-card[data-teaching-id]{position:relative}.teaching-material-card.is-dragging{opacity:.5}.teaching-material-card.is-drop-before::before,.teaching-material-card.is-drop-after::after{content:'';position:absolute;top:0;bottom:0;width:4px;border-radius:4px;background:#147d83;z-index:3;pointer-events:none}.teaching-material-card.is-drop-before::before{left:-8px}.teaching-material-card.is-drop-after::after{right:-8px}.teaching-drag-ghost{position:fixed;z-index:10000;pointer-events:none;width:260px;max-width:calc(100vw - 16px);padding:12px 14px;border:1px solid #b8dbd7;border-radius:10px;background:#fff;color:#123047;box-shadow:0 8px 28px #12304730;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){.teaching-material-card.is-drop-before::before,.teaching-material-card.is-drop-after::after{left:0;right:0;width:auto;height:4px;bottom:auto}.teaching-material-card.is-drop-before::before{top:-8px}.teaching-material-card.is-drop-after::after{top:auto;bottom:-8px}}
/* Keep salesperson requirements in one cell, matching the catching-team pair. */
#demands .demand-salesperson-controls { display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:10px; min-width:0; align-items:start; }
#demands .demand-salesperson-controls label { min-width:0; gap:8px; font-size:14px; line-height:20px; }
@media (max-width:640px) { #demands .demand-salesperson-controls { grid-template-columns:minmax(0,1fr) 96px; } }
@media (min-width:1101px) { #demands .demand-salesperson-controls label { gap:4px; font-size:13px; } }
/* Transport trip inspector: one scroll surface and a compact three-row summary. */
.gps-monitor-task-panel .gps-monitor-task-selector { padding:12px; gap:10px; }
.gps-monitor-task-selector #transport-clear-selection { align-self:flex-start; min-height:32px; padding:5px 8px; border:0; background:transparent; box-shadow:none; color:var(--teal); font-size:12px; }
.gps-monitor-task-selector #transport-clear-selection::before { content:"←"; margin-right:6px; }
.gps-monitor-task-selector .transport-task-card-list { gap:12px; padding:3px; grid-auto-rows:max-content; scrollbar-width:thin; }
.gps-monitor-task-selector .transport-batch-group { padding:0; border:0; border-radius:0; background:transparent; }
.gps-monitor-task-selector .transport-batch-heading { padding:0 0 4px; }
.gps-monitor-task-selector .transport-batch-title { min-height:26px; margin-left:0; padding:2px 0; font-size:12px; color:#647b87; }
.gps-monitor-task-selector .transport-task-dot-list { margin-top:2px; gap:8px; }
.gps-monitor-task-selector .transport-task-dot { border:1px solid #dce7e9; border-radius:10px; background:#fff; font-weight:500; }
.gps-monitor-task-selector .transport-task-dot.selected { outline:none; border-color:var(--teal); background:#f1f9f8; box-shadow:inset 3px 0 var(--teal); }
.gps-monitor-task-selector .transport-task-dot:focus-within { outline:none; }
.gps-monitor-task-selector .transport-task-card-summary:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
.gps-monitor-task-selector .transport-task-dot > .transport-task-card-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"plate status" "number number" "gps time"; gap:6px 8px; padding:12px; border-radius:9px; }
.gps-monitor-task-selector .transport-task-dot-label { grid-area:plate; font-size:15px; line-height:22px; color:var(--navy); font-weight:700; }
.gps-monitor-task-selector .transport-task-row-status { grid-area:status; align-self:center; padding:2px 7px; border-radius:5px; background:#edf4f2; font-size:11px; line-height:18px; white-space:nowrap; }
.gps-monitor-task-selector .transport-task-dot.pending .transport-task-row-status { background:#eef2f7; }
.gps-monitor-task-selector .transport-task-number { grid-area:number; font-size:12px; color:#627986; font-weight:500; white-space:normal; overflow-wrap:anywhere; }
.gps-monitor-task-selector .transport-gps-state { grid-area:gps; justify-self:start; align-self:center; font-size:11px; line-height:18px; padding:2px 6px; border-radius:4px; }
.gps-monitor-task-selector .transport-gps-time { grid-area:time; align-self:center; font-size:10px; line-height:18px; font-weight:400; white-space:normal; text-align:right; }
.gps-monitor-task-selector #transport-task-detail { padding:0; overflow:visible; min-height:auto; background:#fff; border:1px solid #e0e9ec; border-radius:10px; }
.gps-monitor-task-selector .transport-task-card-detail { padding:14px 12px; }
.gps-monitor-task-selector .transport-detail-heading { gap:6px; padding-bottom:10px; border-bottom:1px solid #edf2f3; }
.gps-monitor-task-selector .transport-detail-heading h3 { font-size:14px; color:var(--navy); line-height:22px; }
.gps-monitor-task-selector .transport-detail-heading > span { padding:3px 7px; border-radius:5px; background:#f0f5f6; color:#5c7480; font-size:11px; line-height:18px; }
.gps-monitor-task-selector .transport-detail-notice { margin:12px 0; padding:9px 10px; border-left-width:3px; font-size:12px; line-height:1.65; }
.gps-monitor-task-selector .transport-fact-section { margin-top:14px; }
.gps-monitor-task-selector .transport-fact-section h4 { margin:0 0 5px; color:var(--navy); font-size:12px; }
.gps-monitor-task-selector .transport-fact { grid-template-columns:76px minmax(0,1fr); gap:10px; padding:7px 0; font-size:12px; }
.gps-monitor-task-selector .transport-fact-section dl .transport-fact:last-child { border-bottom:0; }
.gps-monitor-task-selector .task-card-actions { margin-top:14px; padding-top:12px; border-top:1px solid #edf2f3; }
.gps-monitor-task-selector .task-card-actions button { width:100%; min-height:36px; font-size:13px; }
/* Resource leave tabs start at the left edge of the workspace. */
#carriers .leave-workspace-head { justify-content:flex-start; }

/* Teaching library: cover first, one title, compact administrator controls. */
#teaching-center > .teaching-panel { padding:22px; }
#teaching-center .teaching-upload-library { border:0; padding:0; margin:0; background:transparent; }
#teaching-center .teaching-library-head { margin-bottom:16px; }
#teaching-center .teaching-library-head h3 { font-size:15px; color:var(--navy); }
#teaching-center .teaching-library-head button { min-height:32px; padding:5px 10px; font-size:12px; }
#teaching-center .teaching-materials-list { gap:16px; align-items:stretch; padding:3px; }
#teaching-center .teaching-material-card { padding:0; gap:0; border:1px solid #dfe8eb; border-radius:12px; background:#fff; box-shadow:0 2px 5px #12304704; }
#teaching-center .teaching-material-card:hover { border-color:#b9d9d6; box-shadow:0 5px 16px #1230470a; }
#teaching-center .teaching-video-cover { border-radius:11px 11px 0 0; background:radial-gradient(ellipse at 85% 20%,#c4ebe5 0%,transparent 60%),linear-gradient(135deg,#e8f4f4,#b8deda); color:#326b70; }
#teaching-center .teaching-video-cover:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
#teaching-center .teaching-cover-brand { top:14px; left:16px; color:#376e75; font-size:10px; letter-spacing:1px; opacity:.8; }
#teaching-center .teaching-cover-art { position:absolute; right:14px; bottom:-24px; font-size:128px; line-height:1; opacity:.12; transform:rotate(-12deg); }
#teaching-center .teaching-cover-play { width:42px; height:42px; background:#ffffffee; color:#147d83; box-shadow:0 3px 14px #306f6f1c; }
#teaching-center .teaching-video-cover:has(img:not([hidden])) .teaching-cover-brand, #teaching-center .teaching-video-cover:has(img:not([hidden])) .teaching-cover-art { visibility:hidden; }
#teaching-center .teaching-card-body { display:flex; flex-direction:column; gap:8px; padding:14px 16px 16px; min-width:0; flex:1; }
#teaching-center .teaching-card-heading { min-height:24px; gap:8px; }
#teaching-center .teaching-material-kind { font-size:10px; line-height:18px; padding:2px 7px; border-radius:5px; background:#eef6f5; color:#44817f; }
#teaching-center .teaching-drag-handle { padding:3px 5px; border:0; border-radius:5px; background:transparent; color:#617c83; font-size:10px; min-height:24px; }
#teaching-center .teaching-drag-handle:hover { background:#edf6f5; color:var(--teal); }
#teaching-center .teaching-material-card h4 { margin:0; min-height:42px; font-size:14px; line-height:21px; color:var(--navy); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
#teaching-center .teaching-file-meta { display:block; min-width:0; font-size:11px; color:#647983; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:auto; }
#teaching-center .teaching-material-description { font-size:12px; line-height:1.6; color:#627985; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
#teaching-center .teaching-material-card .teaching-management-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; margin:0; padding:10px 12px; border-top:1px solid #edf2f3; }
#teaching-center .teaching-material-card .teaching-management-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:30px; padding:5px 8px; border:0; border-radius:6px; background:transparent; box-shadow:none; color:#617984; font-size:11px; }
#teaching-center .teaching-material-card .teaching-management-actions button:not(:disabled):hover { background:#edf6f5; color:var(--teal); }
#teaching-center .teaching-material-card .teaching-management-actions button:disabled { opacity:.35; }
#teaching-center .teaching-material-card .teaching-management-actions > .danger { margin-left:auto; color:#a94d60; }
#teaching-center .teaching-material-card .teaching-management-actions > .danger:not(:disabled):hover { color:#b33148; background:#fff0f2; }
#teaching-center .teaching-order-actions { display:flex; gap:2px; padding-left:8px; border-left:1px solid #e7edef; }
#teaching-center .teaching-order-actions button { width:30px; padding:5px; }
#teaching-center .teaching-open-document { align-self:flex-start; min-height:30px; padding:5px 9px; font-size:12px; }
@media(max-width:640px) { #teaching-center > .teaching-panel { padding:16px; } #teaching-center .teaching-material-card .teaching-management-actions button { min-height:36px; } #teaching-center .teaching-order-actions button { width:36px; } }
/* Reports: keep routine filters in a single desktop toolbar. */
#reports .rc-filters { display:grid; grid-template-columns:auto minmax(130px,1fr) minmax(130px,1fr) auto auto; grid-template-areas:"period start end actions more"; align-items:end; gap:8px 10px; padding:10px 12px; margin-bottom:0; border-radius:10px; background:#f9fcfc; }
#reports .rc-filters .report-period-toggle { grid-area:period; flex-wrap:nowrap; align-items:center; gap:2px; padding:3px; border-radius:7px; background:#edf4f4; }
#reports .rc-filters .report-period-button { min-height:28px; padding:5px 8px; border:0; border-radius:5px; box-shadow:none; font-size:11px; line-height:18px; white-space:nowrap; background:transparent; color:#617985; }
#reports .rc-filters .report-period-button.active { background:var(--teal); color:#fff; }
#reports .rc-filters > label { min-width:0; margin:0; gap:3px; font-size:11px; line-height:16px; }
#reports .rc-filters > label:first-of-type { grid-area:start; }
#reports .rc-filters > label:nth-of-type(2) { grid-area:end; }
#reports .rc-filters label input, #reports .rc-filters label select { height:34px; min-height:34px; padding:6px 8px; font-size:12px; line-height:20px; }
#reports .rc-filter-actions { grid-area:actions; flex-wrap:nowrap; align-items:center; justify-content:flex-start; gap:5px; margin:0; }
#reports .rc-filter-actions button, #reports .rc-export-menu > summary { display:flex; align-items:center; justify-content:center; min-height:34px; height:34px; box-sizing:border-box; padding:6px 10px; border-radius:7px; font-size:12px; line-height:20px; white-space:nowrap; }
#reports .rc-filter-more { grid-area:more; align-self:end; margin:0; min-width:0; font-size:11px; }
#reports .rc-filter-more > summary { display:list-item; min-height:34px; box-sizing:border-box; padding:8px 2px; color:#617985; white-space:nowrap; }
#reports .rc-filter-more[open] { grid-area:auto; grid-column:1/-1; padding-top:2px; }
#reports .rc-filter-more[open] > summary { min-height:26px; padding:4px 0; }
#reports .rc-filter-extra { margin-top:8px; padding-top:10px; border-top:1px solid #e4eeee; gap:10px; }
#reports .rc-filter-extra label { flex:0 1 180px; font-size:11px; gap:3px; }
#reports .rc-query-context { align-items:center; justify-content:flex-start; gap:6px 12px; margin:8px 0 12px; font-size:11px; line-height:18px; }
#reports #report-data-status { margin-left:auto; }
#reports .rc-query-help { position:relative; flex:0 0 auto; color:#6b8087; }
#reports .rc-query-help > summary { cursor:pointer; white-space:nowrap; }
#reports .rc-query-help > .rc-note { position:absolute; right:0; top:calc(100% + 6px); z-index:8; width:min(320px,calc(100vw - 60px)); margin:0; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; color:#526e79; box-shadow:0 6px 20px #12304714; font-size:12px; line-height:1.7; }
@media (min-width:621px) and (max-width:1200px) { #reports .rc-filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto; grid-template-areas:"period period actions more" "start start end end"; } }
@media (max-width:620px) { #reports .rc-filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-areas:"period period" "start end" "actions more"; padding:10px; gap:8px; } #reports .rc-filters .report-period-toggle { justify-content:space-between; } #reports .rc-filters .report-period-button { flex:1; padding:5px 4px; } #reports .rc-filter-actions { gap:4px; } #reports .rc-filter-actions button, #reports .rc-export-menu > summary { padding:6px 8px; font-size:11px; } #reports .rc-filter-more { justify-self:end; } #reports .rc-filter-extra label { flex:1 1 100%; } #reports #report-data-status { margin-left:0; } #reports .rc-query-help { margin-left:auto; } }
/* Platform navigation lives in the sidebar; personal actions share one menu. */
#app-sidebar .sidebar-home-button { display:flex; align-items:center; gap:10px; flex:0 0 auto; min-height:40px; width:100%; margin:0 0 16px; padding:9px 12px; border:1px solid #dcebea; border-radius:8px; background:#f5faf9; color:#39777b; font-size:13px; font-weight:600; text-align:left; }
#app-sidebar .sidebar-home-button[hidden] { display:none; }
#app-sidebar .sidebar-home-button i { font-size:17px; }
#app-sidebar .sidebar-home-button:hover { background:#eaf5f3; color:var(--teal); }
body.sidebar-collapsed #app-sidebar .sidebar-home-button { width:40px; padding:8px; justify-content:center; align-self:center; }
body.sidebar-collapsed #app-sidebar .sidebar-home-button > span { display:none; }
#app-shell .personal-menu { position:relative; flex:0 1 auto; min-width:0; }
#app-shell .personal-menu[hidden] { display:none; }
#app-shell .personal-menu > summary { display:flex; align-items:center; gap:8px; max-width:100%; padding:5px 10px 5px 5px; border:1px solid #dce5e9; border-radius:10px; background:#fff; cursor:pointer; list-style:none; }
#app-shell .personal-menu > summary::-webkit-details-marker { display:none; }
#app-shell .personal-menu .user-chip { padding:0; border:0; background:transparent; box-shadow:none; min-width:0; gap:8px; font-size:12px; }
#app-shell .personal-menu .user-chip > span:last-child { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#app-shell .personal-menu > summary > i { color:#739096; font-size:11px; }
#app-shell .personal-menu > summary:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
#app-shell .personal-menu-actions { position:absolute; top:calc(100% + 7px); right:0; z-index:1200; display:grid; gap:4px; min-width:180px; padding:7px; border:1px solid #dce5e9; border-radius:10px; background:#fff; box-shadow:0 8px 26px #1230471a; }
#app-shell .personal-menu-actions button.secondary { display:flex; align-items:center; gap:9px; width:100%; min-height:38px; margin:0; padding:8px 10px; border:0; background:transparent; color:#3f5f6c; font-size:13px; text-align:left; }
#app-shell .personal-menu-actions button:hover { background:#edf7f5; color:var(--teal); }
#app-shell .personal-menu-actions #logout-button { color:#ae5363; }
#app-shell .personal-menu-actions #logout-button:hover { background:#fff1f3; }
#app-shell .topbar-actions > #global-refresh-button { min-height:38px; font-size:12px; }
@media(max-width:640px) { #app-shell .personal-menu .user-chip > span:last-child { max-width:180px; } #app-shell .personal-menu-actions button.secondary { min-height:44px; } body.sidebar-collapsed #app-sidebar .sidebar-home-button { margin-top:10px; } }

.dispatch-manual-optional { padding:14px; border:1px solid #dfebed; border-radius:8px; background:#fbfdfd; min-width:0; }
.dispatch-manual-optional h4 { margin:0 0 12px; color:var(--navy); font-size:13px; }
.dispatch-manual-business-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 14px; }
.dispatch-manual-optional .dispatch-manual-return-field { max-width:360px; margin-top:14px; }
.dispatch-manual-optional p { margin:6px 0 0; font-size:12px; line-height:1.6; }
.dispatch-manual-editor-grid .manual-staffing-controls { display:grid; grid-template-columns:minmax(0,1fr) 90px; gap:10px; align-items:start; min-width:0; }
#dispatch-manual-salesperson-count:disabled { background:#f1f4f5; color:var(--muted); cursor:not-allowed; }
.dispatch-manual-reason-field textarea { width:100%; resize:vertical; min-height:64px; }
@media(max-width:640px) { .dispatch-manual-business-grid { grid-template-columns:minmax(0,1fr); } .dispatch-manual-optional { padding:12px; } .dispatch-manual-optional .dispatch-manual-return-field { max-width:none; } }
/* A selected trip fits the map panel; only its fact body scrolls. */
.gps-monitor-task-selector .transport-task-card-list.has-selected-task { display:flex; flex-direction:column; gap:10px; overflow:hidden; }
.gps-monitor-task-selector .has-selected-task > .transport-batch-group { flex:0 0 auto; }
.gps-monitor-task-selector .has-selected-task #transport-task-detail { display:flex; flex:1 1 0; min-height:0; overflow:hidden; }
.gps-monitor-task-selector .has-selected-task .transport-task-card-detail { display:flex; flex-direction:column; flex:1 1 0; min-height:0; padding:0; overflow:hidden; }
.gps-monitor-task-selector .has-selected-task .transport-detail-heading { flex:0 0 auto; margin:0; padding:10px 12px; }
.gps-monitor-task-selector .transport-detail-scroll { flex:1 1 0; min-height:0; min-width:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; padding:0 12px 10px; }
.gps-monitor-task-selector .transport-detail-scroll:focus-visible { outline:2px solid #8bcac5; outline-offset:-2px; }
.gps-monitor-task-selector .transport-detail-scroll .transport-detail-notice { margin:10px 0; padding:8px 9px; }
.gps-monitor-task-selector .transport-detail-scroll .transport-fact-section { margin-top:10px; }
.gps-monitor-task-selector .transport-detail-scroll .transport-fact { padding:5px 0; gap:8px; }
.gps-monitor-task-selector .transport-fact-fold { border-top:1px solid #edf2f3; }
.gps-monitor-task-selector .transport-fact-fold > summary { cursor:pointer; padding:9px 0; color:#57747e; font-size:12px; font-weight:600; }
.gps-monitor-task-selector .transport-fact-fold[open] > summary { color:var(--teal); }
.gps-monitor-task-selector .transport-detail-footer { flex:0 0 auto; display:flex; gap:8px; padding:10px 12px; border-top:1px solid #e7eff0; background:#fff; }
.gps-monitor-task-selector .transport-detail-footer .task-card-actions { flex:1; min-width:0; margin:0; padding:0; border:0; }
@media(max-width:900px) { .gps-monitor-task-panel { height:min(560px,calc(100dvh - 96px)); min-height:280px; max-height:calc(100dvh - 32px); flex:none; } }
#app-shell #transport-records .has-selected-task .transport-batch-heading h3,
#app-shell #transport-records .has-selected-task .transport-detail-heading h3 { margin:0; }
@media (min-width:901px) and (max-height:800px) {
  .gps-monitor-task-selector .has-selected-task .transport-task-dot > .transport-task-card-summary { padding:8px 10px; gap:3px 8px; }
  .gps-monitor-task-selector .has-selected-task .transport-detail-heading { padding:7px 10px; }
  .gps-monitor-task-selector .has-selected-task .transport-detail-footer { padding:7px 10px; }
}
/* Restored login card scene; secondary copy remains removed. */
.auth-login-intro { margin-bottom:34px; }
/* Demand field captions share one typographic scale, including nested pairs. */
#demands #demand-form { --demand-caption-size:12px; --demand-caption-gap:8px; }
#demands #demand-form :is(.demand-basic-grid > label, .demand-contact-field > label, .demand-shift-control > legend, .demand-field-caption, .catching-team-field > span, .demand-catching-controls label, .demand-salesperson-controls > label, .demand-location-field > label, .demand-business-card label) {
  color:var(--muted); font-size:var(--demand-caption-size); font-weight:600; line-height:18px;
}
#demands #demand-form :is(.demand-basic-grid > label, .demand-contact-field, .demand-vehicle-match-control, .catching-team-field, .demand-catching-controls label, .demand-salesperson-controls > label, .demand-location-field, .demand-business-card label) { gap:var(--demand-caption-gap); }
#demands #demand-form .demand-shift-control > legend { margin-bottom:var(--demand-caption-gap); }
#demands #demand-form :is(input,select,textarea) { font-weight:400; }
@media(min-width:1101px) { #demands #demand-form { --demand-caption-size:12px; --demand-caption-gap:4px; } }
/* A course keeps its video and paired manual in the same card. */
#teaching-center .teaching-course-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:4px; }
#teaching-center .teaching-course-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-width:0; min-height:36px; padding:7px 8px; font-size:12px; white-space:nowrap; }
#teaching-center .teaching-manual-action { display:flex; position:relative; min-width:0; }
#teaching-center .teaching-read-manual { flex:1; border-radius:7px; }
#teaching-center .teaching-manual-action:has(details) .teaching-read-manual { border-radius:7px 0 0 7px; }
#teaching-center .teaching-manual-menu > summary { display:grid; place-items:center; height:100%; min-width:24px; padding:0 5px; cursor:pointer; list-style:none; border:1px solid var(--line); border-left:0; border-radius:0 7px 7px 0; color:var(--teal); background:#f5faf9; font-size:10px; }
#teaching-center .teaching-manual-menu > summary::-webkit-details-marker { display:none; }
#teaching-center .teaching-manual-menu > div { position:absolute; right:0; top:calc(100% + 4px); z-index:30; display:grid; min-width:160px; padding:6px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 8px 24px #12304720; }
#teaching-center .teaching-manual-menu button { justify-content:flex-start; border:0; box-shadow:none; background:#fff; }
#teaching-center .teaching-manual-menu button:hover { background:#eff7f6; }
#teaching-center .teaching-manual-menu summary:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
@media(max-width:640px) { #teaching-center .teaching-course-actions button { min-height:44px; } #teaching-center .teaching-manual-menu > summary { min-width:32px; } }
/* Medium course cards: distinct covers with balanced viewing controls. */
#teaching-center .teaching-materials-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) { display:flex; flex-direction:column; padding:0; gap:0; border-radius:12px; }
#teaching-center .teaching-material-card > .teaching-video-cover { width:100%; min-height:0; aspect-ratio:9/4; border-radius:11px 11px 0 0; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-body { display:grid; grid-template-columns:minmax(0,1fr) 24px; grid-template-areas:"title handle" "description description" "actions actions"; gap:8px; padding:12px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-body:not(:has(> .teaching-material-description)) { grid-template-areas:"title handle" "actions actions"; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) h4 { grid-area:title; min-height:40px; font-size:14px; line-height:20px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-heading { grid-area:handle; min-height:24px; align-self:start; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-material-kind { display:none; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-drag-handle { width:24px; padding:3px; font-size:0; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-drag-handle i { font-size:13px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-material-description { grid-area:description; -webkit-line-clamp:1; margin:0; }
#teaching-center .teaching-course-actions { grid-area:actions; width:100%; margin-top:0; gap:8px; }
#teaching-center .teaching-course-actions button { min-height:36px; padding:7px 6px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) > .teaching-management-actions { padding:4px 12px; gap:6px; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-management-actions button { min-height:28px; }
#teaching-center .teaching-cover-play { width:28px; height:28px; font-size:15px; top:12px; right:12px; left:auto; transform:none; }
@media(min-width:1400px) { #teaching-center .teaching-materials-list { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1099px) { #teaching-center .teaching-materials-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:759px) { #teaching-center .teaching-materials-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:640px) {
  #teaching-center .teaching-course-actions button { min-height:44px; }
  #teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-management-actions button { min-height:40px; }
}

.teaching-cover-preview { aspect-ratio:9/4; }

/* Archive: results first, supporting evidence on demand. */
#task-history .task-history-more { display:grid; gap:6px; }
#task-history .task-history-fold { min-width:0; border:1px solid #d8e6e8; border-radius:8px; background:#fff; }
#task-history .task-history-fold > summary { cursor:pointer; padding:10px 12px; color:var(--navy); font-size:12px; font-weight:600; }
#task-history .task-history-fold[open] > summary { border-bottom:1px solid #edf1f2; }
#task-history .task-history-fold-content { display:grid; gap:8px; padding:8px; min-width:0; }
#task-history .task-history-fold-content .task-history-detail-group { border:0; }
#task-history .task-history-details > .task-history-detail-group .task-history-detail-item strong { font-size:13px; }
#task-history .task-history-details > .task-history-detail-group:nth-child(2) .task-history-detail-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1100px) { #task-history .task-history-details > .task-history-detail-group:nth-child(2) .task-history-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:640px) { #task-history .task-history-details > .task-history-detail-group:nth-child(2) .task-history-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #task-history .task-history-fold > summary { padding:12px; } }

/* Compact archive filters: one desktop row, deliberate narrow-screen wrapping. */
#task-history .task-history-toolbar { grid-template-columns:minmax(220px,1fr) 155px 155px auto; gap:10px; align-items:end; margin-bottom:12px; }
#task-history .task-history-keyword, #task-history .task-history-toolbar-actions { grid-column:auto; min-width:0; }
#task-history .task-history-toolbar label { min-width:0; gap:5px; font-size:12px; font-weight:600; }
#task-history .task-history-toolbar input { width:100%; min-width:0; height:36px; margin:0; padding:7px 10px; font-size:13px; }
#task-history .task-history-toolbar-actions { flex-wrap:nowrap; gap:6px; }
#task-history .task-history-toolbar-actions button { height:36px; min-height:36px; padding:7px 12px; white-space:nowrap; flex:0 0 auto; font-size:13px; }
@media(max-width:1100px) {
 #task-history .task-history-toolbar { grid-template-columns:155px 155px minmax(0,1fr); }
 #task-history .task-history-keyword { grid-column:1/-1; }
 #task-history .task-history-toolbar-actions { justify-content:flex-end; }
}
@media(max-width:640px) {
 #task-history .task-history-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 #task-history .task-history-toolbar-actions { grid-column:1/-1; justify-content:flex-start; }
 #task-history .task-history-toolbar input, #task-history .task-history-toolbar-actions button { height:44px; min-height:44px; }
 #task-history .task-history-toolbar-actions button { flex:1 1 auto; padding:8px; }
}

/* Tabler-inspired compact cards; native styles scoped to the vehicle workbench. */
#dashboard .dashboard-workbench { gap:14px; padding:0 2px 12px 0; }
#dashboard .dashboard-command-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:108px; padding:18px 22px; border:1px solid #dce8ea; border-left:4px solid #147d83; border-radius:12px; background:linear-gradient(100deg,#f0f9f8,#fff 65%); box-shadow:none; color:var(--ink); }
#dashboard .dashboard-command-head { max-width:none; min-width:0; }
#dashboard .banner-eyebrow { font-size:11px; font-weight:600; letter-spacing:1px; color:#548084; }
#dashboard .dashboard-command-head h2 { margin:5px 0 6px; font-size:21px; line-height:1.35; color:var(--navy); }
#dashboard-date { margin:0; font-size:11px; line-height:1.6; color:#657b87; }
#dashboard .dashboard-hero-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; flex-shrink:0; }
#dashboard .dashboard-hero-actions button { display:flex; align-items:center; gap:6px; min-height:38px; padding:8px 12px; font-size:12px; border-radius:7px; }
#dashboard [data-dashboard-entry][hidden] { display:none; }
#dashboard .dashboard-command-metrics { gap:12px; }
#dashboard .dashboard-command-metric { padding:15px 17px; gap:12px; border:1px solid #dce8ea; border-radius:10px; box-shadow:0 1px 2px #12304704; }
#dashboard .dashboard-command-metric > div > span { margin-bottom:5px; font-size:12px; color:#667c88; }
#dashboard .dashboard-command-metric strong { font-size:26px; line-height:1.15; font-variant-numeric:tabular-nums; }
#dashboard .dashboard-metric-icon { width:40px; height:40px; border-radius:9px; font-size:20px; }
#dashboard .dashboard-command-grid { grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr); gap:14px; align-items:start; }
#dashboard .dashboard-primary-column, #dashboard .dashboard-side-column { display:flex; flex-direction:column; gap:14px; }
#app-shell #dashboard .panel { padding:18px; border:1px solid #dce8ea; border-radius:11px; box-shadow:0 1px 3px #12304704; }
#app-shell #dashboard .panel-head { align-items:center; margin-bottom:14px; gap:10px; }
#dashboard .panel h2 { font-size:15px; line-height:1.5; }
#dashboard .panel .muted { color:#6b8190; font-size:11px; }
#dashboard-pending-summary { white-space:nowrap; border:1px solid #dce8ea; border-radius:6px; padding:3px 7px; background:#f6fafb; }
#dashboard .dashboard-primary-column > .dashboard-priority-panel { flex:0 0 auto; min-height:0; }
#dashboard .dashboard-priority-panel .dashboard-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; min-height:216px; padding:18px; background:#fbfdfd; border:1px dashed #d8e8e9; border-radius:8px; text-align:center; }
#dashboard .dashboard-empty-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; color:#147d83; background:#eaf6f4; font-size:25px; }
#dashboard .dashboard-empty strong { color:#415e6b; font-size:13px; font-weight:600; }
#dashboard .dashboard-empty > span:last-child { color:#7b8e97; font-size:11px; line-height:1.6; }
#dashboard .dashboard-priority-group-head { padding:8px 10px; background:#f2f8f8; border-radius:6px; gap:8px; }
#dashboard .dashboard-priority-row { padding:12px 6px; gap:12px; border-bottom:1px solid #eaf0f1; }
#dashboard .dashboard-priority-row:hover { background:#f7fbfb; }
#dashboard .dashboard-priority-row strong { font-size:12px; color:#25475a; }
#dashboard .dashboard-priority-row .detail { font-size:11px; line-height:1.5; margin-top:4px; }
#dashboard .dashboard-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:0; }
#dashboard .dashboard-result-grid > div { padding:10px 0; min-width:0; }
#dashboard .dashboard-result-grid > div + div { padding-left:14px; border-left:1px solid #e7eff0; }
#dashboard .dashboard-result-grid strong { font-size:24px; margin-top:7px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
#dashboard .dashboard-result-grid span { color:#6b8190; font-size:11px; }
#dashboard .dashboard-stat-notes { border-top:1px solid #e7eff0; padding-top:9px; margin-top:4px; }
#dashboard .dashboard-stat-notes summary { cursor:pointer; color:#718995; font-size:11px; }
#dashboard .dashboard-results-rule { padding:7px 0 0; border:0; margin:0; color:#718995; font-size:11px; line-height:1.7; }
#dashboard .dashboard-quick-grid { gap:8px; }
#dashboard .dashboard-shortcut { flex-direction:row; justify-content:flex-start; gap:7px; min-height:44px; padding:8px; border:1px solid #e2ecee; border-radius:7px; background:#fcfefe; text-align:left; }
#dashboard .dashboard-shortcut:hover { border-color:#a4cacc; background:#f0f8f7; }
#dashboard .dashboard-shortcut i { width:26px; height:26px; flex-shrink:0; border-radius:6px; font-size:15px; }
#dashboard .dashboard-shortcut strong { color:#416170; font-size:11px; font-weight:600; }
#dashboard .dashboard-home-footer { margin-top:0; font-size:10px; color:#81949d; }
@media(max-width:1180px) {
 #dashboard .dashboard-command-grid { grid-template-columns:1fr; }
 #dashboard .dashboard-side-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
 #dashboard .dashboard-result-panel { grid-column:auto; }
 #dashboard .dashboard-quick-grid { grid-template-columns:1fr; }
 #dashboard .dashboard-priority-panel .dashboard-empty { min-height:152px; }
}
@media(max-width:760px) {
 #dashboard .dashboard-command-summary { flex-direction:column; align-items:flex-start; gap:12px; min-height:0; padding:16px; }
 #dashboard .dashboard-command-head h2 { font-size:20px; }
 #dashboard .dashboard-hero-actions { justify-content:flex-start; }
 #dashboard .dashboard-hero-actions button { min-height:44px; }
 #dashboard .dashboard-command-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 #dashboard .dashboard-command-metric { padding:12px; gap:8px; }
 #dashboard .dashboard-metric-icon { width:32px; height:32px; font-size:17px; }
 #dashboard .dashboard-command-metric strong { font-size:22px; }
 #dashboard .dashboard-side-column { display:flex; }
 #dashboard .dashboard-quick-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 #app-shell #dashboard .panel { padding:14px; }
 #dashboard .dashboard-shortcut { flex-direction:column; justify-content:center; text-align:center; }
 #dashboard .dashboard-priority-panel .dashboard-empty { min-height:150px; padding:14px; }
 #dashboard .dashboard-home-footer { flex-wrap:wrap; }
}

#dashboard .dashboard-hero-mark { display:flex; align-items:center; gap:10px; color:#548084; font-size:12px; white-space:nowrap; }
#dashboard .dashboard-hero-mark i { display:grid; place-items:center; width:42px; height:42px; border-radius:10px; background:#e7f5f2; color:#147d83; font-size:22px; }
@media(max-width:760px) { #dashboard .dashboard-hero-mark { display:none; } }

/* Consistent compact business pages, following the refined workbench. */
#app-shell .view:not(#dashboard) .panel { border:1px solid #dce8ea; border-radius:11px; padding:16px; margin-bottom:12px; box-shadow:0 1px 3px #12304704; }
#app-shell .view:not(#dashboard) .panel-head { gap:10px; margin-bottom:12px; flex-wrap:wrap; }
#app-shell .view:not(#dashboard) .panel h2 { font-size:15px; line-height:1.5; margin:0; color:#123047; }
#app-shell .view:not(#dashboard) .panel h3 { font-size:14px; line-height:1.5; }
#app-shell .view:not(#dashboard) .panel h4 { font-size:13px; line-height:1.5; }
#app-shell .view:not(#dashboard) .panel-head .muted { font-size:11px; color:#718995; line-height:1.6; }
#app-shell .view:not(#dashboard) :is(button.primary,button.secondary) { border-radius:7px; min-height:36px; padding:7px 11px; font-size:12px; }
#app-shell .view:not(#dashboard) :is(button.primary,button.secondary):focus-visible { outline:2px solid #147d83; outline-offset:2px; }
#app-shell .view:not(#dashboard) label { font-size:12px; font-weight:600; line-height:1.5; gap:5px; }
#app-shell .view:not(#dashboard) :is(input,select):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]) { min-height:36px; padding:7px 10px; border-radius:7px; font-size:13px; font-weight:400; }
#app-shell .view:not(#dashboard) textarea { border-radius:7px; font-size:13px; font-weight:400; }
#app-shell .view:not(#dashboard) :is(input,select,textarea):disabled { background:#f1f4f5; color:#8a9aa3; }
#app-shell .view:not(#dashboard) .empty { padding:22px 12px; font-size:12px; color:#718995; }
#app-shell .view:not(#dashboard) :is(th,td) { font-size:12px; line-height:1.5; }
#app-shell .compact-fold { min-width:0; border:1px solid #dce8ea; border-radius:8px; background:#fbfdfd; }
#app-shell .compact-fold > summary { cursor:pointer; padding:10px 12px; color:#315b6a; font-size:12px; font-weight:600; line-height:1.5; }
#app-shell .compact-fold[open] > summary { border-bottom:1px solid #e4edef; }
#app-shell .compact-fold[open] > :not(summary) { margin:12px; }
#app-shell .compact-fold[hidden] { display:none; }
#demands .demand-entry-section { padding:0; }
#demands .demand-template-head { margin-bottom:12px; }
#demands .demand-basic-grid { gap:12px 14px; }
#demands .demand-farm-entry-row { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
#demands .demand-optional-fields > .demand-optional-title { display:block; margin:0; padding:10px 12px; font-size:12px; }
#demands .demand-optional-fields .demand-business-card { margin:0; padding:12px; gap:12px 14px; }
#demands .demand-form-actions { padding-top:12px; margin-top:2px; }
#tasks .dispatch-manual-optional .dispatch-manual-business-grid { padding:0; }
#tasks .compact-demand-table { table-layout:auto; width:100%; }
#tasks .compact-demand-table :is(th,td):nth-child(n) { width:auto; text-align:left; white-space:normal; padding:9px 10px; }
#tasks .compact-demand-table :is(th,td):nth-child(1) { width:7%; }
#tasks .compact-demand-table :is(th,td):nth-child(2) { width:18%; }
#tasks .compact-demand-table :is(th,td):nth-child(3) { width:25%; }
#tasks .compact-demand-table :is(th,td):nth-child(4) { white-space:nowrap; font-variant-numeric:tabular-nums; }
#tasks .compact-demand-table .daily-demand-action-cell { white-space:nowrap; }
#tasks .compact-row-details > summary { cursor:pointer; color:#147d83; font-size:12px; white-space:nowrap; }
#tasks .compact-row-details dl { margin:8px 0 0; min-width:160px; padding:8px; border:1px solid #e2ecee; border-radius:7px; background:#f7fbfb; }
#tasks .compact-row-details dl > div { display:grid; grid-template-columns:64px minmax(0,1fr); gap:6px; padding:4px 0; }
#tasks .compact-row-details dt { color:#718995; font-size:11px; }
#tasks .compact-row-details dd { margin:0; font-size:12px; }
#tasks :is(.dispatch-all-demands-card,.dispatch-sheet-command-bar,.dispatch-line-supply-card) { border-color:#dce8ea; border-radius:10px; }
#tasks #dispatch-guarantee-panel .dispatch-chart-card { padding:14px; border-left-width:2px; }
#reports .rc-heading h2 { font-size:16px; }
#reports .rc-tabs { gap:8px; margin:12px 0; }
#reports .rc-tab { min-height:40px; padding:8px 12px; border-radius:8px; font-size:13px; }
#reports .rc-filters { padding:12px; border-radius:10px; margin:12px 0; }
#reports .rc-metrics { gap:10px; }
#reports .rc-metric { padding:12px; border-radius:10px; }
#reports .rc-metric strong { font-size:24px; }
#reports .rc-section { padding:14px; border-radius:10px; margin:12px 0; }
#reports .rc-section-head { margin-bottom:10px; }
#reports .rc-query-context { font-size:11px; gap:6px 12px; }
#carriers :is(.driver-status-card,.salesperson-resource-card), #carrier-owners .carrier-owner-card { border-radius:10px; border-color:#dce8ea; padding:12px; }
#carriers :is(.carrier-management-tabs,.driver-status-toolbar), #carrier-owners .carrier-owner-toolbar { gap:8px; margin-bottom:12px; }
#jt808 .gps-readiness-panel { padding:0 0 12px; border:0; border-bottom:1px solid #e2ecee; border-radius:0; }
#jt808 .gps-readiness-counts { gap:8px; }
#jt808 .gps-readiness-counts > div { padding:10px 12px; border-radius:9px; border-color:#dce8ea; }
#jt808 .gps-readiness-counts strong { font-size:22px; }
#jt808 .jt808-toolbar { gap:8px; margin:12px 0; }
#employee-accounts .account-create-fold { margin-bottom:12px; }
#employee-accounts .account-create-fold > summary { color:#147d83; }
#employee-accounts .account-create-fold form { margin:12px; }
#employee-accounts :is(.permission-module-group,.permission-module-card,.permission-item) { border-radius:9px; }
#agent-management .agent-management-card { border-radius:10px; padding:16px; gap:12px; }
#agent-management .agent-boundary-fold { grid-column:1/-1; }
#agent-management .agent-boundary-fold dl { padding:0; }
#skill-management .skill-management-toolbar { gap:10px; margin-bottom:12px; }
#skill-management :is(.skill-management-item,.skill-management-detail,.skill-management-card) { border-radius:10px; }
#teaching-center .teaching-upload-library { padding:0; border:0; background:transparent; }
#teaching-center .teaching-module-tabs { gap:6px; margin:12px 0; padding-bottom:12px; }
#teaching-center .teaching-library-head { margin-bottom:10px; }
#teaching-center .teaching-material-card { border-color:#dce8ea; border-radius:10px; }
#platform-home .platform-home-workspace { gap:14px; }
#platform-home .platform-home-hero { padding:20px; gap:16px; border-radius:12px; }
#platform-home .platform-home-hero h2 { font-size:23px; margin-bottom:8px; }
#platform-home .platform-home-hero p { font-size:12px; }
#platform-home .platform-hero-symbol { width:56px; height:56px; border-radius:12px; font-size:28px; transform:none; box-shadow:none; }
#platform-home .platform-center-panel { min-height:0; }
#platform-home .platform-center-heading { margin-bottom:12px; }
#app-shell #platform-home .platform-center-heading h3 { font-size:15px; margin-bottom:4px; }
#platform-home .platform-center-grid { gap:12px; }
#platform-home .platform-center-card { padding:16px; border-radius:11px; gap:10px; background:#fff; }
#platform-home .platform-center-icon { width:38px; height:38px; border-radius:9px; font-size:20px; }
#app-shell #platform-home .platform-center-card h3 { font-size:16px; }
#platform-home .platform-center-features { display:none; }
#platform-home .platform-enter-button { min-height:36px; margin-top:auto; }
#app-shell :is(#crm-center,#warehouse-center) .center-preview-notice { font-size:12px; padding:9px 12px; margin:10px 0; }
#app-shell :is(#crm-center,#warehouse-center) .center-preview-stats { gap:10px; margin:12px 0; }
#app-shell :is(#crm-center,#warehouse-center) .center-preview-stats > div { padding:12px; border-radius:9px; }
#app-shell :is(#crm-center,#warehouse-center) .center-preview-stats strong { font-size:22px; margin-top:5px; }
#app-shell :is(#crm-center,#warehouse-center) .center-preview-tabs { gap:6px; margin:12px 0; }
#app-shell :is(#crm-center,#warehouse-center) .crm-preview-cards { gap:10px; }
@media(max-width:1100px) {
 #tasks .compact-demand-table { min-width:720px; }
 #tasks .dispatch-all-demands-table-wrap { overflow-x:auto; }
}
@media(max-width:640px) {
 #app-shell .view:not(#dashboard) .panel { padding:12px; border-radius:10px; }
 #app-shell .view:not(#dashboard) :is(button.primary,button.secondary) { min-height:44px; padding:9px 11px; }
 #app-shell .view:not(#dashboard) :is(input,select):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]) { min-height:44px; }
 #app-shell .compact-fold > summary { padding:12px; }
 #demands .demand-farm-entry-row { grid-template-columns:1fr; gap:10px; }
 #demands .demand-basic-grid { gap:10px; }
 #reports .rc-metric strong { font-size:21px; }
 #platform-home .platform-home-hero { padding:16px; }
 #platform-home .platform-home-hero h2 { font-size:20px; }
 #platform-home .platform-center-card { padding:14px; }
 #jt808 .gps-readiness-counts strong { font-size:19px; }
}

/* Forms and reference pages size to their contents instead of empty viewport space. */
#app-shell #demands .demand-workspace { flex:0 1 auto; max-height:100%; overflow:auto; }
#demands :is(.demand-entry-section,.demand-entry-form,.demand-basic-grid) { flex:0 0 auto; overflow:visible; }
#app-shell :is(#employee-accounts,#agent-management,#skill-management,#crm-center,#warehouse-center) > .panel { flex:0 1 auto; height:auto; max-height:100%; min-height:0; overflow:auto; }
@media(max-width:640px) { #app-shell #demands .demand-workspace, #app-shell :is(#employee-accounts,#agent-management,#skill-management,#crm-center,#warehouse-center) > .panel { max-height:none; overflow:visible; } }

#app-sidebar #platform-return-button { justify-content:flex-start; }
#app-sidebar #platform-return-button > span { flex:0 1 auto; margin-left:0; text-align:left; }
#employee-account-message:empty, #agent-admin-message:empty { display:none; }
/* Video identity belongs on its cover; keep actions compact below. */
#teaching-center .teaching-cover-part { position:absolute; top:10px; left:10px; z-index:2; padding:4px 8px; border:1px solid #d4e5e6; border-radius:6px; background:#fffffff2; color:#24505d; font-size:11px; font-weight:700; line-height:1.4; }
#teaching-center .teaching-cover-caption { position:absolute; inset:auto 0 0; z-index:1; padding:24px 12px 10px; color:white; font-size:14px; font-weight:600; line-height:1.5; text-align:left; background:linear-gradient(transparent,#123047d9); }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-body,
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-body:not(:has(> .teaching-material-description)) { grid-template-areas:"actions handle" "description description"; grid-template-columns:minmax(0,1fr) 24px; gap:8px; padding:10px 12px; align-items:center; }
#teaching-center .teaching-material-card:has(> .teaching-video-cover) .teaching-card-body:not(:has(.teaching-drag-handle)) { grid-template-columns:minmax(0,1fr); grid-template-areas:"actions" "description"; }
/* A single compact teaching toolbar; modules scroll within their own row. */
#app-shell #teaching-center .teaching-topbar { display:flex; align-items:center; gap:16px; min-width:0; padding-bottom:12px; margin-bottom:16px; border-bottom:1px solid #dce8ea; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tabs { display:flex; flex:1 1 auto; min-width:0; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; gap:6px; padding:3px 2px 6px; margin:0; border:0; scrollbar-width:thin; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab { position:relative; flex:0 0 auto; min-height:38px; padding:8px 11px; border:0; border-radius:6px; background:transparent; color:#647d89; font-size:12px; font-weight:600; line-height:1.5; white-space:nowrap; box-shadow:none; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab[aria-selected="true"] { background:#eaf6f4; color:#147d83; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab[aria-selected="true"]::after { content:""; position:absolute; height:2px; bottom:0; left:11px; right:11px; background:#147d83; border-radius:2px; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab:hover { color:#147d83; background:#f1f8f7; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab:focus-visible { outline:2px solid #147d83; outline-offset:-2px; }
#app-shell #teaching-center .teaching-topbar .teaching-module-tab[hidden] { display:none; }
#app-shell #teaching-center .teaching-topbar #teaching-upload-open { flex:0 0 auto; min-height:36px; padding:8px 12px; border-radius:7px; font-size:12px; white-space:nowrap; }
@media(max-width:640px) {
 #app-shell #teaching-center .teaching-topbar { gap:8px; margin-bottom:12px; padding-bottom:8px; }
 #app-shell #teaching-center .teaching-topbar .teaching-module-tab { min-height:44px; padding:10px; }
 #app-shell #teaching-center .teaching-topbar #teaching-upload-open { min-height:44px; padding:9px 10px; }
}
/* Future Agent conversation slot; intentionally disconnected until integration. */
#dashboard .dashboard-side-column { display:flex; flex-direction:column; align-items:stretch; width:100%; }
#app-shell #dashboard .dashboard-agent-panel { display:flex; flex-direction:column; gap:0; min-height:342px; min-width:0; }
#dashboard .dashboard-agent-heading { display:flex; align-items:center; gap:8px; }
#dashboard .dashboard-agent-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:8px; background:#eaf6f4; color:#147d83; font-size:17px; }
#dashboard .dashboard-agent-status { padding:3px 7px; border:1px solid #e0e8eb; border-radius:5px; color:#7a8e99; background:#f5f8f9; font-size:11px; white-space:nowrap; }
#dashboard .dashboard-agent-messages { flex:1; display:flex; min-height:172px; max-height:360px; overflow-y:auto; padding:12px; border:1px solid #e5eef0; border-radius:8px; background:#fbfdfd; }
#dashboard .dashboard-agent-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; width:100%; text-align:center; }
#dashboard .dashboard-agent-empty > i { color:#8ab9b8; font-size:27px; }
#dashboard .dashboard-agent-empty strong { color:#476773; font-size:13px; font-weight:600; }
#dashboard .dashboard-agent-empty span { color:#8a9ca5; font-size:11px; }
#dashboard .dashboard-agent-composer { position:relative; margin-top:12px; }
#dashboard .dashboard-agent-composer textarea { width:100%; min-height:68px; padding:10px 46px 10px 12px; border:1px solid #dce8ea; border-radius:8px; background:#f5f8f9; color:#7e919b; font-size:12px; line-height:1.6; resize:none; }
#dashboard .dashboard-agent-composer textarea::placeholder { color:#97a8b0; }
#dashboard .dashboard-agent-composer button { position:absolute; right:8px; bottom:10px; width:30px; min-width:30px; height:30px; min-height:30px; padding:0; border-radius:7px; background:#dce9e9; color:#87a6a7; border:0; box-shadow:none; cursor:not-allowed; }
@media(max-width:640px) { #app-shell #dashboard .dashboard-agent-panel { min-height:310px; } #dashboard .dashboard-agent-composer textarea { min-height:78px; padding-right:58px; } #dashboard .dashboard-agent-composer button { width:40px; min-width:40px; height:40px; min-height:40px; } }

/* UAT: readable proportional navigation; a usable icon rail on small screens. */
@media(min-width:641px) {
 #app-sidebar { width:clamp(232px,18vw,296px); padding:clamp(20px,2vw,32px) clamp(16px,1.4vw,24px); }
 #app-sidebar nav button { min-height:42px; font-size:clamp(14px,.95vw,16px); }
 #app-sidebar .sidebar-brand-title strong { font-size:clamp(15px,1.05vw,18px); }
 #app-sidebar .sidebar-home-button { min-height:44px; font-size:clamp(14px,.95vw,16px); }
}
body.sidebar-collapsed #app-sidebar nav { display:block; padding-top:12px; }
body.sidebar-collapsed #app-sidebar nav button:not([hidden]) { display:flex; justify-content:center; min-height:44px; padding:10px 4px; }
body.sidebar-collapsed #app-sidebar nav :is(.nav-item-label,.nav-count,.nav-section-arrow,.nav-parent-label),
body.sidebar-collapsed #app-sidebar .nav-section-label > span:not(.nav-section-logo),
body.sidebar-collapsed #app-sidebar .nav-section-link-label > span:not(.nav-section-logo),
body.sidebar-collapsed #app-sidebar .nav-children-item { display:none; }
body.sidebar-collapsed #app-sidebar .nav-section-items { padding-left:0; border:0; }
#reports .rc-table { width:100%; table-layout:auto; }
#reports .rc-table th { text-align:center; white-space:normal; }
#reports .rc-table td.rc-number { text-align:right; font-variant-numeric:tabular-nums; }

body.sidebar-collapsed #app-sidebar .nav-children { padding-left:0; border:0; }
@media(max-width:640px) {
 body.sidebar-collapsed #app-sidebar { max-height:140px; padding:10px 14px; }
 body.sidebar-collapsed #app-sidebar .brand { display:flex; flex-direction:row; gap:10px; }
 body.sidebar-collapsed #app-sidebar nav { display:flex; flex:0 0 auto; gap:6px; overflow-x:auto; overflow-y:hidden; max-height:60px; }
 body.sidebar-collapsed #app-sidebar nav > div:not([hidden]) { display:contents; }
 body.sidebar-collapsed #app-sidebar nav .nav-section-items { display:none; }
 body.sidebar-collapsed #app-sidebar nav button:not([hidden]) { flex:0 0 44px; width:44px; margin:0; }
 body.sidebar-collapsed #app-sidebar .sidebar-home-button { align-self:auto; margin:0; }
}

#app-sidebar .nav-section-logo { color:inherit; font-size:17px; width:22px; height:22px; }
#app-sidebar :is(.nav-section-link,.nav-section-toggle):is(.active,:hover) .nav-section-logo { color:inherit; }
#app-sidebar .nav-section-link-label, #app-sidebar .nav-section-label { gap:10px; }
#dashboard :is(.dashboard-priority-panel,.dashboard-agent-panel) h2 { font-size:16px; font-weight:650; line-height:1.5; }
#dashboard .dashboard-command-metric strong { font-variant-numeric:tabular-nums; line-height:1.25; }
body.sidebar-collapsed #app-sidebar nav > #transport-nav-children { overflow:visible; flex-shrink:0; }

#dashboard .dashboard-command-metric strong[data-unit]::after { content:attr(data-unit); margin-left:5px; font-size:12px; font-weight:500; color:#718995; }

body.sidebar-collapsed #app-sidebar .nav-section-items,
body.sidebar-collapsed #app-sidebar nav button.nav-children-item { display:none !important; }
@media(max-width:640px) {
 body[data-center="vehicle"].sidebar-collapsed #app-sidebar #transport-nav-children { display:contents !important; }
}

/* The workbench's two desktop columns share one row height. */
@media(min-width:1181px) {
 #dashboard .dashboard-command-grid { align-items:stretch; }
 #dashboard .dashboard-primary-column > .dashboard-priority-panel,
 #app-shell #dashboard .dashboard-side-column > .dashboard-agent-panel { flex:1 1 auto; }
 #dashboard .dashboard-priority-panel { display:flex; flex-direction:column; }
 #dashboard .dashboard-priority-list { display:flex; flex:1 1 auto; flex-direction:column; }
 #dashboard .dashboard-priority-list > .dashboard-empty { flex:1 1 auto; }
 #dashboard .dashboard-agent-messages { max-height:none; }
}

/* Demand overview: reserve compact identifiers and readable text columns. */
#tasks .dispatch-all-demands-table-wrap { max-width:100%; overflow-x:auto; }
#tasks .dispatch-all-demands-table { width:100%; min-width:1120px; table-layout:fixed; }
#tasks .dispatch-all-demands-table :is(th,td) { padding:8px; line-height:1.5; }
#tasks .dispatch-all-demands-table th { white-space:nowrap; }
#tasks .dispatch-all-demands-table td:not(:nth-child(2)):not(:nth-child(4)):not(.daily-demand-action-cell) { white-space:nowrap; }
#tasks .dispatch-all-demands-table td:nth-child(2), #tasks .dispatch-all-demands-table td:nth-child(4) { overflow-wrap:anywhere; }
#tasks .dispatch-all-demands-table th:nth-child(1) { width:7%; }
#tasks .dispatch-all-demands-table th:nth-child(2) { width:12%; }
#tasks .dispatch-all-demands-table th:nth-child(3) { width:6%; }
#tasks .dispatch-all-demands-table th:nth-child(4) { width:20%; }
#tasks .dispatch-all-demands-table th:nth-child(5) { width:10%; }
#tasks .dispatch-all-demands-table th:nth-child(6) { width:8%; }
#tasks .dispatch-all-demands-table th:nth-child(7) { width:8%; }
#tasks .dispatch-all-demands-table th:nth-child(8) { width:8%; }
#tasks .dispatch-all-demands-table th:nth-child(9) { width:8%; }
#tasks .dispatch-all-demands-table th:nth-child(10) { width:6%; }
#tasks .dispatch-all-demands-table th:nth-child(11) { width:7%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(1) { width:7%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(2) { width:12%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(3) { width:5%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(4) { width:16%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(5) { width:9%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(6) { width:8%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(7) { width:8%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(8) { width:8%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(9) { width:7%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(10) { width:6%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(11) { width:6%; }
#tasks .dispatch-all-demands-table.has-demand-actions th:nth-child(12) { width:8%; }
#tasks .dispatch-all-demands-table.has-demand-actions { min-width:1240px; }
/* Settlement summary: space the three facts as aligned groups. */
#settlements .settlement-task-card { container-type:inline-size; }
#settlements .settlement-task-card .settlement-card-header { grid-template-columns:minmax(0,1fr) auto auto; column-gap:16px; row-gap:10px; }
#settlements .settlement-task-card .settlement-card-header .settlement-card-vehicle { gap:8px; }
#settlements .settlement-task-card .settlement-card-header > .settlement-card-facts,
#settlements .settlement-task-card .settlement-card-header > .settlement-card-return { gap:6px; padding-left:12px; border-left:1px solid #e0e9ed; white-space:nowrap; }
#settlements .settlement-task-card .settlement-card-return { grid-column:auto; justify-self:end; }
@container(max-width:440px) {
 #settlements .settlement-task-card .settlement-card-header { grid-template-columns:minmax(0,1fr) auto; column-gap:16px; }
 #settlements .settlement-task-card .settlement-card-identity { grid-column:1/-1; }
 #settlements .settlement-task-card .settlement-card-header > .settlement-card-facts { text-align:left; padding-left:0; border-left:0; }
 #settlements .settlement-task-card .settlement-card-return { grid-column:2; }
}

/* Embedded CRM keeps its own login and persistent business database. */
.crm-live-panel{padding:16px;overflow:hidden}.crm-live-panel .panel-head{margin-bottom:8px}.crm-login-notice{margin:0 0 12px;font-size:13px}.crm-live-panel iframe{display:block;width:100%;height:calc(100dvh - 245px);min-height:600px;border:1px solid var(--line,#e1e8e6);border-radius:10px;background:#fff}@media(max-width:768px){.crm-live-panel{padding:8px}.crm-live-panel iframe{height:calc(100dvh - 230px);min-height:580px}.crm-live-panel .panel-head{gap:8px}}
/* Authorized application switching in the module brand. */
#app-sidebar .brand { grid-template-columns:minmax(0,1fr) 28px; gap:8px; }
#app-sidebar .brand .sidebar-center-switcher { display:flex; align-items:center; gap:7px; min-width:0; width:100%; min-height:50px; padding:6px 4px; border:1px solid transparent; border-radius:9px; color:var(--navy); background:transparent; text-align:left; cursor:pointer; }
#app-sidebar .brand .sidebar-center-switcher:hover, #app-sidebar .brand .sidebar-center-switcher[aria-expanded="true"] { border-color:#c8e4e2; background:#f0f8f7; }
#app-sidebar .brand .sidebar-center-switcher:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
#app-sidebar .sidebar-center-switcher .sidebar-brand-mark { display:grid; flex:0 0 34px; width:34px; height:36px; margin:0; align-self:center; }
#app-sidebar .sidebar-center-switcher .sidebar-brand-title { display:block; flex:1; min-width:0; margin:0; }
#app-sidebar .sidebar-center-switcher .sidebar-brand-eyebrow { margin:0 0 3px; font-size:9px; overflow:hidden; text-overflow:ellipsis; }
#app-sidebar .sidebar-center-switcher .sidebar-brand-title strong { font-size:15px; line-height:1.5; overflow:hidden; text-overflow:ellipsis; }
#app-sidebar .app-switcher-panel { position:absolute; top:calc(100% - 6px); left:0; z-index:80; width:min(366px,calc(100vw - 24px)); max-height:calc(100dvh - 140px); overflow:auto; padding:12px; border:1px solid #dae7eb; border-radius:12px; background:#fff; color:var(--ink); box-shadow:0 16px 50px #17394d24,0 2px 6px #17394d08; }
#app-sidebar .app-switcher-panel span { margin:0; color:inherit; font-size:inherit; }
#app-sidebar .app-switcher-heading { display:flex; justify-content:space-between; align-items:center; padding:2px 5px 10px; color:#728995; font-size:12px; font-weight:600; }
#app-sidebar .app-switcher-heading button { display:grid; place-items:center; width:24px; height:24px; padding:0; border:0; background:transparent; color:#82969f; font-size:12px; }
#app-sidebar #platform-return-button { display:flex; align-items:center; justify-content:flex-start; gap:10px; width:100%; margin:0 0 10px; padding:11px 12px; border:0; border-radius:8px; background:#f5f8f9; color:var(--navy); font-size:13px; font-weight:600; }
#app-sidebar #platform-return-button > span { flex:1; margin:0; color:inherit; font-size:inherit; }
#app-sidebar #platform-return-button > .bi-chevron-right { margin-left:auto; font-size:11px; color:#8ca0a9; }
#app-sidebar .app-switcher-apps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
#app-sidebar .app-switcher-entry { display:flex; align-items:center; gap:9px; min-width:0; min-height:68px; padding:10px 9px; border:1px solid transparent; border-radius:9px; background:#fff; color:var(--navy); text-align:left; cursor:pointer; }
#app-sidebar .app-switcher-entry:hover, #app-sidebar #platform-return-button:hover { background:#f2f8f8; }
#app-sidebar .app-switcher-entry[aria-checked="true"] { border-color:#bcdfdc; background:#edf8f5; color:var(--teal); }
#app-sidebar .app-switcher-icon { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:8px; background:#edf3fb; color:#6b8dbe; font-size:19px; }
#app-sidebar [data-switcher-center="vehicle"] .app-switcher-icon { background:#e4f4f1; color:#248d8c; }
#app-sidebar [data-switcher-center="warehouse"] .app-switcher-icon { background:#fff4e6; color:#bd8944; }
#app-sidebar [data-switcher-center="teaching"] .app-switcher-icon { background:#f1edfa; color:#8e7ab8; }
#app-sidebar .app-switcher-label { display:flex; flex-direction:column; gap:4px; min-width:0; font-size:12px; font-weight:600; }
#app-sidebar .app-switcher-label small { font-size:10px; font-weight:500; color:#4b9690; }
#app-sidebar .app-switcher-admin-title { margin:13px 5px 6px; padding-top:12px; border-top:1px solid #e8eff1; color:#8198a2; font-size:11px; }
#app-sidebar .app-switcher-admin { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
#app-sidebar .app-switcher-admin .app-switcher-entry { flex-direction:column; justify-content:center; gap:7px; min-height:65px; padding:10px 3px; text-align:center; }
#app-sidebar .app-switcher-admin .app-switcher-icon { flex:0 0 22px; width:24px; height:22px; background:transparent; color:#6b8996; font-size:18px; }
#app-sidebar .app-switcher-admin .app-switcher-label { font-size:11px; }
#app-sidebar .app-switcher-panel button:focus-visible { outline:2px solid var(--teal); outline-offset:1px; }
body.sidebar-collapsed #app-sidebar .brand .sidebar-center-switcher { flex:none; justify-content:center; width:40px; min-height:40px; padding:0; }
body.sidebar-collapsed #app-sidebar .sidebar-center-switcher :is(.sidebar-brand-title,.app-switcher-caret) { display:none; }
body.sidebar-collapsed #app-sidebar .app-switcher-panel { position:fixed; top:76px; left:12px; }
@media(max-width:640px) {
 #app-sidebar .app-switcher-panel, body.sidebar-collapsed #app-sidebar .app-switcher-panel { position:fixed; top:72px; left:12px; max-height:calc(100dvh - 88px); }
 body.sidebar-collapsed #app-sidebar .brand .sidebar-center-switcher { flex:0 0 40px; margin-right:auto; }
 body.sidebar-collapsed #app-sidebar .brand .sidebar-collapse-toggle { margin-left:0; }
}

.app-switcher-dismiss { position:fixed; inset:0; z-index:70; background:transparent; }
#app-switcher-trigger[aria-expanded="true"] { position:relative; z-index:81; }

/* One platform shell owns the customer workspace and navigation. */
#crm-center.crm-integrated-view{position:relative;min-height:0;overflow:hidden;gap:0}#crm-center.crm-integrated-view #crm-live-frame{display:block;flex:1 1 auto;width:100%;height:100%;min-height:0;border:0;border-radius:0;background:#f4f7f8}#crm-center .crm-integrated-status{padding:18px;border:1px solid #dce5e9;border-radius:10px;background:#fff;color:#627782;font-size:13px}#crm-center .crm-integrated-status[hidden]{display:none}#crm-native-nav{min-width:0}#crm-native-nav .nav-section-title{margin:14px 0 5px;font-size:11px;color:#789499}#crm-native-nav button{width:100%;text-align:left}body[data-center="crm"] #page-subtitle:empty{display:none}
/* Compact account identity and focused management dialogs. */
.account-management-table .account-username { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.account-row-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.account-row-actions button,.account-row-more summary { padding:7px 10px; font-size:12px; white-space:nowrap; }
.account-row-more { position:relative; }
.account-row-more summary { cursor:pointer; color:var(--teal); }
.account-row-more > div { display:grid; gap:6px; padding:10px; border:1px solid var(--line); border-radius:8px; background:#fff; min-width:180px; }
.account-row-more > div button { text-align:left; background:#f7fafb; border:0; border-radius:5px; }
.account-row-more .muted { font-size:11px; }
.account-action-dialog { width:min(560px,calc(100vw - 28px)); max-height:85dvh; overflow:auto; padding:22px; border:1px solid var(--line); border-radius:14px; color:var(--ink); }
.account-action-dialog::backdrop { background:#12304766; }
.account-action-head { display:flex; align-items:start; justify-content:space-between; gap:12px; margin-bottom:18px; }
.account-action-head h2 { margin:0 0 6px; font-size:18px; }
.account-action-head p { margin:0; font-size:12px; }
#account-action-form { display:grid; gap:14px; }
#account-action-form label { display:grid; gap:7px; font-size:13px; font-weight:600; }
#account-action-form [hidden] { display:none; }
#account-action-note { margin:0; font-size:12px; line-height:1.6; }
#account-action-message { font-size:13px; color:var(--teal); }
.account-action-footer { display:flex; justify-content:flex-end; }
.account-log-item { padding:12px 0; border-bottom:1px solid var(--line); }
.account-log-item > div { display:flex; justify-content:space-between; gap:10px; font-size:13px; }
.account-log-item time,.account-log-item p { color:var(--muted); font-size:12px; }
.account-log-item p { margin:6px 0 0; overflow-wrap:anywhere; }

/* CRM shares the same grouped sidebar controls as vehicle navigation. */
#crm-native-nav .nav-section-items[hidden]{display:none}#crm-native-nav .nav-section-group{margin:2px 0}#crm-native-nav .nav-section-items{margin-bottom:8px}#crm-native-nav .nav-section-toggle{width:100%}#crm-native-nav .nav-section-link{font-size:14px}#crm-native-nav .nav-children-item{font-size:13px}
@media(max-width:640px){
 #app-shell #crm-center.crm-integrated-view{flex:0 0 auto;min-height:560px;height:calc(100dvh - 180px)}
 #app-shell #crm-center.crm-integrated-view #crm-live-frame{min-height:560px;height:100%}
}

@media(max-width:640px){body[data-center="crm"].sidebar-collapsed #crm-native-nav,body[data-center="crm"].sidebar-collapsed #crm-native-nav .nav-section-group{display:contents}}
/* Loading chrome stays native until the matching CRM document is ready. */
#crm-center #crm-live-frame[data-loading="1"]{visibility:visible;pointer-events:auto}
#crm-center .crm-integrated-status{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:10px;min-height:72px;z-index:1}
#crm-center .crm-integrated-status::before{content:"";width:16px;height:16px;flex:0 0 16px;border:2px solid #d4ece9;border-top-color:#147d83;border-radius:50%;animation:crm-loading-spin .9s linear infinite}
#crm-native-nav .nav-section-arrow{display:inline-grid;place-items:center;transform:none}#crm-native-nav .nav-section-arrow::before{transition:transform .16s ease}
#crm-native-nav .nav-section-toggle.is-current{color:#147d83;background:#f1f9f9}
#crm-native-nav .nav-section-toggle.is-current .nav-section-logo{color:#147d83}
#crm-native-nav .nav-section-items:has(.active){border-left-color:#b8d9d9}
@keyframes crm-loading-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#crm-center .crm-integrated-status::before{animation:none}#crm-native-nav .nav-section-arrow::before{transition:none}}

#crm-center .crm-integrated-status[data-state="error"]::before{content:"!";display:grid;place-items:center;animation:none;border:1px solid #edc8ba;background:#fff2eb;color:#9c4e2c;font-size:12px;font-weight:700}

/* CRM batch round 2: keep mobile drawer/modal actions inside the visible business frame. */
@media(max-width:640px){
 body[data-center="crm"] #app-shell>main{overflow:hidden}
 #app-shell #crm-center.crm-integrated-view{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}
 #app-shell #crm-center.crm-integrated-view #crm-live-frame{min-height:0;height:100%}
}

/* Teaching documents open directly as a full-content-area reader. */
#teaching-viewer-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}
#teaching-viewer-controls>a{text-decoration:none;white-space:nowrap;font-size:12px}
#teaching-viewer-dialog[data-kind="document"][open]{position:fixed;inset:0;display:flex;flex-direction:column;gap:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#fff}
#teaching-viewer-dialog[data-kind="document"]>.panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 18px;border-bottom:1px solid #dce5e9;background:#fff}
#teaching-viewer-dialog[data-kind="document"] #teaching-viewer-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.5}
#teaching-viewer-dialog[data-kind="document"] #teaching-viewer-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;gap:0;overflow:hidden}
#teaching-viewer-dialog[data-kind="document"] #teaching-viewer-body iframe{display:block;flex:1 1 auto;width:100%;height:100%;min-height:0;border:0;background:#525659}
#teaching-viewer-dialog[data-kind="document"] .teaching-material-description{flex:0 0 auto;margin:0;padding:6px 18px;max-height:72px;overflow:auto;border-top:1px solid #dce5e9;font-size:12px;color:#71808a}
@media(max-width:640px){
 #teaching-viewer-dialog[data-kind="document"]>.panel-head{padding:8px 10px;gap:8px}
 #teaching-viewer-dialog[data-kind="document"] #teaching-viewer-title{font-size:13px}
 #teaching-viewer-controls{gap:6px}
 #teaching-viewer-controls :is(a,button){padding:8px;font-size:12px;min-height:36px}
}
/* CRM native migration phase 2: first platform-owned dashboard view. */
#crm-center .crm-native-root{height:100%;overflow:auto;padding:18px;background:#f4f7f8}#crm-center .crm-native-root[hidden]{display:none}.crm-native-page{max-width:1180px;margin:0 auto}.crm-native-page .panel-head{margin-bottom:14px}.crm-native-page .crm-native-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.crm-native-page .crm-native-stat{padding:16px;background:#fff;border:1px solid var(--line);border-radius:10px}.crm-native-page .crm-native-stat span{display:block;color:var(--muted);font-size:12px}.crm-native-page .crm-native-stat strong{display:block;margin-top:8px;color:var(--ink);font-size:24px}.crm-native-page .crm-native-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.crm-native-page .crm-native-list{margin:0;padding:0;list-style:none}.crm-native-page .crm-native-list li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.crm-native-page .crm-native-list li:last-child{border-bottom:0}.crm-native-page .crm-native-error{color:#a33;background:#fff2f0;border:1px solid #f1ccc5;border-radius:8px;padding:12px}@media(max-width:640px){.crm-native-page .crm-native-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-native-page .crm-native-grid{grid-template-columns:1fr}}
.crm-native-dialog{border:0;border-radius:12px;padding:0;width:min(680px,calc(100vw - 32px));color:#203746;background:transparent}.crm-native-dialog::backdrop{background:rgba(24,45,58,.38)}.crm-native-dialog-card{padding:22px;background:#fff;border:1px solid #dce5e9;border-radius:12px}.crm-native-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.crm-native-detail-grid>div{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #e2eaed;border-radius:8px;background:#fbfdfd}.crm-native-detail-grid strong{overflow-wrap:anywhere}.crm-native-dialog-actions{display:flex;justify-content:flex-end;margin-top:18px}.crm-native-row-action{min-height:32px;padding:4px 12px}@media(max-width:640px){.crm-native-detail-grid{grid-template-columns:1fr}}
.crm-native-detail-grid label{display:flex;flex-direction:column;gap:6px}.crm-native-detail-grid input{width:100%;min-height:38px;border:1px solid #dce5e9;border-radius:7px;padding:8px 10px;color:#203746;background:#fff;font:inherit}.crm-native-detail-grid input:focus{outline:2px solid #b8dfdc;border-color:#16878b}
.crm-native-inline-actions{display:inline-flex;gap:6px;margin-left:auto}.crm-native-inline-actions .secondary{min-height:30px;padding:3px 10px}@media(max-width:640px){.crm-native-inline-actions{width:100%;margin-left:0}}
.crm-native-loading{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}.crm-native-loading .spinner{width:24px;height:24px;border:3px solid rgba(20,135,145,.18);border-top-color:#148791;border-radius:50%;animation:crm-native-spin .8s linear infinite}@keyframes crm-native-spin{to{transform:rotate(360deg)}}
.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;line-height:1.2;font-weight:600;white-space:nowrap}.status-pill.is-success{color:#0d706f;background:#e4f6f3}.status-pill.is-muted{color:#6f7e86;background:#eef2f4}
.crm-native-page table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.crm-native-page table th{background:#f7fafb;color:#60747d;font-weight:600;white-space:nowrap}.crm-native-page table th,.crm-native-page table td{padding:11px 12px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}.crm-native-page table tbody tr:hover{background:#f8fcfc}.crm-native-page button:focus-visible,.crm-native-dialog button:focus-visible,.crm-native-dialog input:focus-visible{outline:2px solid #16878b;outline-offset:2px}.crm-native-dialog-card{max-height:min(86vh,760px);overflow:auto}@media(max-width:640px){.crm-native-dialog{width:calc(100vw - 20px)}.crm-native-dialog-card{padding:16px}.crm-native-page table{min-width:680px}}
@media (prefers-reduced-motion: reduce){.crm-native-loading .spinner{animation:none;border-top-color:#14878b}}
