
:root{--primary:#2563eb;--primary-d:#1d4ed8;--primary-l:#dbeafe;--bg:#f1f5f9;--card:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--green:#16a34a;--green-l:#dcfce7;--red:#dc2626;--red-l:#fee2e2;--amber:#d97706;--amber-l:#fef3c7;--shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);--radius:10px}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"Microsoft YaHei","Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-synthesis:none;image-rendering:auto}
@media (min-width:1280px){body{font-size:14.5px}.data th,.data td{font-size:inherit}}
@media (min-width:1280px){.data{font-size:12px!important}.data th,.data td{line-height:1.4!important}.panel-h h2{font-size:14px}}
@media (min-width:1280px){.sidebar{width:225px}.nav{padding:14px 11px}.nav-group{font-size:13px;color:#b4c7d8;padding:15px 12px 6px;letter-spacing:.4px}.nav-parent{font-size:16px;padding:12px 12px;color:#fff;line-height:1.35}.nav-item{font-size:15px;padding:11px 14px;gap:11px;color:#e3edf6;line-height:1.35}.nav-item.active{font-weight:700;box-shadow:0 3px 12px rgba(37,99,235,.3)}.nav-parent-copy small{font-size:11px;color:#c0d0df}}
.app{display:flex;min-height:100vh}
.sidebar{width:180px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#cbd5e1;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand{padding:18px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand .logo{font-size:17px;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px}
.brand-logo-img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:7px;padding:2px;flex-shrink:0}
.brand .sub{font-size:11px;color:#64748b;margin-top:5px}
.nav{padding:10px 8px;flex:1;overflow-y:auto}
.nav-group{font-size:11px;color:#64748b;padding:12px 10px 4px;letter-spacing:1px}
.nav-parent{cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;font-size:14px;font-weight:600;color:#e2e8f0;padding:10px 10px}
.nav-parent:hover{color:#cbd5e1}
.nav-arrow{font-size:10px;transition:.15s}
.nav-children{padding-left:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;color:#cbd5e1;font-size:13.5px;transition:.15s;margin-bottom:2px}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:var(--primary);color:#fff;font-weight:500}
.nav-item .ic{width:18px;text-align:center;opacity:.85}
.sidebar-foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#64748b}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:14px 26px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.topbar h1{font-size:19px;font-weight:600}
.topbar .crumb{color:var(--muted);font-size:12px;margin-top:2px}
.topbar .actions{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13px;cursor:pointer;transition:.15s;font-family:inherit;white-space:nowrap}
.btn:hover{background:#f8fafc;border-color:#cbd5e1}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-d)}
.btn.danger{color:var(--red);border-color:#fecaca}
.btn.sm{padding:4px 10px;font-size:12px}
input,select,textarea{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);outline:none;transition:.15s;width:100%}
input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-l)}
.page-tabs{display:flex;align-items:center;gap:8px;padding:10px 26px 0;background:#f8fafc;border-bottom:1px solid var(--border);overflow-x:auto;min-height:42px}
.page-tab{display:inline-flex;align-items:center;gap:8px;max-width:180px;padding:8px 10px;border:1px solid var(--border);border-bottom-color:#d8dee8;border-radius:10px 10px 0 0;background:#eef2f7;color:#475569;cursor:pointer;white-space:nowrap;transition:.15s}
.page-tab:hover{background:#fff;color:var(--primary)}
.page-tab.active{background:#fff;color:var(--primary);border-color:var(--primary);box-shadow:0 -2px 8px rgba(30,64,175,.08)}
.page-tab-title{overflow:hidden;text-overflow:ellipsis}
.page-tab-close{border:0;background:transparent;color:#94a3b8;font-size:16px;line-height:1;cursor:pointer;padding:0 2px;border-radius:4px}
.page-tab-close:hover{background:#fee2e2;color:#b91c1c}
.content{padding:22px 26px;flex:1;overflow-x:hidden}
.page{display:none}.page.active{display:block}
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}
.panel-h{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.panel-h h2{font-size:15px;font-weight:600}
.panel-h .tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
table.data{width:100%;border-collapse:collapse;font-size:13px}
table.data thead th{background:#f8fafc;border-bottom:2px solid var(--border);padding:5px 4px;text-align:left;font-weight:600;color:var(--muted);white-space:nowrap;z-index:1;font-size:10px}
.excel-filter-head{display:inline-flex;align-items:center;gap:3px;cursor:pointer;user-select:none;color:inherit}
.excel-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #cbd5e1;border-radius:3px;background:#fff;color:#64748b;font-size:9px;line-height:1}
.excel-filter-head.active{color:#2563eb}.excel-filter-head.active .excel-filter-btn{background:#2563eb;border-color:#2563eb;color:#fff}
.excel-filter-popup{position:fixed;z-index:1200;width:300px;padding:10px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 12px 30px rgba(15,23,42,.2)}
.excel-filter-popup .ef-title{font-size:12px;font-weight:600;margin-bottom:7px;color:#334155}.excel-filter-popup input{width:100%;padding:7px 9px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px}.excel-filter-popup .ef-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}
.ef-value-search{display:flex;align-items:center;gap:6px;padding:0 8px;border:1px solid #b9c8d8;border-radius:7px;background:#fff}.ef-value-search:focus-within{border-color:#1688ee;box-shadow:0 0 0 2px rgba(22,136,238,.12)}.ef-value-search>span{color:#718297;font-size:17px}.excel-filter-popup .ef-value-search input{height:34px;padding:6px 0;border:0!important;outline:0;box-shadow:none!important}.ef-value-tools{display:flex;align-items:center;gap:12px;padding:8px 2px 6px;border-bottom:1px solid #e2e8f0;font-size:11px}.ef-value-tools a{color:#176fc1;cursor:pointer}.ef-value-tools span{margin-left:auto;color:#8a98a8}.ef-value-list{max-height:280px;overflow-y:auto;padding:5px 0;border-bottom:1px solid #e2e8f0}.ef-value-line{display:flex;align-items:center;gap:7px;min-height:29px;padding:3px 5px;border-radius:4px;color:#334155;font-size:12px;cursor:pointer}.ef-value-line:hover{background:#edf6ff}.ef-value-line input[type=checkbox]{width:16px!important;height:16px!important;padding:0!important;accent-color:#1688ee;flex:0 0 auto}.ef-value-line span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ef-value-line em{flex:0 0 auto;color:#9aa7b5;font-size:10px;font-style:normal}.ef-value-empty{padding:22px 8px;text-align:center;color:#94a3b8;font-size:12px}
.ef-date-tools{display:flex;gap:12px;padding:3px 2px 8px;border-bottom:1px solid #e2e8f0;font-size:12px}.ef-date-tools a{color:#2563eb;cursor:pointer}.ef-date-tree{max-height:350px;overflow:auto;padding:6px 1px}.ef-date-line{display:flex;align-items:center;gap:5px;min-height:25px;font-size:13px;white-space:nowrap}.ef-date-line:hover{background:#f1f5f9}.ef-date-line input[type=checkbox]{width:17px!important;height:17px!important;padding:0!important;accent-color:#42b98d;flex:0 0 auto}.ef-date-toggle{width:17px;border:0;background:transparent;color:#64748b;padding:0;cursor:pointer;font-size:11px}.ef-date-count{color:#94a3b8;margin-left:3px}.ef-date-children{padding-left:20px}.ef-date-node.collapsed>.ef-date-children{display:none}.ef-date-node.collapsed>.ef-date-line>.ef-date-toggle{transform:rotate(-90deg)}.ef-date-leaf-line{padding-left:22px}.ef-date-empty{padding-left:22px;color:#64748b}
table.data tbody td{padding:4px 4px;border-bottom:1px solid #f1f5f9;white-space:nowrap}
table.data{table-layout:auto;width:100%;font-size:11px}
table.data tbody tr:hover{background:#f8fafc}
.num{text-align:right;font-variant-numeric:tabular-nums}
.center{text-align:center}
.muted{color:var(--muted)}
.tag{display:inline-block;padding:2px 9px;border-radius:11px;font-size:11.5px;font-weight:500}
.tag.green{background:var(--green-l);color:var(--green)}
.tag.blue{background:var(--primary-l);color:var(--primary)}
.tag.amber{background:var(--amber-l);color:var(--amber)}
.tag.gray{background:#e2e8f0;color:#475569}
.tag.red{background:var(--red-l);color:var(--red)}
.empty{text-align:center;padding:40px;color:var(--muted);font-size:13px}
.month-tax-table{border-collapse:separate!important;border-spacing:0;width:100%;table-layout:fixed;font-size:10px}
.month-tax-table th:first-child,.month-tax-table td:first-child{width:66px}
.month-tax-table th:nth-child(2),.month-tax-table td:nth-child(2){width:176px;white-space:normal;line-height:1.3}
.month-tax-table th:nth-child(n+3),.month-tax-table td:nth-child(n+3){min-width:0;white-space:nowrap}
.month-tax-table .me-manual td{padding:3px 2px!important}
.month-tax-table .me-manual input{display:block;width:100%!important;min-width:0!important;height:22px!important;box-sizing:border-box;padding:1px 2px!important;font-size:9px;line-height:18px;text-align:right}
.month-end-view .month-tax-fit{overflow-y:auto!important;overflow-x:hidden!important}
.month-tax-table th{position:sticky;top:0;background:#f8fafc!important;border-bottom:1px solid #cbd5e1!important;padding:8px 7px!important}
.month-tax-table td{padding:7px!important;border-bottom:1px solid #e5e7eb!important}
.month-tax-table .me-sec td{background:#e0f2fe!important;color:#075985;font-weight:700;border-top:2px solid #38bdf8!important}
.month-tax-table .me-sec td:first-child{border-left:4px solid #0284c7}
.month-tax-table .me-total td{background:#f8fafc!important;font-weight:700}
.month-tax-table .me-key td{background:#fff7ed!important;color:#9a3412;font-weight:700}
.month-tax-table .me-muted td:first-child{color:transparent}
body.month-end-active{overflow:hidden}
body.month-end-active .app{height:100vh;min-height:0;overflow:hidden}
body.month-end-active .main{height:100vh;min-height:0;overflow:hidden}
body.month-end-active .topbar{padding:8px 26px}
body.month-end-active .page-tabs{padding-top:4px;min-height:36px}
body.month-end-active .content{display:flex;min-height:0;overflow:hidden;padding:10px 18px}
.month-end-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.month-end-view>.panel{flex-shrink:0;margin-bottom:10px}
.month-end-view>.panel>.panel-h{padding:8px 14px}
.month-end-view>.panel>.panel-h h2{display:flex;align-items:center;flex-wrap:wrap}
.month-end-view>.panel:last-child{flex:1;min-height:0;display:flex;flex-direction:column;margin-bottom:0}
.month-end-view>.panel:last-child>.panel-b{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.month-end-view>.panel:last-child>.panel-b>.tbl-wrap{flex:1;min-height:0;overflow:auto!important;position:relative}
#monthEndTabHost,#monthEndTabHost>.month-end-tab-pane{display:flex;flex:1 1 auto;min-height:0;width:100%;flex-direction:column;overflow:hidden}
#monthEndTabHost>.month-end-tab-pane>.panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;margin-bottom:0;overflow:hidden}
#monthEndTabHost>.month-end-tab-pane>.panel>.panel-h{flex:0 0 auto}
#monthEndTabHost>.month-end-tab-pane>.panel>.panel-b{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}
#monthEndTabHost>.month-end-tab-pane>.panel>.panel-b>.tbl-wrap{position:relative;flex:1 1 auto;min-height:0;overflow:auto!important}
.month-end-output-view{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}
.month-end-output-view>.panel:first-child{flex:0 0 auto;margin-bottom:5px;border-radius:9px}
.month-end-output-view>.panel:first-child>.panel-h{min-height:34px;padding:3px 9px}
.month-end-output-view>.panel:last-child{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;margin-bottom:0;overflow:hidden}
.month-end-output-view>.panel:last-child>.panel-h{flex:0 0 auto;padding:6px 10px}
.month-end-output-view>.panel:last-child>.panel-b{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden;padding-top:5px}
.month-end-output-view>.panel:last-child>.panel-b>.tbl-wrap{position:relative;flex:1 1 auto;min-height:0;overflow:auto!important}
.month-end-summary-line{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.month-end-summary-line>.tools{flex:0 0 auto;white-space:nowrap}
.month-end-filter-summary{display:flex;min-width:0;align-items:center;gap:14px;flex-wrap:nowrap;padding:6px 10px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#334155;font-size:11px;white-space:nowrap}
.month-end-filter-summary>b{color:#1d4ed8}
.month-end-filter-summary strong{font-size:11.5px;color:#243b53}
.month-end-view .tbl-wrap table.data{border-collapse:separate;border-spacing:0}
.month-end-view .tbl-wrap table.data thead th{position:sticky;top:0;z-index:6;height:32px;background:#f8fafc!important;box-shadow:0 1px 0 var(--border)}
.month-end-view .tbl-wrap table.data thead tr.filter-row th{top:32px;z-index:5;background:#fff!important;box-shadow:0 2px 0 #cbd5e1}
.hub-alert.is-active{border-width:2px;transform:translateY(-1px);box-shadow:0 10px 24px rgba(30,50,80,.18)}.hub-alert.todo.is-active{border-color:#e83d4f;background:linear-gradient(135deg,#df233d,#f05252)}.hub-alert.contract.is-active{border-color:#ef8b11;background:linear-gradient(135deg,#e77808,#f59e0b)}.hub-alert.point.is-active{border-color:#7c3aed;background:linear-gradient(135deg,#6930c3,#8b5cf6)}.hub-alert.published.is-active{border-color:#087ad1;background:linear-gradient(135deg,#0874c9,#1593df)}.hub-alert.is-active .hub-alert-icon{background:rgba(255,255,255,.2);color:#fff}.hub-alert.is-active .hub-alert-copy span,.hub-alert.is-active .hub-alert-copy small,.hub-alert.is-active .hub-alert-arrow{color:rgba(255,255,255,.88)}.hub-alert.is-active .hub-alert-copy b{color:#fff;font-size:32px;text-shadow:0 2px 5px rgba(0,0,0,.12)}.hub-alert.is-active .hub-alert-badge{background:#fff;color:#c6283b;font-size:8px;box-shadow:0 3px 10px rgba(0,0,0,.16)}.hub-alert.contract.is-active .hub-alert-badge{color:#b55c00}.hub-alert.point.is-active .hub-alert-badge{color:#6930c3}.hub-alert.published.is-active .hub-alert-badge{color:#0874c9}.hub-alert.is-clear{border-color:#d7e3e8!important;background:linear-gradient(135deg,#f5f8f9,#fff)!important;box-shadow:none}.hub-alert.is-clear .hub-alert-icon{background:#e8f3ed!important;color:#3d8060!important}.hub-alert.is-clear .hub-alert-copy b{color:#4f7f68;font-size:20px}.hub-alert.is-clear .hub-alert-copy span,.hub-alert.is-clear .hub-alert-copy small{color:#87979e}.hub-alert.is-clear .hub-alert-badge{background:#eaf5ef;color:#3b7b5c;box-shadow:none}
.modal-bg{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:30px 16px;overflow-y:auto}
.modal-bg.show{display:flex}
.modal{background:var(--card);border-radius:12px;width:100%;max-width:760px;box-shadow:0 20px 50px rgba(0,0,0,.25);margin:auto}
.modal-b [style*="max-height"][style*="overflow:visible"],#searchOverlay [style*="max-height"][style*="overflow:visible"],#paSearchOverlay [style*="max-height"][style*="overflow:visible"],#unpickedSearchOverlay [style*="max-height"][style*="overflow:visible"]{overflow:auto!important}
#searchOverlay table.data thead th,#paSearchOverlay table.data thead th,#unpickedSearchOverlay table.data thead th{position:sticky;top:0;z-index:2;background:#f8fafc}
.modal.wide{max-width:1100px}
.modal-h{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.modal-h h3{font-size:16px;font-weight:600}
.modal-h .close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1;padding:0 4px}
.modal-b{padding:20px;max-height:none;overflow-y:auto}
.modal-f{padding:13px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:#f8fafc;border-radius:0 0 12px 12px}
.modal.password-modal{width:min(400px,calc(100vw - 32px))!important;max-width:400px!important}
.password-modal .modal-h{padding:12px 16px}
.password-modal .modal-b{padding:15px 16px}
.password-modal .modal-f{padding:10px 16px}
.password-modal .form-grid{grid-template-columns:1fr;gap:10px}
.password-modal .form-grid .field{grid-column:1}
.password-modal .field input{height:38px}
.modal.permissions-modal{width:min(680px,calc(100vw - 32px))!important;max-width:680px!important}
.permissions-modal .modal-h{padding:11px 16px}
.permissions-modal .modal-b{padding:13px 16px 7px}
.permissions-modal .modal-f{padding:9px 16px}
.permissions-modal .permission-group{margin-bottom:9px!important}
.permissions-modal .permission-group-title{margin-bottom:5px!important;font-size:12px}
.permissions-modal .permission-items{gap:5px!important}
.permissions-modal .tag{padding:4px 8px!important;font-size:11px}
.permissions-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;height:calc(100vh - 145px);min-height:480px;overflow:hidden}
.permissions-sidebar,.permissions-detail{min-height:0;border:1px solid #d7e3ef;border-radius:12px;background:#fff;overflow:hidden}
.permissions-sidebar{display:flex;flex-direction:column}.permissions-sidebar-head{padding:12px;border-bottom:1px solid #e2e8f0;background:#f5f9fd}.permissions-sidebar-scroll{padding:8px;overflow-y:auto}
.permissions-list-title{display:flex;align-items:center;justify-content:space-between;margin:5px 5px 7px;color:#54708d;font-size:11px;font-weight:700}.permissions-list-title+.permission-master-item{margin-top:0}
.permission-master-item{display:flex;width:100%;align-items:center;gap:9px;margin:4px 0;padding:9px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#31465c;text-align:left;cursor:pointer}.permission-master-item:hover{background:#eef6fd}.permission-master-item.active{border-color:#9ecbf3;background:#e8f4ff;color:#0c67b7;box-shadow:0 2px 7px rgba(22,136,238,.1)}
.permission-master-icon{display:flex;flex:0 0 32px;width:32px;height:32px;align-items:center;justify-content:center;border-radius:8px;background:#dcecf9;font-weight:800}.permission-master-text{min-width:0;flex:1}.permission-master-text b,.permission-master-text small{display:block;white-space:normal;word-break:break-word}.permission-master-text small{margin-top:2px;color:#7890a8;font-size:10px}
.permissions-detail{display:flex;flex-direction:column}.permissions-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid #e2e8f0;background:linear-gradient(120deg,#f5faff,#eef7ff)}.permissions-detail-body{padding:17px 18px;overflow-y:auto}.permissions-detail-title{font-size:19px;font-weight:750;color:#17365d}.permissions-detail-meta{margin-top:4px;color:#698096;font-size:12px}.permission-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.permission-summary-card{padding:12px;border:1px solid #dce7f1;border-radius:9px;background:#f9fbfd}.permission-summary-card span,.permission-summary-card b{display:block}.permission-summary-card span{color:#7890a8;font-size:10px}.permission-summary-card b{margin-top:4px;color:#203b56;font-size:14px;word-break:break-word}.permission-chip-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.permission-chip-group{padding:11px;border:1px solid #e0e9f2;border-radius:9px}.permission-chip-group h4{margin:0 0 7px;color:#41617f;font-size:11px}.permission-chip-group .tag{margin:2px;padding:4px 7px;font-size:10px}
@media(max-width:800px){.permissions-layout{grid-template-columns:1fr;height:auto;overflow:visible}.permissions-sidebar{max-height:38vh}.permissions-detail{min-height:420px}.permission-summary-grid,.permission-chip-groups{grid-template-columns:1fr}}
.modal.compact-form-modal:not(.contract-entry-modal):not(.exec-detail-modal):not(.password-modal):not(.permissions-modal){width:min(420px,calc(100vw - 32px))!important;max-width:420px!important}
.compact-form-modal .modal-h{padding:11px 16px}
.compact-form-modal .modal-b{padding:13px 16px}
.compact-form-modal .modal-f{padding:9px 16px}
.compact-form-modal .form-grid{gap:10px 12px}
.compact-form-modal .field{gap:3px}
.compact-form-modal .field>label:first-child{font-size:11px}
.compact-form-modal .field input,.compact-form-modal .field select{min-height:34px;padding:5px 8px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.form-grid .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:12px;color:var(--muted);font-weight:500}
.field label .req{color:var(--red)}
.toast-wrap{position:fixed;top:18px;right:18px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:#0f172a;color:#fff;padding:11px 18px;border-radius:8px;font-size:13px;box-shadow:0 8px 20px rgba(0,0,0,.25);animation:slidein .25s ease}
.toast.ok{background:#15803d}.toast.err{background:#b91c1c}.toast.info{background:#1e293b}
.entry-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;max-width:1100px}
.entry-tile{border-radius:14px;padding:30px 22px;cursor:pointer;color:#fff;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow);transition:.18s;min-height:130px}
.entry-tile:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(0,0,0,.18)}
.entry-tile .tile-ic{font-size:30px;line-height:1}
.entry-tile .tile-title{font-size:17px;font-weight:600}
.entry-tile .tile-sub{font-size:12px;opacity:.9}
.entry-tile.purchase{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
.entry-tile.sale{background:linear-gradient(135deg,#16a34a,#15803d)}
.entry-tile.pick{background:linear-gradient(135deg,#d97706,#b45309)}
.entry-tile.pay{background:linear-gradient(135deg,#dc2626,#b91c1c)}
.entry-tile.recv{background:linear-gradient(135deg,#0891b2,#0e7490)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:22px}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.stat .label{color:var(--muted);font-size:12.5px}
.stat .value{font-size:25px;font-weight:700;margin-top:8px}
.stat .delta{font-size:11.5px;margin-top:4px;color:var(--muted)}
.stat .icbox{float:right;width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}
.stat.green .icbox{background:var(--green-l);color:var(--green)}
.stat.blue .icbox{background:var(--primary-l);color:var(--primary)}
.stat.amber .icbox{background:var(--amber-l);color:var(--amber)}
.stat.red .icbox{background:var(--red-l);color:var(--red)}
.stat .value.neg{color:var(--red)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:16px;margin-bottom:18px}.dash-rank{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.dash-rank:last-child{border-bottom:0}.dash-rank-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-rank-bar{width:90px;height:7px;border-radius:9px;background:#e2e8f0;overflow:hidden}.dash-rank-bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--primary),#60a5fa)}.dash-rank-value{width:105px;text-align:right;font-weight:600}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}}
.hint{font-size:12px;color:var(--muted);margin-top:8px;padding:8px 12px;background:#f8fafc;border-radius:6px;border-left:3px solid var(--primary)}
.ef-calced{background:#f8fafc;border-radius:6px;padding:6px 9px;font-size:12px;color:var(--muted)}
.ef-calced b{color:var(--text)}
.row-actions{display:flex;gap:4px;justify-content:flex-end}
.row-actions button{padding:4px 8px;font-size:12px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;color:var(--muted)}
.row-actions button:hover{color:var(--primary);border-color:var(--primary)}
.row-actions button.del:hover{color:var(--red);border-color:var(--red)}
.attach-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--primary);cursor:pointer}
.attach-badge:hover{text-decoration:underline}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield}
.pm-side{padding:10px 14px;border-radius:8px}
.pm-side.pur{background:#eff6ff}
.pm-side.sal{background:#f0fdf4}
.pm-title{font-weight:600;margin-bottom:6px;color:var(--text)}
.pm-side.pur .pm-title{color:#1d4ed8}
.pm-side.sal .pm-title{color:#15803d}
.pm-line{font-size:12.5px;color:var(--muted);margin-bottom:3px}
.pm-line b{color:var(--text);font-weight:500}
.pm-empty{padding:14px;text-align:center;color:var(--muted);font-size:12.5px}
.ext-hint{font-size:12px;color:var(--muted);margin-top:6px;padding:7px 10px;background:#f8fafc;border-radius:6px;border-left:3px solid var(--primary)}
.login-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f172a,#1e3a5f)}
.login-card{width:100%;max-width:400px;padding:34px;border-radius:16px;background:#fff;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.login-brand{text-align:center;margin-bottom:25px}.login-logo-img{display:block;width:168px;height:112px;object-fit:contain;margin:0 auto 10px}.login-brand h1{font-size:20px}.login-brand p{color:var(--muted);font-size:12px;margin-top:5px}.login-card .field{margin-bottom:14px}.login-error{min-height:20px;color:var(--red);font-size:12px;text-align:center;margin-top:8px}
body.login-required .app{display:block}
/* 固定工作区：整页不滚动，仅明细与弹窗内容区滚动 */
html,body{height:100%!important;overflow:hidden!important}
body:not(.login-required) .app{height:100vh!important;min-height:0!important;overflow:hidden!important}
body:not(.login-required) .main{height:100vh!important;min-height:0!important;overflow:hidden!important}
body:not(.login-required) .topbar,body:not(.login-required) .page-tabs{flex:0 0 auto!important}
body:not(.login-required) .content{flex:1!important;min-height:0!important;padding:18px 26px!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
body:not(.login-required) .content>.stats{flex:0 0 auto!important}
body:not(.login-required) .content>.panel{flex:1 1 0!important;min-height:0!important;margin-bottom:12px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
body:not(.login-required) .content>.panel:last-child{margin-bottom:0!important}
body:not(.login-required) .panel-h{flex:0 0 auto!important}
body:not(.login-required) .content .panel-b{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain}
body:not(.login-required) .content .tbl-wrap{height:100%!important;max-height:100%!important;overflow:auto!important;overscroll-behavior:contain}
body:not(.login-required) .content .tbl-wrap table.data thead th,body:not(.login-required) .content .panel-b>div[style*="overflow"] table.data thead th{position:sticky!important;top:0!important;z-index:5!important;background:#f8fafc!important}
body:not(.login-required) .content .panel-b>div[style*="max-height"]{max-height:100%!important;overflow:auto!important;overscroll-behavior:contain}
body:not(.login-required) .dashboard-grid{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
body:not(.login-required) .dashboard-grid>.panel,body:not(.login-required) .dashboard-grid>div>.panel{min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
body:not(.login-required) .dashboard-grid .panel-b{min-height:0!important;overflow:auto!important}
.modal-bg{align-items:center!important;padding:20px 16px!important;overflow:hidden!important}
.modal{max-height:calc(100vh - 40px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.modal-h,.modal-f{flex:0 0 auto!important}
.modal-b{flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow:auto!important;overscroll-behavior:contain}
#searchOverlay,#paSearchOverlay,#unpickedSearchOverlay{overflow:hidden!important;align-items:center!important;padding:20px 16px!important}
#searchOverlay>div,#paSearchOverlay>div,#unpickedSearchOverlay>div{max-height:calc(100vh - 40px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;margin:auto!important}
#searchOverlay>div>div:last-child,#paSearchOverlay>div>div:last-child,#unpickedSearchOverlay>div>div:last-child{min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
/* 明细表格：保持原字号和清晰列宽，超宽内容仅在明细区域横向滚动 */
body:not(.login-required) .content .tbl-wrap{overflow:auto!important;scrollbar-gutter:stable}
body:not(.login-required) .content table.data,.modal table.data,#searchOverlay table.data,#paSearchOverlay table.data,#unpickedSearchOverlay table.data{width:max-content!important;min-width:100%!important;max-width:none!important;table-layout:auto!important;border-collapse:collapse!important}
body:not(.login-required) .content table.data thead th,.modal table.data thead th,#searchOverlay table.data thead th,#paSearchOverlay table.data thead th,#unpickedSearchOverlay table.data thead th{padding:6px 4px!important;font-size:10px!important;line-height:1.25!important;white-space:nowrap!important;word-break:normal!important;vertical-align:middle!important}
body:not(.login-required) .content table.data tbody td,.modal table.data tbody td,#searchOverlay table.data tbody td,#paSearchOverlay table.data tbody td,#unpickedSearchOverlay table.data tbody td{padding:6px 4px!important;font-size:11px!important;line-height:1.35!important;white-space:nowrap!important;word-break:normal!important;vertical-align:middle!important}
body:not(.login-required) .content table.data th,body:not(.login-required) .content table.data td,.modal table.data th,.modal table.data td,#searchOverlay table.data th,#searchOverlay table.data td,#paSearchOverlay table.data th,#paSearchOverlay table.data td,#unpickedSearchOverlay table.data th,#unpickedSearchOverlay table.data td{text-align:center!important}
body:not(.login-required) .content table.data .num,.modal table.data .num,#searchOverlay table.data .num,#paSearchOverlay table.data .num,#unpickedSearchOverlay table.data .num{text-align:center!important}
body:not(.login-required) .content table.data .nowrap,.modal table.data .nowrap,#searchOverlay table.data .nowrap,#paSearchOverlay table.data .nowrap,#unpickedSearchOverlay table.data .nowrap{white-space:nowrap!important}
body:not(.login-required) .content table.data .num,.modal table.data .num{padding-left:4px!important;padding-right:4px!important}
.contract-ledger-table{min-width:1510px!important}
.contract-ledger-table th:nth-child(1),.contract-ledger-table td:nth-child(1){width:46px;min-width:46px;text-align:center}
.contract-ledger-table th:nth-child(2),.contract-ledger-table td:nth-child(2){width:84px;min-width:84px}
.contract-ledger-table th:nth-child(3),.contract-ledger-table td:nth-child(3){width:116px;min-width:116px}
.contract-ledger-table th:nth-child(4),.contract-ledger-table td:nth-child(4){width:168px;min-width:168px;max-width:168px;white-space:normal!important;word-break:break-all!important}
.contract-ledger-table th:nth-child(5),.contract-ledger-table td:nth-child(5){width:105px;min-width:105px;max-width:105px;white-space:normal!important}
.contract-ledger-table th:nth-child(9),.contract-ledger-table td:nth-child(9){width:84px;min-width:84px}
.contract-ledger-table th:nth-child(12),.contract-ledger-table td:nth-child(12){width:98px;min-width:98px;max-width:98px;white-space:normal!important}
.contract-ledger-table th:nth-child(16),.contract-ledger-table td:nth-child(16){width:102px;min-width:102px}
.contract-ledger-table th:nth-child(18),.contract-ledger-table td:nth-child(18){width:50px;min-width:50px}
#contractQtySummaryTable{overflow-x:hidden!important;overflow-y:auto!important;scrollbar-gutter:stable!important}
#contractQtySummaryTable .contract-qty-summary-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
#contractQtySummaryTable .contract-qty-summary-table th,#contractQtySummaryTable .contract-qty-summary-table td{min-width:0!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;padding-left:4px!important;padding-right:4px!important}
#contractQtySummaryTable .contract-qty-summary-table .row-actions,#contractQtySummaryTable .contract-qty-summary-table button{min-width:0!important;white-space:normal!important}
body:not(.login-required) .content .excel-filter-head{display:flex!important;width:100%!important;justify-content:center!important;gap:1px!important;white-space:normal!important}
body:not(.login-required) .content .excel-filter-btn{width:12px!important;height:12px!important;min-width:12px!important;font-size:7px!important}
body:not(.login-required) .content .row-actions{gap:4px!important;flex-wrap:nowrap!important;justify-content:center!important}
body:not(.login-required) .content .row-actions button{padding:3px 6px!important;font-size:12px!important}
.settings-page{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:8px;scrollbar-gutter:stable}
.settings-page>.panel{display:block!important;min-height:auto!important;overflow:visible!important;margin-bottom:12px!important}
.settings-page>.panel>.panel-b{display:block!important;min-height:48px!important;overflow:visible!important;flex:none!important}
.product-code-panel>.panel-b{background:#f8fafc}
.product-code-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;padding:10px 14px}
.product-code-item{display:flex;align-items:center;gap:6px;min-width:0;min-height:42px;padding:6px 7px 6px 8px;background:#fff;border:1px solid #dbe3ee;border-radius:8px;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .15s,box-shadow .15s,background .15s}
.product-code-item:hover{border-color:#aebed2;box-shadow:0 3px 10px rgba(15,23,42,.07)}
.product-code-item.product-dairy{border-left:4px solid #a855f7;background:#fdfaff}
.product-code-item.product-oil{border-left:4px solid #f59e0b}
.product-code-item:has(.product-merge-check:checked){border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 2px rgba(59,130,246,.12)}
.product-code-item.category-updated{outline:3px solid rgba(34,197,94,.22);outline-offset:2px}
.product-code-select{display:flex;align-items:center;gap:7px;min-width:0;flex:1;cursor:pointer}
.product-code-select .product-merge-check{width:14px!important;height:14px!important;min-width:14px!important;padding:0!important;margin:0;accent-color:#2563eb}
.product-code-name{min-width:0;color:#334155;font-size:12px;line-height:1.35;word-break:break-word}
.product-category-badge{flex:0 0 auto;padding:2px 6px;border:0;border-radius:999px;font-size:10px;font-weight:600;cursor:pointer;white-space:nowrap}
.product-category-badge.dairy{background:#f3e8ff;color:#7e22ce}
.product-category-badge.oil{background:#fef3c7;color:#b45309}
.product-category-badge:hover{filter:brightness(.96);box-shadow:0 0 0 2px rgba(100,116,139,.1)}
.product-code-delete{display:flex;align-items:center;justify-content:center;flex:0 0 21px;width:21px;height:21px;padding:0;border:0;border-radius:6px;background:transparent;color:#94a3b8;font-size:15px;line-height:1;cursor:pointer;transition:.15s}
.product-code-delete:hover{background:#fee2e2;color:#dc2626}
.merge-products-btn{border-color:#bfdbfe!important;background:#eff6ff!important;color:#1d4ed8!important}
.merge-products-btn:hover{background:#dbeafe!important;border-color:#93c5fd!important}
.settings-code-list{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px}
.settings-code-chip{padding:6px 10px!important;display:inline-flex!important;align-items:center;gap:7px;border:1px solid #dbe3ee;background:#f8fafc!important}
.contract-product-combobox{background:#fff}
body:not(.login-required) .content>.dashboard-month-panel{flex:0 0 auto!important;min-height:58px!important;display:block!important;overflow:visible!important;margin-bottom:12px!important}
.dashboard-month-panel .panel-h{min-height:58px!important;padding:10px 18px!important;overflow:visible!important}
.dashboard-month-panel .dashboard-month-tools{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;visibility:visible!important;opacity:1!important}
.dashboard-month-panel #dashboardMonth{display:block!important;width:155px!important;min-width:155px!important;height:34px!important;visibility:visible!important;opacity:1!important}

/* ===== 2026 UI refresh: visual layer only, no business behavior changes ===== */
:root{
  --primary:#1769e0;
  --primary-d:#0f55be;
  --primary-l:#eaf2ff;
  --bg:#f3f6fa;
  --card:#ffffff;
  --border:#dfe6ef;
  --text:#172033;
  --muted:#69758a;
  --green:#0f9f6e;
  --green-l:#e8f8f1;
  --red:#d64545;
  --red-l:#fff0f0;
  --amber:#c77b08;
  --amber-l:#fff6df;
  --shadow:0 1px 2px rgba(20,36,62,.04),0 8px 24px rgba(20,36,62,.06);
  --shadow-lg:0 18px 55px rgba(18,32,54,.18);
  --radius:13px;
}
body{
  background:
    radial-gradient(circle at 88% 0,rgba(45,123,232,.07),transparent 24rem),
    var(--bg);
  color:var(--text);
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font-family:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(23,105,224,.17);
  outline-offset:1px;
}

/* Navigation */
.sidebar{
  width:204px;
  background:
    radial-gradient(circle at 25% -5%,rgba(61,139,255,.28),transparent 14rem),
    linear-gradient(180deg,#172741 0%,#111d31 52%,#0d1727 100%);
  border-right:1px solid rgba(255,255,255,.06);
  box-shadow:8px 0 28px rgba(12,23,40,.08);
}
.brand{padding:21px 18px 17px;border-bottom-color:rgba(255,255,255,.09)}
.brand .logo{gap:10px;font-size:16px;font-weight:650;letter-spacing:.1px}
.brand-logo-img{
  width:38px;height:38px;padding:3px;border-radius:11px;
  box-shadow:0 5px 14px rgba(0,0,0,.22);
}
.brand .sub{margin:7px 0 0 48px;color:#8494ac;font-size:10.5px;letter-spacing:.2px}
.nav{padding:12px 10px 18px;scrollbar-width:thin;scrollbar-color:#3b4b63 transparent}
.nav-group{padding:16px 10px 6px;color:#71829b;font-size:10px;font-weight:650;letter-spacing:1.35px}
.nav-parent{
  margin-top:5px;padding:9px 10px;border-radius:8px;color:#aebbd0;
  font-size:12px;font-weight:600;letter-spacing:.25px;transition:background .18s,color .18s;
}
.nav-parent:hover{background:rgba(255,255,255,.045);color:#fff}
.nav-parent-label{display:flex;align-items:center;gap:8px}
.nav-parent-label b{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:18px;
  border:1px solid rgba(151,174,207,.2);border-radius:5px;color:#7790b2;
  font-size:9px;font-weight:700;letter-spacing:0;
}
.nav-parent:hover .nav-parent-label b{border-color:rgba(174,200,238,.3);color:#adc4e4}
.nav-children{margin:2px 0 5px 8px;padding-left:8px;border-left:1px solid rgba(148,163,184,.17)}
.nav-item{
  position:relative;gap:9px;margin:2px 0;padding:9px 10px;border-radius:8px;
  color:#bac6d8;font-size:12.5px;transition:background .18s,color .18s,transform .18s;
}
.nav-item .ic{
  display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;
  color:#8fa2bd;font-size:13px;opacity:1;
}
.nav-item:hover{background:rgba(255,255,255,.065);color:#fff;transform:translateX(2px)}
.nav-item:hover .ic{color:#c9dcff}
.nav-item.active{
  background:linear-gradient(135deg,#2778e8,#1762cf);color:#fff;font-weight:600;
  box-shadow:0 6px 16px rgba(4,82,187,.32);
}
.nav-item.active .ic{color:#fff}
.nav-task-badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:18px;margin-left:auto;
  padding:0 5px;border-radius:999px;background:#ef5350;color:#fff;font-size:9px;font-weight:750;
  box-shadow:0 2px 7px rgba(213,55,55,.3);
}
.nav-task-badge.warning{background:#d99018;box-shadow:0 2px 7px rgba(180,108,0,.28)}
.nav-item.active .nav-task-badge{background:#fff;color:#155fc7;box-shadow:none}
.nav-arrow{color:#7f91aa}
.sidebar-foot{padding:13px 18px 15px;border-top-color:rgba(255,255,255,.07);color:#72829a;line-height:1.55}

/* Stronger task navigation */
.sidebar{width:232px}.brand{padding:20px 17px 18px}.nav{padding:13px 11px 20px}.nav>.nav-item[data-page="dashboard"]{min-height:46px;margin-bottom:12px;padding:12px 13px;border:1px solid rgba(116,164,232,.18);border-radius:11px;background:rgba(255,255,255,.055);color:#eef5ff;font-size:13px;font-weight:700}.nav>.nav-item[data-page="dashboard"] .ic{width:24px;height:24px;border-radius:7px;background:rgba(85,150,240,.18);color:#dbeaff}.nav>.nav-item[data-page="dashboard"].active{border-color:rgba(80,151,249,.46);background:linear-gradient(135deg,#2778e8,#1762cf);box-shadow:0 8px 20px rgba(4,82,187,.31)}.nav-parent{min-height:52px;margin:7px 0 4px;padding:8px 9px;border:1px solid rgba(134,157,190,.12);border-radius:10px;background:rgba(255,255,255,.025);color:#c0cde0}.nav-parent:hover{border-color:rgba(151,181,221,.22);background:rgba(255,255,255,.06)}.nav-parent.expanded,.nav-parent.current{border-color:rgba(79,144,232,.27);background:rgba(43,105,187,.13);color:#fff}.nav-parent-label{gap:10px}.nav-parent-label>b{flex:0 0 28px;width:28px;height:28px;border-color:rgba(127,158,201,.28);border-radius:8px;background:rgba(255,255,255,.04);color:#91add2;font-size:9px}.nav-parent.expanded .nav-parent-label>b,.nav-parent.current .nav-parent-label>b{border-color:rgba(102,168,255,.38);background:rgba(44,123,232,.2);color:#d9e9ff}.nav-parent-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.nav-parent-copy strong{color:inherit;font-size:12px;font-weight:700;letter-spacing:.15px}.nav-parent-copy small{color:#7488a5;font-size:8.5px;font-weight:500;letter-spacing:0}.nav-parent.expanded .nav-parent-copy small,.nav-parent.current .nav-parent-copy small{color:#91acd0}.nav-arrow{padding:3px;color:#7890ae;font-size:11px}.nav-parent.expanded .nav-arrow{color:#bdd5f5}.nav-children{margin:0 0 8px 14px;padding:3px 0 3px 10px;border-left-color:rgba(94,143,209,.3)}.nav-children .nav-item{min-height:38px;margin:2px 0;padding:8px 9px;color:#aebed3;font-size:11.5px}.nav-children .nav-item .ic{flex:0 0 23px;width:23px;height:23px;border-radius:7px;background:rgba(255,255,255,.045);color:#8fa7c5;font-size:10px}.nav-children .nav-item:hover{background:rgba(255,255,255,.07);transform:none}.nav-children .nav-item.active{background:linear-gradient(90deg,rgba(36,111,215,.95),rgba(38,103,191,.76));box-shadow:0 5px 14px rgba(4,68,157,.25)}.nav-children .nav-item.active .ic{background:rgba(255,255,255,.14)}.nav-group:not(.nav-parent){margin-top:14px;padding:12px 10px 5px;border-top:1px solid rgba(255,255,255,.07);color:#71839c}.nav-task-badge{min-width:21px;height:20px;font-size:9px}

/* Header and workspace */
.topbar{
  min-height:66px;padding:12px 24px;background:rgba(255,255,255,.91);
  border-bottom-color:rgba(215,224,235,.92);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(28,45,72,.025);
}
.topbar h1{font-size:20px;font-weight:700;letter-spacing:-.2px;color:#142038}
.topbar .crumb{margin-top:3px;color:#8590a2;font-size:11.5px}
.topbar .actions{gap:7px}
.topbar .today{padding:5px 9px;border-radius:7px;background:#f4f7fb;color:#718096;font-size:11.5px}
.page-tabs{
  gap:6px;min-height:43px;padding:8px 24px 0;background:rgba(246,248,251,.94);
  border-bottom-color:#dce4ee;scrollbar-width:thin;
}
.page-tab{
  min-height:34px;padding:7px 11px;border-color:transparent;background:transparent;
  color:#667389;border-radius:8px 8px 0 0;font-size:12px;
}
.page-tab:hover{background:#eef3f9;color:#245fae}
.page-tab.active{
  position:relative;background:#fff;border-color:#dce4ee;color:var(--primary);
  box-shadow:0 -3px 10px rgba(26,52,88,.04);font-weight:600;
}
.page-tab.active:after{
  content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;
  border-radius:2px 2px 0 0;background:var(--primary);
}
.page-tab-close{color:#9aa5b5;transition:background .15s,color .15s}
body:not(.login-required) .content{padding:20px 24px!important}

/* Controls */
.btn{
  min-height:33px;padding:7px 13px;border-color:#d8e0ea;border-radius:8px;
  background:#fff;color:#334158;font-weight:500;
  box-shadow:0 1px 1px rgba(18,35,59,.025);
  transition:background .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s;
}
.btn:hover{background:#f7f9fc;border-color:#b9c7d9;box-shadow:0 3px 8px rgba(26,46,74,.07);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn.primary{
  background:linear-gradient(180deg,#2979e8,#1768dc);border-color:#1768dc;color:#fff;
  box-shadow:0 4px 11px rgba(23,105,224,.2);
}
.btn.primary:hover{background:linear-gradient(180deg,#1f70df,#115bc4);border-color:#115bc4}
.btn.danger{background:#fffafa;border-color:#f4cccc;color:#ca3d3d}
.btn.danger:hover{background:#fff0f0;border-color:#efa9a9}
.btn.sm{min-height:29px;padding:5px 10px;font-size:11.5px}
input,select,textarea{
  min-height:35px;padding:7px 10px;border-color:#d7e0eb;border-radius:8px;
  background:#fff;color:#27344a;box-shadow:inset 0 1px 1px rgba(20,35,55,.025);
}
input:hover,select:hover,textarea:hover{border-color:#b9c7d9}
input:focus,select:focus,textarea:focus{
  border-color:#4a8ce8;box-shadow:0 0 0 3px rgba(23,105,224,.12);
}
.field{gap:6px}.field label{color:#647187;font-size:11.5px;font-weight:600}

/* Panels, summaries and entry cards */
.panel{
  border-color:#e0e7f0;border-radius:var(--radius);box-shadow:var(--shadow);
  transition:border-color .18s,box-shadow .18s;
}
.panel-h{
  min-height:50px;padding:12px 17px;border-bottom-color:#e7edf4;
  background:linear-gradient(180deg,#fff,#fcfdff);
}
.panel-h h2{font-size:14px;font-weight:700;color:#253249;letter-spacing:.05px}
.panel-h .tools{gap:7px}
.stats{gap:14px;margin-bottom:17px}
.stat{
  position:relative;overflow:hidden;padding:17px 18px;border-color:#e1e8f0;
  border-radius:13px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;
}
.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#b7c6d9}
.stat.blue:before{background:#3984eb}.stat.green:before{background:#28ad80}.stat.amber:before{background:#e3a22d}.stat.red:before{background:#df6262}
.stat:hover{transform:translateY(-2px);box-shadow:0 11px 27px rgba(20,36,62,.09)}
.stat .label{color:#738096;font-size:11.5px;font-weight:600}
.stat .value{margin-top:7px;color:#17243b;font-size:24px;font-weight:720;letter-spacing:-.45px}
.stat .delta{color:#8792a4;font-size:11px}
.stat .icbox{width:38px;height:38px;border-radius:10px;font-size:17px}
.dashboard-grid{gap:14px}
.dash-rank{padding:10px 0}.dash-rank-bar{height:6px;background:#e9eef5}
.dash-rank-bar i{background:linear-gradient(90deg,#1b6fe0,#62a5f5)}
.entry-tiles{gap:14px}
.entry-tile{
  min-height:126px;padding:25px 21px;border:1px solid rgba(255,255,255,.18);
  border-radius:14px;box-shadow:0 8px 22px rgba(28,52,83,.13);
}
.entry-tile:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(27,46,73,.18)}
.entry-tile .tile-title{font-size:16px;font-weight:700}.entry-tile .tile-sub{opacity:.83}
.entry-tile.purchase{background:linear-gradient(135deg,#2779e8,#1554b6)}
.entry-tile.sale{background:linear-gradient(135deg,#20ad7d,#087954)}
.entry-tile.pick{background:linear-gradient(135deg,#e5a12c,#ae6505)}
.entry-tile.pay{background:linear-gradient(135deg,#e05a5a,#ad2929)}
.entry-tile.recv{background:linear-gradient(135deg,#199db7,#0b667a)}
.hint,.ext-hint{background:#f3f7fc;border-left-color:#3984eb;color:#66748a}

/* Dense business tables: clearer hierarchy without changing dimensions */
table.data{color:#344158}
body:not(.login-required) .content table.data thead th,
.modal table.data thead th,
#searchOverlay table.data thead th,
#paSearchOverlay table.data thead th,
#unpickedSearchOverlay table.data thead th{
  padding-top:7px!important;padding-bottom:7px!important;background:#f4f7fb!important;
  border-bottom-color:#d9e2ed!important;color:#5e6c82!important;font-size:10.5px!important;
  font-weight:700!important;letter-spacing:.08px!important;
}
body:not(.login-required) .content table.data tbody td,
.modal table.data tbody td,
#searchOverlay table.data tbody td,
#paSearchOverlay table.data tbody td,
#unpickedSearchOverlay table.data tbody td{
  padding-top:6px!important;padding-bottom:6px!important;border-bottom-color:#edf1f6!important;
}
table.data tbody tr:nth-child(even){background:#fbfcfe}
table.data tbody tr:hover{background:#eef5ff!important}
.excel-filter-btn{border-color:#cbd6e3;color:#7b899d;border-radius:4px}
.excel-filter-head.active{color:var(--primary)}
.excel-filter-head.active .excel-filter-btn{background:var(--primary);border-color:var(--primary)}
.excel-filter-popup{border-color:#d7e0eb;border-radius:11px;box-shadow:var(--shadow-lg)}
.tag{padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:650}
.tag.gray{background:#edf1f5;color:#596579}
.row-actions button{border-color:#d9e1eb;border-radius:7px;color:#68758a}
.row-actions button:hover{background:#edf5ff;color:var(--primary);border-color:#9dc0ef}
.empty{padding:48px;color:#8792a4}

/* Dialogs and feedback */
.modal-bg{background:rgba(10,22,39,.58);backdrop-filter:blur(4px)}
.modal{border:1px solid rgba(255,255,255,.8);border-radius:15px;box-shadow:var(--shadow-lg)}
.modal-h{padding:15px 19px;border-bottom-color:#e3eaf2;background:linear-gradient(180deg,#fff,#fbfcfe)}
.modal-h h3{font-size:16px;font-weight:700;color:#202d43}
.modal-h .close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:#7e899b;transition:.15s}
.modal-h .close:hover{background:#f0f3f7;color:#26344a}
.modal-b{padding:19px}
.modal-f{padding:12px 19px;border-top-color:#e3eaf2;background:#f7f9fc;border-radius:0 0 15px 15px}
.form-grid{gap:15px}
.toast{border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:0 10px 28px rgba(10,22,39,.23)}
.toast-wrap{width:min(420px,calc(100vw - 36px));max-width:calc(100vw - 36px);pointer-events:none}
.toast{width:100%;box-sizing:border-box;line-height:1.45;overflow-wrap:anywhere;pointer-events:auto}
.toast-show{animation:slidein .25s ease}

/* Login */
.login-overlay{
  background:
    radial-gradient(circle at 18% 18%,rgba(75,143,238,.35),transparent 25rem),
    radial-gradient(circle at 85% 80%,rgba(39,173,128,.16),transparent 28rem),
    linear-gradient(135deg,#0d1b2f,#173456);
}
.login-card{max-width:410px;padding:36px;border:1px solid rgba(255,255,255,.7);border-radius:19px;box-shadow:0 25px 70px rgba(0,0,0,.33)}
.login-logo-img{width:158px;height:102px}.login-brand h1{font-size:21px;color:#18243a}.login-brand p{color:#7f8999}

/* Dashboard */
body:not(.login-required) .content>.dashboard-hero{
  position:relative;flex:0 0 auto!important;min-height:104px!important;margin-bottom:14px!important;
  overflow:hidden!important;border:0;background:
    radial-gradient(circle at 82% 20%,rgba(112,181,255,.28),transparent 18rem),
    linear-gradient(118deg,#152d50 0%,#174f8f 58%,#1678b9 100%);
  box-shadow:0 13px 30px rgba(20,67,119,.18);
}
.dashboard-hero:before{
  content:"";position:absolute;right:-45px;top:-100px;width:250px;height:250px;
  border:1px solid rgba(255,255,255,.13);border-radius:50%;
}
.dashboard-hero:after{
  content:"";position:absolute;right:86px;bottom:-115px;width:210px;height:210px;
  border:38px solid rgba(255,255,255,.055);border-radius:50%;
}
.dashboard-hero-inner{
  position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
  min-height:104px;padding:20px 22px;gap:24px;
}
.dashboard-kicker{margin-bottom:4px;color:#a9d2ff;font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.dashboard-hero-title{color:#fff;font-size:22px;font-weight:720;letter-spacing:-.25px}
.dashboard-hero-sub{margin-top:5px;color:#c9dcef;font-size:11.5px}
.dashboard-hero .dashboard-month-tools{
  display:flex;align-items:center;gap:7px;padding:7px;border:1px solid rgba(255,255,255,.16);
  border-radius:11px;background:rgba(7,28,54,.2);box-shadow:inset 0 1px rgba(255,255,255,.05);
  backdrop-filter:blur(5px);
}
.dashboard-hero .dashboard-month-tools label{padding:0 5px;color:#c8dcef!important;font-size:10.5px}
.dashboard-hero .dashboard-month-tools .btn{
  border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.1);color:#fff;box-shadow:none;
}
.dashboard-hero .dashboard-month-tools .btn:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.18)}
.dashboard-hero #dashboardMonth{border:0!important;background:#fff!important;color:#173456;box-shadow:0 4px 12px rgba(5,24,50,.16)!important}
.dashboard-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px!important;margin-bottom:14px!important}
.dashboard-kpis .dashboard-kpi{
  min-height:111px;padding:16px 17px 15px;border:1px solid #e1e8f1;background:#fff;
  box-shadow:0 5px 17px rgba(26,49,80,.055);
}
.dashboard-kpis .dashboard-kpi:before{left:0;right:0;top:0;bottom:auto;width:auto;height:3px}
.dashboard-kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dashboard-kpi .label{font-size:11px;letter-spacing:.2px}
.dashboard-kpi .icbox{float:none;width:30px;height:30px;border-radius:9px;font-size:12px}
.dashboard-kpi .value{margin-top:10px;font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-kpi .delta{display:flex;align-items:center;gap:5px;margin-top:4px}
.dashboard-kpi .delta:before{content:"";width:5px;height:5px;border-radius:50%;background:#b3bfce}
.dashboard-kpi.dashboard-kpi-total{
  border-color:#cfe0f6;background:linear-gradient(145deg,#f8fbff,#edf5ff);
}
.dashboard-kpi.dashboard-kpi-total .value{color:#155cbf}
.dashboard-kpi.dashboard-kpi-oil .icbox{background:#fff4d7;color:#b56d00}
.dashboard-kpi.dashboard-kpi-dairy .icbox{background:#f2eaff;color:#7046b6}
.dashboard-attention{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.dashboard-alert{
  display:flex;align-items:center;gap:13px;min-width:0;padding:12px 15px;border:1px solid #e2e8f0;
  border-radius:12px;background:#fff;color:#334158;text-align:left;cursor:pointer;
  box-shadow:0 4px 14px rgba(26,49,80,.045);transition:transform .16s,box-shadow .16s,border-color .16s;
}
.dashboard-alert:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(26,49,80,.09)}
.dashboard-alert-icon{
  display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;
  border-radius:11px;background:#eef3f9;color:#5f7088;font-size:17px;font-weight:750;
}
.dashboard-alert-copy{flex:1;min-width:0}
.dashboard-alert-title{display:flex;align-items:center;gap:7px;color:#334158;font-size:12px;font-weight:700}
.dashboard-alert-title b{font-size:17px;line-height:1}
.dashboard-alert-sub{margin-top:4px;color:#8792a4;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-alert-arrow{color:#a0acbc;font-size:18px}
.dashboard-alert.danger{border-color:#f1c6c6;background:linear-gradient(135deg,#fffafa,#fff3f3)}
.dashboard-alert.danger .dashboard-alert-icon{background:#ffe1e1;color:#c63c3c}
.dashboard-alert.danger .dashboard-alert-title{color:#a83232}
.dashboard-alert.warning{border-color:#efddb3;background:linear-gradient(135deg,#fffdf8,#fff8e8)}
.dashboard-alert.warning .dashboard-alert-icon{background:#ffedbd;color:#ad6a00}
.dashboard-alert.warning .dashboard-alert-title{color:#8c5b08}
.dashboard-alert.good{border-color:#d7e8df;background:#fbfefc}
.dashboard-alert.good .dashboard-alert-icon{background:#e7f6ed;color:#168057}
.dashboard-grid.dashboard-overview{grid-template-columns:minmax(0,1.8fr) minmax(280px,.72fr);gap:14px;margin-bottom:0}
.dashboard-grid.dashboard-overview>.panel,.dashboard-side>.panel{border-color:#e1e8f1;box-shadow:0 5px 18px rgba(24,47,79,.055)}
.dashboard-detail-panel .panel-h,.dashboard-rank-panel .panel-h,.dashboard-customer-panel .panel-h{min-height:48px}
.dashboard-section-title{display:flex;align-items:center;gap:9px}
.dashboard-section-title:before{content:"";width:4px;height:16px;border-radius:99px;background:#2879e5}
.dashboard-section-meta{color:#8a96a8;font-size:10.5px}
.dashboard-side{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-height:0;overflow:hidden}
.dashboard-side>.panel{margin-bottom:0!important;min-height:0!important}
.dashboard-rank-panel .panel-b{padding:5px 16px 8px}
.dash-rank{gap:9px;padding:10px 0}
.dash-rank-index{
  display:flex;align-items:center;justify-content:center;flex:0 0 21px;width:21px;height:21px;
  border-radius:7px;background:#edf3fb;color:#657995;font-size:10px;font-weight:700;
}
.dash-rank:nth-child(1) .dash-rank-index{background:#fff0c9;color:#a36a00}
.dash-rank:nth-child(2) .dash-rank-index{background:#e8eef5;color:#5c6c80}
.dash-rank:nth-child(3) .dash-rank-index{background:#f6e5d4;color:#9b5d28}
.dash-rank-main{flex:1;min-width:0}
.dash-rank-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.dash-rank-name{font-size:11.5px;color:#3d4a5f}
.dash-rank-value{width:auto;color:#26364e;font-size:11px;font-weight:700}
.dash-rank-bar{width:100%;height:5px;background:#edf1f6}
.dashboard-customer-summary{display:flex;align-items:center;gap:14px;padding:15px 17px}
.dashboard-customer-value{font-size:31px;font-weight:750;line-height:1;color:#183253;letter-spacing:-1px}
.dashboard-customer-copy{min-width:0}
.dashboard-customer-copy strong{display:block;color:#34445b;font-size:12px}
.dashboard-customer-copy span{display:block;margin-top:3px;color:#8994a5;font-size:10.5px;line-height:1.45}

/* Executive dashboard v3 */
.dashboard-v3{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:auto;scrollbar-gutter:stable}
.executive-hero{
  position:relative;flex:1 1 320px;min-height:290px;overflow:hidden;border:1px solid rgba(255,255,255,.07);
  border-radius:18px;background:
    radial-gradient(circle at 83% 16%,rgba(44,174,178,.17),transparent 21rem),
    radial-gradient(circle at 12% 110%,rgba(41,101,181,.2),transparent 27rem),
    linear-gradient(130deg,#0b1729 0%,#102641 56%,#0d2e46 100%);
  color:#fff;box-shadow:0 22px 50px rgba(14,35,62,.22);
}
.executive-hero:before{
  content:"";position:absolute;inset:0;opacity:.22;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(to right,transparent,black 45%,black);
}
.executive-hero:after{
  content:"";position:absolute;right:-95px;top:-130px;width:360px;height:360px;border:1px solid rgba(122,211,218,.13);
  border-radius:50%;box-shadow:0 0 0 45px rgba(101,193,201,.025),0 0 0 90px rgba(101,193,201,.018);
}
.executive-hero-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;padding:25px 28px 27px}
.executive-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.executive-eyebrow{display:flex;align-items:center;gap:8px;color:#89a3be;font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase}
.executive-eyebrow:before{content:"";width:18px;height:2px;border-radius:9px;background:#d4b36a}
.executive-title{margin-top:6px;color:#f7fafc;font-size:19px;font-weight:650;letter-spacing:.1px}
.executive-period{display:flex;align-items:center;gap:6px;padding:6px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(255,255,255,.055);backdrop-filter:blur(8px)}
.executive-period label{padding:0 5px;color:#9db1c6;font-size:10px}
.executive-period .btn{min-height:29px;border-color:transparent;background:transparent;color:#c4d1df;box-shadow:none}
.executive-period .btn:hover{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.08);color:#fff;transform:none}
.executive-period #dashboardMonth{width:142px!important;min-width:142px!important;height:30px!important;min-height:30px;border:0!important;background:#f8fbff!important;color:#18324e;box-shadow:none!important}
.executive-main{flex:1;display:grid;grid-template-columns:minmax(250px,.85fr) 1px minmax(350px,1.2fr) 1px minmax(230px,.72fr);align-items:center;gap:28px;margin-top:16px}
.executive-divider{align-self:stretch;max-height:150px;margin:auto 0;background:linear-gradient(transparent,rgba(255,255,255,.14),transparent)}
.executive-label{color:#91a6bb;font-size:11px;font-weight:600;letter-spacing:.35px}
.executive-total{margin-top:6px;color:#fff;font-size:50px;font-weight:720;line-height:1.05;letter-spacing:-2px;font-variant-numeric:tabular-nums}
.executive-total-caption{margin-top:10px;color:#7590aa;font-size:10.5px}
.executive-total-caption b{color:#c9d8e7;font-weight:600}
.executive-category-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}
.executive-category-head span:last-child{color:#728aa2;font-size:10px}
.executive-category-values{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.executive-category-item{position:relative;padding-left:13px}
.executive-category-item:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:9px;background:#d3aa56}
.executive-category-item.dairy:before{background:#56c3c2}
.executive-category-name{color:#92a6ba;font-size:10.5px}
.executive-category-value{margin-top:4px;color:#f4f8fc;font-size:25px;font-weight:680;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.executive-category-share{margin-top:3px;color:#6f89a2;font-size:9.5px}
.executive-split{display:flex;height:8px;margin-top:20px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.08)}
.executive-split-oil{background:linear-gradient(90deg,#b98a38,#e0be72)}
.executive-split-dairy{background:linear-gradient(90deg,#459d9f,#68d0ce)}
.executive-amount{margin-top:7px;color:#fff;font-size:29px;font-weight:680;line-height:1.15;letter-spacing:-.7px;font-variant-numeric:tabular-nums;white-space:nowrap}
.executive-amount-sub{margin-top:9px;color:#7890a7;font-size:10px;line-height:1.7}
.executive-amount-sub b{color:#adc0d2;font-weight:500}
.executive-bottom{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;flex:0 0 auto;min-height:174px}
.executive-panel{overflow:hidden;border:1px solid #e1e7ef;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(24,46,75,.055)}
.executive-panel-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #edf1f5}
.executive-panel-head h2{display:flex;align-items:center;gap:8px;color:#27374e;font-size:12px;font-weight:700}
.executive-panel-head h2:before{content:"";width:3px;height:13px;border-radius:9px;background:#1d70d6}
.executive-panel-head span{color:#929dac;font-size:9.5px}
.executive-task-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;padding:12px}
.executive-head-actions{display:flex;align-items:center;gap:6px}
.executive-head-actions .btn{min-height:25px;padding:4px 8px;font-size:9.5px}
.executive-task{
  display:flex;align-items:center;gap:11px;min-width:0;padding:12px;border:1px solid #e8edf3;border-radius:11px;
  background:#fbfcfe;color:#334158;text-align:left;cursor:pointer;transition:.16s;
}
.executive-task:hover{border-color:#b9cce3;background:#f7faff;transform:translateY(-1px);box-shadow:0 7px 16px rgba(28,56,91,.07)}
.executive-task-mark{display:flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:#edf2f7;color:#607189;font-size:13px;font-weight:800}
.executive-task-copy{flex:1;min-width:0}.executive-task-copy strong{display:flex;align-items:center;gap:6px;color:#344259;font-size:11.5px}.executive-task-copy strong b{font-size:16px}.executive-task-copy small{display:block;margin-top:3px;color:#909aaa;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.executive-task-arrow{color:#a6b0bd;font-size:17px}
.executive-task.danger{border-color:#f0d3d3;background:#fffafa}.executive-task.danger .executive-task-mark{background:#ffe9e8;color:#c13f3a}.executive-task.danger .executive-task-copy strong{color:#a83b37}
.executive-task.warning{border-color:#eddfbf;background:#fffdf8}.executive-task.warning .executive-task-mark{background:#fff0ca;color:#a2690b}.executive-task.warning .executive-task-copy strong{color:#88601e}
.executive-task.good .executive-task-mark{background:#e8f6ee;color:#177b55}
.executive-snapshot{display:grid;grid-template-columns:repeat(4,1fr);height:calc(100% - 43px);padding:12px 4px}
.executive-snapshot-item{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:0 15px;border-right:1px solid #edf1f5}
.executive-snapshot-item:last-child{border-right:0}
.executive-snapshot-label{color:#8b96a6;font-size:9.5px;white-space:nowrap}
.executive-snapshot-value{margin-top:7px;color:#22334b;font-size:18px;font-weight:700;letter-spacing:-.35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.executive-snapshot-value.money{font-size:15px}
.executive-snapshot-value.positive{color:#11785a}
.executive-snapshot-value.negative{color:#c53f3f}
.executive-snapshot-note{margin-top:4px;color:#adb5c0;font-size:8.5px}
.my-todo-pill{
  display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 10px;border:1px solid #f0c9c4;
  border-radius:999px;background:#fff5f3;color:#a83d35;font-family:inherit;font-size:11px;font-weight:650;cursor:pointer;
  box-shadow:0 3px 10px rgba(179,61,48,.08);transition:.16s;
}
.my-todo-pill:hover{border-color:#e49e94;background:#ffebe8;transform:translateY(-1px)}
.my-todo-pill b{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#cf493e;color:#fff;font-size:10px}
.my-todo-dot{width:6px;height:6px;border-radius:50%;background:#de5145;box-shadow:0 0 0 4px rgba(222,81,69,.12)}

/* Permission-aware staff home */
.staff-home{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:auto}
.staff-welcome{
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border:1px solid #dfe7f0;
  border-radius:16px;background:linear-gradient(135deg,#fff,#f5f9fd);box-shadow:0 8px 24px rgba(24,47,79,.06);
}
.staff-welcome-kicker{color:#7c899c;font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}
.staff-welcome h2{margin-top:5px;color:#1e2e45;font-size:22px;font-weight:700}
.staff-welcome p{margin-top:5px;color:#8591a2;font-size:11px}
.staff-position-badge{padding:7px 11px;border:1px solid #d6e2f1;border-radius:999px;background:#edf4fc;color:#386997;font-size:10.5px;font-weight:650}
.staff-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.35fr);gap:14px;flex:1;min-height:0}
.staff-todo-card{
  position:relative;overflow:hidden;min-height:260px;padding:24px;border:0;border-radius:17px;
  background:linear-gradient(145deg,#a73530,#ce5547 62%,#e0785f);color:#fff;
  box-shadow:0 18px 38px rgba(153,53,45,.2);
}
.staff-todo-card:after{content:"";position:absolute;right:-70px;bottom:-90px;width:230px;height:230px;border:42px solid rgba(255,255,255,.07);border-radius:50%}
.staff-todo-card.clear{background:linear-gradient(145deg,#18314f,#245377 62%,#357e94);box-shadow:0 18px 38px rgba(24,65,91,.18)}
.staff-todo-label{position:relative;z-index:1;color:#ffd9d4;font-size:11px;font-weight:700;letter-spacing:1px}
.staff-todo-number{position:relative;z-index:1;margin-top:10px;font-size:68px;font-weight:760;line-height:1;letter-spacing:-3px}
.staff-todo-copy{position:relative;z-index:1;margin-top:8px;color:#ffe3df;font-size:11px}
.staff-todo-breakdown{position:relative;z-index:1;display:grid;gap:7px;margin-top:22px}
.staff-todo-line{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(90,21,18,.13);font-size:10.5px;cursor:pointer}
.staff-todo-line:hover{background:rgba(255,255,255,.1)}
.staff-todo-line b{font-size:13px}
.staff-work-panel{display:flex;flex-direction:column;min-height:0;border:1px solid #e1e7ef;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,47,79,.055)}
.staff-work-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #edf1f5}
.staff-work-head h2{color:#27374e;font-size:13px}.staff-work-head span{color:#929dac;font-size:9.5px}
.staff-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;overflow:auto}
.staff-quick{
  display:flex;flex-direction:column;align-items:flex-start;min-height:105px;padding:15px;border:1px solid #e5ebf2;
  border-radius:12px;background:#fbfcfe;color:#334158;text-align:left;cursor:pointer;transition:.16s;
}
.staff-quick:hover{border-color:#a9c2e0;background:#f5f9fe;transform:translateY(-2px);box-shadow:0 9px 19px rgba(28,56,91,.08)}
.staff-quick-icon{display:flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:9px;background:#eaf2fc;color:#2468b9;font-size:13px;font-weight:750}
.staff-quick strong{margin-top:12px;color:#2d3b50;font-size:11.5px}.staff-quick small{margin-top:4px;color:#98a2b1;font-size:9.5px;line-height:1.45}
.staff-no-access{grid-column:1/-1;padding:55px 20px;text-align:center;color:#8b96a6;font-size:12px}

/* Executive dashboard v4: compact light business console */
.dashboard-v3{gap:15px}
.executive-hero{
  flex:0 0 274px;min-height:274px;border:1px solid #dde6f0;border-radius:16px;
  background:#fff;color:#1b2a40;box-shadow:0 9px 28px rgba(22,45,76,.075);
}
.executive-hero:before{
  inset:0;opacity:1;background:linear-gradient(115deg,rgba(32,108,205,.055),transparent 42%,rgba(34,164,161,.035));
  background-size:auto;mask-image:none;
}
.executive-hero:after{
  right:-78px;top:-168px;width:330px;height:330px;border:56px solid rgba(39,112,205,.035);
  box-shadow:none;background:transparent;
}
.executive-hero-content{padding:20px 22px 22px}
.executive-head{align-items:center}
.executive-eyebrow{color:#55718f;font-size:9.5px;letter-spacing:1.35px}
.executive-eyebrow:before{width:17px;background:#2675d8}
.executive-title{margin-top:5px;color:#1c2c43;font-size:18px;font-weight:720}
.executive-period{border-color:#dce5ef;background:#f6f9fc;box-shadow:inset 0 1px #fff;backdrop-filter:none}
.executive-period label{color:#718096}
.executive-period .btn{color:#607087}
.executive-period .btn:hover{border-color:#d5e0ec;background:#fff;color:#1d63b5}
.executive-period #dashboardMonth{border:1px solid #d6e1ed!important;background:#fff!important;color:#27415f;box-shadow:0 1px 2px rgba(25,45,70,.03)!important}
.executive-main{
  grid-template-columns:minmax(230px,.8fr) 1px minmax(360px,1.25fr) 1px minmax(240px,.78fr);
  gap:24px;margin-top:15px;padding:19px 21px;border:1px solid #e6edf4;border-radius:13px;
  background:rgba(248,250,253,.88);
}
.executive-divider{max-height:116px;background:linear-gradient(transparent,#d9e3ed,transparent)}
.executive-label{color:#728096;font-size:10.5px}
.executive-total{margin-top:5px;color:#173d70;font-size:42px;letter-spacing:-1.4px}
.executive-total-caption{margin-top:8px;color:#97a2b1}.executive-total-caption b{color:#50647c}
.executive-category-head{margin-bottom:14px}.executive-category-head span:last-child{color:#9aa5b3}
.executive-category-item:before{background:#347fd8}.executive-category-item.dairy:before{background:#28aaa5}
.executive-category-name{color:#738197}.executive-category-value{color:#21344e;font-size:23px}.executive-category-share{color:#9aa5b4}
.executive-split{height:7px;margin-top:16px;background:#e8eef5}.executive-split-oil{background:linear-gradient(90deg,#2d73c8,#62a1e8)}.executive-split-dairy{background:linear-gradient(90deg,#209a97,#54c4be)}
.executive-amount{margin-top:5px;color:#183b68;font-size:27px}.executive-amount-sub{margin-top:7px;color:#98a3b1}.executive-amount-sub b{color:#52677f}
.executive-bottom{grid-template-columns:1.3fr .7fr;flex:1 1 auto;min-height:245px}
.executive-panel{border-color:#dfe7f0;border-radius:15px;box-shadow:0 8px 25px rgba(22,45,76,.065)}
.executive-panel-head{min-height:49px;padding:13px 16px;background:#fcfdff}
.executive-panel-head h2{font-size:12.5px}.executive-panel-head h2:before{height:15px;background:#2675d8}
.executive-task-list{align-content:start;min-height:calc(100% - 49px);padding:14px}
.executive-task{min-height:91px;background:#fff;border-color:#e3eaf2;padding:13px}
.executive-task:hover{background:#f8fbff;border-color:#a9c5e5}
.executive-task-mark{background:#eaf2fb;color:#2767ae}
.executive-task.good .executive-task-mark{background:#e8f6ee;color:#177b55}
.executive-task-copy strong{font-size:11px}.executive-task-copy strong b{font-size:15px}
.executive-snapshot{height:calc(100% - 49px);grid-template-columns:repeat(2,1fr);padding:8px}
.executive-snapshot-item{padding:14px 16px;border-right:1px solid #edf1f5;border-bottom:1px solid #edf1f5}
.executive-snapshot-item:nth-child(2n){border-right:0}.executive-snapshot-item:nth-last-child(-n+2){border-bottom:0}
.executive-snapshot-label{font-size:10px}.executive-snapshot-value{font-size:20px}.executive-snapshot-value.money{font-size:16px}

/* Executive command center v5 */
.command-dashboard{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:auto;scrollbar-gutter:stable}.command-hero{flex:0 0 116px;padding:17px 22px;border:1px solid #dce6f0;border-radius:15px;background:linear-gradient(110deg,#fff 0,#f4f8fd 66%,#ecf5ff);box-shadow:0 7px 22px rgba(22,48,79,.04)}.command-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.command-kicker{color:#6e88a7;font-size:9px;font-weight:750;letter-spacing:1.3px;text-transform:uppercase}.command-greeting{margin-top:4px;color:#17263d;font-size:20px;font-weight:720;letter-spacing:-.2px}.command-summary{display:flex;margin-top:14px}.command-summary-item{min-width:174px;padding:0 25px;border-right:1px solid #dfe7ef}.command-summary-item:first-child{padding-left:0}.command-summary-item:last-child{border:0}.command-summary-label{display:block;color:#8492a4;font-size:9px}.command-summary-value{display:block;margin-top:3px;color:#1c2d45;font-size:17px;font-weight:720;font-variant-numeric:tabular-nums}.command-summary-value.positive{color:#11805c}
.command-workspace{display:grid;grid-template-columns:minmax(330px,390px) minmax(720px,1fr);gap:14px;flex:1;min-height:620px}.command-card{overflow:hidden;border:1px solid #dfe7ef;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(21,45,75,.055)}.command-todo{display:flex;flex-direction:column;min-height:0}.command-todo-hero{flex:0 0 158px;padding:20px 22px;color:#fff;background:linear-gradient(135deg,#9f3432,#d75a4d)}.command-todo-top{display:flex;align-items:flex-start;justify-content:space-between}.command-todo-label{font-size:10px}.command-todo-number{display:block;margin-top:2px;font-size:54px;font-weight:760;line-height:1.1;letter-spacing:-2px}.command-todo-note{display:block;margin-top:4px;color:#ffdcd8;font-size:9px}.command-todo-all{padding:7px 10px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-family:inherit;font-size:9px;cursor:pointer}.command-todo-all:hover{background:rgba(255,255,255,.2)}.command-todo-list{padding:10px 13px}.command-todo-item{width:100%;display:flex;align-items:center;gap:11px;padding:13px 7px;border:0;border-bottom:1px solid #edf1f5;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.command-todo-item:hover{background:#f8fafc}.command-todo-item:last-child{border-bottom:0}.command-todo-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:#edf4fc;color:#2569b7;font-size:13px;font-weight:750}.command-todo-item.alert .command-todo-icon{background:#fff0ee;color:#c3463e}.command-todo-copy{flex:1;min-width:0}.command-todo-copy strong{display:block;color:#293950;font-size:11px}.command-todo-copy small{display:block;margin-top:3px;color:#929eae;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-todo-count{color:#24354c;font-size:16px;font-weight:750}.command-todo-count.hot{color:#cc443b}.command-publish{margin:4px 13px 13px;padding:12px 14px;border:0;border-radius:10px;background:#f0f6fd;color:#245f9f;font-family:inherit;font-size:10px;font-weight:700;text-align:left;cursor:pointer}.command-publish:hover{background:#e6f0fc}.command-publish span{float:right}
.command-right{display:grid;grid-template-rows:minmax(430px,1fr) 214px;gap:14px;min-width:0;min-height:0}.command-business{padding:17px}.command-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.command-section-head h2{color:#26364d;font-size:13px}.command-section-head span{color:#8996a7;font-size:9px}.command-categories{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.command-category{position:relative;min-width:0;height:367px;padding:16px;border:1px solid #e1e8f0;border-radius:12px;background:#fbfcfe;overflow:hidden}.command-category:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#347bd0}.command-category.dairy:before{background:#2ba19c}.command-category-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.command-category-title{display:flex;align-items:center;gap:9px;min-width:0}.command-category-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#e9f2fc;color:#2468b8;font-weight:800}.command-category.dairy .command-category-icon{background:#e7f7f5;color:#238e89}.command-category-name strong{display:block;color:#25364e;font-size:13px}.command-category-name small{display:block;margin-top:2px;color:#929dac;font-size:8px}.command-trend{padding:4px 7px;border-radius:99px;background:#eaf7ef;color:#16805a;font-size:8px;font-weight:700;white-space:nowrap}.command-trend.down{background:#fff0ee;color:#c3473e}.command-category-core{display:grid;grid-template-columns:minmax(0,1fr) 105px;align-items:center;margin-top:13px;padding:13px 14px;border-radius:10px;background:#f1f5f9}.command-category-core span{color:#8190a3;font-size:8px}.command-category-core b{display:block;margin-top:4px;color:#1a2b43;font-size:29px;line-height:1.15;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.command-ring{position:relative;width:80px;height:80px;margin:auto;border-radius:50%;background:conic-gradient(#347bd0 var(--share),#dfe7f0 0)}.command-category.dairy .command-ring{background:conic-gradient(#2ba19c var(--share),#dfe7f0 0)}.command-ring:after{content:"";position:absolute;inset:11px;border-radius:50%;background:#f1f5f9}.command-ring em{position:absolute;z-index:1;inset:0;display:grid;place-items:center;color:#26364d;font-style:normal;font-size:13px;font-weight:750}.command-category-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.command-stat{min-width:0;padding:10px;border:1px solid #e4eaf1;border-radius:9px;background:#fff}.command-stat span{color:#8794a5;font-size:8px}.command-stat b{display:block;margin-top:4px;color:#25364d;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.command-stat b.positive{color:#11805c}.command-category-compare{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #e6ebf1;color:#8c98a7;font-size:8px;white-space:nowrap}.command-category-compare b{color:#34465d}.command-category-compare .down{color:#c4443b}.command-category-compare .up{color:#16805a}
.command-lower{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.command-process,.command-risk{padding:16px}.command-process h2,.command-risk h2{color:#26364d;font-size:12px}.command-steps{display:flex;align-items:center;margin-top:22px}.command-step{position:relative;flex:1;text-align:center}.command-step:before{content:"";position:absolute;left:-50%;right:50%;top:15px;height:2px;background:#dce6ef}.command-step:first-child:before{display:none}.command-step i{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;margin:auto;border-radius:50%;background:#eaf3fd;color:#2469b9;font-style:normal;font-size:11px;font-weight:750}.command-step strong{display:block;margin-top:7px;color:#304158;font-size:9px}.command-step small{display:block;color:#909cab;font-size:8px}.command-risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.command-risk-item{padding:11px;border-radius:9px;background:#f5f8fb}.command-risk-item span{color:#8794a5;font-size:8px}.command-risk-item b{display:block;margin-top:5px;color:#26374f;font-size:13px}.command-risk-item b.danger{color:#c4443b}
@media(max-width:1280px){.command-workspace{grid-template-columns:340px minmax(650px,1fr)}.command-summary-item{min-width:150px;padding:0 18px}.command-category{padding:13px}.command-category-core{grid-template-columns:minmax(0,1fr) 90px}.command-category-core b{font-size:25px}.command-ring{width:72px;height:72px}}@media(max-width:1050px){.command-workspace{grid-template-columns:1fr}.command-todo{min-height:520px}.command-right{min-height:660px}.command-summary{overflow-x:auto}.command-summary-item{min-width:170px}.command-categories{grid-template-columns:1fr}.command-category{height:auto}.command-right{display:flex;flex-direction:column}.command-lower{grid-template-columns:1fr}}

/* Keep the executive command center within one desktop screen */
.command-dashboard{overflow:hidden}.command-workspace{min-height:0;overflow:hidden}.command-right{grid-template-rows:minmax(0,1fr) 170px}.command-business{display:flex;min-height:0;flex-direction:column}.command-categories{flex:1;min-height:0}.command-category{height:auto;min-height:0}.command-lower{min-height:0}.command-process,.command-risk{min-height:0}.command-steps{margin-top:17px}.command-risk-grid{margin-top:10px}.command-risk-item{padding:9px 10px}
@media(max-height:820px) and (min-width:1051px){.command-dashboard{gap:10px}.command-hero{flex-basis:104px;padding:13px 19px}.command-greeting{font-size:18px}.command-summary{margin-top:10px}.command-workspace{gap:10px}.command-right{grid-template-rows:minmax(0,1fr) 148px;gap:10px}.command-todo-hero{flex-basis:132px;padding:16px 19px}.command-todo-number{font-size:46px}.command-todo-list{padding-top:5px;padding-bottom:5px}.command-todo-item{padding-top:9px;padding-bottom:9px}.command-business{padding:13px}.command-categories{margin-top:8px;gap:9px}.command-category{padding:12px}.command-category-core{margin-top:8px;padding:9px 11px}.command-category-core b{font-size:24px}.command-ring{width:66px;height:66px}.command-category-grid{gap:6px;margin-top:6px}.command-stat{padding:7px 8px}.command-category-compare{margin-top:6px;padding-top:6px}.command-process,.command-risk{padding:12px}.command-steps{margin-top:12px}.command-risk-grid{gap:6px;margin-top:7px}.command-risk-item{padding:7px 8px}}

/* Business entry workbench */
.entry-workbench{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;overflow:auto}.entry-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border:1px solid #dce6f0;border-radius:15px;background:linear-gradient(112deg,#fff 0,#f5f9fd 65%,#edf6ff);box-shadow:0 7px 22px rgba(22,48,79,.045)}.entry-hero-kicker{color:#6884a4;font-size:9px;font-weight:750;letter-spacing:1.3px;text-transform:uppercase}.entry-hero h2{margin-top:5px;color:#17273e;font-size:21px;font-weight:720}.entry-hero p{margin-top:5px;color:#8794a5;font-size:10.5px}.entry-today{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));min-width:500px;border:1px solid #e0e8f1;border-radius:12px;background:rgba(255,255,255,.82)}.entry-today-item{padding:13px 16px;border-right:1px solid #e7edf3}.entry-today-item:last-child{border-right:0}.entry-today-item span{display:block;color:#8a96a6;font-size:8.5px}.entry-today-item b{display:block;margin-top:5px;color:#263850;font-size:18px;font-variant-numeric:tabular-nums}.entry-flow-head{display:flex;align-items:flex-end;justify-content:space-between;padding:2px 2px 0}.entry-flow-head h2{color:#24354d;font-size:14px}.entry-flow-head span{color:#8b97a8;font-size:9.5px}.entry-flow-grid{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:14px;flex:1;min-height:390px}.entry-stage{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid #dfe7f0;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(21,45,75,.055)}.entry-stage-head{display:flex;align-items:center;gap:11px;padding-bottom:15px;border-bottom:1px solid #edf1f5}.entry-stage-no{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#eaf2fc;color:#2468b9;font-size:12px;font-weight:800}.entry-stage:nth-child(2) .entry-stage-no{background:#fff3dd;color:#a96608}.entry-stage:nth-child(3) .entry-stage-no{background:#eaf7f3;color:#16805c}.entry-stage-copy strong{display:block;color:#28394f;font-size:12.5px}.entry-stage-copy small{display:block;margin-top:3px;color:#929dac;font-size:9px}.entry-actions{display:grid;gap:10px;margin-top:14px}.entry-action{position:relative;display:flex;align-items:center;gap:13px;width:100%;min-height:102px;padding:15px;border:1px solid #e2e9f1;border-radius:12px;background:#fbfcfe;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:.16s}.entry-action:hover{border-color:#acc6e5;background:#f6faff;transform:translateY(-2px);box-shadow:0 9px 20px rgba(30,62,101,.08)}.entry-action-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#e9f2fc;color:#2468b8;font-size:15px;font-weight:800}.entry-action.sale .entry-action-icon{background:#e8f7f0;color:#16805a}.entry-action.pick .entry-action-icon{background:#fff1db;color:#aa6808}.entry-action.pay .entry-action-icon{background:#fff0ee;color:#be443a}.entry-action.recv .entry-action-icon{background:#e8f7f8;color:#177d88}.entry-action-copy{flex:1;min-width:0}.entry-action-copy strong{display:block;color:#26374e;font-size:12px}.entry-action-copy span{display:block;margin-top:5px;color:#8e99a8;font-size:9.5px;line-height:1.45}.entry-action-arrow{color:#9ba8b7;font-size:18px}.entry-action-main{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:220px;text-align:center}.entry-action-main .entry-action-icon{width:54px;height:54px;margin:0 auto 13px;font-size:18px}.entry-action-main .entry-action-copy strong{font-size:14px}.entry-action-main .entry-action-copy span{max-width:220px;margin:6px auto 0}.entry-stage-foot{margin-top:auto;padding-top:14px;color:#98a3b1;font-size:8.5px;line-height:1.55}.entry-guide{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid #dfe8f2;border-radius:12px;background:#f8fbfe;color:#65758a;font-size:9.5px}.entry-guide b{color:#2b405c;font-size:10px}.entry-guide-step{display:flex;align-items:center;gap:7px}.entry-guide-step i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e6f0fb;color:#2469b8;font-style:normal;font-size:9px;font-weight:750}.entry-guide-arrow{color:#a8b3c1}.entry-guide-note{margin-left:auto;color:#8a96a6}.entry-action-badge{position:absolute;right:12px;top:10px;padding:3px 6px;border-radius:99px;background:#edf4fc;color:#3970aa;font-size:7.5px;font-weight:700}
@media(max-width:1180px){.entry-hero{align-items:flex-start;flex-direction:column}.entry-today{width:100%;min-width:0}.entry-flow-grid{grid-template-columns:1fr 1fr}.entry-stage:first-child{grid-column:1/-1}.entry-stage:first-child .entry-actions{grid-template-columns:1fr 1fr}}@media(max-width:760px){.entry-today{grid-template-columns:1fr 1fr}.entry-today-item:nth-child(2){border-right:0}.entry-today-item:nth-child(-n+2){border-bottom:1px solid #e7edf3}.entry-flow-grid{grid-template-columns:1fr}.entry-stage:first-child{grid-column:auto}.entry-stage:first-child .entry-actions{grid-template-columns:1fr}.entry-guide{flex-wrap:wrap}.entry-guide-note{width:100%;margin-left:0}}

/* Business entry workbench v2 */
.entry-v2{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:13px;overflow:hidden}.entry-v2-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;flex:0 0 108px;padding:18px 22px;border:1px solid #dce6f0;border-radius:15px;background:linear-gradient(115deg,#fff 0,#f5f9fd 62%,#edf6ff);box-shadow:0 7px 22px rgba(22,48,79,.045)}.entry-v2-eyebrow{color:#6884a4;font-size:9px;font-weight:750;letter-spacing:1.35px;text-transform:uppercase}.entry-v2-hero h2{margin-top:4px;color:#17273e;font-size:20px;font-weight:730}.entry-v2-hero p{margin-top:4px;color:#8794a5;font-size:10px}.entry-v2-stats{display:flex;align-self:stretch;border:1px solid #e0e8f1;border-radius:11px;background:rgba(255,255,255,.83)}.entry-v2-stat{display:flex;flex-direction:column;justify-content:center;min-width:118px;padding:0 17px;border-right:1px solid #e6edf4}.entry-v2-stat:last-child{border-right:0}.entry-v2-stat span{color:#8b97a7;font-size:8px}.entry-v2-stat b{margin-top:4px;color:#273950;font-size:17px}.entry-v2-board{flex:1 1 auto;min-height:0;padding:18px 20px;border:1px solid #dfe7f0;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(21,45,75,.055)}.entry-v2-board-head{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid #edf1f5}.entry-v2-board-head h3{color:#26374e;font-size:13px}.entry-v2-board-head p{margin-top:3px;color:#929dac;font-size:9px}.entry-v2-board-head>span{padding:5px 8px;border-radius:99px;background:#f0f5fb;color:#60758f;font-size:8px}.entry-v2-chain{display:grid;grid-template-columns:minmax(220px,1fr) 48px minmax(240px,1.05fr) 48px minmax(220px,1fr);align-items:stretch;height:calc(100% - 57px);min-height:365px;padding:17px 3px 3px}.entry-v2-column{display:flex;flex-direction:column;gap:10px}.entry-v2-column-title{display:flex;align-items:center;gap:8px;color:#6c7b90;font-size:9px;font-weight:700}.entry-v2-column-title i{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#e9f2fc;color:#2468b8;font-style:normal;font-size:8px}.entry-v2-column.money .entry-v2-column-title i{background:#e8f7f1;color:#16805c}.entry-v2-action{position:relative;display:flex;align-items:center;gap:13px;flex:1;min-height:115px;padding:17px;border:1px solid #e1e8f0;border-radius:12px;background:#fbfcfe;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:.18s}.entry-v2-action:hover{border-color:#a7c4e7;background:#f6faff;transform:translateY(-2px);box-shadow:0 10px 22px rgba(28,60,99,.08)}.entry-v2-action-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:13px;background:#e8f1fc;color:#2468b8;font-size:15px;font-weight:800}.entry-v2-action.sale .entry-v2-action-icon{background:#e7f6ef;color:#16805c}.entry-v2-action.pay .entry-v2-action-icon{background:#fff0ee;color:#bc443b}.entry-v2-action.recv .entry-v2-action-icon{background:#e8f7f8;color:#177d88}.entry-v2-action-copy{flex:1;min-width:0}.entry-v2-action-copy strong{display:block;color:#28394f;font-size:12px}.entry-v2-action-copy small{display:block;margin-top:5px;color:#909cab;font-size:9px;line-height:1.45}.entry-v2-action-meta{position:absolute;right:12px;top:11px;padding:3px 7px;border-radius:99px;background:#eef4fb;color:#4f7199;font-size:8px}.entry-v2-action-arrow{color:#9aa7b7;font-size:17px}.entry-v2-connector{display:flex;align-items:center;justify-content:center}.entry-v2-connector span{position:relative;display:block;width:32px;height:1px;background:#bfcddd}.entry-v2-connector span:after{content:"›";position:absolute;right:-3px;top:-12px;color:#7893b1;font-size:17px}.entry-v2-core{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:24px 20px;border:1px solid #cfe0f3;border-radius:15px;background:linear-gradient(145deg,#f4f9ff,#edf5fd);text-align:center;cursor:pointer;transition:.18s}.entry-v2-core:hover{border-color:#8fb8e7;transform:translateY(-2px);box-shadow:0 12px 25px rgba(30,79,137,.11)}.entry-v2-core:before{content:"核心业务";position:absolute;left:14px;top:13px;padding:4px 7px;border-radius:99px;background:#dcecff;color:#2d6fb8;font-size:8px;font-weight:700}.entry-v2-core-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:linear-gradient(145deg,#317bd0,#1d63b8);color:#fff;font-size:20px;font-weight:800;box-shadow:0 10px 22px rgba(34,105,184,.22)}.entry-v2-core strong{margin-top:16px;color:#20344e;font-size:15px}.entry-v2-core p{max-width:230px;margin-top:7px;color:#7e8c9e;font-size:9.5px;line-height:1.65}.entry-v2-core b{margin-top:18px;color:#2a6db8;font-size:10px}.entry-v2-tip{display:flex;align-items:center;gap:9px;flex:0 0 42px;padding:0 14px;border:1px solid #dfe8f2;border-radius:11px;background:#f8fbfe;color:#748297;font-size:9px}.entry-v2-tip i{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e7f0fb;color:#286cb9;font-style:normal;font-size:9px;font-weight:800}.entry-v2-tip b{color:#31445e}.entry-v2-tip span:last-child{margin-left:auto;color:#94a0ae}
@media(max-width:1100px){.entry-v2{overflow:auto}.entry-v2-hero{align-items:flex-start;flex-direction:column;flex-basis:auto}.entry-v2-stats{width:100%;min-height:70px}.entry-v2-chain{grid-template-columns:1fr;gap:10px;height:auto}.entry-v2-connector{height:20px;transform:rotate(90deg)}.entry-v2-core{min-height:230px}.entry-v2-tip{min-height:42px}}

/* Calm the sidebar: hierarchy stays visible without a wall of boxes */
.nav-parent{border-color:transparent;background:transparent}.nav-parent:hover{border-color:rgba(151,181,221,.14);background:rgba(255,255,255,.045)}.nav-parent.expanded,.nav-parent.current{border-color:rgba(79,144,232,.22);background:linear-gradient(90deg,rgba(43,105,187,.16),rgba(43,105,187,.06))}.nav-children .nav-item:not(.active) .ic{background:transparent}.nav-children .nav-item:not(.active){color:#aebdd1}

/* Executive hub v6: vivid, action-first and overflow-safe */
.hub-dashboard{height:100%;min-height:0;display:grid;grid-template-rows:118px 112px minmax(0,1fr) 82px;gap:10px;overflow:hidden}.hub-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:18px 22px;border-radius:16px;background:radial-gradient(circle at 88% 0,rgba(59,190,197,.25),transparent 22rem),linear-gradient(125deg,#12243d,#174264 66%,#15556a);color:#fff;box-shadow:0 14px 30px rgba(15,42,69,.19)}.hub-hero:after{content:"";position:absolute;right:-75px;top:-130px;width:280px;height:280px;border:42px solid rgba(255,255,255,.035);border-radius:50%}.hub-hero-copy{position:relative;z-index:1;min-width:260px}.hub-eyebrow{color:#8ebbd9;font-size:8.5px;font-weight:750;letter-spacing:1.5px;text-transform:uppercase}.hub-hero h2{margin-top:5px;color:#fff;font-size:19px;font-weight:700}.hub-hero p{margin-top:5px;color:#9eb8ce;font-size:9.5px}.hub-hero-right{position:relative;z-index:1;display:flex;align-items:center;gap:15px}.hub-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));min-width:590px}.hub-metric{padding:4px 18px;border-right:1px solid rgba(255,255,255,.13)}.hub-metric:last-child{border-right:0}.hub-metric span{display:block;color:#91abc1;font-size:8px}.hub-metric b{display:block;margin-top:5px;color:#fff;font-size:17px;font-variant-numeric:tabular-nums}.hub-metric b.green{color:#69ddba}.hub-period{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.07)}.hub-period .btn{min-height:27px;padding:3px 7px;border-color:transparent;background:transparent;color:#c8d8e7}.hub-period input{width:126px!important;min-width:126px!important;height:29px!important;border:0!important;background:#fff!important;color:#24415e!important;font-size:10px!important}.hub-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.hub-alert{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid transparent;border-radius:14px;cursor:pointer;transition:.17s}.hub-alert:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(25,48,78,.1)}.hub-alert.todo{border-color:#f0c9c3;background:linear-gradient(135deg,#fff5f3,#fff)}.hub-alert.contract{border-color:#eedbb0;background:linear-gradient(135deg,#fff9eb,#fff)}.hub-alert.point{border-color:#d9cff1;background:linear-gradient(135deg,#f8f4ff,#fff)}.hub-alert.published{border-color:#bfdced;background:linear-gradient(135deg,#eef8ff,#fff)}.hub-alert-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:13px;font-size:15px;font-weight:800}.hub-alert.todo .hub-alert-icon{background:#fde4e0;color:#bd4037}.hub-alert.contract .hub-alert-icon{background:#ffedc5;color:#a76509}.hub-alert.point .hub-alert-icon{background:#eee6ff;color:#7047b5}.hub-alert.published .hub-alert-icon{background:#dcefff;color:#17669b}.hub-alert-copy{flex:1;min-width:0}.hub-alert-copy span{color:#738197;font-size:8.5px;font-weight:700}.hub-alert-copy b{display:block;margin-top:3px;color:#24354c;font-size:24px;line-height:1}.hub-alert-copy small{display:block;margin-top:6px;color:#8d98a7;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-alert-arrow{color:#9aa7b6;font-size:18px}.hub-alert-badge{position:absolute;right:12px;top:10px;padding:3px 6px;border-radius:99px;background:#fff;color:#b33f37;font-size:7.5px;font-weight:750;box-shadow:0 2px 8px rgba(50,50,50,.06)}.hub-alert.contract .hub-alert-badge{color:#996006}.hub-alert.point .hub-alert-badge{color:#6743a2}.hub-alert.published .hub-alert-badge{color:#17669b}
.hub-category-section{min-height:0;display:flex;flex-direction:column;padding:13px 15px 14px;border:1px solid #dfe7f0;border-radius:15px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 24px rgba(21,45,75,.05)}.hub-section-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 25px}.hub-section-head h3{color:#26374e;font-size:12.5px}.hub-section-head span{color:#8a96a6;font-size:8.5px}.hub-category-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;flex:1;min-height:0;margin-top:8px}.hub-category{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:0;padding:12px 13px;border:1px solid #dce7f3;border-radius:13px;background:linear-gradient(135deg,#f8fbff,#fff)}.hub-category.dairy{border-color:#d8ece9;background:linear-gradient(135deg,#f5fcfb,#fff)}.hub-category:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#2e78cf,#6ca7eb)}.hub-category.dairy:before{background:linear-gradient(#239995,#69c9c1)}.hub-category-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.hub-category-title{display:flex;align-items:center;gap:9px}.hub-category-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e5effb;color:#276bb8;font-size:13px;font-weight:800}.hub-category.dairy .hub-category-icon{background:#e2f5f2;color:#238c87}.hub-category-title strong{display:block;color:#25364d;font-size:12px}.hub-category-title small{display:block;margin-top:2px;color:#8d99a9;font-size:7.5px}.hub-trend{padding:4px 7px;border-radius:99px;background:#e7f6ed;color:#157d58;font-size:7.5px;font-weight:750}.hub-trend.down{background:#fff0ee;color:#c2473e}.hub-category-body{display:grid;grid-template-columns:minmax(145px,.72fr) minmax(260px,1.28fr);gap:10px;flex:1;min-height:0;margin-top:8px}.hub-category-primary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:10px;background:#edf4fc}.hub-category.dairy .hub-category-primary{background:#edf8f7}.hub-category-primary span{color:#7b8ba0;font-size:7.5px}.hub-category-primary b{display:block;margin-top:3px;color:#1e324e;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}.hub-category-primary small{display:block;margin-top:5px;color:#91a0b1;font-size:7.5px}.hub-mini-ring{position:relative;flex:0 0 58px;width:58px;height:58px;border-radius:50%;background:conic-gradient(#347bd1 var(--share),#dce6f0 0)}.hub-category.dairy .hub-mini-ring{background:conic-gradient(#2ba19c var(--share),#dce8e7 0)}.hub-mini-ring:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#edf4fc}.hub-category.dairy .hub-mini-ring:after{background:#edf8f7}.hub-mini-ring em{position:absolute;z-index:1;inset:0;display:grid;place-items:center;color:#304159;font-style:normal;font-size:9.5px;font-weight:750}.hub-category-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px}.hub-category-stat{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:7px 9px;border:1px solid #e4ebf2;border-radius:9px;background:rgba(255,255,255,.86)}.hub-category-stat span{color:#8592a3;font-size:7.5px}.hub-category-stat b{margin-top:3px;color:#283950;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-category-stat b.profit{color:#11805c}.hub-category-foot{display:flex;align-items:center;justify-content:space-between;gap:7px;flex:0 0 18px;margin-top:7px;padding-top:6px;border-top:1px solid #e8edf3;color:#8b97a7;font-size:7.5px}.hub-category-foot b{color:#41546d}.hub-category-foot .down{color:#c4443b}.hub-category-foot .up{color:#16805a}.hub-pipeline{display:flex;align-items:center;padding:9px 14px;border:1px solid #dfe7ef;border-radius:13px;background:linear-gradient(90deg,#f8fbfe,#fff);box-shadow:0 5px 16px rgba(21,45,75,.04)}.hub-pipeline h3{flex:0 0 105px;color:#304158;font-size:10px}.hub-steps{display:flex;align-items:center;flex:1}.hub-step{position:relative;flex:1;text-align:center}.hub-step:before{content:"";position:absolute;left:-50%;right:50%;top:13px;height:1px;background:#cfdae6}.hub-step:first-child:before{display:none}.hub-step i{position:relative;z-index:1;display:grid;place-items:center;width:26px;height:26px;margin:auto;border-radius:50%;background:#e6f0fb;color:#2469b8;font-style:normal;font-size:9px;font-weight:750}.hub-step strong{display:block;margin-top:3px;color:#40516a;font-size:7.5px}.hub-step small{color:#929eae;font-size:7px}.hub-pipeline-note{flex:0 0 150px;text-align:right;color:#8b97a7;font-size:8px}.hub-pipeline-note b{display:block;color:#c2463d;font-size:11px}
@media(max-height:820px) and (min-width:1051px){.hub-dashboard{grid-template-rows:98px 94px minmax(0,1fr) 68px;gap:8px}.hub-hero{padding:12px 18px}.hub-hero h2{font-size:17px}.hub-metric{padding:2px 14px}.hub-metric b{font-size:15px}.hub-alert{padding:10px 13px}.hub-alert-icon{width:38px;height:38px;flex-basis:38px}.hub-alert-copy b{font-size:20px}.hub-category-section{padding:10px 12px}.hub-category-grid{margin-top:5px}.hub-category{padding:9px 11px}.hub-category-body{margin-top:5px}.hub-category-primary{padding:7px 9px}.hub-category-primary b{font-size:22px}.hub-mini-ring{width:52px;height:52px;flex-basis:52px}.hub-category-stat{padding:5px 7px}.hub-category-foot{margin-top:4px;padding-top:4px}.hub-pipeline{padding:6px 12px}.hub-step i{width:23px;height:23px}.hub-step:before{top:11px}}

/* High-contrast sidebar */
.sidebar{background:radial-gradient(circle at 15% -5%,rgba(35,125,255,.34),transparent 15rem),linear-gradient(180deg,#102a4d 0%,#0d203b 48%,#09172c 100%);border-right-color:rgba(118,177,255,.16);box-shadow:8px 0 30px rgba(5,18,37,.16)}.brand{border-bottom-color:rgba(151,193,247,.16)}.brand .logo{color:#fff;font-weight:750}.brand .sub{color:#9bb6d6}.nav>.nav-item[data-page="dashboard"]{border-color:rgba(105,166,250,.26);background:rgba(32,91,164,.28);color:#f4f8ff}.nav-parent{color:#dbe8f8}.nav-parent-copy strong{color:#eaf3ff;font-weight:750}.nav-parent-copy small{color:#91acd0}.nav-parent-label>b{border-color:rgba(121,172,239,.36);background:rgba(57,117,197,.22);color:#b7d6ff}.nav-parent:hover{border-color:rgba(111,172,255,.34);background:rgba(42,101,179,.2);color:#fff}.nav-parent.expanded,.nav-parent.current{border-color:rgba(79,154,255,.52);background:linear-gradient(90deg,rgba(28,105,210,.42),rgba(24,77,146,.2));box-shadow:inset 3px 0 #3b91ff}.nav-parent.expanded .nav-parent-copy small,.nav-parent.current .nav-parent-copy small{color:#b4cdeb}.nav-arrow{color:#9dbce1}.nav-children{border-left-color:rgba(79,148,241,.44)}.nav-children .nav-item:not(.active){color:#cad9ec;font-weight:550}.nav-children .nav-item:not(.active) .ic{color:#82b7f4;background:rgba(52,113,194,.17)}.nav-children .nav-item:hover{background:rgba(53,119,207,.26);color:#fff}.nav-children .nav-item.active{background:linear-gradient(100deg,#1976e5,#245fb3);color:#fff;box-shadow:0 7px 17px rgba(0,69,164,.36)}.nav-children .nav-item.active .ic{background:rgba(255,255,255,.17);color:#fff}.nav-group:not(.nav-parent){color:#95afd0;border-top-color:rgba(141,182,235,.15)}.sidebar-foot{color:#8da7c8;border-top-color:rgba(141,182,235,.13)}

/* Business pipeline removed from the executive home */
.hub-dashboard{grid-template-rows:118px 112px minmax(0,1fr)}.hub-pipeline{display:none}@media(max-height:820px) and (min-width:1051px){.hub-dashboard{grid-template-rows:98px 94px minmax(0,1fr)}}

/* High-saturation monthly overview */
.hub-hero{background:radial-gradient(circle at 92% -15%,rgba(45,226,218,.38),transparent 23rem),linear-gradient(122deg,#0b3269 0%,#0759a1 55%,#077e87 100%);box-shadow:0 15px 32px rgba(8,61,119,.25)}.hub-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(#5bb8ff,#38e0ca)}.hub-eyebrow{color:#9fd8ff}.hub-hero h2{font-size:21px;font-weight:760;letter-spacing:.2px}.hub-hero p{color:#c0d9ed}.hub-metrics{gap:7px;min-width:560px}.hub-metric{padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(3,36,77,.2);box-shadow:inset 0 1px rgba(255,255,255,.05)}.hub-metric:last-child{border-right:1px solid rgba(255,255,255,.14)}.hub-metric span{color:#b7d2e7;font-weight:600}.hub-metric b{font-size:17px}.hub-metric:nth-child(2) b{color:#ffd166}.hub-metric:nth-child(3) b{color:#65f0bc}.hub-metric:nth-child(4) b{color:#a7e6ff}.hub-period{border-color:rgba(255,255,255,.25);background:rgba(3,37,75,.24)}
.hub-identity{display:flex;align-items:center;gap:14px}.hub-brandmark{position:relative;display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;padding:7px;border:1px solid rgba(255,255,255,.48);border-radius:16px;background:linear-gradient(145deg,#fff,#eaf5ff);box-shadow:0 9px 22px rgba(0,35,75,.3),inset 0 1px #fff}.hub-brandmark:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(112,220,255,.24);border-radius:20px}.hub-brandmark img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;filter:saturate(1.12) contrast(1.04)}.hub-identity-copy{min-width:0}.hub-identity-copy .hub-eyebrow{font-size:9px;font-weight:800;letter-spacing:1.7px}
@media(max-height:820px) and (min-width:1051px){.hub-hero h2{font-size:18px}.hub-metric{padding:6px 10px}.hub-metrics{min-width:520px}.hub-brandmark{flex-basis:52px;width:52px;height:52px;border-radius:13px}.hub-identity{gap:11px}}

/* Readable category comparison */
.hub-category-section{padding:16px 18px 17px}.hub-section-head{flex-basis:30px}.hub-section-head h3{font-size:15px;font-weight:750}.hub-section-head span{font-size:10.5px}.hub-category-grid{gap:14px;margin-top:10px}.hub-category{padding:15px 16px}.hub-category:before{width:5px}.hub-category-icon{width:38px;height:38px;border-radius:11px;font-size:15px}.hub-category-title{gap:11px}.hub-category-title strong{font-size:14px}.hub-category-title small{margin-top:3px;font-size:10px}.hub-trend{padding:5px 9px;font-size:9.5px}.hub-category-body{grid-template-columns:minmax(175px,.78fr) minmax(270px,1.22fr);gap:12px;margin-top:11px}.hub-category-primary{padding:13px 14px}.hub-category-primary span{font-size:10px}.hub-category-primary b{margin-top:5px;font-size:31px}.hub-category-primary small{margin-top:7px;font-size:9.5px}.hub-mini-ring{width:68px;height:68px;flex-basis:68px}.hub-mini-ring:after{inset:10px}.hub-mini-ring em{font-size:11px}.hub-category-stats{gap:9px}.hub-category-stat{padding:10px 11px}.hub-category-stat span{font-size:9.5px}.hub-category-stat b{margin-top:5px;font-size:13px}.hub-category-foot{flex-basis:25px;margin-top:9px;padding-top:8px;font-size:9.5px}
@media(max-height:820px) and (min-width:1051px){.hub-category-section{padding:12px 14px}.hub-section-head h3{font-size:14px}.hub-category-grid{margin-top:7px;gap:10px}.hub-category{padding:11px 13px}.hub-category-icon{width:34px;height:34px}.hub-category-title strong{font-size:13px}.hub-category-title small{font-size:9px}.hub-category-body{margin-top:7px;gap:9px}.hub-category-primary{padding:9px 11px}.hub-category-primary b{font-size:27px}.hub-category-stat{padding:7px 9px}.hub-category-stat span{font-size:9px}.hub-category-stat b{font-size:12px}.hub-category-foot{margin-top:6px;padding-top:5px;font-size:8.5px}}

/* Saturated brand theme across the application */
:root{--primary:#0878e8;--primary-d:#0560c2;--primary-l:#dceeff;--bg:#eaf1f8;--border:#d5e1ee;--green:#07956a;--green-l:#dcf8ed;--red:#d8453c;--red-l:#ffe5e2;--amber:#d98708;--amber-l:#fff0cb}.main{background:radial-gradient(circle at 92% 0,rgba(29,144,255,.09),transparent 27rem),linear-gradient(180deg,#f4f8fc,#eaf1f8)}.topbar{background:linear-gradient(90deg,#fff 0%,#f7fbff 62%,#eef7ff 100%);border-bottom-color:#cfe0f1}.topbar h1{color:#102b50}.topbar .crumb{color:#69809a}.page-tabs{background:linear-gradient(90deg,#edf4fb,#e8f1fa);border-bottom-color:#cfdeed}.page-tab{border-color:#cbdbea;background:#dfeaf6;color:#4b6480}.page-tab:hover{background:#eef6ff;color:#0871d8}.page-tab.active{border-color:#2788ee;background:linear-gradient(#fff,#f4f9ff);color:#076dce;box-shadow:0 -3px 10px rgba(18,112,218,.13)}.btn.primary{border-color:#0878e8;background:linear-gradient(135deg,#1388f5,#066acb);box-shadow:0 5px 12px rgba(8,105,211,.18)}.btn.primary:hover{border-color:#0560c2;background:linear-gradient(135deg,#0877df,#0559b5)}.btn:not(.primary):not(.danger):hover{border-color:#8ab9e8;background:#edf6ff;color:#0869c7}.panel{border-color:#d6e3f0;box-shadow:0 7px 20px rgba(25,65,106,.065)}.panel-h{border-bottom-color:#d9e6f2;background:linear-gradient(90deg,#f8fbff,#edf6ff)}.panel-h h2{color:#153a67}.panel-h h2:before{background:#1688f0}.stat{border-color:#d5e3f1;background:linear-gradient(145deg,#fff,#f4f9ff)}.hint,.ext-hint{border-left-color:#1388ef;background:#eaf5ff;color:#496986}.modal-h{border-bottom-color:#cfe0ef;background:linear-gradient(100deg,#eef7ff,#fff)}.modal-h h3{color:#123b69}.modal-f{border-top-color:#d4e2ee;background:#edf5fc}.field label{color:#516a85;font-weight:650}input:focus,select:focus,textarea:focus{border-color:#1688ee;box-shadow:0 0 0 3px rgba(22,136,238,.15)}body:not(.login-required) .content table.data thead th,.modal table.data thead th,#searchOverlay table.data thead th,#paSearchOverlay table.data thead th,#unpickedSearchOverlay table.data thead th{background:#eaf3fc!important;border-bottom-color:#bfd4e8!important;color:#345777!important}table.data tbody tr:nth-child(even){background:#f7fbff}table.data tbody tr:hover{background:#e3f2ff!important}.tag.blue{background:#dceeff;color:#086bcc}.tag.green{background:#dcf8ed;color:#07805d}.tag.amber{background:#fff0cb;color:#a46300}.tag.red{background:#ffe5e2;color:#c63d35}

/* More color and stronger hierarchy for business entry */
.entry-v2-hero{border-color:#1688e8;background:radial-gradient(circle at 92% 0,rgba(52,230,215,.35),transparent 18rem),linear-gradient(120deg,#0a3d7c,#0872bd 60%,#07999b);color:#fff;box-shadow:0 13px 28px rgba(7,83,153,.22)}.entry-v2-eyebrow{color:#a8dcff}.entry-v2-hero h2{color:#fff;font-weight:760}.entry-v2-hero p{color:#c9e3f4}.entry-v2-stats{border-color:rgba(255,255,255,.2);background:rgba(3,48,96,.24)}.entry-v2-stat{border-right-color:rgba(255,255,255,.18)}.entry-v2-stat span{color:#bad7ea}.entry-v2-stat b{color:#fff}.entry-v2-board{border-color:#c9deef;background:linear-gradient(145deg,#fff,#f2f8fe);box-shadow:0 11px 28px rgba(20,72,124,.09)}.entry-v2-board-head{border-bottom-color:#d5e4f1}.entry-v2-board-head h3{color:#123f70}.entry-v2-board-head>span{background:#dceeff;color:#176cb8}.entry-v2-column-title{color:#315d88}.entry-v2-column-title i{background:#d9ecff;color:#096bc9}.entry-v2-column.money .entry-v2-column-title i{background:#d9f5ea;color:#087a58}.entry-v2-action{border-color:#cfe1f2;background:linear-gradient(145deg,#edf6ff,#fff)}.entry-v2-action.sale{border-color:#ccebdd;background:linear-gradient(145deg,#e8faf1,#fff)}.entry-v2-action.pay{border-color:#f1d2ce;background:linear-gradient(145deg,#fff0ee,#fff)}.entry-v2-action.recv{border-color:#ccebed;background:linear-gradient(145deg,#e7f9fa,#fff)}.entry-v2-action:hover{border-color:#66a9e8;background:#e8f4ff;box-shadow:0 11px 23px rgba(16,100,180,.13)}.entry-v2-action-icon{background:linear-gradient(145deg,#278eef,#0c69c8);color:#fff;box-shadow:0 7px 15px rgba(21,112,205,.2)}.entry-v2-action.sale .entry-v2-action-icon{background:linear-gradient(145deg,#18b47b,#087b58);color:#fff}.entry-v2-action.pay .entry-v2-action-icon{background:linear-gradient(145deg,#ee6a60,#c83e36);color:#fff}.entry-v2-action.recv .entry-v2-action-icon{background:linear-gradient(145deg,#21afba,#117780);color:#fff}.entry-v2-action-meta{background:#d8ebff;color:#086bc8}.entry-v2-core{border-color:#8fc1ee;background:radial-gradient(circle at 50% 18%,rgba(80,172,255,.18),transparent 12rem),linear-gradient(150deg,#edf7ff,#ddecfb)}.entry-v2-core:hover{border-color:#278be6;box-shadow:0 14px 29px rgba(18,104,184,.16)}.entry-v2-core-icon{background:linear-gradient(145deg,#168df2,#075db5);box-shadow:0 11px 24px rgba(9,99,185,.3)}.entry-v2-core strong{color:#123e6c}.entry-v2-core b{color:#0873d5}.entry-v2-tip{border-color:#c9dfef;background:linear-gradient(90deg,#e9f5ff,#f6fbff)}

.contract-pdf-upload{display:flex!important;align-items:center;gap:12px;padding:13px 14px;border:1.5px dashed #7aa2df;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#ecfdf5);cursor:pointer;transition:.18s;color:#173b70!important}.contract-pdf-upload:hover{border-color:#2563eb;box-shadow:0 7px 18px rgba(37,99,235,.13);transform:translateY(-1px)}.contract-pdf-upload input{display:none}.contract-pdf-icon,.contract-file-doc{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#ef4444,#be123c);color:#fff;font-size:11px;font-weight:900;box-shadow:0 5px 12px rgba(190,18,60,.23);flex:0 0 auto}.contract-pdf-upload>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.contract-pdf-upload b{font-size:13px}.contract-pdf-upload small{font-size:11px;color:#64748b;font-weight:500}.contract-pdf-choose{padding:7px 12px;border-radius:8px;background:#1d4ed8;color:#fff;font-size:12px;font-weight:800}.contract-file-btn{display:inline-flex;align-items:center;gap:3px;border:1px solid #fda4af;background:#fff1f2;color:#be123c;border-radius:7px;padding:4px 7px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.contract-file-btn:before{content:'▣';font-size:10px}.contract-file-btn:hover{background:#ffe4e6;border-color:#fb7185}.contract-file-list{display:flex;flex-direction:column;gap:10px}.contract-file-row{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #cbdaf2;border-radius:12px;background:#f8fbff}.contract-file-name{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.contract-file-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#173b70}.contract-file-name small{color:#64748b}.contract-pdf-frame{width:100%;height:68vh;border:1px solid #cbdaf2;border-radius:10px;background:#eef2f7}
.contract-upload-inline{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;border:1px dashed #60a5fa;border-radius:7px;background:#eff6ff;color:#1769b0;font-size:9px;font-weight:800;line-height:1.15;cursor:pointer;white-space:normal}.contract-upload-inline:hover{border-color:#0878e8;background:#dceeff}.contract-upload-inline input{display:none!important}
.contract-ledger-switch{display:flex;align-items:center;gap:7px;padding:9px 13px;border-bottom:1px solid #dbe6f1;background:#f8fbff}.contract-ledger-switch button{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid #cbdbea;border-radius:8px;background:#fff;color:#526b85;font-family:inherit;font-size:11px;font-weight:750;cursor:pointer}.contract-ledger-switch button b{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 5px;border-radius:99px;background:#e8eff7;color:#58708a;font-size:9px}.contract-ledger-switch button.active{border-color:#1684e8;background:linear-gradient(135deg,#1688ef,#0870d3);color:#fff;box-shadow:0 5px 12px rgba(8,112,211,.18)}.contract-ledger-switch button.active b{background:rgba(255,255,255,.2);color:#fff}
.contract-ledger-table .col-date{width:70px!important;white-space:nowrap!important}.contract-ledger-table .col-party-name{width:132px!important;white-space:normal!important;overflow-wrap:anywhere!important}.contract-ledger-table .col-product{width:100px!important;white-space:normal!important;overflow-wrap:anywhere!important}.contract-ledger-table .col-ship-type{width:46px!important;white-space:nowrap!important}.contract-ledger-table .col-status{width:68px!important}.contract-ledger-table .col-deadline{width:64px!important}.contract-ledger-table .col-file{width:72px!important}
.product-attribute-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.product-attribute-control .btn{height:34px;padding:0 10px;white-space:nowrap}
.contract-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:58px;height:25px;padding:0 9px;border:1px solid transparent;border-radius:999px;font-family:inherit;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:.16s ease}.contract-status-pill:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.contract-status-pill.running{border-color:#bfdbfe;background:#eff6ff;color:#2563eb;cursor:pointer}.contract-status-pill.complete{border-color:#bbf7d0;background:#f0fdf4;color:#15803d;cursor:default}.contract-status-pill.ended{border-color:#dbe3ec;background:#f8fafc;color:#64748b;cursor:pointer}.contract-status-pill.running:hover{border-color:#60a5fa;background:#dbeafe;transform:translateY(-1px)}.contract-status-pill.ended:hover{border-color:#94a3b8;background:#f1f5f9;transform:translateY(-1px)}
.modal.exec-detail-modal{width:760px!important;max-width:calc(100vw - 40px)!important;height:560px!important;max-height:calc(100vh - 40px)!important}.exec-detail-modal .modal-b{overflow:hidden!important}.exec-detail-summary{flex:0 0 auto;margin-bottom:10px!important}.exec-detail-table-wrap{height:calc(100% - 62px);overflow-x:hidden!important;overflow-y:auto!important;border:1px solid #e0e8f1;border-radius:9px}.exec-detail-table{width:100%!important;min-width:0!important;table-layout:fixed!important}.exec-detail-table th:nth-child(1){width:38px}.exec-detail-table th:nth-child(2){width:78px}.exec-detail-table th:nth-child(3){width:120px}.exec-detail-table th:nth-child(4){width:66px}.exec-detail-table th:nth-child(5){width:88px}.exec-detail-table th:nth-child(6){width:74px}.exec-detail-table td:last-child{white-space:normal!important;overflow-wrap:anywhere!important}.exec-detail-modal .modal-f{flex:0 0 auto}
.modal.contract-entry-modal{max-width:1180px!important}.contract-entry-modal .modal-h{padding:10px 16px}.contract-entry-modal .modal-b{padding:11px 14px;overflow:hidden!important}.contract-entry-modal .modal-f{padding:9px 16px}.contract-entry-modal .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 11px}.contract-entry-modal .field{gap:2px}.contract-entry-modal .field>label:first-child{font-size:10.5px}.contract-entry-modal .field input,.contract-entry-modal .field select{height:34px;padding:5px 8px}.contract-entry-modal .contract-pdf-field,.contract-entry-modal .contract-calc-field{grid-column:span 2}.contract-entry-modal .contract-pdf-upload{min-height:49px;padding:7px 10px}.contract-entry-modal .contract-pdf-icon{width:34px;height:34px}.contract-entry-modal .ef-calced{height:49px;display:flex;align-items:center;justify-content:center;margin-top:16px}.logistics-upload{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px dashed #70a6d9;border-radius:8px;background:#eef7ff;color:#245b8d;cursor:pointer;font-size:11px;font-weight:700}.logistics-upload:hover{border-color:#0878e8;background:#e3f2ff}.logistics-upload input{display:none}.logistics-upload small{margin-left:auto;color:#6b8299;font-size:9.5px;font-weight:500}.logistics-pending-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.logistics-pending-item{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 6px;border:1px solid #cfe1f2;border-radius:6px;background:#f7fbff;color:#526b82;font-size:9.5px}.logistics-pending-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logistics-pending-item button{border:0;background:transparent;color:#dc2626;cursor:pointer;font-size:12px}.logistics-view-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.logistics-view-tab{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logistics-view-tab.active{background:#1677dd;color:#fff;border-color:#1677dd}.logistics-file-preview{max-width:100%;max-height:64vh;display:block;margin:auto;border-radius:10px}.logistics-file-frame{width:100%;height:64vh;border:1px solid #cbdaf2;border-radius:10px}
.freight-party-name{min-width:0;max-width:none;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;text-align:left!important;font-size:11px;letter-spacing:-.2px}.freight-route-name{white-space:normal!important;overflow-wrap:anywhere;text-align:left!important;font-size:10px;line-height:1.3}.freight-logistics-cell{min-width:0}.freight-logistics-cell .logistics-record-actions{justify-content:center;flex-wrap:nowrap;gap:3px}.freight-logistics-cell .btn{padding:4px 5px;font-size:8.5px}.freight-pending-table,.freight-history-table,.logistics-ledger-table{width:100%;table-layout:fixed}.freight-pending-table th:nth-child(1){width:76px}.freight-pending-table th:nth-child(2){width:42%}.freight-pending-table th:nth-child(3){width:11%}.freight-pending-table th:nth-child(4){width:9%}.freight-pending-table th:nth-child(5){width:58px}.freight-pending-table th:nth-child(6){width:72px}.freight-pending-table th:nth-child(7){width:108px}.freight-pending-table th:nth-child(8){width:54px}.freight-history-table th:nth-child(1),.freight-history-table th:nth-child(2){width:76px}.freight-history-table th:nth-child(3){width:34%}.freight-history-table th:nth-child(4){width:10%}.freight-history-table th:nth-child(5){width:8%}.freight-history-table th:nth-child(6){width:74px}.freight-history-table th:nth-child(7){width:10%}.freight-history-table th:nth-child(8){width:50px}.freight-history-table th:nth-child(9){width:62px}.freight-history-table th:nth-child(10){width:108px}.logistics-ledger-table th:nth-child(1){width:38px}.logistics-ledger-table th:nth-child(2){width:88px}.logistics-ledger-table th:nth-child(3){width:34%}.logistics-ledger-table th:nth-child(4){width:10%}.logistics-ledger-table th:nth-child(5){width:10%}.logistics-ledger-table th:nth-child(6){width:58px}.logistics-ledger-table th:nth-child(7){width:72px}.logistics-ledger-table th:nth-child(8){width:68px}.logistics-ledger-table th:nth-child(9){width:8%}.logistics-ledger-table th:nth-child(10){width:108px}.freight-pending-table td,.freight-pending-table th,.freight-history-table td,.freight-history-table th,.logistics-ledger-table td,.logistics-ledger-table th{padding-left:4px;padding-right:4px}
.contract-ledger-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}.contract-ledger-table th,.contract-ledger-table td{padding:5px 2px!important;font-size:9px!important;line-height:1.25!important;white-space:normal!important;word-break:break-word!important;overflow:hidden;text-overflow:ellipsis}.contract-ledger-table th:nth-child(1){width:28px}.contract-ledger-table th:nth-child(2){width:70px}.contract-ledger-table td:nth-child(2){white-space:nowrap!important;word-break:normal!important}.contract-ledger-table th:nth-child(3){width:72px}.contract-ledger-table th:nth-child(4){width:118px}.contract-ledger-table th:nth-child(5){width:92px}.contract-ledger-table td:nth-child(4),.contract-ledger-table td:nth-child(5){white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;text-overflow:clip!important}.contract-ledger-table th:nth-child(6),.contract-ledger-table th:nth-child(7),.contract-ledger-table th:nth-child(10),.contract-ledger-table th:nth-child(11),.contract-ledger-table th:nth-child(13),.contract-ledger-table th:nth-child(14){width:48px}.contract-ledger-table th:nth-child(8),.contract-ledger-table th:nth-child(9){width:48px}.contract-ledger-table th:nth-child(12){width:62px}.contract-ledger-table th:nth-child(15){width:45px}.contract-ledger-table th:nth-child(16){width:48px}.contract-ledger-table th:nth-child(17){width:62px}.contract-ledger-table th:last-child{width:68px}.contract-ledger-table select{min-width:0!important;width:100%!important;height:24px!important;padding:1px 13px 1px 3px!important;font-size:8.5px!important}.contract-ledger-table .row-actions{gap:2px}.contract-ledger-table .row-actions button,.contract-ledger-table .contract-file-btn{padding:3px 4px;font-size:9px}.contract-ledger-table .attach-badge{padding:2px 3px}.contract-ledger-table~*{max-width:100%}
.logistics-ledger-table th:nth-child(3){width:31%}.logistics-ledger-table th:nth-child(4){width:9%}.logistics-ledger-table th:nth-child(5){width:58px}.logistics-ledger-table th:nth-child(6){width:9%}.logistics-ledger-table th:nth-child(7){width:58px}.logistics-ledger-table th:nth-child(8){width:72px}.logistics-ledger-table th:nth-child(9){width:68px}.logistics-ledger-table th:nth-child(10){width:7%}.logistics-ledger-table th:nth-child(11){width:108px}.logistics-ledger-table td:nth-child(5){white-space:nowrap}
.party-profile-page{display:flex;min-height:0;flex:1;flex-direction:column;gap:9px}.party-profile-tabs{display:flex;gap:7px}.party-profile-tabs .btn{min-width:122px;font-weight:700}.party-profile-page>.panel{display:flex;min-height:0;flex:1;flex-direction:column;margin-bottom:0}.party-profile-page .panel-h{gap:10px}.party-profile-page .panel-b{min-height:0;flex:1;overflow:hidden}.party-profile-count{padding:1px 3px 8px;color:#63788f;font-size:11px}.party-profile-table-wrap{max-height:calc(100% - 20px);overflow:auto}.party-profile-table{width:100%;table-layout:fixed}.party-profile-table th:nth-child(1){width:27%}.party-profile-table th:nth-child(2){width:11%}.party-profile-table th:nth-child(3){width:20%}.party-profile-table th:nth-child(4){width:12%}.party-profile-table th:nth-child(5){width:13%}.party-profile-table th:nth-child(6){width:8%}.party-profile-table th:nth-child(7){width:9%}.party-profile-table th,.party-profile-table td{padding:7px 6px;white-space:normal;overflow-wrap:anywhere}.party-profile-table td:last-child{white-space:nowrap}.party-profile-table td:last-child .btn{padding:3px 5px;margin:1px}.party-profile-name{font-weight:700;color:#1e4267}.party-profile-stars{white-space:nowrap;color:#e59b19;font-size:16px;letter-spacing:1px}.party-profile-stars span{color:#bbc5cf}.party-profile-types{display:flex;flex-wrap:wrap;gap:6px;max-height:130px;overflow:auto;padding:7px;border:1px solid #d6e3f0;border-radius:8px;background:#f8fbff}.party-profile-type{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #d5e3f1;border-radius:6px;background:#fff;color:#2b5277;font-size:11px;cursor:pointer}.party-profile-type input{width:14px!important;height:14px!important;margin:0}.party-profile-form{gap:8px 12px}
@media(max-width:720px){.party-profile-page .panel-h{align-items:stretch;flex-wrap:wrap}.party-profile-page .panel-h .tools{display:flex;width:100%}.party-profile-page .panel-h .search{min-width:0;flex:1}.party-profile-table,.party-profile-table tbody,.party-profile-table tr,.party-profile-table td{display:block;width:100%}.party-profile-table thead{display:none}.party-profile-table tr{margin-bottom:8px;border:1px solid #dce7f2;border-radius:9px;background:#fff}.party-profile-table td{display:grid;grid-template-columns:76px minmax(0,1fr);gap:6px;border:0;border-bottom:1px solid #edf2f7;text-align:left!important}.party-profile-table td:last-child{border-bottom:0}.party-profile-table td::before{color:#73889e;font-size:10px}.party-profile-table td:nth-child(1)::before{content:'名称'}.party-profile-table td:nth-child(2)::before{content:'区域'}.party-profile-table td:nth-child(3)::before{content:'商品大类'}.party-profile-table td:nth-child(4)::before{content:'联系人'}.party-profile-table td:nth-child(5)::before{content:'联系电话'}.party-profile-table td:nth-child(6)::before{content:'星级'}.party-profile-table td:nth-child(7)::before{content:'操作'}}
@media(max-width:900px){.contract-entry-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Softer sidebar: clear hierarchy without harsh saturation */
.sidebar{background:linear-gradient(180deg,#202d3e 0%,#1b2737 52%,#172231 100%);border-right-color:#314155;box-shadow:5px 0 18px rgba(15,30,48,.1)}.brand{border-bottom-color:rgba(214,226,240,.1)}.brand-logo-img{box-shadow:0 3px 9px rgba(0,0,0,.18)}.brand .sub{color:#90a0b4}.nav-group:not(.nav-parent){border-top-color:rgba(218,229,242,.08);color:#8393a8}.nav>.nav-item[data-page="dashboard"]{border-color:rgba(164,187,216,.14);background:rgba(255,255,255,.035);color:#e4eaf2}.nav>.nav-item[data-page="dashboard"] .ic{background:rgba(117,151,193,.14);color:#c6d3e3}.nav>.nav-item[data-page="dashboard"].active{border-color:#527ba8;background:linear-gradient(135deg,#3d6f9f,#355f89);box-shadow:0 5px 13px rgba(9,41,73,.2)}.nav-parent{border-color:rgba(177,195,218,.1);background:rgba(255,255,255,.018);color:#b8c3d0}.nav-parent:hover{border-color:rgba(184,202,224,.18);background:rgba(255,255,255,.045)}.nav-parent.expanded,.nav-parent.current{border-color:rgba(114,154,201,.26);background:rgba(71,111,158,.13);color:#edf2f7}.nav-parent-label>b{border-color:rgba(157,178,205,.2);background:rgba(255,255,255,.025);color:#91a7bf}.nav-parent.expanded .nav-parent-label>b,.nav-parent.current .nav-parent-label>b{border-color:rgba(130,166,208,.3);background:rgba(76,120,170,.17);color:#c7d7e8}.nav-parent-copy small{color:#7f91a8}.nav-parent.expanded .nav-parent-copy small,.nav-parent.current .nav-parent-copy small{color:#9eb0c5}.nav-children{border-left-color:rgba(134,164,199,.22)}.nav-children .nav-item{color:#b1bdca}.nav-children .nav-item .ic{background:rgba(255,255,255,.035);color:#91a3b8}.nav-children .nav-item:hover{background:rgba(255,255,255,.055);color:#f3f6f9}.nav-children .nav-item.active{background:linear-gradient(90deg,#3c6e9f,#355f89);box-shadow:0 4px 11px rgba(8,39,69,.18)}.nav-children .nav-item.active .ic{background:rgba(255,255,255,.1)}.nav-task-badge{background:#c75b58;box-shadow:none}.nav-task-badge.warning{background:#b98235;box-shadow:none}.sidebar-foot{border-top-color:rgba(216,228,241,.08);color:#8292a6}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:#b8c4d3 transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#c2ccd8;border:2px solid transparent;border-radius:999px;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:#a5b2c2;border:2px solid transparent;background-clip:padding-box}

@media(max-width:1180px){
  .sidebar{width:184px}
  .brand{padding-left:14px;padding-right:14px}
  .brand .sub{margin-left:45px}
  .topbar{padding-left:18px;padding-right:18px}
  .topbar .actions{gap:5px}
  .topbar .actions .btn{padding-left:8px;padding-right:8px}
  .page-tabs{padding-left:18px;padding-right:18px}
  body:not(.login-required) .content{padding:16px 18px!important}
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-attention{grid-template-columns:1fr}
  .executive-main{grid-template-columns:minmax(210px,.75fr) 1px minmax(310px,1.15fr) 1px minmax(190px,.65fr);gap:20px}
  .executive-total{font-size:43px}.executive-category-value{font-size:22px}.executive-amount{font-size:24px}
  .executive-snapshot{grid-template-columns:repeat(2,1fr)}
  .executive-snapshot-item:nth-child(2){border-right:0}.executive-snapshot-item:nth-child(-n+2){border-bottom:1px solid #edf1f5}
}
@media(max-width:900px){
  .sidebar{width:164px}
  .brand .logo{font-size:13px}.brand-logo-img{width:34px;height:34px}
  .brand .sub{display:none}
  .nav-item{font-size:11.5px;padding-left:8px;padding-right:8px}
  .topbar{align-items:flex-start;gap:8px;flex-wrap:wrap}
  .topbar .actions{width:100%;overflow-x:auto;padding-bottom:2px}
  .dashboard-hero-inner{align-items:flex-start;flex-direction:column;gap:13px}
  .dashboard-hero .dashboard-month-tools{width:100%;overflow-x:auto}
  .dashboard-grid.dashboard-overview{grid-template-columns:1fr}
  .dashboard-v3{overflow:auto}
  .executive-hero{flex:none;min-height:520px}
  .executive-head,.executive-main{display:flex;flex-direction:column;align-items:stretch}
  .executive-period{width:100%;overflow-x:auto}.executive-divider{display:none}
  .executive-bottom{grid-template-columns:1fr}.executive-task-list{grid-template-columns:1fr}
  .staff-layout{grid-template-columns:1fr}.staff-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* Keep every work area inside the current viewport: no horizontal scrolling. */
html,body,.app,.main,.content,.panel,.panel-b,.tbl-wrap,.modal,.modal-b,.settings-page,.dashboard-v3,.command-dashboard,.entry-workbench{max-width:100%!important;overflow-x:hidden!important}
.page-tabs{flex-wrap:wrap!important;overflow-x:hidden!important;height:auto!important;padding-bottom:7px}
.topbar,.topbar .actions,.panel-h,.panel-h .tools,.dashboard-month-tools,.executive-period,.command-summary{flex-wrap:wrap!important;overflow-x:hidden!important;max-width:100%!important}
.content>*{min-width:0!important;max-width:100%!important}
.content .tbl-wrap,.modal .tbl-wrap,#searchOverlay .tbl-wrap,#paSearchOverlay .tbl-wrap,#unpickedSearchOverlay .tbl-wrap{width:100%!important;overflow-x:hidden!important;overflow-y:auto!important}
body:not(.login-required) .content table.data,.modal table.data,#searchOverlay table.data,#paSearchOverlay table.data,#unpickedSearchOverlay table.data{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
body:not(.login-required) .content table.data th,body:not(.login-required) .content table.data td,.modal table.data th,.modal table.data td,#searchOverlay table.data th,#searchOverlay table.data td,#paSearchOverlay table.data th,#paSearchOverlay table.data td,#unpickedSearchOverlay table.data th,#unpickedSearchOverlay table.data td{min-width:0!important;max-width:none!important;padding:5px 3px!important;font-size:9px!important;line-height:1.25!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:hidden!important;text-overflow:ellipsis!important}
table.data input,table.data select,table.data textarea,table.data button,table.data .btn,table.data .row-actions{min-width:0!important;max-width:100%!important;width:auto;white-space:normal!important}
table.data .row-actions{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}
.command-workspace{grid-template-columns:minmax(250px,330px) minmax(0,1fr)!important}.command-right{min-width:0!important}.command-summary-item{min-width:0!important;flex:1 1 135px!important}.command-categories,.hub-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.command-category,.hub-category{min-width:0!important}.hub-category-body{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important}.entry-today{min-width:0!important}.entry-flow-grid,.entry-v2-layout{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:1050px){.command-workspace{grid-template-columns:1fr!important}.command-categories,.hub-category-grid{grid-template-columns:1fr!important}.entry-flow-grid,.entry-v2-layout{grid-template-columns:1fr!important}}
@media(max-width:900px){.topbar .actions,.dashboard-hero .dashboard-month-tools,.executive-period{width:100%;overflow-x:hidden!important}.topbar .actions{flex-wrap:wrap}.hub-category-body{grid-template-columns:1fr!important}}

/* Content-aware dialog sizing. These final rules intentionally override the viewport containment rule above. */
#modalBg>.modal{width:min(700px,calc(100vw - 48px))!important;max-width:700px!important}
#modalBg>.modal.compact-form-modal{width:min(420px,calc(100vw - 48px))!important;max-width:420px!important}
#modalBg>.modal.standard-form-modal{width:min(640px,calc(100vw - 48px))!important;max-width:640px!important}
#modalBg>.modal.table-modal{width:min(920px,calc(100vw - 48px))!important;max-width:920px!important}
#modalBg>.modal.wide-content-modal{width:min(960px,calc(100vw - 48px))!important;max-width:960px!important}
#modalBg>.modal.viewer-modal{width:min(1040px,calc(100vw - 48px))!important;max-width:1040px!important}
#modalBg>.modal.password-modal{width:min(400px,calc(100vw - 48px))!important;max-width:400px!important}
#modalBg>.modal.permissions-modal{width:min(680px,calc(100vw - 48px))!important;max-width:680px!important}
#modalBg>.modal.exec-detail-modal{width:min(760px,calc(100vw - 48px))!important;max-width:760px!important}
#modalBg>.modal.contract-entry-modal{width:min(1180px,calc(100vw - 48px))!important;max-width:1180px!important}
@media(max-width:560px){#modalBg>.modal{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important}}

/* Automatic phone layout */
.mobile-nav-toggle,.mobile-nav-backdrop{display:none}
@media(max-width:720px){
  html,body{height:100%;overflow:hidden}
  body:not(.login-required) .app{display:block!important;height:100dvh!important}
  body:not(.login-required) .main{width:100%;height:100dvh!important}
  .mobile-nav-toggle{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid #c8daec;border-radius:10px;background:#edf6ff;color:#155c9e;font-size:21px;line-height:1;cursor:pointer}
  .sidebar{position:fixed!important;z-index:1002;left:0;top:0;width:min(84vw,320px)!important;height:100dvh!important;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 45px rgba(3,18,37,.32)!important}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  .mobile-nav-backdrop{position:fixed;z-index:1001;inset:0;background:rgba(6,18,34,.52);backdrop-filter:blur(2px)}
  body.mobile-nav-open .mobile-nav-backdrop{display:block}
  .brand{padding:16px 15px}.brand .logo{font-size:15px}.brand-logo-img{width:40px;height:40px}.brand .sub{display:block;margin-left:49px}
  .nav{padding:8px 10px 22px}.nav>.nav-item[data-page="dashboard"]{min-height:44px}.nav-parent{min-height:48px}.nav-children .nav-item{min-height:42px;font-size:13px}
  .topbar{flex:0 0 auto!important;display:grid!important;grid-template-columns:38px minmax(0,1fr);align-items:center!important;gap:8px!important;padding:9px 11px!important;padding-top:max(9px,env(safe-area-inset-top))!important}
  .topbar>div:first-of-type{min-width:0}.topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .crumb{display:none}
  .topbar .actions{grid-column:1/-1;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;width:100%;gap:6px!important;padding:0!important}
  .topbar .actions .my-todo-pill{grid-column:1/-1;width:100%;justify-content:center;min-height:36px}
  .topbar .actions #currentUser{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px!important}
  .topbar .actions .today{display:none}.topbar .actions .btn{min-height:34px;padding:5px 9px!important}
  .page-tabs{display:none!important}
  body:not(.login-required) .content{display:block!important;min-height:0!important;padding:10px!important;padding-bottom:max(14px,env(safe-area-inset-bottom))!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch}
  .content>.panel,.content>.panel:last-child{display:block!important;min-height:auto!important;margin-bottom:10px!important;overflow:hidden!important}
  .panel-h{padding:10px 11px}.panel-h h2{font-size:14px}.panel-b{padding:10px!important}
  .stats,.dashboard-kpis{grid-template-columns:1fr 1fr!important;gap:8px!important;margin-bottom:10px}.stat{padding:11px}.stat .value{font-size:19px}
  .hub-dashboard,.command-dashboard,.dashboard-v3,.entry-workbench,.entry-v2{display:flex!important;height:auto!important;min-height:0!important;overflow:visible!important;flex-direction:column!important;gap:9px!important}
  .hub-hero,.command-hero{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;min-height:0!important;padding:15px!important;border-radius:13px}
  .hub-identity{gap:10px}.hub-brandmark{flex-basis:48px;width:48px;height:48px;border-radius:12px}.hub-hero h2{font-size:18px}.hub-hero p{white-space:normal}
  .hub-hero-right{display:block!important}.hub-metrics{display:grid!important;grid-template-columns:1fr 1fr!important;min-width:0!important;gap:7px}.hub-metric{padding:9px!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:9px}.hub-period{margin-top:8px;justify-content:center}.hub-period input{width:118px!important;min-width:0!important}
  .hub-alerts{grid-template-columns:1fr!important;gap:8px}.hub-alert{min-height:74px;padding:11px 12px}.hub-alert-copy b{font-size:22px}
  .hub-category-section{display:block!important;min-height:0!important;padding:12px!important}.hub-section-head{min-height:28px}.hub-category-grid{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-top:7px}.hub-category{min-height:0!important;padding:12px!important}.hub-category-body{grid-template-columns:1fr!important}.hub-category-primary{min-height:92px}.hub-category-stats{grid-template-columns:1fr 1fr}.hub-category-primary b{font-size:27px}.hub-category-foot{font-size:9px;flex-wrap:wrap}
  .command-workspace,.command-right,.command-lower,.command-categories,.entry-flow-grid,.entry-v2-layout,.staff-layout{display:flex!important;flex-direction:column!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:9px!important}.command-todo,.command-right{min-height:0!important}.command-category{height:auto!important}.command-summary{display:grid!important;grid-template-columns:1fr 1fr}.command-summary-item{min-width:0!important;padding:10px!important}
  .dashboard-attention,.executive-bottom,.executive-task-list,.staff-quick-grid{grid-template-columns:1fr!important}
  .content .tbl-wrap,.modal .tbl-wrap,#searchOverlay .tbl-wrap,#paSearchOverlay .tbl-wrap,#unpickedSearchOverlay .tbl-wrap{overflow-x:auto!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  body:not(.login-required) .content table.data,.modal table.data{min-width:720px!important;width:max-content!important;table-layout:auto!important}
  body:not(.login-required) .content table.data th,body:not(.login-required) .content table.data td,.modal table.data th,.modal table.data td{min-width:72px!important;padding:7px 5px!important;font-size:10px!important;white-space:nowrap!important;word-break:normal!important}
  .contract-ledger-table{min-width:1080px!important}.contract-ledger-table th,.contract-ledger-table td{font-size:9.5px!important}
  #modalBg{padding:8px!important;align-items:flex-end!important}#modalBg>.modal{width:100%!important;max-width:100%!important;max-height:92dvh!important;border-radius:16px 16px 0 0!important}.modal-h{padding:11px 13px}.modal-b{padding:11px!important;overflow:auto!important}.modal-f{padding:10px 12px!important}.form-grid,.contract-entry-modal .form-grid{grid-template-columns:1fr!important}.contract-entry-modal .contract-pdf-field,.contract-entry-modal .contract-calc-field{grid-column:auto!important}
  .login-overlay{padding:14px!important;align-items:center!important}.login-card{max-width:360px!important;padding:22px 20px!important;border-radius:17px!important}.login-brand{margin-bottom:17px!important}.login-logo-img{width:104px!important;height:66px!important;margin-bottom:7px!important}.login-brand h1{font-size:20px!important}.login-brand p{font-size:12px!important}.login-card .field{margin-bottom:11px!important}.login-card input{height:44px!important;font-size:15px!important}.login-card .btn.primary{height:45px!important}
}

/* Purchase/sale detail party names must always remain fully readable. */
.detail-ledger-table th.detail-party-head,.detail-ledger-table td.detail-party-name{width:150px!important;min-width:120px!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;line-height:1.45!important}
.detail-ledger-table td.detail-party-name{color:#243b5a;font-weight:650;text-align:left!important}
@media(max-width:720px){.detail-ledger-table th.detail-party-head,.detail-ledger-table td.detail-party-name{width:190px!important;min-width:190px!important;white-space:normal!important}}

/* Globally keep every supplier/customer name readable in tables and summaries. */
table.data th.full-party-name-column,table.data td.full-party-name-cell{width:150px!important;min-width:120px!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;line-height:1.45!important;height:auto!important}
table.data td.full-party-name-cell{color:#243b5a;font-weight:650;text-align:left!important}
.full-party-name-column,.full-party-name-cell{min-width:150px!important;width:auto!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;height:auto!important;line-height:1.4!important}
.dash-rank-name{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
@media(max-width:720px){table.data th.full-party-name-column,table.data td.full-party-name-cell{width:190px!important;min-width:190px!important}}
.invoice-ledger-table th.invoice-party-head,.invoice-ledger-table td.invoice-party-name{width:180px!important;min-width:160px!important;max-width:none!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;line-height:1.5!important;height:auto!important}
.invoice-ledger-table td.invoice-party-name{color:#243b5a;font-weight:650;text-align:left!important}
.invoice-ledger-table th.invoice-date-col,.invoice-ledger-table td.invoice-date-col{width:96px!important;min-width:96px!important;white-space:nowrap!important;word-break:keep-all!important}.invoice-ledger-table td.invoice-date-col .tag,.invoice-ledger-table td.invoice-date-col button{white-space:nowrap!important}
.invoice-selection-summary{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 24px;margin:0 0 8px;padding:10px 14px;border:1px solid #cfe2f7;border-radius:10px;background:linear-gradient(90deg,#f4f9ff,#edf6ff);color:#53657c;font-size:12px}.invoice-selection-summary span:first-child{color:#1d5f9e;font-weight:700}.invoice-selection-summary b{margin-left:3px;color:#143f6b;font-size:14px;font-variant-numeric:tabular-nums}
#invTbl>.invoice-selection-summary{position:sticky!important;top:0!important;z-index:9!important;height:42px!important;min-height:42px!important;box-sizing:border-box!important;margin:0!important;border-radius:0!important;flex-wrap:nowrap!important;background:#edf6ff!important;box-shadow:0 2px 5px rgba(24,67,110,.12)}#invTbl>.invoice-ledger-table thead th{position:sticky!important;top:42px!important;z-index:8!important;background:#eaf3fc!important;box-shadow:0 1px 0 #bfd4e8}
@media(max-width:720px){.invoice-ledger-table th.invoice-party-head,.invoice-ledger-table td.invoice-party-name{width:220px!important;min-width:220px!important}}
@media(max-width:720px){.invoice-selection-summary{justify-content:flex-start;gap:8px 16px;padding:9px 10px}#invTbl>.invoice-selection-summary{display:grid!important;grid-template-columns:1fr 1fr!important;height:94px!important;min-height:94px!important;gap:4px 10px!important}#invTbl>.invoice-ledger-table thead th{top:94px!important}}
/* 发票管理嵌套在任务切换页中，统一由内容面板滚动。 */
body:not(.login-required) .content>.invoice-management-page{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-height:0!important;width:100%!important;margin-top:-10px!important;overflow:hidden!important}
#invoiceTaskPaneHost{display:flex;flex:1 1 auto;min-height:0;width:100%;overflow:hidden}
#invoiceTaskPaneHost>.invoice-task-pane{display:flex;flex:1 1 auto;min-height:0;width:100%;flex-direction:column;overflow:hidden}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:last-child{display:flex!important;flex:1 1 auto!important;min-height:0!important;margin-bottom:0!important;flex-direction:column!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:last-child>.panel-h{flex:0 0 auto!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:last-child>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:last-child>.panel-b>#invTbl{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel{flex:0 0 auto!important}
.invoice-management-page>.panel:first-child{flex:0 0 auto!important;margin-bottom:10px!important}
.invoice-management-page>.stats{display:none!important}
.invoice-management-page>.panel:last-child{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-height:0!important;margin-bottom:0!important;overflow:hidden!important}
.invoice-management-page>.panel:last-child>.panel-h{flex:0 0 auto!important}
.invoice-management-page>.panel:last-child>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
.invoice-management-page>.panel:last-child>.panel-b>#invTbl{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}
.invoice-task-switch{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;gap:4px;margin:0 0 4px;padding:0 2px;white-space:nowrap}
.invoice-task-switch button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:27px;padding:0 9px;border:1px solid #cfdeeb;border-radius:6px;background:#fff;color:#52677e;font-family:inherit;font-size:10px;font-weight:650;cursor:pointer}
.invoice-task-switch button.active{border-color:#2680e8;background:#eaf4ff;color:#1768c6;box-shadow:0 2px 7px rgba(31,111,205,.1)}
.invoice-task-switch b{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#edf2f7;color:#60758b;font-size:8px}.invoice-task-switch button.active b{background:#fff;color:#1768c6}
.reconciliation-page{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}.reconciliation-switch{margin-bottom:4px!important}#reconciliationPane{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}#reconciliationPane>.recon-main-panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;margin-bottom:0;overflow:hidden}#reconciliationPane>.recon-main-panel>.panel-b{flex:1 1 auto;min-height:0;overflow:hidden}#reconciliationPane .tbl-wrap{height:100%;max-height:none!important;overflow:auto!important}
.invoice-management-page>.invoice-watch-panel{flex:0 0 auto!important;max-height:min(390px,48vh);overflow:auto!important}
.invoice-management-page>.invoice-ticket-watch{position:relative;z-index:12;margin:0 0 4px!important;padding:4px 6px!important;max-height:none!important;overflow:visible!important;background:#f5faff;border-color:#b9d7ef}
.invoice-ticket-watch-head{display:flex;align-items:center;gap:8px;margin-bottom:3px;color:#173d68;font-size:11px}
.invoice-ticket-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.invoice-ticket-card{position:relative;min-width:0;border:1px solid #d1e0ed;border-radius:6px;background:#fff}.invoice-ticket-card[open]{z-index:15;border-color:#7bb7ea}.invoice-ticket-card-head{display:flex;align-items:center;justify-content:space-between;gap:5px;height:27px;padding:3px 7px;color:#1e4f7e;font-size:10px;cursor:pointer;list-style:none}.invoice-ticket-card-head::-webkit-details-marker{display:none}.invoice-ticket-card-head small{color:#6b7f93;font-size:9px;white-space:nowrap}.invoice-ticket-card-head .negative{color:#c82e36}.invoice-ticket-card-head .positive{color:#0e8855}.invoice-ticket-card-body{position:absolute;top:calc(100% + 3px);left:0;width:max(100%,260px);box-sizing:border-box;max-height:min(290px,55vh);overflow-y:auto;padding:4px 8px 6px;border:1px solid #a9c9e5;border-radius:7px;background:#fff;box-shadow:0 9px 22px rgba(28,62,100,.18)}.invoice-ticket-card:nth-child(4n) .invoice-ticket-card-body{left:auto;right:0}.invoice-ticket-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 4px;padding:4px 0;border-bottom:1px solid #edf2f7;font-size:10px}.invoice-ticket-line:last-child{border-bottom:0}.invoice-ticket-line span{min-width:0;color:#344d65;white-space:nowrap}.invoice-ticket-line b{font-size:10px;white-space:nowrap}.invoice-ticket-line b.positive{color:#0e8855}.invoice-ticket-line b.negative{color:#d52f36}.invoice-ticket-line b.unknown{color:#73849a}.invoice-ticket-line small{grid-column:1/-1;color:#a36a1f;font-size:9px}.invoice-ticket-empty{padding:12px 5px;color:#8998a8;font-size:10px;text-align:center}
.invoice-management-page>.panel:last-child>.invoice-compact-header{height:29px!important;min-height:29px!important;padding:2px 5px!important;overflow:hidden!important}.invoice-compact-header>h2{display:none}.invoice-compact-header .tools{display:flex;align-items:center;justify-content:flex-start;gap:3px;width:100%;min-width:0;flex-wrap:nowrap!important;overflow:hidden}.invoice-compact-header .tools .btn{flex:0 0 auto;min-height:23px!important;height:23px!important;padding:2px 6px!important;font-size:9px!important;white-space:nowrap}.invoice-compact-header #invTotals{display:flex;align-items:center;flex:1 1 auto!important;justify-content:flex-start;gap:2px 7px;min-width:280px!important;height:23px!important;min-height:23px!important;margin:0!important;padding:1px 6px!important;border-radius:4px!important;white-space:nowrap;background:#f0f7ff!important;box-shadow:none!important;font-size:9px!important;overflow:hidden}.invoice-compact-header #invTotals span{white-space:nowrap}.invoice-compact-header #invTotals b{font-size:9px!important}.invoice-management-page #invTbl>.invoice-ledger-table thead th{top:0!important}
.invoice-no-ticket-cell{min-width:125px;white-space:nowrap!important}.invoice-no-ticket-cancel{margin-left:5px;padding:2px 4px;border:0;border-radius:3px;background:#fff1f0;color:#bf3030;font-family:inherit;font-size:10px;font-weight:700;cursor:pointer}.invoice-no-ticket-cancel:hover{background:#ffe2de;text-decoration:underline}
.invoice-ticket-card{align-self:start}.invoice-ticket-card-body{position:static;top:auto;left:auto;right:auto;width:100%;max-height:none;overflow:visible;padding:0 5px 2px;border:0;border-top:1px solid #eef3f8;border-radius:0;background:transparent;box-shadow:none}.invoice-ticket-card-head{height:20px!important;padding:1px 5px!important;cursor:pointer}.invoice-ticket-line{padding:1px 0!important;font-size:10px}.invoice-ticket-line b{font-size:10px}
.invoice-ticket-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.invoice-ticket-card-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:6px;row-gap:0}.invoice-ticket-line{display:flex;align-items:baseline;justify-content:flex-start;gap:3px;min-width:0;padding:3px 0;font-size:11px}.invoice-ticket-line span{flex:0 1 auto;overflow:visible;white-space:normal;line-height:1.2}.invoice-ticket-line b{flex:0 0 auto;font-size:11px;line-height:1.2}.invoice-ticket-card-head{font-size:11px}
@media(max-width:900px){.invoice-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-ticket-card:nth-child(2n) .invoice-ticket-card-body{left:auto;right:0}.invoice-compact-header #invTotals{min-width:210px!important;overflow:hidden}}
@media(max-width:760px){.invoice-ticket-grid{grid-template-columns:1fr}.invoice-ticket-card-body{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.invoice-ticket-grid{gap:4px}.invoice-ticket-card-head{padding:3px 5px}.invoice-ticket-card-body{width:100%;column-gap:5px}.invoice-ticket-line{font-size:10px}.invoice-ticket-line b{font-size:10px}.invoice-ticket-line small{font-size:8px}}
.contract-ledger-table .col-salesman,.detail-ledger-table .col-salesman{min-width:88px!important;width:96px!important;white-space:normal!important;color:#174a72;font-weight:650}
.invoice-split-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.invoice-split-summary>div{padding:10px;border:1px solid #d8e4ef;border-radius:9px;background:#f8fbff}.invoice-split-summary span{display:block;color:#7890a8;font-size:10px}.invoice-split-summary b{display:block;margin-top:3px;color:#183a60;font-size:16px}.invoice-part-list{display:grid;gap:6px;margin-bottom:12px}.invoice-part-row{display:grid;grid-template-columns:105px minmax(120px,1fr) 110px 62px;gap:7px;align-items:center;padding:7px 9px;border:1px solid #dbe6f0;border-radius:8px;background:#fff}.invoice-part-cell small{display:block;color:#8b9bad;font-size:9px}.invoice-part-cell b{display:block;color:#31465f;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-parts-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid #b7d6f2;border-radius:99px;background:#eaf5ff;color:#136aaf;font-size:10px;font-weight:700;cursor:pointer}.invoice-row-partial{background:#fffbeb!important}.invoice-row-complete{background:#f0fdf4!important}@media(max-width:720px){.invoice-split-summary{grid-template-columns:1fr}.invoice-part-row{grid-template-columns:1fr 1fr}.invoice-part-row .btn{width:100%;justify-content:center}}
.audit-log-table td{vertical-align:middle!important}.audit-page .audit-panel-body{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}.audit-page .audit-note{flex:0 0 auto;margin:0 0 6px;color:#7890a8;font-size:10px}.audit-page #auditLogBody{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.audit-page .audit-result-count{flex:0 0 auto}.audit-page #auditLogBody>.audit-log-scroll{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;overflow-x:hidden!important;overflow-y:scroll!important;overscroll-behavior-y:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important;scrollbar-gutter:stable}.audit-page .audit-log-table thead th{position:sticky!important;top:0!important;z-index:6!important;padding:4px!important}.audit-head-label{display:block;margin-bottom:3px;color:#345777;font-size:9px;font-weight:700}.audit-head-filter{display:block!important;width:100%!important;height:22px!important;min-height:22px!important;padding:2px 4px!important;border:1px solid #c9d9e8!important;border-radius:4px!important;background:#fff!important;color:#334155!important;font-size:9px!important;font-weight:400!important;line-height:16px!important;box-shadow:none!important}.audit-head-filter:focus{border-color:#1688ee!important;box-shadow:0 0 0 1px rgba(22,136,238,.12)!important}.audit-head-filter::placeholder{color:#9aa9b8}.audit-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.audit-detail-block{min-width:0;border:1px solid #d7e3ef;border-radius:10px;overflow:hidden;background:#fff}.audit-detail-block h4{margin:0;padding:9px 12px;background:#eef6fd;color:#17365d}.audit-detail-block table{margin:0}.audit-empty{padding:22px;text-align:center;color:#94a3b8;border:1px dashed #cbd5e1;border-radius:10px}@media(max-width:720px){.audit-compare{grid-template-columns:1fr}.audit-log-table{min-width:850px!important}.audit-page .audit-panel-body{overflow:visible!important}.audit-page #auditLogBody{overflow:visible}.audit-page #auditLogBody>.audit-log-scroll{height:60dvh!important;max-height:60dvh!important;overflow:auto!important}}
.invoice-ledger-table tbody tr.invoice-row-partial>td{background:#fffbeb!important}.invoice-ledger-table tbody tr.invoice-row-complete>td{background:#f0fdf4!important}.invoice-ledger-table tbody tr.invoice-row-partial:hover>td,.invoice-ledger-table tbody tr.invoice-row-complete:hover>td{background:#e3f2ff!important}
.payroll-sheet{border:1px solid #9eb7d5;border-radius:8px;overflow:auto;background:#fff}.payroll-title{padding:8px;background:#aec6e9;color:#102b4c;text-align:center;font-family:serif;font-size:22px;font-weight:800;letter-spacing:2px}.payroll-table{width:100%;min-width:1420px;border-collapse:collapse;table-layout:fixed;font-size:10px}.payroll-table th,.payroll-table td{padding:5px 4px;border:1px solid #b6c4d3;line-height:1.25;text-align:center}.payroll-table thead th{position:sticky;top:0;z-index:3;background:#eaf2fc;color:#1e3a5f;font-weight:700;white-space:normal}.payroll-table thead tr:first-child th{background:#d9e8f8}.payroll-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.payroll-table tbody tr:hover{background:#f2f8ff}.payroll-table .payroll-tax{background:#fff7e6}.payroll-table tfoot td{position:sticky;bottom:0;z-index:2;background:#eaf2fc;font-weight:800}.payroll-table .row-actions{justify-content:center;gap:3px}.payroll-table .btn.sm{min-height:22px;padding:2px 5px;font-size:9px}.payroll-table .tag{font-size:9px;padding:2px 5px}@media(max-width:720px){.payroll-title{font-size:17px}.payroll-sheet{max-height:calc(100dvh - 190px)}.payroll-table{min-width:1420px}}
.attendance-sheet{border:1px solid #9eb7d5;border-radius:8px;overflow:auto;background:#fff;max-height:calc(100vh - 205px)}.attendance-title{position:sticky;left:0;top:0;z-index:8;padding:7px;background:#aec6e9;color:#102b4c;text-align:center;font-family:serif;font-size:20px;font-weight:800;letter-spacing:2px}.attendance-table{border-collapse:collapse;table-layout:fixed;font-size:9.5px}.attendance-table th,.attendance-table td{height:25px;padding:2px;border:1px solid #aebdcd;text-align:center;white-space:nowrap}.attendance-table thead th{position:sticky;top:41px;z-index:6;background:#eaf2fc}.attendance-table .att-name{position:sticky;left:0;z-index:5;width:76px;min-width:76px;background:#f8fbff;font-weight:700}.attendance-table thead .att-name{z-index:9}.attendance-table .att-half{position:sticky;left:76px;z-index:5;width:36px;min-width:36px;background:#f8fbff}.attendance-table thead .att-half{z-index:9}.attendance-table .att-day{width:28px;min-width:28px}.attendance-table .att-summary{width:58px;min-width:58px}.attendance-cell{width:100%;height:100%;padding:0;border:0;background:transparent;font:700 13px serif;cursor:pointer}.attendance-cell.present{color:#172a3f}.attendance-cell.off{background:#ffc3cc;color:#d11124}.attendance-cell.leave{background:#d6a800;color:#111}.attendance-cell.annual{background:#bdd7ee;color:#124d79}.attendance-legend{display:flex;gap:8px;align-items:center;font-size:10px;color:#50647d}.attendance-legend span{padding:3px 7px;border-radius:5px;border:1px solid #d5e1ec}.attendance-legend .leave{background:#d6a800;color:#111}.attendance-legend .annual{background:#bdd7ee}.attendance-legend .off{background:#ffc3cc;color:#b91c1c}
.attendance-legend .legal-off{background:#fee2e2;color:#b91c1c}.attendance-legend .makeup-work{background:#dcfce7;color:#167746}.attendance-table thead .att-legal-off{background:#fee2e2;color:#b91c1c}.attendance-table thead .att-makeup-work{background:#dcfce7;color:#167746}.attendance-table .att-day em{display:inline-block;margin-left:1px;font-size:7px;line-height:1;font-style:normal;font-weight:800}
.attendance-table .att-company{position:sticky;left:0;z-index:5;width:56px;min-width:56px;background:#f0f6ff;font-weight:700}.attendance-table .att-name{left:56px}.attendance-table .att-half{left:132px}.attendance-table thead .att-company{z-index:9}.payroll-table tbody tr[ondblclick]{cursor:pointer}.payroll-table tbody tr[ondblclick]:hover td{background:#edf6ff}
.salary-page{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}.salary-page>div:first-child{flex:0 0 auto}.salary-page>.panel{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;margin-bottom:0;overflow:hidden}.salary-page>.panel>.panel-h{flex:0 0 auto}.salary-page>.panel>.panel-b{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:auto!important}.salary-page .payroll-sheet,.salary-page .attendance-sheet{flex:1 1 auto;min-height:0;height:100%;max-height:none;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}.salary-page .payroll-table,.salary-page .attendance-table{margin:0}.salary-page>.panel>.panel-b>.stats{flex:0 0 auto}.salary-page>.panel>.panel-b>.tbl-wrap{flex:1 1 auto;min-height:0;overflow:auto!important}
.task-assign-nav{margin:6px 2px 10px!important;background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(14,165,233,.18));border:1px solid rgba(96,165,250,.32);color:#eff6ff!important;font-weight:700!important}.task-assign-nav:hover{background:linear-gradient(135deg,rgba(37,99,235,.48),rgba(14,165,233,.28))!important}.task-assign-nav.active{background:linear-gradient(135deg,#2563eb,#0284c7)!important;border-color:transparent;box-shadow:0 8px 22px rgba(37,99,235,.3)}
.task-quick-btn{background:linear-gradient(135deg,#2563eb,#0284c7)!important;border-color:transparent!important;color:#fff!important;font-weight:700!important;box-shadow:0 5px 16px rgba(37,99,235,.22)}
@media(max-width:720px){.stats[style*="repeat(3"]{grid-template-columns:1fr!important}.topbar .actions .task-quick-btn{grid-column:1/-1;width:100%;justify-content:center}}
/* Structured product settings and readable purchase/sale detail ledgers. */
.taxonomy-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.taxonomy-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.taxonomy-columns>section{min-width:0}.taxonomy-column{display:flex;flex-direction:column;gap:8px}.taxonomy-rule-row{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:start;gap:5px 9px;padding:10px 12px;border:1px solid #dce7f2;border-radius:9px;background:#f8fbff}.taxonomy-rule-row>b{color:#173f69}.taxonomy-rule-row>div{display:flex;flex-wrap:wrap;gap:5px}.taxonomy-rule-row span,.product-type-group span{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#e5f1ff;color:#1769b0;font-size:11px}.taxonomy-rule-row span button,.product-type-group span button{padding:0;border:0;background:transparent;color:#8ba3bb;cursor:pointer;font-weight:800}.taxonomy-rule-row small{grid-column:2;color:#7a8798}.taxonomy-add{padding:3px 8px;border:1px dashed #5b9ddd;border-radius:999px;background:#fff;color:#1769b0;font-size:11px;cursor:pointer}.taxonomy-add:hover{background:#eaf5ff;border-style:solid}.taxonomy-section-title{margin:8px 0 7px;font-size:13px;color:#173f69}.product-type-groups{display:grid;grid-template-columns:1fr 1fr;gap:8px}.product-type-group{display:grid;grid-template-columns:55px 1fr;gap:8px;padding:9px 11px;border:1px solid #dce7f2;border-radius:9px;background:#fff}.product-type-group>b{color:#173f69}.product-type-group>div{display:flex;flex-wrap:wrap;gap:5px}.taxonomy-palm-row{grid-template-columns:90px minmax(0,1fr)}.taxonomy-palm-row>.palm-taxonomy-branches{display:flex;flex-direction:column;gap:7px}.palm-taxonomy-branch{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:7px;padding:7px 8px;border:1px solid #d6e4f2;border-radius:7px;background:#fff}.palm-taxonomy-branch>strong{color:#174f7d;font-size:11px}.palm-taxonomy-branch>div{display:flex;flex-wrap:wrap;gap:5px}.palm-taxonomy-branch em{color:#75859a;font-style:normal;font-size:10.5px}.palm-spec-list span{display:inline-flex}
.detail-summary{display:flex;gap:14px;justify-content:flex-end;align-items:center;flex-wrap:wrap;padding:9px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:10px;font-size:12px}.detail-ledger-table{table-layout:fixed!important;width:100%!important}.detail-ledger-table th,.detail-ledger-table td{padding:6px 3px!important;font-size:9px!important;line-height:1.35!important}.detail-ledger-table .detail-check{width:25px!important;text-align:center!important}.detail-ledger-table .detail-check input{width:14px!important;height:14px}.detail-ledger-table .detail-seq{width:26px!important;text-align:center!important;white-space:nowrap!important}.detail-ledger-table .detail-date{width:66px!important;white-space:nowrap!important}.detail-ledger-table .detail-contract{width:74px!important}.detail-ledger-table .detail-company{width:54px!important}.detail-ledger-table .detail-handler{width:46px!important}.detail-ledger-table th.detail-party-head,.detail-ledger-table td.detail-party-name{width:128px!important;min-width:0!important;max-width:none!important}.detail-ledger-table .col-salesman{width:58px!important;min-width:0!important}.detail-ledger-table th.detail-product-head,.detail-ledger-table td.detail-product-name{width:128px!important}.detail-ledger-table .detail-number{width:52px!important}.detail-ledger-table .detail-amount{width:66px!important}.detail-ledger-table .detail-tax{width:40px!important}.detail-ledger-table .detail-actions-head,.detail-ledger-table .detail-actions-cell{width:58px!important}.detail-ledger-table td.detail-party-name,.detail-ledger-table td.detail-product-name{white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;color:#243b5a}.detail-ledger-table td.detail-party-name{font-weight:650}.detail-ledger-table td.detail-product-name{font-weight:600}.detail-actions{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%}.detail-actions button{width:100%!important;min-width:0!important;padding:5px 2px!important;border:1px solid #9fc5e8;border-radius:6px;background:#edf6ff;color:#1769b0;font-size:9px!important;font-weight:700;line-height:1.15;cursor:pointer}.detail-actions button:hover{border-color:#5a9edc;background:#ddecfb}
.profit-detail-link{display:inline-block;width:100%!important;padding:4px 2px!important;border:0!important;background:transparent!important;color:inherit!important;font:inherit!important;font-weight:750!important;text-align:right;cursor:pointer}.profit-detail-link:hover{background:#ecfdf5!important;border-radius:5px;color:#047857!important}
.logistics-record-actions{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.logistics-supplement-btn{cursor:pointer;color:#1769b0!important;border-style:dashed!important}.logistics-supplement-btn input{display:none!important}
@media(max-width:900px){.taxonomy-rule-grid,.taxonomy-columns,.product-type-groups{grid-template-columns:1fr}.detail-ledger-table th.detail-party-head,.detail-ledger-table td.detail-party-name,.detail-ledger-table th.detail-product-head,.detail-ledger-table td.detail-product-name{width:145px!important}}
.settings-page.settings-v2{height:100%;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;padding:0 2px 18px;overscroll-behavior:contain}
body.settings-active .content{min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}body.settings-active .content>.settings-page{flex:1 1 auto!important;height:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.settings-section-bar{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid #d5e2ef;border-radius:10px;background:#eaf2fa;flex:0 0 auto}.settings-section-tab{min-width:126px;padding:8px 15px;border:1px solid transparent;border-radius:7px;background:transparent;color:#587087;font-weight:650;cursor:pointer}.settings-section-tab.active{border-color:#b9d6ef;background:#fff;color:#0875d5;box-shadow:0 3px 10px rgba(31,93,151,.11)}.settings-section-tab small{display:block;margin-top:1px;font-size:10px;font-weight:400;color:#8a99a9}.settings-section-tab.active small{color:#6390ba}.settings-single-view{display:flex;min-height:0;flex-direction:column;gap:10px}.settings-single-view>.settings-main-card{flex:0 0 auto}.settings-single-view.business>.settings-card-grid{padding-bottom:8px}@media(max-width:700px){.settings-section-bar{width:100%}.settings-section-tab{flex:1;min-width:0;padding:8px 6px}}
.settings-v2{display:flex;flex-direction:column;gap:12px}.settings-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-radius:13px;background:linear-gradient(118deg,#123b67,#1769a8 58%,#178a92);color:#fff;box-shadow:0 8px 24px rgba(18,59,103,.16)}.settings-hero h2{margin:0 0 4px;font-size:18px}.settings-hero p{margin:0;color:#d9efff;font-size:12px}.settings-hero-stats{display:flex;gap:8px}.settings-hero-stat{min-width:88px;padding:8px 11px;border:1px solid rgba(255,255,255,.22);border-radius:9px;background:rgba(255,255,255,.1)}.settings-hero-stat span{display:block;font-size:10px;color:#d9efff}.settings-hero-stat b{font-size:18px}.settings-main-card{border:1px solid #d9e5f1;border-radius:12px;background:#fff;overflow:hidden}.settings-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e5edf5}.settings-main-title h3{margin:0;color:#173f69;font-size:15px}.settings-main-title small{color:#74869a}.settings-addbar{display:flex;gap:7px;align-items:center}.settings-addbar select{width:96px}.settings-addbar input{width:174px}.settings-category-tabs{display:flex;gap:7px;padding:10px 14px;background:#f7fafe;border-bottom:1px solid #e5edf5}.settings-category-tab{display:flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid #cfdeed;border-radius:8px;background:#fff;color:#49647f;cursor:pointer;font-weight:600}.settings-category-tab b{min-width:20px;padding:1px 6px;border-radius:999px;background:#edf3f8;font-size:11px}.settings-category-tab.active{border-color:#2386df;background:#eaf4ff;color:#0969bd;box-shadow:0 0 0 2px rgba(35,134,223,.08)}.settings-rule-body{padding:12px 14px;background:#f8fbfe}.settings-rule-body .taxonomy-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.settings-rule-body .taxonomy-palm-row{grid-column:1/-1}.settings-rule-body .empty{grid-column:1/-1}.settings-rule-note{margin-top:9px;padding:8px 10px;border-left:3px solid #3b8edb;border-radius:6px;background:#edf6ff;color:#526b82;font-size:11px}.settings-tools-title{display:flex;align-items:center;justify-content:space-between;margin:2px 2px -2px}.settings-tools-title h3{margin:0;color:#173f69;font-size:15px}.settings-tools-title span{font-size:11px;color:#8492a3}.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-mini-card{border:1px solid #dce7f2;border-radius:11px;background:#fff;overflow:hidden}.settings-mini-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #edf2f7}.settings-mini-head strong{color:#254c72;font-size:13px}.settings-mini-head em{font-style:normal;color:#8a99aa;font-size:10px}.settings-mini-add{display:flex;gap:6px}.settings-mini-add input{width:135px;padding:6px 8px;font-size:12px}.settings-mini-card .settings-code-list{padding:10px 12px;gap:6px}.settings-mini-card .settings-code-chip{padding:4px 8px!important;font-size:11px}.settings-mini-card .empty{padding:15px;font-size:12px}@media(max-width:900px){.settings-hero{align-items:flex-start;flex-direction:column}.settings-card-grid,.settings-rule-body .taxonomy-column{grid-template-columns:1fr}.settings-addbar{width:100%;flex-wrap:wrap}.settings-addbar input{flex:1;min-width:150px}.settings-category-tabs{overflow:auto}.settings-hero-stats{width:100%;overflow:auto}}
/* Contract entry stays the same size while conditional product fields change. */
.product-type-picker{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:stretch}.product-type-picker input{min-width:0;width:100%;padding-right:8px;border-radius:6px 0 0 6px}.product-type-toggle{display:grid;place-items:center;border:1px solid var(--border);border-left:0;border-radius:0 6px 6px 0;background:#f6faff;color:#315d88;font-size:15px;cursor:pointer}.product-type-toggle:hover{background:#e8f3ff;color:#0875d5}.product-type-menu{position:absolute;z-index:80;top:calc(100% + 4px);right:0;left:0;display:none;max-height:230px;overflow-y:auto;padding:5px;border:1px solid #bcd2e7;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(30,64,100,.18)}.product-type-menu.open{display:block}.product-type-option{display:block;width:100%;padding:8px 10px;border:0;border-radius:6px;background:#fff;color:#243f5d;text-align:left;cursor:pointer}.product-type-option:hover,.product-type-option.active{background:#e8f3ff;color:#0871ce;font-weight:700}.product-type-empty{padding:13px 10px;color:#8a9bad;text-align:center;font-size:11px}
#modalBg>.modal.contract-entry-modal{height:min(650px,calc(100vh - 48px))!important;min-height:min(650px,calc(100vh - 48px))!important;display:flex!important;flex-direction:column!important}
#modalBg>.modal.contract-entry-modal .modal-h,#modalBg>.modal.contract-entry-modal .modal-f{flex:0 0 auto}
#modalBg>.modal.contract-entry-modal .modal-b{flex:1 1 auto;min-height:0}
@media(max-width:720px){#modalBg>.modal.contract-entry-modal{height:92dvh!important;min-height:92dvh!important}}
/* Stable, purpose-built contract original viewer. */
#modalBg>.modal.contract-viewer-modal{width:min(760px,calc(100vw - 32px))!important;max-width:760px!important;height:min(940px,calc(100vh - 24px))!important;max-height:calc(100vh - 24px)!important;display:flex!important;flex-direction:column!important}
.contract-viewer-modal .modal-h{min-height:38px!important;padding:7px 12px!important}.contract-viewer-modal .modal-f{min-height:38px!important;padding:6px 12px!important}.contract-viewer-modal .modal-h,.contract-viewer-modal .modal-f{flex:0 0 auto!important}.contract-viewer-modal .modal-b{display:flex!important;flex:1 1 auto!important;min-height:0!important;flex-direction:column!important;gap:5px;padding:5px!important;overflow:hidden!important;background:#e8eef5}
.contract-viewer-meta{display:flex;align-items:center;gap:11px;flex:0 0 auto;padding:9px 11px;border:1px solid #d2deea;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(24,54,87,.05)}.contract-viewer-doc{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,#ef4444,#be123c);color:#fff;font-size:10px;font-weight:900}.contract-viewer-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.contract-viewer-copy b{color:#173b63;font-size:12px}.contract-viewer-copy small{overflow:hidden;color:#74869a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.contract-viewer-readonly{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#e5f1ff;color:#1769b0;font-size:9px;font-weight:750}
.contract-viewer-stage{flex:1 1 auto;min-height:0;overflow:hidden;border:1px solid #c5d3e1;border-radius:10px;background:#d9e1ea;box-shadow:inset 0 1px 4px rgba(28,48,71,.08)}.contract-viewer-stage .contract-pdf-frame{display:block;width:100%!important;height:100%!important;border:0!important;border-radius:0!important;background:#fff}
.contract-preview-toolbar{display:flex;align-items:center;gap:5px;flex:0 0 auto;min-height:32px;padding:4px 5px;overflow-x:auto;border:1px solid #cbd8e5;border-radius:8px;background:#fff}.contract-preview-tab{flex:0 0 auto;padding:5px 10px;border:1px solid #ccd9e6;border-radius:6px;background:#f7fafc;color:#49647f;font:600 11px inherit;cursor:pointer;white-space:nowrap}.contract-preview-tab:hover{border-color:#78a9d7;background:#eef7ff}.contract-preview-tab.active{border-color:#1684e8;background:#1684e8;color:#fff}.contract-preview-count{flex:0 0 auto;margin-left:auto;padding:0 6px;color:#73869a;font-size:10px;white-space:nowrap}
@media(max-width:720px){#modalBg>.modal.contract-viewer-modal{width:calc(100vw - 12px)!important;max-width:none!important;height:calc(100dvh - 12px)!important;min-height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}.contract-viewer-modal .modal-b{padding:4px!important;gap:4px}.contract-viewer-meta{padding:7px 8px}.contract-viewer-doc{width:32px;height:32px;flex-basis:32px}.contract-viewer-readonly{display:none}}
/* Mobile approval uses one complete card at a time, without horizontal scrolling. */
.approval-mobile{display:none}.approval-mobile-card{width:100%;overflow:hidden;border:1px solid #d2e1ef;border-radius:13px;background:#fff;box-shadow:0 8px 24px rgba(27,72,117,.08)}.approval-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid #dbe8f4;background:linear-gradient(100deg,#edf6ff,#fff)}.approval-mobile-head>div{display:flex;align-items:center;gap:9px}.approval-mobile-head small{color:#6e8298;font-size:11px}.approval-mobile-head strong{display:flex}.approval-mobile-amount{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:13px 14px;background:linear-gradient(135deg,#123d69,#0878d7);color:#fff}.approval-mobile-amount span{font-size:11px;color:#d7ebff}.approval-mobile-amount b{font-size:23px;line-height:1;letter-spacing:.2px}.approval-mobile-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:5px 13px}.approval-mobile-item{min-width:0;padding:8px 4px;border-bottom:1px solid #edf2f7}.approval-mobile-item:nth-last-child(-n+2){border-bottom:0}.approval-mobile-item.wide{grid-column:1/-1}.approval-mobile-item span{display:block;margin-bottom:3px;color:#7b8da1;font-size:10px}.approval-mobile-item b{display:block;color:#213b58;font-size:12px;line-height:1.35;white-space:normal;word-break:break-word}.approval-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:12px 14px;border-top:1px solid #e5edf5;background:#f8fbfe}.approval-mobile-actions .btn{min-height:42px;justify-content:center;font-size:14px;font-weight:750}.approval-mobile-actions .btn.danger{background:#fff5f5;border-color:#ef9b9b;color:#c93636}.approval-mobile-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:9px;padding:10px 14px;border-top:1px solid #dce7f1;background:#eef5fb}.approval-mobile-nav .btn{justify-content:center}.approval-mobile-nav .btn:last-child{justify-self:stretch}.approval-mobile-nav span{text-align:center;color:#60768d;font-size:11px;font-weight:700}.approval-mobile-nav button:disabled{opacity:.4;cursor:not-allowed}
.approval-card-grid{display:grid;grid-template-columns:1fr;gap:9px}.approval-card{display:grid;grid-template-columns:190px minmax(210px,1.1fr) minmax(360px,2fr) 105px;align-items:stretch;min-width:0;overflow:hidden;border:1px solid #d7e3ef;border-radius:12px;background:#fff;box-shadow:0 4px 13px rgba(27,72,117,.06)}.approval-card-top{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;padding:11px 13px;border-right:1px solid #e4edf5;background:linear-gradient(110deg,#f1f7fd,#fff)}.approval-card-title{display:flex;align-items:center;gap:8px;min-width:0}.approval-card-title small{color:#71859a;font-size:11px;white-space:nowrap}.approval-card-amount{text-align:left;white-space:nowrap}.approval-card-amount small{display:block;color:#7b8da1;font-size:10px}.approval-card-amount b{color:#0b67b7;font-size:20px;line-height:1.15}.approval-card-reason{display:flex;flex-direction:column;justify-content:center;margin:0;padding:12px 15px;border-right:1px solid #dce8f2;background:#edf7ff}.approval-card-reason small{display:block;margin-bottom:4px;color:#627990;font-size:10px}.approval-card-reason b{display:block;color:#183a5c;font-size:14px;line-height:1.45;word-break:break-word}.approval-card-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;padding:5px 10px}.approval-card-info>div{min-width:0;padding:6px 6px}.approval-card-info .wide{grid-column:auto}.approval-card-info span{display:block;margin-bottom:2px;color:#8493a3;font-size:10px}.approval-card-info strong{display:block;overflow:hidden;color:#263f59;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.approval-card-info .wide strong{white-space:nowrap;word-break:normal}.approval-card-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:7px;padding:9px;border-left:1px solid #e5edf5;background:#f8fbfe}.approval-card-actions .btn{min-width:76px;justify-content:center}.approval-card-actions .danger{margin-left:0}.approval-card-status{margin:0 auto 2px}
.approval-view-note{display:flex;align-items:center;gap:7px;color:#587087;font-size:12px}.approval-view-note:before{content:'●';color:#1684e8;font-size:9px}.approval-evidence{display:inline-flex!important;align-items:center;gap:5px;width:max-content;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#15803d!important}.approval-evidence.missing{background:#fff1f2;color:#be123c!important}
.approval-panel,.approval-tabs{width:min(100%,1180px);margin-left:auto!important;margin-right:auto!important}.approval-panel .panel-b{padding:12px}
.approval-kind-overview{display:flex;gap:6px;margin-top:5px}.approval-kind-overview span{padding:3px 9px;border-radius:6px;font-size:11px;font-weight:800}.approval-kind-overview .payment{background:#dbeafe;color:#1554a2}.approval-kind-overview .freight{background:#ffedd5;color:#9a4d08}.approval-card-title .tag.blue,.approval-mobile-head strong .tag.blue,.approval-panel .data td:nth-child(2) .tag.blue{padding:6px 12px;border:1px solid #85baff;border-radius:7px;background:#dbeafe;color:#0756aa;font-size:14px;font-weight:800}.approval-card-title .tag.amber,.approval-mobile-head strong .tag.amber,.approval-panel .data td:nth-child(2) .tag.amber{padding:6px 12px;border:1px solid #f3b86d;border-radius:7px;background:#fff0d9;color:#a54a00;font-size:14px;font-weight:800}.approval-card:has(.approval-card-title .tag.blue){border-left:5px solid #1976d2}.approval-card:has(.approval-card-title .tag.amber){border-left:5px solid #e79220}.approval-mobile-card:has(.approval-mobile-head .tag.blue){border-top:4px solid #1976d2}.approval-mobile-card:has(.approval-mobile-head .tag.amber){border-top:4px solid #e79220}
@media(max-width:1280px) and (min-width:721px){.approval-card{display:block}.approval-card-top{flex-direction:row;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid #e4edf5}.approval-card-amount{text-align:right}.approval-card-reason{margin:10px 12px 3px;padding:9px 11px;border-right:0;border-left:4px solid #1684e8}.approval-card-info{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 12px 8px}.approval-card-actions{flex-direction:row;justify-content:flex-end;border-left:0;border-top:1px solid #e5edf5}.approval-card-status{margin-right:auto}}
@media(max-width:720px){.approval-tabs{position:sticky;top:0;z-index:4;margin-bottom:8px!important;padding:6px;border:1px solid #d7e4ef;border-radius:10px;background:#eef5fb}.approval-tabs .btn{flex:1;justify-content:center}.approval-panel .panel-h{min-height:38px;padding:7px 10px}.approval-panel .panel-b{padding:8px!important;overflow:hidden!important}.approval-desktop{display:none!important}.approval-mobile{display:block}.approval-panel{overflow:visible}.approval-mobile.empty{padding:28px 10px}.approval-mobile-grid{grid-template-columns:1fr 1fr}.approval-mobile-item.wide{grid-column:1/-1}}
/* Reconciliation needs two complete ledgers side by side. */
#modalBg>.modal.recon-detail-modal{width:min(1160px,calc(100vw - 48px))!important;max-width:1160px!important}
.recon-detail-modal .modal-h{padding:9px 13px!important}.recon-detail-modal .modal-b{padding:8px!important}.recon-detail-modal .modal-f{padding:7px 12px!important}
.recon-detail-modal .recon-two-columns{min-width:0;gap:7px!important}.recon-detail-modal .recon-two-columns>.panel{min-width:0}.recon-detail-modal .panel-h{min-height:32px!important;padding:5px 8px!important}.recon-detail-modal .panel-h h2{font-size:12px!important}.recon-detail-modal .panel-b{padding:0!important}
.recon-detail-modal table.data th,.recon-detail-modal table.data td{padding:4px 3px!important;font-size:9px!important;line-height:1.25!important;white-space:normal!important;word-break:break-word!important;overflow:visible!important;text-overflow:clip!important}.recon-detail-modal table.data .num{white-space:nowrap!important}
.recon-detail-modal table.data.recon-pick-table{table-layout:fixed!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(1),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(1){width:22px!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(2),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(2),.recon-detail-modal table.data.recon-pick-table.is-done th:nth-child(1),.recon-detail-modal table.data.recon-pick-table.is-done td:nth-child(1){width:66px!important;white-space:nowrap!important;word-break:normal!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(3),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(3),.recon-detail-modal table.data.recon-pick-table.is-done th:nth-child(2),.recon-detail-modal table.data.recon-pick-table.is-done td:nth-child(2){width:68px!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(5),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(5),.recon-detail-modal table.data.recon-pick-table.is-done th:nth-child(4),.recon-detail-modal table.data.recon-pick-table.is-done td:nth-child(4){width:55px!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(6),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(6),.recon-detail-modal table.data.recon-pick-table.is-done th:nth-child(5),.recon-detail-modal table.data.recon-pick-table.is-done td:nth-child(5){width:45px!important}
.recon-detail-modal table.data.recon-pick-table.is-pending th:nth-child(7),.recon-detail-modal table.data.recon-pick-table.is-pending td:nth-child(7),.recon-detail-modal table.data.recon-pick-table.is-done th:nth-child(6),.recon-detail-modal table.data.recon-pick-table.is-done td:nth-child(6){width:64px!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-date-cell{width:64px!important;white-space:nowrap!important;word-break:normal!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-book-month-head,.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-book-month-cell{width:58px!important;white-space:nowrap!important;word-break:normal!important;text-align:center!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-contract-cell{width:64px!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-product-cell{width:auto!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-price-cell{width:52px!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-qty-cell{width:46px!important}
.recon-detail-modal table.data.recon-pick-table.has-book-month .recon-amount-cell{width:64px!important}
.recon-detail-modal .recon-two-columns>.panel:first-child table.data .recon-invoice-head,.recon-detail-modal .recon-two-columns>.panel:first-child table.data .recon-invoice-cell{width:82px!important;min-width:82px!important;text-align:center!important;white-space:normal!important;word-break:normal!important}
.recon-detail-modal .recon-invoice-cell .tag{display:inline-flex;margin:0 auto 3px;padding:2px 5px;white-space:nowrap}.recon-detail-modal .recon-invoice-cell .recon-invoice-date{display:block;margin:1px 0 3px;color:var(--muted);font-size:8.5px;white-space:nowrap}.recon-detail-modal .recon-invoice-cell .btn{display:block;width:74px;min-width:0;margin:2px auto 0;padding:3px 2px!important;font-size:8.5px!important;white-space:nowrap}
.recon-detail-modal .recon-two-columns>.panel:first-child table.data th:last-child,.recon-detail-modal .recon-two-columns>.panel:first-child table.data td:last-child{width:43px!important;min-width:43px!important;text-align:center!important;white-space:nowrap!important}.recon-detail-modal .recon-two-columns>.panel:first-child table.data td:last-child .btn{min-width:0;padding:3px 5px!important;font-size:9px!important}
.recon-detail-modal>.modal-b{display:flex!important;flex-direction:column!important;overflow:hidden!important}.recon-detail-modal .recon-tabs{flex:0 0 auto}.recon-detail-modal .recon-two-columns{flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain}.recon-detail-modal .recon-batch-bar{position:relative;z-index:3;flex:0 0 auto;margin-top:7px!important;box-shadow:0 -3px 10px rgba(36,84,132,.08)}
.content>.recon-main-panel>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important;padding-bottom:0!important}
.content>.recon-main-panel>.panel-b>.tbl-wrap{height:100%!important;max-height:100%!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.recon-main-panel table.data tfoot td{position:sticky;bottom:0;z-index:4;background:#f8fafc!important;box-shadow:0 -1px 0 #dbe4ee}
.recon-cutoff{display:inline-flex;align-items:center;gap:5px;height:30px;padding:2px 4px 2px 9px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#475569;font-size:12px;white-space:nowrap}.recon-cutoff input{width:126px;height:25px;padding:2px 5px;border:0;background:transparent;font-size:12px}.recon-cutoff input:focus{outline:none;box-shadow:none}.recon-cutoff .btn{height:24px;padding:2px 7px!important}
.recon-balance-edit,.recon-balance-done{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.recon-balance-edit input[type="date"]{width:118px;height:28px;padding:2px 5px;font-size:11px}.recon-balance-cell .btn{padding:4px 7px}
.recon-detail-modal .recon-two-columns{touch-action:pan-y;-webkit-overflow-scrolling:touch}
/* 对账明细统一由弹窗内容区滚动，避免多层 overflow 导致多笔记录时滚轮失效。 */
#modalBg>.modal.recon-detail-modal>.modal-b{display:block!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
#modalBg>.modal.recon-detail-modal .recon-two-columns{display:grid!important;min-height:auto!important;overflow:visible!important;touch-action:auto!important}
#modalBg>.modal.recon-detail-modal .recon-tabs{position:sticky;top:-8px;z-index:8;background:#fff;padding:8px 0 6px;margin-top:-8px}
#modalBg>.modal.recon-detail-modal .recon-batch-bar{position:sticky!important;bottom:-8px!important;z-index:9!important;background:#eff6ff!important;margin-bottom:-8px!important}
#modalBg>.modal.recon-detail-modal{width:min(1180px,calc(100vw - 56px))!important;max-width:1180px!important;height:min(760px,calc(100vh - 56px))!important;max-height:calc(100vh - 56px)!important}
.content>.recon-main-panel{width:100%!important;align-self:stretch!important}
.content>.recon-main-panel table.data{width:100%!important;min-width:100%!important;table-layout:fixed!important}
body:not(.login-required) .content>.recon-main-panel>.panel-b>.tbl-wrap>table.data{display:table!important;width:100%!important;min-width:100%!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
@media(max-width:720px){.content>.recon-main-panel,.content>.recon-main-panel>.panel-b,.content>.recon-main-panel>.panel-b>.tbl-wrap{width:100%!important;min-width:0!important;box-sizing:border-box!important}.content>.recon-main-panel>.panel-b>.tbl-wrap{overflow-x:hidden!important;overscroll-behavior-x:none!important;background:#f8fbff}.content>.recon-main-panel table.data{display:table!important;width:100%!important;min-width:100%!important;max-width:100%!important;table-layout:fixed!important}.recon-main-panel table.data th,.recon-main-panel table.data td{padding:6px 3px!important;font-size:9px!important;white-space:normal!important;word-break:break-word!important}.recon-main-panel table.data th:nth-child(n+3):nth-child(-n+7),.recon-main-panel table.data td:nth-child(n+3):nth-child(-n+7){display:none!important}.recon-main-panel table.data th:nth-child(1),.recon-main-panel table.data td:nth-child(1){width:13%!important}.recon-main-panel table.data th:nth-child(2),.recon-main-panel table.data td:nth-child(2){width:25%!important}.recon-main-panel table.data th:nth-child(8),.recon-main-panel table.data td:nth-child(8),.recon-main-panel table.data th:nth-child(9),.recon-main-panel table.data td:nth-child(9){width:17%!important}.recon-main-panel table.data th:nth-child(10),.recon-main-panel table.data td:nth-child(10){width:14%!important}.recon-main-panel table.data th:nth-child(11),.recon-main-panel table.data td:nth-child(11){width:14%!important}.recon-main-panel table.data td:nth-child(10) .btn{display:block;width:100%;min-width:0;margin:2px 0;padding:4px 1px!important}.recon-main-panel .recon-check-cell .tag{display:inline-flex;max-width:100%;padding:3px 4px;white-space:normal;justify-content:center}}
/* 桌面对账明细：提货与收付款各自滚动，互不带动。 */
#modalBg>.modal.recon-detail-modal>.modal-b{display:flex!important;flex-direction:column!important;overflow:hidden!important}
#modalBg>.modal.recon-detail-modal .recon-tabs{position:relative!important;top:auto!important;flex:0 0 auto!important;padding:0!important;margin-top:0!important}
#modalBg>.modal.recon-detail-modal .recon-two-columns{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
#modalBg>.modal.recon-detail-modal .recon-two-columns>.panel{min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
#modalBg>.modal.recon-detail-modal .recon-two-columns>.panel>.panel-h{flex:0 0 auto!important}
#modalBg>.modal.recon-detail-modal .recon-two-columns>.panel>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
#modalBg>.modal.recon-detail-modal .recon-batch-bar{position:relative!important;bottom:auto!important;flex:0 0 auto!important;margin-bottom:0!important}
@media(max-width:820px){#modalBg>.modal.recon-detail-modal .recon-two-columns{overflow-y:auto!important;display:block!important}#modalBg>.modal.recon-detail-modal .recon-two-columns>.panel{min-height:280px!important;margin-bottom:8px!important}}
@media(max-width:820px){#modalBg>.modal.recon-detail-modal{width:100%!important;max-width:100%!important}.recon-detail-modal .recon-two-columns{grid-template-columns:1fr!important}}
/* 点价合同：高辨识度但不过度刺眼的工作区。 */
.point-price-tabs{display:inline-flex;gap:5px;margin:0 0 10px;padding:5px;border:1px solid #cbdcf3;border-radius:12px;background:linear-gradient(135deg,#eef6ff,#f8fbff);box-shadow:0 5px 16px rgba(30,64,175,.08)}
.point-price-tabs button{height:34px;padding:0 16px;border:0;border-radius:8px;background:transparent;color:#52657d;font-weight:700;cursor:pointer;transition:.18s;display:inline-flex;align-items:center;gap:7px}
.point-price-tabs button span{font-size:15px}.point-price-tabs button:hover{color:#164f91;background:#fff}.point-price-tabs button.active{color:#fff;background:linear-gradient(135deg,#1768c4,#0e4f98);box-shadow:0 5px 12px rgba(23,104,196,.25)}
.point-price-panel{border:1px solid #cddcf0!important;box-shadow:0 10px 28px rgba(30,64,175,.08)!important;overflow:hidden}.point-price-panel>.panel-h{background:linear-gradient(100deg,#f4f9ff,#edf5ff)!important;border-bottom:1px solid #cfddf0}.point-price-panel>.panel-h h2{color:#143f70}
.point-price-guide{display:flex;align-items:center;gap:14px;margin:0 0 12px;padding:10px 14px;border-radius:9px;border-left:4px solid #1f73d2;background:linear-gradient(90deg,#eaf4ff,#f7fbff);color:#52657d}.point-price-guide b{color:#15589f;white-space:nowrap}.point-price-guide span{font-size:12px}
.point-price-table{width:100%!important;table-layout:fixed!important;font-size:10.5px!important}.point-price-table th,.point-price-table td{padding:6px 3px!important;line-height:1.35}.point-price-table thead th{background:#eaf3ff!important;color:#315375!important;border-bottom:2px solid #bfd3eb!important}.point-price-table tbody tr{transition:.15s}.point-price-table tbody tr:hover{background:#eef7ff!important}.point-price-contract-no{font-weight:700;color:#174e89}.point-price-done{color:#0b8b61;font-weight:700}.point-price-left{color:#d15827;font-weight:700}.point-price-picked{color:#315a82;font-weight:700}.point-price-provisional{color:#8a5a16;font-weight:700}.point-price-party,.point-price-product{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:break-all!important;max-width:none!important;min-width:0!important}
.point-price-actions{display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;flex-wrap:wrap}.point-price-main-btn,.point-price-record-btn,.point-price-material-btn{border:0;border-radius:7px;height:27px;padding:0 8px;font-size:10.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:.16s}.point-price-main-btn{color:#fff;background:linear-gradient(135deg,#1976d2,#0c55a1);box-shadow:0 4px 10px rgba(25,118,210,.22)}.point-price-main-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(25,118,210,.3)}.point-price-record-btn{color:#176a52;background:#ecf8f3;border:1px solid #a8dac9}.point-price-record-btn:hover{background:#ddf3ea;border-color:#69b99e}.point-price-material-btn{color:#315a82;background:#f7fbff;border:1px solid #bcd0e6}.point-price-material-btn:hover{color:#124f8e;background:#e9f4ff;border-color:#7eacd8}
.point-price-dialog{display:flex;flex-direction:column;gap:9px}.point-price-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.point-price-overview>div{padding:11px 13px;border:1px solid #d4e1f0;border-radius:10px;background:linear-gradient(145deg,#f8fbff,#eef5fd)}.point-price-overview span{display:block;color:#687b90;font-size:11px;margin-bottom:5px}.point-price-overview b{font-size:17px;color:#173f6b}.point-price-overview b small{font-size:11px;font-weight:600;color:#68809b}.point-price-overview .remaining{border-color:#f0c6aa;background:linear-gradient(145deg,#fff9f3,#fff1e6)}.point-price-overview .remaining b{color:#c65320}
.point-price-context{padding:10px 12px;border-radius:10px;background:linear-gradient(115deg,#153f70,#1768b5);color:#fff}.point-price-context-top{display:flex;align-items:center;gap:8px}.point-price-context-top b{font-size:13px}.point-price-context-top span{margin-left:auto;padding:3px 7px;border-radius:99px;background:rgba(255,255,255,.14);font-size:9.5px}.point-price-context-line{display:flex;gap:12px;margin-top:6px;color:#d9eafb;font-size:10px;line-height:1.45}.point-price-context-line span{min-width:0;word-break:break-all}.point-price-context-line span:first-child{flex:1}.point-price-context-line span:last-child{flex:1.35}
.point-price-quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.point-price-quick-stat{padding:8px 9px;border:1px solid #dce6f0;border-radius:8px;background:#f8fbfe}.point-price-quick-stat span{display:block;color:#8190a1;font-size:9px}.point-price-quick-stat b{display:block;margin-top:3px;color:#24425f;font-size:11.5px}.point-price-quick-stat.focus{border-color:#efcfb5;background:#fff6ef}.point-price-quick-stat.focus b{color:#c14e24}
.point-price-entry-card{padding:11px 12px;border:1px solid #cdddf0;border-radius:10px;background:#fafdff;box-shadow:inset 0 1px 0 #fff}.point-price-entry-card .form-grid{gap:8px 10px}.point-price-entry-card .field{gap:3px}.point-price-entry-card .field>label:first-child{font-size:10px}.point-price-entry-card .field input{height:35px;padding:6px 9px;background:#fff}.point-price-upload{display:flex;align-items:center;gap:9px;min-height:43px;padding:6px 10px;border:1px dashed #7eacd8;border-radius:8px;background:#eef7ff;cursor:pointer;transition:.15s}.point-price-upload:hover{border-color:#166cc5;background:#e5f2ff}.point-price-upload-icon{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:7px;color:#fff;background:#1768c4;font-size:18px}.point-price-upload b,.point-price-upload small{display:block}.point-price-upload b{color:#174e89;font-size:10.5px}.point-price-upload small{margin-top:1px;color:#70839a;font-size:9.5px}.point-price-calc{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;padding:0;background:transparent}.point-price-calc span{padding:7px 8px;border-radius:7px;background:#e8f3ff;color:#617991;font-size:9px}.point-price-calc b{display:block;margin-top:2px;color:#124f8e;font-size:11.5px}.point-price-history-note{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:8px;background:#f3f6f9;color:#728397;font-size:9.5px}.point-price-history-title{display:flex;align-items:baseline;gap:9px;color:#173f6b;font-weight:700}.point-price-history-title small{font-weight:400;color:#8493a4}
.point-price-entry-fields{grid-template-columns:1.05fr 1fr 1fr!important}.point-price-entry-fields .point-price-upload-field{grid-column:1/-1}@media(max-width:620px){.point-price-entry-fields{grid-template-columns:1fr!important}.point-price-entry-fields .point-price-upload-field{grid-column:auto}}
#modalBg>.modal.point-price-entry-modal{width:min(520px,calc(100vw - 32px))!important;max-width:520px!important}.point-price-entry-modal .modal-h{padding:9px 13px}.point-price-entry-modal .modal-b{padding:10px 13px!important}.point-price-entry-modal .modal-f{padding:8px 13px!important}.point-price-entry-modal .modal-f .btn{min-width:80px;justify-content:center}
.point-price-material-head{margin:-2px 0 12px;padding:12px 14px;border-radius:11px;background:linear-gradient(120deg,#123f70,#1768b5);color:#fff}.point-price-material-head span,.point-price-material-head small{display:block;opacity:.78;font-size:11px}.point-price-material-head b{display:block;font-size:17px;margin:3px 0}.point-price-material-list{gap:8px!important}.point-price-material-row{border:1px solid #d4e0ee!important;border-radius:10px!important;background:#fbfdff!important;box-shadow:none!important}.point-price-material-row.featured{border-color:#83acd4!important;background:linear-gradient(100deg,#edf6ff,#f9fcff)!important}.point-price-material-row .contract-file-doc{border-radius:9px!important;background:#e7f1fc!important;color:#185a9d!important}.point-price-material-row .contract-file-doc.point-doc{background:#e8f7f0!important;color:#16805c!important}.point-price-material-row .contract-file-name small{margin-top:3px;color:#718398}
.point-price-record-tools{display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap}.point-price-table th:last-child,.point-price-table td:last-child{width:150px;min-width:150px}.point-price-delete-btn{height:27px;padding:0 10px;border:1px solid #efb7b2;border-radius:7px;background:#fff5f4;color:#c64038;font-family:inherit;font-size:10px;font-weight:700;cursor:pointer}.point-price-delete-btn:hover{border-color:#dc675e;background:#ffe9e7}
/* 点价合同改为完整信息卡：不再把十几项内容挤在一行或省略。 */
.point-price-contract-list{display:flex;flex-direction:column;gap:10px}.point-price-contract-card{overflow:hidden;border:1px solid #cadbec;border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(25,65,106,.055);transition:.16s}.point-price-contract-card:hover{border-color:#8eb9e2;box-shadow:0 9px 22px rgba(25,79,132,.1)}
.pp-card-head{display:flex;align-items:center;gap:9px;padding:9px 12px;border-bottom:1px solid #dce8f3;background:linear-gradient(95deg,#edf6ff,#f9fcff)}.pp-card-no{color:#143f70;font-size:12.5px;font-weight:800;letter-spacing:.1px}.pp-card-head-status{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.pp-card-deadline{color:#627a94;font-size:10px;white-space:nowrap}
.pp-card-main{display:grid;grid-template-columns:minmax(260px,1.25fr) minmax(430px,2fr) 128px;gap:14px;align-items:stretch;padding:11px 12px}.pp-card-info{display:grid;grid-template-columns:72px minmax(0,1fr);align-content:start;gap:6px 9px}.pp-card-info span{color:#7a8b9e;font-size:10px}.pp-card-info b{color:#263d57;font-size:11px;font-weight:650;line-height:1.45;white-space:normal;word-break:break-all;overflow:visible}.pp-card-info .pp-partner,.pp-card-info .pp-product{font-size:13px;font-weight:750;line-height:1.5}.pp-card-info .pp-partner{color:#263f5b}.pp-card-info .pp-product{color:#164f88}
.pp-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:6px}.pp-metric{display:flex;flex-direction:column;justify-content:center;min-height:50px;padding:7px 9px;border:1px solid #e0e8f1;border-radius:9px;background:#f8fbfe}.pp-metric span{color:#7b8b9d;font-size:9.5px}.pp-metric b{margin-top:3px;color:#263f5b;font-size:11.5px;white-space:normal;word-break:break-word}.pp-metric.provisional{background:#fff9ee;border-color:#efddb8}.pp-metric.provisional b{color:#8a5a16}.pp-metric.done{background:#f0faf6;border-color:#c9eadc}.pp-metric.done b{color:#087b58}.pp-metric.left{background:#fff5ef;border-color:#f0d0bc}.pp-metric.left b{color:#c14e24}
.pp-card-side{display:flex;flex-direction:column;justify-content:center;gap:7px;padding-left:13px;border-left:1px solid #e2eaf2}.pp-card-side .point-price-main-btn,.pp-card-side .point-price-record-btn{width:100%;height:34px;font-size:11px}.pp-card-progress{grid-column:1/-1;height:5px;overflow:hidden;border-radius:99px;background:#e8eef5}.pp-card-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1688ee,#13a879)}
@media(max-width:1050px){.pp-card-main{grid-template-columns:minmax(230px,1fr) minmax(360px,1.7fr) 116px}.pp-card-metrics{grid-template-columns:repeat(2,minmax(105px,1fr))}}
@media(max-width:760px){.pp-card-head{align-items:flex-start;flex-wrap:wrap}.pp-card-head-status{width:100%;margin-left:0;justify-content:flex-start}.pp-card-main{grid-template-columns:1fr;padding:10px}.pp-card-info{grid-template-columns:72px minmax(0,1fr)}.pp-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-card-side{padding:9px 0 0;border-left:0;border-top:1px solid #e2eaf2;flex-direction:row}.pp-card-side>*{flex:1}.pp-card-progress{grid-column:auto}}
@media(max-width:720px){.point-price-tabs{display:flex;width:100%}.point-price-tabs button{flex:1}.point-price-overview{grid-template-columns:repeat(2,1fr)}.point-price-guide{align-items:flex-start;flex-direction:column;gap:3px}.point-price-actions{flex-direction:column}.point-price-main-btn,.point-price-record-btn,.point-price-material-btn{width:100%}}
/* 确认打款：使用明确业务按钮，不再借用“确定 / 取消”。 */
#modalBg>.modal.payment-posting-modal{width:min(520px,calc(100vw - 32px))!important}.payment-posting-choice{display:flex;flex-direction:column;gap:12px}.payment-posting-amount{padding:16px;border-radius:12px;color:#fff;background:linear-gradient(120deg,#123f70,#1768b5);box-shadow:0 8px 20px rgba(23,104,181,.18)}.payment-posting-amount span{display:block;font-size:12px;opacity:.8}.payment-posting-amount b{display:block;margin-top:3px;font-size:25px}.payment-posting-info{display:grid;grid-template-columns:88px 1fr;gap:8px 10px;padding:13px;border:1px solid #d5e1ee;border-radius:10px;background:#f8fbff}.payment-posting-info span{color:#73849a;font-size:12px}.payment-posting-info b{color:#263f5b;font-size:12px;word-break:break-all}.payment-posting-tip{padding:10px 12px;border-left:4px solid #e6a23c;border-radius:7px;background:#fff8e8;color:#805816;font-size:12px;line-height:1.6}.payment-posting-modal .modal-f{gap:8px!important}.payment-posting-modal .payment-only-btn{color:#315a82;background:#f7fbff;border-color:#b9cde2}.payment-posting-modal .payment-post-btn{min-width:190px;background:linear-gradient(135deg,#1773cf,#0d559f)}
@media(max-width:600px){.payment-posting-modal .modal-f{display:grid!important;grid-template-columns:1fr!important}.payment-posting-modal .modal-f .btn{width:100%!important;justify-content:center}.payment-posting-modal .payment-post-btn{min-width:0}}
/* 发票匹配候选中的往来单位必须完整显示，禁止省略号截断。 */
.invoice-upload-match-row .invoice-match-party{min-width:190px;max-width:270px;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:break-all!important;line-height:1.35}
/* 月末结转中，后期开票冲回无票收入的负数记录醒目标红。 */
.data tbody tr.month-end-negative-row>td{background:#fff0f0!important;color:#c62828!important;border-top-color:#f3b7b7!important;border-bottom-color:#f3b7b7!important;font-weight:650}.data tbody tr.month-end-negative-row>td:first-child{border-left:4px solid #dc2626!important}.data tbody tr.month-end-negative-row:hover>td{background:#ffe4e4!important}
/* 采购/销售明细使用整屏工作区，把页面高度优先留给数据行。 */
body.detail-ledger-active{overflow:hidden}
body.detail-ledger-active .app,body.detail-ledger-active .main{height:100vh;min-height:0;overflow:hidden}
body.detail-ledger-active .topbar{padding:7px 20px}
body.detail-ledger-active .topbar h1{font-size:17px}
body.detail-ledger-active .page-tabs{min-height:35px;padding:3px 20px 0}
body.detail-ledger-active .page-tab{padding:6px 9px}
body.detail-ledger-active .content{display:flex;min-height:0;padding:8px 12px;overflow:hidden}
.detail-ledger-panel{display:flex;flex:1 1 auto;min-width:0;min-height:0;flex-direction:column;margin:0!important;overflow:hidden}
.detail-ledger-panel>.panel-h{flex:0 0 auto;min-height:38px;padding:6px 10px}
.detail-ledger-panel>.panel-h h2{font-size:13px}
.detail-ledger-panel>.panel-b{display:flex;flex:1 1 auto;min-height:0;padding:5px 7px;overflow:hidden}
.detail-ledger-scroll{flex:1 1 auto;min-height:0;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.detail-ledger-scroll .detail-summary{position:sticky;top:0;z-index:8;min-height:29px;margin:0 0 4px;padding:4px 8px;border-radius:6px;background:#edf6ff;font-size:10px;box-shadow:0 1px 0 #cbd5e1}
.detail-ledger-scroll .detail-ledger-table{border-collapse:separate!important;border-spacing:0}
.detail-ledger-scroll .detail-ledger-table thead th{position:sticky;top:33px;z-index:7;height:29px;padding:3px 2px!important;background:#f8fafc!important;box-shadow:0 1px 0 #cbd5e1}
.detail-ledger-scroll .detail-ledger-table tbody td{padding:3px 3px!important;line-height:1.22!important;vertical-align:middle}
.detail-ledger-scroll .detail-actions button{padding:3px 2px!important;min-height:22px}
.point-reminder-compact{margin:0 0 5px;border:1px solid #f1c06f;border-radius:7px;background:#fff9eb;color:#8a5310;overflow:hidden}
.point-reminder-compact>summary{display:flex;align-items:center;gap:9px;min-height:30px;padding:4px 9px;cursor:pointer;list-style:none;font-size:10px;font-weight:650}.point-reminder-compact>summary::-webkit-details-marker{display:none}.point-reminder-compact>summary:before{content:'◆';color:#e58a06;font-size:8px}.point-reminder-compact>summary .point-reminder-open{margin-left:auto;color:#1769b0;font-weight:500}.point-reminder-compact[open]>summary .point-reminder-open{font-size:0}.point-reminder-compact[open]>summary .point-reminder-open:after{content:'收起';font-size:10px}.point-reminder-compact .point-reminder-list{max-height:145px;overflow:auto;border-top:1px solid #f4d49b}.point-reminder-compact .data{font-size:9px}.point-reminder-compact .data th,.point-reminder-compact .data td{padding:3px 5px!important;height:24px}.point-reminder-compact .data thead th{position:sticky;top:0;z-index:2}
.settings-rule-body .taxonomy-column{grid-template-columns:1fr}.taxonomy-add-type-card{display:flex;align-items:center;justify-content:center;min-height:58px;width:100%;border:1.5px dashed #67a6dc;border-radius:9px;background:#f8fcff;color:#176fb9;font-family:inherit;font-size:12px;font-weight:750;cursor:pointer}.taxonomy-add-type-card:hover{border-style:solid;border-color:#2386df;background:#eaf5ff;color:#075fab}.taxonomy-add-type-card b{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:7px;border-radius:50%;background:#dceeff;font-size:17px;line-height:1}
.taxonomy-drag-item{position:relative;border-radius:10px;transition:box-shadow .16s ease}.taxonomy-drag-item.type-drop-target{box-shadow:0 0 0 3px rgba(22,132,232,.18)}.taxonomy-drag-item .taxonomy-rule-row{padding-right:125px}.taxonomy-split-button{position:absolute;z-index:3;top:7px;right:38px;height:24px;padding:0 8px;border:1px dashed #67a6dc;border-radius:7px;background:#fff;color:#176fb9;font-size:10px;font-weight:700;cursor:pointer}.taxonomy-split-button:hover{border-style:solid;background:#eaf5ff}.taxonomy-type-delete{position:absolute;z-index:3;top:7px;right:8px;display:grid;place-items:center;width:23px;height:23px;padding:0;border:1px solid #f0c7c7;border-radius:50%;background:#fff;color:#d94a4a;font-size:15px;line-height:1;cursor:pointer}.taxonomy-type-delete:hover{border-color:#df5656;background:#fff1f1}.taxonomy-attribute-chip{cursor:grab!important;user-select:none}.taxonomy-attribute-chip:before{content:'⋮⋮';color:#91a5b8;font-size:9px}.taxonomy-attribute-chip.dragging,.product-hierarchy-node.dragging{opacity:.42}.taxonomy-attribute-chip.label-drop-target,.product-hierarchy-node.label-drop-target{outline:2px solid #1684e8;outline-offset:2px}.product-hierarchy{display:flex;align-items:stretch;gap:0;margin:-1px 0 0;padding:10px 12px;border:1px solid #dce7f2;border-top-style:dashed;border-radius:0 0 9px 9px;background:#fbfdff;overflow-x:auto}.product-hierarchy-root{display:flex;align-items:center;min-width:128px;padding:9px 12px;border:1px solid #cbddec;border-radius:8px 0 0 8px;background:#eef7ff;color:#173f69;font-size:12px}.product-hierarchy-root b{font-size:13px}.product-hierarchy-forest{display:flex;flex:1;flex-direction:column;gap:7px;min-width:0}.product-hierarchy-branch{display:flex;align-items:stretch;min-width:max-content}.product-hierarchy-node{display:flex;align-items:center;gap:7px;min-width:145px;max-width:230px;padding:7px 8px;border:1px solid #d2e1ee;border-left:0;background:#fff;cursor:grab}.product-hierarchy-node b{overflow:hidden;color:#294d6e;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.product-hierarchy-level{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:34px;padding:2px 5px;border-radius:999px;background:#dceeff;color:#1769b0;font-size:9px;font-weight:700}.product-hierarchy-node-actions{display:flex;flex:none;gap:3px;margin-left:auto}.product-hierarchy-node-actions button{padding:2px 5px;border:1px solid #d6e3ef;border-radius:5px;background:#f8fbfe;color:#39709f;font-size:9px;cursor:pointer}.product-hierarchy-node-actions button:last-child{color:#c94444}.product-hierarchy-children{display:flex;flex-direction:column;justify-content:center;gap:5px;border-left:1px solid #d2e1ee}.product-hierarchy-empty{color:#8797a8;font-size:10.5px}
.taxonomy-rule-row.type-drop-target{box-shadow:inset 0 0 0 2px #1684e8;background:#eef7ff}.palm-taxonomy-branch.label-drop-target{border-color:#1684e8!important;background:#eaf5ff!important;box-shadow:inset 0 0 0 1px #1684e8}
.taxonomy-drag-item:has(.product-hierarchy) .taxonomy-rule-row{border-radius:9px}.taxonomy-drag-item .product-hierarchy{grid-column:2;min-width:0;margin:2px 0 0;padding:8px 0 0;border:0;border-top:1px dashed #d3e2ef;border-radius:0;background:transparent}
.product-hierarchy-draft{display:flex;align-items:center;gap:5px;min-width:210px;padding:6px 7px;border:1.5px dashed #1684e8;background:#f2f8ff}.product-hierarchy-draft.label-drop-target{background:#e1f1ff;box-shadow:0 0 0 2px rgba(22,132,232,.14)}.product-hierarchy-draft input{min-width:0;width:132px;height:26px;padding:3px 7px;border:1px solid #a9ccec;border-radius:5px;background:#fff;font-size:11px}.product-hierarchy-draft button{width:25px;height:25px;padding:0;border:1px solid #bfd5e8;border-radius:5px;background:#fff;color:#1769b0;cursor:pointer}.product-hierarchy-draft button:last-child{color:#bd3d3d}
.product-hierarchy-slot{display:flex;align-items:center;gap:7px;min-width:175px;min-height:34px;padding:6px 8px;border:1.5px dashed #9fc3e2;background:#f8fcff;color:#5a7893;cursor:pointer}.product-hierarchy-slot em{font-size:10px;font-style:normal;white-space:nowrap}.product-hierarchy-slot:hover,.product-hierarchy-slot.label-drop-target{border-color:#1684e8;background:#eaf5ff;color:#1769b0}
.product-level-board{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:7px;width:100%}.product-level-column{min-height:72px;padding:7px;border:1.5px dashed #a9c8e3;border-radius:7px;background:#f9fcff;cursor:pointer}.product-level-column:hover,.product-level-column.label-drop-target{border-color:#1684e8;background:#edf7ff}.product-level-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#1769b0;font-size:10px;font-weight:750}.product-level-head em{color:#88a0b5;font-size:9px;font-style:normal;font-weight:500}.product-level-items{display:flex;flex-wrap:wrap;gap:5px}.product-level-item{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 7px;border:1px solid #cfe1f1;border-radius:6px;background:#fff;color:#294d6e;cursor:grab;font-size:10.5px}.product-level-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-level-item button{padding:0;border:0;background:transparent;color:#bd3d3d;cursor:pointer}.product-level-item.dragging{opacity:.42}.product-level-item.label-drop-target{outline:2px solid #1684e8}.product-level-input{display:flex;gap:4px;width:100%}.product-level-input input{min-width:0;flex:1;height:27px;padding:3px 6px;border:1px solid #86b8e2;border-radius:5px;font-size:10.5px}.product-level-input button{width:26px;height:27px;padding:0;border:1px solid #bdd4e8;border-radius:5px;background:#fff;color:#1769b0;cursor:pointer}@media(max-width:900px){.product-level-board{grid-template-columns:1fr}.product-level-column{min-height:58px}}
/* Dense ledgers: sequence numbers are redundant; all business text remains visible. */
.contract-ledger-table th:first-child,.contract-ledger-table td:first-child,.detail-ledger-table .detail-seq{display:none!important}
.contract-ledger-table th,.contract-ledger-table td,.detail-ledger-table th,.detail-ledger-table td{font-size:8px!important}
.contract-ledger-table thead th,.detail-ledger-table thead th{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:keep-all!important}
.contract-ledger-table tbody td,.detail-ledger-table tbody td{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important}
.contract-ledger-table .col-date,.detail-ledger-table .detail-date{white-space:nowrap!important;word-break:normal!important}
.contract-ledger-table th,.contract-ledger-table td,.detail-ledger-table th,.detail-ledger-table td{padding:2px 2px!important;line-height:1.14!important}
.contract-ledger-table tbody tr,.detail-ledger-table tbody tr{height:auto!important}
/* 月末结转－库存：数字保持单行完整显示，库存表单独允许左右滑动。 */
body:not(.login-required) .content .month-end-view>.panel:last-child>.panel-b>.month-stock-wrap{display:block!important;width:100%!important;max-width:100%!important;overflow-x:scroll!important;overflow-y:auto!important;overscroll-behavior-x:contain!important;scrollbar-gutter:stable!important;-webkit-overflow-scrolling:touch!important}
body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table{display:table!important;width:5850px!important;min-width:5850px!important;max-width:5850px!important;table-layout:fixed!important;font-variant-numeric:tabular-nums}
body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table th,body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table td{min-width:0!important;max-width:none!important;height:32px!important;padding:6px 8px!important;font-size:10.5px!important;line-height:1.25!important;white-space:nowrap!important;word-break:normal!important;overflow:hidden!important;text-overflow:clip!important;overflow-wrap:normal!important;box-sizing:border-box!important}
.month-end-view .month-stock-wrap .month-stock-table th:first-child,.month-end-view .month-stock-wrap .month-stock-table td:first-child{position:sticky!important;left:0!important;z-index:4!important;min-width:76px!important;width:76px!important;border-right:2px solid #9fb4ca!important;background:#f8fafc!important}
.month-end-view .month-stock-wrap .month-stock-table thead th:first-child{z-index:8!important;background:#eaf2fb!important}
body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table th:nth-child(n+2),body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table td:nth-child(n+2){width:120px!important}
body:not(.login-required) .content .month-end-view .month-stock-wrap table.data.month-stock-table td.month-stock-number{min-width:120px!important;width:120px!important;max-width:120px!important;color:#263f59!important;font-size:11px!important;font-weight:600!important;letter-spacing:0!important;overflow:hidden!important;text-overflow:clip!important;white-space:nowrap!important}
.month-end-view .month-stock-table tr>:nth-child(6n+2),.month-end-view .month-stock-table tr>:nth-child(6n+3),.month-end-view .month-stock-table tr>:nth-child(6n+4){background-color:#f1f7fd!important}
.month-end-view .month-stock-table tr>:nth-child(6n+5),.month-end-view .month-stock-table tr>:nth-child(6n+6),.month-end-view .month-stock-table tr>:nth-child(6n+7){background-color:#fbfdff!important}
.month-end-view .month-book-controls{position:relative;display:block;min-width:104px;max-width:150px}
body:not(.login-required) .content .month-end-view .tbl-wrap table.data td.month-book-cell{position:relative;overflow:visible!important}
body:not(.login-required) .content .month-end-view .tbl-wrap table.data td.month-book-cell:has(.month-book-controls[open]){z-index:20}
.month-end-view .month-book-controls summary{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:25px;padding:3px 6px;border:1px solid transparent;border-radius:6px;color:#245579;font-size:11px;line-height:1.3;cursor:pointer;list-style:none;white-space:normal}
.month-end-view .month-book-controls summary::-webkit-details-marker{display:none}
.month-end-view .month-book-controls summary:hover,.month-end-view .month-book-controls[open] summary{border-color:#b8d6f1;background:#eff7ff}
.month-end-view .month-book-value{word-break:keep-all;overflow-wrap:anywhere}
.month-end-view .month-book-chevron{flex:none;color:#6b8aa5;font-size:11px}
.month-end-view .month-book-popover{position:absolute;z-index:30;right:0;top:calc(100% + 3px);width:210px;padding:10px;border:1px solid #c6d9eb;border-radius:9px;background:#fff;box-shadow:0 10px 30px rgba(23,61,101,.2);white-space:normal}
.month-end-view .month-book-popover label{display:block;margin-bottom:5px;color:#657b91;font-size:10px}
.month-end-view .month-book-inline{width:100%;height:32px;padding:3px 6px;border:1px solid #cbd9e8;border-radius:6px;background:#fff;color:#28445f;font-size:12px}
.month-end-view .month-book-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.month-end-view .month-book-actions button{padding:4px 7px;border:1px solid #d7e3ee;border-radius:5px;background:#f8fbff;color:#34536e;font-size:10px;cursor:pointer}
.month-end-view .month-book-actions button:hover{border-color:#65a9e9;background:#edf6ff}
.month-end-view .month-book-inline:focus{border-color:#4096ee;box-shadow:0 0 0 2px rgba(64,150,238,.12);outline:0}
.month-end-view .month-stock-table tr>:nth-child(3n+1){border-right:3px solid #c4d3e2!important}
.month-end-view .month-stock-table tbody tr:hover td{background-color:#e8f3ff!important}
.performance-page{display:flex;flex-direction:column;gap:10px;min-height:0}.performance-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border-radius:13px;background:linear-gradient(120deg,#133f6e,#176ca5 58%,#148786);color:#fff;box-shadow:0 8px 22px rgba(20,71,116,.17)}.performance-head h2{margin:0 0 3px;font-size:18px}.performance-head p{margin:0;color:#d9efff;font-size:11px}.performance-period{display:flex;align-items:center;gap:6px}.performance-period button,.performance-period input,.performance-period select{height:32px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:rgba(255,255,255,.13);color:#fff}.performance-period button{width:32px;font-size:20px;cursor:pointer}.performance-period input,.performance-period select{padding:0 9px;font:600 12px inherit}.performance-period select option{color:#20364e;background:#fff}.performance-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.performance-stat{position:relative;overflow:hidden;padding:12px 14px;border:1px solid #dce7f2;border-radius:11px;background:#fff}.performance-stat:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#2386df}.performance-stat.green:before{background:#16a36a}.performance-stat.gold:before{background:#d69a27}.performance-stat.purple:before{background:#7956c7}.performance-stat span{display:block;color:#74869a;font-size:10px}.performance-stat b{display:block;margin-top:4px;color:#173f69;font-size:20px}.performance-stat small{color:#91a0af;font-size:9px}.performance-table-panel{min-height:0;border:1px solid #d9e5f1;border-radius:12px;background:#fff;overflow:hidden}.performance-table-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid #e1eaf3;background:#f7fafe}.performance-table-head h3{margin:0;color:#173f69;font-size:14px}.performance-table-wrap{max-height:calc(100vh - 315px);overflow:auto}.performance-table{min-width:820px;font-size:11px}.performance-table th{position:sticky;top:0;z-index:2;background:#edf5fc!important;white-space:nowrap}.performance-table td{padding:7px 6px!important}.performance-table td.perf-oil{background:#fff5df;color:#a85d08;font-weight:700}.performance-table td.perf-dairy{background:#eaf6ff;color:#17699c;font-weight:700}.performance-rank{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#edf3f8;color:#5d7186;font-weight:800}.performance-rank.top{background:linear-gradient(135deg,#f7bd3f,#e9891c);color:#fff}.performance-person{display:flex;align-items:center;gap:7px}.performance-avatar{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e4f1ff;color:#1769b0;font-weight:800}.performance-person b{color:#173f69}.performance-bar{width:68px;height:5px;margin-top:4px;border-radius:999px;background:#e7eef5;overflow:hidden}.performance-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2b8ae2,#14a88e)}.performance-profit.negative{color:#dc2626}.performance-profit.positive{color:#0a9b58}.performance-empty{padding:55px 20px;text-align:center;color:#8493a5}.performance-detail-wrap{max-height:68vh;overflow:auto}.performance-detail-table{font-size:10.5px}.performance-detail-table th{position:sticky;top:0;z-index:2;background:#edf5fc!important}.performance-detail-table td{white-space:normal!important;word-break:break-word}.performance-detail-table tr.perf-detail-oil td{background:#fffaf0}.performance-detail-table tr.perf-detail-dairy td{background:#f2f9ff}@media(max-width:900px){.performance-head{align-items:flex-start;flex-direction:column}.performance-period{width:100%;flex-wrap:wrap}.performance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-table-wrap{max-height:none}.performance-stat b{font-size:17px}}
#modalBg>.modal.performance-detail-modal{width:min(1280px,calc(100vw - 36px))!important;max-width:1280px!important;height:min(760px,calc(100vh - 36px))!important;max-height:calc(100vh - 36px)!important}.performance-detail-modal .modal-b{padding:10px 12px!important;overflow:hidden!important}.performance-detail-modal .performance-detail-wrap{height:100%;max-height:none;overflow:auto}.performance-detail-modal .performance-detail-table th,.performance-detail-modal .performance-detail-table td{font-size:10.5px!important;padding:7px 5px!important}
#modalBg>.modal.performance-detail-modal .performance-detail-table{min-width:1420px!important;table-layout:fixed!important}.performance-detail-modal .performance-detail-table th:nth-child(1){width:42px}.performance-detail-modal .performance-detail-table th:nth-child(2){width:92px}.performance-detail-modal .performance-detail-table th:nth-child(3){width:112px}.performance-detail-modal .performance-detail-table th:nth-child(4){width:250px}.performance-detail-modal .performance-detail-table th:nth-child(5){width:220px}.performance-detail-modal .performance-detail-table th:nth-child(n+6){width:95px}.performance-detail-modal .performance-detail-table td:nth-child(4),.performance-detail-modal .performance-detail-table td:nth-child(5){white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important}
.performance-guide-scroll{max-height:62vh;overflow:auto}.performance-guide-table{width:100%;table-layout:fixed;font-size:11px}.performance-guide-table th,.performance-guide-table td{padding:7px 6px!important;white-space:normal!important;overflow-wrap:anywhere;vertical-align:top}.performance-guide-table th{position:sticky;top:0;z-index:2;background:#edf5fc!important}.performance-guide-table th:nth-child(1){width:18%}.performance-guide-table th:nth-child(2),.performance-guide-table th:nth-child(3){width:17%}.performance-guide-table th:nth-child(4){width:7%}.performance-guide-table th:nth-child(5){width:9%}.performance-guide-table th:nth-child(6){width:12%}.performance-guide-table th:nth-child(7){width:13%}.performance-guide-table th:nth-child(8){width:7%}.performance-guide-table input{max-width:100%}
.customer-profile-table th:nth-child(1){width:22%}.customer-profile-table th:nth-child(2){width:9%}.customer-profile-table th:nth-child(3){width:16%}.customer-profile-table th:nth-child(4){width:11%}.customer-profile-table th:nth-child(5){width:11%}.customer-profile-table th:nth-child(6){width:14%}.customer-profile-table th:nth-child(7){width:7%}.customer-profile-table th:nth-child(8){width:10%}
@media(max-width:720px){.customer-profile-table td:nth-child(6)::before{content:'业务维护人'}.customer-profile-table td:nth-child(7)::before{content:'星级'}.customer-profile-table td:nth-child(8)::before{content:'操作'}}
.pending-guide-table th:nth-child(1){width:11%}.pending-guide-table th:nth-child(2){width:18%}.pending-guide-table th:nth-child(3),.pending-guide-table th:nth-child(4){width:20%}.pending-guide-table th:nth-child(5){width:9%}.pending-guide-table th:nth-child(6){width:12%}.pending-guide-table th:nth-child(7){width:10%}
.performance-stat b{font-size:clamp(14px,1.3vw,20px);overflow-wrap:anywhere;line-height:1.25}.performance-table td.num,.performance-table th.num{white-space:nowrap}
.salary-page .salary-inline-cell{cursor:text;transition:background .15s}.salary-page .salary-inline-cell:hover{background:#eaf5ff!important;box-shadow:inset 0 0 0 1px #65a9e9}.salary-page .salary-inline-cell.saving{background:#fff7db!important}.salary-page .salary-inline-emphasis{font-weight:700}.salary-page .salary-inline-input{display:block;width:100%;min-width:0;height:24px;padding:2px;border:1px solid #2b88e6;border-radius:4px;background:#fff;color:#173f69;font:inherit;text-align:right;outline:0}.salary-page .salary-inline-cell:not(.num) .salary-inline-input{text-align:center}
.salary-page .payroll-sheet{scrollbar-width:none;scrollbar-gutter:auto!important}.salary-page .payroll-sheet::-webkit-scrollbar{width:0;height:0}
.registration-date-input{position:relative;display:flex;align-items:center;gap:4px;width:100%;min-height:36px;padding:4px 7px;border:1px solid #ccdbea;border-radius:7px;background:#fff;color:#5c7186;box-sizing:border-box}.registration-date-input:focus-within{border-color:#288bea;box-shadow:0 0 0 2px rgba(40,139,234,.12)}.registration-date-input>input:not([type=hidden]):not(.registration-date-native){width:30px;min-width:0;height:26px;padding:2px 3px;border:0!important;border-radius:4px;background:#f5f9fd;color:#203c59;font:600 12px/1.2 inherit;text-align:center;outline:0;box-shadow:none!important}.registration-date-input>input.registration-date-year{width:46px}.registration-date-input>span{font-size:10px;white-space:nowrap}.registration-date-picker-btn{flex:none;width:27px;height:27px;margin-left:auto;padding:0;border:0;border-radius:5px;background:#eaf4fe;color:#1778c8;font-size:14px;cursor:pointer}.registration-date-native{position:absolute!important;right:7px;bottom:4px;width:27px!important;height:27px!important;opacity:0;pointer-events:none}
@media(min-width:1350px){.salary-page .payroll-table{min-width:0!important;width:100%;font-size:9px}.salary-page .payroll-table th[style]{width:auto!important}.salary-page .payroll-table th,.salary-page .payroll-table td{padding:4px 2px}}
/* 月末结转－进项：双月份字段保持可编辑，但整体使用紧凑列宽。 */
.month-input-sheet .panel-h{min-height:42px!important;padding:6px 9px!important;gap:6px!important;flex-wrap:wrap!important}.month-input-sheet .panel-h h2{font-size:13px!important}.month-input-tools{gap:5px!important;flex-wrap:wrap!important;justify-content:flex-end!important}.month-input-tools .btn.sm{min-height:25px!important;padding:3px 7px!important;font-size:10px!important}.month-deduct-batch{gap:3px!important;padding:2px 3px 2px 7px!important;font-size:10px!important}.month-deduct-batch input{width:100px!important;height:24px!important;font-size:10px!important}.month-input-sheet .panel-b{padding:6px 7px 8px!important}.month-input-summary{gap:4px!important;margin-bottom:6px!important}.month-input-summary>div{padding:5px 7px!important;border-radius:7px!important}.month-input-summary span{font-size:9px!important}.month-input-summary b{font-size:11px!important}.month-input-sheet .data{font-size:10px!important}.month-input-sheet .data th,.month-input-sheet .data td{height:30px!important;padding:4px 4px!important}.month-input-sheet .data thead th{font-size:9.5px!important}.month-input-sheet .data th:nth-child(1){width:29px!important}.month-input-sheet .data th:nth-child(2){width:150px!important}.month-input-sheet .data th:nth-child(3),.month-input-sheet .data th:nth-child(4){width:126px!important}.month-input-sheet .data th:nth-child(5){width:94px!important}.month-input-sheet .data th:nth-child(6),.month-input-sheet .data th:nth-child(7),.month-input-sheet .data th:nth-child(8){width:92px!important}.month-input-sheet .deduct-month-edit{gap:2px!important;white-space:nowrap!important}.month-input-sheet .deduct-month-edit input{width:101px!important;height:24px!important;padding:2px 3px!important;font-size:9.5px!important}.month-input-sheet .deduct-month-edit button{width:19px!important;height:22px!important;border-radius:4px!important;font-size:13px!important;line-height:17px!important}.month-input-sheet .data td:last-child{font-size:9.5px!important;line-height:1.25!important}
.invoice-pane-loading{display:grid;place-items:center;min-height:220px;color:#6b7f94;font-size:13px;background:linear-gradient(100deg,#f8fbfe 25%,#eef5fb 38%,#f8fbfe 52%);background-size:220% 100%;animation:invoicePaneLoading 1.1s ease-in-out infinite}
@keyframes invoicePaneLoading{to{background-position:-220% 0}}
/* 合同量汇总：表头需要清晰可读，单独放大，不影响其他密集台账。 */
body:not(.login-required) .content #contractQtySummaryTable .contract-qty-summary-table thead th{font-size:12px!important;font-weight:750!important;line-height:1.35!important;padding:7px 4px!important;color:#244c73!important;overflow:visible!important;text-overflow:clip!important}
body:not(.login-required) .content #contractQtySummaryTable .contract-qty-summary-table thead .excel-filter-head{gap:4px!important;font-size:12px!important;font-weight:750!important}
body:not(.login-required) .content #contractQtySummaryTable .contract-qty-summary-table thead .excel-filter-btn{flex:none;font-size:10px!important}
/* 收付款明细：双击业务单元格原位修改。 */
.payment-ledger-table .payment-edit-cell{cursor:text;transition:background .15s,box-shadow .15s}
.payment-ledger-table .payment-edit-cell:hover{background:#eaf5ff!important;box-shadow:inset 0 0 0 1px #7db5e8}
.payment-ledger-table .payment-edit-cell.saving{background:#fff7d6!important}
.payment-ledger-table .payment-cell-input{display:block;width:100%;min-width:0;height:27px;padding:3px 5px;border:1px solid #2388e8;border-radius:5px;background:#fff;color:#203c59;font:inherit;box-sizing:border-box;outline:0}
.payment-ledger-table .num .payment-cell-input{text-align:right}
/* 收付款明细只保留右侧一个内容滚动条。 */
body.payment-ledger-active{overflow:hidden}
body.payment-ledger-active .app,body.payment-ledger-active .main{height:100vh;min-height:0;overflow:hidden}
body.payment-ledger-active .content{display:flex;min-height:0;padding:8px 12px;overflow:hidden}
.payment-ledger-panel{display:flex;flex:1 1 auto;min-width:0;min-height:0;flex-direction:column;margin:0!important;overflow:hidden}
.payment-ledger-panel>.panel-h{flex:0 0 auto}
.payment-ledger-panel>.panel-b{display:flex;flex:1 1 auto;min-height:0;padding:0!important;overflow:hidden}
.payment-ledger-scroll{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.payment-ledger-scroll .payment-ledger-table{border-collapse:separate!important;border-spacing:0}
.payment-ledger-scroll .payment-ledger-table thead th{position:sticky!important;top:0!important;z-index:7!important;background:#eaf3fc!important;box-shadow:0 1px 0 #bfd4e8}
/* 资料库只保留列表区域一个纵向滚动容器。 */
body:not(.login-required) .content>.party-profile-page{min-height:0!important;overflow:hidden!important}
body:not(.login-required) .content>.party-profile-page>.panel{min-height:0!important;overflow:hidden!important}
body:not(.login-required) .content>.party-profile-page .party-profile-table-wrap{height:calc(100% - 20px)!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important}
/* 发票管理上传记录只保留右侧一个内容滚动条。 */
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-upload-compact{display:flex!important;flex:1 1 auto!important;min-height:0!important;margin-bottom:0!important;flex-direction:column!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-upload-compact>.panel-h{flex:0 0 auto!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-upload-compact>.panel-b{display:flex!important;flex:1 1 auto!important;min-height:0!important;flex-direction:column!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-upload-compact>.panel-b>.tbl-wrap{flex:1 1 auto!important;min-height:0!important;height:auto!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
/* 资料库紧凑布局：切换、搜索、新增集中在一行，减少空白层级。 */
.party-profile-page{gap:6px!important}
.party-profile-tabs{padding:3px;background:#edf5fc;border:1px solid #d6e5f2;border-radius:8px;width:max-content;max-width:100%;gap:3px!important}
.party-profile-tabs .btn{min-width:108px!important;height:30px!important;padding:3px 12px!important;border:0!important;background:transparent!important;color:#4d6680!important;border-radius:6px!important}
.party-profile-tabs .btn.primary{background:#1679db!important;color:#fff!important;box-shadow:0 3px 8px rgba(22,121,219,.18)}
.party-profile-page>.panel{border-radius:9px!important;box-shadow:0 3px 12px rgba(31,76,116,.08)!important}
.party-profile-page .panel-h{padding:7px 10px!important;min-height:40px!important;background:#f7fbff!important}
.party-profile-page .panel-h h2{font-size:14px!important;margin:0!important;color:#204d77!important}
.party-profile-page .panel-h .tools{gap:5px!important}
.party-profile-page .panel-h .search{height:29px!important;min-width:220px!important;padding:4px 8px!important;font-size:11px!important}
.party-profile-page .panel-h .btn{height:29px!important;padding:3px 9px!important;font-size:11px!important}
.party-profile-page .party-profile-count{padding:4px 5px!important;font-size:10px!important}
.party-profile-page .party-profile-table th,.party-profile-page .party-profile-table td{padding:5px 6px!important;font-size:10.5px!important}
/* 发票管理：销售开票下方的可开票数量卡片固定高度，主表独立滚动。 */
#invoiceTaskPaneHost>.invoice-task-pane>.panel:first-child{display:flex!important;flex:1 1 auto!important;min-height:0!important;margin-bottom:6px!important;flex-direction:column!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:first-child>.panel-h{flex:0 0 auto!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:first-child>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel{flex:0 0 auto!important;max-height:220px!important;overflow:auto!important}
#invoiceTaskPaneHost{display:flex!important;flex:1 1 auto!important;min-height:0!important;width:100%!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane{height:100%!important;min-height:0!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.panel:first-child>.panel-b>.tbl-wrap{min-height:0!important;height:auto!important;max-height:none!important;overflow:auto!important;overscroll-behavior:contain!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel:first-child{display:block!important;flex:0 0 auto!important;height:auto!important;max-height:220px!important;overflow:auto!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel:first-child + .panel{display:flex!important;flex:1 1 auto!important;min-height:0!important;margin-bottom:0!important;flex-direction:column!important;overflow:hidden!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel:first-child + .panel>.panel-h{flex:0 0 auto!important}
#invoiceTaskPaneHost>.invoice-task-pane>.invoice-watch-panel:first-child + .panel>.panel-b{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
/* 其他费用录入查询弹窗固定尺寸，筛选时不随结果数量跳动 */
#ocSaleSearchOverlay>div{height:600px;min-height:600px;max-height:calc(100vh - 80px)}
#ocSaleSearchOverlay .tbl-wrap{height:390px;min-height:390px}
#ocSaleSearchOverlay table{table-layout:fixed}
