:root {
  --red: #e1251b;
  --red-dark: #c81623;
  --red-soft: #fff1f0;
  --price: #e4393c;
  --bg: #f4f5f7;
  --panel: #ffffff;
  --line: #e8e8e8;
  --line-soft: #f0f0f0;
  --text: #262626;
  --text-2: #595959;
  --muted: #8c8c8c;
  --ok: #16a34a;
  --ok-bg: #ecfdf3;
  --warn: #d97706;
  --warn-bg: #fff7e6;
  --bad: #dc2626;
  --bad-bg: #fef2f2;
  --blue: #2563eb;
  --shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 2px 8px rgba(0, 0, 0, .04);
  --p-ddx: #2563eb;
  --p-pdd: #f97316;
  --p-nm: #16a34a;
  --p-sqj: #9333ea;
  --p-dt: #0f172a;
  --p-mh: #0891b2;
  --p-jdu: #e1251b;
  --p-tb: #ff5000;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font: 14px/1.5 -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  color: var(--text); background: var(--bg);
}
[hidden] { display: none !important; }
svg.i { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body:not(.is-admin) .admin-only { display: none !important; }

/* App shell: sidebar on desktop, icon rail on tablet, bottom tab bar on phone. */
.app { min-height: 100%; display: grid; grid-template-columns: var(--side-w, 216px) minmax(0, 1fr); transition: grid-template-columns .2s; }
body.side-mini { --side-w: 72px; }
.side {
  position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; background: #1f2329; color: #c9cdd4;
  overflow: hidden; z-index: 15;
}
.brand { display: flex; align-items: center; gap: 10px; height: 64px; padding: 0 18px; flex: none; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.brand-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.brand-txt b { color: #fff; font-size: 16px; white-space: nowrap; }
.brand-txt span { font-size: 11px; color: #8a919c; white-space: nowrap; }
.logo-mark {
  width: 34px; height: 34px; border-radius: 8px; background: var(--red); color: #fff; flex: none;
  display: grid; place-items: center; box-shadow: 0 4px 10px rgba(225, 37, 27, .35);
}
.logo-mark svg.i { width: 19px; height: 19px; }
.side-nav { flex: 1; overflow-y: auto; padding: 10px 10px; display: flex; flex-direction: column; gap: 2px; scrollbar-width: none; }
.nav-label { font-size: 11px; color: #6b7280; padding: 14px 10px 6px; white-space: nowrap; }
.side .tab, .side-toggle {
  display: flex; align-items: center; gap: 12px; height: 42px; padding: 0 12px; border: 0; border-radius: 8px; background: none;
  color: inherit; font: inherit; font-size: 14px; cursor: pointer; white-space: nowrap; position: relative; flex: none; width: 100%; text-align: left;
}
.side .tab svg.i, .side-toggle svg.i { width: 18px; height: 18px; }
.side .tab:hover, .side-toggle:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.side .tab.active { background: var(--red); color: #fff; font-weight: 600; box-shadow: 0 4px 12px rgba(225, 37, 27, .3); }
.side-toggle { margin: 8px 10px 12px; width: auto; color: #8a919c; font-size: 13px; }
body.side-mini .brand { padding: 0; justify-content: center; }
body.side-mini .brand-txt, body.side-mini .side .lbl, body.side-mini .nav-label { display: none; }
body.side-mini .side .tab, body.side-mini .side-toggle { justify-content: center; padding: 0; }
body.side-mini .nav-label + .tab { margin-top: 10px; }
body.side-mini .side-toggle svg.i { transform: scaleX(-1); }

.main-col { min-width: 0; display: flex; flex-direction: column; height: 100vh; }
.topbar {
  display: flex; align-items: center; gap: 16px; height: 64px; padding: 0 24px; flex: none;
  background: #fff; border-bottom: 1px solid var(--line); position: relative; z-index: 12;
}
.m-only { display: none !important; }
.page-head { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.page-head h1 { margin: 0; font-size: 20px; font-weight: 700; white-space: nowrap; }
.page-sub { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.top-right { margin-left: auto; display: flex; align-items: center; gap: 12px; flex: none; }
.sync-pill {
  display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: 17px; cursor: pointer;
  border: 1px solid var(--red); background: var(--red-soft); color: var(--red); font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap;
}
.sync-pill:hover { background: var(--red); color: #fff; }
.sync-pill.busy svg { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.user-menu { position: relative; }
.user-btn { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 8px 0 4px; border: 1px solid var(--line); border-radius: 19px; background: #fff; color: var(--text); cursor: pointer; font: inherit; }
.user-btn:hover { border-color: var(--red); }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 13px; flex: none; }
.uname { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu {
  position: absolute; right: 0; top: 46px; width: 200px; background: #fff; color: var(--text); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .14); padding: 6px; z-index: 30;
}
.menu-head { padding: 8px 10px 10px; border-bottom: 1px solid var(--line-soft); margin-bottom: 4px; display: flex; flex-direction: column; }
.menu-head span { font-size: 12px; color: var(--muted); }
.menu button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border: 0; background: none; border-radius: 6px; cursor: pointer; font: inherit; color: var(--text); }
.menu button:hover { background: var(--bg); color: var(--red); }
.bottom-nav, .sheet-mask { display: none !important; }

/* Platform status strip (admin) */
.platform-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; padding: 14px 24px 0; flex: none; }
.pcell {
  display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; min-width: 0;
  background: var(--panel); border-radius: 8px; padding: 9px 12px; font-size: 12px; cursor: pointer; box-shadow: var(--shadow);
  border-left: 3px solid transparent;
}
.pcell[data-p=ddx] { border-left-color: var(--p-ddx); }
.pcell[data-p=pdd] { border-left-color: var(--p-pdd); }
.pcell[data-p=nm] { border-left-color: var(--p-nm); }
.pcell[data-p=sqj] { border-left-color: var(--p-sqj); }
.pcell[data-p=dt] { border-left-color: var(--p-dt); }
.pcell[data-p=mh] { border-left-color: var(--p-mh); }
.pcell[data-p=jdu] { border-left-color: var(--p-jdu); }
.pcell[data-p=tb] { border-left-color: var(--p-tb); }
.acc-count { font-weight: 400; font-size: 11px; color: var(--blue); background: #eff6ff; border-radius: 3px; padding: 0 4px; }
.pcell:hover { box-shadow: 0 2px 12px rgba(0, 0, 0, .1); }
.pcell b { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcell b .muted { font-weight: 400; font-size: 12px; }
.pcell .sub { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); flex: none; display: inline-block; }
.pcell .dot { grid-row: span 2; }
.dot.err { background: var(--bad); }
.dot.run { background: var(--warn); animation: pulse 1s infinite; }
@keyframes pulse { 50% { opacity: .3; } }
/* The status strip is useful on working pages; on admin-only setup pages it is noise. */
body[data-view=users] .platform-strip, body[data-view=accts] .platform-strip { display: none; }

main { flex: 1; min-height: 0; padding: 14px 24px 20px; display: flex; flex-direction: column; }
.view { display: none; flex: 1; min-height: 0; flex-direction: column; gap: 12px; }
.view.active { display: flex; }

.card { background: var(--panel); border-radius: 8px; box-shadow: var(--shadow); min-width: 0; }
.card.grow { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.scroll-x { overflow-x: auto; flex: none; }

/* Controls */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 0 14px;
  border: 1px solid #d9d9d9; background: #fff; border-radius: 6px; cursor: pointer; font: inherit; color: var(--text); white-space: nowrap;
}
.btn:hover:not(:disabled) { border-color: var(--red); color: var(--red); }
.btn:disabled { opacity: .45; cursor: default; }
.btn.primary { background: var(--red); border-color: var(--red); color: #fff; }
.btn.primary:hover:not(:disabled) { background: var(--red-dark); border-color: var(--red-dark); color: #fff; }
.btn.block { width: 100%; }
.btn.lg { height: 42px; font-size: 16px; font-weight: 600; }
.btn.sm { height: 26px; padding: 0 8px; font-size: 12px; gap: 4px; }
.btn.sm svg.i { width: 13px; height: 13px; }
.btn.danger:hover:not(:disabled) { border-color: var(--bad); color: var(--bad); }
.btn.icon-only { width: 32px; padding: 0; }
.btn.push { margin-left: auto; }
select, input[type=date], input[type=text], input[type=password], input:not([type]), .search-input {
  height: 32px; border: 1px solid #d9d9d9; border-radius: 6px; background: #fff; font: inherit; color: var(--text); padding: 0 10px; outline: none;
}
select:focus, input:focus, .search-input:focus-within { border-color: var(--red); box-shadow: 0 0 0 2px rgba(225, 37, 27, .1); }
.search-input { display: flex; align-items: center; gap: 6px; color: var(--muted); min-width: 220px; flex: 1; max-width: 320px; }
.search-input input { border: 0; outline: 0; font: inherit; flex: 1; min-width: 0; height: 30px; padding: 0; box-shadow: none !important; }
.date-range { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
.segmented { display: inline-flex; background: #f2f3f5; border-radius: 6px; padding: 2px; gap: 2px; flex: none; }
.segmented button { border: 0; background: none; padding: 0 12px; height: 28px; cursor: pointer; font: inherit; color: var(--text-2); border-radius: 4px; white-space: nowrap; }
.segmented button:hover { color: var(--red); }
.segmented button.active { background: #fff; color: var(--red); font-weight: 600; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }
.segmented.small button { height: 24px; padding: 0 10px; font-size: 12px; }
.toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 10px 14px; flex: none; }
.muted { color: var(--muted); font-size: 13px; }
.err-text { color: var(--bad); }

/* Check view */
#view-check.active { flex-direction: row; gap: 16px; }
.query-panel { width: 340px; flex: none; display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.panel-title { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 700; }
.panel-title svg.i { color: var(--red); width: 18px; height: 18px; }
.ta-wrap { position: relative; flex: 1; display: flex; min-height: 200px; }
#q {
  flex: 1; width: 100%; resize: none; border: 1px solid #d9d9d9; border-radius: 8px; padding: 12px 12px 30px; background: #fafafa;
  font: 15px/1.8 Consolas, "Courier New", monospace; outline: none; color: var(--text);
}
#q:focus { border-color: var(--red); background: #fff; box-shadow: 0 0 0 2px rgba(225, 37, 27, .1); }
#q::placeholder { font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 13px; color: #bfbfbf; }
.ta-count { position: absolute; right: 10px; bottom: 8px; font-size: 12px; color: var(--muted); background: #fff; padding: 0 6px; border-radius: 4px; }
.row { display: flex; gap: 8px; }
.row select { flex: 1; min-width: 0; }
.sync-note { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); padding-top: 10px; border-top: 1px dashed var(--line); }
.sync-note > :first-child { display: flex; align-items: center; gap: 6px; }
.sync-note .dot { width: 6px; height: 6px; }

.result-panel { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; flex: none; }
.summary .s { display: flex; align-items: center; gap: 12px; background: var(--panel); border-radius: 8px; padding: 12px 16px; box-shadow: var(--shadow); min-width: 0; }
.summary .s > div { min-width: 0; }
.summary .s span { display: block; font-size: 12px; color: var(--muted); white-space: nowrap; }
.summary .s b { display: block; font-size: 24px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.s-ic { width: 40px; height: 40px; border-radius: 8px; display: grid !important; place-items: center; flex: none; }
.s-ic svg.i { width: 20px; height: 20px; }
.s-ic.all { background: #eff4ff; color: var(--blue); }
.s-ic.ok { background: var(--ok-bg); color: var(--ok); }
.s-ic.warn { background: var(--warn-bg); color: var(--warn); }
.s-ic.bad { background: var(--bad-bg); color: var(--bad); }
.result-card { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.result-bar { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); flex-wrap: wrap; }
.bar-actions { display: flex; gap: 8px; }
.res { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 13px; white-space: nowrap; }
.res svg.i { width: 14px; height: 14px; stroke-width: 2.5; }
.res.ok { color: var(--ok); }
.res.warn { color: var(--warn); }
.res.bad { color: var(--bad); }
.strong-no { font-weight: 600; }
.pbadge {
  display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 4px; font-size: 12px; font-weight: 600; white-space: nowrap;
  color: var(--pc); background: color-mix(in srgb, var(--pc) 10%, #fff); border: 1px solid color-mix(in srgb, var(--pc) 28%, #fff);
}
.prod-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--text); }
.prod-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; font-size: 12px; color: var(--muted); }
.grid td.price { color: var(--price); font-weight: 700; font-size: 15px; }
.grid td.time { color: var(--text-2); }
.grid tr.missing td { background: #fffafa; }
.grid tr.similar td { background: #fffdf5; }
.empty { padding: 56px 16px; text-align: center; color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.empty b { color: var(--text-2); font-size: 15px; font-weight: 600; }
.empty-ic { width: 64px; height: 64px; border-radius: 50%; background: var(--red-soft); color: var(--red); display: grid; place-items: center; margin-bottom: 6px; }
.empty-ic svg.i { width: 30px; height: 30px; }

/* Tables */
.table-wrap { flex: 1; min-height: 0; overflow: auto; position: relative; }
.grid { width: 100%; border-collapse: collapse; font-size: 13px; }
.grid th {
  position: sticky; top: 0; background: #fafafa; text-align: left; font-weight: 600; color: var(--text-2);
  padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; z-index: 1;
}
.grid td { padding: 10px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.grid tbody tr:hover td { background: #fff7f6; }
.grid .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.grid .mono, .mono { font-family: Consolas, "Courier New", monospace; white-space: nowrap; }
.grid .nowrap { white-space: nowrap; }
.grid .prod { min-width: 260px; max-width: 460px; }
.grid .prod > div:first-child:not(.prod-name) { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grid .strong { font-weight: 700; color: var(--price); }
.grid th.sort { cursor: pointer; }
.grid th.sort:hover, .grid th.sort.active { color: var(--red); }
.grid th.sort.active::after { content: " ↓"; }
.copyable { cursor: pointer; }
.copyable:hover { color: var(--red); text-decoration: underline; }
.ops { display: flex; gap: 6px; }
.tag { display: inline-block; padding: 0 8px; line-height: 22px; border-radius: 4px; font-size: 12px; white-space: nowrap; }
.tag.ok { background: var(--ok-bg); color: var(--ok); }
.tag.warn { background: var(--warn-bg); color: var(--warn); }
.tag.bad { background: var(--bad-bg); color: var(--bad); }
.tag.gray { background: #f2f3f5; color: var(--text-2); }
.tag.red { background: var(--red-soft); color: var(--red); }
.ptag { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ptag::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--pc, #999); }
.pager { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--line-soft); }
.flat { border-radius: 0 0 8px 8px; }

/* Dashboard */
#view-dash.active, #view-runs.active { overflow-y: auto; }
.ab-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.ab-range { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ab-range[hidden], #anListWrap[hidden], #anBoard[hidden] { display: none; }
.ab { display: flex; flex-direction: column; gap: 12px; }
.ab-kpis .kpi small { display: block; font-size: 12px; margin-top: 2px; }
.ab-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.ab-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ab-card { padding: 14px 16px; min-width: 0; }
.ab-h { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.ab-h b { font-size: 15px; }
.ab-h2 { margin-top: 16px; }
.ab-lg { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.ab-lg i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; margin-left: 6px; }
.ab-lg i.tb, .ab-col em.tb { background: #ff7a45; }
.ab-lg i.jd, .ab-col em.jd { background: #e1251b; }
.ab-trend { display: flex; align-items: flex-end; gap: 3px; height: 190px; }
.ab-col { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ab-col i { flex: 1; width: 100%; max-width: 26px; display: flex; flex-direction: column; justify-content: flex-end; background: #f5f5f5; border-radius: 3px 3px 0 0; overflow: hidden; }
.ab-col em { display: block; width: 100%; }
.ab-col span { font-size: 11px; color: var(--muted); height: 14px; }
.ab-bar { display: grid; grid-template-columns: minmax(70px, 38%) minmax(0, 1fr) 36px; align-items: center; gap: 8px; margin: 6px 0; font-size: 13px; }
.ab-bl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ab-bar i { height: 10px; background: #f5f5f5; border-radius: 5px; overflow: hidden; }
.ab-bar em { display: block; height: 100%; background: linear-gradient(90deg, #ff9c6e, #e1251b); border-radius: 5px; }
.ab-bar b { text-align: right; font-variant-numeric: tabular-nums; }
.ab-tbl td, .ab-tbl th { white-space: nowrap; }
.ab-tbl tbody tr { cursor: pointer; }
.ab-tbl tbody tr:hover { background: #fff7f0; }
.ab-tbl .num { text-align: right; font-variant-numeric: tabular-nums; }
.ab-n { color: #e1251b; font-size: 16px; }
.ab-rk { width: 32px; text-align: center; color: var(--muted); font-weight: 600; }
.ab-rk.top { color: #fff; background: #e1251b; border-radius: 50%; display: inline-grid; place-items: center; width: 22px; height: 22px; margin: 6px; padding: 0; }
.ab-prods { white-space: normal !important; min-width: 180px; }
.ab-prods span { display: inline-block; margin: 2px 4px 2px 0; padding: 1px 6px; border-radius: 4px; background: #f5f5f5; font-size: 12px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.ab-prod { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid #f3f3f3; }
.ab-prod img, .ab-prod .an-noimg { width: 40px; height: 40px; border-radius: 6px; object-fit: cover; }
.ab-prod div { min-width: 0; display: flex; flex-direction: column; }
.ab-prod b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ab-prod em { font-style: normal; font-weight: 700; color: #e1251b; }
.ab-hours { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.ab-hours div { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.ab-hours i { width: 100%; aspect-ratio: 1; border-radius: 4px; background: #e1251b; }
.ab-hours span { font-size: 11px; color: var(--muted); height: 14px; }
@media (max-width: 1100px) { .ab-grid, .ab-grid3 { grid-template-columns: minmax(0, 1fr); } .ab-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ab-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ab-top, .ab-range { align-items: stretch; } .ab-range .date-range { width: 100%; } .ab-trend { height: 140px; } }
.kpis { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; flex: none; }
.kpi { background: var(--panel); border-radius: 8px; padding: 12px 16px; min-width: 0; box-shadow: var(--shadow); border-top: 3px solid #d9d9d9; }
.kpi span { display: block; font-size: 12px; color: var(--muted); }
.kpi b { display: block; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi.ok { border-top-color: var(--ok); }
.kpi.ok b { color: var(--ok); }
.kpi.bad { border-top-color: var(--bad); }
.kpi.bad b { color: var(--bad); }
.kpi.accent { border-top-color: var(--red); background: var(--red-soft); }
.kpi.accent b { color: var(--price); }
.dash-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 12px; flex: none; }
.panel { padding: 14px; overflow-x: auto; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.panel-head b { font-size: 15px; }
.panel-head.pad { padding: 12px 14px; margin: 0; border-bottom: 1px solid var(--line-soft); }
.ph-left, .ph-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.chart { height: 200px; }
.chart svg { display: block; }
.chart text { font-size: 11px; fill: var(--muted); }
.chart .gl { stroke: var(--line-soft); }
.chart rect:hover { opacity: .75; }
.bar-valid { fill: var(--ok); }
.bar-income { fill: var(--red); }
.bar-gmv { fill: var(--blue); }
.prod-wrap { max-height: 640px; min-height: 240px; }
.cover td, .cover th { white-space: nowrap; }
.prog { display: flex; align-items: center; gap: 8px; }
.bar { width: 120px; height: 6px; background: #f0f0f0; border-radius: 3px; overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--red); }

/* Login */
.login-screen { min-height: 100%; display: flex; flex-direction: column; align-items: center; background: var(--bg); }
.login-band { width: 100%; height: 260px; background: var(--red); display: flex; justify-content: center; padding-top: 64px; flex: none; }
.login-brand { display: flex; align-items: center; gap: 12px; color: #fff; font-size: 26px; font-weight: 700; height: 40px; }
.login-brand .logo-mark { width: 40px; height: 40px; background: #fff; color: var(--red); box-shadow: none; }
.login-brand .logo-mark svg.i { width: 24px; height: 24px; }
.login-card {
  width: min(380px, calc(100% - 32px)); margin-top: -120px; background: #fff; border-radius: 8px; padding: 32px 28px 24px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .12); display: flex; flex-direction: column; gap: 14px;
}
.login-card h2 { margin: 0 0 4px; font-size: 20px; text-align: center; }
.input-icon { display: flex; align-items: center; gap: 8px; height: 44px; border: 1px solid #d9d9d9; border-radius: 6px; padding: 0 12px; color: var(--muted); }
.input-icon:focus-within { border-color: var(--red); box-shadow: 0 0 0 2px rgba(225, 37, 27, .1); }
.input-icon input { border: 0 !important; box-shadow: none !important; flex: 1; min-width: 0; height: 40px; padding: 0; font-size: 15px; }
.form-err { color: var(--bad); font-size: 13px; min-height: 18px; }
.login-foot { margin: 0; text-align: center; font-size: 12px; color: var(--muted); }

/* Dialog, toast */
.modal { border: 0; border-radius: 8px; padding: 0; width: min(400px, calc(100% - 32px)); box-shadow: 0 12px 40px rgba(0, 0, 0, .2); }
.modal::backdrop { background: rgba(0, 0, 0, .45); }
.modal form { padding: 20px 22px 18px; display: flex; flex-direction: column; gap: 12px; }
.modal h3 { margin: 0; font-size: 17px; }
.dlg-body { display: flex; flex-direction: column; gap: 12px; }
.fld { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--text-2); }
.fld input, .fld select { height: 36px; }
.dlg-actions { display: flex; justify-content: flex-end; gap: 8px; }
.toast {
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); background: rgba(38, 38, 38, .92); color: #fff;
  padding: 9px 18px; border-radius: 6px; font-size: 13px; z-index: 50; max-width: 90vw;
}

/* Platform accounts */
.acc-name { font-size: 12px; color: var(--text-2); white-space: nowrap; }
td .acc-name { display: inline-block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.warn-text { color: var(--warn); }
.ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.add-acct { position: relative; }
.toolbar .push { margin-left: auto; }
.add-acct .menu { top: 40px; width: 180px; }
.pdot { width: 8px; height: 8px; border-radius: 2px; background: var(--pc); flex: none; }
.acct-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; align-content: start; }
.acct-wrap { display: flex; gap: 12px; align-items: flex-start; }
.acct-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.gtree { width: 250px; flex: none; padding: 8px; position: sticky; top: 12px; max-height: calc(100vh - 140px); overflow: auto; }
.gnode { display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 6px; border-radius: 6px; cursor: pointer; font-size: 13px; min-width: 0; }
.gnode:hover { background: var(--line-soft); }
.gnode.on { background: var(--bad-bg); color: var(--bad); font-weight: 600; }
.gnode .gname { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gnode .gcnt { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.gnode .gbad { font-size: 11px; color: #fff; background: var(--bad); border-radius: 8px; padding: 0 6px; line-height: 16px; }
.gnode .gops { display: none; gap: 2px; }
.gnode:hover .gops, .gnode.on .gops { display: flex; }
.gops button { width: 22px; height: 22px; border: 0; background: none; border-radius: 4px; color: var(--muted); cursor: pointer; display: grid; place-items: center; padding: 0; }
.gops button:hover { background: #fff; color: var(--text, #222); }
.gops svg, .gnode > .gi svg { width: 14px; height: 14px; }
.gnode > .gi { display: grid; place-items: center; color: var(--muted); flex: none; }
.gtree .gsep { height: 1px; background: var(--line-soft); margin: 6px 4px; }
.gpath { font-size: 13px; color: var(--muted); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.gpath b { color: inherit; font-weight: 600; }
.acct-group { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acct { padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 10px; border-top: 3px solid var(--line); min-width: 0; }
.acct.off { opacity: .6; }
.acct-head { display: flex; align-items: center; gap: 8px; min-width: 0; }
.acct-name { flex: 1; min-width: 0; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acct-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
.acct-kv div { display: flex; flex-direction: column; min-width: 0; }
.acct-kv span { font-size: 12px; color: var(--muted); }
.acct-kv b { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acct-err { font-size: 12px; color: var(--bad); background: var(--bad-bg); border-radius: 4px; padding: 6px 8px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.acct-ops { display: flex; gap: 6px; flex-wrap: wrap; border-top: 1px solid var(--line-soft); padding-top: 10px; }
.acct-ops .danger { margin-left: auto; }
.btn.sm.icon-only { width: 26px; padding: 0; justify-content: center; }
.dlg-note { margin: -4px 0 0; font-size: 12px; color: var(--warn); background: var(--warn-bg); border-radius: 4px; padding: 6px 8px; }

/* ---------- Large desktop ---------- */
@media (max-width: 1700px) {
  #resultTable th:nth-child(9), #resultTable td:nth-child(9) { display: none; }
  #resultTable .prod { min-width: 200px; }
  .query-panel { width: 300px; }
}
@media (max-width: 1400px) {
  .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #view-check.active { flex-direction: column; align-items: stretch; overflow-y: auto; }
  .query-panel { width: auto; flex: none; display: grid; grid-template-columns: minmax(0, 1fr) 280px; grid-template-rows: auto auto auto 1fr; column-gap: 14px; }
  .query-panel .panel-title { grid-column: 1 / -1; }
  .query-panel .ta-wrap { grid-row: 2 / 5; height: 170px; min-height: 0; }
  .query-panel .row, .query-panel #doSearch, .query-panel .sync-note { grid-column: 2; }
  .result-panel { flex: none; }
  .result-card { min-height: 320px; }
  .table-wrap { overflow-x: auto; }
}
@media (max-width: 1200px) {
  .dash-grid { grid-template-columns: minmax(0, 1fr); }
  .page-sub { display: none; }
}

/* ---------- Tablet (portrait and landscape): icon rail, page scrolls as a whole ---------- */
@media (max-width: 1100px) {
  body { --side-w: 72px; }
  .side-toggle { display: none; }
  .brand { padding: 0; justify-content: center; }
  .brand-txt, .side .lbl, .nav-label { display: none; }
  .side .tab { justify-content: center; padding: 0; height: 46px; }
  .nav-label + .tab { margin-top: 10px; }
  .main-col { height: auto; min-height: 100vh; }
  .topbar { position: sticky; top: 0; padding: 0 16px; }
  main { padding: 12px 16px 20px; }
  .platform-strip { padding: 12px 16px 0; }
  .view.active { flex: none; }
  .card.grow, .result-card { flex: none; }
  .table-wrap { overflow-x: auto; overflow-y: hidden; flex: none; -webkit-overflow-scrolling: touch; }
  .grid th { position: static; }
  .grid .prod { min-width: 220px; }
  #view-dash.active, #view-runs.active { overflow: visible; }
  .prod-wrap { max-height: none; }
  .gtree { top: 76px; }
}

/* ---------- Small tablet: check panel stacks above the results ---------- */
@media (max-width: 900px) {
  .acct-wrap { flex-direction: column; align-items: stretch; }
  .gtree { width: auto; position: static; max-height: 260px; }
  .gnode .gops { display: flex; }
}

/* ---------- Phone: no sidebar, red app header, bottom tab bar, tables become cards ---------- */
@media (max-width: 767px) {
  body { --side-w: 0px; font-size: 14px; }
  .app { display: block; }
  .side { display: none; }
  .main-col { min-height: 100vh; }
  .main-col { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
  .topbar { height: 52px; padding: 0 12px; gap: 10px; background: var(--red); border: 0; color: #fff; }
  .m-only { display: grid !important; }
  .topbar .logo-mark { width: 30px; height: 30px; background: #fff; color: var(--red); box-shadow: none; }
  .page-head h1 { font-size: 17px; }
  .top-right { gap: 8px; }
  .sync-pill { height: 32px; width: 32px; padding: 0; justify-content: center; border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .15); color: #fff; }
  .sync-pill #syncText { display: none; }
  .user-btn { height: 32px; padding: 0; border: 0; background: none; }
  .user-btn > svg.i, .uname { display: none; }
  .avatar { background: #fff; color: var(--red); }
  .menu { top: 42px; }
  .grid th { top: 52px; }
  .table-wrap { overflow: visible; }

  .bottom-nav {
    display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 25;
    height: calc(58px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
    background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -2px 10px rgba(0, 0, 0, .05);
  }
  .bottom-nav button {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; background: none;
    font: inherit; font-size: 11px; color: var(--muted); cursor: pointer; min-width: 0;
  }
  .bottom-nav svg.i { width: 22px; height: 22px; }
  .bottom-nav button.active { color: var(--red); font-weight: 600; }
  .sheet-mask:not([hidden]) { display: flex !important; position: fixed; inset: 0; z-index: 24; background: rgba(0, 0, 0, .4); align-items: flex-end; }
  .sheet { width: 100%; background: #fff; border-radius: 14px 14px 0 0; padding: 8px 12px calc(70px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .sheet-grab { grid-column: 1 / -1; width: 40px; height: 4px; border-radius: 2px; background: #d9d9d9; margin: 0 auto 6px; }
  .sheet .tab { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fafafa; font: inherit; color: var(--text); cursor: pointer; }
  .sheet .tab svg.i { width: 24px; height: 24px; color: var(--red); }
  .sheet .tab.active { border-color: var(--red); background: var(--red-soft); color: var(--red); }

  .platform-strip { display: flex; overflow-x: auto; gap: 8px; padding: 10px 12px 0; scrollbar-width: none; }
  .platform-strip::-webkit-scrollbar { display: none; }
  .pcell { flex: 0 0 168px; }
  body[data-view=orders] .platform-strip, body[data-view=runs] .platform-strip { display: none; }
  main { padding: 10px 12px 16px; }
  .view { gap: 10px; }

  /* Toolbars: every control gets a full row or shares one evenly. */
  .toolbar { padding: 10px; gap: 8px; }
  .toolbar > * { min-width: 0; }
  .toolbar select, .toolbar .search-input, .toolbar .date-range { flex: 1 1 100%; max-width: none; }
  .toolbar .btn { flex: 1 1 0; }
  .toolbar .btn.push, .toolbar .push { margin-left: 0; }
  .toolbar > b { flex: 1; }
  .toolbar .add-acct { flex: none; }
  .toolbar #nextAuto { flex-basis: 100%; font-size: 12px; }
  .segmented { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .segmented::-webkit-scrollbar { display: none; }
  .toolbar > .segmented { flex: 1 1 100%; }
  .date-range input { flex: 1; min-width: 0; }
  select, input[type=date], .search-input, .btn { height: 38px; }
  .search-input input { height: 36px; }
  .segmented button { height: 32px; }
  .btn.icon-only { width: 38px; }
  .btn.sm { height: 32px; padding: 0 10px; font-size: 13px; }
  .btn.sm.icon-only { width: 32px; }

  /* Check page */
  .query-panel { padding: 12px; gap: 10px; display: flex; }
  .query-panel .ta-wrap { height: 130px; }
  .toolbar > b { display: none; }
  #resultTable td:nth-child(9) { display: flex; }
  .toolbar #acctSummary { flex: 1; }
  .summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .summary .s { padding: 8px 6px; justify-content: center; text-align: center; }
  .summary .s .s-ic { display: none !important; }
  .summary .s b { font-size: 20px; }
  .result-bar { padding: 8px 10px; }
  .result-bar .segmented { flex: 1 1 100%; }
  .result-bar .segmented button { flex: 1; }
  .bar-actions { width: 100%; }
  .bar-actions .btn { flex: 1; }

  /* Tables become stacked cards; labels come from the header via data-label. */
  .grid thead { display: none; }
  .grid, .grid tbody, .grid tr { display: block; width: 100%; }
  .grid tr { padding: 10px 12px; border-bottom: 8px solid var(--bg); }
  .grid tbody tr:last-child { border-bottom: 0; }
  .grid td {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 4px 0; border: 0;
    text-align: right; min-width: 0; max-width: none; white-space: normal !important; overflow-wrap: anywhere;
  }
  .grid td::before { content: attr(data-label); flex: none; max-width: 40%; text-align: left; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 22px; }
  .grid td[data-label=""]::before { display: none; }
  .grid td[data-label=""] { text-align: left; }
  .grid td:empty { display: none; }
  .grid td.num { text-align: right; }
  .grid td.prod { display: block; text-align: left; min-width: 0; max-width: none; padding: 6px 0; }
  .grid td.prod::before { display: block; max-width: none; line-height: 18px; }
  .grid tbody tr:hover td { background: none; }
  .grid tr.missing, .grid tr.similar { background: #fffafa; }
  .grid td.mono { font-size: 13px; }
  .grid td:first-child { font-weight: 600; }
  .grid td .ops { flex-wrap: wrap; justify-content: flex-end; }
  .prog { justify-content: flex-end; }
  .bar { width: 90px; }
  .table-wrap, .card.grow, .result-card { min-height: 0; }
  .pager { justify-content: space-between; }

  /* Dashboard */
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .kpi { padding: 10px 12px; }
  .kpi b { font-size: 18px; }
  .panel { padding: 12px; }
  .panel-head.pad { padding: 10px 12px; }
  .ph-right, .ph-right .search-input { width: 100%; }
  .ph-right .search-input { flex: 1; min-width: 0; }
  .chart { height: 180px; }

  /* Accounts */
  .acct-grid { grid-template-columns: minmax(0, 1fr); }
  .acct { padding: 12px; }
  .acct-ops .btn { flex: 1 1 auto; }
  .acct-ops .btn.icon-only { flex: none; }
  .acct-ops .danger { margin-left: 0; }
  .add-acct .menu { right: 0; }

  /* Dialog becomes a bottom sheet */
  .modal { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 14px 14px 0 0; }
  .modal form { padding: 18px 16px calc(16px + env(safe-area-inset-bottom)); }
  .fld input, .fld select { height: 42px; font-size: 16px; }
  .dlg-actions .btn { flex: 1; height: 42px; }
  .toast { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .login-band { height: 200px; padding-top: 48px; }
  .login-brand { font-size: 22px; }
  #q, .input-icon input, .search-input input, select, input[type=date] { font-size: 16px; }
}
@media (max-width: 360px) {
  .page-head h1 { font-size: 16px; }
  .summary .s b { font-size: 17px; }
  .summary .s span { font-size: 11px; }
}

.buyer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;padding:5px 8px;background:#f4f8ff;border-radius:6px;font-size:12px;color:#4b5563}
.buyer img{width:22px;height:22px;border-radius:50%;object-fit:cover}
.buyer .b-nick{font-weight:600;color:#1f2937}
.buyer span{overflow-wrap:anywhere}

.captcha{display:block;margin-top:8px;height:40px;min-width:110px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;background:#f9fafb}

.health-bar{margin:0 0 12px;padding:10px 14px;border-radius:8px;background:#fff1f0;border:1px solid #ffccc7;color:#cf1322;font-size:13px;line-height:1.5;overflow-wrap:anywhere}

/* ---- 选品比价 ---- */
#view-picks.active { display: flex; flex-direction: column; gap: 12px; }
.pick-search { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.pick-mode { margin-bottom: 12px; }
.pick-rate { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; font-size: 12px; }
.pick-rate .stars { color: #f59e0b; font-size: 14px; letter-spacing: 0; }
.pick-rate .stars i { font-style: normal; color: #e5e7eb; }
.pick-rate.lo .stars { color: #9ca3af; }
.pick-rate b { color: var(--text-2); font-weight: 600; }
.rchip { padding: 1px 6px; border-radius: 4px; background: #f3f4f6; color: var(--muted); }
.rchip.on { background: #ecfdf5; color: #047857; }
.pick-form { display: flex; gap: 10px; }
.pick-input { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 12px; border: 1.5px solid var(--red); border-radius: 8px; color: var(--muted); background: #fff; }
.pick-input input { flex: 1; min-width: 0; border: 0; outline: 0; font: inherit; font-size: 15px; height: 100%; padding: 0; box-shadow: none !important; background: transparent; }
.pick-form .btn.primary { height: 42px; padding: 0 22px; font-size: 15px; font-weight: 600; flex: none; }
.pick-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-2); cursor: pointer; white-space: nowrap; }
.chk input { width: 15px; height: 15px; accent-color: var(--red); margin: 0; }
.pick-libs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-left: auto; font-size: 12px; }
.lib-link { display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 9px; border-radius: 6px; border: 1px solid var(--line, #e5e7eb); color: var(--pc); text-decoration: none; font-weight: 600; background: #fff; white-space: nowrap; }
.lib-link:hover { border-color: var(--pc); }
.lib-link svg.i { width: 12px; height: 12px; }
.pick-status { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--text-2); }
.pick-status:empty { display: none; }
.ps-item { display: inline-flex; align-items: center; gap: 6px; }
.ps-item i { width: 7px; height: 7px; border-radius: 50%; background: var(--pc); }
.ps-item.err { color: var(--bad, #dc2626); }
.ps-item.err i { background: var(--bad, #dc2626); }
.ps-item.loading i { animation: psPulse 1s infinite; }
@keyframes psPulse { 50% { opacity: .25; } }
.ps-time { margin-left: auto; }
.pick-list { display: flex; flex-direction: column; gap: 10px; }
.pick { padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.pick-head { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.pick-head img, .pick-noimg { width: 76px; height: 76px; border-radius: 6px; object-fit: cover; flex: none; background: #f2f3f5; }
.pick-info { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 5px; }
.pick-title { font-weight: 600; font-size: 14px; line-height: 1.45; color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.pick-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--muted); }
.pick-best { font-size: 13px; color: var(--text-2); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pick-best b { color: var(--red); font-size: 17px; }
.offers { display: flex; flex-direction: column; border: 1px solid #eef0f3; border-radius: 6px; overflow: hidden; }
.offer { display: grid; grid-template-columns: 150px 90px 110px 90px 70px minmax(150px, 1.2fr) minmax(80px, 1fr) 64px; align-items: center; gap: 10px; padding: 8px 12px; font-size: 13px; border-top: 1px solid #eef0f3; min-width: 0; }
.offer:first-child { border-top: 0; }
.offer.best { background: #fff7f5; }
.o-plat { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.best-tag { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 600; color: #b45309; background: #fef3c7; border-radius: 4px; padding: 1px 6px; white-space: nowrap; }
.best-tag svg.i { width: 11px; height: 11px; }
.o-cell { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.o-cell span { font-size: 11px; color: var(--muted); }
.o-cell b { font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o-cell b.sub { color: var(--red); font-size: 15px; }
.o-cell s { font-size: 11px; color: var(--muted); }
.o-time b { font-weight: 500; font-size: 12px; color: var(--text-2); }
.o-note { font-size: 12px; color: var(--muted); min-width: 0; overflow-wrap: anywhere; }
.o-ops { display: flex; gap: 6px; justify-content: flex-end; }
.o-ops a.btn { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 1100px) {
  .offer { grid-template-columns: 120px 80px 100px 80px 64px 1fr 64px; }
  .o-note { display: none; }
}
@media (max-width: 767px) {
  .pick-search { padding: 12px; }
  .pick-mode { display: flex; width: 100%; }
  #pickSort { display: flex; flex-wrap: wrap; width: 100%; }
  #pickSort button { flex: 1 0 30%; }
  .pick-mode button { flex: 1; padding: 0 6px; }
  .pick-form .btn.primary { padding: 0 14px; }
  .pick-libs { margin-left: 0; width: 100%; }
  .pick { padding: 12px; }
  .pick-head img, .pick-noimg { width: 64px; height: 64px; }
  .offer { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px; }
  .o-plat { grid-column: 1 / span 2; grid-row: 1; }
  .o-time { grid-column: 1 / span 2; }
  .o-note { display: block; grid-column: 1 / -1; }
  .o-note:empty { display: none; }
  .o-ops { grid-column: 3; grid-row: 1; justify-content: flex-end; }
  .o-ops .btn.sm.icon-only { width: 32px; height: 32px; }
}

.partner { display: inline-flex; align-items: center; gap: 2px; margin-top: 4px; padding: 2px 8px; border-radius: 4px; background: #fff1f0; color: #b42318; font-size: 12px; }
.partner b { font-weight: 600; }
.partner.none { background: #f3f4f6; color: var(--muted); }


.pick-imglink { display: block; flex: none; }
.pick-imglink img { cursor: pointer; transition: opacity .15s; }
.pick-imglink:hover img { opacity: .85; }
.pick-tlink { color: inherit; text-decoration: none; }
.pick-tlink:hover { color: var(--primary, #e1251b); text-decoration: underline; }
a.pbadge.plink { text-decoration: none; cursor: pointer; }
a.pbadge.plink:hover { text-decoration: underline; }


.o-cell s.rate { text-decoration: none; color: var(--muted); font-size: 12px; }


.partner { padding: 3px 10px; background: #e1251b; color: #fff; font-size: 13px; border-radius: 4px; }
.partner b { color: #fff; font-weight: 700; }
.partner.none { background: #fff7e6; color: #b45309; border: 1px solid #f59e0b; }
.partner.none b { color: #b45309; }


/* ---- 查招商 ---- */
.ptn-search { display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.ptn-drop { position: relative; display: grid; place-items: center; min-height: 168px; border: 1.5px dashed #f5a39e; border-radius: 8px; background: var(--red-soft); cursor: pointer; outline: 0; overflow: hidden; }
.ptn-drop:hover, .ptn-drop:focus-visible, .ptn-drop.over { border-color: var(--red); background: #ffe7e5; }
.ptn-drop img { max-height: 260px; max-width: 100%; object-fit: contain; display: block; }
.ptn-ph { display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--muted); font-size: 13px; text-align: center; padding: 16px; }
.ptn-ph b { color: var(--text); font-size: 15px; }
.ptn-ph .i { width: 34px; height: 34px; color: var(--red); }
.ptn-clear { position: absolute; top: 8px; right: 8px; background: #fff; }
.ptn-search .pick-form .icon-btn { width: 42px; height: 42px; flex: none; }
.ptn-list { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.ptn-item { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px; }
.ptn-item.best { border: 1.5px solid var(--red); }
.ptn-pic { width: 88px; height: 88px; border-radius: 6px; object-fit: cover; background: var(--line-soft); }
.ptn-info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ptn-title { font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.ptn-shop { color: var(--muted); font-size: 12px; }
.ptn-teams { display: flex; flex-wrap: wrap; gap: 6px; }
.ptn-teams .partner { margin-top: 2px; gap: 4px; }
.ptn-teams .partner small { opacity: .8; font-size: 11px; margin-left: 4px; }
@media (max-width: 640px) {
  .ptn-search { padding: 12px; }
  .ptn-drop { min-height: 132px; }
  .ptn-item { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px; padding: 10px; }
  .ptn-pic { width: 64px; height: 64px; }
}

/* ---- 统一搜索 (home + result bar) ---- */
.home { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: 8vh 0 12vh; min-height: 420px; }
.home-brand { display: flex; align-items: center; gap: 12px; }
.home-brand .logo-mark { width: 48px; height: 48px; border-radius: 10px; }
.home-brand .logo-mark svg.i { width: 26px; height: 26px; }
.home-brand b { font-size: 30px; color: var(--text); }
.g-box { display: flex; align-items: center; gap: 4px; width: 100%; height: 46px; padding: 0 4px 0 16px; border: 1.5px solid var(--line); border-radius: 23px; background: #fff; color: var(--muted); box-shadow: 0 1px 6px rgba(32, 33, 36, .08); }
.g-box:focus-within, .g-box:hover { border-color: var(--red); box-shadow: 0 2px 10px rgba(225, 37, 27, .14); }
.g-box input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; padding: 0 6px; font: inherit; font-size: 15px; background: transparent; box-shadow: none !important; }
.g-box button { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer; }
.g-box .g-cam:hover { background: var(--red-soft); color: var(--red); }
.g-box .g-go { background: var(--red); color: #fff; width: 56px; border-radius: 19px; }
.g-box .g-go:hover { background: var(--red-dark); }
.g-box.big { max-width: 640px; height: 54px; border-radius: 27px; }
.g-box.big button { height: 44px; }
.g-box.big .g-go { width: 68px; border-radius: 22px; }
.home-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.home-chips button { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border: 1px solid var(--line); border-radius: 17px; background: #fff; color: var(--text); font: inherit; font-size: 13px; cursor: pointer; }
.home-chips button:hover { border-color: var(--red); color: var(--red); }
.home-chips svg.i { width: 15px; height: 15px; color: var(--red); }
.gbar { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.gbar .g-box { max-width: 720px; }
.g-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.g-tabs button { display: inline-flex; align-items: center; gap: 6px; flex: none; height: 38px; padding: 0 14px; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--muted); font: inherit; font-size: 14px; cursor: pointer; }
.g-tabs button svg.i { width: 15px; height: 15px; }
.g-tabs button.active { color: var(--red); border-bottom-color: var(--red); font-weight: 600; }
.g-tabs[data-kind="order"] button[data-gv="partner"], .g-tabs[data-kind="image"] button[data-gv="check"], .g-tabs[data-kind="image"] button[data-gv="picks"] { display: none; }
body.gs #view-picks .pick-form, body.gs #view-partner .pick-form { display: none; }
body.gs[data-view="partner"] .ptn-drop { min-height: 0; }
body.gs[data-view="partner"] .ptn-drop:not(:has(img:not([hidden]))) { display: none; }
body[data-view="home"] .platform-strip, body[data-view="home"] .health-bar { display: none !important; }
@media (max-width: 767px) {
  .home { padding: 6vh 0 10vh; justify-content: flex-start; gap: 18px; min-height: 0; }
  .home-brand b { font-size: 24px; }
  .g-box.big { height: 50px; }
  .g-box.big .g-go { width: 52px; }
  .g-box .g-go { width: 46px; }
}
body.gs #view-check .query-panel { display: none; }
.ptn-more { display: flex; flex-direction: column; gap: 10px; }
.ptn-more summary { cursor: pointer; color: var(--muted); font-size: 13px; padding: 6px 2px; }
.ptn-more .ptn-item { opacity: .75; margin-top: 10px; }

/* 使用统计 */
#uKpis { grid-template-columns: repeat(6, minmax(0, 1fr)); }
#view-usage .u-idle td { background: #fff4f4; }
.u-daily { display: flex; align-items: flex-end; gap: 6px; height: 150px; padding: 14px 14px 8px; overflow-x: auto; }
.u-bar { flex: 1 0 34px; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; font-size: 12px; }
.u-bar i { display: block; width: 60%; max-width: 28px; background: var(--accent, #e1251b); border-radius: 3px 3px 0 0; }
.u-bar span { color: #888; }
#uLog .u-q { max-width: 360px; word-break: break-all; }
@media (max-width: 767px) { #uKpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } #view-usage .toolbar select, #view-usage .toolbar .btn { flex: 1 1 calc(50% - 6px); min-width: 0; justify-content: center; } }

/* ===== 选品比价：大淘客风格卡片 ===== */
.pick-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; flex-direction: initial; }
.pick-list > .empty { grid-column: 1 / -1; }
.pcard { position: relative; display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #ebedf0; border-radius: 8px; overflow: hidden; transition: box-shadow .15s, border-color .15s; }
.pcard:hover { border-color: #ffb199; box-shadow: 0 6px 18px rgba(255, 80, 0, .12); }
.pc-imgw { position: relative; aspect-ratio: 1; background: #f4f5f7; }
.pc-img, .pc-img img { display: block; width: 100%; height: 100%; }
.pc-img img { object-fit: cover; }
.pc-plat { position: absolute; top: 8px; left: 8px; padding: 2px 7px; border-radius: 4px; background: var(--pc, #ff5000); color: #fff; font-size: 12px; line-height: 18px; font-weight: 600; }
.pc-corner { position: absolute; right: 0; bottom: 0; max-width: 80%; padding: 3px 8px; border-radius: 8px 0 0 0; background: #ff3b30; color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-body { display: flex; flex-direction: column; gap: 7px; padding: 9px 10px 10px; min-width: 0; flex: 1; }
.pc-title { font-size: 13px; line-height: 19px; color: #222; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-title em { font-style: normal; font-weight: 700; color: #ff2d2d; margin-right: 4px; }
.pc-tlink { color: inherit; text-decoration: none; }
.pc-tlink:hover { color: #ff5000; }
.pc-tags { display: flex; flex-wrap: wrap; gap: 4px; min-height: 18px; }
.pc-tag { padding: 0 5px; border: 1px solid #ffb27a; border-radius: 3px; color: #ff6a00; font-size: 11px; line-height: 16px; white-space: nowrap; }
.pc-tag.hot { border-color: #ff3b30; color: #ff3b30; }
.pc-tag.dim { border-color: #d6d9de; color: #8a8f99; }
.pc-nums { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px dashed #eee; padding-top: 7px; }
.pc-nums > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pc-nums > div + div { border-left: 1px solid #eee; padding-left: 9px; }
.pc-nums span { font-size: 11px; color: #8a8f99; }
.pc-nums b { font-size: 20px; line-height: 24px; font-weight: 700; white-space: nowrap; }
.pc-nums b small { font-size: 12px; }
.pc-nums b.r { color: #ff2d2d; }
.pc-nums b.b { color: #1677ff; }
.pc-nums s { font-size: 11px; color: #b0b4ba; }
.pc-nums i { align-self: flex-start; max-width: 100%; padding: 0 5px; border-radius: 3px; background: #f2f4f7; color: #555; font-size: 11px; font-style: normal; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-foot { display: flex; align-items: center; gap: 4px; margin-top: auto; font-size: 12px; color: #8a8f99; min-width: 0; }
.pc-fl { display: flex; flex-wrap: wrap; gap: 2px 8px; flex: 1; min-width: 0; overflow: hidden; }
.pc-fl > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.pc-fl b { color: #333; font-weight: 600; }
.pc-fl b.r { color: #ff2d2d; }
.pc-ic { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 28px; height: 28px; padding: 0; border: 1px solid #e3e5e8; border-radius: 6px; background: #fff; color: #555; cursor: pointer; }
.pc-ic:hover:not([disabled]) { border-color: #ff5000; color: #ff5000; }
.pc-ic[disabled] { opacity: .4; cursor: not-allowed; }
.pc-ic svg { width: 14px; height: 14px; }
.pc-offers { display: flex; flex-direction: column; gap: 4px; border-top: 1px dashed #eee; padding-top: 6px; }
.pc-off { display: grid; grid-template-columns: auto 1fr auto auto 26px; align-items: center; gap: 5px; font-size: 11px; color: #555; white-space: nowrap; }
.pc-off .pbadge { padding: 0 5px; border-radius: 3px; background: var(--pc, #999); color: #fff; font-size: 11px; line-height: 17px; text-decoration: none; }
.pc-off .r { color: #ff2d2d; }
.pc-off .pc-ic { width: 24px; height: 24px; }
@media (max-width: 640px) {
  .pick-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pc-body { padding: 7px 8px 8px; gap: 5px; }
  .pc-nums b { font-size: 16px; line-height: 20px; }
  .pc-nums > div + div { padding-left: 6px; }
  .pc-off { grid-template-columns: auto 1fr auto 24px; }
  .pc-off > span:nth-of-type(3) { display: none; }
}
/* ===== 卡片悬浮：图片操作条 + 下拉详情（仅鼠标设备） ===== */
.pc-hover, .pc-more { display: none; }
@media (hover: hover) and (pointer: fine) {
  .pick-list { padding-bottom: 120px; }
  .pcard { overflow: visible; }
  .pc-imgw { overflow: hidden; border-radius: 8px 8px 0 0; }
  .pcard:hover { z-index: 5; border-color: #ff7a45; border-radius: 8px 8px 0 0; box-shadow: 0 8px 24px rgba(255, 80, 0, .18); }
  .pc-hover { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1fr 1fr; height: 38px; background: rgba(255, 106, 0, .92); transform: translateY(100%); transition: transform .18s; z-index: 2; }
  .pcard:hover .pc-hover { transform: translateY(0); }
  .pcard:hover .pc-corner { bottom: 38px; }
  .pc-hover > button, .pc-hover > a { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 0; border: 0; background: transparent; color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
  .pc-hover > * + * { border-left: 1px solid rgba(255, 255, 255, .45); }
  .pc-hover > button:hover, .pc-hover > a:hover { background: rgba(0, 0, 0, .12); }
  .pc-hover > button[disabled] { opacity: .55; cursor: not-allowed; }
  .pc-hover svg { width: 14px; height: 14px; }
  .pc-more:not(:empty) { position: absolute; left: -1px; right: -1px; top: 100%; display: none; flex-direction: column; gap: 5px; padding: 8px 10px 10px; background: #fff; border: 1px solid #ff7a45; border-top: 1px dashed #f0f0f0; border-radius: 0 0 8px 8px; box-shadow: 0 12px 24px rgba(255, 80, 0, .14); font-size: 12px; }
  .pcard:hover .pc-more:not(:empty) { display: flex; }
  .pc-more > div { display: flex; gap: 8px; min-width: 0; }
  .pc-more span { flex: none; color: #8a8f99; }
  .pc-more b { min-width: 0; color: #333; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pc-foot > .pc-ic { display: none; }
}
/* long product grid: let the column grow so the sticky sidebar stays in view */
body[data-view="picks"] .main-col, body.gs .main-col { height: auto; min-height: 100vh; }

/* ---------- 工具箱 ---------- */
.tool-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.tool-tabs { flex-wrap: wrap; }
.tool-tabs button { display: inline-flex; align-items: center; gap: 6px; }
#toolAcct { display: flex; align-items: center; gap: 8px; }
.tl-ic { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 4px; font-style: normal; font-size: 11px; font-weight: 700; color: #fff; background: var(--p-tb); flex: none; }
.tl-ic.jd { background: var(--red); }
.tool-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.tool-left { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.tl-box { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.tl-title { font-weight: 600; font-size: 14px; }
.tl-box textarea { width: 100%; border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; font: inherit; resize: vertical; box-sizing: border-box; }
.tl-pidbar { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.tl-pids { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 0; }
.tl-pid { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: 4px; padding: 3px 8px; font-size: 12px; cursor: pointer; max-width: 100%; overflow-wrap: anywhere; }
.tl-pid input { display: none; }
.tl-pid.on { border-color: var(--p-tb); color: var(--p-tb); background: #fff4ee; }
.tl-pid em { font-style: normal; color: var(--warn); }
.tl-k { color: #595959; font-size: 13px; min-width: 96px; flex: none; }
.tl-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.tl-row small { color: var(--muted); font-size: 12px; }
.tl-in { height: 32px; border: 1px solid var(--line); border-radius: 6px; padding: 0 8px; font: inherit; font-size: 13px; flex: 1; min-width: 0; background: #fff; box-sizing: border-box; }
.tl-num { width: 88px; height: 30px; border: 1px solid var(--line); border-radius: 6px; padding: 0 6px; font: inherit; }
.tl-cks { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.tl-ck { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; cursor: pointer; }
.tl-ck.hot span { color: var(--red); }
.tl-sw { position: relative; width: 36px; height: 20px; flex: none; }
.tl-sw input { opacity: 0; width: 0; height: 0; }
.tl-sw span { position: absolute; inset: 0; border-radius: 10px; background: #d9d9d9; cursor: pointer; transition: .2s; }
.tl-sw span::after { content: ""; position: absolute; left: 2px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: .2s; }
.tl-sw input:checked + span { background: var(--red); }
.tl-sw input:checked + span::after { left: 18px; }
.tl-rules { border-top: 1px dashed var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.tl-sub { font-weight: 600; font-size: 13px; color: var(--red); }
.tl-saved { font-size: 12px; min-height: 16px; }
.tool-right { padding: 14px; min-width: 0; }
.tl-rhead { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.tl-copyall { display: flex; gap: 6px; }
.tl-copyall select { height: 26px; border: 1px solid var(--line); border-radius: 4px; font-size: 12px; }
.tl-none { padding: 40px 10px; text-align: center; color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.tl-none.err b { color: var(--bad); }
.tl-res { border: 1px solid var(--line); border-radius: 8px; padding: 10px; margin-bottom: 10px; display: flex; flex-direction: column; gap: 8px; }
.tl-res.err { border-color: #fecaca; background: var(--bad-bg); }
.tl-rname { font-weight: 600; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tl-st { font-size: 12px; font-weight: 400; padding: 0 6px; border-radius: 4px; line-height: 20px; }
.tl-st.s1 { background: var(--warn-bg); color: var(--warn); }
.tl-st.s2 { background: var(--ok-bg); color: var(--ok); }
.tl-st.s3 { background: var(--bad-bg); color: var(--bad); }
.tl-good { display: flex; gap: 10px; min-width: 0; }
.tl-good img { width: 64px; height: 64px; border-radius: 6px; object-fit: cover; background: #f5f5f5; flex: none; }
.tl-good > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tl-good b { font-size: 13px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.tl-gl { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: #595959; align-items: center; }
.tl-gl em { font-style: normal; font-weight: 600; color: var(--text); }
.tl-gl em.r { color: var(--price); }
.tl-ding { font-style: normal; background: var(--warn); color: #fff; border-radius: 3px; padding: 0 3px; margin-left: 3px; font-size: 11px; }
.tl-flds { display: flex; flex-direction: column; gap: 6px; }
.tl-fld { display: flex; gap: 8px; font-size: 13px; align-items: flex-start; }
.tl-fld > span { color: var(--muted); min-width: 76px; flex: none; line-height: 26px; }
.tl-fld > div { display: flex; align-items: flex-start; gap: 6px; min-width: 0; flex: 1; background: #fafafa; border-radius: 4px; padding: 3px 6px; }
.tl-fld b { font-weight: 400; overflow-wrap: anywhere; flex: 1; line-height: 20px; }
.tl-fld b.lnk { color: var(--blue); cursor: pointer; }
.tl-k2 { font-size: 12px; color: var(--muted); }
.tl-content { display: flex; gap: 6px; background: #fafafa; border-radius: 6px; padding: 8px; font-size: 13px; line-height: 1.6; }
.tl-content > div { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.tl-act { display: flex; gap: 8px; flex-wrap: wrap; }
.tl-filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.tl-filter .tl-in { flex: 0 1 180px; }
.tl-logs { display: flex; flex-direction: column; gap: 10px; }
.tl-log { border: 1px solid var(--line); border-radius: 8px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.tl-lt { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; }
.tl-pager { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 10px; font-size: 13px; }
.tl-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 200; display: grid; place-items: center; padding: 12px; }
.tl-mask[hidden] { display: none; }
.tl-dlg { background: #fff; border-radius: 8px; width: min(620px, 100%); max-height: 86vh; display: flex; flex-direction: column; }
.tl-dh { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.tl-db { padding: 14px; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.tl-kwbar, .tl-kw { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.tl-kwlist { display: flex; flex-direction: column; gap: 6px; }
.tl-kw .tl-in { flex: 1 1 120px; }
.tl-auth { max-width: 640px; }
.tl-ah { display: flex; align-items: center; gap: 10px; }
.tl-ah > div { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tl-ah .tl-ic { width: 36px; height: 36px; font-size: 16px; border-radius: 8px; }
.tl-aform { display: flex; flex-direction: column; gap: 10px; max-width: 360px; margin-top: 6px; }
.tl-aform .tl-in { flex: none; height: 36px; }
.tl-cap { display: flex; gap: 8px; }
.tl-cap .tl-in { flex: 1; }
.tl-cap img { width: 110px; height: 36px; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; object-fit: contain; background: #fafafa; }
@media (max-width: 900px) {
  .tool-grid { grid-template-columns: minmax(0, 1fr); }
  .tl-k { min-width: 84px; }
  .tool-tabs { width: 100%; }
  .tool-tabs button { flex: 1 1 45%; justify-content: center; }
}.tool-tabs { display: flex; gap: 0; background: #fff; border-radius: 8px; box-shadow: var(--shadow); padding: 4px; }
.tool-tabs button { height: 34px; padding: 0 14px; border: 0; background: transparent; border-radius: 6px; font: inherit; font-size: 14px; color: var(--text); cursor: pointer; }
.tool-tabs button:hover { color: var(--red); }
.tool-tabs button.active { background: var(--red-soft); color: var(--red); font-weight: 600; }
.tl-mask .seg, .tl-box .seg { display: inline-flex; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.tl-box .seg button { border: 0; background: #fff; padding: 0 10px; height: 28px; font: inherit; font-size: 12px; cursor: pointer; border-right: 1px solid var(--line); }
.tl-box .seg button:last-child { border-right: 0; }
.tl-box .seg button.active { background: var(--red); color: #fff; }
.tl-box .seg button:disabled { opacity: .4; cursor: default; }
@media (max-width: 900px) { .tool-tabs button { padding: 0 6px; font-size: 13px; } }
/* 选品库平台子栏目 */
.pick-plats { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; margin-top: 12px; scrollbar-width: none; position: sticky; top: 0; z-index: 5; background: var(--bg); }
.pick-plats::-webkit-scrollbar { display: none; }
.pick-plats:empty { display: none; }
.pick-plats button { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; font-size: 14px; color: var(--text); cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.pick-plats button i { width: 8px; height: 8px; border-radius: 50%; background: var(--pc); }
.pick-plats button small { font-size: 12px; color: var(--muted); background: #f5f5f5; border-radius: 10px; padding: 0 7px; line-height: 18px; }
.pick-plats button:hover { border-color: var(--pc); color: var(--pc); }
.pick-plats button.active { background: var(--pc); border-color: var(--pc); color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.pick-plats button.active i { background: #fff; }
.pick-plats button.active small { background: rgba(255,255,255,.25); color: #fff; }
.tl-ic.rec { background: var(--blue); }
.tl-rcsum { font-size: 12px; }
.tl-filter input[type="date"] { flex: 0 1 150px; }
@media (max-width: 900px) { .pick-plats button { height: 32px; padding: 0 12px; font-size: 13px; } .tool-tabs button { flex: 1 1 30%; } }
/* 注册 / 审核 */
.login-tabs { display: flex; gap: 0; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.login-tabs button { flex: 1; border: 0; background: none; font: inherit; font-size: 17px; font-weight: 600; color: var(--muted); padding: 0 0 10px; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.login-tabs button.active { color: var(--red); border-bottom-color: var(--red); }
#regFields { display: flex; flex-direction: column; gap: 14px; }
.login-foot a { color: var(--red); }
.reg-done { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 10px 0; }
.reg-done span { color: var(--muted); }
.reg-done .empty-ic { background: var(--ok-bg); color: var(--ok); }
.tab.no-perm { display: none !important; }
.nbadge { font-style: normal; background: var(--red); color: #fff; font-size: 11px; line-height: 16px; min-width: 16px; padding: 0 4px; border-radius: 8px; margin-left: auto; text-align: center; }
.nbadge[hidden] { display: none; }
.an-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--muted); padding: 0 4px; flex: none; }
.an-meta span { display: inline-flex; align-items: center; gap: 4px; }
.an-meta svg { width: 13px; height: 13px; }
.an-meta .warn { color: var(--warn); }
.an-ck { width: 32px; }
.an-goods { display: flex; gap: 10px; align-items: center; min-width: 220px; max-width: 360px; }
.an-goods img, .an-noimg { width: 48px; height: 48px; border-radius: 6px; object-fit: cover; flex: none; background: #f2f3f5; display: grid; place-items: center; color: var(--muted); }
.an-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.4; }
.an-ops { border: 1px solid var(--line-soft); background: var(--bad-bg); color: var(--bad); border-radius: 6px; padding: 3px 10px; cursor: pointer; font: inherit; display: inline-flex; gap: 8px; align-items: baseline; white-space: nowrap; }
.an-ops:hover { border-color: var(--bad); }
.an-who { font-size: 12px; color: var(--text-2); margin-top: 4px; max-width: 320px; line-height: 1.5; }
.an-empty { text-align: center; padding: 40px 0 !important; }
#anStatus small { color: var(--muted); margin-left: 2px; }
#anKw { width: 180px; }
@media (max-width: 760px) {
  #anTable thead { display: none; }
  #anTable tr { display: grid; grid-template-columns: 28px 1fr; gap: 6px 8px; padding: 12px; border-bottom: 1px solid var(--line-soft); }
  #anTable td { display: block; padding: 0 !important; border: 0 !important; white-space: normal; }
  #anTable td.an-ck { grid-row: span 6; }
  .an-goods { min-width: 0; max-width: none; }
  #anKw { width: 100%; }
}
.perm-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; max-width: 260px; }
.perm-tags .tag { line-height: 18px; padding: 0 5px; font-size: 11px; }
.perm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; margin: 8px 0; }
.pd-mods { display: flex; flex-direction: column; gap: 4px; }
.row-pend td { background: #fffbeb; }
.small { font-size: 12px; }
#userSum b.r { color: var(--red); }
.cap-row{display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:center}.cap-row[hidden]{display:none}.cap-img{height:44px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc;cursor:pointer;padding:0;overflow:hidden;color:#6b7280;font-size:12px}.cap-img img{width:100%;height:100%;object-fit:contain;display:block}
.cap-row{grid-template-columns:minmax(0,1fr) 110px;margin-bottom:14px}.cap-row>label{min-width:0;width:auto;margin:0}.cap-img{width:110px}
.jd-src{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.jd-src .tl-k{font-weight:600;color:#374151}
.jd-src .segmented button{min-width:68px;height:30px}@media (max-width:600px){.jd-src .segmented{display:flex;width:100%}.jd-src .segmented button{flex:1;min-width:0;padding:0 4px}}
.tl-note{font-size:12px;margin-top:8px;line-height:1.6}
.jp-var{border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-top:12px;background:#fff}.jp-var.fail{background:#fef2f2;border-color:#fecaca}
.jp-vh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.jp-vh b{font-size:14px}.jp-vh .muted{font-size:12px;flex:1;min-width:120px}
.jp-bad{font-size:12px;margin-top:6px;display:grid;gap:4px}.jp-bad div{display:flex;gap:8px;flex-wrap:wrap;min-width:0}.jp-bad span{color:#6b7280;word-break:break-all;min-width:0}.jp-bad b{color:#dc2626;font-weight:500}
/* 全平台比价转链 */
.ja-head { display: flex; flex-direction: column; gap: 10px; padding: 14px; margin-bottom: 12px; }
.ja-sbox { display: flex; align-items: center; gap: 8px; border: 2px solid #ff5000; border-radius: 8px; padding: 0 0 0 12px; background: #fff; overflow: hidden; }
.ja-sbox > [data-icon] { color: #8a8f99; flex: none; }
.ja-sbox input { flex: 1; min-width: 0; border: 0; outline: 0; height: 42px; font-size: 15px; background: transparent; }
.ja-sbox .btn { height: 42px; border-radius: 0; padding: 0 20px; flex: none; }
.ja-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #5c6370; align-items: center; }
.ja-meta b { color: #222; font-weight: 600; }
.ja-accs { display: flex; flex-wrap: wrap; gap: 8px; }
.ja-acc { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.ja-acc select { height: 28px; border: 1px solid #dcdfe6; border-radius: 6px; padding: 0 6px; max-width: 150px; }
.ja-plats { display: flex; flex-wrap: wrap; gap: 6px; }
.ja-plats button { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 12px; border: 1px solid #dcdfe6; border-radius: 15px; background: #fff; color: #333; font-size: 13px; cursor: pointer; }
.ja-plats button i { width: 8px; height: 8px; border-radius: 50%; }
.ja-plats button.active { border-color: #ff5000; color: #ff5000; background: #fff4ee; }
.ja-plats button.bad { color: #b0b4ba; }
.ja-sort { align-self: flex-start; }
.ja-card .ja-ext { width: 100%; justify-content: center; margin-top: 4px; }
/* 转链预警：角落里的温和提醒卡片，不遮挡页面 */
.sg-note { position: fixed; right: 20px; bottom: 20px; z-index: 1000; width: min(380px, calc(100vw - 32px)); display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; background: #fff; border: 1px solid #ffe58f; border-left: 4px solid #faad14; border-radius: 8px; box-shadow: 0 6px 24px rgba(0, 0, 0, .12); font-size: 13px; }
.sg-nh { display: flex; align-items: center; gap: 8px; }
.sg-nh b { flex: 1; min-width: 0; color: #874d00; font-size: 14px; }
.sg-ni { flex: none; color: #faad14; display: grid; place-items: center; }
.sg-nt { color: var(--text-2); line-height: 1.4; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sg-nb { color: var(--text); line-height: 1.5; }
.sg-na { display: flex; gap: 8px; flex-wrap: wrap; }
.sg-link { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sg-link a, .sg-link > b { font-size: 14px; font-weight: 600; color: #1677ff; overflow-wrap: anywhere; flex: 1; min-width: 0; }
.btn.danger.ghost { background: #fff; color: #cf1322; border-color: #ffa39e; }
@media (max-width: 600px) { .sg-note { right: 16px; left: 16px; width: auto; bottom: calc(76px + env(safe-area-inset-bottom)); } .sg-na .btn { flex: 1; } }
.ja-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, .45); }
.ja-dlg { width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.ja-dh { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ja-text { width: 100%; box-sizing: border-box; border: 1px solid #dcdfe6; border-radius: 6px; padding: 10px; font: inherit; font-size: 14px; line-height: 1.6; resize: vertical; }
.ja-da { display: flex; justify-content: flex-end; }
@media (max-width: 640px) {
  .ja-head { padding: 10px; }
  .ja-sbox .btn { padding: 0 12px; }
  .ja-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ja-card .pc-nums b { font-size: 16px; }
  .ja-sort { align-self: stretch; }
}
.ja-spec { color: #ff2d2d; }

.ja-pend { color: #ff6a00; font-weight: 600; }

.ja-mine b { color: #1677ff; }
.ja-mine.none { color: #ff2d2d; }
.cv-plat { border-top: 1px dashed #eee; padding-top: 10px; margin-top: 4px; display: flex; flex-direction: column; gap: 8px; }
.cv-plat .tl-sub { font-weight: 600; }
.tag.blue { background: #e8f1ff; color: #1677ff; }

/* Account list grouped by community-system department */
.user-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 14px; }
.user-filter .ja-plats { flex: 1 1 auto; margin: 0; }
.user-filter #userQ { width: 200px; max-width: 100%; height: 32px; padding: 0 10px; border: 1px solid #e3e5ea; border-radius: 6px; }
#userTable .grp-row td { background: #fff4f2; color: #c4271f; padding: 8px 12px; border-top: 2px solid #f3c9c3; }
#userTable .grp-row td > * { vertical-align: middle; margin-right: 6px; }
#userTable .grp-row svg { width: 15px; height: 15px; }
#userTable .row-virtual td { color: #8a8f99; background: #fafbfc; }
@media (max-width: 700px) { .user-filter #userQ { width: 100%; } }

/* 历史核查 */
.tag.blue { background: #e8f1ff; color: #1f6feb; }
.hist-run { color: #1f6feb; font-weight: 600; }
.hist-run [data-icon] svg { animation: spin 1.2s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.hist-form { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px 12px; align-items: center; min-width: min(520px, 82vw); }
.hist-form > label { color: var(--text-2); font-size: 13px; }
.hist-form .segmented { justify-self: start; }
.hist-dates { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hist-dates input, .hist-form select { height: 34px; border: 1px solid var(--line, #e5e6eb); border-radius: 6px; padding: 0 10px; min-width: 0; }
.hist-form select { width: 100%; }
.hist-note, .hist-act { grid-column: 1 / -1; }
.hist-act { display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width: 640px) { .hist-form { grid-template-columns: 1fr; gap: 8px; min-width: 0; } .hist-dates input { flex: 1; } }

/* 群看板 */
#gKpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
#gKpis .kpi:nth-child(-n+2) { border-top-color: var(--red, #e1251b); }
.g-up { color: #16a34a; font-weight: 600; }
.g-down { color: #e1251b; font-weight: 600; }
#gChart { height: 210px; }
.chart .g-line { fill: none; stroke: var(--red, #e1251b); stroke-width: 2; stroke-linejoin: round; }
.chart .g-area { fill: rgba(225, 37, 27, .08); }
.chart .g-dot { fill: #fff; stroke: var(--red, #e1251b); stroke-width: 1.5; cursor: default; }
.chart .g-dot:hover { fill: var(--red, #e1251b); }
.g-drops { display: flex; flex-direction: column; max-height: 214px; overflow-y: auto; }
.g-drop { display: grid; grid-template-columns: minmax(0, 1fr) auto 56px; gap: 10px; align-items: center; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--line-soft, #f0f0f0); padding: 7px 4px; cursor: pointer; font: inherit; color: inherit; }
.g-drop:hover { background: #fafafa; }
.g-drop b { text-align: right; font-variant-numeric: tabular-nums; }
.g-dn { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-table th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.g-table th.sortable:hover { color: var(--red, #e1251b); }
.g-row { cursor: pointer; }
.g-row:hover td { background: #fff7f6; }
.g-name { max-width: 360px; }
.g-name > div, .g-name > b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-spark { display: block; }
.g-spark polyline { fill: none; stroke-width: 1.6; }
.g-spark.up polyline { stroke: #16a34a; }
.g-spark.down polyline { stroke: #e1251b; }
.g-mod { min-width: min(720px, 86vw); display: flex; flex-direction: column; gap: 12px; }
.g-mk { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.g-mk .kpi { box-shadow: none; background: #f7f8fa; padding: 10px 12px; }
.g-mk .kpi b { font-size: 17px; }
@media (max-width: 1100px) { #gKpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } .g-mk { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  #gKpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-mk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-mod { min-width: 0; }
  .g-table { min-width: 720px; }
  .g-name { max-width: 200px; }
}

/* 监控分组 */
.gw { display: flex; flex-direction: column; gap: 10px; min-width: min(560px, 86vw); }
.gw-bar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.gw-bar input { flex: 1; min-width: 140px; height: 32px; border: 1px solid var(--line, #e5e6eb); border-radius: 6px; padding: 0 10px; }
.gw-list { max-height: 56vh; overflow-y: auto; border: 1px solid var(--line-soft, #f0f0f0); border-radius: 6px; }
.gw-it { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--line-soft, #f0f0f0); cursor: pointer; }
.gw-it:hover { background: #fff7f6; }
.gw-nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 640px) { .gw { min-width: 0; } .gw-it { grid-template-columns: 18px minmax(0, 1fr); } .gw-it .small { grid-column: 2; } }

/* 异常群 */
.g-abn-sub { padding: 0 4px 6px; }
.g-abn { grid-template-columns: 42px minmax(0, 1fr) auto 56px; }
.g-abn .g-dn { display: flex; flex-direction: column; min-width: 0; }
.g-abn .g-dn > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-ad { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.g-qt { max-height: 260px; overflow-y: auto; }
.g-bad td { background: #fff4f3; }

#gAbnTitle { margin-right: auto; }
#gAbnSort, #gAbnRange { flex: none; }
.panel-head:has(#gAbnSort) { flex-wrap: wrap; gap: 8px; }


/* ---- 财务看板 ---- */
#finBox { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fin-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fin-kpis .kpi small { display: block; font-size: 12px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi.warn { border-top-color: var(--warn); }
.kpi.warn b { color: var(--warn); }
.kpi em { font-style: normal; font-weight: 600; margin-left: 4px; }
.kpi em.up { color: var(--ok); }
.kpi em.down { color: var(--bad); }
.fin-wait { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 40px 16px; }
.fin-wait .spin { width: 26px; height: 26px; border: 3px solid var(--line); border-top-color: var(--red); border-radius: 50%; animation: finspin .8s linear infinite; }
@keyframes finspin { to { transform: rotate(360deg); } }
.fin-err { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; background: var(--warn-bg); color: #8a4b00; font-size: 13px; }
.fin-err [data-icon] { color: var(--warn); flex: none; }
.fin-switch { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-2); cursor: pointer; user-select: none; }
.fin-stmt td, .fin-stmt th { white-space: nowrap; }
.fin-stmt .fin-sec td { background: #fafafa; color: var(--muted); font-size: 12px; font-weight: 600; padding-top: 6px; padding-bottom: 6px; }
.fin-stmt .fin-sum td { border-top: 1px solid var(--line); background: #fcfcfc; }
.fin-stmt .fin-sum.in b { color: var(--ok); }
.fin-stmt .fin-sum.out b { color: var(--bad); }
.fin-stmt .fin-sum.net td { background: var(--red-soft); }
.fin-stmt .fin-sum.net b { color: var(--price); font-size: 15px; }
.fin-stmt .fin-sum.net.bad b { color: var(--bad); }
.fin-src { display: inline-block; padding: 1px 6px; border-radius: 4px; background: #f2f4f7; color: var(--text-2); font-size: 12px; }
.fin-share { min-width: 150px; }
.fin-share i { display: inline-block; vertical-align: middle; width: 90px; height: 6px; border-radius: 3px; background: var(--line-soft); overflow: hidden; margin-right: 8px; }
.fin-share em { display: block; height: 100%; border-radius: 3px; }
.fin-share em.in { background: var(--ok); }
.fin-share em.out { background: var(--bad); }
.fin-share span { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.fin-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fin-teams { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.fin-team { border: 1px solid var(--line-soft); border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.fin-team-h { display: flex; justify-content: space-between; gap: 8px; font-variant-numeric: tabular-nums; }
.fin-team-h b.ok { color: var(--ok); } .fin-team-h b.bad { color: var(--bad); }
.fin-dbar { height: 6px; border-radius: 3px; background: var(--line-soft); overflow: hidden; }
.fin-dbar i { display: block; height: 100%; border-radius: 3px; }
.fin-dbar i.in { background: var(--ok); } .fin-dbar i.out { background: var(--bad); }
.fin-trend { display: flex; align-items: stretch; gap: 3px; height: 200px; overflow-x: auto; padding-bottom: 2px; }
.fin-col { flex: 1 0 14px; display: flex; flex-direction: column; min-width: 14px; cursor: default; }
.fin-col:hover .fin-bars { background: #f7f7f7; }
.fin-bars { flex: 1; display: flex; align-items: flex-end; gap: 1px; border-radius: 3px; }
.fin-bars .stk { flex: 1; height: 100%; display: flex; flex-direction: column-reverse; }
.fin-bars em { display: block; width: 100%; }
.fin-bars em:last-child, .fin-bars .stk em.fo { border-radius: 2px 2px 0 0; }
.fin-bars em.tb, .ab-lg i.tb { background: #ff7a45; }
.fin-bars em.jd { background: #e1251b; }
.fin-bars em.fi, .ab-lg i.fi { background: #2563eb; }
.fin-bars em.fo, .ab-lg i.fo { background: #9ca3af; }
.fin-col > span { font-size: 10px; color: var(--muted); text-align: center; height: 14px; line-height: 14px; overflow: hidden; }
.fin-ell { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fin-notes { padding: 12px 16px; font-size: 13px; color: var(--text-2); }
.fin-notes summary { cursor: pointer; }
.fin-notes ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.8; }
#view-fin .toolbar { flex-wrap: wrap; }
@media (max-width: 1200px) { .fin-grid2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 767px) {
  .fin-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fin-kpis .kpi b { font-size: 18px; }
  #fQuick { width: 100%; overflow-x: auto; }
  #fQuick button { flex: 1 0 auto; }
  #view-fin .date-range { flex: 1 1 100%; }
  #fReload { flex: 1 1 100%; justify-content: center; }
  .fin-trend { height: 150px; }
  .fin-share i { width: 50px; }
  .fin-teams { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.fin-srcs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.fin-src-card { border: 1px solid var(--line-soft); border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.fin-src-btns { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.fin-src-list { border-top: 1px dashed var(--line); padding-top: 6px; max-height: 260px; overflow-y: auto; }
.fin-entry { display: grid; grid-template-columns: 44px 84px 56px minmax(0, 1fr) 30px; gap: 6px; align-items: center; font-size: 12px; padding: 3px 0; font-variant-numeric: tabular-nums; }
.fin-entry b.ok { color: var(--ok); } .fin-entry b.bad { color: var(--bad); }
.fin-entry .fin-ell { max-width: none; }
#dlgDel { margin-right: auto; }

/* 各类群产出 */
.go-table td, .go-table th { white-space: nowrap; }
.go-cell { cursor: pointer; }
.go-cell:hover { background: rgba(230, 0, 18, .05); }
.go-dlg { width: min(980px, 96vw); }
.go-kw { width: 100%; max-width: 320px; margin-bottom: 8px; padding: 6px 10px; border: 1px solid #ddd; border-radius: 6px; }
.go-src { max-height: 62vh; overflow: auto; }
.go-src select { max-width: 110px; }
#goCard .panel-head { flex-wrap: wrap; gap: 8px; }

.go-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.go-bar .go-kw { margin: 0; }
.go-batch { background: #f7f8fa; padding: 6px 8px; border-radius: 6px; }
.go-st { white-space: nowrap; }


.go-form{display:grid;gap:10px}.go-form>label{display:grid;gap:4px}.gf-ppl{display:grid;gap:8px;max-height:46vh;overflow:auto}.gf-role{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.gf-p{display:inline-flex;gap:4px;align-items:center;padding:3px 8px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer}.gf-p em{font-style:normal}.gf-p[hidden]{display:none}

.go-tip{padding:8px 10px;margin-bottom:8px;border-radius:6px;background:#fff7e6;color:#ad6800}.go-mode i{font-style:normal}


/* 卡片内多方案：每行固定两行排版，第一行 平台/方案/复制，第二行 价格/补贴/收益 */
.pc-offers .pc-off{display:grid !important;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:'b m c' 'p s i';align-items:center;column-gap:8px;row-gap:4px;flex-wrap:nowrap}
.pc-offers .pc-off>.pbadge{grid-area:b}.pc-offers .pc-off>.po-m{grid-area:m;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-offers .pc-off>.pc-ic{grid-area:c;justify-self:end}
.pc-offers .pc-off>.po-p{grid-area:p;white-space:nowrap}.pc-offers .pc-off>.po-s{grid-area:s;justify-self:center;white-space:nowrap}.pc-offers .pc-off>.po-i{grid-area:i;justify-self:end;white-space:nowrap}


.pc-tag.rise { border-color: #12a150; color: #fff; background: #12a150; }
#pickSort .rise-arrow { color: #12a150; font-weight: 700; margin-left: 2px; }
#pickSort button.active .rise-arrow { color: inherit; }

.sl-box { display: grid; gap: 10px; padding: 14px; }
.sl-bar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sl-bar select.tl-in { width: 150px; }
.sl-new { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 8px 10px; border: 1px solid #b7ebc6; background: #f0fbf3; border-radius: 6px; }
.sl-grid td { vertical-align: top; }
.sl-l { display: flex; align-items: center; gap: 4px; max-width: 360px; }
.sl-l a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
@media (max-width: 760px) { .sl-l { max-width: none; } .sl-bar select.tl-in { width: 100%; } }
body:not(.is-ops) .ops-only { display: none !important; }
.go-top td { background: #f4f7fb; }
.go-kid td:first-child { padding-left: 28px; }
.go-ind { color: #9aa4b2; margin-right: 6px; }
.gf-catl[hidden] { display: none; }

/* 数字员工 SOP */
.sop-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:12px}
.sop-main{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}
.sop-side{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px}
.sop-fl{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;border:1px solid transparent;font-size:13px}
.sop-fl:hover{background:var(--bg)}
.sop-fl.on{border-color:#e4393c;background:#fff1f0}
.sop-dot{width:8px;height:8px;border-radius:50%;background:#bfbfbf;flex:none}
.sop-dot.ok{background:#52c41a}
.sop-edit{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;min-width:0}
.sop-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.sop-in{height:32px;border:1px solid var(--line);border-radius:6px;padding:0 8px;font-size:13px;min-width:0}
.sop-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:10px}
.sop-wrap{position:relative;overflow:auto;height:520px;border:1px solid var(--line);border-radius:8px;background:#fafafa}
.sop-cv{position:relative;width:2000px;height:1200px;background-image:radial-gradient(#d9d9d9 1px,transparent 1px);background-size:20px 20px}
.sop-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.sop-e{fill:none;stroke:#8c8c8c;stroke-width:2}
.sop-e.yes{stroke:#52c41a}.sop-e.no{stroke:#f5222d}.sop-e.tmp{stroke-dasharray:6 4;stroke:#1677ff}
.sop-hit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:pointer}
.sop-n{position:absolute;width:220px;background:#fff;border:1px solid var(--line);border-left:4px solid #1677ff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.06);cursor:move;user-select:none;font-size:12px}
.sop-n.t-trigger{border-left-color:#fa8c16}.sop-n.t-cond{border-left-color:#722ed1}.sop-n.t-action{border-left-color:#13c2c2}
.sop-n.sel{box-shadow:0 0 0 2px #e4393c}
.sop-nh{padding:6px 10px;font-weight:600;border-bottom:1px solid var(--line-soft);overflow-wrap:anywhere}
.sop-nb{padding:6px 10px;color:var(--muted);overflow-wrap:anywhere}
.sop-p,.sop-in-p{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #1677ff;cursor:crosshair}
.sop-p{right:-8px}.sop-in-p{left:-8px;top:12px}
.sop-p.yes{border-color:#52c41a}.sop-p.no{border-color:#f5222d}
.sop-prop{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;font-size:13px;max-height:520px;overflow:auto}
.sop-prop label{display:flex;flex-direction:column;gap:4px;color:var(--muted)}
.sop-prop input,.sop-prop select,.sop-prop textarea{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;color:var(--text)}
.sop-txt{min-height:110px;resize:vertical}
.sop-vars{display:flex;flex-wrap:wrap;gap:4px}
.sop-vars span,.sop-vars button{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg);border:1px solid var(--line);cursor:pointer}
.sop-pe,.sop-empty{color:var(--muted);padding:16px;text-align:center}
.sop-bot{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;overflow:auto}
.sop-tr td,.sop-tr th{padding:6px 8px;border-bottom:1px solid var(--line-soft);font-size:12px;text-align:left;vertical-align:top}
.sop-cfg label,.sop-cs label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;font-size:13px}
@media (max-width:900px){.sop-main,.sop-body{grid-template-columns:1fr}.sop-wrap{height:420px}.sop-prop{max-height:none}}
.sop-new{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 12px}.sop-new-b{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.sop-bar [data-add]{border-color:#e4393c;color:#e4393c}
.sop-lb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.sop-ul{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:4px}.sop-uc{flex-direction:row!important;align-items:center;gap:6px!important;color:var(--text)!important;padding:3px 4px}.sop-uc i{margin-left:auto;font-style:normal;color:var(--muted);font-size:11px}.sop-row{display:flex;gap:6px;align-items:center}.sop-row input{width:90px}.sop-bcfg{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:10px}.sop-bcfg summary{cursor:pointer;margin-bottom:6px}.sop-bot .tag{margin-left:6px}
body[data-view="sop"] .platform-strip,body[data-view="sop"] .health-bar{display:none!important}.sop-side .sop-bot{margin:0;padding:8px;border:1px solid var(--line-soft);border-radius:8px;background:#fff;display:flex;flex-direction:column;gap:4px;overflow:visible}.sop-bh{display:flex;align-items:center;gap:6px}.sop-bh .tag{margin:0}.sop-bset{margin-left:auto;width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}.sop-bset:hover{border-color:#e4393c;color:#e4393c}
.sop-p{top:50%;margin-top:-7px;z-index:2}.sop-in-p{top:50%;margin-top:-7px}.sop-svg .sop-e.tmp{pointer-events:none}
.sop-grow{display:grid;grid-template-columns:120px minmax(0,1fr) 150px 32px;gap:6px;align-items:center;margin-bottom:6px}@media (max-width:700px){.sop-grow{grid-template-columns:1fr 32px}.sop-grow input{grid-column:1}}
.sop-mrow{display:grid;grid-template-columns:90px 130px 100px 100px 32px;gap:6px;align-items:center;margin-bottom:6px}@media (max-width:700px){.sop-mrow{grid-template-columns:1fr 1fr}}
.sop-wrow{display:grid;grid-template-columns:130px 120px minmax(0,1fr) 32px;gap:6px;align-items:center;margin-bottom:6px}.sop-vars .tag.blue{background:#e6f4ff;border-color:#91caff;color:#0958d9}@media (max-width:700px){.sop-wrow{grid-template-columns:1fr 1fr}}
.sop-crow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px}.sop-crow>select[data-k=role]{width:130px}.sop-crow>input[data-k=name]{flex:1;min-width:160px}.sop-crow>select[data-k=ev]{width:190px}.sop-ce,.sop-cm{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;width:100%}.sop-ce input{width:60px}.sop-cm input[data-k=value]{width:80px}.sop-cm input[data-k=hour]{width:60px}.sop-crow[data-t=metric] .sop-ce,.sop-crow[data-t=ev] .sop-cm{display:none}.sop-crow .sop-bset{margin-left:auto}
.sop-bi{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;font-size:12px;color:var(--muted);margin-bottom:10px}.sop-bi b{color:var(--text)}
.sop-crow>select.tl-in[data-k=role]{width:110px;flex:none}.sop-crow>select.tl-in[data-k=ev]{width:210px;flex:none}.sop-crow>input.tl-in[data-k=name]{flex:1;min-width:150px;width:auto}.sop-ce input.tl-in,.sop-cm input.tl-in[data-k=hour]{width:64px;flex:none}.sop-cm select.tl-in{width:auto;flex:none;min-width:84px}.sop-cm input.tl-in[data-k=value]{width:80px;flex:none}
.sop-cvt{display:none;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;width:100%}.sop-cvt select.tl-in{width:auto;flex:none;min-width:80px}.sop-cvt input.tl-in{width:64px;flex:none}.sop-crow[data-t=video] .sop-cvt{display:flex}.sop-crow[data-t=video] .sop-ce,.sop-crow[data-t=video] .sop-cm{display:none}
.sop-tpls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:12px;padding-left:12px;border-left:1px solid var(--line)}
.tl-rcsum .tag{margin-left:8px}.tl-lt .tag{flex:none}
.sl-er{display:flex;gap:6px;margin-bottom:6px}.sl-er input[data-e=name]{width:150px;flex:none}.sl-er input[data-e=url]{flex:1;min-width:0}
/* 群友返款 */
.rf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px 16px; padding: 0 16px 12px; }
.rf-grid label, .rf-form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--text-2); }
.rf-grid label.chk, .rf-tags label.chk { flex-direction: row; align-items: center; gap: 6px; color: var(--text); }
.rf-grid .rf-wide { grid-column: 1 / -1; }
.rf-grid textarea { font-family: ui-monospace, Consolas, monospace; font-size: 12px; resize: vertical; }
.rf-tags { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 0 16px 12px; }
.rf-p { max-width: 260px; overflow-wrap: anywhere; }
.rf-act { white-space: nowrap; } .rf-act .btn + .btn { margin-left: 6px; }
#rfBox .toolbar .input { max-width: 260px; }
@media (max-width: 600px) { .rf-grid { grid-template-columns: 1fr; } #rfBox .toolbar .input { max-width: none; } }
.rf-kv { width: 100%; border-collapse: collapse; font-size: 13px; }
.rf-kv th { text-align: left; color: var(--text-2); font-weight: normal; width: 96px; padding: 4px 8px 4px 0; vertical-align: top; }
.rf-kv td { padding: 4px 0; overflow-wrap: anywhere; }
.rf-log { margin: 0; max-height: 180px; overflow: auto; background: #f7f8fa; border-radius: 6px; padding: 8px; font-size: 12px; white-space: pre-wrap; }
/* 工作看板 */
.wk-head { display: flex; align-items: center; gap: 8px; padding: 12px 16px; flex-wrap: wrap; }
.wk-head .push { margin-left: auto; }
.wk-chart { margin: 8px 16px 12px; } .wk-chart figcaption { font-size: 13px; color: var(--text-2); margin-bottom: 4px; }
.wk-chart svg { width: 100%; height: auto; display: block; } .wk-chart text { font-size: 10px; fill: #8f959e; }
.kpi.bad b, .bad-t { color: #cf1322; } .kpi.bad { border-color: #ffccc7; }
.wk-ranks { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 12px; }
.wk-rank { background: #fff; border-radius: 8px; padding: 12px; margin: 0; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.wk-rk { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 6px; font-size: 12px; margin: 3px 0; }
.wk-rk span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wk-rk i { display: block; height: 8px; background: #1677ff; border-radius: 4px; min-width: 2px; }
.wk-tbl th[data-wks] { cursor: pointer; } .wk-row { cursor: pointer; } .wk-row:hover td { background: #f5f8ff; }
#wkBar .input { max-width: 240px; }
/* 手动发任务 */
.mt-body { padding: 0 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.mt-lbl { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--text-2); }
.mt-people { display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow: auto; border: 1px solid var(--border, #eee); border-radius: 6px; padding: 8px; }
.mt-ppl { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 4px 0 0 22px; }
.mt-vars { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.mt-pv { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.mt-pi { border: 1px solid #eee; border-radius: 6px; padding: 8px; font-size: 13px; }
.mt-pi pre { margin: 6px 0 0; white-space: pre-wrap; font: inherit; color: var(--text); }
.wk-off td { color: #b0b4ba; text-decoration: line-through; } .wk-off td:last-child, .wk-off td:nth-last-child(2) { text-decoration: none; }
.sop-crow[data-t=video] .sop-cat{display:none}.sop-crow[data-t=att] .sop-cat{display:flex}.sop-crow[data-t=att] .sop-ce,.sop-crow[data-t=att] .sop-cm{display:none}
/* 刷新本栏目: a red pill next to the page title, with the F5 hint; turns green for a moment after refreshing. */
.page-head { align-items: center; }
.view-refresh { display: inline-flex; align-items: center; gap: 6px; flex: none; height: 30px; padding: 0 12px 0 10px; border-radius: 15px;
  border: 1px solid var(--red); background: var(--red-soft); color: var(--red); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap;
  box-shadow: 0 1px 2px rgba(225, 37, 27, .12); transition: background .15s, color .15s, box-shadow .15s; }
.view-refresh svg.i, .view-refresh svg { width: 15px; height: 15px; }
.view-refresh:hover:not(:disabled) { background: var(--red); color: #fff; box-shadow: 0 2px 8px rgba(225, 37, 27, .3); }
.view-refresh:hover:not(:disabled) kbd { background: rgba(255, 255, 255, .25); color: #fff; border-color: transparent; }
.view-refresh kbd { font: 600 11px/1 ui-monospace, Consolas, monospace; padding: 2px 5px; border-radius: 4px; border: 1px solid rgba(225, 37, 27, .35); background: #fff; color: var(--red); }
.view-refresh:disabled { cursor: default; opacity: 1; }
.view-refresh.busy svg { animation: spin 1s linear infinite; }
.view-refresh.done { border-color: var(--ok); background: var(--ok-bg); color: var(--ok); box-shadow: none; }
.view-refresh.done kbd { display: none; }
@media (max-width: 640px) { .view-refresh { height: 28px; padding: 0 10px 0 8px; font-size: 12px; } .view-refresh kbd, .view-refresh .vr-long { display: none; } }
/* 工作看板 · 订单明细 (grouped by product, like 淘西西「商品出单」) */
.wk-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.wk-ptab button { font-weight: 600; }
.wo-f { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 16px 12px; }
.wo-f label { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--muted); }
.wo-f .input { height: 32px; }
.wo-f #woKw { width: 180px; }
.wo-q { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.wk-cv { display: block; margin: 0 16px 10px; white-space: normal; }
.wo-list { border-top: 1px solid var(--line); }
.wo-g { border-bottom: 1px solid var(--line-soft); }
.wo-g.open { background: #fafafa; }
.wo-gh { display: grid; grid-template-columns: 56px minmax(180px, 1fr) repeat(5, minmax(78px, auto)) 70px; align-items: center; gap: 12px; width: 100%; padding: 10px 16px; border: 0; background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.wo-gh:hover { background: var(--red-soft); }
.wo-gh img, .wo-gh .an-noimg { width: 56px; height: 56px; border-radius: 6px; object-fit: cover; background: var(--bg); }
.wo-gt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.wo-gt b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wo-gn { display: flex; flex-direction: column; align-items: flex-end; }
.wo-gn b { font-size: 15px; } .wo-gn b.r { color: var(--red); } .wo-gn b.ok-t { color: var(--ok); }
.wo-gn small { font-size: 11px; color: var(--muted); }
.wo-gx { font-size: 12px; color: var(--red); text-align: right; }
.wo-t td .pc-ic { margin-left: 4px; vertical-align: middle; }
@media (max-width: 760px) {
  .wo-gh { grid-template-columns: 48px 1fr 1fr 1fr; gap: 8px; }
  .wo-gh img, .wo-gh .an-noimg { width: 48px; height: 48px; grid-row: span 2; }
  .wo-gt { grid-column: span 3; }
  .wo-gx { grid-column: 2 / -1; text-align: left; }
  .wo-f #woKw { width: 100%; }
}
.kpi .wk-warn { display: block; margin-top: 4px; color: var(--bad, #cf1322); font-size: 12px; font-weight: 600; white-space: normal; }
@media (max-width: 760px) {
  .wo-f { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; padding: 0 12px 10px; }
  .wo-f label { grid-column: span 3; min-width: 0; }
  .wo-f label .input { width: 100%; min-width: 0; }
  .wo-q { grid-column: 1 / -1; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .wo-q .btn { flex: none; }
  .wo-f #woSt, .wo-f #woPlat { grid-column: span 3; min-width: 0; width: 100%; }
  .wo-f #woSort { grid-column: span 3; min-width: 0; width: 100%; }
  .wo-f #woKw { grid-column: span 2; width: 100%; min-width: 0; }
  .wo-f #woGo { grid-column: span 1; padding: 0 6px; justify-content: center; }
  .wo-f #woGo span:not([data-icon]) { display: none; }
}
@media (max-width: 760px) {
  .wo-gh { grid-template-columns: 48px repeat(3, minmax(0, 1fr)); align-items: start; }
  .wo-gh img, .wo-gh .an-noimg { grid-row: 1 / span 3; grid-column: 1; }
  .wo-gt { grid-column: 2 / -1; }
  .wo-gn { align-items: flex-start; }
  .wo-gx { grid-column: auto; align-self: end; text-align: right; }
}
