/* 1.6.16: shared desktop / H5 visual system and order task workspace. */
:root{--canvas:#f3f6fb;--ink:#1c2b43;--muted:#718096;--line:#e3eaf3;--blue:#3166dd}
body{background:var(--canvas);color:var(--ink)}
.sidebar{background:#fff;border-right:1px solid var(--line)}
.sidebar nav button{border-radius:11px;margin-bottom:3px;transition:background .16s,color .16s}
.sidebar nav button.active{background:#eaf1ff;color:#265bd1;box-shadow:inset 3px 0 #3166dd}
.brand img{border-radius:12px}.nav-label{letter-spacing:1.5px;color:#8a97a9}
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.content{padding:26px 30px 48px}.page-heading{margin-bottom:24px}.page-heading h1{letter-spacing:-.7px}.eyebrow{color:#7c8ba3}
.card{border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 16px #1d365305}
.card-head{background:linear-gradient(110deg,#fff,#fafcff);border-bottom:1px solid #edf1f7;padding:18px 20px}
.card-body{padding:20px}.stack{gap:18px}.metrics{gap:14px;background:transparent;border:0;overflow:visible}
.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 3px 16px #1d365305}
.metric strong{letter-spacing:-1px}.metric small{line-height:1.6}
button{transition:background .16s,box-shadow .16s}button.primary{background:#3166dd;border-color:#3166dd;box-shadow:0 3px 8px #3166dd1a}
button.primary:hover{background:#2456c7}button.secondary{background:#fff;border-color:#dce4ef}
button:focus-visible,a:focus-visible{outline:3px solid #89afff;outline-offset:3px}
input,select,textarea{border-color:#dce4ef;border-radius:9px;background:#fff}input:focus,select:focus,textarea:focus{border-color:#6392f0;box-shadow:0 0 0 3px #3166dd12;outline:none}
th{background:#f7f9fc;color:#77869a;font-size:12px}tbody tr:hover{background:#f7faff}td{border-color:#edf1f7}
.badge{border-radius:7px}.chip{border-radius:9px}.toolbar{gap:12px}.empty{color:#77869a;padding:38px 20px}.empty b{color:#344760}
.detail-top{gap:14px}.detail-actions{gap:8px;flex-wrap:wrap}.steps{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.step.current i{box-shadow:0 0 0 5px #3166dd12}
.summary-grid b,.device-grid b{overflow-wrap:anywhere}.login{background:radial-gradient(ellipse at 20% 10%,#e0ebff,transparent 60%),#f4f7fc}.login-box{border:1px solid #e2e9f5;box-shadow:0 20px 70px #24477812}
.taskbar{display:flex;align-items:center;gap:12px;padding:10px 30px;background:#f9fbfe;border-bottom:1px solid var(--line);min-width:0}
.task-controls{display:flex;align-items:center;gap:5px;flex-shrink:0}.task-caption{font-size:12px;color:#718096;margin-right:8px;white-space:nowrap}.task-caption b{color:#3166dd;margin-left:4px}
.task-controls button{width:32px;height:36px;padding:0;border:1px solid #e0e7f1;border-radius:8px;background:#fff;color:#405577;font-size:24px;line-height:1}.task-controls button:disabled{opacity:.32;cursor:default}
.task-list{display:flex;gap:8px;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin;padding:2px}
.task-item{display:flex;flex-shrink:0;align-items:center;border:1px solid #e0e7f1;border-radius:10px;background:#fff;max-width:235px}
.task-item.active{border-color:#91b1f5;background:#edf3ff;box-shadow:0 2px 6px #3166dd0a}
.task-open{border:0;background:transparent;text-align:left;padding:7px 10px;min-width:0;color:#42536d}.task-open span{display:block;font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-open small{display:block;font-size:10px;color:#8290a4;white-space:nowrap;margin-top:3px}.task-item.active .task-open span{color:#285ecf}
.task-close{background:transparent;border:0;color:#8a98ae;padding:5px 8px;margin-right:3px;border-radius:6px;font-size:18px}.task-close:hover{background:#ffecec;color:#c94343}.task-empty{font-size:12px;color:#8795a9;padding:10px 0;white-space:nowrap}
@media(min-width:761px){.taskbar{position:sticky;top:0;z-index:15}.detail-grid{grid-template-columns:minmax(0,1fr) 310px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:761px) and (max-width:1100px){.content{padding:22px 20px}.taskbar{padding:10px 20px}.detail-grid{grid-template-columns:minmax(0,1fr)}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .taskbar{position:sticky;top:64px;z-index:19;padding:8px 12px;gap:7px;background:#f7faff}.task-caption{display:none}.task-controls{gap:3px}.task-controls button{width:30px;height:44px}.task-item{max-width:220px}.task-open{padding:7px 9px;min-height:44px}.task-close{min-width:40px;min-height:44px;margin:0}.task-empty{font-size:11px}
 .content{padding-top:18px!important}.card{border-radius:15px}.page-heading>.hint{display:none}.detail-actions button{min-height:40px}.detail-top>#back{min-height:44px}.card-head button,.pager button{min-height:40px}.filters .chip{min-height:40px}.search-box{padding:0}.toolbar>.search-box{flex:1 1 100%}.toolbar>.filters{width:100%}.summary-grid{gap:17px}.summary-grid>div{padding-bottom:10px;border-bottom:1px solid #eef2f7}.metric strong{font-size:23px!important}.metrics{margin-bottom:18px}.task-list{scroll-snap-type:x proximity}.task-item{scroll-snap-align:start}.task-open small{font-size:10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* 1.6.17 interaction fixes and compact dashboard. */
.mobile-menu-backdrop{display:none}
.workflow-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.workflow-actions>button{width:100%;min-height:52px;margin:0;padding:12px 16px;white-space:normal}
.dashboard-heading{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px}
.dashboard-heading>div:first-child{flex:0 0 auto}.dashboard-heading>div:first-child p{margin-bottom:0}
.dashboard-shortcuts{display:flex;flex:1 1 500px;gap:8px;align-items:center;flex-wrap:wrap}
.dashboard-shortcuts button{min-height:42px;padding:10px 15px;white-space:nowrap}
.dashboard-heading>.hint{margin-left:auto;text-align:right}
.dashboard-workspace{margin-bottom:18px}
.dashboard-workspace .todo-minis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.photo-paste{border:1px dashed #9bb8ed;border-radius:12px;background:#f5f8ff;padding:16px;display:grid;gap:10px;text-align:center}
.photo-paste span{font-size:12px;color:#718096}.photo-paste:focus-visible{outline:3px solid #89afff;outline-offset:2px}.photo-paste button{justify-self:center;min-height:42px}
.photo-empty{padding:18px}.photo-empty span{font-size:24px;margin-bottom:6px}.photo-empty p{margin-bottom:0}
@media(max-width:760px){
 .mobile-menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:55;background:#17243766;border:0;border-radius:0;padding:0;width:100%;height:100%;touch-action:none}
 body.mobile-navigation-open{overflow:hidden}.sidebar.open{box-shadow:none}
 .dashboard-heading{gap:12px}.dashboard-shortcuts{order:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-basis:100%;width:100%;gap:8px}
 .dashboard-shortcuts #qNew{grid-column:1/-1}.dashboard-shortcuts button{width:100%;padding:10px;white-space:normal;min-height:44px}
 .dashboard-heading>.hint{font-size:11px}.workflow-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workflow-actions>button{font-size:13px;min-height:64px;padding:10px 8px;line-height:1.5}
 .photo-paste{padding:14px}.photo-paste b{font-size:14px}
}
.binding-qr{display:flex;gap:22px;align-items:center;padding:16px;border:1px solid #e3eaf3;border-radius:14px;margin-bottom:20px;background:#fff}.binding-qr img{width:260px;height:260px;max-width:100%;object-fit:contain}.finance-scope{padding:0 20px;line-height:1.8}
@media(max-width:760px){.binding-qr{flex-direction:column;text-align:center;gap:12px}.binding-qr img{width:260px;height:auto}.finance-scope{padding:0 16px}.finance-grid{grid-template-columns:minmax(0,1fr)!important}}

/* 1.6.19: 账单导航与物流摘要 */
.finance-tabs{gap:10px;margin-bottom:18px}
.finance-tabs .finance-tab{border:1px solid #b6cdf8;border-radius:10px;padding:10px 18px;min-height:44px;background:#eaf1ff;color:#2457b8;font-weight:600;cursor:pointer}
.finance-tabs .finance-tab:hover{background:#dbe8ff;border-color:#709eea}
.finance-tabs .finance-tab.active{background:#2e63d9;border-color:#2e63d9;color:#fff;box-shadow:0 3px 8px #2e63d926}
.finance-tabs .finance-tab.active:hover{background:#2454bf}
.finance-tabs .finance-tab:focus-visible{outline:3px solid #80afff;outline-offset:3px}
.logi-mini{width:280px;max-width:100%;min-width:0}
.logi-mini .logi-summary,.logi-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.5;max-height:3em;overflow:hidden;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-overflow:ellipsis;width:260px;max-width:100%;min-width:0}
.logi-mini .logi-summary{flex-basis:100%}
.abnormal-row>div{min-width:0}
.track-time p,#trackResult{overflow-wrap:anywhere;white-space:normal}

/* v1.11.14: keep the first metric consistent with its siblings. */
.metrics>.metric,.metrics>.metric:first-child{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;color:var(--ink);min-width:0}
.metrics>.metric>span,.metrics>.metric:first-child>span{color:var(--muted)}
.metrics>.metric>small,.metrics>.metric:first-child>small{color:var(--muted)}
@media(max-width:760px){.metrics>.metric,.metrics>.metric:first-child{padding:15px}}

