:root{--background:#f6f8fb;--surface:#fff;--surface-strong:#f8fafc;--text:#172033;--muted:#64748b;--line:#e2e8f0;--accent:#1268b3;--accent-strong:#0a4f8e;--accent-soft:#eef6fd;--warning:#b45309;--danger:#b42318}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--background);color:var(--text);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px}button,input,select{font:inherit}.shell{width:min(1600px,100% - 48px);margin:0 auto;padding:20px 0 36px}.topbar,.pageHeader{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.pageHeader{padding:2px 0}.brandBlock{gap:10px;display:grid}.companyLogo{width:210px;max-width:55vw;height:auto;display:block}.pageTitleGroup{align-items:center;gap:14px;min-width:0;display:flex}.headerLogo{width:150px;max-width:30vw;height:auto;display:block}.titleCopy{gap:4px;min-width:0;display:grid}.titleLine{align-items:center;gap:10px;min-width:0;display:flex}h1,h2{margin:0}h1{font-size:26px;line-height:1.15}h2{font-size:18px}.portalTopbar{align-items:flex-start}.portalEyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:11px;font-weight:900}.pageSubtitle{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.roleBadge{color:#475569;background:#f1f5f9;border-radius:999px;flex:none;padding:6px 9px;font-size:12px;font-weight:800;line-height:1}.roleBadge.admin{color:#075985;background:#eaf6ff}.roleBadge.customer{color:#64748b;background:#f8fafc}.customerLine,.portalCopy{color:var(--muted);margin:0;line-height:1.5}.customerLine strong{color:var(--accent-strong)}.topActions{align-items:center;gap:8px;display:flex}.syncStatusPill{border:1px solid var(--line);background:var(--surface);color:#334155;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:4px 12px 4px 10px;display:inline-flex}.syncStatusPill>div{align-items:baseline;gap:5px;display:flex}.syncStatusPill span{color:var(--muted);font-size:12px;font-weight:800}.syncStatusPill strong{color:inherit;font-size:13px;font-weight:900}.syncStatusPill small{color:var(--muted);font-size:12px;font-weight:800}.syncStatusDot{background:#94a3b8;border-radius:999px;flex:none;width:8px;height:8px}.syncStatusPill.isSuccess{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.syncStatusPill.isSuccess .syncStatusDot{background:#22c55e}.syncStatusPill.isError{color:var(--danger);background:#fff7f7;border-color:#fecaca}.syncStatusPill.isError .syncStatusDot{background:var(--danger)}.syncStatusPill.isMuted{color:#475569;background:#f8fafc}.balancePanel{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.balanceSummary{align-items:baseline;gap:10px;min-width:0;display:flex}.balanceLabel{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:900}.balanceAmount{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:22px;line-height:1}.balanceAmount.isWarning{color:#92400e;background:#fef3c7}.balanceAmount.isDanger{color:#b42318;background:#fee2e2}.balanceForm{align-items:center;gap:8px;display:flex}.balanceInput{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;width:156px;min-height:36px;transition:border-color .14s,box-shadow .14s,background .14s;display:flex;overflow:hidden}.balanceInput:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #1268b329}.balanceInput span{color:#94a3b8;padding-left:11px;font-weight:900}.balanceInput input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:none;padding:0 10px 0 5px}.balanceSaveButton{min-height:36px;color:var(--accent-strong);cursor:pointer;background:#f7fbff;border:1px solid #1268b338;border-radius:8px;padding:0 14px;font-size:13px;font-weight:900;transition:background .14s,border-color .14s,box-shadow .14s,color .14s}.balanceSaveButton:hover:not(:disabled){background:var(--accent-soft);border-color:#1268b35c;box-shadow:0 1px 3px #0f172a0f}.balanceSaveButton:disabled{cursor:not-allowed;opacity:.62}.balanceMessage{color:#166534;white-space:nowrap;margin:0;font-size:12px;font-weight:900}.balanceMessage.isError{color:var(--danger)}.settingsPanel{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr) auto;align-items:center;gap:14px;margin-bottom:12px;padding:10px 12px;display:grid}.settingsSummary{gap:2px;min-width:0;display:grid}.settingsLabel{color:var(--muted);font-size:12px;font-weight:900}.settingsSummary strong{color:var(--text);font-size:13px;font-weight:850}.settingsToggleGroup{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.settingsToggle{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #dbe5f0;border-radius:999px;align-items:center;gap:7px;min-height:32px;padding:0 11px;font-size:12px;font-weight:850;transition:background .14s,border-color .14s,box-shadow .14s,color .14s;display:inline-flex}.settingsToggle:hover{background:#f0f7ff;border-color:#b8d4f0;box-shadow:0 1px 3px #0f172a0f}.settingsToggle input{width:14px;height:14px;accent-color:var(--accent)}.settingsToggle:has(input:not(:checked)){color:#64748b}.settingsToggle:has(input:disabled){cursor:wait;opacity:.68}.settingsMessage{color:#166534;white-space:nowrap;margin:0;font-size:12px;font-weight:850}.settingsMessage.isError{color:var(--danger)}.authShell{isolation:isolate;justify-content:flex-end;align-items:center;width:100%;min-height:100dvh;margin:0;padding:48px clamp(24px,8vw,140px) 48px 24px;display:flex;position:relative;overflow-x:hidden}.authShell:before{content:"";z-index:-2;filter:saturate(.82)brightness(.74);background:url(/logistics-bg.png) 50%/cover no-repeat;position:fixed;inset:0;transform:scale(1.01)}.authShell:after{content:"";z-index:-1;background:linear-gradient(90deg,#0f172ac7,#0f172a8a),linear-gradient(#1268b32e,#0f172a2e);position:fixed;inset:0}.loginPanel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #ffffff73;border-radius:16px;grid-template-columns:1fr;gap:24px;width:420px;max-width:calc(100vw - 32px);padding:32px;animation:.24s ease-out both loginEnter;display:grid;box-shadow:0 20px 50px #0f172a2e}.loginBrand{justify-items:start;gap:16px;display:grid}.loginBrandCopy{gap:5px;display:grid}.loginBrandName{color:var(--accent-strong);letter-spacing:0;margin:0;font-size:13px;font-weight:800}.loginBrandCopy h1{color:#172033;font-size:24px;line-height:1.15}.loginBrandCopy p:not(.loginBrandName){color:#64748b;margin:0;font-size:14px;line-height:1.45}.loginLogo{width:190px;max-width:100%;height:auto;display:block}.loginForm{align-content:start;gap:16px;display:grid}.loginField{gap:6px;display:grid}.loginField label{color:#334155;font-size:13px;font-weight:600}.loginInputShell{align-items:center;display:flex;position:relative}.loginField input{width:100%;height:44px;color:var(--text);background:#fff;border:1px solid #dbe3ed;border-radius:9px;outline:none;padding:0 12px;font-size:14px;transition:border-color .14s,box-shadow .14s,background .14s}.loginField input:hover{border-color:#cbd5e1}.loginField input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1268b324}.loginField input[aria-invalid=true]{border-color:#fca5a5}.loginField input:-webkit-autofill{-webkit-text-fill-color:var(--text);box-shadow:inset 0 0 0 1000px #fff}.loginInputIcon{color:#94a3b8;pointer-events:none;position:absolute;left:12px}.loginInputShell:has(.loginInputIcon) input{padding-left:38px}.passwordInputShell input{padding-right:44px}.passwordToggle{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:background .14s,color .14s;display:inline-flex;position:absolute;right:7px}.passwordToggle:hover{color:#172033;background:#f1f5f9}.passwordToggle:focus-visible{outline:none;box-shadow:0 0 0 3px #1268b329}.loginError{color:#991b1b;background:#fff5f5;border:1px solid #fecaca;border-radius:9px;align-items:center;gap:8px;min-height:40px;padding:9px 11px;font-size:13px;font-weight:650;line-height:1.35;display:flex}.loginSubmitButton{width:100%;height:44px;min-height:44px;box-shadow:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.loginSubmitButton:hover:not(:disabled){background:#0f5f9f;border-color:#0a4f8e}.loginSubmitButton:focus-visible{outline:none;box-shadow:0 0 0 3px #1268b32e}.buttonSpinner{animation:.8s linear infinite spin}.loginHelp{color:#64748b;text-align:center;margin:-2px 0 0;font-size:13px;line-height:1.45}.authCopyright{color:#ffffffb8;margin:0;font-size:12px;position:fixed;bottom:20px;right:clamp(24px,8vw,140px)}.loadingLoginPanel{justify-items:start}@keyframes loginEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.primaryButton,.secondaryButton{cursor:pointer;border-radius:999px;min-height:40px;font-weight:900}.primaryButton{border:1px solid var(--accent-strong);background:var(--accent);color:#fff}.primaryButton:disabled{opacity:.65;cursor:not-allowed}.secondaryButton{min-width:108px;color:var(--accent-strong);background:linear-gradient(#fff,#f4f9fd);border:1px solid #1268b33d;padding:0 18px;transition:background .14s,border-color .14s,box-shadow .14s,color .14s,transform .14s;box-shadow:0 1px 2px #0f497a0f,inset 0 1px #ffffffe6}.secondaryButton:hover{background:linear-gradient(#fff,#eaf4fc);border-color:#1268b36b;transform:translateY(-1px);box-shadow:0 6px 16px #0f497a1a}.secondaryButton:active{transform:translateY(0);box-shadow:0 2px 8px #0f497a14}.dangerButton{color:#9f2a22;border-color:#b423182e}.dangerButton:hover{color:#842018;background:linear-gradient(#fff,#fff1f0);border-color:#b4231857}.iconButton{border:1px solid var(--line);background:var(--surface);color:#334155;cursor:pointer;border-radius:8px;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-size:13px;font-weight:800;transition:background .14s,border-color .14s,box-shadow .14s,color .14s;display:inline-flex}.iconButton:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 1px 3px #0f172a0f}.iconButton:disabled{cursor:not-allowed;opacity:.62}.iconButton:focus-visible{outline:none;box-shadow:0 0 0 3px #1268b329}.iconButton.dangerButton{color:#9f2a22}.iconButton.dangerButton:hover{color:#842018;background:#fff7f7;border-color:#fecaca}.loadingText{color:var(--muted);font-weight:800}.compact{margin:0}.passwordPanel{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:16px;padding:14px}.passwordForm{grid-template-columns:repeat(2,minmax(180px,1fr)) 120px minmax(160px,1fr);align-items:end;gap:12px;display:grid}.successMessage{color:#166534;background:#f0faf4;border:1px solid #abd5bd;border-radius:6px;align-items:center;min-height:40px;padding:8px 12px;font-weight:800;display:flex}.controls{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:minmax(320px,1fr) minmax(132px,max-content) minmax(132px,max-content) auto max-content;align-items:center;gap:10px;margin-bottom:12px;padding:12px;display:grid}.field{color:var(--muted);align-items:center;font-size:12px;font-weight:800;display:flex;position:relative}.field span{line-height:1}.field select,.field input{border:1px solid var(--line);width:100%;min-height:38px;color:var(--text);background:#fff;border-radius:8px;outline:none;padding:0 12px;transition:background .14s,border-color .14s,box-shadow .14s}.field select:hover,.field input:hover{background:#f8fafc;border-color:#cbd5e1}.field select:focus,.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1268b329}.searchField input{padding-left:36px}.compactField{min-width:132px}.fieldIcon{z-index:1;color:#94a3b8;pointer-events:none;position:absolute;left:12px}.dateRangeGroup{grid-template-columns:minmax(136px,1fr) auto minmax(136px,1fr);align-items:center;gap:8px;display:grid}.dateField:has(.fieldIcon) input{padding-left:36px}.dateSeparator{color:#94a3b8;font-weight:800}.resetButton,.dateClearButton{min-height:38px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:800;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.resetButton:hover:not(:disabled),.dateClearButton:hover:not(:disabled){border-color:var(--line);color:var(--accent-strong);background:#f8fafc}.resetButton:disabled,.dateClearButton:disabled{color:#9aa9b5;cursor:not-allowed}.statusTabs{gap:6px;margin-bottom:12px;padding-bottom:2px;display:flex;overflow-x:auto}.statusTab{color:#475569;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-size:13px;font-weight:850;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.statusTab:hover{background:#edf2f7}.statusTab.active{background:var(--accent-soft);color:var(--accent-strong);border-color:#bfdbfe}.statusTab strong{color:#334155;text-align:center;background:#e2e8f0;border-radius:999px;min-width:24px;padding:5px 8px;font-size:12px;line-height:1}.statusTab.active strong{color:var(--accent-strong);background:#d7ebfb}.summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.metric{background:linear-gradient(#fff,#fbfdff);border:1px solid #1268b31f;border-radius:8px;align-content:center;gap:5px;min-height:64px;padding:10px 14px 10px 16px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 18px #0f497a0b}.metric:before{content:"";background:var(--accent);opacity:.68;border-radius:0 999px 999px 0;width:3px;position:absolute;inset:10px auto 10px 0}.metric:hover{border-color:#1268b347;transform:translateY(-1px);box-shadow:0 12px 28px #0f497a17}.metric span{color:var(--muted);font-size:12px;font-weight:800;line-height:1}.metric strong{text-overflow:ellipsis;white-space:nowrap;color:#132033;min-width:0;font-size:21px;line-height:1.15;overflow:hidden}.error{color:var(--danger);background:#fffbfa;border:1px solid #fecdca;border-radius:6px;margin-bottom:16px;padding:12px 14px;font-weight:700}.tableArea{border:1px solid var(--line);background:var(--surface);border-radius:10px;max-width:100%;overflow:hidden}.tableHeader{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;min-height:46px;padding:0 14px;display:flex}.tableHeader span{color:var(--muted);font-size:12px;font-weight:700}.tableWrap{overscroll-behavior-x:contain;max-width:100%;overflow:auto}.containerTable{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1320px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf1f5;padding:0 14px;font-size:14px;line-height:1.35}th{color:#475569;font-size:13px;font-weight:650}.containerTable thead th{z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-user-select:none;user-select:none;background:#f8fafcf5;padding:0;position:sticky;top:0;box-shadow:inset 0 -1px #e2e8f0}.containerTable tbody th,.containerTable tbody td{text-overflow:ellipsis;white-space:nowrap;color:#334155;height:52px;overflow:hidden}.containerTable tbody th{color:var(--text);background:#fff;position:static}.containerTable tbody tr:hover th,tbody tr:hover{background:#f8fafc}.containerTable tbody tr{transition:background .1s,opacity .1s,box-shadow .1s}.strong{font-weight:800}.headerCell{align-items:stretch;min-height:42px;display:flex;position:relative}.sortButton{width:100%;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:4px;padding:0 18px 0 14px;font-size:13px;font-weight:650;display:flex}.sortButton>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sortButton:disabled{cursor:default}.sortIndicator{color:#94a3b8;opacity:.48;flex:none;transition:color .14s,opacity .14s;display:inline-flex}.sortButton:hover .sortIndicator{opacity:.85}th[aria-sort=ascending] .sortIndicator,th[aria-sort=descending] .sortIndicator{color:var(--accent);opacity:1}.resizeHandle{z-index:3;cursor:col-resize;touch-action:none;background:0 0;border:0;border-right:2px solid #0000;width:10px;height:100%;position:absolute;top:0;right:-4px}.resizeHandle:hover,.resizeHandle.isResizing{border-right-color:var(--accent);background:#1268b314}.expandCell,.dragCell,.actionCell,.rowTitleCell{justify-content:center;align-items:center;gap:4px;min-width:0;display:flex}.tableIconButton{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .14s,color .14s;display:inline-flex}.tableIconButton:hover{color:#172033;background:#edf2f7}.tableIconButton:focus-visible{outline:none;box-shadow:0 0 0 3px #1268b329}.chevronIcon{transition:transform .15s}.chevronIcon.expanded{transform:rotate(90deg)}.dragHandle{color:#94a3b8;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.dragHandle:hover,.dragHandle.isActive{color:var(--accent-strong);background:#eaf3fc}.dragHandle:active{cursor:grabbing}body.rowDragActive{cursor:grabbing;-webkit-user-select:none;user-select:none}body.rowDragActive *{cursor:grabbing!important}.rowIndex{width:100%;color:var(--muted);text-align:center;font-size:13px;font-weight:700;display:inline-block}.containerCell{align-items:center;gap:6px;min-width:0;display:flex}.containerTitle{color:#172033;font-variant-numeric:tabular-nums;font-weight:750}.copyButton{color:#94a3b8;cursor:pointer;opacity:0;background:0 0;border:0;border-radius:6px;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:background .14s,color .14s,opacity .14s;display:inline-flex}.containerCell:hover .copyButton,.copyButton:focus-visible{opacity:1}.copyButton:hover{color:var(--accent-strong);background:#edf2f7}.copyButton:focus-visible{outline:none;box-shadow:0 0 0 3px #1268b329}.secondaryText{color:#64748b;font-weight:500}.dateText{color:#475569;font-variant-numeric:tabular-nums;font-size:13.5px}.editableDateCell{color:#475569;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-width:0;min-height:30px;padding:0 6px;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.editableDateCell:hover{background:#f8fbff;border-color:#cfe0f3;box-shadow:inset 0 0 0 1px #1268b30a}.editableDateCell:focus-visible{border-color:#1268b394;outline:none;box-shadow:0 0 0 3px #1268b324}.editableDateCell.isEditing{cursor:text;background:#fff;border-color:#1268b39e;padding:0 4px;box-shadow:0 0 0 3px #1268b31a}.editableDateCell.isSaving{cursor:wait;opacity:.76}.editableDateCell.hasError{background:#fff5f5;border-color:#fda4af}.editableDateCell.hasError .dateText{color:#be123c}.editableDateCell:disabled{cursor:wait}.editableDateInput{color:#172033;width:100%;min-width:0;height:28px;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;padding:0;font-size:13.5px}.cellSpinner{color:var(--accent);flex:none;animation:.8s linear infinite spin}.emptyText{color:#94a3b8}.isDragging{opacity:.72;background:#f8fbff}.isDragTarget td,.isDragTarget th{box-shadow:inset 0 -2px 0 var(--accent)}.pill{color:#475569;white-space:nowrap;background:#f1f5f9;border:0;border-radius:999px;align-items:center;min-height:22px;padding:2px 8px;font-size:12px;font-weight:650;display:inline-flex}.pill.direct_delivery{color:#075985;background:#eaf6ff}.pill.unload{color:#be123c;background:#fff1f2}.locationCell{align-items:center;gap:6px;max-width:100%;display:inline-flex}.truncatedText{width:100%;min-width:0;max-width:100%;color:inherit;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;outline:none;line-height:1.35;display:inline-block;overflow:hidden}.locationPreviewText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.locationMoreBadge{color:#475569;background:#f1f5f9;border-radius:999px;flex:none;min-height:20px;padding:4px 6px;font-size:11px;font-weight:750;line-height:1}.truncatedText:focus-visible{border-radius:4px;box-shadow:0 0 0 3px #1268b329}.cellTooltip{z-index:1000;max-width:min(420px,100vw - 32px);color:var(--text);overflow-wrap:anywhere;pointer-events:none;white-space:pre-line;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:650;line-height:1.5;position:fixed;box-shadow:0 14px 34px #0f172a24}.detailsRow td{white-space:normal;background:#f8fafc;height:auto;padding:0}.detailsPanel{border-bottom:1px solid var(--line);padding:14px 18px 18px 68px}.warehouseDetailsPanel{overflow-x:auto}.warehouseDetailsContent{width:min(1120px,100%);min-width:760px}.detailsHeaderRow{justify-content:space-between;align-items:center;gap:16px;min-width:0;margin-bottom:12px;display:flex}.detailsTitle{color:#1f2d3d;font-size:14px;font-weight:800}.detailsSubtitle{color:#718096;margin-top:2px;font-size:12px;font-weight:600}.detailsHeaderRow span{color:var(--muted);font-size:13px;font-weight:700}.inlineTextValue,.inlineTextButton,.inlineTextEditor{width:100%;min-width:0}.inlineTextValue{color:#334155;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;line-height:1.35;display:inline-block;overflow:hidden}.inlineTextButton{color:#26354a;cursor:pointer;min-height:28px;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:flex-start;align-items:center;gap:6px;padding:0 8px;font-size:13px;font-weight:700;line-height:1.2;transition:background .14s,border-color .14s,box-shadow .14s,color .14s;display:inline-flex}.inlineTextButton span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.inlineTextButton:hover:not(:disabled){background:#f3f8ff;border-color:#c9dff5;box-shadow:0 1px 3px #0f172a0f}.inlineTextButton.isEmpty{color:#8a9aac;font-weight:750}.inlineTextButton.hasError{color:#b42318;background:#fff7f7;border-color:#fecaca}.inlineTextButton:disabled{cursor:wait;opacity:.7}.inlineTextEditor{align-items:center;min-height:30px;display:inline-flex}.inlineTextEditor input{color:#172033;width:100%;min-width:0;height:30px;font:inherit;background:#fff;border:1px solid #a8cff5;border-radius:7px;outline:none;padding:0 9px;font-size:13px;font-weight:650;box-shadow:0 0 0 3px #1268b31f}.inlineTextEditor.hasError input{border-color:#fecaca;box-shadow:0 0 0 3px #dc26261a}.extraChargeCell{max-width:100%}.warehouseDetailList{background:#fff;border:1px solid #dbe5f0;border-radius:10px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.warehouseDetailListHeader,.warehouseDetailSummary{grid-template-columns:34px minmax(150px,1fr) minmax(112px,.58fr) minmax(190px,1.1fr) 116px 82px;align-items:center;gap:10px;display:grid}.warehouseDetailListHeader{color:#64748b;background:#f8fafc;border-bottom:1px solid #dbe5f0;padding:9px 14px;font-size:12px;font-weight:800}.warehouseDetailListHeader span:first-child{grid-column:2}.warehouseDetailListHeader span:nth-child(2){grid-column:3}.warehouseDetailListHeader span:nth-child(3){grid-column:4}.warehouseDetailListHeader span:nth-child(4){grid-column:5}.warehouseDetailListHeader span:nth-child(5){grid-column:6}.warehouseDetailItem{border-bottom:1px solid #e8eef5}.warehouseDetailItem:last-child{border-bottom:0}.warehouseDetailSummary{color:#26354a;min-height:46px;padding:8px 14px;transition:background .14s}.warehouseDetailItem:hover .warehouseDetailSummary,.warehouseDetailItem.expanded .warehouseDetailSummary{background:#f8fbff}.warehousePointCell,.warehouseWindowCell,.warehouseNoteCell,.warehousePalletCell,.warehouseAppointmentItem>div{min-width:0}.warehousePointText{font-weight:750}.warehouseWindowText{color:#52657a;font-size:13px;font-weight:700}.appointmentCountBadge{color:#52657a;background:#f8fbff;border:1px solid #d8e5f4;border-radius:999px;justify-self:start;padding:6px 8px;font-size:12px;font-weight:800;line-height:1}.warehouseAppointmentPanel{background:#f8fafc;border:1px solid #dbe5f0;border-radius:8px;margin:0 14px 14px 48px;padding:12px}.appointmentTitle{color:#42515c;margin-bottom:10px;font-size:13px;font-weight:800}.warehouseAppointmentGrid{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:auto hidden}.warehouseAppointmentHeader,.warehouseAppointmentItem{grid-template-columns:var(--appointment-grid-template,minmax(170px, 1.4fr) minmax(120px, .9fr) minmax(92px, .65fr) minmax(130px, .85fr) minmax(130px, .85fr));min-width:var(--appointment-grid-min-width,720px);align-items:center;gap:10px;display:grid}.warehouseAppointmentGrid.isAdmin .warehouseAppointmentHeader,.warehouseAppointmentGrid.isAdmin .warehouseAppointmentItem{min-width:850px}.warehouseAppointmentHeader{color:#64748b;background:#f1f5f9;min-height:34px;padding:8px 12px;font-size:12px;font-weight:800}.warehouseAppointmentItem{border-top:1px solid #edf2f7;min-height:42px;padding:6px 12px}.appointmentVisibilityCell{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.visibleAppointmentButton{color:#52657a;cursor:pointer;background:#fff;border:1px solid #d3e1f1;border-radius:999px;align-items:center;gap:5px;min-height:28px;padding:6px 9px;font-size:12px;font-weight:800;line-height:1;transition:background .14s,border-color .14s,color .14s,box-shadow .14s;display:inline-flex}.visibleAppointmentButton:hover:not(:disabled){color:#0f66b4;background:#f0f7ff;border-color:#99c8f8;box-shadow:0 1px 4px #0f66b41f}.visibleAppointmentButton.selected{color:#0f66b4;background:#e8f4ff;border-color:#9dccf8}.visibleAppointmentButton:disabled{cursor:not-allowed;opacity:.58}.appointmentVisibilityError{color:#b42318;font-size:11px;font-weight:700}.documentCell{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.documentViewLink,.documentUploadButton{color:#1268b3;cursor:pointer;background:#fff;border:1px solid #d3e1f1;border-radius:7px;align-items:center;gap:5px;min-height:28px;padding:0 8px;font-size:12px;font-weight:800;line-height:1;text-decoration:none;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.documentViewLink:hover,.documentUploadButton:hover{background:#f5faff;border-color:#a9c9ea}.documentUploadButton input{display:none}.documentUploadButton.isUploading{color:#64748b;cursor:wait}.documentEmpty{color:#94a3b8;font-size:12px;font-weight:750}.documentError{color:#c2410c;flex-basis:100%;font-size:11px;font-weight:750}.editableAppointmentCell{color:#334155;cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-width:0;min-height:32px;padding:0 8px;transition:background .14s,border-color .14s,box-shadow .14s;display:inline-flex;overflow:hidden}.editableAppointmentCell:hover{background:#f8fbff;border-color:#cfe0f3}.editableAppointmentCell:focus-visible{border-color:#1268b394;outline:none;box-shadow:0 0 0 3px #1268b324}.editableAppointmentCell.isEditing{cursor:text;background:#fff;border-color:#1268b39e;padding:0 6px;box-shadow:0 0 0 3px #1268b31a}.editableAppointmentCell.isSaving{cursor:wait;opacity:.76}.editableAppointmentCell.hasError{color:#be123c;background:#fff5f5;border-color:#fda4af}.editableAppointmentInput{color:#172033;width:100%;min-width:0;height:30px;font:inherit;background:0 0;border:0;outline:none;padding:0;font-size:14px}.readonlyAppointmentCell{color:#334155;text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;display:inline-block;overflow:hidden}.noAppointments{border:1px dashed var(--line);width:min(860px,100%);color:var(--muted);background:#fff;border-radius:8px;padding:14px;font-size:14px;font-weight:700}.empty{height:132px;color:var(--muted);text-align:center}.emptyState{justify-items:center;gap:8px;display:grid}.emptyState strong{color:var(--text);font-size:14px}.emptyState span{color:var(--muted);font-size:13px}.emptyState button{border:1px solid var(--line);min-height:34px;color:var(--accent-strong);cursor:pointer;background:#fff;border-radius:8px;padding:0 12px;font-weight:800}.pagination{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:12px;min-height:52px;padding:10px 16px;display:flex}.pagination button{border:1px solid var(--line);background:var(--surface);min-width:84px;min-height:34px;color:var(--accent-strong);cursor:pointer;border-radius:8px;font-weight:800}.pagination button:disabled{border-color:var(--line);color:#9aa9b5;cursor:not-allowed}.pagination span{color:var(--muted);text-align:center;min-width:120px;font-size:14px;font-weight:700}@media (max-width:1200px){.controls{grid-template-columns:minmax(260px,1fr) minmax(132px,180px) minmax(132px,180px)}.dateRangeGroup{grid-column:1/3}.resetButton,.dateClearButton{width:100%}}@media (max-width:1024px){.authShell{justify-content:center;padding:40px 16px}.authCopyright{text-align:center;left:0;right:0}}@media (max-width:820px){.shell{width:min(100% - 20px,1440px);padding-top:18px}.topbar,.pageHeader{flex-direction:column;align-items:flex-start;gap:14px}.pageTitleGroup{align-items:flex-start}.headerLogo{width:132px}.topActions{flex-wrap:wrap;width:100%}.syncStatusPill{white-space:normal;border-radius:10px;justify-content:flex-start;width:100%}.syncStatusPill small{margin-left:auto}.balancePanel{flex-direction:column;align-items:stretch}.balanceSummary{flex-direction:column;align-items:flex-start;gap:5px}.balanceForm{width:100%}.balanceInput{flex:auto;width:auto}.balanceMessage{white-space:normal}.settingsPanel{grid-template-columns:1fr;align-items:stretch}.settingsMessage{white-space:normal}.iconButton{flex:auto}h1{font-size:24px}.controls,.summary,.passwordForm{grid-template-columns:1fr}.authShell{align-items:center;padding:24px 16px 52px}.authShell:before{background-position:58%}.loginPanel{width:420px;max-width:calc(100vw - 32px);padding:24px}.loginLogo{width:min(160px,100%)}.loginBrandCopy h1{font-size:23px}.dateRangeGroup{grid-column:auto;grid-template-columns:1fr}.dateSeparator{display:none}.detailsPanel{padding:12px 10px 14px 42px}.warehouseDetailsContent{min-width:720px}.warehouseAppointmentPanel{margin:0 10px 12px 36px;padding:10px}.statusTabs{margin-left:-10px;margin-right:-10px;padding:0 10px 2px}.pagination{justify-content:space-between}}@media (prefers-reduced-motion:reduce){.loginPanel{animation:none}.buttonSpinner{animation-duration:1.4s}}
