/* 潜和工作台：扩展现有蓝色与深色侧栏设计，旧版样式保持独立。 */
.wf-app { --radius:12px; --shadow:0 2px 8px rgba(24,43,80,.025); }
.wf-app .layout { grid-template-columns:236px minmax(0,1fr); }
.wf-app .sidebar { padding:26px 16px 18px; z-index:40; }
.wf-app .sb-brand { padding:0 3px 25px; gap:12px; margin-bottom:15px; }
.wf-app .sb-brand .brand-logo { width:39px; height:39px; flex-basis:39px; font-size:15px; letter-spacing:-.5px; border-radius:10px; background:#3675ee; }
.wf-app .sb-brand b { font-size:16px; letter-spacing:.3px; }
.wf-app .sb-brand span { font-size:10.5px; margin-top:6px; display:block; letter-spacing:1px; }
.wf-app .nav { gap:4px; scrollbar-width:thin; scrollbar-color:#3c4960 transparent; }
.wf-app .nav a { display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:8px; color:#b6c2d7; font-size:13px; transition:background .15s,color .15s; }
.wf-app .nav a:hover { color:#fff; background:#222e44; }
.wf-app .nav a.active { color:#fff; background:#2f6fed; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.wf-nav-label { padding:7px 14px 5px; color:#718099; font-size:10px; letter-spacing:1.5px; }
.wf-nav-separator { margin-top:15px; padding-top:16px; border-top:1px solid #283246; }
.wf-app .sb-foot { margin-top:15px; padding:18px 8px 0; }
.wf-app .sb-user { justify-content:flex-start; gap:10px; }
.wf-avatar { width:34px; height:34px; background:#29364e; border-radius:50%; color:#d3e0f8; display:grid; place-items:center; flex-shrink:0; }
.wf-app .sb-user b { display:block; font-size:12px; }
.wf-app #sbDept { font-size:10.5px; margin-top:2px; overflow-wrap:anywhere; }
.wf-app #logoutBtn { margin-left:36px; color:#91a0b7; font-size:11px; }
.wf-app #logoutBtn:hover { color:#fff; background:#29364e; }
.wf-app .topbar { padding:20px 32px; min-height:89px; flex-wrap:nowrap; }
.wf-heading { display:flex; align-items:center; gap:12px; }
.wf-breadcrumb { font-size:10.5px; color:#929aaa; margin-bottom:4px; letter-spacing:.4px; }
.wf-app .topbar h1 { font-size:19px; line-height:1.4; font-weight:650; margin:0; letter-spacing:.5px; }
.wf-app .btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:12px; line-height:1.5; min-height:36px; padding:9px 13px; font-weight:500; }
.wf-app .btn-sm { min-height:30px; padding:5px 10px; font-size:11px; }
.wf-app .btn-primary { box-shadow:0 3px 6px rgba(47,111,237,.1); }
.wf-app .btn:disabled { box-shadow:none; }
.wf-app :focus-visible { outline:3px solid #96b8fa; outline-offset:3px; }
.wf-icon { width:18px; height:18px; flex-shrink:0; vertical-align:middle; }
.wf-app .btn .wf-icon { width:15px; height:15px; }
.wf-app .wf-menu-btn { display:none; }
.wf-today { font-size:12px; color:#7f8ba0; font-variant-numeric:tabular-nums; margin-right:10px; }
.wf-app .content { padding:27px 32px 30px; }
.wf-intro { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:23px; }
.wf-intro h2 { margin:0 0 5px; font-size:21px; font-weight:650; letter-spacing:.4px; }
.wf-intro p { margin:0; color:var(--muted); font-size:12px; }
.wf-update { color:#8490a2; font-size:10.5px; white-space:nowrap; }
.wf-metrics { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:16px; margin-bottom:24px; }
.wf-metric { display:block; min-width:0; padding:21px 20px 17px; border-radius:12px; border:1px solid var(--line); background:#fff; color:var(--text); box-shadow:var(--shadow); transition:border-color .15s,transform .15s; }
.wf-metric:hover { transform:translateY(-2px); border-color:#aec6f7; }
.wf-metric-label { display:flex; justify-content:space-between; gap:6px; align-items:center; font-size:12px; color:#65738a; }
.wf-metric-label .wf-icon { color:#7c91b4; width:19px; height:19px; }
.wf-metric-value { font-size:clamp(22px,2.25vw,33px); font-weight:650; letter-spacing:-1px; font-variant-numeric:tabular-nums; line-height:1.4; margin:16px 0 17px; overflow-wrap:anywhere; }
.wf-metric-value small { font-size:12px; font-weight:400; color:#9099a8; margin-left:8px; letter-spacing:0; }
.wf-metric-note { display:flex; align-items:center; justify-content:space-between; font-size:10.5px; gap:6px; color:#8a95a5; }
.wf-metric-note .wf-icon { width:14px; height:14px; }
.wf-metric-primary { background:#2f6fed; border-color:#2f6fed; color:#fff; }
.wf-metric-primary:hover { border-color:#1f56c9; }
.wf-metric-primary .wf-metric-label,.wf-metric-primary .wf-metric-label .wf-icon { color:#e8f0ff; }
.wf-metric-primary .wf-metric-note { color:#d2e1ff; }
.wf-metric-danger .wf-metric-value,.wf-metric-danger .wf-metric-label .wf-icon { color:#d64a45; }
.wf-metric-warning .wf-metric-value,.wf-metric-warning .wf-metric-label .wf-icon { color:#c5862d; }
.wf-app .panel { margin-bottom:22px; }
.wf-app .panel-head { padding:18px 21px; border-bottom:1px solid #edf0f5; }
.wf-app .panel-head h3 { font-size:14px; font-weight:650; }
.wf-app .panel-head .sub { font-size:11px; color:#8a94a5; margin-top:3px; }
.wf-dot { margin:0 9px; color:#b3becc; }
.wf-count { font-size:10px; font-weight:500; background:#eef3fc; color:#5e80bc; padding:2px 7px; border-radius:5px; margin-left:7px; }
.wf-text-link { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500; white-space:nowrap; }
.wf-text-link .wf-icon { width:14px; height:14px; }
.wf-pipeline { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); padding:23px 12px 22px; }
.wf-stage-link { min-width:0; position:relative; display:flex; flex-direction:column; align-items:flex-start; padding:0 17px; border-right:1px solid #edf0f5; color:var(--text); }
.wf-stage-link:last-child { border:0; }
.wf-stage-number { color:#8499bb; font-size:10px; font-weight:500; margin-bottom:9px; line-height:1; }
.wf-stage-label { font-size:11px; color:#737f90; margin-bottom:8px; white-space:nowrap; }
.wf-stage-link strong { font-size:23px; line-height:1.3; font-weight:600; font-variant-numeric:tabular-nums; }
.wf-stage-link strong small { font-size:10px; color:#9ba3b0; font-weight:400; margin-left:6px; }
.wf-stage-link>.wf-icon { position:absolute; right:12px; top:0; width:12px; height:12px; color:#b2bdcd; }
.wf-stage-link:hover .wf-stage-label,.wf-stage-link:hover strong { color:var(--brand); }
.wf-tabs { display:flex; gap:22px; padding:0 21px; border-bottom:1px solid #edf0f5; overflow-x:auto; scrollbar-width:thin; }
.wf-tab { display:inline-flex; align-items:center; position:relative; padding:14px 1px; font-size:12px; color:#778296; white-space:nowrap; border:0; border-bottom:2px solid transparent; background:none; cursor:pointer; }
.wf-tab.active { color:var(--brand); border-bottom-color:var(--brand); font-weight:600; }
.wf-tab:hover { color:var(--brand); }
.wf-app table.wf-table { font-size:12px; }
.wf-app table.wf-table th { font-size:10.5px; font-weight:500; background:#f9fafc; color:#8390a3; padding:12px 20px; border-bottom:1px solid #edf0f5; }
.wf-app table.wf-table td { padding:16px 20px; border-bottom:1px solid #eff2f6; }
.wf-app table.wf-table tbody tr:last-child td { border-bottom:0; }
.wf-app table.wf-table tfoot th,.wf-app table.wf-table tfoot td { border-top:1px solid var(--line); background:#f9fafc; }
.wf-order-link { font-size:12px; font-weight:600; color:#355d9d; }
.wf-order-link:hover { color:var(--brand); text-decoration:underline; }
.wf-cell-sub { display:block; font-size:10.5px; color:#8b95a4; margin-top:4px; font-weight:400; }
.wf-customer-cell { min-width:130px; max-width:250px; white-space:normal; overflow-wrap:anywhere; }
.wf-bank-account { font-variant-numeric:tabular-nums; }
.wf-app table.wf-table td.wf-amount { font-weight:600; color:#34435b; font-size:12.5px; }
.wf-due-overdue,.wf-due-today,.wf-due-upcoming,.wf-due-paid { display:inline-block; border-radius:5px; padding:3px 7px; font-size:10.5px; font-weight:500; }
.wf-due-overdue { color:#cb4d46; background:#fef0ee; }
.wf-due-today { color:#b68129; background:#fff7e9; }
.wf-due-upcoming { color:#527aba; background:#edf4ff; }
.wf-due-paid { color:#21885e; background:#eef8f2; }
.wf-status { display:inline-flex; align-items:center; gap:5px; background:#f1f3f7; color:#7b8496; padding:4px 8px; border-radius:5px; font-size:10.5px; white-space:nowrap; }
.wf-status i { width:5px; height:5px; border-radius:50%; background:currentColor; }
.wf-status-pending_purchase { background:#fff6e9; color:#b48437; }
.wf-status-pending_inbound,.wf-status-pending_outbound { background:#edf3fd; color:#5079bc; }
.wf-status-pending_invoice { background:#f1efff; color:#7866b4; }
.wf-status-pending_payment { background:#fff5e8; color:#bd8530; }
.wf-status-paid { background:#edf8f1; color:#26835c; }
.wf-empty { text-align:center; padding:46px 20px 48px; }
.wf-empty-icon { color:#8ea5c5; display:grid; place-items:center; width:43px; height:43px; background:#f3f6fc; border-radius:12px; margin:0 auto 13px; }
.wf-empty-icon .wf-icon { width:22px; height:22px; }
.wf-empty h3 { margin:0 0 7px; color:#58687f; font-size:13px; font-weight:500; }
.wf-empty p { margin:0 auto 15px; color:#96a0af; font-size:11px; max-width:420px; }
.wf-empty p:last-child { margin-bottom:0; }
.wf-start { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; gap:20px; border:1px dashed #ccd8ed; border-radius:11px; background:#f8faff; }
.wf-start>div { display:flex; align-items:center; gap:14px; }
.wf-start>div>.wf-icon { color:#7195d0; width:24px; height:24px; }
.wf-start strong { font-size:12px; font-weight:500; color:#566c8e; }
.wf-start p { color:#91a0b5; font-size:10.5px; margin:3px 0 0; }
.wf-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:15px 32px 20px; color:#a1abba; font-size:10px; }
.wf-page-intro { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:20px; color:var(--muted); font-size:12px; }
.wf-page-intro p { margin:0; }
.wf-page-intro>span { color:#8b96a7; white-space:nowrap; font-size:11px; }
.wf-list-toolbar { display:flex; gap:10px; align-items:center; justify-content:space-between; padding:18px 20px 8px; }
.wf-search { display:flex; align-items:center; gap:8px; min-width:0; }
.wf-search-input { display:flex; align-items:center; border:1px solid #dfe5ef; border-radius:7px; padding:0 11px; background:#fff; min-width:0; }
.wf-search-input:focus-within { border-color:#8fb0ec; box-shadow:0 0 0 3px #eff4fe; }
.wf-search-input .wf-icon { width:15px; height:15px; color:#95a2b5; }
.wf-search-input input { width:280px; max-width:100%; border:0; outline:none; background:transparent; padding:9px 10px; font-size:12px; }
.wf-search-input input:focus-visible { outline:none; }
.wf-search-input input::placeholder { color:#a1aab8; }
.wf-bucket-filters { display:flex; gap:8px; flex-wrap:wrap; padding:14px 20px; font-size:11px; align-items:center; border-bottom:1px solid #edf0f5; }
.wf-filter { padding:4px 10px; border:1px solid #e4e9f2; border-radius:5px; color:#8391a4; }
.wf-filter.active { background:#edf3ff; border-color:#c7d9ff; color:var(--brand); }
.wf-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.wf-order-title { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.wf-order-title h2 { font-size:22px; font-weight:650; letter-spacing:-.5px; margin:0; overflow-wrap:anywhere; }
.wf-detail-heading p { margin:7px 0 0; color:#8390a3; font-size:12px; overflow-wrap:anywhere; }
.wf-detail-total { text-align:right; flex-shrink:0; }
.wf-detail-total span { display:block; font-size:11px; color:#8390a3; }
.wf-detail-total strong { font-size:26px; font-weight:650; color:var(--brand); font-variant-numeric:tabular-nums; }
.wf-progress { display:grid; grid-template-columns:repeat(7,1fr); list-style:none; margin:0; padding:24px 14px; }
.wf-progress li { text-align:center; position:relative; min-width:0; color:#a1aab9; font-size:11px; }
.wf-progress li::before { content:''; height:1px; width:calc(100% - 38px); background:#e5eaf2; position:absolute; top:14px; left:calc(-50% + 19px); }
.wf-progress li:first-child::before { display:none; }
.wf-progress li>span { width:29px; height:29px; display:grid; place-items:center; border-radius:50%; background:#f2f4f8; border:1px solid #e8edf4; margin:0 auto 9px; font-size:11px; }
.wf-progress li>b { font-weight:500; white-space:nowrap; }
.wf-progress li.done { color:#557baa; }
.wf-progress li.done>span { color:#5c87bd; border-color:#d6e3f6; background:#edf4fd; }
.wf-progress li.current { color:var(--brand); }
.wf-progress li.current>span { color:#fff; border-color:var(--brand); background:var(--brand); box-shadow:0 0 0 4px #edf3ff; }
.wf-progress li.done::before,.wf-progress li.current::before { background:#c4d7f6; }
.wf-progress .wf-icon { width:15px; height:15px; }
.wf-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:22px; }
.wf-detail-grid>div,.wf-detail-grid>aside { min-width:0; }
.wf-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:18px 21px; margin:0; gap:19px 26px; }
.wf-info-item dt { font-size:10.5px; color:#8c97a8; margin-bottom:4px; }
.wf-info-item dd { font-size:12px; color:#46556c; margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.wf-note { padding:15px 21px; border-top:1px solid #edf0f5; }
.wf-note>span { font-size:10.5px; color:#8c97a8; }
.wf-note p { margin:4px 0 0; font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; }
.wf-caption { font-size:11px; color:#8b97a9; line-height:1.8; margin:12px 0; }
.panel>.wf-caption { margin:0; padding:0 21px 18px; }
.wf-section-empty { padding:24px 21px; color:#94a0b1; font-size:12px; }
.wf-file-download { display:flex; align-items:center; gap:12px; margin:0 21px 20px; padding:13px 15px; border:1px solid #e3eaf6; background:#f8faff; border-radius:8px; }
.wf-file-download>span { flex:1; min-width:0; }
.wf-file-download strong { display:block; font-size:12px; font-weight:500; overflow-wrap:anywhere; }
.wf-file-download small { font-size:10px; color:#95a2b4; }
.wf-timeline { margin:0; padding:23px 21px 6px; list-style:none; }
.wf-timeline li { position:relative; display:flex; align-items:flex-start; gap:12px; padding-bottom:24px; }
.wf-timeline li:not(:last-child)::before { content:''; position:absolute; left:4px; top:12px; bottom:0; border-left:1px solid #e5ebf5; }
.wf-timeline-dot { margin-top:5px; width:9px; height:9px; border:2px solid #81a4da; border-radius:50%; background:#fff; flex-shrink:0; }
.wf-timeline li:first-child .wf-timeline-dot { background:#eaf1ff; border-color:var(--brand); }
.wf-timeline li>div:last-child { min-width:0; }
.wf-timeline strong { font-size:12px; color:#546781; font-weight:500; }
.wf-timeline time { display:block; color:#9aa7b9; font-size:10px; margin-top:3px; }
.wf-timeline p { margin:4px 0 0; font-size:11px; color:#8492a7; overflow-wrap:anywhere; }
.wf-timeline .wf-event-note { background:#f7f9fc; padding:6px 8px; border-radius:5px; white-space:pre-wrap; }
.wf-notice { display:flex; align-items:flex-start; gap:12px; background:#edf4ff; border:1px solid #d9e6fc; color:#5279b2; border-radius:9px; padding:16px 19px; margin-bottom:22px; }
.wf-notice>.wf-icon { margin-top:2px; }
.wf-notice strong { font-size:12px; font-weight:500; }
.wf-notice p { margin:5px 0 0; font-size:11px; opacity:.85; }
.wf-notice-danger { background:#fff6f4; border-color:#f1d7d2; color:#bf6659; }
.wf-notice-success { background:#eff9f3; border-color:#d2eadd; color:#39866b; }
.wf-readonly { font-size:11px; color:#909caf; margin:0 0 19px; }
.wf-modal-open { overflow:hidden; }
.wf-modal { z-index:100; padding:25px; }
.wf-modal .modal-card { max-width:650px; max-height:90dvh; }
.wf-modal .wf-modal-wide { max-width:990px; width:min(990px,100%); }
.wf-modal .modal-head { padding:18px 24px; }
.wf-modal .modal-head h2 { margin:0; font-size:16px; font-weight:600; }
.wf-modal .modal-head .btn { padding:5px; min-height:30px; }
.wf-modal form { display:flex; flex-direction:column; min-height:0; }
.wf-modal .modal-body { padding:20px 24px; overflow:auto; }
.wf-modal .modal-foot { padding:16px 24px; background:#fafbfd; border-radius:0 0 14px 14px; }
.wf-form-fields { margin:0; padding:0; border:0; min-width:0; }
.wf-form-intro { font-size:12px; color:#8390a3; margin:0 0 20px; }
.wf-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 20px; margin-bottom:20px; }
.wf-app .field { display:block; min-width:0; }
.wf-app .field>span { display:block; font-size:11px; color:#748298; margin-bottom:7px; }
.wf-app .field input,.wf-app .field select,.wf-app .field textarea { display:block; font-size:12px; background:#fff; padding:10px 11px; border-color:#dfe5ee; min-width:0; width:100%; }
.wf-app .field input::placeholder,.wf-app .field textarea::placeholder { color:#a7b0be; font-size:11px; }
.wf-app .field textarea { min-height:74px; line-height:1.7; }
.wf-field-full { grid-column:1/-1; }
.wf-form-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:22px 0 12px; }
.wf-form-section-head h3 { font-size:13px; font-weight:600; margin:0; }
.wf-item-list { display:flex; flex-direction:column; gap:12px; }
.wf-item-row { border:1px solid #e3e8f0; border-radius:8px; padding:12px 15px 17px; background:#fafbfd; }
.wf-item-row-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; }
.wf-item-row-head b { font-size:11px; color:#8794a8; font-weight:500; }
.wf-item-row-head .btn { min-height:24px; padding:3px 7px; }
.wf-item-fields { display:grid; grid-template-columns:1.8fr 1.3fr .6fr .8fr 1fr 1fr; gap:12px; align-items:end; }
.wf-item-fields .field input { padding:8px; }
.wf-line-total { padding-bottom:9px; min-width:0; }
.wf-line-total span { display:block; font-size:11px; color:#8b98ac; margin-bottom:14px; }
.wf-line-total strong { font-size:12px; font-weight:500; white-space:nowrap; }
.wf-form-total { display:flex; justify-content:flex-end; align-items:center; gap:17px; margin:17px 0 22px; color:#8190a5; font-size:12px; }
.wf-form-total strong { font-size:21px; color:var(--brand); font-variant-numeric:tabular-nums; font-weight:600; }
.wf-confirm-summary { display:flex; flex-direction:column; gap:8px; background:#f7f9fd; border:1px solid #e6ebf5; border-radius:9px; padding:18px 20px; margin-bottom:20px; overflow-wrap:anywhere; }
.wf-confirm-summary span { font-size:11px; color:#7e8fa8; }
.wf-confirm-summary strong { font-size:14px; font-weight:500; }
.wf-confirm-summary b { font-size:27px; font-weight:600; color:var(--brand); }
.wf-confirm-summary~p { font-size:12px; line-height:1.8; }
.wf-payment-check { display:flex; align-items:center; gap:10px; padding:16px 0 4px; font-size:13px; font-weight:500; }
.wf-payment-check input { accent-color:var(--brand); width:17px; height:17px; margin:0; }
.wf-invoice-due { display:flex; gap:13px; padding:17px; border-radius:8px; background:#edf4ff; color:#6886b7; margin-bottom:22px; }
.wf-invoice-due span { font-size:11px; }
.wf-invoice-due strong { display:block; font-size:20px; font-weight:550; color:#3d6aa9; }
.wf-invoice-due p { font-size:10.5px; margin:4px 0 0; }
.wf-upload-field input { border-style:dashed !important; background:#f9fbff !important; padding:20px !important; }
.wf-upload-field input::file-selector-button { font:inherit; padding:6px 10px; margin-right:12px; border:1px solid #d8e3f6; background:#fff; border-radius:5px; color:#587bb4; cursor:pointer; }
.wf-upload-field small { display:block; color:#8c9aaf; font-size:10.5px; margin-top:8px; }
.wf-upload-state { font-size:11px; color:#7590b7; margin-top:14px; overflow-wrap:anywhere; }
.wf-loading { display:flex; align-items:center; justify-content:center; gap:10px; padding:70px 20px; color:#8593a9; font-size:12px; }
.wf-loading::before { content:''; width:17px; height:17px; border:2px solid #e2eafa; border-top-color:#608ede; border-radius:50%; animation:spin .8s linear infinite; }
.wf-error { text-align:center; padding:48px 20px; }
.wf-error>div { color:#c88641; }
.wf-error h3 { font-size:15px; margin-bottom:8px; }
.wf-error p { font-size:12px; color:#8895a9; }
.wf-skip { position:fixed; left:16px; top:-100px; z-index:200; padding:10px 15px; border-radius:6px; color:#fff; background:var(--brand); }
.wf-skip:focus { top:16px; }
.wf-nav-backdrop { display:none; }
.wf-app .toast { max-width:calc(100vw - 32px); right:16px; bottom:16px; }
.wf-app .toast>div { max-width:100%; overflow-wrap:anywhere; }
.login-body .brand-logo { background:#2f6fed; font-size:19px; letter-spacing:-.5px; }
.login-body .login-card { padding:36px 30px 28px; border-radius:14px; }
.login-body .brand h1 { font-size:20px; }
.login-body .brand p { font-size:10.5px; margin-top:6px; }
.legacy-viewer #tbNew,.legacy-viewer #tbImport,.legacy-viewer #tbUpload,.legacy-viewer [data-edit],.legacy-viewer [data-del],.legacy-viewer [data-delfile] { display:none !important; }

@media (min-width:1500px) {
  .wf-app .content { padding:32px 40px; }
  .wf-app .topbar { padding-left:40px; padding-right:40px; }
  .wf-metric { padding:24px 25px 21px; }
  .wf-metric-value { margin:20px 0; }
  .wf-detail-grid { grid-template-columns:minmax(0,1fr) 310px; }
}
@media (max-width:1200px) {
  .wf-app .layout { grid-template-columns:214px minmax(0,1fr); }
  .wf-app .sidebar { padding:22px 12px 18px; }
  .wf-app .sb-brand { gap:9px; }
  .wf-app .sb-brand b { font-size:14px; }
  .wf-app .topbar,.wf-app .content { padding-left:23px; padding-right:23px; }
  .wf-metrics { gap:12px; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .wf-metric { padding:16px 14px; }
  .wf-metric-value { font-size:24px; }
  .wf-metric-note { font-size:10px; }
  .wf-metric-note .wf-icon { display:none; }
  .wf-stage-link { padding:0 9px; }
  .wf-stage-label { font-size:10px; }
  .wf-stage-link>.wf-icon { right:7px; }
  .wf-detail-grid { grid-template-columns:minmax(0,1fr); }
  .wf-timeline { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 25px; }
  .wf-today { display:none; }
}
@media (min-width:761px) and (max-width:900px) {
  .wf-app .sidebar { position:sticky; height:100vh; }
  .wf-app .nav { flex-direction:column; overflow-x:hidden; overflow-y:auto; }
  .wf-app .topbar { gap:12px; }
  .wf-app .topbar .tools { gap:6px; }
  .wf-app .topbar .btn { font-size:11px; padding:8px 10px; }
  .wf-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wf-pipeline { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:22px; }
  .wf-stage-link:nth-child(4) { border-right:0; }
  .wf-search-input input { width:210px; }
}
@media (max-width:760px) {
  .wf-app .layout { grid-template-columns:minmax(0,1fr); }
  .wf-app .sidebar { position:fixed; inset:0 auto 0 0; width:236px; height:100dvh; transform:translateX(-100%); transition:transform .2s; padding:24px 16px; }
  .wf-app .nav { flex-direction:column; overflow-y:auto; overflow-x:hidden; }
  .wf-nav-open .sidebar { transform:translateX(0); }
  .wf-nav-open { overflow:hidden; }
  .wf-nav-open .wf-nav-backdrop { display:block; position:fixed; inset:0; z-index:35; background:rgba(13,25,45,.45); border:0; width:100%; height:100dvh; }
  .wf-app .topbar { padding:15px 18px; min-height:78px; gap:10px; }
  .wf-app .wf-menu-btn { display:inline-flex; font-size:17px; padding:5px 8px; min-height:33px; }
  .wf-app .topbar h1 { font-size:16px; }
  .wf-breadcrumb { font-size:9px; }
  .wf-app .content { padding:22px 18px 24px; }
  .wf-app .topbar .tools { justify-content:flex-end; gap:6px; }
  .wf-app .topbar .btn { font-size:11px; min-height:32px; padding:7px 9px; }
  .wf-app .topbar .btn .wf-icon { width:13px; height:13px; }
  .wf-app .tools [data-refresh] { font-size:0; gap:0; padding:8px; }
  .wf-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
  .wf-metric { padding:17px 16px; }
  .wf-metric-value { font-size:25px; margin:12px 0; }
  .wf-metric-label { font-size:11px; }
  .wf-metric-label .wf-icon { width:16px; height:16px; }
  .wf-metric-note { font-size:10px; }
  .wf-intro { align-items:flex-start; margin-bottom:19px; }
  .wf-intro h2 { font-size:18px; }
  .wf-intro p { font-size:11px; }
  .wf-update { font-size:9px; margin-top:5px; }
  .wf-pipeline { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:23px; padding:21px 8px; }
  .wf-stage-link { padding-left:10px; padding-right:7px; }
  .wf-stage-link:nth-child(4) { border-right:0; }
  .wf-stage-link strong { font-size:22px; }
  .wf-app .panel { margin-bottom:20px; }
  .wf-app .panel-head { padding:16px; gap:6px; }
  .wf-app .panel-head h3 { font-size:13px; }
  .wf-app .panel-head .sub { font-size:10px; }
  .wf-app .panel-head .wf-text-link { font-size:10px; }
  .wf-tabs { gap:20px; padding:0 16px; }
  .wf-tab { font-size:11px; padding:12px 0; }
  .wf-app table.wf-table th,.wf-app table.wf-table td { padding-left:16px; padding-right:16px; }
  .wf-table { min-width:730px; }
  .wf-empty { padding:35px 18px 38px; }
  .wf-start { flex-direction:column; align-items:flex-start; gap:15px; padding:18px; }
  .wf-start .btn { margin-left:38px; }
  .wf-start p { font-size:10px; }
  .wf-footer { padding:5px 18px 20px; font-size:9px; }
  .wf-page-intro { font-size:11px; align-items:flex-start; }
  .wf-list-toolbar { padding:14px 14px 6px; }
  .wf-list-toolbar>[data-refresh] { font-size:0; padding:8px 4px; gap:0; }
  .wf-search { flex:1; }
  .wf-search-input { flex:1; }
  .wf-search-input input { width:100%; font-size:11px; padding-left:7px; }
  .wf-bucket-filters { padding:12px 16px; font-size:10px; gap:6px; }
  .wf-filter { padding:4px 7px; }
  .wf-detail-heading { flex-direction:column; align-items:flex-start; gap:15px; margin-bottom:20px; }
  .wf-order-title h2 { font-size:21px; }
  .wf-detail-total { text-align:left; }
  .wf-detail-total span { display:inline; margin-right:12px; }
  .wf-detail-total strong { font-size:25px; }
  .wf-progress { overflow-x:auto; grid-template-columns:repeat(7,82px); padding:20px 10px; }
  .wf-progress li { font-size:10px; }
  .wf-detail-grid { gap:0; }
  .wf-info-grid { padding:17px; gap:18px; }
  .wf-info-item dd { font-size:11px; }
  .wf-timeline { display:block; }
  .wf-file-download { margin:0 17px 18px; }
  .wf-notice { padding:14px; gap:9px; }
  .wf-notice strong { font-size:11px; }
  .wf-notice p { font-size:10px; }
  .wf-modal { padding:12px; }
  .wf-modal .modal-card { max-height:94dvh; }
  .wf-modal .modal-head { padding:16px 18px; }
  .wf-modal .modal-head h2 { font-size:15px; }
  .wf-modal .modal-body { padding:18px; }
  .wf-modal .modal-foot { padding:14px 18px; }
  .wf-form-grid { gap:15px; }
  .wf-item-fields { grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px 10px; }
  .wf-item-fields>.field:first-child { grid-column:span 2; }
  .wf-item-fields>.field:nth-child(2) { grid-column:span 1; }
  .wf-line-total { grid-column:1/-1; display:flex; justify-content:flex-end; gap:15px; padding:0; }
  .wf-line-total span { margin:0; }
}
@media (max-width:440px) {
  .wf-app .topbar { flex-wrap:wrap; padding:12px 16px; }
  .wf-heading { gap:9px; }
  .wf-app .topbar .tools { margin-left:auto; }
  .wf-app .topbar .btn { font-size:10px; padding:7px 8px; }
  .wf-app .tools [data-refresh] { font-size:0; }
  .wf-app .content { padding:20px 14px; }
  .wf-metric { padding:15px 12px; }
  .wf-metric-value { font-size:23px; letter-spacing:-.8px; }
  .wf-metric-value small { margin-left:6px; font-size:10px; }
  .wf-metric-note { font-size:9px; }
  .wf-update { display:none; }
  .wf-metrics { gap:10px; }
  .wf-stage-label { font-size:9px; }
  .wf-stage-link { padding-left:7px; }
  .wf-stage-link>.wf-icon { display:none; }
  .wf-app .panel-head .wf-text-link { margin-top:5px; }
  .wf-form-grid { grid-template-columns:minmax(0,1fr); }
  .wf-modal .modal-body { padding:17px; }
  .wf-app .field input,.wf-app .field select,.wf-app .field textarea { font-size:14px; }
  .wf-item-row { padding:10px; }
  .wf-item-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wf-item-fields>.field:first-child { grid-column:1/-1; }
  .wf-item-fields>.field:nth-child(2) { grid-column:auto; }
  .wf-item-fields .field>span { font-size:10px; }
  .wf-item-fields .field input { padding:8px; }
  .wf-upload-field input { padding:14px !important; font-size:11px !important; }
  .login-body .login-wrap { padding:18px; }
  .login-body .login-card { padding:28px 22px; }
  .login-body .brand h1 { font-size:18px; }
  .login-body .brand p { font-size:9.5px; }
}
@media (prefers-reduced-motion:reduce) {
  .wf-app *, .wf-app *::before, .wf-app *::after { transition:none !important; animation:none !important; }
}
