:root { --bg:#f4f6f8; --panel:#fff; --ink:#16202a; --muted:#667586; --line:#dfe5ec; --primary:#176b87; --primary-dark:#0f5368; --accent:#d9902f; --green:#2c8c5e; --red:#c74f4f; --shadow:0 18px 50px rgba(22,32,42,.08); }
* { box-sizing:border-box; } body { margin:0; font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; color:var(--ink); background:var(--bg); }
button,input,select,textarea { font:inherit; } button { cursor:pointer; }
.app { display:flex; min-height:100vh; } .sidebar { width:248px; background:#14212b; color:#fff; padding:22px 14px; display:flex; flex-direction:column; gap:22px; }
.brand { display:flex; align-items:center; gap:12px; padding:2px 6px 18px; border-bottom:1px solid rgba(255,255,255,.12); } .brand-mark { width:38px; height:38px; border-radius:8px; display:grid; place-items:center; background:var(--accent); font-weight:800; }
.brand strong,.brand span { display:block; } .brand span { margin-top:4px; color:#aeb8c3; font-size:12px; }
nav { display:grid; gap:8px; } .nav-item { border:0; border-radius:8px; padding:12px 14px; text-align:left; color:#cad4de; background:transparent; } .nav-item.active,.nav-item:hover { background:rgba(255,255,255,.1); color:#fff; }
.sidebar-foot { margin-top:auto; color:#aeb8c3; display:flex; justify-content:space-between; font-size:13px; }
.main { flex:1; min-width:0; padding:28px; } .topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:22px; }
h1,h2,p { margin:0; } h1 { font-size:28px; } .topbar p { margin-top:8px; color:var(--muted); }
.actions,.toolbar,.filters,.dialog-actions,.row-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; } .toolbar { justify-content:space-between; margin-bottom:14px; }
.primary,.ghost,.row-actions button { border:1px solid var(--line); border-radius:8px; min-height:38px; padding:0 14px; background:#fff; color:var(--ink); } .primary { background:var(--primary); border-color:var(--primary); color:#fff; } .primary:hover { background:var(--primary-dark); } .ghost:hover,.row-actions button:hover { border-color:var(--primary); color:var(--primary); }
select,input,textarea { border:1px solid var(--line); border-radius:8px; min-height:38px; padding:8px 10px; background:#fff; } textarea { width:100%; min-height:260px; resize:vertical; }
.view { display:none; } .view.active { display:block; }
.metrics { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:14px; margin-bottom:14px; } .metric,.panel { background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); } .metric { padding:18px; } .metric span { color:var(--muted); font-size:13px; } .metric strong { display:block; margin-top:10px; font-size:28px; }
.grid.two { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; } .panel { padding:18px; } .panel-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; } .panel-head h2 { font-size:18px; } .panel-head span,.muted-line { color:var(--muted); font-size:13px; }
.bar-row { display:grid; grid-template-columns:110px 1fr 56px; gap:12px; align-items:center; margin:14px 0; } .bar-track { height:12px; background:#edf1f5; border-radius:99px; overflow:hidden; } .bar-fill { height:100%; background:var(--primary); }
.ranking-item { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); } .ranking-item:last-child { border-bottom:0; }
.number-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .number-card { border:1px solid var(--line); border-radius:8px; padding:12px; background:#f8fafc; } .number-card span { color:var(--muted); font-size:13px; } .number-card strong { display:block; margin-top:6px; font-size:22px; }
.recent-list { display:grid; gap:8px; } .recent-item { border:1px solid var(--line); border-radius:8px; padding:10px; display:grid; gap:4px; background:#fff; } .recent-item span { font-size:13px; }
.table-wrap { overflow:auto; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); } table { width:100%; border-collapse:collapse; min-width:980px; } th,td { padding:12px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; } th { background:#f7f9fb; color:var(--muted); white-space:nowrap; }
.settings-grid { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:14px; } .settings-grid label { display:grid; gap:6px; color:var(--muted); }
.chip-list { display:flex; flex-wrap:wrap; gap:8px; } .chip { padding:5px 9px; border-radius:99px; background:#eef5f7; color:var(--primary); font-size:12px; }
dialog { border:0; border-radius:8px; padding:0; width:min(720px,calc(100vw - 28px)); box-shadow:0 30px 80px rgba(0,0,0,.28); } dialog::backdrop { background:rgba(13,24,34,.5); } #entryForm,#importForm { padding:22px; } .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0; } .form-grid label { display:grid; gap:6px; color:var(--muted); } .dialog-actions { justify-content:flex-end; margin-top:14px; }
@media (max-width:1100px) { .app { display:block; } .sidebar { width:100%; } nav { grid-template-columns:repeat(3,1fr); } .topbar,.grid.two { display:block; } .actions { margin-top:14px; } .metrics,.settings-grid,.number-summary,.form-grid { grid-template-columns:1fr; } }
.quick-product { display:grid; grid-template-columns:1.2fr 1.4fr 180px 160px auto; gap:10px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px; margin-bottom:14px; box-shadow:var(--shadow); }
.quick-product input,.quick-product select,.filters input,.filters select { min-width:150px; }
.header-import { display:grid; grid-template-columns:1fr auto; gap:10px; }
.chip.good { color:var(--green); background:#edf8f2; }
.tag { display:inline-block; margin-left:6px; padding:3px 7px; border-radius:99px; background:#eef5f7; color:var(--primary); font-size:12px; font-weight:700; }
.status { display:inline-flex; align-items:center; justify-content:center; min-width:58px; padding:4px 8px; border-radius:99px; font-size:12px; font-weight:700; }
.status.done { background:#edf8f2; color:var(--green); } .status.warn { background:#fff6e8; color:#a76612; } .status.bad { background:#fff0f0; color:var(--red); }
.ledger { display:grid; gap:8px; } .ledger-item { display:grid; grid-template-columns:160px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); } .ledger-item:last-child { border-bottom:0; }
.employee-grid { display:grid; grid-template-columns:repeat(3,minmax(260px,1fr)); gap:14px; } .employee-card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; box-shadow:var(--shadow); } .employee-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0; color:var(--muted); font-size:13px; }
.employee-work-grid { display:grid; grid-template-columns:repeat(2,minmax(420px,1fr)); gap:14px; }
.employee-work-card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; box-shadow:var(--shadow); }
.employee-work-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:10px; }
.task-line { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:9px 0; border-bottom:1px solid var(--line); }
.task-main { min-width:0; } .task-main strong { overflow-wrap:anywhere; }
.employee-inline-add { display:grid; grid-template-columns:minmax(0,1fr) 110px auto; gap:8px; margin-top:12px; }
@media (max-width:1280px) { .quick-product { grid-template-columns:1fr 1fr; } .employee-work-grid,.employee-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .main { padding:18px; } .metrics { grid-template-columns:1fr 1fr; } .quick-product,.employee-inline-add,.ledger-item,.task-line { grid-template-columns:1fr; } .employee-meta { grid-template-columns:1fr; } }
.status-select { border:1px solid var(--line); border-radius:99px; min-height:30px; padding:3px 26px 3px 10px; font-size:12px; font-weight:700; }
.status-select.done { background-color:#edf8f2; color:var(--green); }
.status-select.warn { background-color:#fff6e8; color:#a76612; }
.status-select.bad { background-color:#fff0f0; color:var(--red); }
.status-select {
  appearance:none;
  -webkit-appearance:none;
  width:auto;
  min-width:76px;
  border-radius:5px;
  padding:4px 26px 4px 10px;
  background-repeat:no-repeat;
  background-position:right 8px center;
  background-size:12px 12px;
  box-shadow:0 1px 2px rgba(15,35,48,.03);
}

.status-select.pending { color:#c87500; border-color:#f0cf9a; background-color:#fffaf2; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c87500' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.status-select.found,.status-select.listing,.status-select.progress { color:#2876bc; border-color:#b8d6f2; background-color:#f4f9ff; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%232876bc' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.status-select.done { color:#389365; border-color:#bfe1ce; background-color:#f4fbf7; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23389365' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.status-select.bad { color:#c74b4b; border-color:#efc2c2; background-color:#fff6f6; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c74b4b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.status-select.neutral { color:#77828d; border-color:#d6dde3; background-color:#f7f9fa; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2377828d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.status-select:hover { filter:brightness(.985); }
.status-select:focus { outline:2px solid rgba(40,118,188,.16); outline-offset:1px; }
.task-main span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.task-edit { grid-column:1 / -1; display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,280px) auto; gap:8px; align-items:center; padding:10px; background:#f8fafc; border:1px solid var(--line); border-radius:8px; }
.task-line.editing { align-items:start; }
.task-line.readonly { grid-template-columns:minmax(0,1fr) auto; }
.workflow-readonly { background:#fbfcfd; }
.workflow-status { display:inline-flex; align-items:center; min-height:30px; padding:3px 11px; border:1px solid var(--line); border-radius:5px; background:#f7f9fa; color:#6f7c87; font-size:12px; font-weight:700; white-space:nowrap; }
.workflow-status.warn,.workflow-status.pending { color:#a76612; border-color:#f0cf9a; background:#fffaf2; }
.workflow-status.progress,.workflow-status.found,.workflow-status.listing { color:#2876bc; border-color:#b8d6f2; background:#f4f9ff; }
.workflow-status.done { color:#389365; border-color:#bfe1ce; background:#f4fbf7; }
.workflow-status.bad { color:#c74b4b; border-color:#efc2c2; background:#fff6f6; }
@media (max-width:760px) { .task-edit { grid-template-columns:1fr; } }
.product-table-tools { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.table-wrap { max-height:72vh; overflow:auto; }
table { table-layout:fixed; min-width:2600px; }
th { position:sticky; top:0; z-index:2; height:44px; }
th,td { padding:10px 12px; }
tbody tr { border-bottom:10px solid #f4f6f8; }
tbody td { background:#fff; }
.col-xs { width:92px; }
.col-sm { width:130px; }
.col-md { width:170px; }
.col-link { width:180px; }
.col-img { width:132px; }
.col-note { width:230px; }
.col-price { width:210px; }
.col-status { width:118px; }
.col-employee { width:132px; }
.col-actions { width:190px; }
.editable-cell { min-height:34px; max-height:92px; overflow:auto; padding:6px 7px; border:1px solid transparent; border-radius:6px; white-space:pre-wrap; overflow-wrap:anywhere; }
.price-cell { min-height:44px; max-height:none; overflow:visible; line-height:1.55; }
.product-status-select { width:100%; min-width:0; height:34px; padding:0 28px 0 9px; border:1px solid var(--line); border-radius:6px; background:#fff; font-weight:600; }
.product-status-select.pending { color:#c87500; border-color:#f0cf9a; background-color:#fffaf2; }
.product-status-select.found,.product-status-select.listing,.product-status-select.progress { color:#2876bc; border-color:#b8d6f2; background-color:#f4f9ff; }
.product-status-select.done { color:#389365; border-color:#bfe1ce; background-color:#f4fbf7; }
.product-status-select.bad { color:#c74b4b; border-color:#efc2c2; background-color:#fff6f6; }
.product-status-select.neutral { color:#77828d; border-color:#d6dde3; background-color:#f7f9fa; }
.employee-link-select { width:100%; min-width:0; height:34px; padding:0 28px 0 9px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }
.category-select { width:100%; min-width:0; height:34px; padding:0 28px 0 9px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }
.product-pagination { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 4px; color:var(--muted); font-size:13px; }
.pagination-actions { display:flex; align-items:center; gap:8px; }
.pagination-actions button { min-height:34px; padding:0 12px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); cursor:pointer; }
.pagination-actions button:disabled { opacity:.45; cursor:not-allowed; }
.pagination-actions strong { min-width:64px; text-align:center; color:var(--ink); }
.editable-cell:hover,.editable-cell:focus { border-color:var(--primary); background:#f8fbfc; outline:none; }
.link-cell { display:grid; grid-template-columns:auto auto; gap:6px; align-items:center; }
.link-cell .inline-input { grid-column:1 / -1; width:100%; min-width:0; height:32px; min-height:32px; font-size:12px; color:var(--muted); }
.link-pill,.mini-btn,.mini-upload { display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:0 9px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--primary); font-size:12px; text-decoration:none; }
.mini-upload { cursor:pointer; }
.mini-upload input { display:none; }
.image-cell { display:grid; gap:7px; justify-items:start; padding:5px; border:1px dashed transparent; border-radius:7px; cursor:pointer; }
.image-cell:hover,.image-cell:focus { border-color:var(--primary); background:#f8fbfc; outline:none; }
.paste-hint { color:var(--primary); font-size:12px; white-space:nowrap; }
.product-thumb { width:82px; height:82px; object-fit:cover; border:1px solid var(--line); border-radius:8px; background:#f7f9fb; }
.filters { align-items:center; }
@media (max-width:760px) { table { min-width:1800px; } .col-note { width:180px; } .col-price { width:190px; } }
.product-thumb { cursor:zoom-in; transition:transform .16s ease, box-shadow .16s ease; }
.product-thumb:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(15,35,48,.16); }
.image-preview-dialog { width:min(980px,calc(100vw - 32px)); max-width:none; overflow:hidden; }
.image-preview-shell { display:grid; grid-template-rows:auto minmax(280px,1fr) auto; max-height:calc(100vh - 44px); background:#fff; }
.image-preview-head,.image-preview-foot { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px; }
.image-preview-head { border-bottom:1px solid var(--line); }
.image-preview-head h2 { font-size:18px; }
.image-preview-foot { border-top:1px solid var(--line); }
.image-preview-foot .dialog-actions { flex-wrap:nowrap; margin:0; }
.preview-close { width:36px; height:36px; padding:0; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--muted); font-size:24px; line-height:1; cursor:pointer; }
.preview-close:hover { border-color:var(--primary); color:var(--primary); }
.image-preview-stage { display:grid; place-items:center; min-height:420px; padding:20px; overflow:auto; background:#f2f5f7; }
.image-preview-stage img { display:block; max-width:100%; max-height:calc(100vh - 210px); object-fit:contain; box-shadow:0 12px 32px rgba(15,35,48,.16); }
.search-1688-button { background:#ff5a00; border-color:#ff5a00; }
.search-1688-button:hover { background:#e64f00; border-color:#e64f00; }
@media (max-width:760px) { .image-preview-head,.image-preview-foot { align-items:flex-start; } .image-preview-foot { display:grid; } .image-preview-stage { min-height:300px; } }
@media (max-width:760px) { .product-pagination { align-items:flex-start; flex-direction:column; } }

/* UI direction 1: compact operations workspace */
:root {
  --bg:#f3f5f7;
  --panel:#ffffff;
  --ink:#18222c;
  --muted:#677481;
  --line:#dce2e7;
  --primary:#146b78;
  --primary-dark:#0d5662;
  --accent:#e99a2d;
  --green:#21835c;
  --red:#c94747;
  --shadow:0 1px 2px rgba(17,31,44,.04),0 8px 24px rgba(17,31,44,.045);
}
body { background:var(--bg); font-size:14px; }
.app { min-height:100vh; }
.sidebar { position:sticky; top:0; width:232px; height:100vh; padding:18px 12px 14px; gap:18px; background:#13242e; box-shadow:4px 0 18px rgba(13,30,40,.08); }
.brand { min-height:58px; padding:0 8px 16px; gap:11px; }
.brand-mark { width:36px; height:36px; border-radius:6px; background:#e99a2d; box-shadow:0 4px 12px rgba(233,154,45,.2); }
.brand strong { font-size:15px; }
.brand span { color:#9eb0bb; line-height:1.4; }
nav { gap:4px; }
.nav-item { position:relative; min-height:42px; padding:0 14px; border-radius:6px; font-weight:600; color:#bdcbd3; }
.nav-item::before { content:""; position:absolute; left:0; top:10px; bottom:10px; width:3px; border-radius:2px; background:transparent; }
.nav-item.active { background:#203640; color:#fff; }
.nav-item.active::before { background:#e99a2d; }
.nav-item:hover { background:#1b303a; }
.sidebar-foot { padding:12px 6px 0; border-top:1px solid rgba(255,255,255,.09); color:#91a7b3; }
.main { padding:24px 28px 30px; }
.topbar { align-items:center; min-height:64px; margin-bottom:18px; }
h1 { font-size:25px; line-height:1.25; letter-spacing:0; }
.topbar p { max-width:780px; margin-top:5px; font-size:13px; line-height:1.55; }
.actions,.toolbar,.filters,.dialog-actions,.row-actions { gap:8px; }
.primary,.ghost,.row-actions button { min-height:36px; padding:0 13px; border-radius:6px; font-weight:600; box-shadow:none; }
.primary { box-shadow:0 2px 7px rgba(20,107,120,.14); }
.ghost { background:#fff; }
select,input,textarea { min-height:36px; padding:7px 10px; border-radius:6px; outline:none; transition:border-color .14s ease,box-shadow .14s ease; }
select:focus,input:focus,textarea:focus { border-color:#62a4ad; box-shadow:0 0 0 3px rgba(20,107,120,.1); }
.metrics { gap:12px; margin-bottom:12px; }
.metric,.panel { border-color:#e0e5e9; border-radius:7px; box-shadow:var(--shadow); }
.metric { position:relative; min-height:104px; padding:17px 18px; overflow:hidden; }
.metric::after { content:""; position:absolute; left:0; top:16px; bottom:16px; width:3px; background:var(--primary); }
.metric:nth-child(2)::after { background:#e99a2d; }
.metric:nth-child(3)::after { background:#21835c; }
.metric:nth-child(4)::after { background:#758492; }
.metric span { font-size:12px; font-weight:600; }
.metric strong { margin-top:8px; font-size:26px; }
.grid.two { gap:12px; margin-bottom:12px; }
.panel { padding:17px 18px; }
.panel-head { margin-bottom:13px; padding-bottom:11px; border-bottom:1px solid #edf0f2; }
.panel-head h2 { font-size:16px; }
.bar-row { margin:12px 0; }
.bar-track { height:8px; border-radius:3px; }
.bar-fill { border-radius:3px; }
.ranking-item { padding:10px 2px; }
.recent-item { padding:10px 12px; border-radius:6px; box-shadow:none; }
.quick-product { grid-template-columns:minmax(190px,1.1fr) minmax(260px,1.5fr) 150px 150px 150px auto; gap:8px; padding:10px; margin-bottom:10px; border-radius:7px; box-shadow:var(--shadow); }
.toolbar { min-height:46px; margin-bottom:10px; padding:7px 10px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.filters { flex:1; flex-wrap:nowrap; min-width:0; }
.filters input { flex:1 1 280px; max-width:420px; }
.filters select { flex:0 1 170px; }
.table-wrap { max-height:calc(100vh - 244px); border-radius:7px; border-color:#d8dfe4; box-shadow:var(--shadow); }
table { min-width:2600px; }
th { top:0; z-index:3; height:42px; padding:9px 11px; background:#edf1f4; color:#4f5f6d; border-bottom:1px solid #cfd8df; font-size:12px; font-weight:700; }
td { padding:8px 11px; border-bottom:1px solid #e5e9ec; color:#26333e; }
tbody tr { border-bottom:0; }
tbody tr:hover td { background:#f7fafb; }
tbody td { background:#fff; }
.editable-cell { min-height:32px; max-height:86px; padding:5px 6px; border-radius:5px; }
.price-cell { line-height:1.45; }
.product-status-select,.employee-link-select,.category-select { height:32px; min-height:32px; border-radius:5px; font-size:13px; }
.status-select { border-radius:5px; }
.product-status-select.done { border-color:#b9dfcd; }
.product-status-select.warn { border-color:#ebd4aa; }
.product-status-select.bad { border-color:#ecc2c2; }
.link-cell { grid-template-columns:1fr 1fr; }
.link-pill,.mini-btn,.mini-upload { min-height:27px; border-radius:5px; }
.link-cell .inline-input { height:30px; min-height:30px; border-radius:5px; }
.image-cell { gap:5px; border-radius:5px; }
.product-thumb { width:76px; height:76px; border-radius:6px; }
.paste-hint { color:#667481; font-size:11px; }
.row-actions { flex-wrap:nowrap; }
.row-actions button { min-height:30px; padding:0 9px; font-size:12px; font-weight:500; }
.product-pagination { min-height:48px; padding:9px 10px; margin-top:8px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.pagination-actions button { min-height:32px; border-radius:5px; }
.employee-card,.employee-work-card { border-radius:7px; box-shadow:var(--shadow); }
.task-line { min-height:50px; }
dialog { border-radius:7px; }
.image-preview-stage { background:#eef1f3; }
@media (max-width:1280px) {
  .main { padding:20px; }
  .quick-product { grid-template-columns:1fr 1fr; }
  .filters { flex-wrap:wrap; }
  .table-wrap { max-height:calc(100vh - 290px); }
}
@media (max-width:1100px) {
  .sidebar { position:relative; width:100%; height:auto; }
  nav { grid-template-columns:repeat(5,minmax(120px,1fr)); }
  .sidebar-foot { display:none; }
}
@media (max-width:760px) {
  .main { padding:14px; }
  .topbar { align-items:flex-start; }
  nav { display:flex; overflow-x:auto; }
  .nav-item { flex:0 0 auto; }
  .actions { display:grid; grid-template-columns:repeat(3,1fr); width:100%; }
  .metrics { grid-template-columns:1fr 1fr; }
  .toolbar,.filters { display:grid; grid-template-columns:1fr; }
  .filters input,.filters select { width:100%; max-width:none; }
  .table-wrap { max-height:65vh; }
}
/* Compact structured price cells */
.col-price-summary { width:220px; }
.price-summary-cell {
  min-height:68px;
  max-height:none;
  overflow:visible;
  padding:7px 9px;
  white-space:pre-line;
  line-height:1.55;
  color:#26343e;
  background:#f8fafb;
  border-color:#e4e9ec;
  font-variant-numeric:tabular-nums;
}
.price-summary-cell:hover,.price-summary-cell:focus { background:#fff; }
/* Product table top scrollbar */
.table-top-scroll {
  height:15px;
  overflow-x:scroll;
  overflow-y:hidden;
  border:1px solid #d8dfe4;
  border-bottom:0;
  border-radius:7px 7px 0 0;
  background:#edf1f4;
}
.table-top-scroll[hidden] { display:none; }
.table-top-scroll > div { height:1px; }
.table-top-scroll::-webkit-scrollbar { height:12px; }
.table-top-scroll::-webkit-scrollbar-track { background:#e5e9ec; }
.table-top-scroll::-webkit-scrollbar-thumb { min-width:80px; border:2px solid #e5e9ec; border-radius:6px; background:#8d979f; }
.table-top-scroll::-webkit-scrollbar-thumb:hover { background:#66737c; }
#productTableWrap { border-radius:0 0 7px 7px; }
#productTableWrap::-webkit-scrollbar:horizontal { height:0; }
/* Contain long cell content */
tbody td { min-width:0; overflow:hidden; overflow-wrap:anywhere; word-break:break-word; }
.editable-cell {
  width:100%;
  min-width:0;
  max-width:100%;
  max-height:92px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.48;
}
.price-cell {
  min-height:34px;
  max-height:92px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.price-summary-cell {
  min-height:68px;
  max-height:none;
  overflow:visible;
  white-space:pre-line;
  word-break:normal;
}
.link-cell,.image-cell { min-width:0; max-width:100%; overflow:hidden; }
.link-cell .inline-input { text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
/* Full category labels */
.col-index { width:56px; min-width:56px; text-align:center; color:#71808d; font-variant-numeric:tabular-nums; }
.col-category { width:178px; }
.col-category .category-select { min-width:0; width:100%; padding-right:30px; }
/* Authentication and audit */
[hidden] { display:none !important; }
body.auth-locked .app { visibility:hidden; }
.login-screen { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; background:#eef1f3; }
.login-card { width:min(390px,100%); display:grid; gap:16px; padding:28px; border:1px solid #d7dfe4; border-radius:8px; background:#fff; box-shadow:0 20px 55px rgba(18,36,46,.14); }
.login-brand { display:flex; align-items:center; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.login-brand strong,.login-brand span { display:block; }
.login-brand strong { font-size:18px; }
.login-brand span { margin-top:4px; color:var(--muted); font-size:13px; }
.login-card label { display:grid; gap:7px; color:#4d5c68; font-weight:600; }
.login-card input { width:100%; min-height:44px; }
.login-card .primary { min-height:44px; }
.login-error { min-height:20px; color:var(--red); font-size:13px; }
.current-user { display:inline-flex; align-items:center; min-height:36px; padding:0 11px; border:1px solid var(--line); border-radius:6px; background:#fff; color:#45545f; font-size:12px; font-weight:700; }
.full-field { grid-column:1 / -1; }
.account-grid { display:grid; grid-template-columns:repeat(3,minmax(250px,1fr)); gap:12px; }
.account-card { display:grid; gap:14px; padding:16px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.account-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.account-head strong,.account-head span { display:block; }
.account-head strong { font-size:16px; }
.account-head div > span { margin-top:4px; color:var(--muted); font-size:13px; }
.account-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:12px; border-top:1px solid #edf0f2; color:var(--muted); font-size:12px; }
.audit-list { overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.audit-row { display:grid; grid-template-columns:170px 170px 150px minmax(300px,1fr); gap:12px; align-items:center; min-height:52px; padding:9px 14px; border-bottom:1px solid #e7ebee; }
.audit-row:last-child { border-bottom:0; }
.audit-row > span,.audit-row time { min-width:0; overflow-wrap:anywhere; }
.audit-row span strong,.audit-row span small { display:block; }
.audit-row span small { margin-top:3px; color:var(--muted); }
.audit-module { color:var(--ink); font-weight:700; }
.audit-detail { display:block; line-height:1.5; }
.audit-header { min-height:42px; background:#edf1f4; color:#50606d; font-size:12px; font-weight:700; }
.audit-empty { padding:24px; }
@media (max-width:1100px) { .account-grid { grid-template-columns:1fr 1fr; } .audit-list { overflow-x:auto; } .audit-row { min-width:900px; } }
@media (max-width:760px) { .account-grid { grid-template-columns:1fr; } .current-user { grid-column:1 / -1; } .full-field { grid-column:auto; } }
.employee-card { display:flex; flex-direction:column; min-height:176px; }
.employee-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.employee-card-head > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.employee-card-head h3 { margin:0; font-size:17px; }
.employee-card-head .tag { margin-left:0; }
.employee-card-head > div > span:not(.tag) { color:var(--muted); font-size:12px; }
.employee-account { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0 12px; padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.employee-account > div { display:grid; gap:4px; min-width:0; }
.employee-account strong { overflow-wrap:anywhere; font-size:14px; }
.employee-account span { color:var(--muted); font-size:12px; }
.employee-account button,.employee-actions button { min-height:30px; white-space:nowrap; }
.employee-account-empty { color:var(--muted); }
.employee-actions { margin-top:auto; }
.unbound-account-card { border-style:dashed; }
.sanyu-mark { color:#fff; font-family:Arial,Helvetica,sans-serif; font-size:15px; font-weight:900; letter-spacing:0; line-height:1; }
.brand strong,.login-brand strong { letter-spacing:0; }
.dashboard-period-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; padding:12px 14px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 5px 18px rgba(22,32,42,.04); }
.dashboard-period-toolbar > div:first-child { display:grid; gap:3px; }
.dashboard-period-toolbar strong { font-size:14px; }
.dashboard-period-toolbar span { color:var(--muted); font-size:12px; }
.dashboard-period-controls { display:flex; align-items:center; gap:10px; }
.dashboard-period-controls input { min-height:34px; height:34px; border-radius:5px; }
.period-segments { display:flex; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#f7f9fa; }
.period-segments button { width:44px; height:32px; padding:0; border:0; border-right:1px solid var(--line); background:transparent; color:var(--muted); font-weight:700; }
.period-segments button:last-child { border-right:0; }
.period-segments button.active { background:var(--primary); color:#fff; }
.salesperson-panel { margin-bottom:14px; }
.salesperson-summary { overflow-x:auto; }
.salesperson-row { display:grid; grid-template-columns:minmax(140px,1.5fr) repeat(5,minmax(82px,1fr)); min-width:680px; border-bottom:1px solid var(--line); }
.salesperson-row:last-child { border-bottom:0; }
.salesperson-row > * { padding:10px 12px; text-align:center; font-variant-numeric:tabular-nums; }
.salesperson-row > :first-child { text-align:left; }
.salesperson-head { background:#f5f7f9; color:var(--muted); font-size:12px; font-weight:700; }
@media (max-width:760px) { .dashboard-period-toolbar { align-items:flex-start; flex-direction:column; } .dashboard-period-controls { width:100%; justify-content:space-between; } }
#productBody .col-index { color:#40515f; font-weight:700; }
.audit-target { color:var(--primary); font-weight:700; white-space:normal; overflow-wrap:anywhere; }
.audit-row > span:last-child { min-width:0; line-height:1.55; overflow-wrap:anywhere; word-break:break-word; }
/* Keep the status chevron singular; product background shorthands otherwise repeat it. */
.product-status-select { background-repeat:no-repeat; background-position:right 9px center; background-size:12px 12px; }
.product-status-select.pending,.product-status-select.found,.product-status-select.listing,.product-status-select.progress,.product-status-select.done,.product-status-select.bad,.product-status-select.neutral { background-repeat:no-repeat; background-position:right 9px center; background-size:12px 12px; }
.quick-image-input { display:flex; align-items:center; gap:9px; min-width:190px; min-height:38px; padding:4px 6px 4px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--muted); outline:none; }
.quick-image-input:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(23,107,135,.12); }
.quick-image-input.has-image { color:var(--ink); }
.quick-image-input img { width:32px; height:32px; flex:0 0 32px; border-radius:4px; object-fit:cover; }
.quick-image-input > span { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.quick-image-choose { display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:0 9px; border:1px solid var(--line); border-radius:5px; color:var(--primary); background:#fff; font-size:12px; cursor:pointer; white-space:nowrap; }
.quick-image-choose:hover { border-color:var(--primary); }
.quick-image-choose input { display:none; }
/* Spreadsheet-style product grid */
#productTableWrap table { border-collapse:separate; border-spacing:0; }
#productTableWrap th,#productTableWrap td { border-right:1px solid #dfe5e9; border-bottom:1px solid #dfe5e9; }
#productTableWrap th:last-child,#productTableWrap td:last-child { border-right:0; }
#productTableWrap tbody tr:last-child td { border-bottom:0; }
#productTableWrap tbody tr:hover td { background-color:#f8fbfc; }
.toolbar-actions { display:flex; align-items:center; gap:8px; flex-wrap:nowrap; }
.toolbar-actions button { white-space:nowrap; }
@media (max-width:760px) { .toolbar-actions { width:100%; } .toolbar-actions button { flex:1; } }
.workflow-empty { grid-column:1 / -1; padding:20px; }

.dispatch-compose { display:grid; gap:11px; margin-bottom:12px; padding:14px 16px; border:1px solid #cfe0e5; border-radius:12px; background:linear-gradient(135deg,#fff 0%,#f6fbfc 100%); box-shadow:var(--shadow); }
.dispatch-compose-head,.dispatch-compose-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.dispatch-compose-head > div { display:grid; gap:4px; }
.dispatch-compose-head strong { color:var(--ink); font-size:18px; }
.dispatch-compose-head span,.dispatch-compose-footer > span { color:var(--muted); font-size:12px; }
.dispatch-qq-hint { padding:7px 10px; border-radius:99px; color:#1a7380 !important; background:#e7f7f8; white-space:nowrap; }
.dispatch-form-grid { display:grid; grid-template-columns:minmax(250px,1.6fr) minmax(130px,.5fr) minmax(110px,.35fr); gap:8px 10px; }
.dispatch-field { display:grid; align-content:start; gap:4px; min-width:0; }
.dispatch-field-wide { grid-column:span 1; }
.dispatch-field > span { color:#52616d; font-size:12px; font-weight:700; }
.dispatch-field textarea,.dispatch-field input,.dispatch-field select { width:100%; min-height:34px; border:1px solid #cbdde2; border-radius:7px; background:#fff; padding:6px 9px; color:var(--text); font:inherit; line-height:1.35; }
.dispatch-field textarea { min-height:64px; resize:vertical; line-height:1.4; }
.dispatch-field:has(#dispatchTitle),.dispatch-field:has(#dispatchContent) { grid-column:1 / -1; }
.dispatch-field:has(#dispatchRemark) { grid-column:1 / -1; }
.dispatch-compose-footer { padding-top:0; }
.dispatch-assignee-picker { position:relative; min-width:0; }
.dispatch-assignee-trigger { width:100%; min-height:34px; padding:6px 32px 6px 9px; border:1px solid #cbdde2; border-radius:7px; background:#fff; color:var(--text); text-align:left; cursor:pointer; position:relative; line-height:1.35; }
.dispatch-assignee-trigger::after { content:"⌄"; position:absolute; right:10px; top:50%; transform:translateY(-55%); color:var(--muted); font-size:16px; }
.dispatch-assignee-trigger.has-selection { border-color:var(--accent); color:var(--accent-dark); }
.dispatch-assignee-menu { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 5px); max-height:240px; overflow:auto; padding:5px; border:1px solid var(--line); border-radius:6px; background:#fff; box-shadow:0 8px 20px rgba(20,55,70,.18); }
.dispatch-assignee-option { display:flex; align-items:center; gap:8px; min-height:34px; padding:6px 8px; border-radius:4px; cursor:pointer; }
.dispatch-assignee-option:hover { background:#f1f7f8; }
.dispatch-assignee-option input { width:16px; height:16px; accent-color:var(--accent); }
.dispatch-assignee-option b { margin-left:auto; color:var(--accent); opacity:0; }
.dispatch-assignee-option input:checked + span { font-weight:600; }
.dispatch-assignee-option input:checked ~ b { opacity:1; }
.dispatch-assignee-empty { display:block; padding:10px; color:var(--muted); font-size:13px; }
.dispatch-toolbar .filters { max-width:650px; }
.dispatch-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.dispatch-task-metrics { grid-template-columns:repeat(6,minmax(120px,1fr)); margin-bottom:12px; }
.dispatch-task-metric.metric-1::after { background:#176b87; }
.dispatch-task-metric.metric-2::after { background:#d99020; }
.dispatch-task-metric.metric-3::after { background:#3f8fc8; }
.dispatch-task-metric.metric-4::after { background:#c74b4b; }
.dispatch-task-metric.metric-5::after { background:#a76612; }
.dispatch-task-metric.metric-6::after { background:#4a9a70; }
.dispatch-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.dispatch-column { min-width:0; overflow:hidden; border:1px solid #cfdee3; border-radius:12px; background:#fff; box-shadow:var(--shadow); }
.dispatch-column-sent { border-top:3px solid #277c91; }
.dispatch-column-received { border-top:3px solid #4a9a70; }
.dispatch-column-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:16px 17px 13px; background:linear-gradient(180deg,#fbfdfe 0%,#f3f8f9 100%); border-bottom:1px solid #e1eaed; }
.dispatch-column-head > div { display:grid; gap:4px; min-width:0; }
.dispatch-column-kicker { color:#6a7d87; font-size:11px; font-weight:700; letter-spacing:.08em; }
.dispatch-column-head h2 { margin:0; color:var(--ink); font-size:18px; line-height:1.2; }
.dispatch-column-head small { color:var(--muted); font-size:12px; }
.dispatch-column-head > strong { flex:0 0 auto; color:#27738a; font-size:13px; font-weight:700; white-space:nowrap; }
.dispatch-column-received .dispatch-column-head > strong { color:#32845c; }
.dispatch-column-body { display:grid; gap:10px; padding:10px; }
.dispatch-column-body .dispatch-card { box-shadow:none; border-color:#d9e5e8; }
.dispatch-grid { display:grid; grid-template-columns:repeat(2,minmax(440px,1fr)); gap:12px; }
.dispatch-card { min-width:0; padding:15px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.dispatch-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.dispatch-card-head h3 { margin:0; font-size:16px; }
.dispatch-card-subtitle { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.dispatch-card-head > span { color:var(--muted); font-size:13px; white-space:nowrap; }
.dispatch-list { display:grid; }
.dispatch-item { padding:9px 8px; border-left:3px solid #d7dee4; border-bottom:1px solid var(--line); background:#fff; transition:background-color .15s,border-color .15s; }
.dispatch-item.pending { border-left-color:#d99020; background:#fffcf6; }
.dispatch-item.progress { border-left-color:#3f8fc8; background:#f7fbff; }
.dispatch-item.done { border-left-color:#4a9a70; background:#f7fcf9; }
.dispatch-item.priority-urgent { box-shadow:inset 3px 0 0 #c74b4b; }
.dispatch-item.priority-high { box-shadow:inset 3px 0 0 #d99020; }
.dispatch-item.is-archived { opacity:.82; background:#f7f8f8; }
.dispatch-item:last-child { border-bottom:0; }
.dispatch-item-row { display:grid; grid-template-columns:minmax(0,1fr) 82px 92px auto; gap:8px; align-items:center; }
.dispatch-item-main { min-width:0; display:grid; gap:3px; }
.dispatch-item-main strong,.dispatch-item-main span { overflow-wrap:anywhere; }
.dispatch-item-title { display:flex; align-items:flex-start; gap:8px; }
.dispatch-item-title strong { line-height:1.3; }
.dispatch-item-content { color:#2d414c; font-size:13px; line-height:1.4; white-space:normal; overflow-wrap:anywhere; }
.dispatch-priority { flex:0 0 auto; margin-top:1px; padding:3px 7px; border-radius:5px; font-size:11px; font-weight:700; }
.dispatch-priority.priority-urgent { color:#b42318; background:#fff0ef; }
.dispatch-priority.priority-high { color:#a76612; background:#fff4df; }
.dispatch-priority.priority-normal { color:#27738a; background:#e9f7f8; }
.dispatch-priority.priority-low { color:#68757d; background:#eef2f3; }
.dispatch-item-remark { color:#52616d !important; font-size:12px !important; }
.dispatch-item-main span { color:var(--muted); font-size:13px; }
.dispatch-item-main small { color:#84919d; font-size:11px; }
.dispatch-item-quantity { display:inline-flex; align-items:baseline; gap:5px; color:var(--muted); font-size:12px; white-space:nowrap; }
.dispatch-item-quantity strong { color:var(--ink); font-size:16px; }
.dispatch-archive-badge { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:0 9px; border:1px solid #cbd5d8; border-radius:6px; color:#66747b; background:#eef2f3; font-size:12px; font-weight:700; white-space:nowrap; }
.dispatch-feedback { margin-top:8px; padding-top:8px; border-top:1px dashed #d8e0e6; }
.dispatch-feedback-editor { min-height:44px; max-height:150px; background:rgba(255,255,255,.86); }
.dispatch-empty { display:grid; gap:6px; padding:28px 18px; text-align:center; }
.dispatch-empty span { color:var(--muted); font-size:13px; }
@media (max-width:1280px) { .dispatch-grid { grid-template-columns:1fr; } .dispatch-columns { grid-template-columns:1fr; } }
@media (max-width:1350px) { .dispatch-task-metrics { grid-template-columns:repeat(3,minmax(125px,1fr)); } }
@media (max-width:900px) { .dispatch-form-grid { grid-template-columns:1fr 1fr; } .dispatch-field:has(#dispatchTitle),.dispatch-field:has(#dispatchContent),.dispatch-field:has(#dispatchRemark) { grid-column:1 / -1; grid-row:auto; } .dispatch-compose-footer { align-items:flex-start; flex-direction:column; } }
@media (max-width:760px) { .dispatch-compose,.dispatch-item-row { grid-template-columns:1fr; } .dispatch-card-head { align-items:flex-start; } .dispatch-column-head { padding:14px; } }
@media (max-width:600px) { .dispatch-form-grid,.dispatch-task-metrics { grid-template-columns:1fr; } .dispatch-compose-head { align-items:flex-start; flex-direction:column; } .dispatch-qq-hint { white-space:normal; } }
.nav-item-with-count { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nav-count { display:inline-flex; align-items:center; justify-content:center; min-width:23px; height:22px; padding:0 7px; border-radius:11px; background:rgba(255,255,255,.12); color:#fff; font-size:12px; line-height:1; }
.nav-item-with-count.active .nav-count { background:var(--accent); color:#fff; }
/* Task dispatch analytics */
.dispatch-dashboard-metrics { grid-template-columns:repeat(6,minmax(125px,1fr)); }
.dispatch-metric.metric-1::after { background:#176b87; }
.dispatch-metric.metric-2::after { background:#596b7a; }
.dispatch-metric.metric-3::after { background:#d99020; }
.dispatch-metric.metric-4::after { background:#3f8fc8; }
.dispatch-metric.metric-5::after { background:#4a9a70; }
.dispatch-metric.metric-6::after { background:#277957; }
.dispatch-analytics-row { display:grid; grid-template-columns:90px minmax(120px,1fr) 48px; gap:12px; align-items:center; margin:14px 0; }
.dispatch-analytics-row > span { text-align:right; font-variant-numeric:tabular-nums; }
.dispatch-status-fill { height:100%; border-radius:3px; background:#7d8a95; }
.dispatch-status-fill.pending { background:#d99020; }
.dispatch-status-fill.progress { background:#3f8fc8; }
.dispatch-status-fill.done { background:#4a9a70; }
.dispatch-employee-summary { overflow-x:auto; }
.dispatch-summary-row { display:grid; grid-template-columns:minmax(130px,1.35fr) minmax(100px,1fr) repeat(6,minmax(76px,.72fr)); min-width:920px; border-bottom:1px solid var(--line); }
.dispatch-summary-row:last-child { border-bottom:0; }
.dispatch-summary-row > * { padding:11px 12px; text-align:center; font-variant-numeric:tabular-nums; }
.dispatch-summary-row > :first-child { text-align:left; }
.dispatch-summary-head { position:sticky; top:0; z-index:1; color:#52616d; background:#f4f7f9; font-size:12px; }
.dispatch-summary-row:not(.dispatch-summary-head):hover { background:#f8fbfc; }
.dispatch-summary-row .summary-pending { color:#b86f08; }
.dispatch-summary-row .summary-progress { color:#2876bc; }
.dispatch-summary-row .summary-done,.dispatch-summary-row b { color:#32845c; }
@media (max-width:1350px) { .dispatch-dashboard-metrics { grid-template-columns:repeat(3,minmax(150px,1fr)); } }
@media (max-width:760px) { .dispatch-dashboard-metrics { grid-template-columns:1fr 1fr; } .dispatch-analytics-row { grid-template-columns:78px minmax(100px,1fr) 36px; } }
.work-analysis-toolbar-filters { margin-top:-4px; }
.work-analysis-period-controls { flex-wrap:wrap; justify-content:flex-end; }
.work-analysis-period-controls label { display:grid; gap:4px; color:var(--muted); font-size:11px; font-weight:700; }
.work-analysis-period-controls label input { min-width:145px; }
.work-analysis-metrics { grid-template-columns:repeat(6,minmax(135px,1fr)); }
.work-analysis-metric.metric-1::after { background:#176b87; }
.work-analysis-metric.metric-2::after { background:#6b7c89; }
.work-analysis-metric.metric-3::after { background:#3f8fc8; }
.work-analysis-metric.metric-4::after { background:#4a9a70; }
.work-analysis-metric.metric-5::after { background:#32845c; }
.work-analysis-metric.metric-6::after { background:#c38320; }
.work-analysis-bar-row { display:grid; gap:6px; margin:13px 0; }
.work-analysis-bar-label { display:flex; justify-content:space-between; gap:14px; color:var(--ink); font-size:13px; }
.work-analysis-bar-label span { color:var(--muted); font-variant-numeric:tabular-nums; text-align:right; }
.work-analysis-fill { height:100%; min-width:2px; border-radius:inherit; background:#4386b5; }
.work-analysis-fill.done { background:#4a9a70; }
.work-analysis-fill.progress { background:#3f8fc8; }
.work-analysis-fill.pending { background:#d99020; }
.work-analysis-fill.neutral { background:#8a98a3; }
.work-analysis-table-panel { overflow:hidden; }
.work-analysis-table-wrap { max-height:58vh; overflow:auto; }
.work-analysis-table { min-width:1080px; }
.work-analysis-table th,.work-analysis-table td { white-space:nowrap; }
.work-analysis-table td:nth-child(1) { min-width:110px; }
.work-analysis-table .summary-done { color:#32845c; }
.work-analysis-table .summary-progress { color:#2876bc; }
.work-analysis-empty { padding:24px !important; color:var(--muted); text-align:center; }
.work-analysis-quality { display:flex; flex-wrap:wrap; gap:10px 22px; color:var(--muted); font-size:13px; }
.work-analysis-quality strong { color:var(--ink); font-size:16px; }
@media (max-width:1250px) { .work-analysis-metrics { grid-template-columns:repeat(3,minmax(150px,1fr)); } }
@media (max-width:760px) { .work-analysis-metrics { grid-template-columns:1fr 1fr; } .work-analysis-period-controls { width:100%; justify-content:flex-start; } .work-analysis-period-controls label { flex:1 1 140px; } .work-analysis-period-controls label input { min-width:0; width:100%; } .work-analysis-quality { display:grid; gap:8px; } }
/* Excel import and export dialogs */
.data-dialog { width:min(760px,calc(100vw - 28px)); }
.data-dialog form { padding:22px; }
.data-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.data-dialog-head-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.data-dialog-head h2 { margin-bottom:6px; font-size:20px; }
.import-file { display:grid; grid-template-columns:1fr auto; gap:4px 18px; align-items:center; padding:16px; border:1px dashed #aebfc8; border-radius:7px; background:#f7fafb; color:var(--ink); }
.import-file span { color:var(--muted); font-size:13px; }
.import-file input { grid-column:2; grid-row:1 / span 2; width:260px; min-height:40px; background:#fff; }
.import-divider { display:flex; align-items:center; gap:12px; margin:16px 0; color:var(--muted); font-size:12px; }
.import-divider::before,.import-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.data-dialog textarea { min-height:130px; max-height:240px; }
.data-option { display:grid; gap:7px; width:280px; margin-top:14px; color:var(--muted); font-size:13px; }
.export-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:end; margin-bottom:18px; }
.export-options > label:not(.check-option) { display:grid; gap:7px; color:var(--muted); font-size:13px; }
.check-option { display:flex; align-items:center; gap:9px; min-height:38px; color:var(--ink); }
.check-option input,.export-field-list input { width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:var(--primary); }
.export-fields-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.export-fields-head > div { display:flex; gap:12px; }
.text-button { border:0; padding:2px 0; background:transparent; color:var(--primary); font-size:13px; }
.export-field-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; max-height:310px; overflow:auto; border-bottom:1px solid var(--line); }
.export-field-list label { display:flex; align-items:center; gap:8px; min-width:0; padding:10px 8px; border-bottom:1px solid #edf1f3; }
.export-field-list label span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.data-dialog button:disabled { cursor:wait; opacity:.65; }
.product-category-dialog { width:min(560px,calc(100vw - 28px)); }
.product-category-list { display:grid; gap:8px; max-height:420px; overflow:auto; padding:2px 1px; }
.product-category-item { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:54px; padding:9px 11px; border:1px solid var(--line); border-radius:7px; background:#f8fbfc; }
.product-category-item > div { display:grid; gap:3px; min-width:0; }
.product-category-item strong { color:var(--ink); overflow-wrap:anywhere; }
.product-category-item small { color:var(--muted); font-size:12px; }
.product-category-delete { min-width:72px; min-height:32px; padding:0 10px; }
.product-category-delete:disabled { cursor:not-allowed; opacity:.55; }
.product-category-protected { color:var(--muted); font-size:12px; white-space:nowrap; }
.product-category-empty { padding:24px; color:var(--muted); text-align:center; }
@media (max-width:760px) {
  .data-dialog-head,.import-file { display:grid; grid-template-columns:1fr; }
  .import-file input { grid-column:auto; grid-row:auto; width:100%; }
  .export-options { grid-template-columns:1fr; }
  .export-field-list { grid-template-columns:1fr 1fr; }
}
/* Fixed product actions and rich text */
#productTableWrap::-webkit-scrollbar { width:12px; height:0; }
#productTableWrap::-webkit-scrollbar:horizontal { display:none; height:0; }
.table-top-scroll { position:relative; z-index:9; flex:none; }
th.col-actions,td.col-actions { width:104px; min-width:104px; max-width:104px; position:sticky; right:0; }
th.col-actions { z-index:8; background:#eaf0f3; box-shadow:-5px 0 10px rgba(23,42,54,.08); }
td.col-actions { z-index:4; padding:8px; background:#fff; box-shadow:-5px 0 10px rgba(23,42,54,.08); }
tbody tr:hover td.col-actions { background:#f8fbfc; }
.product-row-actions { display:grid; grid-template-columns:1fr; gap:6px; align-items:center; }
.product-row-actions button { width:100%; min-width:0; min-height:32px; padding:0 6px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); white-space:nowrap; }
.product-row-actions button:hover { border-color:var(--primary); color:var(--primary); }
.col-rich-text { width:260px; }
.rich-text-cell { display:block; width:100%; min-height:76px; max-height:130px; padding:9px 10px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); text-align:left; line-height:1.5; }
.rich-text-cell:hover,.rich-text-cell:focus { border-color:var(--primary); background:#f8fbfc; outline:none; box-shadow:0 0 0 3px rgba(20,107,120,.08); }
.rich-text-empty { color:var(--muted); font-size:12px; }
.rich-text-preview { display:block; overflow-wrap:anywhere; word-break:break-word; }
.rich-text-preview p,.rich-text-preview div { margin:0 0 4px; }
.rich-text-preview ul,.rich-text-preview ol { margin:3px 0; padding-left:20px; }
.rich-text-preview a { color:var(--primary); text-decoration:underline; }
.rich-text-editor img,.rich-text-preview img { display:block; max-width:100%; height:auto; margin:10px 0; border:1px solid var(--line); border-radius:6px; object-fit:contain; }
.rich-text-preview img { max-height:110px; margin:4px 0; }
.rich-text-dialog { width:min(780px,calc(100vw - 28px)); max-width:none; }
.rich-text-shell { display:grid; grid-template-rows:auto auto minmax(300px,1fr) auto; max-height:calc(100vh - 48px); background:#fff; }
.rich-text-head { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:17px 20px; border-bottom:1px solid var(--line); }
.rich-text-head h2 { font-size:20px; }
.rich-text-title-input { display:block; width:min(420px,70vw); min-height:32px; margin-top:7px; padding:6px 9px; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); }
.rich-text-toolbar { display:flex; align-items:center; gap:6px; padding:10px 20px; border-bottom:1px solid var(--line); background:#f7f9fa; }
.rich-text-toolbar button { width:36px; height:34px; padding:0; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); }
.rich-text-toolbar button:nth-last-child(2) { width:48px; font-size:12px; }
.rich-text-toolbar button:hover { border-color:var(--primary); color:var(--primary); }
.rich-text-editor { min-height:320px; padding:18px 20px; overflow:auto; color:var(--ink); line-height:1.7; outline:none; }
.rich-text-editor:focus { box-shadow:inset 0 0 0 2px rgba(20,107,120,.16); }
.rich-text-editor p,.rich-text-editor div { margin:0 0 8px; }
.rich-text-editor a { color:var(--primary); text-decoration:underline; }
.rich-text-foot { display:flex; justify-content:flex-end; padding:13px 20px; border-top:1px solid var(--line); }
/* Product image actions */
.image-actions { display:flex; align-items:center; gap:6px; }
.mini-image-delete { min-height:27px; padding:0 9px; border:1px solid #efc6c9; border-radius:5px; background:#fff; color:#c63c47; font-size:12px; cursor:pointer; }
.mini-image-delete:hover { background:#fff5f5; border-color:#d96b73; }

/* Bottom product scrollbar and draggable headers */
.table-top-scroll { display:none !important; }
#productTableWrap { border-radius:7px; scrollbar-width:auto; scrollbar-color:#8d979f #e5e9ec; }
#productTableWrap::-webkit-scrollbar { width:12px; height:12px; }
#productTableWrap::-webkit-scrollbar:horizontal { display:block; height:12px; }
#productTableWrap::-webkit-scrollbar-track { background:#e5e9ec; }
#productTableWrap::-webkit-scrollbar-thumb { min-width:80px; border:2px solid #e5e9ec; border-radius:6px; background:#8d979f; }
#productTableWrap::-webkit-scrollbar-thumb:hover { background:#66737c; }
#productHead th:not(.col-actions) { cursor:grab; user-select:none; }
#productHead.dragging th:not(.col-actions) { cursor:grabbing; }
/* Channel management */
.channel-toolbar { align-items:center; }
.channel-toolbar .filters { flex:1; }
.channel-toolbar #channelSearch { width:min(430px,100%); }
.channel-summary { color:var(--muted); font-size:13px; font-weight:600; white-space:nowrap; }
.channel-table-wrap { max-height:calc(100vh - 285px); border-radius:7px; scrollbar-color:#8d979f #e5e9ec; }
.channel-table { min-width:2140px; table-layout:fixed; }
.channel-table th,.channel-table td { border-right:1px solid var(--line); padding:8px 10px; vertical-align:top; }
.channel-select-cell { width:38px; min-width:38px; max-width:38px; padding:8px 6px !important; text-align:center; }
.channel-select-cell input { width:15px; height:15px; accent-color:var(--primary); }
.channel-selected-summary { color:var(--primary-dark); font-size:13px; white-space:nowrap; }
.channel-toolbar .toolbar-actions button:disabled { opacity:.5; cursor:not-allowed; }
.channel-table th:last-child,.channel-table td:last-child { border-right:0; }
.channel-table tbody tr { height:108px; border-bottom:0; }
.channel-table tbody tr:hover td { background:#f8fbfc; }
.channel-table .channel-field-0 { width:110px; }
.channel-table .channel-field-1 { width:190px; }
.channel-table .channel-field-2 { width:240px; }
.channel-table .channel-field-3 { width:220px; }
.channel-table .channel-field-4 { width:120px; }
.channel-table .channel-field-5 { width:340px; }
.channel-table .channel-field-6 { width:110px; }
.channel-table .channel-field-7 { width:95px; }
.channel-table .channel-field-8 { width:135px; }
.channel-table .channel-field-9 { width:105px; }
.channel-table .channel-field-10 { width:125px; }
.channel-table .channel-field-11 { width:95px; }
.channel-table .channel-field-12 { width:230px; }
.channel-table .channel-field-13 { width:105px; }
.channel-table .channel-field-5, .channel-table .channel-field-12 { white-space:normal; overflow-wrap:anywhere; word-break:break-word; }
.channel-cell-input { display:block; width:100%; min-width:0; min-height:34px; padding:7px 8px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--ink); line-height:1.45; }
.channel-cell-input:hover { border-color:#bfd0d9; background:#fff; }
.channel-cell-input:focus { border-color:var(--primary); background:#fff; outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
.channel-cell-long { height:86px; min-height:86px; max-height:86px; resize:none; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.channel-actions { position:sticky; right:0; z-index:3; width:86px; min-width:86px; max-width:86px; background:#fff; box-shadow:-4px 0 10px rgba(23,42,54,.07); text-align:center; }
.channel-table th.channel-actions { z-index:6; background:#eaf0f3; }
.channel-delete { width:100%; min-height:32px; padding:0 8px; border:1px solid #efc6c9; border-radius:6px; background:#fff; color:#c63c47; }
.channel-delete:hover { border-color:#d96b73; background:#fff5f5; }
.channel-empty { padding:38px !important; color:var(--muted); text-align:center !important; }
.channel-select { cursor:pointer; }
.channel-paste-dialog { width:min(920px,94vw); }
.channel-paste-dialog form { padding:22px; }
.channel-paste-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:16px 0 12px; }
.channel-paste-fields span { padding:7px 9px; border:1px solid var(--line); border-radius:5px; background:#f4f7f8; color:#405463; font-size:12px; }
#channelPasteText { width:100%; min-height:320px; padding:12px; border:1px solid var(--line); border-radius:6px; resize:vertical; font-family:Consolas,"Microsoft YaHei",sans-serif; line-height:1.55; }
#channelPasteText:focus { border-color:var(--primary); outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
.channel-paste-preview { margin-top:9px; color:#146b78; font-size:13px; font-weight:600; }
.channel-paste-preview.error { color:#c63c47; }
@media (max-width:900px) { .channel-table-wrap { max-height:70vh; } .channel-toolbar .filters { width:100%; } .channel-paste-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* Tax payment management */
.tax-quick-add { display:grid; grid-template-columns:150px minmax(210px,1.3fr) 140px minmax(220px,1fr) 170px auto; gap:10px; align-items:center; margin-bottom:14px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow); }
.tax-quick-add input,.tax-quick-add select { width:100%; min-width:0; }
.tax-page-tabs { display:flex; align-items:center; gap:4px; margin-bottom:12px; padding:0 4px; border-bottom:1px solid var(--line); }
.tax-page-tab { min-height:38px; padding:0 16px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font-weight:700; cursor:pointer; }
.tax-page-tab:hover { color:var(--primary); }
.tax-page-tab.is-active { border-bottom-color:var(--primary); color:var(--primary); }
.tax-mockup-note { margin-left:auto; color:#b06d1d; font-size:12px; }
.anjun-tax-demo-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; padding:12px 14px; border:1px solid #d8e5e9; border-left:3px solid #1d8b9d; border-radius:7px; background:#f4fafb; color:var(--muted); font-size:12px; }
.anjun-tax-demo-banner strong { display:block; margin-bottom:4px; color:var(--ink); font-size:16px; }
.anjun-tax-demo-banner span { display:block; }
.anjun-tax-quick-add { grid-template-columns:150px minmax(210px,1.35fr) 150px 150px minmax(170px,1fr) auto; }
.anjun-tax-toolbar .filters { flex-wrap:nowrap; }
.anjun-tax-table { width:100%; min-width:1120px; table-layout:fixed; }
.tax-table.anjun-tax-table th:nth-child(1),.tax-table.anjun-tax-table td:nth-child(1) { width:12%; }
.tax-table.anjun-tax-table th:nth-child(2),.tax-table.anjun-tax-table td:nth-child(2) { width:22%; }
.tax-table.anjun-tax-table th:nth-child(3),.tax-table.anjun-tax-table td:nth-child(3) { width:11%; }
.tax-table.anjun-tax-table th:nth-child(4),.tax-table.anjun-tax-table td:nth-child(4) { width:11%; }
.tax-table.anjun-tax-table th:nth-child(5),.tax-table.anjun-tax-table td:nth-child(5) { width:36%; }
.tax-table.anjun-tax-table th:nth-child(6),.tax-table.anjun-tax-table td:nth-child(6) { width:8%; text-align:center; }
.anjun-tax-status { width:100%; min-height:34px; padding:6px 8px; border:1px solid; border-radius:5px; font-weight:700; }
.anjun-tax-status.status-unapplied { border-color:#ccd7dc; background:#f6f8f9; color:#61747d; }
.anjun-tax-status.status-applied { border-color:#a9d9e2; background:#eef9fb; color:#087989; }
.anjun-tax-status.status-error { border-color:#efb5bb; background:#fff4f5; color:#c63c47; }
.anjun-tax-status.status-complete { border-color:#b8dfce; background:#f1fbf6; color:#17815c; }
.anjun-tax-mockup .tax-cell-input { border-color:#d7e2e6; background:#fff; }
.anjun-tax-remark { width:100%; }
.anjun-tax-mockup .tax-cell-input:hover,.anjun-tax-mockup .tax-cell-input:focus { background:#fff; }
@media (max-width:1280px) { .anjun-tax-quick-add { grid-template-columns:repeat(3,minmax(0,1fr)); } .anjun-tax-toolbar .filters { flex-wrap:wrap; } }
@media (max-width:760px) { .tax-page-tabs { overflow-x:auto; } .tax-mockup-note { display:none; } .anjun-tax-demo-banner { align-items:flex-start; flex-direction:column; } .anjun-tax-quick-add { grid-template-columns:1fr; } }
.tax-toolbar .filters { flex:1; }
.tax-toolbar #taxSearch { width:min(360px,100%); }
.tax-date-separator { color:var(--muted); font-size:13px; }
.tax-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.tax-table-wrap { max-height:calc(100vh - 280px); }
.anjun-tax-table-wrap { max-height:calc(100vh - 430px); min-height:0; }
.tax-table { min-width:980px; table-layout:fixed; }
.tax-table th,.tax-table td { padding:10px 12px; vertical-align:middle; border-right:1px solid var(--line); }
.tax-table th:last-child,.tax-table td:last-child { border-right:0; }
.tax-table tbody tr { height:58px; border-bottom:1px solid var(--line); }
.tax-table tbody tr:hover td { background:#f8fbfc; }
.tax-table th:nth-child(1),.tax-table td:nth-child(1) { width:155px; }
.tax-table th:nth-child(2),.tax-table td:nth-child(2) { width:260px; }
.tax-table th:nth-child(3),.tax-table td:nth-child(3) { width:150px; }
.tax-table th:nth-child(4),.tax-table td:nth-child(4) { width:auto; }
.tax-table th:nth-child(5),.tax-table td:nth-child(5) { width:180px; }
.tax-cell-input { display:block; width:100%; min-width:0; min-height:34px; padding:6px 8px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--ink); }
.tax-cell-input:hover { border-color:#bfd0d9; background:#fff; }
.tax-cell-input:focus { border-color:var(--primary); background:#fff; outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
.tax-tracking { font-family:Consolas,"Microsoft YaHei",sans-serif; font-weight:600; letter-spacing:.2px; }
.tax-money { font-variant-numeric:tabular-nums; }
.tax-remark-cell { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.tax-delete { min-height:30px; padding:0 9px; border:1px solid #efc6c9; border-radius:6px; background:#fff; color:#c63c47; }
.tax-delete:hover { border-color:#d96b73; background:#fff5f5; }
.tax-empty { padding:40px !important; color:var(--muted); text-align:center !important; }
@media (max-width:1280px) { .tax-quick-add { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .tax-quick-add { grid-template-columns:1fr; } .tax-table-wrap { max-height:68vh; } .anjun-tax-table-wrap { max-height:58vh; } }

/* Customer payment management */
.payment-quick-add { display:grid; grid-template-columns:160px 170px 190px 130px minmax(220px,1fr) 145px auto; gap:10px; align-items:center; margin-bottom:14px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow); }
.payment-quick-add input,.payment-quick-add select { width:100%; min-width:0; }
.payment-toolbar .filters { flex:1; }
.payment-toolbar #paymentSearch { width:min(360px,100%); }
.payment-toolbar #paymentDateFrom,.payment-toolbar #paymentDateTo { flex:0 0 145px; width:145px; max-width:145px; }
.payment-pending-quick { min-height:34px; padding:0 12px; white-space:nowrap; }
.payment-pending-quick.active { color:#c63c47; border-color:#efc6c9; background:#fff5f5; }
.payment-date-quicks { display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; }
.payment-date-quick { min-height:34px; padding:0 10px; white-space:nowrap; }
.payment-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.payment-toolbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex:0 0 auto; }
.payment-toolbar-actions #xtransferAutomationStatus { max-width:min(44vw, 560px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.payment-toolbar-actions #xtransferAutomationStatus.xtransfer-status-error { color:#b42318; }
.payment-xtransfer { color:#087c8c; border-color:#9bd6df; }
.xtransfer-challenge-dialog { width:min(980px, calc(100vw - 32px)); }
.xtransfer-challenge-stage { position:relative; width:min(560px, 100%); margin:0 auto; overflow:hidden; border:1px solid var(--line); background:#eef2f4; box-sizing:border-box; }
.xtransfer-challenge-stage img { display:block; width:100%; height:100%; object-fit:fill; cursor:crosshair; }
.xtransfer-challenge-markers { position:absolute; inset:0; pointer-events:none; }
.xtransfer-challenge-marker { position:absolute; width:24px; height:24px; margin:-12px 0 0 -12px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#008fa3; border:2px solid #fff; box-shadow:0 1px 4px #0008; font-weight:700; font-size:12px; }
.payment-table-wrap { max-height:calc(100vh - 330px); overflow-x:hidden; overflow-y:auto; border-radius:7px; scrollbar-color:#8d979f #e5e9ec; }
.payment-table { width:100%; min-width:0; table-layout:fixed; }
.payment-table th,.payment-table td { padding:8px 9px; vertical-align:top; border-right:1px solid var(--line); }
.payment-table th:last-child,.payment-table td:last-child { border-right:0; }
.payment-table tbody tr { height:104px; border-bottom:1px solid var(--line); }
.payment-table tbody tr:hover td { background:#f8fbfc; }
.payment-table th:nth-child(1),.payment-table td:nth-child(1) { width:8%; }
.payment-table th:nth-child(2),.payment-table td:nth-child(2) { width:9%; }
.payment-table th:nth-child(3),.payment-table td:nth-child(3) { width:11%; }
.payment-table th:nth-child(4),.payment-table td:nth-child(4) { width:7%; }
.payment-table th:nth-child(5),.payment-table td:nth-child(5) { width:17%; }
.payment-table th:nth-child(6),.payment-table td:nth-child(6) { width:19%; }
.payment-table th:nth-child(7),.payment-table td:nth-child(7) { width:12%; }
.payment-table th:nth-child(8),.payment-table td:nth-child(8) { width:8%; }
.payment-table th:nth-child(9),.payment-table td:nth-child(9) { width:9%; }
.payment-cell-input { display:block; width:100%; min-width:0; min-height:34px; padding:6px 8px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--ink); line-height:1.45; }
.payment-cell-input:hover { border-color:#bfd0d9; background:#fff; }
.payment-cell-input:focus { border-color:var(--primary); background:#fff; outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
.payment-textarea { height:72px; min-height:72px; max-height:72px; resize:none; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.payment-account-editable { min-height:34px; max-height:none; padding:6px 0; border:1px solid transparent; border-radius:5px; background:transparent; outline:0; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.payment-account-editable:hover,.payment-account-editable:focus { border-color:transparent; background:transparent; box-shadow:none; }
.payment-reason-cell { display:grid; gap:5px; min-width:0; }
.payment-link-copy { justify-self:start; min-height:25px; padding:0 8px; border:1px solid #a7dce2; border-radius:5px; background:#f7fcfd; color:#087d8a; cursor:pointer; font-size:12px; }
.payment-link-copy:hover,.payment-link-copy:focus-visible { border-color:#078a9b; background:#eefbfc; outline:none; }
.payment-rich-text { min-height:72px; max-height:118px; }
.payment-money { font-variant-numeric:tabular-nums; text-align:right; }
.payment-status { font-weight:600; }
.payment-status.status-done { color:#26845b; border-color:#bde1cf; background:#f2fbf6; }
.payment-status.status-bad { color:#c63c47; border-color:#efc6c9; background:#fff5f5; }
.payment-status.status-pending { color:#b86f08; border-color:#edcc96; background:#fff9ee; }
.payment-actions { background:#fff; }
.payment-actions button { display:block; width:100%; min-height:26px; margin:0 0 4px; padding:0 6px; border:1px solid #cddde2; border-radius:6px; background:#fff; color:var(--ink); cursor:pointer; font-size:12px; }
.payment-actions button:last-child { margin-bottom:0; }
.payment-actions button:hover { border-color:var(--primary); color:var(--primary); background:#f5fbfc; }
.payment-actions .payment-copy { color:#176b87; }
.payment-actions .payment-delete { border-color:#efc6c9; color:#c63c47; }
.payment-actions .payment-delete:hover { border-color:#d96b73; background:#fff5f5; }

.payment-delete { width:100%; min-height:32px; padding:0 8px; border:1px solid #efc6c9; border-radius:6px; background:#fff; color:#c63c47; }
.payment-delete:hover { border-color:#d96b73; background:#fff5f5; }
.payment-empty { padding:40px !important; color:var(--muted); text-align:center !important; }
@media (max-width:1450px) { .payment-quick-add { grid-template-columns:repeat(4,minmax(0,1fr)); } .payment-date-quicks { flex-wrap:wrap; } }
@media (max-width:760px) { .payment-quick-add { grid-template-columns:1fr; } .payment-table-wrap { max-height:68vh; } }
/* Tax duplicate, bulk paste and export */
.tax-toolbar { align-items:center; }
.tax-toolbar .toolbar-actions { margin-left:auto; }
.tax-tracking-wrap { display:flex; align-items:center; gap:8px; min-width:0; }
.tax-tracking-wrap .tax-tracking { flex:1; min-width:0; }
.tax-duplicate-row td { background:#fffafa; }
.tax-duplicate-row:hover td { background:#fff4f5 !important; }
.tax-duplicate-cell { box-shadow:inset 3px 0 #d94b55; }
.tax-duplicate-cell .tax-tracking { border-color:#e39198; background:#fff; color:#b92f3b; }
.tax-duplicate-badge { flex:0 0 auto; padding:3px 7px; border:1px solid #efb2b7; border-radius:10px; background:#ffe7e9; color:#b92f3b; font-size:11px; font-weight:700; white-space:nowrap; }
.tax-paste-dialog { width:min(760px,calc(100vw - 28px)); }
.anjun-tax-batch-dialog { width:min(760px,calc(100vw - 28px)); }
.tax-paste-dialog form { padding:22px; }
.anjun-tax-batch-dialog form { padding:22px; }
.tax-paste-defaults { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.tax-paste-defaults label { display:grid; gap:7px; color:var(--muted); font-size:13px; }
#taxPasteText { width:100%; min-height:260px; max-height:420px; padding:12px; border:1px solid var(--line); border-radius:6px; resize:vertical; font-family:Consolas,"Microsoft YaHei",sans-serif; line-height:1.55; }
#taxPasteText:focus { border-color:var(--primary); outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
#anjunTaxBatchText { width:100%; min-height:260px; max-height:420px; padding:12px; border:1px solid var(--line); border-radius:6px; resize:vertical; font-family:Consolas,"Microsoft YaHei",sans-serif; line-height:1.55; }
#anjunTaxBatchText:focus { border-color:var(--primary); outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
@media (max-width:1000px) { .tax-toolbar { align-items:flex-start; } .tax-toolbar .toolbar-actions { width:100%; justify-content:flex-end; } }
@media (max-width:760px) { .tax-paste-defaults { grid-template-columns:1fr; } .tax-tracking-wrap { align-items:flex-start; flex-direction:column; } }
/* Return order management */
.return-order-quick-add { display:grid; grid-template-columns:145px 118px 180px 205px 180px 155px minmax(190px,1fr) auto; gap:10px; align-items:center; margin-bottom:14px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow); }
.return-order-quick-add input,.return-order-quick-add select { width:100%; min-width:0; }
.return-order-toolbar { align-items:center; }
.return-order-toolbar .filters { flex:1; }
.return-order-toolbar #returnSearch { width:min(410px,100%); }
.return-order-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.return-order-table-wrap { max-height:calc(100vh - 330px); border-radius:7px; scrollbar-color:#8d979f #e5e9ec; }
.return-order-table { min-width:1540px; table-layout:fixed; }
.return-order-table th,.return-order-table td { padding:8px 10px; vertical-align:top; border-right:1px solid var(--line); }
.return-order-table th:last-child,.return-order-table td:last-child { border-right:0; }
.return-order-table tbody tr { height:82px; border-bottom:1px solid var(--line); }
.return-order-table tbody tr:hover td { background:#f8fbfc; }
.return-order-table th:nth-child(1),.return-order-table td:nth-child(1) { width:135px; }
.return-order-table th:nth-child(2),.return-order-table td:nth-child(2) { width:205px; }
.return-order-table th:nth-child(3),.return-order-table td:nth-child(3) { width:220px; }
.return-order-table th:nth-child(4),.return-order-table td:nth-child(4) { width:205px; }
.return-order-table th:nth-child(5),.return-order-table td:nth-child(5) { width:155px; }
.return-order-table th:nth-child(6),.return-order-table td:nth-child(6) { width:auto; }
.return-order-table th:nth-child(7),.return-order-table td:nth-child(7) { width:115px; }
.return-order-table th:nth-child(8),.return-order-table td:nth-child(8) { width:82px; }
.return-order-input { display:block; width:100%; min-width:0; min-height:34px; padding:6px 8px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--ink); line-height:1.45; }
.return-order-input:hover { border-color:#bfd0d9; background:#fff; }
.return-order-input:focus { border-color:var(--primary); background:#fff; outline:0; box-shadow:0 0 0 3px rgba(23,107,135,.08); }
.return-order-status { border-color:#d4dde2; background:#f7f9fa; font-weight:700; }
.return-order-status.neutral { color:#61727c; border-color:#d4dde2; background:#f7f9fa; }
.return-order-status.pending { color:#b86b00; border-color:#efc986; background:#fff8eb; }
.return-order-status.progress { color:#2876bc; border-color:#b8d6f2; background:#f4f9ff; }
.return-order-status.done { color:#27845f; border-color:#b9dfcd; background:#f2faf6; }
.return-order-code { font-family:Consolas,"Microsoft YaHei",sans-serif; letter-spacing:.1px; }
.return-order-remark { height:64px; min-height:64px; max-height:64px; resize:none; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.return-order-actions { position:sticky; right:0; z-index:3; background:#fff; box-shadow:-4px 0 10px rgba(23,42,54,.07); }
.return-order-table th:last-child { position:sticky; right:0; z-index:6; background:#eaf0f3; box-shadow:-4px 0 10px rgba(23,42,54,.07); }
.return-order-delete { width:100%; min-height:32px; padding:0 8px; border:1px solid #efc6c9; border-radius:6px; background:#fff; color:#c63c47; }
.return-order-delete:hover { border-color:#d96b73; background:#fff5f5; }
.return-order-operator { display:block; margin-top:6px; color:var(--muted); font-size:12px; line-height:1.2; text-align:center; white-space:nowrap; }
.return-order-empty { padding:40px !important; color:var(--muted); text-align:center !important; }
.return-order-duplicate-row td { background:#fffafa; }
.return-order-duplicate-cell { box-shadow:inset 3px 0 #d94b55; }
.return-order-duplicate-cell .return-order-input { border-color:#e39198; background:#fff; color:#b92f3b; }
.return-order-duplicate-badge { display:inline-block; margin-top:5px; padding:2px 7px; border:1px solid #efb2b7; border-radius:10px; background:#ffe7e9; color:#b92f3b; font-size:11px; font-weight:700; }
@media (max-width:1500px) { .return-order-quick-add { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:900px) { .return-order-quick-add { grid-template-columns:1fr 1fr; } .return-order-toolbar { align-items:flex-start; } .return-order-table-wrap { max-height:68vh; } }
@media (max-width:620px) { .return-order-quick-add { grid-template-columns:1fr; } }
/* SANYU workspace visual refresh 2026-07 */
:root {
  --bg:#eef3f5;
  --panel:#ffffff;
  --ink:#102a36;
  --muted:#627681;
  --line:#d7e1e5;
  --line-strong:#c5d3d9;
  --primary:#07899a;
  --primary-dark:#056b79;
  --accent:#f2a126;
  --green:#27845f;
  --red:#c94852;
  --sidebar:#102a33;
  --sidebar-soft:#173943;
  --shadow:0 1px 2px rgba(14,42,52,.04),0 8px 22px rgba(14,42,52,.055);
}
html { background:var(--bg); }
body { color:var(--ink); background:var(--bg); font-size:14px; }
::selection { color:#fff; background:var(--primary); }

.sidebar {
  width:252px;
  padding:18px 14px 14px;
  gap:14px;
  background:var(--sidebar);
  border-right:1px solid rgba(255,255,255,.06);
  box-shadow:8px 0 28px rgba(10,34,42,.09);
}
.brand {
  min-height:70px;
  gap:12px;
  padding:2px 6px 16px;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.brand-mark {
  position:relative;
  flex:0 0 auto;
  width:96px;
  height:38px;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.brand-mark img {
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:contain;
  object-position:center;
  background:transparent;
}
.brand-copy { min-width:0; }
.brand strong {
  overflow:hidden;
  color:#fff;
  font-size:15px;
  font-weight:750;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.brand span {
  margin-top:5px;
  color:#9fb4bd;
  font-size:11px;
  line-height:1.45;
}
.sidebar nav {
  display:grid;
  gap:3px;
  min-height:0;
  padding:2px 0 8px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#38535d transparent;
}
.nav-item {
  min-height:42px;
  padding:0 14px;
  border-radius:6px;
  color:#bed0d7;
  font-size:14px;
  font-weight:600;
  transition:background-color .14s ease,color .14s ease,transform .14s ease;
}
.nav-item::before { top:9px; bottom:9px; width:3px; }
.nav-item:hover {
  color:#fff;
  background:#193b45;
  transform:translateX(1px);
}
.nav-item.active {
  color:#fff;
  background:#1d414b;
  box-shadow:inset 0 0 0 1px rgba(56,204,219,.08);
}
.nav-item.active::before { background:#24c5d8; }
.nav-item-with-count.active .nav-count { background:var(--accent); }
.nav-count { background:#314b55; }
.sidebar-foot {
  min-height:36px;
  align-items:center;
  padding:10px 6px 0;
  border-top:1px solid rgba(255,255,255,.1);
  color:#8fa8b2;
  font-size:12px;
}
.sidebar-foot strong { color:#b9cbd2; }

.main { padding:22px 30px 30px; }
.topbar {
  position:sticky;
  top:0;
  z-index:30;
  min-height:72px;
  margin:-10px 0 18px;
  padding:14px 0 12px;
  align-items:center;
  background:var(--bg);
  border-bottom:1px solid rgba(197,211,217,.8);
}
h1 { color:#102a36; font-size:26px; font-weight:760; line-height:1.2; }
.topbar p { margin-top:6px; color:#667985; font-size:13px; }
.actions { justify-content:flex-end; }
.current-user {
  min-height:36px;
  padding:0 12px;
  border-color:#c9d8de;
  border-radius:6px;
  background:#f8fbfc;
  color:#38515e;
}
.primary,.ghost,.row-actions button {
  min-height:36px;
  border-radius:6px;
  font-weight:650;
  transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease;
}
.primary {
  border-color:var(--primary);
  background:var(--primary);
  box-shadow:0 4px 12px rgba(7,137,154,.18);
}
.primary:hover { border-color:var(--primary-dark); background:var(--primary-dark); }
.ghost { border-color:#ccd9de; background:#fff; }
.ghost:hover,.row-actions button:hover { border-color:#63acb6; color:#057989; background:#f4fbfc; }
button:focus-visible { outline:3px solid rgba(7,137,154,.16); outline-offset:2px; }

select,input,textarea {
  border-color:#cedbe0;
  border-radius:6px;
  color:#203640;
  background:#fff;
}
select:hover,input:hover,textarea:hover { border-color:#9ebbc4; }
select:focus,input:focus,textarea:focus {
  border-color:#3da2af;
  box-shadow:0 0 0 3px rgba(7,137,154,.1);
}
.toolbar,.quick-product,.tax-quick-add,.payment-quick-add,.return-order-quick-add,.dispatch-compose,.dashboard-period-toolbar {
  border-color:#d5e0e4;
  border-radius:7px;
  background:#fff;
  box-shadow:var(--shadow);
}
.toolbar { min-height:48px; padding:7px 10px; }
.filters { gap:8px; }
.toolbar-actions { gap:8px; }

.metric,.panel,.employee-card,.employee-work-card,.dispatch-card {
  border-color:#d8e2e6;
  border-radius:7px;
  box-shadow:var(--shadow);
}
.metric { min-height:108px; padding:18px 19px; }
.metric::after { top:18px; bottom:18px; width:3px; border-radius:0 3px 3px 0; }
.metric span { color:#647985; font-size:12px; }
.metric strong { color:#132f3b; font-size:27px; }
.panel { padding:18px 19px; }
.panel-head { border-bottom-color:#e7edef; }
.panel-head h2 { color:#173440; font-size:16px; }
.bar-track { background:#e8eef1; }
.bar-fill { background:#0b8c9d; }
.recent-item,.number-card { border-color:#dde6e9; background:#fbfcfd; }

.table-wrap {
  border-color:#cfdce1;
  border-radius:7px;
  background:#fff;
  box-shadow:0 2px 12px rgba(14,42,52,.05);
}
th {
  height:44px;
  padding:10px 11px;
  border-bottom-color:#c9d6dc;
  color:#405964;
  background:#eaf0f3;
  font-size:12px;
  font-weight:750;
}
td {
  border-bottom-color:#e0e7ea;
  color:#263b45;
}
tbody tr:nth-child(even) td { background:#fbfcfd; }
tbody tr:hover td { background:#f1f8fa !important; }
#productTableWrap th,#productTableWrap td,.channel-table th,.channel-table td,.tax-table th,.tax-table td,.payment-table th,.payment-table td,.return-order-table th,.return-order-table td { border-right-color:#d9e3e7; }
.product-table-tools,.row-actions { gap:6px; }
.product-row-actions button,.channel-delete,.tax-delete,.payment-delete,.return-order-delete {
  border-radius:5px;
  background:#fff;
}
.product-row-actions button:first-child { border-color:#b9d9df; color:#087c8c; }
.editable-cell:hover,.editable-cell:focus,.channel-cell-input:hover,.payment-cell-input:hover,.return-order-input:hover,.tax-cell-input:hover { background:#fff; }
.table-wrap::-webkit-scrollbar { width:11px; height:11px; }
.table-wrap::-webkit-scrollbar-track { background:#e6edef; }
.table-wrap::-webkit-scrollbar-thumb { border:2px solid #e6edef; border-radius:8px; background:#7f929a; }
.table-wrap::-webkit-scrollbar-thumb:hover { background:#607780; }
.product-pagination {
  border-color:#d6e1e5;
  border-radius:7px;
  background:#fff;
}

.status-select,.product-status-select,.payment-status {
  border-radius:5px;
  box-shadow:none;
}
.status-select.pending,.product-status-select.pending { color:#ad6904; border-color:#e9c583; background-color:#fff9ed; }
.status-select.done,.product-status-select.done { color:#267b59; border-color:#b7ddca; background-color:#f1faf5; }
.status-select.progress,.product-status-select.progress,.status-select.found,.product-status-select.found,.status-select.listing,.product-status-select.listing { color:#2378ad; border-color:#b6d6ea; background-color:#f1f8fc; }
.status-select.bad,.product-status-select.bad { color:#bf414b; border-color:#eabfc3; background-color:#fff4f5; }

/* Product ledger compact interaction: click the value to choose, without a visible select box. */
#productTableWrap .category-select,
#productTableWrap .employee-link-select,
#productTableWrap .product-status-select {
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0;
  padding:0 6px !important;
  border-color:transparent !important;
  background-image:none !important;
  background-color:transparent !important;
  box-shadow:none !important;
  cursor:pointer;
  font-weight:600;
}
#productTableWrap .category-select:hover,
#productTableWrap .employee-link-select:hover,
#productTableWrap .product-status-select:hover,
#productTableWrap .category-select:focus,
#productTableWrap .employee-link-select:focus,
#productTableWrap .product-status-select:focus {
  border-color:#8bbbc4 !important;
  background-color:#f7fbfc !important;
  outline:none;
}
#productTableWrap .product-direct-link {
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--primary);
  text-decoration:underline;
  text-underline-offset:2px;
  line-height:1.4;
}
#productTableWrap .product-link-cell {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:5px;
}
#productTableWrap .product-link-edit,
#productTableWrap .product-link-empty {
  min-height:26px;
  padding:0 6px;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  white-space:nowrap;
}
#productTableWrap .product-link-edit:hover,
#productTableWrap .product-link-empty:hover {
  border-color:var(--primary);
  color:var(--primary);
  background:#f7fbfc;
}
#productTableWrap .editable-cell.price-cell,
#productTableWrap .editable-cell.price-summary-cell {
  min-height:32px;
  padding:4px 2px;
  border:1px solid transparent;
  border-radius:4px;
  background:transparent;
  cursor:text;
}
#productTableWrap .editable-cell.price-cell:hover,
#productTableWrap .editable-cell.price-cell:focus,
#productTableWrap .editable-cell.price-summary-cell:hover,
#productTableWrap .editable-cell.price-summary-cell:focus {
  border-color:#8bbbc4;
  background:#f7fbfc;
}

/* Keep the ledger readable while removing unnecessary horizontal width. */
#productTableWrap table { min-width:2180px; }
#productTableWrap th,#productTableWrap td { padding:7px 8px; }
#productTableWrap .col-index { width:50px; min-width:50px; }
#productTableWrap .col-category { width:145px; }
#productTableWrap .col-status { width:100px; }
#productTableWrap .col-employee { width:108px; }
#productTableWrap .col-link { width:155px; }
#productTableWrap .col-img { width:108px; }
#productTableWrap .col-note { width:170px; }
#productTableWrap .col-price,
#productTableWrap .col-price-summary { width:155px; }
#productTableWrap .col-actions,
#productTableWrap th.col-actions,
#productTableWrap td.col-actions { width:104px; min-width:104px; max-width:104px; }

/* Product image cells: larger preview, compact icon-only actions, no helper text. */
#productTableWrap .product-thumb {
  width:96px;
  height:96px;
  object-fit:contain;
}
#productTableWrap .image-cell {
  gap:4px;
  padding:3px;
}
#productTableWrap .image-actions {
  display:flex;
  align-items:center;
  gap:4px;
}
#productTableWrap .image-icon-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  min-height:24px;
  padding:0;
  border:1px solid #b8d8de;
  border-radius:4px;
  background:#fff;
  color:var(--primary);
  font-size:16px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}
#productTableWrap .image-icon-btn:hover {
  border-color:var(--primary);
  background:#eef8fa;
}
#productTableWrap .image-upload-icon input { display:none; }
#productTableWrap .image-delete-icon {
  border-color:#efc6c9;
  color:#c63c47;
  font-size:19px;
}
#productTableWrap .image-delete-icon:hover {
  border-color:#d96b73;
  background:#fff5f5;
}

/* Final product-ledger compact pass. */
#productTableWrap table { min-width:2000px; }
#productTableWrap .col-xs { width:82px; }
#productTableWrap .col-sm { width:115px; }
#productTableWrap .col-md { width:150px; }
#productTableWrap .col-rich-text { width:220px; }
#productTableWrap .col-category { width:135px; }
#productTableWrap .col-employee { width:100px; }
#productTableWrap .col-link { width:135px; }
#productTableWrap .col-img { width:108px; }
#productTableWrap .col-note { width:155px; }
#productTableWrap .col-price,
#productTableWrap .col-price-summary { width:140px; }
#productTableWrap .col-compact-price {
  width:100px;
  min-width:100px;
  max-width:100px;
}

/* Keep the three compact choice columns aligned without squeezing their controls. */
#productTableWrap .col-employee {
  width:100px;
  min-width:100px;
  max-width:100px;
}
#productTableWrap .col-status {
  width:110px;
  min-width:110px;
  max-width:110px;
}
#productTableWrap .col-employee .employee-link-select,
#productTableWrap .col-status .product-status-select {
  width:100%;
  min-width:0;
  height:30px;
  min-height:30px;
  padding:0 22px 0 7px !important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
}

/* Selectable fields keep a clear click target, but the native arrow stays hidden. */
#productTableWrap .category-select,
#productTableWrap .employee-link-select,
#productTableWrap .product-status-select {
  padding:0 8px !important;
  border:1px solid #b8d8de !important;
  border-radius:5px;
  background-color:#fff !important;
}
#productTableWrap .category-select:hover,
#productTableWrap .employee-link-select:hover,
#productTableWrap .product-status-select:hover,
#productTableWrap .category-select:focus,
#productTableWrap .employee-link-select:focus,
#productTableWrap .product-status-select:focus {
  border-color:var(--primary) !important;
  box-shadow:0 0 0 2px rgba(20,107,120,.08) !important;
}
#productTableWrap .product-status-select.pending { color:#ad6904; background-color:#fff9ed !important; border-color:#e9c583 !important; }
#productTableWrap .product-status-select.done { color:#267b59; background-color:#f1faf5 !important; border-color:#b7ddca !important; }
#productTableWrap .product-status-select.found,
#productTableWrap .product-status-select.listing,
#productTableWrap .product-status-select.progress { color:#2378ad; background-color:#f1f8fc !important; border-color:#b6d6ea !important; }

/* Empty links are edited directly in the cell instead of through a prompt. */
#productTableWrap .product-link-inline-input {
  width:100%;
  min-width:0;
  height:30px;
  min-height:30px;
  padding:4px 0;
  border:0;
  border-bottom:1px solid #d7e1e5;
  border-radius:0;
  background:transparent;
  color:var(--ink);
  outline:none;
}
#productTableWrap .product-link-inline-input::placeholder { color:#8998a0; }
#productTableWrap .product-link-inline-input:hover,
#productTableWrap .product-link-inline-input:focus {
  border-bottom-color:var(--primary);
  box-shadow:none;
}

/* Product links: compact entry and clearly clickable link presentation. */
#productTableWrap .product-link-original-cell { display:grid; gap:6px; min-width:0; }
#productTableWrap .product-link-original-input { width:100%; min-width:0; height:32px; padding:5px 7px; border:1px solid #c9dfe4; border-radius:6px; background:#fbfdfe; color:var(--ink); font-size:12px; outline:none; }
#productTableWrap .product-link-original-input:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(20,107,120,.08); background:#fff; }
#productTableWrap .product-link-original-actions { display:flex; gap:6px; }
#productTableWrap .product-link-original-actions button { min-height:26px; padding:0 10px; border:1px solid #b8d8de; border-radius:5px; background:#f5fbfc; color:#087c8c; font-size:12px; cursor:pointer; }
#productTableWrap .product-link-original-actions button:hover { border-color:var(--primary); background:#eaf7f8; }
#productTableWrap .product-link-entry {
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
}
#productTableWrap .product-link-entry .product-link-inline-input {
  width:100%;
  padding:5px 4px;
  border:1px solid #c9dfe4;
  border-radius:6px;
  background:#fbfdfe;
  color:var(--ink);
  font-size:12px;
}
#productTableWrap .product-link-entry .product-link-inline-input::placeholder {
  color:#82949c;
}
#productTableWrap .product-link-cell {
  grid-template-columns:minmax(0,1fr) 28px;
  gap:5px;
  min-width:0;
}
#productTableWrap .product-direct-link {
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  min-height:28px;
  padding:0 7px;
  border:1px solid #c9e0e5;
  border-radius:6px;
  background:#f5fbfc;
  color:#087c8c;
  text-decoration:none;
}
#productTableWrap .product-direct-link:hover {
  border-color:#68aeb8;
  background:#eaf7f8;
  color:#056673;
}
#productTableWrap .product-link-icon {
  flex:0 0 auto;
  display:inline-flex;
  width:15px;
  height:15px;
  align-items:center;
  justify-content:center;
}
#productTableWrap .product-link-icon svg {
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#productTableWrap .product-link-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
}
#productTableWrap .product-link-edit {
  width:28px;
  min-height:28px;
  padding:0;
  border:1px solid #d4e1e5;
  border-radius:6px;
  background:#fff;
  color:#607780;
  font-size:11px;
}
#productTableWrap .product-link-edit:hover {
  border-color:#68aeb8;
  background:#f2fafb;
  color:#087c8c;
}

/* Cleaner image actions: compact round upload/delete buttons. */
#productTableWrap .image-icon-btn {
  width:22px;
  height:22px;
  min-height:22px;
  border-radius:6px;
  font-size:0;
  transition:background-color .15s ease,border-color .15s ease,transform .15s ease;
}
#productTableWrap .image-action-icon {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
#productTableWrap .image-upload-icon {
  border-color:#8fc7d0;
  background:#eef9fa;
  color:#087c8c;
}
#productTableWrap .image-delete-icon {
  border-color:#efb9bf;
  background:#fff4f5;
  color:#c63c47;
}
#productTableWrap .image-icon-btn:hover {
  transform:translateY(-1px);
  box-shadow:0 2px 5px rgba(23,52,64,.12);
}
#productTableWrap .image-text-actions { gap:6px; }
#productTableWrap .image-text-btn { min-width:42px; height:26px; min-height:26px; padding:0 9px; border:1px solid #b8d8de; border-radius:5px; background:#f5fbfc; color:#087c8c; font-size:12px; line-height:24px; text-align:center; cursor:pointer; transition:background-color .15s ease,border-color .15s ease,transform .15s ease; }
#productTableWrap .image-text-btn input { display:none; }
#productTableWrap .image-upload-text:hover { border-color:#68aeb8; background:#eaf7f8; transform:translateY(-1px); }
#productTableWrap .image-delete-text { border-color:#efb9bf; background:#fff6f7; color:#c63c47; }
#productTableWrap .image-delete-text:hover { border-color:#d96b73; background:#fff0f1; transform:translateY(-1px); }

/* Product photos: keep the complete source image visible, including portrait photos. */
#productTableWrap td.col-img {
  overflow:visible;
  vertical-align:top;
}
#productTableWrap .image-cell {
  overflow:visible;
  min-height:0;
}
#productTableWrap .product-thumb {
  display:block;
  width:96px;
  height:128px;
  max-width:96px;
  max-height:128px;
  object-fit:contain;
  object-position:center;
  background:#f7f9fb;
}
#productTableWrap .product-thumb-frame {
  display:grid;
  width:96px;
  height:128px;
  place-items:center;
  overflow:hidden;
  background:#f7f9fb;
}
#productTableWrap .product-thumb-frame > * { grid-area:1 / 1; }
#productTableWrap .product-thumb-unavailable {
  width:100%;
  padding:6px;
  color:#7f9098;
  font-size:11px;
  line-height:1.35;
  text-align:center;
}

/* Product editor: a wider, grouped workspace with a stable footer. */
#entryDialog.product-editor-dialog {
  width:min(980px, calc(100vw - 32px));
  max-width:980px;
  max-height:min(92vh, 900px);
  overflow:hidden;
  padding:0;
}
#entryDialog.product-editor-dialog form {
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  max-height:min(92vh, 900px);
  padding:0;
}
#entryDialog.product-editor-dialog #dialogTitle {
  margin:0;
  padding:18px 24px 14px;
  border-bottom:1px solid var(--line);
  background:#fbfdfe;
  color:#173440;
  font-size:21px;
}
#entryDialog.product-editor-dialog #dialogFields {
  min-height:0;
  overflow:auto;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  align-content:start;
  gap:14px 16px;
  margin:0;
  padding:18px 24px 22px;
}
#entryDialog.product-editor-dialog #dialogFields > label {
  display:grid;
  align-content:start;
  gap:6px;
  min-width:0;
  color:#58717b;
  font-size:12px;
  font-weight:600;
}
#entryDialog.product-editor-dialog #dialogFields > label.product-editor-wide,
#entryDialog.product-editor-dialog #dialogFields > label.dialog-field-wide {
  grid-column:1 / -1;
}
#entryDialog.product-editor-dialog #dialogFields input,
#entryDialog.product-editor-dialog #dialogFields select {
  width:100%;
  min-width:0;
  box-sizing:border-box;
  background:#fff;
}
#entryDialog.product-editor-dialog #dialogFields textarea {
  width:100%;
  min-height:82px;
  max-height:180px;
  box-sizing:border-box;
  resize:vertical;
  line-height:1.5;
  background:#fff;
}
#entryDialog.product-editor-dialog .product-editor-image-control {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:5px 8px;
  min-width:0;
}
#entryDialog.product-editor-dialog .product-editor-image-control input {
  grid-column:1 / -1;
}
#entryDialog.product-editor-dialog .product-editor-image-control small {
  overflow:hidden;
  color:#7a8d96;
  font-size:11px;
  font-weight:400;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#entryDialog.product-editor-dialog .product-editor-image-preview {
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#f7f9fb;
  object-fit:contain;
}
#entryDialog.product-editor-dialog .dialog-actions {
  justify-content:flex-end;
  margin:0;
  padding:13px 24px;
  border-top:1px solid var(--line);
  background:#fbfdfe;
}
@media (max-width:900px) {
  #entryDialog.product-editor-dialog #dialogFields { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:560px) {
  #entryDialog.product-editor-dialog { width:calc(100vw - 18px); }
  #entryDialog.product-editor-dialog #dialogFields { grid-template-columns:1fr; padding:14px 16px 18px; }
  #entryDialog.product-editor-dialog #dialogFields > label.product-editor-wide,
  #entryDialog.product-editor-dialog #dialogFields > label.dialog-field-wide { grid-column:auto; }
  #entryDialog.product-editor-dialog #dialogTitle { padding-left:16px; padding-right:16px; }
  #entryDialog.product-editor-dialog .dialog-actions { padding-left:16px; padding-right:16px; }
}

.dialog,.data-dialog { border-radius:8px; }
dialog::backdrop { background:rgba(9,32,40,.52); }
.rich-text-head,.data-dialog-head,.image-preview-head { color:#173440; }
.rich-text-toolbar { background:#f1f5f6; }

.login-screen { background:#eaf0f2; }
.login-card {
  width:min(410px,100%);
  gap:17px;
  padding:30px;
  border-color:#ccd9de;
  border-radius:10px;
  box-shadow:0 26px 70px rgba(16,42,51,.16);
}
.login-brand { gap:14px; padding-bottom:20px; }
.login-brand .brand-mark { width:54px; height:54px; }
.login-brand strong { color:#15323e; font-size:19px; }
.login-card input,.login-card .primary { min-height:46px; }

@media (max-width:1280px) {
  .sidebar { width:228px; }
  .main { padding:20px; }
  .topbar { padding-top:12px; }
}
@media (max-width:1100px) {
  .sidebar { width:100%; padding:14px; }
  .brand { min-height:62px; padding-bottom:12px; }
  .sidebar nav { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
  .topbar { position:relative; margin:0 0 16px; }
}
@media (max-width:760px) {
  .main { padding:12px; }
  .topbar { align-items:flex-start; padding:8px 0 12px; }
  h1 { font-size:23px; }
  .actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .current-user { grid-column:1 / -1; justify-content:center; }
  .brand-copy span { display:none; }
  .metric { min-height:96px; padding:15px; }
}
.primary,.ghost,.toolbar-actions button { white-space:nowrap; }

@media (max-width:760px) {
  .sidebar nav { display:flex; gap:4px; overflow-x:auto; overflow-y:hidden; padding-bottom:8px; }
  .sidebar .nav-item { flex:0 0 auto; min-width:max-content; padding:0 13px; }
}
/* SANYU transparent brand and sidebar overflow */
.sidebar { overflow-x:hidden; }
.sidebar nav {
  overflow-x:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.sidebar nav::-webkit-scrollbar { display:none; width:0; height:0; }
.login-brand { gap:16px; padding-bottom:20px; }
.login-brand .brand-mark { width:164px; height:58px; }
@media (max-width:1100px) {
  .sidebar nav { overflow-x:auto; overflow-y:hidden; }
}
/* Compact SANYU brand alignment */
.sidebar .brand {
  min-height:58px;
  align-items:center;
  gap:10px;
  padding:0 4px 14px;
}
.sidebar .brand-mark { width:96px; height:38px; }
.brand-copy,.login-brand-copy { display:flex; align-items:center; min-width:0; }
.sidebar .brand strong { margin:0; line-height:1.15; }
.login-brand { justify-content:center; align-items:center; gap:15px; padding-bottom:20px; }
.login-brand .brand-mark { width:168px; height:60px; }
.login-brand strong { margin:0; line-height:1.15; }
/* SANYU logo-only branding */
.sidebar .brand {
  min-height:66px;
  justify-content:center;
  align-items:center;
  padding:0 6px 14px;
}
.sidebar .brand-mark { width:154px; height:52px; }
.login-brand {
  justify-content:center;
  align-items:center;
  padding-bottom:20px;
}

/* Collapsible primary navigation */
.sidebar {
  flex:0 0 auto;
  transition:width .2s ease,padding .2s ease;
}
.sidebar .brand {
  position:relative;
  justify-content:space-between;
}
.sidebar-toggle {
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid rgba(126,218,229,.28);
  border-radius:7px;
  color:#72d5e2;
  background:rgba(23,75,86,.54);
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .2s ease;
}
.sidebar-toggle:hover,
.sidebar-toggle:focus-visible {
  border-color:#72d5e2;
  color:#fff;
  background:#1d4b56;
  outline:none;
}
.sidebar-toggle svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
  transition:transform .2s ease;
}
.nav-item { display:flex; align-items:center; }
.nav-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-icon { display:none; align-items:center; justify-content:center; width:32px; height:32px; border-radius:7px; color:#a9d2d8; font-size:15px; font-weight:750; line-height:1; }

@media (min-width:1101px) {
  body.sidebar-collapsed .sidebar {
    width:45px;
    min-width:0;
    flex-basis:45px;
    padding-left:4px;
    padding-right:4px;
  }
  body.sidebar-collapsed .sidebar .brand {
    gap:0;
    padding-left:0;
    padding-right:0;
  }
  body.sidebar-collapsed .sidebar .brand { justify-content:center; }
  body.sidebar-collapsed .sidebar .brand-mark { display:none; }
  body.sidebar-collapsed .sidebar-toggle { width:34px; height:32px; }
  body.sidebar-collapsed .sidebar-toggle svg { transform:rotate(180deg); }
  body.sidebar-collapsed .nav-item,
  body.sidebar-collapsed .nav-item-with-count {
    justify-content:center;
    gap:0;
    padding-left:0;
    padding-right:0;
  }
  body.sidebar-collapsed .nav-label,
  body.sidebar-collapsed .nav-count,
  body.sidebar-collapsed .sidebar-foot span,
  body.sidebar-collapsed .sidebar-foot strong { display:none; }
  body.sidebar-collapsed .nav-icon { display:inline-flex; width:28px; height:32px; font-size:14px; }
  body.sidebar-collapsed .nav-item:hover { transform:none; }
  body.sidebar-collapsed .sidebar-foot { justify-content:center; padding-left:0; padding-right:0; }
}
.login-brand .brand-mark { width:232px; height:86px; }
/* Operation outline file center */
.outline-category-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:54px;
  margin-bottom:12px;
  padding:8px 12px;
  border:1px solid #d6e1e5;
  border-radius:7px;
  background:#fff;
  box-shadow:0 2px 8px rgba(20,50,60,.04);
}
.outline-category-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.outline-category-tabs button {
  min-width:82px;
  min-height:34px;
  padding:0 15px;
  border:1px solid transparent;
  border-radius:5px;
  background:#eef3f5;
  color:#4a606a;
  font-weight:700;
  cursor:pointer;
}
.outline-category-tabs button:hover { border-color:#b8d2d8; background:#f8fbfc; color:#0d6f7d; }
.outline-category-tabs button.active { border-color:#0d7f8e; background:#0d7f8e; color:#fff; }
.outline-summary { flex:0 0 auto; color:#5c7079; font-size:13px; }
.outline-upload-panel { display:grid; grid-template-columns:minmax(210px,310px) 1fr; gap:24px; align-items:center; margin-bottom:12px; padding:18px; }
.outline-upload-copy { display:flex; flex-direction:column; gap:5px; }
.outline-upload-copy strong { color:#173440; font-size:16px; }
.outline-upload-copy span { color:#6b7f88; font-size:13px; line-height:1.5; }
.outline-upload-form { display:grid; grid-template-columns:150px minmax(220px,1fr) 112px 78px 100px; gap:8px; align-items:center; }
.outline-upload-form > select,.outline-upload-form > input { width:100%; min-height:38px; }
.outline-upload-categories { display:flex; flex-wrap:wrap; align-content:flex-start; gap:6px; width:100%; min-height:38px; max-height:92px; overflow-y:auto; padding:6px; border:1px solid #cbd9de; border-radius:5px; background:#fff; }
.outline-category-option { display:inline-flex; align-items:center; gap:5px; min-height:28px; padding:3px 8px; border:1px solid #d6e2e6; border-radius:4px; background:#f7fafb; color:#31515d; cursor:pointer; font-size:13px; white-space:nowrap; }
.outline-category-option:has(input:checked) { border-color:#0d8796; background:#e7f7f8; color:#056b78; font-weight:700; }
.outline-category-option input { width:14px; min-height:14px; margin:0; accent-color:#0d8796; }
.outline-file-picker { position:relative; display:flex; align-items:center; justify-content:center; min-height:38px; border:1px solid #cbd9de; border-radius:5px; background:#fff; color:#166f7b; font-weight:700; cursor:pointer; }
.outline-file-picker:hover { border-color:#0d7f8e; background:#f4fafb; }
.outline-file-picker input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.outline-upload-progress { grid-column:2 / -1; margin-top:-12px; color:#4d6b75; font-size:12px; }
.outline-rich-text-row { display:grid; grid-template-columns:54px minmax(260px,1.6fr) 120px minmax(220px,1fr) 150px; gap:14px; align-items:start; min-height:120px; padding:16px 18px; border-bottom:1px solid #e0e8eb; background:#fff; }
.outline-rich-text-row:hover { background:#f7fafb; }
.outline-rich-text-content { min-width:0; }
.outline-rich-text-content .rich-text-cell { min-height:76px; }
.outline-rich-text-content > strong { display:block; margin-bottom:7px; color:#173440; font-size:15px; }
.outline-rich-text-content > span { display:block; margin-top:6px; color:#788b93; font-size:12px; }
.outline-rich-text-row .outline-file-actions { padding-top:2px; }
.outline-library { padding:0; overflow:hidden; }
.outline-library .panel-head { min-height:58px; margin:0; padding:0 18px; border-bottom:1px solid #dce6e9; }
.outline-file-list { min-height:180px; }
.outline-file-row { display:grid; grid-template-columns:54px minmax(260px,1.6fr) 120px minmax(220px,1fr) 150px; gap:14px; align-items:center; min-height:82px; padding:13px 18px; border-bottom:1px solid #e0e8eb; background:#fff; }
.outline-file-row:last-child { border-bottom:0; }
.outline-file-row:hover { background:#f7fafb; }
.outline-file-type { display:flex; align-items:center; justify-content:center; width:48px; height:38px; border-radius:5px; background:#eaf2f4; color:#3f606b; font-size:11px; font-weight:800; }
.outline-file-type.sheet { background:#e8f5ee; color:#28764e; }
.outline-file-type.video { background:#edf0fa; color:#4d61a1; }
.outline-file-type.pdf { background:#fbecef; color:#b64250; }
.outline-file-type.image { background:#fff2df; color:#9a6416; }
.outline-file-type.archive { background:#f2edf8; color:#75549b; }
.outline-file-type.slides { background:#fff0e8; color:#a95b2c; }
.outline-file-main,.outline-file-meta { min-width:0; display:flex; flex-direction:column; gap:4px; }
.outline-file-main strong { overflow:hidden; color:#173440; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.outline-file-main span,.outline-file-meta span { overflow:hidden; color:#788b93; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.outline-file-category span { display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border-radius:4px; background:#eaf4f6; color:#0b7080; font-size:12px; font-weight:700; }
.outline-file-meta strong { color:#425b65; font-size:13px; }
.outline-file-actions { display:flex; justify-content:flex-end; gap:7px; }
.outline-file-actions button { min-width:62px; min-height:34px; }
.outline-file-actions .danger { border-color:#ecc8cc; color:#bd414b; }
.outline-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:210px; color:#758992; text-align:center; }
.outline-empty strong { color:#38525c; font-size:15px; }
.outline-error { color:#bd414b; }
@media (max-width:1180px) {
  .outline-upload-panel { grid-template-columns:1fr; gap:12px; }
  .outline-upload-progress { grid-column:1; margin:0; }
  .outline-file-row { grid-template-columns:54px minmax(220px,1fr) 110px 150px; }
  .outline-file-meta { display:none; }
}
@media (max-width:760px) {
  .outline-category-bar { align-items:flex-start; flex-direction:column; }
  .outline-upload-form { grid-template-columns:1fr 1fr; }
  .outline-upload-form input { grid-column:1 / -1; }
  .outline-upload-progress { grid-column:1 / -1; margin:0; }
  .outline-file-row { grid-template-columns:46px minmax(0,1fr); gap:10px; padding:12px; }
  .outline-file-category { grid-column:2; }
  .outline-file-actions { grid-column:1 / -1; justify-content:flex-start; }
  .outline-rich-text-row { grid-template-columns:46px minmax(0,1fr); gap:10px; padding:12px; }
  .outline-rich-text-row .outline-file-category { grid-column:2; }
  .outline-rich-text-row .outline-file-actions { grid-column:1 / -1; justify-content:flex-start; }
}

/* AliExpress tax reconciliation */
.ali-tax-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(160px,1fr));
  gap:12px;
  margin-bottom:12px;
}
.ali-tax-metric {
  position:relative;
  display:grid;
  gap:4px;
  min-height:102px;
  padding:16px 18px 14px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  box-shadow:var(--shadow);
}
.ali-tax-metric::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:#187789; }
.ali-tax-metric.amber::before { background:#d8911f; }
.ali-tax-metric.green::before { background:#26906c; }
.ali-tax-metric.red::before { background:#c84b57; }
.ali-tax-metric span,.ali-tax-metric small { color:var(--muted); font-size:12px; }
.ali-tax-metric strong { color:#172833; font-size:24px; line-height:1.1; }
.ali-tax-toolbar {
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  box-shadow:var(--shadow);
}
.ali-tax-filters { flex:1 1 720px; }
.ali-tax-filters > input[type="search"] { min-width:260px; flex:1 1 300px; }
.ali-tax-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex:0 1 auto; }
.ali-tax-rate { display:flex; align-items:center; gap:7px; min-height:36px; padding:0 8px; border:1px solid var(--line); border-radius:6px; background:#f9fbfc; color:var(--muted); font-size:12px; }
.ali-tax-rate input { width:92px; min-height:30px; padding:4px 7px; border:0; background:transparent; }
.ali-tax-import { position:relative; cursor:pointer; }
.ali-tax-import input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ali-tax-table-wrap { max-height:calc(100vh - 356px); min-height:330px; margin-top:10px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.ali-tax-table { width:100%; min-width:0; table-layout:fixed; border-collapse:separate; border-spacing:0; }
.ali-tax-table-wrap { overflow-x:hidden; }
.ali-tax-table th,.ali-tax-table td { min-width:0; padding:8px 7px; border-right:1px solid #dfe7eb; border-bottom:1px solid #dfe7eb; vertical-align:middle; }
.ali-tax-table th { position:sticky; top:0; z-index:3; height:42px; overflow:hidden; background:#edf2f5; color:#546875; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.ali-tax-table tr:last-child td { border-bottom:0; }
.ali-tax-table th:last-child,.ali-tax-table td:last-child { border-right:0; }
.ali-tax-table tbody tr { height:60px; }
.ali-tax-table tbody tr:hover { background:#f8fbfc; }
.ali-tax-table th:nth-child(1) { width:3.5%; }
.ali-tax-table th:nth-child(2) { width:13%; }
.ali-tax-table th:nth-child(3) { width:7%; }
.ali-tax-table th:nth-child(4) { width:5%; }
.ali-tax-table th:nth-child(5) { width:5.5%; }
.ali-tax-table th:nth-child(6) { width:10%; }
.ali-tax-table th:nth-child(7) { width:9%; }
.ali-tax-table th:nth-child(8) { width:5.5%; }
.ali-tax-table th:nth-child(9) { width:7%; }
.ali-tax-table th:nth-child(10) { width:6.5%; }
.ali-tax-table th:nth-child(11) { width:6.5%; }
.ali-tax-table th:nth-child(12) { width:8.5%; }
.ali-tax-table th:nth-child(13) { width:7%; }
.ali-tax-code { overflow-wrap:anywhere; color:#203743; font-family:Consolas,"Microsoft YaHei",sans-serif; font-size:12px; }
.ali-tax-number,.ali-tax-money { text-align:right; font-variant-numeric:tabular-nums; }
.ali-tax-calculated { color:#0e6e80; font-weight:700; }
.ali-tax-input { width:100%; min-height:34px; padding:6px 8px; border:1px solid #d5e0e5; border-radius:5px; background:#fff; }
.ali-tax-input:focus { border-color:#168ca0; box-shadow:0 0 0 2px rgba(22,140,160,.1); }
.ali-tax-status { display:inline-flex; align-items:center; justify-content:center; min-width:64px; min-height:28px; padding:0 9px; border:1px solid; border-radius:5px; font-size:12px; font-weight:700; }
.ali-tax-status.status-pending { border-color:#efc981; background:#fff9ed; color:#b87300; }
.ali-tax-status.status-normal { border-color:#b7dfce; background:#f1fbf6; color:#17815c; }
.ali-tax-status.status-error { border-color:#f0b8bd; background:#fff4f5; color:#c63c47; }
.ali-tax-difference { display:block; margin-top:5px; color:var(--muted); font-size:11px; font-variant-numeric:tabular-nums; }
#aliTaxPagination { margin-top:10px; }
.ali-tax-pagination-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ali-tax-page-jump { display:inline-flex; align-items:center; gap:4px; color:var(--muted); white-space:nowrap; }
.ali-tax-page-jump input { width:54px; min-height:32px; padding:4px 6px; border:1px solid var(--line); border-radius:5px; color:var(--ink); text-align:center; }
@media (max-width:1280px) {
  .ali-tax-metrics { grid-template-columns:repeat(2,minmax(160px,1fr)); }
  .ali-tax-actions { flex:1 1 100%; justify-content:flex-start; }
  .ali-tax-table-wrap { max-height:calc(100vh - 430px); }
}

/* Compact AliExpress tax ledger: keep all columns inside the page. */
.ali-tax-table td { overflow:hidden; font-size:12px; }
.ali-tax-table .ali-tax-code { overflow:hidden; overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap; }
.ali-tax-table .ali-tax-input { min-width:0; min-height:32px; padding:5px 6px; font-size:12px; }
.ali-tax-table .ali-tax-status { min-width:0; width:100%; padding:0 4px; }
.ali-tax-table .tax-delete { min-width:0; width:100%; padding:5px 2px; }
.ali-tax-copyable { cursor:pointer; color:#087f91; text-decoration:underline dotted; text-underline-offset:3px; }
.ali-tax-copyable:hover { background:#eef8fa; }
.ali-tax-rate-head { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
.ali-tax-rate-toggle { width:20px; height:20px; padding:0; border:0; border-radius:4px; background:transparent; color:#78909a; cursor:pointer; font-size:13px; line-height:20px; opacity:.72; }
.ali-tax-rate-toggle:hover,.ali-tax-rate-toggle.is-unlocked { background:#e7f5f7; color:#087f91; opacity:1; }
.ali-tax-actions button:disabled,.ali-tax-actions input:disabled { cursor:not-allowed; opacity:.55; }
.copy-toast { position:fixed; left:50%; top:22%; z-index:1000; padding:7px 14px; border:1px solid rgba(23,129,92,.25); border-radius:6px; background:rgba(23,129,92,.72); color:#fff; font-size:12px; opacity:0; pointer-events:none; transform:translate(-50%,-6px); transition:opacity .18s ease,transform .18s ease; }
.copy-toast.is-visible { opacity:.68; transform:translate(-50%,0); }
@media (max-width:1440px) {
  .ali-tax-table th,.ali-tax-table td { padding-left:5px; padding-right:5px; font-size:11px; }
  .ali-tax-table .ali-tax-input { padding-left:4px; padding-right:4px; font-size:11px; }
  .ali-tax-table th:nth-child(2) { width:12%; }
  .ali-tax-table th:nth-child(6) { width:9%; }
  .ali-tax-table th:nth-child(7) { width:9%; }
  .ali-tax-table th:nth-child(12) { width:9%; }
  .ali-tax-table th:nth-child(13) { width:7%; }
}

.ali-tax-query-link { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 13px; border:1px solid #ccd9de; border-radius:6px; color:#203640; font-weight:600; text-decoration:none; white-space:nowrap; }
.ali-tax-query-link:hover { border-color:#63acb6; color:#057989; background:#f4fbfc; }

.ali-tax-checker-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 10px; padding:10px 12px; border:1px solid #c9dfe5; border-left:3px solid #168ca0; border-radius:7px; background:#f8fcfd; }
.ali-tax-checker-bar > div:first-child { min-width:0; display:grid; gap:3px; }
.ali-tax-checker-bar strong { color:#173844; font-size:13px; }
.ali-tax-checker-bar small { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ali-tax-checker-status { display:inline-flex; width:max-content; padding:2px 7px; border-radius:10px; background:#e8f1f4; color:#60757d; font-size:11px; font-weight:700; }
.ali-tax-checker-status.is-running,.ali-tax-checker-status.is-starting,.ali-tax-checker-status.is-pausing { background:#fff4df; color:#aa6b00; }
.ali-tax-checker-status.is-completed { background:#e8f7ef; color:#16805a; }
.ali-tax-checker-status.is-failed,.ali-tax-checker-status.is-needs_credentials,.ali-tax-checker-status.is-interrupted { background:#fff0f1; color:#bd414c; }
.ali-tax-checker-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.ali-tax-checker-actions button { min-height:32px; padding:0 10px; border:1px solid #bfd3d9; border-radius:5px; background:#fff; color:#20515e; cursor:pointer; }
.ali-tax-checker-actions button:first-child { border-color:#0d879a; background:#0d879a; color:#fff; }
.ali-tax-checker-actions button:disabled { cursor:not-allowed; opacity:.5; }
.ali-tax-query-state { display:block; margin-top:4px; color:var(--muted); font-size:10px; }

.ali-tax-table th:nth-child(14) { width:4%; }
.ali-tax-checker { overflow:hidden; color:#176d7a; font-weight:700; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.table-sort {
  display:inline-flex;
  align-items:center;
  gap:4px;
  width:100%;
  min-height:24px;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.table-sort:hover,
.table-sort.active { color:#086f80; }
.sort-arrow {
  color:#086f80;
  font-size:12px;
  line-height:1;
}

/* workflow-table-redesign-20260801 */
.employee-work-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.workflow-sheet { overflow:hidden; background:#fff; border:1px solid #d7e1e5; border-radius:7px; box-shadow:var(--shadow); }
.workflow-sheet.workflow-readonly { background:#fff; }
.workflow-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px 14px; }
.workflow-sheet-head > div { display:flex; align-items:center; gap:10px; min-width:0; }
.workflow-sheet-head h3 { margin:0; color:var(--ink); font-size:20px; line-height:1.35; }
.workflow-sheet-head > span { flex:none; color:var(--muted); font-size:13px; }
.workflow-table-wrap { width:100%; overflow-x:auto; padding:0 20px; }
.workflow-table { width:100%; min-width:820px; table-layout:fixed; border-collapse:collapse; border-spacing:0; }
.workflow-table .workflow-content-col { width:38%; }
.workflow-table .workflow-duty-col { width:40%; }
.workflow-table .workflow-notice-col { width:22%; }
.workflow-table thead th { position:static; z-index:auto; height:auto; padding:11px 16px; border:1px solid #cbd8de; background:#eaf2ff; color:#132f3c; text-align:left; font-size:15px; font-weight:750; letter-spacing:0; }
.workflow-table tbody tr { border:0; }
.workflow-table tbody td { height:auto; padding:10px 16px; border:1px solid #d6dee2; background:#fff; vertical-align:top; }
.workflow-table tbody tr:hover td { background:#fbfdfe; }
.workflow-text { min-height:44px; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; color:#263b46; line-height:1.65; }
.workflow-notice-value:empty::before { content:"-"; color:#a0adb5; }
.workflow-row-actions { display:flex; justify-content:flex-end; gap:6px; margin-top:10px; }
.workflow-row-actions button,.workflow-edit-actions button { min-height:30px; padding:0 10px; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); cursor:pointer; }
.workflow-row-actions button:hover,.workflow-edit-actions button:hover { border-color:var(--primary); color:var(--primary); }
.workflow-row-actions button:last-child { color:#bd424a; }
.workflow-empty-row td { padding:22px 16px !important; color:var(--muted); text-align:center; }
.workflow-edit-textarea { display:block; width:100%; min-height:92px; resize:vertical; padding:9px 10px; border:1px solid #9dcbd2; border-radius:5px; background:#fff; line-height:1.55; }
.workflow-edit-actions { display:flex; justify-content:flex-end; gap:7px; margin-top:8px; }
.workflow-edit-actions .primary { color:#fff; background:var(--primary); border-color:var(--primary); }
.workflow-add-grid { display:grid; grid-template-columns:38fr 40fr 22fr; gap:8px; padding:12px 20px 18px; background:#f8fbfc; }
.workflow-add-grid > textarea,.workflow-add-notice textarea { width:100%; min-height:78px; resize:vertical; padding:9px 10px; border-radius:5px; line-height:1.5; }
.workflow-add-notice { display:grid; grid-template-rows:1fr auto; gap:8px; }
.workflow-add-notice .primary { justify-self:end; min-height:34px; }
@media (max-width:760px) {
  .workflow-sheet-head { padding:15px 14px 11px; }
  .workflow-sheet-head h3 { font-size:17px; }
  .workflow-table-wrap { padding:0 14px; }
  .workflow-table { min-width:720px; }
  .workflow-add-grid { grid-template-columns:1fr; padding:10px 14px 15px; }
}
/* product-dashboard-redesign-20260801 */
.product-dashboard-toolbar { min-height:64px; margin-bottom:12px; padding:10px 14px; }
.dashboard-period-copy { display:grid; grid-template-columns:auto auto; align-items:center; column-gap:10px; row-gap:2px; }
.dashboard-period-copy strong { color:#173440; font-size:15px; }
.dashboard-period-copy span { color:#506774; font-weight:600; }
.dashboard-period-copy small { grid-column:1 / -1; color:#82919a; font-size:11px; }
.dashboard-period-controls { gap:6px; }
.dashboard-step { width:34px; min-width:34px; height:34px; padding:0; border-color:#d5e0e4; color:#48616d; font-size:22px; line-height:1; }
.product-dashboard-metrics { grid-template-columns:repeat(5,minmax(135px,1fr)); gap:10px; }
.dashboard-metric { min-height:112px; padding:16px 18px; }
.dashboard-metric strong { margin-top:7px; font-size:28px; line-height:1; }
.dashboard-metric small { display:block; margin-top:9px; color:#7a8b94; font-size:11px; }
.dashboard-metric.metric-total::after { background:#07899a; }
.dashboard-metric.metric-pending::after { background:#e59a29; }
.dashboard-metric.metric-done::after { background:#329064; }
.dashboard-metric.metric-rate::after { background:#4386b5; }
.dashboard-metric.metric-people::after { background:#758792; }
.dashboard-panel { min-width:0; padding:16px 18px; }
.dashboard-panel .panel-head { align-items:flex-start; margin-bottom:12px; padding-bottom:10px; }
.dashboard-panel .panel-head > div { display:grid; gap:3px; }
.dashboard-panel .panel-head h2 { margin:0; }
.dashboard-panel .panel-head small { color:#84939b; font-size:11px; }
.dashboard-bar { grid-template-columns:minmax(100px,140px) minmax(120px,1fr) 58px; gap:10px; margin:11px 0; }
.dashboard-bar > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.dashboard-bar > span { display:flex; justify-content:flex-end; align-items:baseline; gap:5px; color:#263f4a; font-variant-numeric:tabular-nums; }
.dashboard-bar > span b { font-size:13px; }
.dashboard-bar > span small { color:#93a0a7; font-size:10px; }
.dashboard-bar .bar-fill.pending { background:#e59a29; }
.dashboard-bar .bar-fill.found { background:#448ec2; }
.dashboard-bar .bar-fill.listing { background:#6c86be; }
.dashboard-bar .bar-fill.done { background:#329064; }
.dashboard-bar .bar-fill.bad { background:#d75b61; }
.salesperson-summary { border:1px solid #e2e8eb; border-radius:6px; overflow:auto; }
.salesperson-row { grid-template-columns:minmax(130px,1.4fr) repeat(6,minmax(70px,1fr)) minmax(122px,1.2fr); min-width:850px; }
.salesperson-row > * { display:flex; align-items:center; justify-content:center; min-height:42px; padding:8px 10px; border-right:1px solid #edf1f3; }
.salesperson-row > :last-child { border-right:0; }
.salesperson-row > :first-child { justify-content:flex-start; }
.salesperson-row.is-unassigned { background:#fff9ee; }
.salesperson-row .summary-pending { color:#c67c12; font-weight:700; }
.salesperson-row .summary-done { color:#27825a; font-weight:700; }
.salesperson-rate { gap:8px; }
.salesperson-rate i { width:62px; height:6px; overflow:hidden; border-radius:6px; background:#e7edef; }
.salesperson-rate i b { display:block; height:100%; border-radius:6px; background:#329064; }
.salesperson-rate em { min-width:32px; color:#50646e; font-size:11px; font-style:normal; }
.owner-workload-list { display:grid; gap:2px; }
.owner-workload { display:grid; grid-template-columns:24px minmax(90px,150px) minmax(100px,1fr) 30px; gap:9px; align-items:center; min-height:38px; border-bottom:1px solid #edf1f3; }
.owner-workload:last-child { border-bottom:0; }
.owner-workload.is-unassigned { color:#b36d0c; }
.owner-rank { display:flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:4px; background:#edf3f5; color:#60727c; font-size:11px; }
.owner-workload strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.owner-workload b { text-align:right; font-size:13px; }
.dashboard-recent-list { gap:0; }
.dashboard-recent { grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; min-height:44px; padding:7px 4px; border:0; border-bottom:1px solid #edf1f3; background:transparent; }
.dashboard-recent:last-child { border-bottom:0; }
.recent-product-no { min-width:38px; color:#70828c; font-size:11px; font-weight:700; }
.dashboard-recent > div { display:grid; min-width:0; gap:2px; }
.dashboard-recent > div strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.dashboard-recent > div small { color:#87969e; font-size:11px; }
.dashboard-status { display:inline-flex; align-items:center; min-height:24px; padding:0 8px; border:1px solid #dbe3e7; border-radius:4px; background:#f4f7f8; color:#5d707a; font-size:11px; white-space:nowrap; }
.dashboard-status.pending { border-color:#f0cf98; background:#fff8eb; color:#bb7107; }
.dashboard-status.found { border-color:#b9d7ef; background:#f0f8fe; color:#2677b5; }
.dashboard-status.listing { border-color:#c8d5ed; background:#f3f6fc; color:#5272ad; }
.dashboard-status.done { border-color:#bfe2cf; background:#f0faf5; color:#247b54; }
.dashboard-status.bad { border-color:#efc2c5; background:#fff4f4; color:#bf454c; }
.dashboard-empty { display:flex; align-items:center; justify-content:center; min-height:110px; margin:0; color:#8a9aa2; font-size:12px; }
@media (max-width:1250px) { .product-dashboard-metrics { grid-template-columns:repeat(3,minmax(150px,1fr)); } }
@media (max-width:900px) { .dashboard-primary-grid,.dashboard-secondary-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .product-dashboard-metrics { grid-template-columns:1fr 1fr; } .product-dashboard-toolbar { align-items:stretch; } .dashboard-period-controls { flex-wrap:wrap; } .dashboard-period-controls input { flex:1; } }

/* total-dashboard-20260801 */
.total-dashboard-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:62px; margin-bottom:12px; padding:12px 16px; border:1px solid #d8e2e6; border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.total-dashboard-heading > .total-dashboard-copy { display:grid; gap:4px; }
.total-dashboard-heading strong { color:#173440; font-size:15px; }
.total-dashboard-heading span,.total-dashboard-heading small { color:#7c8e97; font-size:11px; }
.total-metrics { display:grid; grid-template-columns:repeat(6,minmax(130px,1fr)); gap:10px; margin-bottom:12px; }
.total-metric { position:relative; display:grid; min-height:126px; padding:16px 17px; overflow:hidden; border:1px solid #d8e2e6; border-radius:7px; background:#fff; box-shadow:var(--shadow); text-align:left; }
.total-metric::before { content:""; position:absolute; left:0; top:17px; bottom:17px; width:3px; background:#168a98; }
.total-metric.blue::before { background:#4386b5; }.total-metric.amber::before { background:#e29a2d; }.total-metric.red::before { background:#d45c63; }.total-metric.green::before { background:#329064; }.total-metric.slate::before { background:#73848e; }
.total-metric span { color:#657b86; font-size:12px; font-weight:700; }
.total-metric strong { margin-top:7px; color:#16323e; font-size:29px; line-height:1; }
.total-metric small { margin-top:8px; color:#7e9099; font-size:11px; }
.total-metric i { align-self:end; margin-top:10px; color:#168092; font-size:11px; font-style:normal; opacity:0; transform:translateY(3px); transition:.16s ease; }
.total-metric:hover { border-color:#b7cbd2; box-shadow:0 8px 22px rgba(22,51,63,.09); }.total-metric:hover i { opacity:1; transform:none; }
.total-alert-panel,.total-module-panel,.total-employee-panel { margin-bottom:12px; }
.total-alerts { display:grid; grid-template-columns:repeat(3,minmax(190px,1fr)); gap:8px; }
.total-alert { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; min-height:72px; padding:11px 13px; border:1px solid #e1e7ea; border-radius:6px; background:#fbfcfd; text-align:left; }
.total-alert > span { display:grid; justify-items:center; min-width:46px; }.total-alert > span strong { color:#b67513; font-size:22px; }.total-alert > span small { color:#8b989e; font-size:10px; }
.total-alert p { margin:0; overflow:hidden; color:#4d626c; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.total-alert i { color:#9aabb3; font-size:20px; font-style:normal; }
.total-alert.danger { border-color:#efc8ca; background:#fff8f8; }.total-alert.danger > span strong { color:#c84b53; }.total-alert.clear > span strong { color:#2b8a61; }
.total-alert:hover { border-color:#b8ccd3; background:#f6fafb; }
.total-latest-panel { margin-bottom:12px; }
.total-latest-data { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.total-latest-card { display:grid; gap:6px; min-height:120px; padding:14px 15px; border:1px solid #dfe7ea; border-left:3px solid #168a98; border-radius:6px; background:#fbfcfd; text-align:left; }
.total-latest-card.shipment { border-left-color:#4386b5; }.total-latest-card.logistics { border-left-color:#168a98; }.total-latest-card.store { border-left-color:#7b68a8; }
.total-latest-card span { color:#5e747f; font-size:12px; font-weight:700; }.total-latest-card strong { color:#173540; font-size:28px; line-height:1; }.total-latest-card small { min-height:28px; color:#7b8c94; font-size:11px; line-height:1.45; }.total-latest-card b { color:#168092; font-size:11px; font-weight:700; }.total-latest-card b.is-warning { color:#b67513; }.total-latest-card b.is-clear { color:#2b8a61; }.total-latest-card:hover { border-color:#a9c5ce; background:#f5fafb; box-shadow:0 6px 16px rgba(22,51,63,.07); }
.total-module-grid { display:grid; grid-template-columns:repeat(9,minmax(100px,1fr)); gap:8px; }
.total-module { display:grid; gap:5px; min-height:86px; padding:12px; border:1px solid #e0e7ea; border-radius:6px; background:#fbfcfd; text-align:left; }
.total-module span { color:#5e747f; font-size:11px; font-weight:700; }.total-module strong { color:#173540; font-size:22px; }.total-module small { color:#91a0a7; font-size:10px; }.total-module:hover { border-color:#a9c5ce; background:#f5fafb; }
.total-employee-summary { overflow:auto; border:1px solid #e0e7ea; border-radius:6px; }
.total-employee-row { display:grid; grid-template-columns:minmax(120px,1.3fr) minmax(95px,1fr) repeat(6,minmax(76px,.8fr)); min-width:800px; border-bottom:1px solid #e8edef; }
.total-employee-row:last-child { border-bottom:0; }.total-employee-row > * { display:flex; align-items:center; min-height:42px; padding:8px 11px; border-right:1px solid #edf1f3; font-size:12px; font-variant-numeric:tabular-nums; }.total-employee-row > :last-child { border-right:0; }.total-employee-row > span { justify-content:center; }
.total-employee-head { background:#f2f6f7; color:#657985; font-weight:700; }.total-employee-head > * { min-height:38px; font-size:11px; }.total-employee-row .done-count { color:#25815a; font-weight:700; }
@media (max-width:1450px) { .total-metrics { grid-template-columns:repeat(3,minmax(150px,1fr)); }.total-module-grid { grid-template-columns:repeat(5,minmax(110px,1fr)); } }
@media (max-width:900px) { .total-alerts,.total-latest-data { grid-template-columns:1fr 1fr; }.total-module-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px) { .total-metrics,.total-alerts,.total-latest-data { grid-template-columns:1fr 1fr; }.total-module-grid { grid-template-columns:1fr 1fr; }.total-dashboard-heading { align-items:flex-start; flex-direction:column; } }

/* total-dashboard-period-20260801 */
.total-dashboard-copy { display:grid; gap:3px; }
.total-dashboard-copy strong { color:#173440; font-size:15px; }
.total-dashboard-copy span { color:#536b76; font-size:12px; font-weight:700; }
.total-dashboard-copy small { color:#8a9aa2; font-size:10px; }
.total-dashboard-heading > .total-dashboard-period { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
.total-dashboard-period input { width:142px; min-height:34px; height:34px; font-variant-numeric:tabular-nums; }
.total-dashboard-period .period-segments { flex:0 0 auto; }
.total-dashboard-period.is-all > .dashboard-step,.total-dashboard-period.is-all > input { display:none; }
.total-dashboard-period button:disabled,.total-dashboard-period input:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width:760px) { .total-dashboard-heading > .total-dashboard-period { width:100%; justify-content:flex-start; flex-wrap:wrap; }.total-dashboard-period input { flex:1; }.total-dashboard-copy { width:100%; } }


/* sanyu-work-tree-20260801 */
.work-tree-jumpbar { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:66px; margin-bottom:12px; padding:12px 16px; border:1px solid #d8e2e6; border-radius:7px; background:#fff; box-shadow:var(--shadow); }
.work-tree-jumpbar > div:first-child { display:grid; gap:4px; }
.work-tree-jumpbar strong { color:#173540; font-size:15px; }
.work-tree-jumpbar span { color:#72858f; font-size:12px; }
.work-tree-section { margin-bottom:12px; padding:18px; border:1px solid #d8e2e6; border-radius:7px; background:#fff; box-shadow:var(--shadow); scroll-margin-top:12px; }
.work-tree-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:17px; padding-bottom:12px; border-bottom:1px solid #e3e9ec; }
.work-tree-section-head > div { display:grid; gap:2px; }
.work-tree-section-head h2 { margin:0; color:#173540; font-size:18px; }
.work-tree-section-head small { color:#7d8e97; font-size:11px; }
.work-tree-kicker { color:#168b99; font-size:10px; font-weight:800; }
.work-tree-flow { display:grid; grid-template-columns:repeat(6,minmax(145px,1fr)); gap:13px 18px; }
.work-tree-step { position:relative; display:flex; min-width:0; min-height:230px; flex-direction:column; padding:17px 14px 13px; border:1px solid #dce5e9; border-top:3px solid #208b99; border-radius:6px; background:#fbfcfd; }
.work-tree-step::after { content:"→"; position:absolute; right:-17px; top:50%; width:16px; color:#91a5ae; font-size:18px; text-align:center; transform:translateY(-50%); }
.work-tree-step:nth-child(6n)::after,.work-tree-step:last-child::after { display:none; }
.work-tree-step-number { position:absolute; top:-11px; right:11px; display:flex; width:29px; height:22px; align-items:center; justify-content:center; border-radius:4px; background:#173f4c; color:#fff; font-size:10px; font-weight:800; }
.work-tree-step-title { display:grid; gap:4px; padding-right:28px; }
.work-tree-step-title strong { color:#142f3a; font-size:15px; }
.work-tree-step-title span { color:#168493; font-size:11px; font-weight:700; }
.work-tree-step p { min-height:36px; margin:12px 0; color:#586d77; font-size:12px; line-height:1.55; }
.work-tree-step dl { display:grid; grid-template-columns:35px minmax(0,1fr); gap:5px; margin:0 0 8px; padding-top:9px; border-top:1px solid #e6ecef; font-size:11px; line-height:1.45; }
.work-tree-step dt { color:#8a99a0; }.work-tree-step dd { margin:0; color:#344d58; font-weight:700; }
.work-tree-step small { margin-top:auto; color:#84949c; font-size:10px; }
.work-tree-link { align-self:flex-start; min-height:26px; margin-top:9px; padding:3px 0; border:0; background:transparent; color:#087b8b; font-size:11px; font-weight:700; }
.work-tree-link:hover { color:#075e69; text-decoration:underline; }
.work-tree-handoffs { display:grid; grid-template-columns:150px repeat(5,minmax(130px,1fr)); margin-top:16px; overflow:hidden; border:1px solid #dce5e9; border-radius:6px; background:#f4f7f8; }
.work-tree-handoffs > * { display:flex; min-height:43px; align-items:center; padding:8px 12px; border-right:1px solid #dfe7ea; color:#526873; font-size:11px; }
.work-tree-handoffs > :last-child { border-right:0; }.work-tree-handoffs strong { background:#173f4c; color:#fff; font-size:12px; }
.work-tree-org-root { display:flex; align-items:center; justify-content:center; gap:15px; width:min(620px,100%); min-height:58px; margin:0 auto 26px; padding:10px 16px; border:1px solid #bed8de; border-radius:6px; background:#edf7f8; text-align:center; }
.work-tree-org-root strong { color:#124653; font-size:15px; }.work-tree-org-root span { color:#5e7a84; font-size:11px; }
.work-tree-org { position:relative; display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:12px; }
.work-tree-org::before { content:""; position:absolute; left:10%; right:10%; top:-14px; height:1px; background:#b7cbd2; }
.work-tree-team { position:relative; min-width:0; padding:14px; border:1px solid #dce5e9; border-top:4px solid #3b83b5; border-radius:6px; background:#fbfcfd; }
.work-tree-team::before { content:""; position:absolute; left:50%; top:-15px; width:1px; height:14px; background:#b7cbd2; }
.work-tree-team.cyan { border-top-color:#1b98a5; }.work-tree-team.violet { border-top-color:#796fa8; }.work-tree-team.amber { border-top-color:#d98d28; }.work-tree-team.green { border-top-color:#39956b; }
.work-tree-team-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; padding-bottom:10px; border-bottom:1px solid #e5ebee; }
.work-tree-team-head > div { display:grid; gap:3px; }.work-tree-team-head strong { color:#183641; font-size:14px; }.work-tree-team-head small { color:#758891; font-size:10px; }.work-tree-team-head b { color:#647983; font-size:11px; white-space:nowrap; }
.work-tree-members { display:flex; min-height:62px; align-content:flex-start; flex-wrap:wrap; gap:5px; padding:12px 0; }
.work-tree-members span { display:inline-flex; min-height:25px; align-items:center; padding:3px 8px; border:1px solid #d8e4e8; border-radius:4px; background:#fff; color:#284550; font-size:11px; font-weight:700; }
.work-tree-members em { color:#9aa7ad; font-size:11px; font-style:normal; }
.work-tree-team ul { display:grid; gap:7px; margin:0; padding:11px 0 0 17px; border-top:1px solid #e5ebee; color:#526873; font-size:11px; line-height:1.45; }
@media (max-width:1500px) { .work-tree-flow { grid-template-columns:repeat(3,minmax(190px,1fr)); }.work-tree-step:nth-child(6n)::after { display:block; }.work-tree-step:nth-child(3n)::after { display:none; }.work-tree-org { grid-template-columns:repeat(3,minmax(180px,1fr)); }.work-tree-org::before,.work-tree-team::before { display:none; }.work-tree-handoffs { grid-template-columns:repeat(3,1fr); }.work-tree-handoffs strong { grid-column:1/-1; }.work-tree-handoffs > * { border-bottom:1px solid #dfe7ea; } }
@media (max-width:900px) { .work-tree-flow,.work-tree-org { grid-template-columns:1fr 1fr; }.work-tree-step::after { display:none !important; }.work-tree-handoffs { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .work-tree-jumpbar { align-items:flex-start; flex-direction:column; }.work-tree-flow,.work-tree-org,.work-tree-handoffs { grid-template-columns:1fr; }.work-tree-step { min-height:205px; }.work-tree-handoffs strong { grid-column:auto; }.work-tree-org-root { align-items:flex-start; flex-direction:column; text-align:left; } }


/* sanyu-work-tree-editable-20260801 */
.work-tree-phasebar { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin-bottom:12px; }
.work-tree-phasebar span { display:flex; min-height:35px; align-items:center; gap:7px; padding:7px 10px; border:1px solid #dfe7ea; border-radius:5px; background:#f7f9fa; color:#526873; font-size:11px; font-weight:700; }
.work-tree-phasebar b { display:flex; width:20px; height:20px; align-items:center; justify-content:center; border-radius:4px; background:#dcecf0; color:#137887; font-size:9px; }
.work-tree-flow { grid-template-columns:repeat(5,minmax(180px,1fr)); }
.work-tree-step { min-height:250px; border-top-color:#3f84b4; box-shadow:0 3px 10px rgba(23,53,64,.04); }
.work-tree-step.phase-product { border-top-color:#1d97a5; }.work-tree-step.phase-order { border-top-color:#d89028; }.work-tree-step.phase-fulfillment { border-top-color:#378f68; }.work-tree-step.phase-closure { border-top-color:#766da3; }
.work-tree-step:nth-child(6n)::after { display:block; }.work-tree-step:nth-child(5n)::after { display:none; }
.work-tree-card-foot { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; min-height:34px; margin-top:8px; }
.work-tree-admin-actions,.work-tree-team-actions { display:flex; align-items:center; gap:4px; }
.work-tree-admin-actions { margin-left:auto; }
.work-tree-admin-actions button,.work-tree-team-actions button { min-width:28px; min-height:27px; padding:3px 7px; border:1px solid #d7e1e5; border-radius:4px; background:#fff; color:#42606c; font-size:10px; }
.work-tree-admin-actions button:hover,.work-tree-team-actions button:hover { border-color:#8fb9c2; color:#086f7d; }.work-tree-admin-actions button:disabled { opacity:.35; }
.work-tree-admin-actions .danger-text,.work-tree-team-actions .danger-text { color:#bd4b52; }
.work-tree-team { display:flex; min-height:285px; flex-direction:column; box-shadow:0 3px 10px rgba(23,53,64,.04); }
.work-tree-team-actions { margin-top:auto; padding-top:11px; border-top:1px solid #e5ebee; }
.dialog-field-wide { grid-column:1/-1; }.dialog-field-wide textarea { min-height:94px; resize:vertical; }
@media (max-width:1500px) { .work-tree-flow { grid-template-columns:repeat(3,minmax(190px,1fr)); }.work-tree-step:nth-child(5n)::after { display:block; }.work-tree-step:nth-child(3n)::after { display:none; } }
@media (max-width:900px) { .work-tree-phasebar { grid-template-columns:1fr 1fr; }.work-tree-toolbar-actions { width:100%; flex-wrap:wrap; } }
@media (max-width:620px) { .work-tree-phasebar { grid-template-columns:1fr; }.work-tree-card-foot { align-items:flex-start; flex-direction:column; }.work-tree-admin-actions { margin-left:0; } }
.work-tree-section-head-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.work-tree-sanitation-section { scroll-margin-top:18px; }
.work-tree-sanitation-grid { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr); gap:18px; }
.work-tree-sanitation-current,.work-tree-sanitation-upcoming { min-width:0; padding:14px 16px; border:1px solid #dce6e9; border-radius:6px; background:#fbfcfd; }
.work-tree-sanitation-current { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:14px; border-left:3px solid #329064; }
.work-tree-sanitation-current > div { display:grid; gap:5px; }
.work-tree-sanitation-current span,.work-tree-sanitation-upcoming > strong { color:#617680; font-size:11px; font-weight:700; }
.work-tree-sanitation-current strong { color:#173540; font-size:22px; line-height:1.1; }
.work-tree-sanitation-current small,.work-tree-sanitation-row small { color:#7b8d96; font-size:11px; font-variant-numeric:tabular-nums; }
.work-tree-sanitation-current > b { color:#25815a; font-size:11px; white-space:nowrap; }
.work-tree-sanitation-upcoming { display:grid; gap:0; }
.work-tree-sanitation-row { display:grid; grid-template-columns:100px minmax(0,1fr) auto auto; align-items:center; gap:10px; min-height:35px; border-top:1px solid #e3eaed; }
.work-tree-sanitation-row:first-of-type { margin-top:8px; }
.work-tree-sanitation-row > span { color:#284550; font-size:12px; font-weight:700; }
.work-tree-sanitation-row em { color:#b67513; font-size:10px; font-style:normal; }
.work-tree-sanitation-row .text-button { min-height:25px; padding:2px 4px; font-size:10px; }
.work-tree-sanitation-empty { display:grid; gap:5px; padding:18px; border:1px dashed #cbd9de; border-radius:6px; background:#fbfcfd; }
.work-tree-sanitation-empty strong { color:#173540; font-size:13px; }
.work-tree-sanitation-empty span { color:#7b8d96; font-size:11px; }
.work-tree-sanitation-sequence { display:flex; align-items:center; gap:10px; margin-top:10px; padding:9px 12px; border-top:1px solid #e4ebee; color:#7b8d96; font-size:10px; }
.work-tree-sanitation-sequence strong { color:#526873; font-size:11px; font-weight:600; }
@media (max-width:900px) { .work-tree-sanitation-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .work-tree-section-head-actions { align-items:flex-start; flex-direction:column; gap:6px; }.work-tree-sanitation-current { grid-template-columns:1fr; align-items:flex-start; }.work-tree-sanitation-row { grid-template-columns:80px minmax(0,1fr) auto; }.work-tree-sanitation-row em { display:none; }.work-tree-sanitation-sequence { align-items:flex-start; flex-direction:column; } }
 .shipment-toolbar .filters { display: grid; grid-template-columns: 160px minmax(280px, 1fr) auto auto; gap: 10px; width: 100%; }
.shipment-file-picker { display: inline-flex; align-items: center; justify-content: center; min-width: 150px; padding: 9px 14px; border: 1px solid var(--border); border-radius: 6px; background: #fff; cursor: pointer; }
.shipment-file-picker input { display: none; }
.shipment-list { display: grid; gap: 12px; }
.shipment-row { padding: 16px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.shipment-row-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.shipment-row-head strong { color: var(--ink); font-size: 16px; }
.shipment-row-head span { color: var(--muted); font-size: 13px; }
.shipment-actions { display: flex; gap: 8px; margin-left: auto; }
.shipment-actions button { padding: 6px 10px; border: 1px solid var(--border); border-radius: 6px; background: #fff; color: var(--ink); cursor: pointer; }
.shipment-actions button:last-child { color: #c43d4a; }
.shipment-row textarea { width: 100%; min-height: 100px; resize: vertical; border: 1px solid var(--border); border-radius: 6px; padding: 10px; line-height: 1.6; box-sizing: border-box; }
.shipment-file { display: block; margin-top: 8px; color: var(--muted); }
.shipment-files { display: grid; gap: 6px; margin-top: 10px; }
.shipment-file-item { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; background: #f7fafb; }
.shipment-file-item button { flex: 0 0 auto; padding: 5px 10px; border: 1px solid var(--primary); border-radius: 5px; background: #fff; color: var(--primary); cursor: pointer; }
.shipment-file-item span { min-width: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 13px; }
.shipment-empty { padding: 36px; text-align: center; color: var(--muted); }
.logistics-panel { overflow: hidden; }
.panel-help { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.logistics-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 12px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.logistics-tab { border: 1px solid var(--line); background: #f7fafb; color: #244451; border-radius: 7px; padding: 9px 14px; cursor: pointer; }
.logistics-tab span { margin-left: 6px; color: var(--muted); font-size: 12px; }
.logistics-tab.active { border-color: var(--primary); background: var(--primary); color: #fff; }
.logistics-tab.active span { color: #d9fbff; }
.logistics-toolbar { margin: 0 0 12px; padding: 0; border: 0; box-shadow: none; }
.logistics-toolbar .filters { display: flex; gap: 10px; flex: 1; }
.logistics-toolbar input { min-width: 280px; }
.logistics-import { display: flex; gap: 10px; align-items: stretch; margin: 0 0 12px; }
.logistics-import textarea { flex: 1; min-height: 42px; max-height: 92px; resize: vertical; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; line-height: 1.45; }
.logistics-import button { align-self: center; white-space: nowrap; }
.logistics-table-wrap { max-height: calc(100vh - 360px); min-height: 360px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.logistics-table { min-width: 1080px; }
.logistics-table th { position: sticky; top: 0; z-index: 1; background: #eef5f7; }
.logistics-table td { max-width: 320px; white-space: pre-wrap; word-break: break-word; vertical-align: top; }
.logistics-pagination { display: flex; justify-content: flex-end; align-items: center; gap: 14px; padding-top: 12px; }
.logistics-pagination button { border: 1px solid var(--line); background: #fff; border-radius: 6px; padding: 7px 12px; cursor: pointer; }
.logistics-pagination button:disabled { opacity: .45; cursor: not-allowed; }
.logistics-cell-editor { width: 100%; min-height: 54px; box-sizing: border-box; resize: vertical; border: 1px solid var(--line); border-radius: 6px; padding: 8px; line-height: 1.45; background: #fff; }
.logistics-image-editor { display: grid; gap: 6px; min-width: 150px; }
.logistics-cell-image { display: block; max-width: 180px; max-height: 100px; object-fit: contain; background: #f4f7f8; border: 1px solid var(--line); border-radius: 5px; cursor: zoom-in; }
.logistics-image-url { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px; padding: 7px; }
.logistics-actions, .logistics-actions-head { width: 92px; min-width: 92px; white-space: nowrap; }
.empty-cell { text-align: center; color: var(--muted); padding: 30px !important; }

/* Logistics analysis is intentionally wide: keep fields readable and let the table scroll. */
.logistics-table-wrap {
  scrollbar-gutter: stable both-edges;
  overscroll-behavior: contain;
  background: #fff;
}
.logistics-table {
  width: max-content;
  min-width: 1880px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
.logistics-table th,
.logistics-table td {
  box-sizing: border-box;
  min-width: 180px;
  padding: 10px 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.logistics-table th {
  position: sticky;
  top: 0;
  z-index: 4;
  height: 48px;
  background: #eaf2f5;
  color: #234554;
  line-height: 1.35;
  white-space: normal;
  box-shadow: 0 1px 0 rgba(27, 68, 82, .12), 0 3px 8px rgba(27, 68, 82, .08);
}
.logistics-table tbody tr:nth-child(even) td { background: #fbfcfd; }
.logistics-table td {
  height: 104px;
  max-width: none;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.5;
}
.logistics-table th:nth-child(1),
.logistics-table td:nth-child(1),
.logistics-table th:nth-child(7),
.logistics-table td:nth-child(7) { width: 165px; min-width: 165px; }
.logistics-table th:nth-child(2),
.logistics-table td:nth-child(2),
.logistics-table th:nth-child(6),
.logistics-table td:nth-child(6),
.logistics-table th:nth-child(12),
.logistics-table td:nth-child(12) { width: 330px; min-width: 330px; }
.logistics-table th:nth-child(3),
.logistics-table td:nth-child(3),
.logistics-table th:nth-child(8),
.logistics-table td:nth-child(8),
.logistics-table th:nth-child(9),
.logistics-table td:nth-child(9) { width: 135px; min-width: 135px; }
.logistics-table th:nth-child(4),
.logistics-table td:nth-child(4),
.logistics-table th:nth-child(5),
.logistics-table td:nth-child(5),
.logistics-table th:nth-child(10),
.logistics-table td:nth-child(10),
.logistics-table th:nth-child(11),
.logistics-table td:nth-child(11) { width: 145px; min-width: 145px; }
.logistics-table .logistics-actions,
.logistics-table .logistics-actions-head { width: 116px; min-width: 116px; }
.logistics-cell-editor {
  display: block;
  width: 100%;
  min-height: 78px;
  height: 78px;
  max-height: 180px;
  resize: vertical;
  overflow: auto;
  line-height: 1.5;
}
.logistics-image-editor {
  width: 118px;
  min-width: 118px;
  gap: 7px;
}
.logistics-cell-image {
  width: 96px;
  height: 68px;
  max-width: none;
  max-height: none;
  object-fit: contain;
  padding: 3px;
  box-sizing: border-box;
  background: #f5f8f9;
}
.logistics-image-url { min-height: 34px; }
.logistics-table .empty-cell { min-width: 1880px; }
.shipment-file-picker { min-height: 38px; color: var(--primary); background: #eef7f8; border-color: var(--primary); font-weight: 700; }
.shipment-file-picker:hover { background: #dff1f3; }
.shipment-row textarea { height: 72px !important; min-height: 72px !important; max-height: 120px; }
.shipment-row { padding: 12px 16px; }
.shipment-row-head { margin-bottom: 8px; }
.logistics-718-shell { display: grid; gap: 12px; }
.logistics-718-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.logistics-718-date-nav, .logistics-718-actions { display: flex; align-items: center; gap: 8px; }
.logistics-718-date-nav input { width: 148px; min-height: 38px; }
.logistics-718-meta { display: flex; align-items: center; gap: 14px; min-width: 0; }
.logistics-718-meta input { flex: 1; min-width: 240px; }
.logistics-718-meta span { color: #b34d4d; font-size: 13px; }
.logistics-718-meta strong { color: var(--muted); font-size: 13px; white-space: nowrap; }
.logistics-718-report { overflow-x: hidden; overflow-y: visible; border: 1px solid var(--line); background: #fff; }
.logistics-718-date-title { display: flex; gap: 12px; align-items: baseline; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: 17px; font-weight: 800; }
.logistics-718-date-title span { color: var(--muted); font-size: 13px; font-weight: 600; }
.logistics-718-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); align-items: start; min-width: 0; }
.logistics-718-block + .logistics-718-block { border-left: 1px solid var(--line); }
.logistics-718-block-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #f7fafb; }
.logistics-718-block-head h3 { margin: 0; font-size: 14px; }
.logistics-718-block-head span { color: var(--muted); font-size: 12px; }
.logistics-718-table-wrap { overflow: hidden; }
.logistics-718-table-wrap table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; }
.logistics-718-table-wrap th, .logistics-718-table-wrap td { box-sizing: border-box; height: 25px; padding: 3px 7px; border-bottom: 1px solid #dfe7ea; border-right: 1px solid #edf1f2; vertical-align: middle; line-height: 1.15; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
.logistics-718-table-wrap th { position: sticky; top: 0; z-index: 1; background: #eef4f6; color: #445c65; height: 26px; padding: 4px 7px; font-size: 11px; text-align: left; white-space: nowrap; }
.logistics-718-table-wrap th.track, .logistics-718-table-wrap td.track { width: 64%; }
.logistics-718-table-wrap th.number, .logistics-718-table-wrap td.number { width: 12%; text-align: right; }
.logistics-718-table-wrap th.compare, .logistics-718-table-wrap td.compare { width: 12%; }
.logistics-718-block + .logistics-718-block th.track, .logistics-718-block + .logistics-718-block td.track { width: 38%; }
.logistics-718-block + .logistics-718-block th.number, .logistics-718-block + .logistics-718-block td.number { width: 12%; }
.logistics-718-block + .logistics-718-block th.compare, .logistics-718-block + .logistics-718-block td.compare { width: 38%; }
.logistics-718-block + .logistics-718-block th.track, .logistics-718-block + .logistics-718-block td.track,
.logistics-718-block + .logistics-718-block th.number, .logistics-718-block + .logistics-718-block td.number,
.logistics-718-block + .logistics-718-block th.compare, .logistics-718-block + .logistics-718-block td.compare { width: 25%; }
.logistics-718-table-wrap th.compare { color: #c52f3e; }
.logistics-718-table-wrap tbody tr:nth-child(even) td { background: #fcfdfd; }
.logistics-718-table-wrap tbody tr.is-alert td { background: #ffd5df; color: #8f233f; }
.logistics-718-table-wrap tbody tr.logistics-718-mark-red td { background: #ffd5df !important; color: #8f233f; }
.logistics-718-table-wrap tbody tr.logistics-718-mark-yellow td { background: #fff3bd !important; color: #725b00; }
.logistics-718-table-wrap tbody tr.logistics-718-mark-green td { background: #dff4e6 !important; color: #176b3a; }
.logistics-718-track-cell { display: flex; align-items: flex-start; gap: 5px; min-width: 0; }
.logistics-718-track-cell .logistics-718-cell-value, .logistics-718-track-cell .logistics-718-cell-input { flex: 1; min-width: 0; }
.logistics-718-marker { flex: 0 0 auto; width: 16px; height: 18px; padding: 0; border: 0; background: transparent; color: #aab7bb; cursor: pointer; line-height: 1; }
.logistics-718-marker:hover { transform: scale(1.15); }
.logistics-718-marker.marker-red { color: #e23e4f; }
.logistics-718-marker.marker-yellow { color: #e3ad00; }
.logistics-718-marker.marker-green { color: #2b9b5f; }
.logistics-718-table-wrap .logistics-718-total td { background: #fff900 !important; color: #1d2529; font-weight: 800; }
.logistics-718-cell-value { display: block; min-height: 18px; }
.logistics-718-cell-input { width: 100%; min-height: 26px; max-height: 42px; box-sizing: border-box; resize: vertical; border: 1px solid #9db9c1; padding: 3px 5px; line-height: 1.25; font-size: 12px; background: #fff; }
.logistics-718-modal { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; padding: 24px; background: rgba(11, 32, 42, .42); }
.logistics-718-modal-card { width: min(900px, 100%); padding: 18px; background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 50px rgba(11, 32, 42, .22); }
.logistics-718-modal-card textarea { display: block; width: 100%; min-height: 280px; box-sizing: border-box; resize: vertical; margin: 14px 0; font-family: Consolas, "Microsoft YaHei", monospace; line-height: 1.4; }
.logistics-718-modal-actions { display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width: 1100px) { .logistics-718-grid { grid-template-columns: minmax(0, 1fr); } .logistics-718-block + .logistics-718-block { border-top: 1px solid var(--line); border-left: 0; } }
@media (max-width: 900px) { .logistics-718-toolbar, .logistics-718-meta { align-items: stretch; flex-direction: column; } .logistics-718-date-nav, .logistics-718-actions { flex-wrap: wrap; } .logistics-718-meta input { min-width: 0; width: 100%; } }

/* Formal shipping detail table: compact Excel-like daily groups. */
.shipment-filter-row { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.shipment-filter-row label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; }
.shipment-filter-row input[type="date"] { min-width: 150px; }
.shipment-filter-row .shipment-add-button { margin-left: auto; }
.shipment-list { overflow: visible; }
.shipment-table-wrap { overflow-x: auto; overflow-y: visible; border: 1px solid var(--line); background: #fff; }
.shipment-table { width: 100%; min-width: 900px; border-collapse: collapse; table-layout: fixed; color: var(--ink); }
.shipment-table .shipment-col-date { width: 10%; }
.shipment-table .shipment-col-file { width: 48%; }
.shipment-table .shipment-col-carrier { width: 16%; }
.shipment-table .shipment-col-count { width: 10%; }
.shipment-table .shipment-col-actions { width: 16%; }
.shipment-table th, .shipment-table td { border-right: 1px solid #dbe4e7; border-bottom: 1px solid #dbe4e7; padding: 9px 12px; height: 46px; box-sizing: border-box; vertical-align: middle; line-height: 1.35; }
.shipment-table th { position: sticky; top: 0; z-index: 2; height: 38px; padding: 8px 12px; background: #edf3f5; color: #38515b; font-size: 13px; font-weight: 800; text-align: left; }
.shipment-table th:nth-child(1), .shipment-table td:nth-child(1) { width: 10%; }
.shipment-table th:nth-child(2), .shipment-table td:nth-child(2) { width: 48%; }
.shipment-table th:nth-child(3), .shipment-table td:nth-child(3) { width: 16%; }
.shipment-table th:nth-child(4), .shipment-table td:nth-child(4) { width: 10%; }
.shipment-table th:nth-child(5), .shipment-table td:nth-child(5) { width: 16%; }
.shipment-table tbody tr:hover td { background: #f7fafb; }
.shipment-date-cell { background: #f8fafb; text-align: center; }
.shipment-date-cell strong, .shipment-date-cell small { display: block; }
.shipment-date-cell strong { font-size: 18px; color: #243d46; }
.shipment-date-cell small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.shipment-file-links { display: grid; gap: 4px; }
.shipment-file-link { display: inline-flex; align-items: center; gap: 7px; min-width: 0; padding: 0; border: 0; background: transparent; color: #1673b1; font: inherit; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.shipment-file-link:hover { color: #0b4f7d; text-decoration: underline; }
.shipment-file-icon { display: inline-grid; place-items: center; flex: 0 0 18px; width: 18px; height: 18px; border-radius: 2px; background: #18a66a; color: #fff; font-size: 11px; font-weight: 800; }
.shipment-file-empty { color: #9aa8ad; font-size: 13px; }
.shipment-carrier-cell, .shipment-count-cell { text-align: center; }
.shipment-count-cell { font-variant-numeric: tabular-nums; font-weight: 700; }
.shipment-action-cell { vertical-align: middle !important; text-align: center; }
.shipment-action-cell button { display: block; width: 100%; margin: 4px 0; }
.shipment-total-row td { height: 42px; background: #9d4d98 !important; color: #fff; font-weight: 800; }
.shipment-total-row td:nth-child(1) { width: 48%; }
.shipment-total-row td:nth-child(2) { width: 16%; text-align: center; }
.shipment-total-row td:nth-child(3) { width: 10%; text-align: center; font-variant-numeric: tabular-nums; }
.shipment-empty { padding: 48px 20px; border: 1px solid var(--line); background: #fff; color: var(--muted); text-align: center; }
.shipment-editor-dialog { width: min(980px, calc(100vw - 32px)); max-width: 980px; max-height: min(86vh, 820px); padding: 0; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 18px 55px rgba(11, 32, 42, .25); }
.shipment-editor-dialog::backdrop { background: rgba(11, 32, 42, .42); }
.shipment-editor-dialog form { padding: 20px; }
.shipment-editor-meta { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.shipment-editor-meta label, .shipment-editor-note, .shipment-editor-import label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
.shipment-editor-meta strong { color: #9d4d98; }
.shipment-editor-import { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.shipment-editor-import textarea { min-height: 84px; resize: vertical; font-family: Consolas, "Microsoft YaHei", monospace; line-height: 1.45; }
.shipment-editor-rows { display: grid; gap: 8px; padding: 14px 0; }
.shipment-editor-row { display: grid; grid-template-columns: minmax(180px, 1fr) 130px minmax(240px, 1.4fr) auto; align-items: end; gap: 10px; padding: 10px; border: 1px solid var(--line); background: #fafcfc; }
.shipment-editor-row label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
.shipment-editor-row small { color: var(--muted); overflow-wrap: anywhere; }
.shipment-editor-footer { display: flex; align-items: end; gap: 14px; padding: 0 0 14px; border-bottom: 1px solid var(--line); }
.shipment-editor-note { flex: 1; }
.shipment-editor-note textarea { min-height: 42px; resize: vertical; }
.shipment-editor-dialog .dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 16px; }
@media (max-width: 800px) { .shipment-editor-import, .shipment-editor-row { grid-template-columns: 1fr; } .shipment-editor-meta, .shipment-editor-footer { align-items: stretch; flex-direction: column; } .shipment-filter-row .shipment-add-button { margin-left: 0; } }

/* Shipping detail rows keep each carrier's editable metadata together. */
.shipment-table { min-width: 1180px; }
.shipment-table .shipment-col-date { width: 9%; }
.shipment-table .shipment-col-file { width: 27%; }
.shipment-table .shipment-col-carrier { width: 12%; }
.shipment-table .shipment-col-count { width: 8%; }
.shipment-table .shipment-col-note { width: 22%; }
.shipment-table .shipment-col-status { width: 11%; }
.shipment-table .shipment-col-actions { width: 11%; }
.shipment-note-cell { vertical-align: top !important; }
.shipment-note-preview { max-height: 72px; overflow: auto; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; }
.shipment-note-preview p { margin: 0 0 4px; }
.shipment-note-preview p:last-child { margin-bottom: 0; }
.shipment-note-empty { color: var(--muted); font-size: 12px; }
.shipment-status-select { width: 100%; min-width: 84px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); }
.shipment-status-select.status-error { border-color: #f0b7b3; background: #fff5f4; color: #b42318; }
.shipment-status-select.status-done { border-color: #a9d9c2; background: #f1fbf5; color: #137a4b; }
.shipment-table tbody tr.shipment-total-row:hover td,
.shipment-table tbody tr.shipment-total-row td { background: #a34898 !important; color: #fff !important; font-weight: 700; }
.shipment-editor-row { grid-template-columns: minmax(130px, 1fr) 100px minmax(230px, 1.5fr) 120px minmax(220px, 1.35fr) auto; align-items: start; }
.shipment-editor-row .rich-editor { border: 1px solid var(--line); border-radius: 4px; background: #fff; overflow: hidden; }
.rich-editor-toolbar { display: flex; gap: 2px; padding: 3px 5px; border-bottom: 1px solid var(--line); background: #f5f8f9; }
.rich-editor-toolbar button { min-width: 24px; padding: 2px 5px; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.rich-editor-toolbar button:hover { background: #e4eef0; }
.rich-editor-content { min-height: 56px; padding: 8px; outline: none; overflow-wrap: anywhere; line-height: 1.4; }
.shipment-editor-row select { min-height: 36px; }
.shipment-editor-hint { align-self: center; color: var(--muted); font-size: 12px; }
@media (max-width: 980px) { .shipment-editor-row { grid-template-columns: 1fr 100px; } .shipment-editor-row .shipment-editor-file, .shipment-editor-row > label:nth-child(3) { grid-column: 1 / -1; } .shipment-editor-row > button { grid-column: 2; } }

/* Direct editing on the shipment table. Keep the filter bar compact and predictable. */
.shipment-toolbar { padding: 12px 14px; }
.shipment-filter-row { display: grid !important; grid-template-columns: 180px 180px 150px 86px 86px 100px 100px minmax(180px, 1fr) !important; align-items: end; gap: 10px; width: 100%; }
.shipment-filter-row label { min-width: 0; }
.shipment-filter-row button { white-space: nowrap; }
.shipment-filter-row .shipment-add-button { justify-self: end; margin-left: 0; }
.shipment-table-wrap { overflow-x: auto; overflow-y: visible; }
.shipment-table { min-width: 1120px; }
.shipment-table .shipment-col-date { width: 9%; }
.shipment-table .shipment-col-file { width: 25%; }
.shipment-table .shipment-col-carrier { width: 12%; }
.shipment-table .shipment-col-count { width: 8%; }
.shipment-table .shipment-col-note { width: 25%; }
.shipment-table .shipment-col-status { width: 11%; }
.shipment-table .shipment-col-actions { width: 10%; }
.shipment-inline-input { width: 100%; min-width: 0; box-sizing: border-box; padding: 7px 8px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--ink); font: inherit; }
.shipment-inline-input:hover, .shipment-inline-input:focus { border-color: #9ccbd1; background: #fff; outline: none; }
.shipment-count-input { text-align: center; font-weight: 700; }
.shipment-note-inline { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 6px; }
.shipment-note-editor { min-height: 32px; max-height: 88px; overflow: auto; padding: 7px 8px; border: 1px solid transparent; border-radius: 4px; overflow-wrap: anywhere; line-height: 1.45; outline: none; }
.shipment-note-editor:hover, .shipment-note-editor:focus { border-color: #9ccbd1; background: #fff; }
.shipment-note-editor:empty::before { content: attr(data-placeholder); color: var(--muted); }
.shipment-note-preview-btn { padding: 6px 8px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--accent); font-size: 12px; cursor: pointer; white-space: nowrap; }
.shipment-note-preview-btn:hover { border-color: #0b91a0; background: #f1fbfc; }
.shipment-file-links { display: flex; align-items: center; gap: 6px; min-width: 0; }
.shipment-file-dropzone { min-height: 30px; padding: 3px 5px; border: 1px dashed transparent; border-radius: 5px; transition: background .15s, border-color .15s; }
.shipment-file-dropzone.is-dragover { border-color: #0b91a0; background: #e8f8fa; }
.shipment-file-dropzone.is-uploading { opacity: .55; pointer-events: none; }
.shipment-file-link { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 0; border: 0; background: transparent; color: #087ca4; text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.shipment-file-link:hover { text-decoration: underline; }
.shipment-file-item { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.shipment-file-delete { padding: 2px 5px; border: 1px solid #e7b2a8; border-radius: 4px; background: #fff8f6; color: #b64c3d; font-size: 12px; cursor: pointer; white-space: nowrap; }
.shipment-file-delete:hover { background: #fde9e4; border-color: #d98273; }
.shipment-file-upload { display: inline-flex; align-items: center; padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--accent); font-size: 12px; cursor: pointer; white-space: nowrap; }
.shipment-file-upload:hover { border-color: #0b91a0; background: #f1fbfc; }
.shipment-file-upload input { display: none; }
.shipment-file-icon { flex: none; display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 2px; background: #1fa463; color: #fff; font-size: 10px; font-weight: 800; }
.shipment-action-cell { vertical-align: middle !important; }
.shipment-action-cell .danger-ghost { width: 100%; }
.shipment-note-preview-dialog { width: min(680px, calc(100vw - 32px)); }
.shipment-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 2px 0; color: var(--muted); font-size: 12px; }
.shipment-pagination > div { display: flex; align-items: center; gap: 8px; }
.shipment-pagination strong { min-width: 58px; color: var(--ink); text-align: center; }
.shipment-note-preview-content { min-height: 120px; max-height: 55vh; overflow: auto; padding: 16px; border: 1px solid var(--line); background: #fff; line-height: 1.6; overflow-wrap: anywhere; }
@media (max-width: 900px) { .shipment-filter-row { grid-template-columns: repeat(2, minmax(140px, 1fr)); } .shipment-filter-row .shipment-add-button { margin-left: 0; } }

/* Store logistics analysis: compact two-period comparison without horizontal scrolling. */
.store-logistics-table-wrap { overflow-y: auto; overflow-x: hidden; max-height: calc(100vh - 360px); min-height: 360px; scrollbar-gutter: stable; }
.store-logistics-table { width: 100% !important; min-width: 0 !important; table-layout: fixed; border-collapse: separate; border-spacing: 0; }
.store-logistics-table th, .store-logistics-table td { min-width: 0 !important; padding: 8px 9px; overflow-wrap: anywhere; }
.store-logistics-table thead tr:first-child th { position: sticky; top: 0; z-index: 6; height: 38px; padding: 8px 6px; color: #fff; text-align: center; }
.store-logistics-table thead tr:nth-child(2) th { position: sticky; top: 38px; z-index: 5; height: 42px; padding: 7px 5px; white-space: normal; }
.store-logistics-table .store-week-group { background: #078f9d; }
.store-logistics-table .store-month-group { background: #8399b4; }
.store-logistics-table .store-actions-head { background: #eef4f6; color: #244653 !important; }
.store-logistics-table tbody tr { height: 88px; }
.store-logistics-table tbody td { vertical-align: middle; line-height: 1.35; }
.store-logistics-table .store-week-divider { border-left: 3px solid #cfdee2 !important; }
.logistics-price-shell { display: grid; gap: 12px; }
.logistics-price-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 4px 0 10px; border-bottom: 1px solid var(--line); }
.logistics-price-filters { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; flex: 1; }
.logistics-price-filters > input { min-width: 240px; }
.logistics-price-filters label, .logistics-price-form-grid label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; }
.logistics-price-filters input[type="date"] { width: 142px; }
.logistics-price-range-separator { padding-bottom: 10px; color: var(--muted); }
.logistics-price-summary-row { display: flex; justify-content: space-between; align-items: center; min-height: 24px; }
.logistics-price-summary-row > span:first-child { color: #244653; font-size: 13px; font-weight: 700; }
.logistics-price-table-wrap { max-height: calc(100vh - 350px); min-height: 420px; overflow: auto; }
.logistics-price-table { width: 100%; min-width: 920px; table-layout: fixed; }
.logistics-price-table th { position: sticky; top: 0; z-index: 2; background: #eef4f6; }
.logistics-price-table td { vertical-align: top; padding: 8px 12px; }
.logistics-price-table .price-date-col { width: 150px; }
.logistics-price-table .price-channel-col { width: 260px; }
.logistics-price-table .price-changes-col { width: auto; }
.logistics-price-table .price-actions-col { width: 140px; }
.logistics-price-date strong, .logistics-price-table td > strong { display: block; color: #173c4b; }
.logistics-price-table td small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.logistics-price-channel strong { display: block; margin-top: 2px; }
.logistics-price-channel .logistics-price-supplier { margin-top: 0; color: #607984; line-height: 1.1; }
.logistics-price-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.logistics-price-tag { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid; border-radius: 6px; font-size: 13px; line-height: 1.1; }
.logistics-price-tag b { font-size: 12px; white-space: nowrap; }
.logistics-price-tag.up { border-color: #e3c24f; background: #fff5bf; color: #725a00; }
.logistics-price-tag.down { border-color: #85c8bd; background: #e5f6f2; color: #176b62; }
.logistics-price-actions { display: flex; gap: 5px; flex-wrap: wrap; }
.logistics-price-actions button { padding: 5px 9px; }
.logistics-price-actions .danger { border: 1px solid #efb0b0; border-radius: 6px; padding: 5px 9px; background: #fff; color: #c93636; cursor: pointer; }
.logistics-price-modal { position: fixed; inset: 0; z-index: 45; display: grid; place-items: center; padding: 24px; background: rgba(11, 32, 42, .42); }
.logistics-price-modal-card { width: min(760px, 100%); max-height: min(760px, 92vh); overflow: auto; padding: 18px; background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 50px rgba(11, 32, 42, .22); }
.logistics-price-form-grid { display: grid; grid-template-columns: 160px minmax(0, 1fr) 150px; gap: 10px; margin: 16px 0; }
.logistics-price-change-editor { border: 1px solid var(--line); border-radius: 7px; padding: 12px; background: #fbfcfd; }
.logistics-price-change-editor-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.logistics-price-change-row { display: grid; grid-template-columns: minmax(0, 1fr) 130px 32px; gap: 8px; margin-top: 8px; }
.logistics-price-change-row input, .logistics-price-change-row select { min-width: 0; }
.icon-button { width: 32px; height: 32px; padding: 0; border: 1px solid #efb0b0; border-radius: 6px; background: #fff; color: #c93636; cursor: pointer; font-size: 18px; }
.logistics-price-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
@media (max-width: 850px) { .logistics-price-toolbar { align-items: stretch; flex-direction: column; } .logistics-price-form-grid { grid-template-columns: 1fr; } }
.store-logistics-range { white-space: normal; color: #506974; line-height: 1.45; }
.store-logistics-shop a { display: block; color: #0875b6; text-decoration: underline; overflow-wrap: anywhere; word-break: break-all; }
.store-logistics-metrics { white-space: normal; }
.store-logistics-metric { line-height: 1.35; }
.store-logistics-metric.danger { color: #e44242; }
.store-logistics-metric.positive { color: #23865a; }
.store-logistics-empty, .store-logistics-image-empty { color: #9aaeb5; font-size: 12px; }
.store-logistics-image-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.store-logistics-image-thumb { display: block; width: 100%; max-width: 96px; height: 54px; margin: 0 auto; object-fit: cover; border: 1px solid #cddde1; border-radius: 4px; background: #f7fafb; transition: transform .15s, box-shadow .15s; }
.store-logistics-image-thumb:hover { position: relative; z-index: 8; transform: scale(1.45); box-shadow: 0 4px 16px rgba(18, 63, 76, .28); }
.store-logistics-image-editor label { position: relative; display: block; width: 100%; max-width: 96px; height: 54px; margin: 0 auto; overflow: hidden; border: 1px dashed #9fc5cb; border-radius: 4px; background: #f6fbfc; color: #177887; cursor: pointer; }
.store-logistics-image-editor label > span { position: absolute; right: 0; bottom: 0; left: 0; padding: 2px 1px; background: rgba(9, 111, 124, .9); color: #fff; font-size: 10px; text-align: center; }
.store-logistics-image-editor input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.store-logistics-image-empty { display: grid; place-items: center; height: 100%; color: #4a8a94; font-size: 11px; }
.store-logistics-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.store-logistics-actions button { min-width: 0; min-height: 29px; padding: 4px 5px; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: #1d5361; font-size: 12px; white-space: nowrap; cursor: pointer; }
.store-logistics-actions button:hover { border-color: #0a8f9d; background: #f0fbfc; }
.store-logistics-actions button.danger { color: #b43d3d; border-color: #e5b8b8; }
.store-logistics-actions button.danger:hover { background: #fff4f3; border-color: #d98273; }
.store-logistics-editing td { background: #f4fbfc; }
.store-logistics-edit-input, .store-logistics-range-input { width: 100%; min-width: 0; min-height: 30px; padding: 5px 6px; border: 1px solid #9bcbd1; border-radius: 4px; background: #fff; color: #1c4350; font: inherit; font-size: 12px; }
.store-logistics-range-input { font-size: 11px; }
.store-logistics-metric-editor { display: grid; gap: 3px; }
.store-logistics-metric-line { display: grid; grid-template-columns: minmax(0, 1fr) 23px; gap: 3px; }
.store-logistics-metric-line input { min-width: 0; }
.store-logistics-spec-remove, .store-logistics-spec-add { width: 23px; min-height: 23px; padding: 0; border: 1px solid #e5b8b8; border-radius: 4px; background: #fff; color: #b43d3d; cursor: pointer; }
.store-logistics-spec-add { width: 100%; border-color: #9bc6cd; color: #076b79; }
.store-logistics-spec-remove:hover, .store-logistics-spec-add:hover { background: #f0fbfc; }
@media (max-width: 1280px) {
  .store-logistics-table th, .store-logistics-table td { padding-left: 5px; padding-right: 5px; font-size: 11px; }
  .store-logistics-actions { gap: 3px; }
  .store-logistics-actions button { padding-left: 2px; padding-right: 2px; font-size: 11px; }
}

/* Personal pending-work reminder */
.personal-reminder-dialog { width: min(540px, calc(100vw - 28px)); max-width: 540px; padding: 0; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 22px 65px rgba(12, 38, 48, .28); }
.personal-reminder-dialog::backdrop { background: rgba(9, 32, 40, .56); }
.personal-reminder-shell { background: #fff; }
.personal-reminder-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 24px 16px; border-bottom:1px solid var(--line); }
.personal-reminder-head h2 { margin:0 0 7px; color:var(--ink); font-size:21px; }
.personal-reminder-head .muted-line { margin:0; }
.personal-reminder-rows { display:grid; gap:9px; padding:17px 24px 8px; }
.personal-reminder-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto 20px; align-items:center; gap:11px; width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.personal-reminder-row:hover { border-color:var(--primary); background:#f5fbfc; }
.personal-reminder-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:8px; background:#e8f5f7; color:#076b79; font-weight:800; }
.personal-reminder-row:nth-child(2) .personal-reminder-icon { background:#fff3dc; color:#9b6208; }
.personal-reminder-row:nth-child(3) .personal-reminder-icon { background:#edf3fb; color:#527196; }
.personal-reminder-copy strong { display:block; font-size:14px; }
.personal-reminder-copy small { display:block; margin-top:3px; color:var(--muted); font-size:12px; }
.personal-reminder-count { color:var(--primary-dark); font-size:21px; font-weight:800; }
.personal-reminder-arrow { color:#91a3a9; font-size:21px; }
.personal-reminder-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 24px 21px; }
.personal-reminder-foot small { color:var(--muted); font-size:11px; line-height:1.5; }
.personal-reminder-foot-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.personal-reminder-foot-actions button { min-width:96px; }
.personal-reminder-empty { padding:24px; color:var(--muted); text-align:center; }
@media (max-width:620px) { .personal-reminder-head,.personal-reminder-rows,.personal-reminder-foot { padding-left:16px; padding-right:16px; } .personal-reminder-foot { align-items:stretch; flex-direction:column; } .personal-reminder-foot-actions { width:100%; } .personal-reminder-foot-actions button { flex:1; } }

/* Logistics price-change reminder */
.logistics-price-reminder-dialog { width:min(680px, calc(100vw - 28px)); max-width:680px; padding:0; border:1px solid var(--line); border-radius:10px; box-shadow:0 22px 65px rgba(12,38,48,.28); }
.logistics-price-reminder-dialog::backdrop { background:rgba(9,32,40,.56); }
.logistics-price-reminder-shell { background:#fff; }
.logistics-price-reminder-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 24px 16px; border-bottom:1px solid var(--line); }
.logistics-price-reminder-head h2 { margin:0 0 7px; color:var(--ink); font-size:21px; }
.logistics-price-reminder-head .muted-line { margin:0; }
.logistics-price-reminder-body { padding:18px 24px 10px; }
.logistics-price-reminder-banner { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid #f0d98c; border-radius:7px; background:#fff9e6; color:#685100; }
.logistics-price-reminder-alert { display:grid; place-items:center; flex:0 0 30px; width:30px; height:30px; border-radius:50%; background:#f3c548; color:#5d4500; font-weight:800; }
.logistics-price-reminder-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:16px 0; }
.logistics-price-reminder-stats > div { padding:11px 13px; border:1px solid var(--line); border-radius:6px; background:#f8fbfc; }
.logistics-price-reminder-stats span { display:block; color:var(--muted); font-size:12px; }
.logistics-price-reminder-stats b { display:block; margin-top:3px; color:var(--ink); font-size:20px; line-height:1.1; }
.logistics-price-reminder-stats b.up { color:#9a6a00; }
.logistics-price-reminder-stats b.down { color:#278064; }
.logistics-price-reminder-rows { max-height:300px; overflow:auto; border:1px solid var(--line); border-radius:7px; }
.logistics-price-reminder-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:11px 12px; border-bottom:1px solid #e8eef0; }
.logistics-price-reminder-row:last-child { border-bottom:0; }
.logistics-price-reminder-row strong { display:block; color:var(--ink); font-size:14px; }
.logistics-price-reminder-row small { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.logistics-price-reminder-tags { display:flex; flex:1 1 auto; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.logistics-price-reminder-tag { display:inline-flex; align-items:center; gap:4px; padding:5px 8px; border:1px solid; border-radius:6px; font-size:12px; white-space:nowrap; }
.logistics-price-reminder-tag.up { border-color:#e3c24f; background:#fff5bf; color:#725a00; }
.logistics-price-reminder-tag.down { border-color:#85c8bd; background:#e5f6f2; color:#176b62; }
.logistics-price-reminder-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 24px 21px; }
.logistics-price-reminder-foot small { color:var(--muted); font-size:11px; line-height:1.5; }
.logistics-price-reminder-foot > div { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.logistics-price-reminder-foot button { min-width:92px; }
@media (max-width:620px) {
  .logistics-price-reminder-head,.logistics-price-reminder-body,.logistics-price-reminder-foot { padding-left:16px; padding-right:16px; }
  .logistics-price-reminder-stats { gap:6px; }
  .logistics-price-reminder-row { flex-direction:column; gap:8px; }
  .logistics-price-reminder-tags { justify-content:flex-start; }
  .logistics-price-reminder-foot { align-items:stretch; flex-direction:column; }
  .logistics-price-reminder-foot > div { width:100%; }
  .logistics-price-reminder-foot button { flex:1; }
}

/* Product selection and batch editing */
.product-latest-sku-summary { display:grid; gap:2px; color:#c74f4f; font-size:13px; font-weight:700; line-height:1.25; white-space:nowrap; }
.product-bulk-tools { display:flex; align-items:center; gap:8px; min-height:38px; color:var(--muted); font-size:13px; white-space:nowrap; }
.product-bulk-tools .text-button { min-height:32px; }
.product-bulk-tools button:disabled { cursor:not-allowed; opacity:.5; }
#productTableWrap .col-select { width:42px; min-width:42px; max-width:42px; padding:8px 6px; text-align:center; }
#productTableWrap .col-select-index { width:60px; min-width:60px; max-width:60px; padding:6px 4px; }
#productTableWrap .product-select-index { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:40px; }
#productTableWrap #productHead th { vertical-align:top; }
#productTableWrap .product-header-title { display:inline-block; vertical-align:middle; }
#productTableWrap #productHead th select { display:inline-block; width:calc(100% - 38px); min-width:0; height:30px; min-height:30px; margin:0 0 0 4px; padding:0 22px 0 7px; vertical-align:middle; border:1px solid #a9d3dc; border-radius:5px; background:#f8fcfd; color:var(--ink); font-size:12px; }
#productTableWrap #productHead th select:disabled { cursor:not-allowed; opacity:.55; }
#productTableWrap .product-inline-bulk-apply { display:inline-block; width:60px; min-height:30px; margin:0 0 0 4px; padding:0 5px; vertical-align:middle; border:1px solid var(--primary); border-radius:5px; background:var(--primary); color:#fff; font-size:12px; cursor:pointer; }
#productTableWrap .product-inline-bulk-apply:disabled { cursor:not-allowed; opacity:.5; }
#productTableWrap #productHead th.col-actions .product-header-title { display:block; margin-bottom:4px; }
#productTableWrap #productHead th.col-actions #productInlineBatchStatus { display:block; width:100%; margin:0 0 4px; }
#productTableWrap #productHead th.col-actions .product-inline-bulk-apply { display:block; width:100%; margin:0; }
#productTableWrap td.col-actions .product-row-status { width:100%; min-width:0; }
#productTableWrap td.col-actions .product-row-status .product-status-select { width:100%; min-width:0; }
#productTableWrap td.col-actions .product-row-status .product-status-select { text-align:center; text-align-last:center; }
#productTableWrap .product-select-checkbox,
#productHead [data-product-select-all] { width:16px; height:16px; min-height:16px; margin:0; padding:0; accent-color:var(--primary); cursor:pointer; }
.product-batch-edit-dialog { width:min(520px,calc(100vw - 28px)); }
.product-batch-edit-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.product-batch-edit-fields label { display:grid; gap:7px; color:var(--muted); font-size:13px; }
@media (max-width:620px) { .product-bulk-tools { width:100%; } .product-batch-edit-fields { grid-template-columns:1fr; } }

/* Product ledger: long text fields have a controlled height instead of stretching the row. */
#productTableWrap .editable-cell {
  max-height:400px;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#8d9ba1 #e8edef;
}
#productTableWrap .editable-cell.price-cell,
#productTableWrap .editable-cell.price-summary-cell,
#productTableWrap .rich-text-cell {
  max-height:400px;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#8d9ba1 #e8edef;
}
#productTableWrap .editable-cell::-webkit-scrollbar { width:9px; }
#productTableWrap .editable-cell::-webkit-scrollbar-track { background:#e8edef; border-radius:6px; }
#productTableWrap .editable-cell::-webkit-scrollbar-thumb { background:#8d9ba1; border:2px solid #e8edef; border-radius:6px; }
#productTableWrap .editable-cell.price-cell::-webkit-scrollbar,
#productTableWrap .editable-cell.price-summary-cell::-webkit-scrollbar,
#productTableWrap .rich-text-cell::-webkit-scrollbar { width:9px; }
#productTableWrap .editable-cell.price-cell::-webkit-scrollbar-track,
#productTableWrap .editable-cell.price-summary-cell::-webkit-scrollbar-track,
#productTableWrap .rich-text-cell::-webkit-scrollbar-track { background:#e8edef; border-radius:6px; }
#productTableWrap .editable-cell.price-cell::-webkit-scrollbar-thumb,
#productTableWrap .editable-cell.price-summary-cell::-webkit-scrollbar-thumb,
#productTableWrap .rich-text-cell::-webkit-scrollbar-thumb { background:#8d9ba1; border:2px solid #e8edef; border-radius:6px; }
#productTableWrap,
.channel-table-wrap,
.tax-table-wrap,
.payment-table-wrap,
.return-order-table-wrap,
.ali-tax-table-wrap,
.logistics-table-wrap {
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
#productTableWrap .product-thumb {
  contain:layout paint;
}

/* 业务数据：保留后台表格的紧凑扫描密度，并让会员与物流数据同时可见。 */
.business-data-toolbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.business-data-date-nav { display:flex; align-items:center; gap:7px; }
.business-data-date-nav input { width:145px; min-height:38px; }
.business-data-period { display:flex; align-items:end; gap:8px; color:var(--muted); }
.business-data-period label,.business-data-import-meta label { display:grid; gap:5px; color:var(--muted); font-size:12px; }
.business-data-period input { width:140px; min-height:38px; }
.business-data-toolbar .spacer { flex:1; min-width:20px; }
.business-data-filter-toolbar { display:grid; grid-template-columns:minmax(360px,440px) 120px 130px minmax(0,1fr); align-items:center; gap:14px; margin-top:10px; }
.business-data-filter-toolbar input,.business-data-filter-toolbar select { width:100%; min-width:0; }
.business-data-summary { justify-self:end; min-width:0; overflow:hidden; color:var(--muted); font-size:12px; white-space:nowrap; text-overflow:ellipsis; }
@media (max-width:1100px) { .business-data-filter-toolbar { grid-template-columns:minmax(280px,1fr) 120px 130px minmax(180px,1fr); } }
@media (max-width:760px) { .business-data-filter-toolbar { grid-template-columns:1fr 1fr; } .business-data-summary { grid-column:1 / -1; justify-self:start; } }
.business-data-grid { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(390px,1fr); gap:14px; margin-top:14px; }
.business-data-panel { min-width:0; overflow:hidden; }
.business-data-panel-head { min-height:66px; }
.business-data-panel-head h2 { margin:0 0 5px; font-size:16px; }
.business-data-panel-head small { color:var(--muted); font-size:11px; }
.business-data-panel-head.member-tone { background:linear-gradient(90deg,#fff1df,#fff); }
.business-data-panel-head.logistics-tone { background:linear-gradient(90deg,#e6f6fa,#fff); }
.business-data-table-wrap { max-height:calc(100vh - 395px); min-height:360px; overflow:auto; border:0; border-radius:0; box-shadow:none; }
.business-data-table-wrap table { width:100%; min-width:0; table-layout:fixed; }
.business-data-table-wrap th,.business-data-table-wrap td { height:37px; padding:0 12px; }
.business-data-table-wrap th { position:sticky; top:0; z-index:2; }
.business-data-table-wrap th:nth-child(1) { width:25%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(1) { width:22%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(2) { width:10%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(3) { width:10%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(4) { width:12%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(5) { width:14%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(6) { width:16%; }
.business-data-panel:first-child .business-data-table-wrap th:nth-child(7) { width:16%; }
.business-data-panel:last-child .business-data-table-wrap th:nth-child(1) { width:48%; }
.business-data-panel:last-child .business-data-table-wrap th:nth-child(2) { width:26%; }
.business-data-panel:last-child .business-data-table-wrap th:nth-child(3) { width:26%; }
.business-data-inline-note,.business-data-inline-input,.business-data-status-select { width:100%; min-width:0; height:29px; border:1px solid #bfd2d8; border-radius:4px; padding:0 8px; background:#fff; font:inherit; font-size:12px; }
.business-data-import-scope { display:flex; align-items:center; gap:16px; min-height:34px; padding:0 2px; color:var(--ink); font-size:13px; }
.business-data-import-scope label { display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.business-data-import-scope input { width:16px; height:16px; accent-color:#078a9b; }
.business-data-inline-note:focus,.business-data-inline-input:focus { outline:0; border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,141,162,.12); }
.business-data-status-select:focus { outline:0; border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,141,162,.12); }
.business-data-status-select.status-follow,.business-data-status-filter.status-follow { color:#087f8c; background:#e8f8fa; border-color:#9bd9df; }
.business-data-status-select.status-execute,.business-data-status-filter.status-execute { color:#a86208; background:#fff4df; border-color:#efc67d; }
.business-data-status-select.status-local,.business-data-status-filter.status-local { color:#247b4b; background:#eaf8ef; border-color:#a8d8b8; }
.business-data-status-select.status-ella,.business-data-status-filter.status-ella { color:#6852a7; background:#f1edff; border-color:#c8bbed; }
.business-data-status-select.status-archive,.business-data-status-filter.status-archive { color:#68757d; background:#f1f4f5; border-color:#cbd4d8; }
.business-data-status-filter.status-neutral { color:var(--ink); background:#fff; }
.business-data-inline-note::placeholder { color:#9aabb1; }
.business-data-empty { padding:42px 16px; color:var(--muted); text-align:center; border-top:1px solid var(--line); }
.business-data-hint { display:flex; gap:8px; align-items:center; margin-top:12px; padding:11px 14px; color:var(--muted); font-size:12px; background:#f8fbfc; border:1px dashed #bfd2d8; border-radius:6px; }
.business-data-hint strong { color:var(--ink); }
.business-data-import-dialog { width:min(1280px,calc(100vw - 48px)); max-width:none; padding:0; border:0; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.business-data-import-dialog::backdrop { background:rgba(12,36,44,.48); }
.business-data-import-card { padding:0; }
.business-data-import-card > .panel-head { padding:18px 22px; }
.business-data-import-card .panel-head h2 { margin:0 0 5px; font-size:20px; }
.business-data-import-meta { display:grid; grid-template-columns:190px 1fr 1fr; gap:12px; padding:18px 22px 0; }
.business-data-import-meta input { width:100%; min-height:38px; }
.business-data-import-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:14px; padding:16px 22px 0; }
.business-data-paste-box,.business-data-preview-box { min-width:0; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.business-data-box-head { display:flex; justify-content:space-between; align-items:center; padding:11px 14px; background:#f5f9fa; border-bottom:1px solid var(--line); }
.business-data-box-head small { color:var(--muted); font-size:11px; }
.business-data-paste-box textarea { display:block; width:100%; min-height:286px; border:0; resize:vertical; padding:13px; font:13px/1.6 Consolas,"Microsoft YaHei",monospace; outline:0; }
.business-data-import-actions { display:flex; justify-content:space-between; align-items:center; padding:9px 12px; border-top:1px solid var(--line); }
.business-data-import-actions span { color:var(--muted); font-size:12px; }
.business-data-preview-summary { padding:14px; color:var(--muted); border-bottom:1px solid var(--line); }
.business-data-preview-summary strong { margin-right:4px; color:var(--ink); font-size:18px; }
.business-data-preview-table { min-height:286px; max-height:350px; overflow:auto; }
.business-data-preview-table table { width:100%; min-width:0; table-layout:fixed; }
.business-data-preview-table th,.business-data-preview-table td { height:32px; padding:0 10px; font-size:12px; }
.business-data-preview-table th:nth-child(1) { width:25%; }
.business-data-preview-table th:nth-child(2) { width:38%; }
.business-data-preview-table th:nth-child(3) { width:17%; }
.business-data-preview-table th:nth-child(4) { width:20%; }
.business-data-import-footer { display:flex; justify-content:flex-end; gap:9px; padding:16px 22px 20px; margin-top:16px; border-top:1px solid var(--line); }
.business-data-print-dialog { width:min(460px,calc(100vw - 32px)); padding:0; border:0; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.business-data-print-dialog::backdrop { background:rgba(12,36,44,.48); }
.business-data-print-card { padding:0; }
.business-data-print-card .data-dialog-head { padding:18px 22px; }
.business-data-print-options { display:flex; gap:22px; padding:20px 22px 6px; }
.business-data-print-options label { display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-size:14px; cursor:pointer; }
.business-data-print-options input { width:16px; height:16px; accent-color:#078a9b; }
.business-data-print-notice { min-height:20px; padding:6px 22px 0; color:#c33d45; font-size:12px; }
.business-data-print-card .dialog-actions { margin-top:14px; }
.business-data-print-area { display:none; }
@media (max-width:1100px) { .business-data-grid,.business-data-import-layout { grid-template-columns:1fr; } .business-data-table-wrap { max-height:48vh; } }
@media (max-width:760px) { .business-data-period { width:100%; } .business-data-period label { flex:1; } .business-data-import-meta { grid-template-columns:1fr; } .business-data-summary { width:100%; } .business-data-hint { align-items:flex-start; flex-direction:column; } }
@media print {
  @page { size: A4 landscape; margin: 6mm; }
  body.business-data-printing > *:not(#businessDataPrintArea) { display:none !important; }
  body.business-data-printing #businessDataPrintArea { display:block !important; color:#111; background:#fff; }
  .business-data-print-document { display:block; font-family:Arial,"Microsoft YaHei",sans-serif; }
  .business-data-print-document h1 { margin:0 0 1.5mm; font-size:12pt; }
  .business-data-print-document > p { margin:0 0 2.5mm; color:#555; font-size:7pt; }
  .business-data-print-section { break-inside:auto; margin:0 0 4mm; }
  .business-data-print-section h2 { margin:0 0 1mm; font-size:8pt; }
  .business-data-print-section table { width:100%; min-width:0 !important; border-collapse:collapse; table-layout:fixed; font-size:6.5pt; line-height:1.2; }
  .business-data-print-section th,.business-data-print-section td { padding:1.5px 3px; border:1px solid #aeb9bd; text-align:left; vertical-align:middle; overflow-wrap:anywhere; }
  .business-data-print-section th { background:#edf3f4; font-weight:700; }
  .business-data-print-section th:nth-child(2),.business-data-print-section td:nth-child(2),.business-data-print-section th:nth-child(3),.business-data-print-section td:nth-child(3) { text-align:right; }
  .business-data-print-members table { width:100% !important; table-layout:fixed !important; }
  .business-data-print-members col { min-width:0 !important; }
  .business-data-print-members col:nth-child(1) { width:13% !important; }
  .business-data-print-members col:nth-child(2) { width:7% !important; }
  .business-data-print-members col:nth-child(3) { width:7% !important; }
  .business-data-print-members col:nth-child(4) { width:10% !important; }
  .business-data-print-members col:nth-child(5) { width:13% !important; }
  .business-data-print-members col:nth-child(6) { width:25% !important; }
  .business-data-print-members col:nth-child(7) { width:25% !important; }
  .business-data-print-members th:nth-child(-n+5),.business-data-print-members td:nth-child(-n+5) { white-space:nowrap; }
  .business-data-print-members th:nth-child(-n+5),.business-data-print-members td:nth-child(-n+5) { min-width:0; max-width:0; overflow:hidden; text-overflow:clip; }
}

/* Product categories are page navigation; the table only shows operational data. */
#products .quick-product { min-height:44px; grid-template-columns:minmax(150px,1fr) minmax(180px,1.1fr) minmax(240px,1.5fr) 140px 140px 140px auto; gap:7px; margin-bottom:6px; padding:6px 8px; box-shadow:none; }
#products .quick-product input,
#products .quick-product select,
#products .quick-product button,
#products .quick-image-input { height:34px; min-height:34px; }
#products .quick-image-input img { width:26px; height:26px; flex-basis:26px; }
#products .product-filter-toolbar { min-height:44px; gap:8px; margin-bottom:6px; padding:5px 8px; box-shadow:none; }
#products .product-filter-toolbar .filters { display:grid; grid-template-columns:minmax(250px,1.55fr) minmax(138px,.75fr) minmax(138px,.75fr) minmax(138px,.75fr); gap:7px; }
#products .product-filter-toolbar .filters input,
#products .product-filter-toolbar .filters select,
#products .product-filter-toolbar button { min-height:34px; height:34px; }
#products .product-filter-toolbar .filters input { max-width:none; }
#products .product-filter-toolbar .toolbar-actions { gap:6px; }
#products .product-filter-toolbar .product-bulk-tools { min-height:34px; gap:6px; }
.product-category-navigation { display:flex; align-items:stretch; gap:0; min-height:46px; margin:0; overflow:hidden; border:1px solid var(--line); border-radius:7px 7px 0 0; background:#fff; }
.product-category-tabs { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(168px,1fr); flex:1; min-width:0; overflow-x:auto; scrollbar-width:thin; }
.product-category-tab { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; min-height:46px; padding:0 14px; border:0; border-right:1px solid var(--line); border-bottom:2px solid transparent; border-radius:0; background:#fff; color:#344b57; white-space:nowrap; }
.product-category-tab span { overflow:hidden; text-overflow:ellipsis; }
.product-category-tab strong { min-width:28px; padding:2px 6px; border-radius:4px; background:#dfecef; color:#47606b; font-size:12px; line-height:1.25; text-align:center; }
.product-category-tab:hover { background:#f5fafb; color:var(--primary); }
.product-category-tab.active { border-bottom-color:#0795aa; background:#eef8fa; color:#087c8c; font-weight:700; }
.product-category-tab.active strong { background:#0795aa; color:#fff; }
.product-category-manage { flex:0 0 auto; min-width:112px; padding:0 14px; border:0; border-left:1px solid var(--line); border-radius:0; background:#fff; color:#344b57; white-space:nowrap; }
.product-category-manage:hover { background:#f5fafb; color:var(--primary); }
#products .table-top-scroll { margin-top:0; }
#products .table-wrap { max-height:none; overflow-x:auto; overflow-y:hidden; border-radius:0 0 7px 7px; }
.product-table-shell { overflow:visible; border:0; border-radius:0; box-shadow:none; scrollbar-width:none; }
.product-table-shell::-webkit-scrollbar { display:none; }
.product-sticky-header-viewport { overflow:hidden; border:1px solid var(--line); border-top:0; background:#edf1f4; }
.product-sticky-header-viewport table { margin:0; }
.product-sticky-header-viewport th { position:static; }
#productTableBodyWrap { border-top:0; scrollbar-width:auto; scrollbar-color:#8d979f #e5e9ec; }
#productTableBodyWrap::-webkit-scrollbar { width:12px; height:12px; }
#productTableBodyWrap::-webkit-scrollbar-track { background:#e5e9ec; }
#productTableBodyWrap::-webkit-scrollbar-thumb { min-width:80px; border:2px solid #e5e9ec; border-radius:6px; background:#8d979f; }
#productTableBodyWrap::-webkit-scrollbar-thumb:hover { background:#66737c; }
@media (min-width:901px) {
  .product-sticky-tools { position:sticky; top:var(--product-sticky-top,84px); z-index:22; background:var(--bg); box-shadow:0 8px 14px rgba(35,59,70,.08); }
}
@media (max-width:1280px) {
  #products .quick-product { grid-template-columns:minmax(140px,1fr) minmax(180px,1.1fr) minmax(200px,1.4fr) 140px 140px 140px auto; }
  #products .product-filter-toolbar { align-items:stretch; flex-direction:column; }
  #products .product-filter-toolbar .toolbar-actions { justify-content:flex-end; }
}
@media (max-width:900px) {
  #products .quick-product, #products .product-filter-toolbar .filters { grid-template-columns:1fr 1fr; }
  .product-category-tabs { grid-auto-columns:minmax(150px,1fr); }
  .product-category-manage { min-width:96px; padding:0 10px; }
}
@media (max-width:620px) {
  #products .product-filter-toolbar .filters { grid-template-columns:minmax(0,1fr); width:100%; }
  #products .product-filter-toolbar .filters input,
  #products .product-filter-toolbar .filters select { width:100%; min-width:0; }
  #products .product-filter-toolbar .toolbar-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  #products .product-filter-toolbar .toolbar-actions > button { width:100%; min-width:0; }
  #products .product-filter-toolbar .product-latest-sku-summary,
  #products .product-filter-toolbar .product-bulk-tools { grid-column:1 / -1; width:100%; min-width:0; }
  #products .product-filter-toolbar .product-bulk-tools { flex-wrap:wrap; white-space:normal; }
  .product-category-tabs { grid-auto-columns:minmax(138px,1fr); }
}

/* Product ledger compact rows and fixed actions in the split header. */
#productTableWrap #productHead th.col-actions {
  position:sticky;
  right:0;
  z-index:12;
}
#productTableWrap #productBody td.col-actions {
  position:sticky;
  right:0;
  z-index:10;
}
#productTableWrap #productHead th.col-actions .product-header-title { display:block; margin-bottom:2px; line-height:16px; }
#productTableWrap #productHead th.col-actions #productInlineBatchStatus {
  display:inline-block;
  width:58px;
  height:24px;
  min-height:24px;
  margin:0 2px 0 0;
  padding:0 16px 0 4px;
  font-size:11px;
  vertical-align:middle;
}
#productTableWrap #productHead th.col-actions .product-inline-bulk-apply {
  display:inline-block;
  width:32px;
  min-height:24px;
  height:24px;
  margin:0;
  padding:0 2px;
  font-size:11px;
  vertical-align:middle;
}
#productTableWrap #productHead th { height:42px; padding-top:7px; padding-bottom:7px; vertical-align:middle; }
#productTableWrap #productHead th.col-actions .product-header-title { margin:0; line-height:16px; }
/* Local collaboration draft feedback; kept outside the editable table. */
.product-draft-status { margin: 8px 0; padding: 8px 12px; border: 1px solid #b9d4da; border-radius: 6px; background: #f4fafb; color: #284c55; font-size: 13px; }
.product-draft-status[hidden] { display: none; }
.product-draft-item { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 4px 0; }
.product-draft-item textarea { flex: 1 1 240px; min-width: 0; max-width: 100%; padding: 6px 8px; border: 1px solid #b9d4da; border-radius: 5px; background: #fff; color: inherit; }
.product-draft-item button { padding: 6px 10px; border: 1px solid #b9d4da; border-radius: 5px; background: #fff; color: #284c55; }
#productBody tr[data-remote-deleted="true"] { background: #fff3ed; }

/* Acceptance: payment filters use explicit areas so the date range stays together. */
input[type="date"], input[type="datetime-local"] { font:inherit; color:var(--text); border:1px solid var(--line); border-radius:6px; background:#fff; padding:6px 8px; min-width:0; }
.dashboard-step, #employees .employee-actions button { border:1px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; }
.danger-ghost { border:1px solid #efc6c9; border-radius:6px; background:#fff; color:#c63c47; padding:6px 8px; cursor:pointer; }
#productBody .editable-cell:not(:focus) { max-height:76px; overflow:hidden; }
#productBody .editable-cell:focus { max-height:none; overflow:visible; }
.payment-toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(400px,.72fr); gap:8px 16px; align-items:center; }
.payment-toolbar .filters { display:grid; grid-template-columns:minmax(250px,1.5fr) minmax(145px,.8fr) minmax(145px,.8fr) minmax(278px,auto); grid-template-areas:"search salesperson status date" "quick quick quick quick"; gap:8px; width:100%; min-width:0; max-width:100%; align-items:center; }
.payment-toolbar #paymentSearch { grid-area:search; width:100%; max-width:none; min-width:0; }
.payment-toolbar #paymentSalespersonFilter { grid-area:salesperson; width:100%; min-width:0; }
.payment-toolbar #paymentStatusFilter { grid-area:status; width:100%; min-width:0; }
.payment-date-range { grid-area:date; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:8px; align-items:center; min-width:0; }
.payment-date-range input { width:100%; min-width:0; max-width:none; }
.payment-quick-filters { grid-area:quick; display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
.payment-toolbar-actions { display:grid; grid-template-columns:auto auto minmax(0,1fr); grid-template-areas:"summary credential verify" "status status status"; align-items:center; justify-content:end; gap:6px 10px; width:100%; max-width:560px; min-width:0; }
.payment-toolbar-actions .payment-summary { grid-area:summary; }
.payment-toolbar-actions #xtransferCredentialBtn { grid-area:credential; justify-self:start; }
.payment-toolbar-actions #xtransferVerifyBtn { grid-area:verify; justify-self:start; }
.payment-toolbar-actions #xtransferAutomationStatus { grid-area:status; width:100%; max-width:none; white-space:normal; overflow-wrap:anywhere; text-align:right; }
.payment-summary, .return-order-summary { white-space:normal; }
.return-order-toolbar { flex-wrap:wrap; align-items:flex-start; }
.return-order-toolbar .filters { flex:1 1 700px; flex-wrap:wrap; min-width:0; max-width:100%; }
.return-order-toolbar .toolbar-actions { flex:1 1 auto; flex-wrap:wrap; max-width:100%; min-width:0; }
.return-order-quick-add { grid-template-columns:repeat(4,minmax(0,1fr)); }
.return-order-table th:nth-child(8), .return-order-table td:nth-child(8) { position:sticky; right:82px; z-index:5; background:#f8fbfc; }
.return-order-table th:nth-child(8) { z-index:7; background:#eaf0f3; }
.return-order-table td:nth-child(8) select { width:100%; min-width:0; }
.return-order-bulk-tools { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.return-order-selected-summary { color:var(--muted); font-size:13px; white-space:nowrap; }
.return-order-bulk-tools select { min-width:132px; }
.return-order-select-cell { width:44px !important; min-width:44px; text-align:center; vertical-align:middle !important; }
.return-order-select-cell input { width:16px; height:16px; margin:0; accent-color:var(--primary); }
.return-order-table th:nth-child(2), .return-order-table td:nth-child(2) { width:135px; }
.return-order-table th:nth-child(3), .return-order-table td:nth-child(3) { width:205px; }
.return-order-table th:nth-child(4), .return-order-table td:nth-child(4) { width:220px; }
.return-order-table th:nth-child(5), .return-order-table td:nth-child(5) { width:205px; }
.return-order-table th:nth-child(6), .return-order-table td:nth-child(6) { width:155px; }
.return-order-table th:nth-child(7), .return-order-table td:nth-child(7) { width:auto; }
.return-order-table th:nth-child(8), .return-order-table td:nth-child(8) { width:115px; }
.return-order-table th:nth-child(9), .return-order-table td:nth-child(9) { width:82px; }
.xt-customer-list-dialog { width:min(720px,calc(100vw - 28px)); max-height:min(760px,calc(100vh - 28px)); }
.xt-customer-list-dialog .data-dialog-head { padding:22px 22px 0; }
.xt-customer-add-dialog { width:min(560px,calc(100vw - 28px)); }
.xt-customer-add-dialog form { padding:22px; }
.xt-customer-add-fields { display:grid; gap:13px; }
.xt-customer-add-fields label { display:grid; gap:6px; color:var(--muted); font-size:13px; }
.xt-customer-add-fields input { width:100%; }
.xt-customer-list-kicker { display:block; margin-bottom:5px; color:#0b8b9a; font-size:10px; font-weight:800; letter-spacing:1.2px; }
.payment-xt-customer-btn { border-color:#a7dce2; color:#087d8a; font-weight:700; }
.payment-xt-customer-btn:hover,.payment-xt-customer-btn:focus-visible { border-color:#078a9b; background:#eefbfc; color:#056b77; }
.xt-customer-list { display:grid; gap:8px; max-height:min(62vh,560px); overflow:auto; padding:2px 22px 22px; }
.xt-customer-option { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; width:100%; padding:13px 14px; border:1px solid #d7e5e8; border-radius:8px; background:#fff; color:var(--text); text-align:left; transition:border-color .15s ease,box-shadow .15s ease,background .15s ease; }
.xt-customer-option:hover { border-color:#66bdc8; background:#f8fcfd; box-shadow:0 5px 16px rgba(8,125,138,.1); }
.xt-customer-option-main { display:grid; gap:4px; min-width:0; }
.xt-customer-option-main strong { overflow:hidden; color:#173440; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.xt-customer-option-main span { overflow:hidden; color:#647b83; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.xt-customer-option-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; align-self:center; flex-wrap:wrap; }
.xt-customer-option-actions button { min-height:30px; padding:0 9px; border:1px solid #c4dce1; border-radius:6px; background:#fff; color:#087d8a; font-size:12px; font-weight:700; cursor:pointer; }
.xt-customer-option-actions button:hover,.xt-customer-option-actions button:focus-visible { border-color:#078a9b; background:#eefbfc; outline:none; }
.xt-customer-option-actions .xt-customer-delete-action { border-color:#f0c7c7; color:#b44b4b; }
.xt-customer-option-actions .xt-customer-delete-action:hover,.xt-customer-option-actions .xt-customer-delete-action:focus-visible { border-color:#d77d7d; background:#fff5f5; }
.xt-customer-option-actions .xt-customer-select-action { border-color:#a7dce2; }
.xt-customer-select-action span { display:inline-block; padding-left:4px; font-size:18px; line-height:10px; vertical-align:-1px; }
.xt-customer-empty { padding:28px 8px 34px; color:var(--muted); font-size:13px; text-align:center; }
@media (max-width:1280px) {
  .payment-toolbar { grid-template-columns:minmax(0,1fr); }
  .payment-toolbar-actions { justify-self:stretch; max-width:none; }
  .payment-toolbar-actions #xtransferAutomationStatus { text-align:left; }
}
@media (max-width:900px) {
  .payment-toolbar .filters { grid-template-columns:minmax(0,1fr) minmax(145px,.8fr); grid-template-areas:"search salesperson" "status date" "quick quick"; }
}
@media (max-width:620px) {
  .payment-toolbar .filters, .return-order-toolbar .filters { flex:1 1 100%; width:100%; }
  .payment-toolbar .filters { grid-template-columns:minmax(0,1fr); grid-template-areas:"search" "salesperson" "status" "date" "quick"; }
  .payment-toolbar .filters > *, .return-order-toolbar .filters > * { width:100%; max-width:100%; min-width:0; }
  .payment-toolbar #paymentSearch, .return-order-toolbar #returnSearch { width:100%; max-width:100%; }
.payment-toolbar .payment-date-range { width:100%; }
.payment-toolbar-actions, .return-order-toolbar .toolbar-actions { width:100%; justify-content:flex-start; }
.payment-toolbar-actions { grid-template-columns:auto minmax(0,1fr); grid-template-areas:"summary credential" "verify verify" "status status"; max-width:none; }
.payment-toolbar-actions #xtransferAutomationStatus { text-align:left; }
  .xt-customer-list-dialog { width:calc(100vw - 18px); }
  .xt-customer-list { padding-left:16px; padding-right:16px; }
  .xt-customer-option { grid-template-columns:minmax(0,1fr); gap:8px; }
  .xt-customer-option-actions { justify-content:flex-start; justify-self:start; }
  .return-order-quick-add { grid-template-columns:minmax(0,1fr); }
  #workTree .work-tree-flow, #workTree .work-tree-org, #workTree .work-tree-handoffs { grid-template-columns:minmax(0,1fr); }
  #workTree .work-tree-section-head { flex-wrap:wrap; }
  #workTree .work-tree-section-head > *, #workTree .work-tree-team-head > * { min-width:0; }
  #workTree .work-tree-admin-actions { flex-wrap:wrap; }
  #workTree .work-tree-step, #workTree .work-tree-team { overflow-wrap:anywhere; }
}

/* 客户跟进演示：沿用后台 Excel 式密集表格，不使用卡片 CRM 布局。 */
.nav-sub-item { padding-left:14px; color:#a9c0c8; font-size:13px; }
.nav-sub-item.active { padding-left:14px; }
.customer-followup-demo-banner { display:flex; align-items:center; gap:10px; min-height:42px; margin-bottom:12px; padding:9px 13px; border:1px solid #c8e1e6; border-radius:7px; background:#f1fbfc; color:#5f7780; font-size:12px; }
.customer-followup-demo-badge { flex:0 0 auto; padding:4px 8px; border-radius:4px; background:#d8f2f4; color:#087d8a; font-size:11px; font-weight:750; }
.customer-followup-demo-banner .text-button { margin-left:auto; white-space:nowrap; }
.customer-followup-toolbar { display:grid; grid-template-columns:minmax(110px,.65fr) minmax(260px,1.8fr) 145px 145px 160px auto; gap:10px; align-items:center; margin-bottom:10px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow); }
.customer-followup-toolbar-main { display:flex; min-width:0; align-items:center; gap:18px; }
.customer-followup-summary { min-width:0; overflow:hidden; color:var(--muted); font-size:12px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.customer-followup-toolbar > input,.customer-followup-toolbar > select { width:100%; min-width:0; }
.customer-followup-add-button { min-width:72px; justify-self:end; white-space:nowrap; }
.customer-followup-filter-toolbar { justify-content:flex-start; gap:12px; min-height:44px; margin-bottom:12px; padding:0 2px; }
.customer-followup-date-range { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; white-space:nowrap; }
.customer-followup-date-range input { width:150px; min-width:0; min-height:36px; }
.customer-followup-filter-state { min-width:0; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.customer-followup-table-wrap { max-height:calc(100vh - 346px); min-height:420px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.customer-followup-table { width:max-content; min-width:100%; table-layout:fixed; }
.customer-followup-table th,.customer-followup-table td { height:58px; padding:10px 12px; font-size:12px; }
.customer-followup-table th { position:sticky; top:0; z-index:10; background:#edf3f5; color:#526873; font-size:12px; }
.customer-followup-table .cf-member-col,.customer-followup-table th:nth-child(1),.customer-followup-table td:nth-child(1) { width:156px; min-width:156px; }
.customer-followup-table .cf-date-col,.customer-followup-table th:nth-child(2),.customer-followup-table td:nth-child(2) { width:120px; min-width:120px; }
.customer-followup-table .cf-salesperson-col,.customer-followup-table th:nth-child(3),.customer-followup-table td:nth-child(3) { width:112px; min-width:112px; }
.customer-followup-table .cf-contact-col,.customer-followup-table th:nth-child(4),.customer-followup-table td:nth-child(4) { width:148px; min-width:148px; }
.customer-followup-table .cf-group-col,.customer-followup-table th:nth-child(5),.customer-followup-table td:nth-child(5) { width:100px; min-width:100px; }
.customer-followup-table .cf-conversion-col,.customer-followup-table th:nth-child(6),.customer-followup-table td:nth-child(6) { width:128px; min-width:128px; }
.customer-followup-table .cf-followup-col,.customer-followup-table th:nth-child(7),.customer-followup-table td:nth-child(7),.customer-followup-table th:nth-child(8),.customer-followup-table td:nth-child(8),.customer-followup-table th:nth-child(9),.customer-followup-table td:nth-child(9) { width:210px; min-width:210px; }
.customer-followup-table .cf-reason-col,.customer-followup-table th:nth-child(10),.customer-followup-table td:nth-child(10) { width:260px; min-width:260px; }
.customer-followup-table .cf-actions-col,.customer-followup-table th:nth-child(11),.customer-followup-table td:nth-child(11) { width:132px; min-width:132px; }
.customer-followup-table tbody td { background:#fff; }
.customer-followup-table tbody tr:hover td { background:#f8fbfc; }
.customer-followup-table th:nth-child(-n+4),.customer-followup-table td:nth-child(-n+4) { position:sticky; z-index:5; }
.customer-followup-table th:nth-child(1),.customer-followup-table td:nth-child(1) { left:0; }
.customer-followup-table th:nth-child(2),.customer-followup-table td:nth-child(2) { left:156px; }
.customer-followup-table th:nth-child(3),.customer-followup-table td:nth-child(3) { left:276px; }
.customer-followup-table th:nth-child(4),.customer-followup-table td:nth-child(4) { left:388px; }
.customer-followup-table thead th:nth-child(-n+4) { z-index:12; background:#edf3f5; }
.customer-followup-table th:last-child,.customer-followup-table td:last-child { position:sticky; right:0; z-index:6; background:#fff; box-shadow:-6px 0 10px rgba(20,49,60,.04); }
.customer-followup-table thead th:last-child { z-index:13; background:#edf3f5; }
.customer-followup-table tbody tr:hover td:nth-child(-n+4),.customer-followup-table tbody tr:hover td:last-child { background:#f8fbfc; }
.customer-followup-member { display:grid; gap:4px; }
.customer-followup-member strong { color:#173b49; font-size:13px; letter-spacing:.1px; }
.customer-followup-member small,.customer-followup-empty { color:#8b9aa2; font-size:11px; }
.customer-followup-person { display:inline-flex; align-items:center; min-height:26px; padding:0 8px; border:1px solid #c9dfe4; border-radius:4px; background:#f6fbfc; color:#176b87; font-weight:650; }
.customer-followup-badge,.customer-followup-conversion { display:inline-flex; align-items:center; justify-content:center; min-height:25px; padding:0 9px; border:1px solid #d5e0e4; border-radius:4px; background:#f7f9fa; color:#6d7c84; white-space:nowrap; }
.customer-followup-badge.is-yes { border-color:#bfe1ce; background:#f0faf4; color:#2d855b; }
.customer-followup-badge.is-no { border-color:#d7e1e5; background:#f6f8f9; color:#71818a; }
.customer-followup-badge.is-empty,.customer-followup-conversion.is-empty { border-color:#d7e1e5; background:#f6f8f9; color:#a1adb2; }
.customer-followup-conversion.is-done { border-color:#bfe1ce; background:#f0faf4; color:#2d855b; }
.customer-followup-conversion.is-progress { border-color:#b9dce3; background:#eff9fb; color:#11798a; }
.customer-followup-conversion.is-lost { border-color:#edc4c4; background:#fff5f5; color:#b04d4d; }
.customer-followup-conversion.is-source { border-color:#c9dfe4; background:#f6fbfc; color:#176b87; }
.customer-followup-truncate { display:block; max-width:100%; overflow:hidden; color:#526873; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
.customer-followup-truncate.is-empty { color:#a1adb2; }
.customer-followup-reason .customer-followup-truncate { color:#5d6f77; }
.customer-followup-row-actions { display:flex; align-items:center; gap:5px; }
.customer-followup-row-actions button { min-height:30px; padding:0 7px; border:1px solid #cbdde2; border-radius:4px; background:#fff; color:#176b87; font-size:12px; }
.customer-followup-row-actions button:hover { border-color:#078a9b; background:#f1fbfc; }
.customer-followup-row-actions button[data-customer-followup-delete] { border-color:#efcaca; color:#bf5555; }
.customer-followup-row-actions button[data-customer-followup-delete]:hover { background:#fff6f6; }
.customer-followup-table-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:52px; color:var(--muted); font-size:12px; }
.customer-followup-pagination { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex:0 0 auto; }
.customer-followup-pagination button { min-width:68px; }
.customer-followup-pagination strong { min-width:42px; color:var(--ink); text-align:center; }
.customer-followup-dialog { width:min(960px,calc(100vw - 34px)); max-width:none; max-height:calc(100vh - 30px); overflow:auto; }
.customer-followup-dialog form { padding:0 24px 20px; }
.customer-followup-dialog .data-dialog-head { margin:0 -24px 18px; padding:20px 24px 16px; border-bottom:1px solid var(--line); }
.customer-followup-dialog-kicker { display:block; margin-bottom:6px; color:#078a9b; font-size:10px; font-weight:800; letter-spacing:1.2px; }
.customer-followup-dialog h2 { margin:0 0 5px; font-size:20px; }
.customer-followup-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.customer-followup-form-grid label { display:grid; gap:6px; color:#5e7079; font-size:12px; }
.customer-followup-form-grid input,.customer-followup-form-grid select,.customer-followup-form-grid textarea { width:100%; min-width:0; border-color:#cadbe0; border-radius:5px; }
.customer-followup-form-grid textarea { min-height:82px; resize:vertical; line-height:1.55; }
.customer-followup-form-grid .is-wide { grid-column:1 / -1; }
.customer-followup-dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }
.customer-followup-dialog-footer #customerFollowupFormNotice { color:#c37521; font-size:12px; }
.customer-followup-delete-dialog { width:min(520px,calc(100vw - 34px)); padding:22px; }
.customer-followup-delete-card { display:flex; gap:14px; align-items:flex-start; }
.customer-followup-delete-card h2 { margin:0 0 8px; font-size:19px; }
.customer-followup-delete-icon { display:grid; flex:0 0 32px; place-items:center; width:32px; height:32px; border-radius:50%; background:#fff1e6; color:#c87128; font-size:19px; font-weight:800; }
.customer-followup-delete-warning { margin-top:10px; color:#9a6b42; font-size:12px; line-height:1.55; }
.danger-button { min-height:38px; padding:0 14px; border:1px solid #d86a6a; border-radius:8px; background:#d95f5f; color:#fff; }
.danger-button:hover { background:#bd4c4c; }
@media (max-width:1200px) {
  .customer-followup-toolbar { grid-template-columns:minmax(100px,.7fr) minmax(220px,1.4fr) 135px 135px 145px auto; }
  .customer-followup-table-wrap { max-height:calc(100vh - 360px); }
}
@media (max-width:960px) {
  .customer-followup-toolbar { grid-template-columns:minmax(0,1fr) minmax(230px,1fr) repeat(3,minmax(120px,1fr)) auto; }
  .customer-followup-toolbar-main { gap:10px; }
}
@media (max-width:760px) {
  .customer-followup-demo-banner { align-items:flex-start; flex-wrap:wrap; }
  .customer-followup-demo-banner .text-button { margin-left:0; }
  .customer-followup-toolbar { grid-template-columns:1fr 1fr; }
  .customer-followup-toolbar-main,.customer-followup-toolbar > input { grid-column:1 / -1; }
  .customer-followup-add-button { grid-column:2; grid-row:2; }
  .customer-followup-filter-toolbar { align-items:flex-start; flex-wrap:wrap; padding:0; }
  .customer-followup-date-range { flex-wrap:wrap; }
  .customer-followup-date-range input { flex:1 1 140px; }
  .customer-followup-filter-state { flex:1 1 100%; }
  .customer-followup-table-wrap { min-height:360px; }
  .customer-followup-table-footer { align-items:flex-start; flex-direction:column; justify-content:center; gap:7px; }
  .customer-followup-form-grid { grid-template-columns:1fr; }
  .customer-followup-form-grid .is-wide { grid-column:auto; }
  .customer-followup-dialog form { padding:0 18px 18px; }
  .customer-followup-dialog .data-dialog-head { margin:0 -18px 18px; padding:18px; }
  .customer-followup-dialog-footer { align-items:flex-start; flex-direction:column; }
}
