:root{--ink:#1d2733;--muted:#6b7682;--line:#e3e7ec;--bg:#f4f6f9;--panel:#fff;--brand:#1f3a5f;--accent:#2563eb;--accent-soft:#e8efff;--bad:#c62828;--good:#2e7d32}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--ink);background:var(--bg);margin:0;font:13px/1.4 Google Sans,Roboto,Arial,sans-serif;overflow:hidden}#root{flex-direction:column;display:flex}input,select,button{font:inherit;color:inherit}input:not([type=checkbox]):not([type=range]),select{background:#fff;border:1px solid #c9d0d8;border-radius:6px;width:100%;padding:7px 9px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}input[readonly]{background:var(--bg);color:var(--muted);border-style:dashed}button{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c9d0d8;border-radius:6px;padding:7px 12px}button:hover:not(:disabled){border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.45;cursor:default}a{color:var(--accent);text-decoration:none}.neg{color:var(--bad)}.muted{color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:48px 16px}.topbar{background:var(--brand);color:#fff;align-items:center;gap:16px;padding:10px 20px;display:flex}.topbar h1{align-items:center;gap:9px;margin:0;font-size:17px;font-weight:600;display:flex}.topbar h1 .icon-truck{color:#fff;margin:0}button:disabled:has(.spinner){opacity:1;cursor:progress}.spinner{vertical-align:-2px;border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.tabs{background:var(--panel);border-bottom:1px solid var(--line);gap:2px;padding:0 20px;display:flex;overflow-x:auto}.tab{color:var(--muted);background:0 0;border:3px solid #0000;border-left:0;border-right:0;border-radius:0;justify-content:center;align-items:center;min-height:54px;padding:0 14px;line-height:1.25;display:flex;position:relative}.tab>span{display:block}.tab:not(.active):hover:not(:disabled){color:var(--ink);border-bottom-color:var(--line)}.tab.active{color:var(--brand);border-bottom-color:var(--accent)}.tab small{text-align:center;white-space:nowrap;font-size:11px;font-weight:400;line-height:1.2;display:block;position:absolute;top:calc(50% + 9px);left:0;right:0}.tabs-spacer{flex:1}.planner-empty{color:var(--muted);max-width:560px;padding:40px 28px}.planner-empty h2{color:var(--ink);margin:0 0 8px;font-size:16px}.dialog-summary{background:var(--accent-soft);color:var(--brand);border:1px solid #c8d7fb;border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.dispatch-problems{margin:8px 0 0;padding-left:18px;font-size:13px}.dispatch-problems li{margin:3px 0}button.danger{background:var(--bad);border-color:var(--bad);color:#fff}button.danger:hover:not(:disabled){background:#a61f1f;border-color:#a61f1f}.dialog-foot .danger{justify-content:center;align-items:center;gap:7px;min-width:120px;display:inline-flex}.dialog-warning{color:#7a4a00;background:#fff4e0;border:1px solid #f1d19b;border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.delete-window{color:var(--bad);background:#fff;border-color:#efc4c1;align-self:center;font-size:12px}.delete-window:hover:not(:disabled){border-color:var(--bad);background:#fdecea}.panes{flex:1;grid-template-columns:380px 1fr;gap:12px;min-height:0;padding:12px 20px 16px;display:grid}.pane{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-height:0;display:flex}.pane-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.pane-body{flex:1;min-height:0;overflow-y:auto}.card{border-bottom:1px solid var(--line);cursor:default;border-left:3px solid #0000;padding:10px 14px}.card:hover{background:#fafbfc}.card.active{background:var(--accent-soft);border-left-color:var(--accent)}.card[draggable=true]{cursor:grab}.card[draggable=true]:active{cursor:grabbing}.card .top{justify-content:space-between;align-items:flex-start;gap:8px;font-weight:600;display:flex}.card .top>span:first-child{overflow-wrap:anywhere;min-width:0}.card .top .chip{flex-shrink:0;margin-top:1px}.card .sub{color:var(--muted);margin-top:2px;font-size:12px}.card .actions{align-items:center;gap:8px;margin-top:6px;display:flex}.card .actions .view{padding:3px 12px;font-size:12px}.card .actions .grip{color:#9aa4ae;margin-left:auto;font-size:12px}.card.loaded{background:#f3f4f6}.card.loaded .top,.card.loaded .sub,.card.loaded .chip{opacity:.5;filter:grayscale()}.chip{color:#3c4a59;white-space:nowrap;background:#e8ecf1;border-radius:10px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-block}.chip.NEEDS{color:var(--bad);background:#fdecea}.chip.DISPATCHED{color:#9a5b00;background:#fff4e0}.chip.PICKED{color:#1d4ed8;background:#e6f0ff}.chip.DOCKED{color:var(--good);background:#e7f5ec}.chip.DELIVERED,.chip.OUT{color:#5b3a9c;background:#ede7f6}.chip.LINEHAUL{color:#00695c;background:#e0f2f1}.chip.CANCELED{color:#757575;background:#eee}.chip.ontruck{color:var(--good);background:#e7f5ec}.chip.partial{color:#9a5b00;background:#fff4e0}.chip.nodims{color:var(--bad);background:#fdecea;border:1px solid #f1c0bb;font-weight:600}.modal{z-index:20;background:#0f172073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-box{background:#fff;border-radius:12px;width:min(460px,94vw);overflow:hidden;box-shadow:0 12px 40px #00000040}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.dialog-head h2{margin:0;font-size:17px}.dialog-body{padding:16px 18px 6px}.dialog-body label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.dialog-body input.invalid{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.dialog-hint{color:var(--muted);margin:8px 0 0;font-size:12px}.dialog-body .dialog-gap{margin-top:16px}.money-input{background:#fff;border:1px solid #c9d0d8;border-radius:6px;align-items:center;display:flex}.money-input:focus-within{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.money-input span{color:var(--muted);padding:0 2px 0 10px}.money-input input{box-shadow:none!important;border:0!important;outline:none!important;padding-left:4px!important}.money-input:has(input.invalid){border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.dialog-error{color:#8e1c1c;background:#fdecea;border:1px solid #f3b4b0;border-radius:6px;margin:10px 0 0;padding:8px 10px;font-size:13px}.dialog-foot{justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.dialog-foot .primary{justify-content:center;align-items:center;gap:7px;min-width:120px;display:inline-flex}.dialog-foot .spinner{border-color:#fff #fff6 #fff6}.modal-box{background:#fff;border-radius:12px;flex-direction:column;width:min(1480px,96vw);max-height:min(92vh,900px);display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000040}.editor-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 18px;display:flex}.editor-head h2{margin:0;font-size:17px}.editor-head .spacer{flex:1}.dirty-note{color:var(--accent);font-weight:600}.groups{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px;padding:12px 16px 14px;display:grid}.group-column{flex-direction:column;gap:12px;min-width:0;display:flex}.groups:has(.group-column.stretch){align-items:stretch}.group-column:not(.stretch){align-self:start}.group-column.stretch>.group:last-child{flex:1}.group.one-per-line .field{grid-column:span 4}.group{flex-direction:column;display:flex}.fields.fields-bottom{row-gap:2px;margin-top:auto;padding-top:4px}.fields.fields-bottom .field.check{grid-column:span 4;min-height:26px}@media (width<=1200px){.groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.group{border:1px solid var(--line);border-radius:8px}.group h3{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);background:var(--bg);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0;margin:0;padding:7px 11px;font-size:12px}.fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px;padding:9px 11px 11px;display:grid}.field{grid-column:span 4}.field.half{grid-column:span 2}.field.quarter{grid-column:span 1}.field label{color:var(--muted);margin-bottom:3px;font-size:11px;display:block}.field.check{align-self:end;align-items:center;gap:7px;min-height:34px;display:flex}.field.check label{color:var(--ink);margin:0;font-size:13px}.field.check input{width:16px;height:16px}.field.dirty input:not([type=checkbox]),.field.dirty select{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:#fbfcff}.field.dirty.check label{color:var(--accent);font-weight:600}.truck-bar-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:11px}.truck-bar{border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;display:flex}.truck-tab,.add-truck{border-radius:8px;min-width:124px;height:46px}.truck-tab{text-align:left;padding:5px 12px}.truck-tab small{color:var(--muted);font-size:10.5px;display:block}.truck-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--brand);box-shadow:0 0 0 1px var(--accent);font-weight:600}.truck-tab.locked small{color:#8e1c1c}.add-truck{color:var(--accent);border-style:dashed;padding:5px 12px}.truck-bar-label{margin-right:4px}.transit-badge{color:#8e1c1c;background:#fdecea;border:1px solid #f3b4b0;border-radius:6px;padding:5px 10px;font-weight:600}fieldset.bed-size,fieldset.axle-controls{border:0;min-width:0;margin:0;padding:0}fieldset.bed-size{display:contents}.bed.locked{background-image:repeating-linear-gradient(45deg,#c628280d 0 10px,#0000 10px 20px);border-color:#9a6b6b}.bed.locked .slot{cursor:not-allowed}.chip.locked{color:#8e1c1c;background:#fdecea}.card.loaded .chip.locked{opacity:1;filter:none}fieldset.groups-lock{border:0;min-width:0;margin:0;padding:0}.locked-note{color:#8e1c1c;background:#fdecea;border:1px solid #f3b4b0;border-radius:8px;margin:14px 18px 0;padding:8px 12px;font-size:13px}.planner{overflow:hidden}.planner-main{min-height:0;overflow-y:auto}.planner-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.planner-head h2{white-space:nowrap}.planner-head-left{align-items:center;gap:10px;min-width:0;display:flex}.planner-head-right{display:flex}.planner-head h2{margin:0;font-size:15px}.planner-head label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.planner-head input{width:72px!important;padding:5px 6px!important}.planner-head select{width:auto!important;padding:5px 6px!important}.bed-stats{flex-wrap:wrap;gap:8px;padding:10px 14px 0;display:flex}.bed-stats div{background:var(--bg);color:var(--muted);border-radius:6px;padding:5px 10px;font-size:12px}.bed-stats b{color:var(--ink);margin-right:3px;font-size:14px}.bed-area{flex-direction:column;flex:none;gap:6px;padding:14px;display:flex}.bed-ends{color:var(--muted);letter-spacing:.06em;justify-content:space-between;font-size:11px;display:flex}.bed{box-sizing:content-box;background-color:#f8f9fb;border:3px solid #5b6875;border-radius:4px;position:relative}.bed.drop-hover{border-color:var(--accent);background-color:#eef4ff}.bed.remove-zone{border-color:var(--bad);border-style:dashed}.cell{pointer-events:none;border:1px dashed #c9d1da;position:absolute}.cell span{color:#aab3bd;font-size:10px;font-weight:600;position:absolute;bottom:2px;left:4px}.cell-waste{pointer-events:none;background:repeating-linear-gradient(45deg,#eceff3 0 4px,#f8f9fb 4px 8px);position:absolute;top:0}.piece .dims{color:#445;font-size:9px}.slot>.piece{padding-bottom:19px;line-height:1.1}.piece .load{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pallet-btns{z-index:2;gap:2px;display:flex;position:absolute;bottom:2px;right:2px}.turn-btn{color:#1d2733;cursor:pointer;background:#ffffffe6;border:1px solid #9aa4ae;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:flex;position:relative}.turn-btn:hover{border-color:var(--accent);color:var(--accent);background:#fff}.center-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.center-btn.on:hover{color:#fff;background:#1d4ed8}.piece .dims b{color:#8a4b00}.slot{touch-action:none;cursor:grab;border-radius:3px;justify-content:center;align-items:center;display:flex;position:absolute}.slot.multi{outline-offset:-2px;background:#1f3a5f12;outline:1.5px dashed #8a98a8}.slot.dragging{z-index:5;pointer-events:none}.slot>.piece{flex:none;position:relative}.piece{cursor:grab;-webkit-user-select:none;user-select:none;color:#1d2733;touch-action:none;background:#dfe6ee;border:1.5px solid #6b7c8f;border-radius:3px;padding:2px 3px;font-size:10px;line-height:1.15;position:absolute;overflow:hidden}.piece.stackable{background:#c8ecd2;border-color:#2e7d32}.piece.stacked{background:#b9d8f5;border-color:#1d4ed8}.piece.bad{border-color:var(--bad);background:#fbd5d5}.piece.dragging{opacity:.75;z-index:5;cursor:grabbing;pointer-events:none;box-shadow:0 4px 12px #00000040}.piece .h{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.piece .tag{color:#2e7d32;font-size:9px;font-weight:700}.piece .top-piece{cursor:grab;background:#e3efff;border:1.5px dashed #1d4ed8;border-radius:3px;padding:1px 3px;position:absolute;inset:22% 10% 21px}.piece .top-piece.dragging{z-index:6;opacity:.8;pointer-events:none;position:fixed;inset:auto}.piece.stack-target{box-shadow:0 0 0 3px #2e7d32}.piece.stack-refused{box-shadow:0 0 0 3px var(--bad)}.piece.will-remove{opacity:.45;border-color:var(--bad)!important;background:#fbd5d5!important}.ghost{border:2px dashed var(--accent);pointer-events:none;z-index:4;background:#2563eb1f;border-radius:3px;position:absolute}.ghost.blocked{border-color:var(--bad);background:#c628281f}.cg-line{pointer-events:none;z-index:3;border-left:2px dashed #d99a00;width:0;position:absolute;top:-6px;bottom:-6px}.drag-hint{pointer-events:none;background:var(--ink);color:#fff;z-index:30;white-space:nowrap;border-radius:6px;padding:4px 9px;font-size:12px;position:fixed;box-shadow:0 2px 8px #0003}.drag-hint.bad{background:var(--bad)}.drag-hint.good{background:var(--good)}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:11px;display:flex}.legend i{vertical-align:-2px;border:1.5px solid;border-radius:2px;width:12px;height:12px;margin-right:4px;display:inline-block}.axles{border-top:1px solid var(--line);padding:4px 14px 18px}.axle-title{margin:12px 0 6px;font-size:15px}.axle-alert{border:1px solid;border-radius:8px;margin:0 0 10px;padding:8px 12px;font-size:13px}.axle-alert ul{margin:4px 0 0;padding-left:18px}.axle-alert.ok{color:#1e5c33;background:#e7f5ec;border-color:#b9dfc6}.axle-alert.near{color:#7a4a00;background:#fff4e0;border-color:#f1d19b}.axle-alert.over{color:#8e1c1c;background:#fdecea;border-color:#f3b4b0}.axle-alert li.over{font-weight:600}.axle-view svg{width:100%;height:auto;display:block}.axle-controls{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px 18px;margin:8px 0 12px;display:grid}.axle-controls label{color:var(--muted);font-size:12px;display:block}.axle-controls label b{color:var(--ink);float:right}.axle-controls input[type=range]{width:100%;accent-color:var(--brand)}.axle-controls small{font-size:11px;display:block}.axle-ticket .reading{border-bottom:1px dashed var(--line);grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:2px 14px;padding:7px 0;display:grid}.axle-ticket .reading .name{font-weight:600}.axle-ticket .reading .val{text-align:right;font-size:18px;font-weight:700}.axle-ticket .reading .val small{color:var(--muted);font-size:11px;font-weight:400}.axle-ticket .reading .meta{color:var(--muted);grid-column:2/4;justify-content:space-between;font-size:12px;display:flex}.axle-ticket .bar{background:#e3e7ec;border-radius:5px;height:10px;position:relative;overflow:hidden}.axle-ticket .bar i{border-radius:5px;transition:width .2s;position:absolute;top:0;bottom:0;left:0}.axle-ticket .bar b{opacity:.55;background:#1d2733;width:2px;position:absolute;top:0;bottom:0}.st.ok{color:var(--good)}.st.near{color:#a0660a}.st.over{color:var(--bad);font-weight:600}.checks{margin:10px 0 0;padding:0;font-size:12px;list-style:none}.checks li{border-top:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);gap:12px;padding:5px 0;display:grid}.axle-note{color:var(--muted);margin:10px 0 0;font-size:11px}.toast{background:var(--ink);color:#fff;z-index:40;border-radius:8px;max-width:420px;padding:10px 14px;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 16px #0003}.toast.err{background:var(--bad)}@media (width<=900px){body{overflow:auto}.panes,.groups,.axle-controls{grid-template-columns:1fr}}.view-switch{border:1px solid var(--line);border-radius:7px;flex-shrink:0;align-self:center;margin-right:10px;display:flex;overflow:hidden}.view-switch button{background:var(--panel);color:var(--muted);border:0;border-radius:0;padding:5px 12px;font-size:12px}.view-switch button+button{border-left:1px solid var(--line)}.view-switch button:hover:not(:disabled):not(.on){color:var(--ink);background:var(--bg)}.view-switch button.on{background:var(--accent-soft);color:var(--brand);font-weight:600}.rate-line{justify-content:flex-end;align-items:center;gap:6px;display:flex}.rate-line b{color:var(--ink)}.rate-edit{padding:1px 8px;font-size:11px}.rate-form{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin:2px 0;display:flex}.rate-form label{font-size:12px}.rate-form .money-input{width:120px}.rate-form button{padding:4px 10px}.rate-error{color:var(--bad);white-space:normal;flex-basis:100%;font-size:12px}.dispatch-rate{border:1px solid var(--line);background:var(--bg);border-radius:6px;justify-content:space-between;align-items:baseline;padding:8px 10px;display:flex}.dispatch-rate span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.dispatch-rate b{font-size:15px}.sheet-pane{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;flex:1;min-height:0;margin:12px 20px 16px;display:flex;overflow:hidden}.sheet-pane .pane-head input{max-width:360px}.sheet-count{white-space:nowrap;font-size:12px}.sheet-scroll{flex:1;min-height:0;overflow:auto}table.sheet{border-collapse:separate;border-spacing:0;font-size:12px}table.sheet th,table.sheet td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;text-align:left;background:var(--panel);max-width:220px;padding:3px 8px;overflow:hidden}table.sheet thead th{z-index:2;color:var(--brand);background:#f7f9fb;font-weight:600;position:sticky}table.sheet thead tr:first-child th{height:24px;padding-top:3px;padding-bottom:3px;line-height:16px;top:0}table.sheet thead tr:nth-child(2) th{top:24px}table.sheet th.band{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom-width:2px;font-size:10px;font-weight:600}.band.g-Shipment{border-bottom-color:#2563eb}.band.g-Pickup{border-bottom-color:#d97706}.band.g-Delivery{border-bottom-color:#16a34a}.band.g-Freight{border-bottom-color:#7c3aed}.band.g-Money{border-bottom-color:#0891b2}.band.g-Paperwork{border-bottom-color:#64748b}.band.g-Other{border-bottom-color:#a3a3a3}table.sheet .sticky-col{z-index:1;width:128px;min-width:128px;max-width:128px;position:sticky;left:0}table.sheet .sticky-col.second{width:190px;min-width:190px;max-width:190px;box-shadow:2px 0 0 var(--line);left:128px}table.sheet thead .sticky-col{z-index:3}table.sheet td.load{font-weight:600}table.sheet td.num{text-align:right;font-variant-numeric:tabular-nums}table.sheet td.check{text-align:center;color:var(--good);font-weight:700}table.sheet td.err{color:var(--muted);text-align:center}table.sheet td.alt{background:#f3f5f8}table.sheet thead th.alt{background:#eaeef3}table.sheet .start{border-left:2px solid #c3ccd6}table.sheet tbody tr:hover td{background:#eef2f7}table.sheet tbody tr.active td{background:var(--accent-soft)}.truck-cell{display:table-cell}.truck-cell button.view{margin-right:6px;padding:1px 8px;font-size:11px}.truck-cell span{color:var(--muted);font-size:11px}.field .req{color:var(--bad)}.field.invalid input:not([type=checkbox]),.field.invalid select{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad);background:snow}.field-error{color:var(--bad);margin-top:3px;font-size:11.5px;line-height:1.3}.field-warning{color:#9a5b00;margin-top:3px;font-size:11.5px;line-height:1.3}.field-legacy{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.3}.problem-note{color:var(--bad);font-weight:600}.appt-input{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.appt-input input{min-width:0}.appt-input input[type=date]{flex:100%}.appt-input input[type=time]{flex:1}.remove-btn{margin-right:3px}.remove-btn:hover{border-color:var(--bad);color:var(--bad);background:#fff5f5}.piece .top-piece .top-btns{position:absolute;top:1px;right:1px}.piece .top-piece .remove-btn{width:14px;height:14px;margin:0}.piece .top-piece .remove-btn svg{width:10px;height:10px}.window-filter{flex-shrink:0;align-items:center;display:flex}.filter-btn{width:32px;height:30px;color:var(--muted);justify-content:center;align-items:center;padding:0;display:flex;position:relative}.filter-btn:hover:not(:disabled){color:var(--ink)}.filter-btn[aria-expanded=true]{border-color:var(--accent);color:var(--ink)}.filter-btn.on{color:var(--accent);background:var(--accent-soft);border-color:#b8cdf8}.filter-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px;box-shadow:0 0 0 1.5px #fff}.filter-menu{z-index:30;background:var(--panel);border:1px solid var(--line);min-width:220px;color:var(--ink);border-radius:8px;padding:4px 0;font-size:13px;position:fixed;box-shadow:0 8px 24px #0f1e3229}.filter-menu-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 12px 4px;font-size:11px}.filter-menu-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:4px;padding:6px 12px 4px;font-size:11.5px}.filter-menu [role=menuitemradio]{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:0;align-items:center;gap:8px;padding:7px 12px;display:flex}.filter-menu [role=menuitemradio]:hover,.filter-menu [role=menuitemradio]:focus{background:var(--bg);outline:none}.filter-menu [role=menuitemradio].checked{color:var(--brand);font-weight:600}.filter-menu .check{width:12px;color:var(--accent)}.filter-menu .name{flex:1}.filter-menu .count{color:var(--muted);text-align:right;min-width:16px;font-size:12px;font-weight:400}.tabs-filter-start{align-items:center;margin-right:8px;display:flex}.tabs-hidden-note{color:var(--muted);white-space:nowrap;background:0 0;border:0;align-self:center;padding:4px 8px;font-size:12px}.tabs-hidden-note:hover:not(:disabled){color:var(--accent);text-decoration:underline}.field.recalc .calc-value{color:var(--accent);background:var(--accent-soft);border-color:#b8cdf8;font-style:italic}.saving-overlay{z-index:5;-webkit-backdrop-filter:grayscale(.6);backdrop-filter:grayscale(.6);color:var(--brand);cursor:progress;background:#ecf0f5b8;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-weight:600;animation:.15s ease-out fade-in;display:flex;position:absolute;inset:0}.spinner.big{border-width:3.5px;border-color:#1f3a5f2e;border-top-color:var(--accent);width:38px;height:38px}@keyframes fade-in{0%{opacity:0}}.list-summary{border-bottom:1px solid var(--line);background:var(--bg);border-radius:10px 10px 0 0;align-items:center;gap:22px;padding:8px 14px;display:flex}.list-summary div{align-items:baseline;gap:6px;display:flex}.list-summary b{color:var(--ink);font-size:20px}.list-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.truck-section{border-bottom:1px solid var(--line);background:var(--bg);border-radius:10px 10px 0 0}.truck-section .truck-bar{background:0 0;border-bottom:0}.window-stats{flex-wrap:wrap;align-items:center;gap:6px 22px;padding:6px 14px 9px;display:flex}.truck-bar+.window-stats{border-top:1px dashed var(--line);padding-top:8px}.window-stats.inline{flex-wrap:nowrap;gap:4px 18px;margin-left:auto;margin-right:6px;padding:0}.wstat{flex-direction:column;min-width:0;display:flex}.wstat>span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.wstat>b{white-space:nowrap;font-size:14px}.wstat.rate .rate-line{justify-content:flex-start;gap:6px;font-size:14px}.wstat.rate .rate-form{justify-content:flex-start;margin:0}.window-stats-gap{flex:1}.window-about{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:380px;font-size:12px;overflow:hidden}.sheet-pane .truck-section{border-radius:10px 10px 0 0}.window-stats.inline .rate-form{flex-wrap:nowrap}.window-stats.inline .rate-form .money-input{width:96px}.delete-shipment{color:var(--bad);background:#fff;border-color:#efc4c1;margin-right:4px;font-size:12px}.delete-shipment:hover:not(:disabled){border-color:var(--bad);background:#fdecea}.delete-confirm{color:#8e1c1c;background:#fdecea;border-bottom:1px solid #efc4c1;align-items:center;gap:8px;padding:10px 18px;display:flex}.delete-confirm .spacer{flex:1}.wh-summary small{color:var(--muted);font-size:11px;font-weight:400}.wh-pop{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;width:300px;padding:10px 12px;font-size:13px;display:flex;position:fixed;box-shadow:0 8px 24px #0f1e3229}.wh-pop-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.wh-pop-row{grid-template-columns:1fr 96px;gap:6px;display:grid}.wh-pop-foot{justify-content:flex-end;gap:6px;display:flex}.wh-pop input{width:100%!important;padding:5px 7px!important}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes pop-out{to{opacity:0;transform:translateY(6px)scale(.98)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}.modal{animation:.18s ease-out backdrop-in}.modal>.modal-box,.modal>.dialog-box{animation:.2s cubic-bezier(.2,.8,.3,1) pop-in}.modal.closing{pointer-events:none;animation:.16s ease-in forwards backdrop-out}.modal.closing>.modal-box,.modal.closing>.dialog-box{animation:.16s ease-in forwards pop-out}.filter-menu,.wh-pop{animation:.14s ease-out menu-in}@keyframes menu-out{to{opacity:0;transform:translateY(-4px)}}.filter-menu.closing{pointer-events:none;animation:.12s ease-in forwards menu-out}.delete-confirm{animation:.14s ease-out menu-in}@keyframes card-in{0%{opacity:0;transform:translate(-10px)}}.pane-body>.card{animation:.26s ease-out both card-in;animation-delay:calc(var(--i,0) * 22ms)}@media (prefers-reduced-motion:reduce){.modal,.modal>.modal-box,.modal>.dialog-box,.filter-menu,.wh-pop,.delete-confirm,.pane-body>.card{animation:none!important}}button{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,translate .12s,scale 80ms,opacity .16s}button.primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}button:where(:not(.tab,.tabs-hidden-note,[role=menuitemradio],.view-switch button,.turn-btn)):hover:not(:disabled){translate:0 -1px;box-shadow:0 3px 8px #0f1e321f}button:where(:not(.tab,.tabs-hidden-note,[role=menuitemradio],.view-switch button,.turn-btn)):active:not(:disabled){translate:0;scale:.97;box-shadow:0 1px 2px #0f1e321a}.turn-btn:hover:not(:disabled){scale:1.12;box-shadow:0 2px 5px #0f1e322e}.turn-btn:active:not(:disabled){scale:.94}.tab{transition:color .18s,border-color .18s,background-color .18s}.tab:not(.active):hover:not(:disabled){background:linear-gradient(#0000 30%,#2563eb0d)}.filter-menu [role=menuitemradio]{transition:background-color .12s,padding-left .12s}.filter-menu [role=menuitemradio]:hover{padding-left:15px}.pane-body{overflow-x:hidden}.card{transition:background-color .18s,border-color .18s,translate .18s,box-shadow .18s}.card:hover{background:#f5f8fd;translate:3px}.card:not(.active):hover{border-left-color:#b9cdf3}.card.loaded:hover{background:#eef0f3}table.sheet td{transition:background-color .12s}.bed .piece{transition:box-shadow .15s,filter .15s}.bed:not(.locked) .slot:hover>.piece:not(.dragging){filter:brightness(1.03);box-shadow:0 3px 10px #0f1e3238}@media (prefers-reduced-motion:reduce){button,.tab,.card,table.sheet td,.bed .piece,.filter-menu [role=menuitemradio]{transition:none!important}button:hover,button:active,.card:hover,.turn-btn:hover{translate:none!important;scale:none!important}}.panes{grid-template-rows:auto minmax(0,1fr)}.panes>.pane{grid-row:1/span 2;grid-template-rows:subgrid;row-gap:0;display:grid}.pane-main{flex-direction:column;min-height:0;display:flex}.truck-section .truck-bar{gap:8px;padding:5px 14px}.truck-tab,.add-truck{min-width:112px;height:36px;padding:2px 10px}.truck-tab{font-size:12.5px;line-height:1.15}.truck-tab small{font-size:10px}.truck-section .truck-bar>button:not(.truck-tab):not(.add-truck),.truck-bar-right>button{padding:5px 12px}.truck-section .transit-badge{padding:4px 10px}.truck-section .truck-bar+.window-stats{padding-top:5px;padding-bottom:6px}.truck-section .delete-window{padding:4px 10px}.list-summary{padding:5px 14px}.list-summary b{font-size:18px}.calc-value{background:var(--bg);width:100%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;user-select:none;border:1px dashed #c9d0d8;border-radius:6px;min-height:34px;padding:7px 9px;line-height:1.4;display:block;overflow:hidden}.field.dirty .calc-value{box-shadow:none}.fields input:not([type=checkbox]),.fields select,.fields .calc-value{height:34px}.unit-input{position:relative}.unit-input input{padding-right:30px!important}.unit-input .unit{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.field label .label-unit{text-transform:none}.icon{vertical-align:-1px;flex-shrink:0;margin-right:5px;display:inline-block}.truck-tab .icon-lock{color:#8e1c1c;vertical-align:-1px}.chip .icon-lock{vertical-align:-1px;margin-right:4px}.status-line{align-items:center;gap:6px;font-size:12px;display:flex}.status-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.status-value{color:#9a5b00}.status-value.delivered{color:var(--good)}.status-pop{width:270px}.status-choice{color:var(--ink);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:flex}.status-pop .status-choice input[type=radio]{flex:none;height:15px;margin:0;width:15px!important;padding:0!important}.status-choice{white-space:nowrap}.status-pop .status-choice input[type=date]{flex:1;min-width:0;width:auto!important;padding:4px 6px!important}.truck-section .truck-bar .status-line .rate-edit,.truck-section .truck-bar .delete-window{padding:5px 12px;font-size:13px}.truck-section .truck-bar{grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:8px;display:grid}.truck-bar-left{align-items:center;gap:8px;min-width:0;display:flex}.truck-bar-center{justify-content:center;display:flex}.truck-bar-right{justify-content:flex-end;align-items:center;gap:8px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes toast-out{to{opacity:0;transform:translateY(10px)}}.toast{animation:.22s cubic-bezier(.2,.8,.3,1) toast-in}.toast.leaving{pointer-events:none;animation:.2s ease-in forwards toast-out}@media (prefers-reduced-motion:reduce){.toast,.toast.leaving{animation:none}}.truck-section .truck-bar{min-height:46px}.tabs .tab,.tabs .tab:hover:not(:disabled){border-top-color:#0000}.money{white-space:nowrap}.money .cents{letter-spacing:.01em;font-size:.72em}.search-select{position:relative}.search-select input{text-overflow:ellipsis;padding-right:26px!important}.search-select input:disabled{background:var(--bg);color:var(--ink);cursor:not-allowed}.search-select-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 5px;font-size:11px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.search-select-clear:hover{color:var(--ink);background:var(--bg)}.search-select-menu{z-index:60;background:var(--panel);border:1px solid #c9d0d8;border-radius:6px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #141e2d2e}.search-select-menu.up{flex-direction:column-reverse;box-shadow:0 -8px 24px #141e2d2e}.search-select-menu.up .search-select-foot{border-top:0;border-bottom:1px solid var(--line)}.search-select-menu ul{margin:0;padding:4px 0;font-size:13.5px;list-style:none;overflow-y:auto}.search-select-menu li{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:6px 10px;overflow:hidden}.search-select-menu li.active{background:var(--accent-soft)}.search-select-menu li.chosen{font-weight:600}.search-select-foot{border-top:1px solid var(--line);padding:5px 10px;font-size:11.5px}.link-badge{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12px}fieldset.appt-input{border:0;min-width:0;margin:0;padding:0}.field.locked label{color:var(--muted)}.field.locked input:not([type=checkbox]):disabled,.field.locked select:disabled{background:var(--bg);color:var(--muted);border-color:var(--line);cursor:not-allowed}.field.locked input[type=checkbox]:disabled{cursor:not-allowed}.link-note{background:var(--accent-soft);color:var(--ink);border-radius:6px;margin:0 0 10px;padding:7px 11px;font-size:12.5px}.pane-body[hidden]{display:none!important}.editor-tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 18px;display:flex}.editor-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 12px;font-weight:500}.editor-tabs button:hover:not(:disabled),.editor-tabs button:active:not(:disabled){box-shadow:none;border-color:#0000;translate:none;scale:none}.editor-tabs button.on,.editor-tabs button.on:hover:not(:disabled){color:var(--ink);border-bottom-color:var(--accent)}.editor-tabs button:hover:not(.on){color:var(--ink)}.three-pl-tab{flex-direction:column;gap:16px;padding:12px 16px 14px;display:flex}.three-pl-loading{align-items:center;gap:8px;padding:12px 0;display:flex}.three-pl-table{border-collapse:collapse;table-layout:fixed;width:1170px;font-size:13px}.three-pl-scroll{overflow-x:auto}.three-pl-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;padding:5px 8px;font-size:12px;font-weight:600;overflow:hidden}.three-pl-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 8px}.three-pl-table .num,.three-pl-table .num input{text-align:right}.three-pl-table input:not([type=checkbox]),.three-pl-table select{width:100%;padding:6px 7px}.three-pl-table col.c-pieces{width:80px}.three-pl-table col.c-pack{width:132px}.three-pl-table col.c-weight{width:104px}.three-pl-table col.c-dims{width:228px}.three-pl-table col.c-class{width:88px}.three-pl-table col.c-money{width:116px}.three-pl-table col.c-x{width:36px}.three-pl-table col.c-desc{width:270px}.three-pl-table .grp{padding-left:14px;box-shadow:inset 1px 0 #d3d9e0}.three-pl-table td.x{text-align:right}.three-pl-table .dims{align-items:center;display:flex}.three-pl-table .dims>span{flex:1;align-items:center;min-width:0;display:flex}.three-pl-table .dims input{text-align:right}.three-pl-table .dims .times{color:var(--muted);padding:0 4px;font-size:12px}.three-pl-table .dims-head .muted{font-weight:400}.three-pl-table td.acc-name .search-select{width:280px}.three-pl-table .acc-cell{align-items:center;gap:10px;min-height:32px;display:flex}.three-pl-table .row-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--brand);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.three-pl-table tr.first-acc td{border-top:2px solid var(--line)}.three-pl-table tfoot tr:first-child td{border-top:2px solid #c9d0d8}.three-pl-table tfoot td{background:var(--bg);border-bottom:0;padding-top:10px;padding-bottom:10px}.three-pl-table tbody tr:last-child td{padding-bottom:12px}.three-pl-table tfoot .total{font-weight:600}.row-remove{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:3px 7px}.row-remove:hover:not(:disabled){color:var(--bad);background:#fdecea}.three-pl-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.three-pl-actions .spacer{flex:1}.three-pl-tab .group{padding-bottom:11px}.three-pl-tab .three-pl-scroll{margin:4px 11px 0}.three-pl-tab .three-pl-actions{padding:0 11px}.three-pl-tab .link-note{margin:0}.modal-box.tabbed{max-height:min(94vh,1000px)}.modal-box.tabbed.on-extras{width:min(1232px,96vw);height:min(74vh,680px);max-height:none}.three-pl-table tfoot .total-label{color:var(--ink)}.tpl-search{flex-direction:column;gap:8px;margin-top:10px;padding:0 12px 12px;display:flex}.tpl-head{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);border-top:1px solid var(--line);padding:6px 2px 0;font-size:12px;font-weight:600}.tpl-card{background:#fbfcfe;border:1px dashed #c3ccd6;border-radius:8px;flex-direction:column;gap:2px;padding:9px 11px;display:flex}.tpl-card .top{justify-content:space-between;font-weight:600;display:flex}.tpl-card .sub{color:var(--muted);font-size:12.5px}.tpl-card .actions{margin-top:6px}.tpl-hint{color:var(--muted);align-items:center;gap:8px;padding:4px 2px;font-size:12.5px;display:flex}.tpl-hint.bad{color:var(--bad)}.tpl-warn{color:#9a5b00;background:#fff6e5;border:1px solid #f3d9a8;border-radius:5px;margin-top:4px;padding:4px 8px;font-size:12px}.tpl-card .chip.warn{color:#9a5b00;background:#fff6e5}.empty-dock{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:56px 24px 40px;display:flex}.empty-dock b{color:var(--ink);font-size:15px}.empty-dock span{max-width:240px;font-size:13px;line-height:1.45}.tpl-info{flex-direction:column;gap:6px;margin:0;padding:8px 11px 0;font-size:12.5px;display:flex}.tpl-info.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;display:grid}.tpl-info dt{color:var(--muted);font-size:11.5px}.tpl-info dd{white-space:pre-line;overflow-wrap:anywhere;margin:1px 0 0}.tpl-info>div{min-width:0}.tpl-info .hazmat{color:#9a5b00;background:#fff6e5;border:1px solid #f3d9a8;border-radius:5px;grid-column:1/-1;padding:4px 8px;font-weight:600}.mode-tags{flex-wrap:wrap;gap:4px;margin:2px 0;display:flex}.mode-tag{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:1px 6px;font-size:11px}.mode-tag.consol{color:var(--good);background:#eef7ef;border-color:#bfdcc2}.mode-tag.hazmat{color:#9a5b00;background:#fff6e5;border-color:#f3d9a8;font-weight:600}.topbar-btn{color:inherit;background:#ffffff1f;border-color:#ffffff59;margin-left:auto}.topbar-btn:hover:not(:disabled){background:#ffffff38;border-color:#fff}.modal-box.archive-box{width:min(1480px,96vw);height:min(92vh,1000px);max-height:none}.archive-body{flex:1;grid-template-columns:260px minmax(0,1fr);min-height:0;display:grid}.archive-list{border-right:1px solid var(--line);background:var(--bg);flex-direction:column;gap:4px;padding:8px;display:flex;overflow-y:auto}.archive-item{text-align:left;white-space:normal;background:0 0;border-color:#0000;flex-direction:column;align-items:flex-start;gap:2px;font-size:12.5px;display:flex}.archive-item b{font-size:13.5px}.archive-item.on{background:var(--panel);border-color:var(--accent);box-shadow:0 1px 3px #0f1e3214}.archive-empty{padding:12px}.archive-main{min-width:0;overflow-y:auto}.archive-snapshot{flex-direction:column;gap:10px;padding:14px 18px 24px;display:flex}.archive-title{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.archive-title h3{margin:0;font-size:18px}.archive-stamp{color:var(--brand);background:var(--accent-soft);border-radius:999px;padding:2px 10px;font-size:12.5px}.archive-section{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);margin:10px 0 0;font-size:12px}.archive-sheet{border:1px solid var(--line);border-radius:8px;overflow:hidden}.archive-sheet .sheet-pane{height:auto;max-height:520px}.archive-truck{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.archive-truck-head{flex-wrap:wrap;align-items:baseline;gap:14px;font-size:12.5px;display:flex}.archive-truck-head b{font-size:14px}.archive-truck-head .spacer{flex:1}.three-pl-error{color:var(--ink);background:#fdecea;justify-content:space-between;align-items:center;gap:12px;display:flex}.card .actions .card-remove{color:var(--muted);background:0 0;border-color:#0000;margin-left:auto;padding:3px 9px;font-size:12px}.card .actions .grip+.card-remove{margin-left:0}.card .actions .card-remove:hover:not(:disabled){color:var(--bad);background:#fdecea;border-color:#f1c0bb}.name-field{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.name-field input{color:var(--ink);font-size:14px}.inline-name{align-items:center;gap:4px;min-width:0;display:inline-flex}.inline-name h2{margin:0}.rename-icon{color:var(--muted);opacity:.45;background:0 0;border:0;border-radius:4px;padding:3px 4px;line-height:0}.inline-name:hover .rename-icon,.rename-icon:focus-visible{opacity:1}.rename-icon:hover:not(:disabled){color:var(--accent);background:var(--accent-soft);box-shadow:none;translate:none}.inline-name-edit{align-items:center;gap:8px;display:inline-flex}.inline-name-edit input{width:200px;padding:4px 7px;font-weight:600}.planner-head .inline-name-edit input{font-size:16px}.truck-bar-left .inline-name{font-size:13px;font-weight:600}.truck-bar-left .inline-name-edit input{width:180px;padding:3px 6px;font-size:13px}.trip-dates{grid-template-columns:1fr 1fr;gap:12px;display:grid}.trip-dates label{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.trip-dates input{color:var(--ink)}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.topbar-right .topbar-btn{margin-left:0}.topbar-account{align-items:center;display:flex}.signin-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;padding:32px 16px;display:flex}.signin-brand{color:var(--brand);align-items:center;gap:10px;display:flex}.signin-brand h1{margin:0;font-size:24px}.signin-screen>p{margin:0 0 8px}
