:root {
  --bg: #0f172a; --bg2: #111c33;
  --card: #ffffff; --ink: #1e293b; --muted: #64748b; --line: #e2e8f0;
  --brand: #2563eb; --brand2: #0ea5e9; --ok: #16a34a; --warn: #f59e0b; --bad: #ef4444;
  --chip: #eff6ff; --shadow: 0 6px 24px rgba(15,23,42,.08);
  --express: #ef4444; --standard: #2563eb; --economy: #16a34a;
}
* { box-sizing: border-box; }
body {
  margin: 0; font-family: -apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  background: linear-gradient(180deg,#f1f5f9 0%,#e2e8f0 100%); color: var(--ink); line-height: 1.55;
}
.topbar { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; background:linear-gradient(90deg,var(--bg),var(--bg2)); color:#fff; position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:12px; }
.brand .logo { font-size:30px; }
.topbar h1 { font-size:19px; margin:0; font-weight:700; }
.topbar .sub { margin:2px 0 0; font-size:12.5px; opacity:.75; }
.langswitch { display:flex; gap:6px; background:rgba(255,255,255,.12); padding:4px; border-radius:999px; }
.lang { border:none; background:transparent; color:#cbd5e1; padding:6px 14px; border-radius:999px; cursor:pointer; font-weight:600; }
.lang.active { background:#fff; color:var(--brand); }

.container { max-width:1200px; margin:0 auto; padding:20px 16px 40px; }
.card { background:var(--card); border-radius:16px; padding:18px 20px; margin-bottom:16px; box-shadow:var(--shadow); }
.card h2 { font-size:16px; margin:0 0 12px; }

.modebar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.seg { display:inline-flex; background:#f1f5f9; border-radius:999px; padding:4px; }
.seg-btn { border:none; background:transparent; padding:9px 22px; border-radius:999px; cursor:pointer; font-weight:600; color:var(--muted); }
.seg-btn.active { background:var(--brand); color:#fff; }
.hint { font-size:12px; color:var(--muted); margin:6px 0 0; }

/* 左右主区：两栏等高，右下不留空 */
.main-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:16px; align-items:stretch; }
@media (max-width: 900px) { .main-grid { grid-template-columns:1fr; } }
.left-col, .right-col { display:flex; flex-direction:column; gap:16px; min-width:0; }
.left-col > .card:last-child { flex:0 0 auto; }
.right-col { align-self:start; }
.right-col > .card:first-child { flex:0 0 auto; }
.tier-list { max-height:none; overflow:visible; padding-right:2px; }
.tier-list::-webkit-scrollbar { width:7px; }
.tier-list::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:999px; }

/* 级联地址 */
.field { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted); }
.field select, .field input, .field textarea {
  padding:10px 11px; border:1.5px solid #cbd5e1; border-radius:10px; font-size:14px; color:var(--ink); background:#fff; width:100%;
}
.field select:focus, .field input:focus, .field textarea:focus { outline:2px solid var(--brand2); border-color:transparent; }

.addr-row { border-radius:14px; padding:13px 15px; margin-bottom:6px; border:1px solid var(--line); }
.addr-from { background:linear-gradient(180deg,#ecfdf5,#f0fdf9); border-color:#bbf7d0; }
.addr-to { background:linear-gradient(180deg,#eff6ff,#f0f7ff); border-color:#bfdbfe; }
.addr-head { display:flex; align-items:center; gap:8px; font-weight:800; font-size:14px; margin-bottom:10px; }
.addr-from .addr-head { color:#047857; } .addr-to .addr-head { color:#1d4ed8; }
.addr-head .dot { width:12px; height:12px; border-radius:50%; }
.addr-from .dot { background:#16a34a; } .addr-to .dot { background:#2563eb; }
.cascade { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.cascade .field { flex:1 1 30%; min-width:120px; }
.addr-from .field select, .addr-from .field input { border-color:#86efac; }
.addr-to .field select, .addr-to .field input { border-color:#93c5fd; }
.field.detail { margin-top:2px; }
.addr-swap { display:flex; justify-content:center; margin:4px 0; }
.swap { border:1px solid var(--line); background:#fff; border-radius:999px; padding:7px 18px; cursor:pointer; font-size:13px; font-weight:600; color:var(--muted); box-shadow:var(--shadow); transition:.12s; }
.swap:hover { background:#f8fafc; color:var(--brand); }

/* 装箱单 */
.pl-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; }
.pastebox { margin-top:12px; border-top:1px dashed var(--line); padding-top:10px; }
.pastebox summary { cursor:pointer; font-size:13px; color:var(--brand); font-weight:600; }
.pastebox textarea { width:100%; margin-top:8px; border:1px solid var(--line); border-radius:9px; padding:8px; font-size:13px; resize:vertical; }
.parsed { font-size:13px; color:var(--ok); margin-top:10px; font-weight:600; }

.recognize { border:1px dashed #cbd5e1; border-radius:14px; padding:14px; margin-bottom:14px; background:#fbfdff; }
.rec-title { display:flex; align-items:center; gap:8px; font-weight:700; font-size:14px; color:var(--ink); margin-bottom:10px; }
.rec-ico { font-size:18px; }
.dropzone { border:2px dashed #93c5fd; border-radius:12px; background:#fff; padding:18px; text-align:center; cursor:pointer; transition:.15s; outline:none; }
.dropzone:hover, .dropzone.drag, .dropzone:focus { border-color:var(--brand); background:#eff6ff; }
.dz-inner { display:flex; flex-direction:column; align-items:center; gap:6px; }
.dz-icon { font-size:26px; }
.dz-tip { font-size:13.5px; color:var(--ink); margin:0; font-weight:600; }
.dz-sub { font-size:12px; color:var(--muted); margin:0; }
.dz-btn { margin-top:6px; border:none; background:var(--brand); color:#fff; padding:8px 18px; border-radius:9px; font-weight:700; cursor:pointer; }
.dz-btn:hover { background:#1d4ed8; }
.dz-progress { margin-top:12px; }
.dz-progress .bar { height:8px; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.dz-progress .bar > i { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--brand),var(--brand2)); transition:width .2s; }
.dz-progress .bar > i.indet { animation:indet 1.1s linear infinite; background-image:linear-gradient(90deg,#93c5fd,#3b82f6,#93c5fd); background-size:200% 100%; }
@keyframes indet { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }
.dz-progress span { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.rec-preview { margin-top:12px; border-top:1px dashed var(--line); padding-top:12px; }
.rec-prev-label { display:block; font-size:12.5px; color:var(--muted); margin-bottom:6px; }
.rec-preview textarea { width:100%; border:1px solid var(--line); border-radius:9px; padding:8px; font-size:13px; resize:vertical; }
.rec-actions { display:flex; gap:10px; margin-top:8px; }
.rec-note { font-size:12px; color:var(--muted); margin:8px 0 0; }
.manual-box { border-top:1px dashed var(--line); padding-top:10px; }
.manual-box summary { cursor:pointer; font-size:14px; font-weight:700; color:var(--ink); }

/* 底部操作条：蓝按钮 = 上方左栏宽度，重置 = 上方右栏宽度，上下版块严格对齐 */
.action-bar { display:grid; grid-template-columns:1.15fr 1fr; gap:16px; align-items:stretch; margin:6px 0 4px; }
@media (max-width: 900px) { .action-bar { grid-template-columns:1fr 1fr; } }
.action-bar .big { width:100%; padding:20px 28px; border-radius:16px; font-size:17px; font-weight:800; cursor:pointer; }
.action-bar .confirm-hint { grid-column:1/-1; margin:8px 2px 0; }

/* 视觉隐藏但可被 JS .click() 触发的文件输入 */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; white-space:nowrap; }
.primary { background:linear-gradient(180deg,#3b82f6,#2563eb); color:#fff; border:none; font-weight:800; box-shadow:0 10px 22px rgba(37,99,235,.35),inset 0 1px 0 rgba(255,255,255,.45); transition:transform .12s ease,box-shadow .12s ease,background .12s ease; }
.primary:hover { transform:translateY(-2px); background:linear-gradient(180deg,#4b8ef7,#1d4ed8); box-shadow:0 14px 28px rgba(37,99,235,.45),inset 0 1px 0 rgba(255,255,255,.55); }
.primary:active { transform:translateY(1px); box-shadow:0 5px 12px rgba(37,99,235,.35); }
.ghost { background:#fff; color:var(--muted); border:1px solid var(--line); font-weight:700; box-shadow:0 6px 16px rgba(15,23,42,.06); transition:transform .12s ease,background .12s ease,box-shadow .12s ease; }
.ghost:hover { transform:translateY(-1px); background:#f8fafc; box-shadow:0 9px 20px rgba(15,23,42,.1); }
.primary.sm { background:linear-gradient(180deg,#3b82f6,#2563eb); color:#fff; border:none; font-weight:800; box-shadow:0 6px 14px rgba(37,99,235,.3),inset 0 1px 0 rgba(255,255,255,.4); cursor:pointer; }
.primary.sm:hover { background:linear-gradient(180deg,#4b8ef7,#1d4ed8); }
.ghost.sm { background:#fff; color:var(--muted); border:1px solid var(--line); font-weight:700; cursor:pointer; }
.ghost.sm:hover { background:#f8fafc; }
.confirm-hint { margin:8px 2px 0; }

/* 右栏：三类物流快速选择 */
.tier-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:14px; }
@media (max-width:520px){ .tier-tabs { grid-template-columns:repeat(2,1fr); } }
.tier-tab { display:flex; flex-direction:column; align-items:center; gap:2px; border:1.5px solid var(--brand); background:#fff; border-radius:12px; padding:12px 6px; cursor:pointer; transition:.12s; }
.tier-tab b { font-size:14px; color:var(--brand); }
.tier-tab small { font-size:11px; color:var(--brand); opacity:.75; }
.tier-tab:hover { background:#eff6ff; }
.tier-tab.active { border-color:var(--express); background:linear-gradient(180deg,#fef2f2,#fff); box-shadow:0 6px 16px rgba(239,68,68,.18); }
.tier-tab.active b { color:var(--express); }
.tier-tab.active small { color:var(--express); opacity:.85; }

.tier-list { display:flex; flex-direction:column; gap:8px; }
.tier-row { display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:11px; padding:10px 12px; background:#fff; }
.tier-row .tname { font-weight:700; font-size:14px; flex:1 1 auto; }
.tier-row .tname a { color:var(--brand); text-decoration:none; }
.tier-row .tname a:hover { text-decoration:underline; }
.tier-row .tmeta { font-size:12px; color:var(--muted); }
.tier-row .tuse { border:none; background:var(--brand); color:#fff; border-radius:8px; padding:6px 12px; font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap; }
.tier-row .tuse:hover { background:#1d4ed8; }
.tier-row.selected { border-color:var(--express); box-shadow:0 4px 14px rgba(239,68,68,.12); }
.tier-row .tuse.selected { background:var(--express); }
.tier-row .tuse.selected:hover { background:#dc2626; }
.tier-row .rep { font-size:11px; color:#b45309; background:#fef3c7; padding:2px 7px; border-radius:999px; font-weight:700; }
.tier-empty { font-size:13px; color:var(--muted); padding:8px 2px; }
.tier-more { align-self:flex-start; border:1px dashed var(--brand); background:#fff; color:var(--brand); border-radius:9px; padding:7px 14px; font-size:13px; font-weight:700; cursor:pointer; }
.tier-more:hover { background:#eff6ff; }

/* 右栏：期望值滑选（每项一行，5 档刻度与滑块中心严格对齐） */
.sliders { display:grid; grid-template-columns:1fr; gap:18px 0; }
.slider-row { display:flex; align-items:center; gap:16px; }
.slider-row label { flex:0 0 132px; font-size:14px; color:var(--ink); font-weight:600; }
.slider-track { position:relative; flex:1 1 200px; min-width:150px; padding:0 0 2px; }
.slider-track input[type=range] {
  -webkit-appearance:none; appearance:none; display:block; width:100%; height:6px; margin:0;
  border-radius:999px; outline:none; cursor:pointer;
  background:linear-gradient(90deg,var(--brand) var(--fill,50%),#e2e8f0 var(--fill,50%));
}
.slider-track input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:50%;
  background:#fff; border:3px solid var(--brand); box-shadow:0 2px 7px rgba(37,99,235,.4); cursor:grab;
}
.slider-track input[type=range]::-moz-range-thumb {
  width:16px; height:16px; border-radius:50%; background:#fff;
  border:3px solid var(--brand); box-shadow:0 2px 7px rgba(37,99,235,.4); cursor:grab;
}
.slider-track .ticks { position:relative; height:17px; margin-top:6px; }
.slider-track .ticks span {
  position:absolute; top:0; transform:translateX(-50%);
  font-size:11px; color:var(--muted); font-weight:600; min-width:14px; text-align:center;
}
.slider-track .ticks span:nth-child(1) { left:8px; }
.slider-track .ticks span:nth-child(2) { left:calc(8px + (100% - 16px) * .25); }
.slider-track .ticks span:nth-child(3) { left:calc(8px + (100% - 16px) * .5); }
.slider-track .ticks span:nth-child(4) { left:calc(8px + (100% - 16px) * .75); }
.slider-track .ticks span:nth-child(5) { left:calc(100% - 8px); }
.expval { flex:0 0 26px; text-align:center; font-weight:800; font-size:16px; color:var(--brand); }

/* 结果 */
.results h2 { border-bottom:2px solid var(--line); padding-bottom:8px; }
.suggest { background:linear-gradient(135deg,#ecfdf5 0%,#eff6ff 55%,#e0f2fe 100%); border:1px solid #bbf7d0; border-radius:18px; padding:22px 24px; margin-bottom:16px; box-shadow:0 16px 34px rgba(16,185,129,.18),inset 0 1px 0 rgba(255,255,255,.7); }
.suggest .tag { display:inline-block; background:var(--ok); color:#fff; font-size:12px; padding:3px 11px; border-radius:999px; margin-bottom:8px; font-weight:800; }
.suggest h3 { margin:4px 0 8px; font-size:21px; color:#065f46; }
.suggest p { margin:0; font-size:14.5px; color:#334155; line-height:1.7; }
.suggest p b { color:#0f172a; }
.result-list { display:grid; gap:12px; }
.rcard { border:1px solid var(--line); border-radius:14px; padding:16px; display:grid; grid-template-columns:1fr auto; gap:8px 14px; background:#fff; box-shadow:0 6px 18px rgba(15,23,42,.06); }
.rcard.pinned { border-color:var(--brand); box-shadow:0 10px 26px rgba(37,99,235,.18); }
.rcard:hover { border-color:var(--brand2); }
.rcard .name { font-weight:700; font-size:15px; }
.rcard .name a { color:var(--brand); text-decoration:none; }
.rcard .name a:hover { text-decoration:underline; }
.rcard .score { font-weight:800; font-size:18px; color:var(--brand); text-align:right; }
.rcard .score small { display:block; font-size:10px; color:var(--muted); font-weight:500; }
.rcard .meta { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.chip { background:var(--chip); color:#1d4ed8; font-size:11.5px; padding:3px 9px; border-radius:999px; font-weight:600; }
.chip.ok { background:#dcfce7; color:#15803d; }
.chip.warn { background:#fef3c7; color:#b45309; }
.chip.bad { background:#fee2e2; color:#b91c1c; }
.rcard .lines { grid-column:1/-1; font-size:12.5px; color:#475569; display:grid; gap:3px; margin-top:4px; }
.rcard .lines b { color:var(--ink); }
.bar { height:6px; background:#e2e8f0; border-radius:999px; overflow:hidden; grid-column:1/-1; }
.bar > i { display:block; height:100%; background:linear-gradient(90deg,var(--brand),var(--brand2)); }

.disclaimer { font-size:12px; color:var(--muted); margin:4px 0 16px; line-height:1.7; background:#f8fafc; border:1px solid var(--line); border-radius:10px; padding:10px 14px; }
.foot { text-align:center; font-size:12px; color:var(--muted); padding:18px; }
/* 站内返回链接：本页是独立工具页，需要给出口（内部链接对 SEO 与用户都必要） */
.foot-links { margin-top:10px; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 16px; }
.foot-links a { color:var(--brand2); font-size:12px; text-decoration:none; }
.foot-links a:hover { text-decoration:underline; }

/* ---------- 地名联想：可输入 + 自动跟随 ---------- */
.geo-search { position:relative; margin-bottom:10px; }
.geo-input { width:100%; padding:10px 12px; border:1.5px solid #cbd5e1; border-radius:10px; font-size:14px; background:#fff; }
.geo-input:focus { outline:2px solid var(--brand2); border-color:transparent; }
.geo-suggest {
  position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:30;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 12px 30px rgba(15,23,42,.16); max-height:264px; overflow:auto;
}
.geo-suggest .geo-item { display:flex; align-items:baseline; gap:10px; padding:9px 12px; cursor:pointer; border-bottom:1px solid #f1f5f9; }
.geo-suggest .geo-item:last-child { border-bottom:none; }
.geo-suggest .geo-item:hover { background:#eff6ff; }
.geo-suggest .geo-item b { font-size:13.5px; color:var(--ink); }
.geo-suggest .geo-item small { font-size:11.5px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.geo-suggest .geo-item.none { color:var(--muted); font-size:12.5px; cursor:default; }

/* ---------- 识别结果 / 货物信息确认 ---------- */
.rec-loaded { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-top:10px; padding:10px 12px; border-radius:10px; background:#ecfdf5; border:1px solid #a7f3d0; font-size:12.5px; color:#065f46; line-height:1.6; }
.rec-ok { flex:0 0 20px; width:20px; height:20px; border-radius:50%; background:var(--ok); color:#fff; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.cargo-confirm-row { display:flex; align-items:center; gap:12px; margin-top:12px; }
.confirm-cargo { border:none; background:linear-gradient(180deg,#16a34a,#15803d); color:#fff; padding:10px 18px; border-radius:10px; font-size:13.5px; font-weight:800; cursor:pointer; box-shadow:0 6px 16px rgba(22,163,74,.22); }
.confirm-cargo:hover { filter:brightness(1.07); }
.cargo-state { font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; }
.cargo-state.pending { background:#fef3c7; color:#b45309; }
.cargo-state.ok, .cargo-state.edited { background:#dcfce7; color:#15803d; }
/* 完整性校验：缺口红字 + 点了确认却没生效时跳一下 */
.cargo-msg { margin:10px 0 0; padding:9px 12px; border-radius:10px; background:#fef2f2; border:1px solid #fecaca; color:#b91c1c; font-size:12.5px; font-weight:600; line-height:1.65; }
.cargo-msg.nudge, .cargo-confirm-row.nudge { animation:gateShake .38s ease; }
.gate-msg { grid-column:1/-1; margin:6px 2px 0; font-size:13px; font-weight:700; line-height:1.6; }
.gate-msg.bad { color:#b91c1c; }
.gate-msg.warn { color:#b45309; }
.gate-msg.idle { color:#64748b; font-weight:600; }
@keyframes gateShake {
  0%,100% { transform:translateX(0); }
  20% { transform:translateX(-5px); }
  45% { transform:translateX(4px); }
  70% { transform:translateX(-2px); }
}
/* 大按钮置灰：信息不完整或未确认时不能查 */
.action-bar .primary.big:disabled { background:#cbd5e1; color:#f8fafc; box-shadow:none; cursor:not-allowed; transform:none; filter:none; }
.action-bar .primary.big:disabled:hover { transform:none; background:#cbd5e1; box-shadow:none; }
.value-field input { border-color:#fbbf24 !important; background:#fffbeb !important; }
.parsed { font-size:12.5px; color:var(--ok); margin-top:12px; font-weight:600; line-height:1.7; }
.manual-box { border-top:1px dashed var(--line); padding-top:12px; margin-top:14px; }
.manual-box summary { cursor:pointer; font-size:14px; font-weight:700; color:var(--ink); margin-bottom:12px; }
.pl-grid { grid-template-columns:repeat(3,1fr); }
@media (max-width: 620px) { .pl-grid { grid-template-columns:repeat(2,1fr); } }
.tier-hint { font-size:12px; color:var(--muted); margin:-6px 0 12px; }

/* ---------- 多选对比 / 区域优势 ---------- */
.sel-bar { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 12px; margin-bottom:4px; border-radius:9px; background:#fef2f2; color:#b91c1c; font-size:12.5px; font-weight:700; }
.clear-sel { border:1px solid #fca5a5; background:#fff; color:#b91c1c; border-radius:8px; padding:4px 10px; font-size:12px; font-weight:700; cursor:pointer; }
.clear-sel:hover { background:#fee2e2; }
.tier-row { padding:9px 11px; }
.tier-row .tname { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.chip.region { background:#f0fdfa; color:#0f766e; }
.tier-row .tuse { background:var(--brand); color:#fff; }
.tier-row .tuse.selected { background:var(--express); color:#fff; }
.tier-row.selected { border-color:var(--express); background:#fff7f7; }

/* ---------- 经济账提示 ---------- */
.suggest .warn-line { margin-top:8px; color:#b91c1c; font-weight:700; background:#fee2e2; border-radius:9px; padding:8px 12px; }
.suggest .warn-line.mid { color:#92400e; background:#fef3c7; }
.suggest .saving-line { margin-top:8px; color:#065f46; background:#d1fae5; border-radius:9px; padding:8px 12px; font-size:13.5px; }
.rcard .meta { gap:6px; }

/* ---------- 收发双向经营范围核对提示 ---------- */
.cov-notice { margin:0 0 10px; padding:8px 11px; border-radius:9px; font-size:12px; line-height:1.65; font-weight:600; }
.cov-notice.ok { background:#f0fdfa; color:#0f766e; border:1px solid #99f6e4; }
.cov-notice.warn { background:#fffbeb; color:#92400e; border:1px solid #fcd34d; }
.cov-notice.warn.strong { background:#fef2f2; color:#b91c1c; border:1px solid #fca5a5; font-size:13px; font-weight:700; margin:0 0 14px; }
.suggest .cov-notice { margin-bottom:14px; }

/* ---------- 数据可信度面板（可审计依据） ---------- */
.trust-panel { margin:0 0 16px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); overflow:hidden; }
.trust-panel > summary { cursor:pointer; list-style:none; padding:11px 16px; font-size:12.5px; font-weight:700; color:#0f766e; background:#f0fdfa; line-height:1.6; }
.trust-panel > summary::-webkit-details-marker { display:none; }
.trust-panel > summary::before { content:"▸"; display:inline-block; margin-right:8px; transition:transform .18s; }
.trust-panel[open] > summary::before { transform:rotate(90deg); }
.trust-panel > summary.stale { background:#fef2f2; color:#b91c1c; }
.trust-panel > summary:hover { filter:brightness(.98); }
.trust-body { padding:6px 18px 14px; display:grid; gap:12px; }
.trust-sec { border-top:1px dashed var(--line); padding-top:10px; font-size:12.5px; color:#475569; line-height:1.75; }
.trust-sec:first-child { border-top:none; }
.trust-sec > b { display:block; color:var(--ink); font-size:12.5px; margin-bottom:3px; }
.trust-sec p { margin:0; }
.trust-sec ul { margin:4px 0 0; padding-left:20px; }
.trust-sec li { margin-bottom:2px; }
.trust-sec a { color:var(--brand); }

/* ---------- 结果工具条 / 报价快照 / 核对清单 ---------- */
.result-tools { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px; padding:10px 12px; background:#f8fafc; border:1px solid var(--line); border-radius:11px; }
.tool-check { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:#92400e; font-weight:600; cursor:pointer; line-height:1.5; }
.tool-check input { accent-color:var(--brand); width:15px; height:15px; cursor:pointer; }
.tool-btn { border:1px solid #cbd5e1; background:#fff; color:var(--brand); font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:8px; cursor:pointer; white-space:nowrap; }
.tool-btn:hover { background:#eff6ff; border-color:var(--brand2); }
.snapshot-id { margin-left:auto; font-size:11.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
@media (max-width: 620px) { .snapshot-id { margin-left:0; width:100%; } }

/* est-badge 必须跨满两列，否则会把 .rcard 的「名称 / 得分」栅格挤乱 */
.rcard .est-badge { grid-column:1/-1; justify-self:start; font-size:11px; font-weight:700; color:#92400e; background:#fffbeb; border:1px solid #fcd34d; border-radius:6px; padding:2px 8px; margin-bottom:2px; }
.checklist { margin-top:14px; }
.check-card { background:#fffbeb; border:1px solid #fcd34d; border-radius:12px; padding:14px 16px; font-size:12.5px; color:#78350f; line-height:1.8; }
.check-card h4 { margin:0 0 6px; font-size:13.5px; color:#92400e; }
.check-card p { margin:0 0 6px; }
.check-card p:last-child { margin-bottom:0; }
.check-card .check-ex { color:#0f766e; }
.check-card .check-legal { font-size:12px; color:#64748b; border-top:1px dashed #fcd34d; padding-top:8px; margin-top:8px; }

/* ---------- 货值 10 档（下拉 + 精确输入） ---------- */
.value-span { grid-column:1/-1; }
.value-head { display:block; font-size:12.5px; font-weight:700; color:#92400e; margin-bottom:5px; }
.value-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
@media (max-width:620px){ .value-row { grid-template-columns:1fr; } }
.value-select, .value-row input { width:100%; border:1px solid #fbbf24; background:#fffbeb; border-radius:9px; padding:9px 10px; font-size:13.5px; color:#78350f; font-weight:600; }
.value-select { cursor:pointer; }
.value-select:focus, .value-row input:focus { outline:2px solid #fcd34d; outline-offset:1px; }
.value-hint { display:block; margin-top:6px; font-size:11.5px; color:#92400e; line-height:1.65; }
.value-hint.banded { color:#0f766e; font-weight:600; }

/* ---------- 我的勾选 vs 系统推荐 ---------- */
.dual-bar { border:1px solid #bfdbfe; background:linear-gradient(180deg,#f8fbff,#fff); border-radius:14px; padding:14px 16px; margin-bottom:14px; }
.dual-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.dual-head > b { font-size:13.5px; color:#1e3a8a; }
.dual-head .tool-check { color:var(--brand); }
.dual-tiers { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.dual-tiers .chip { background:#eff6ff; color:var(--brand); }
.dual-tier-note { font-size:11.5px; color:var(--muted); }
.dual-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:620px){ .dual-grid { grid-template-columns:1fr; } }
.dual-col { border:1px solid var(--line); border-radius:11px; padding:10px 12px; background:#fff; display:flex; flex-direction:column; gap:4px; }
.dual-col.mine { border-color:#fca5a5; background:#fffafa; }
.dual-col.sys { border-color:#93c5fd; background:#f8fbff; }
.dual-lbl { font-size:11.5px; font-weight:700; color:var(--muted); }
.dual-col.mine .dual-lbl { color:#b91c1c; }
.dual-col.sys .dual-lbl { color:var(--brand); }
.dual-col b { font-size:14.5px; color:var(--ink); }
.dual-num { font-size:12.5px; color:#334155; font-variant-numeric:tabular-nums; }
.dual-ratio { font-size:11.5px; color:var(--muted); }
.dual-verdict { margin:10px 0 0; font-size:12.5px; line-height:1.7; color:#92400e; background:#fffbeb; border-radius:8px; padding:8px 11px; }
.dual-verdict.same { color:#0f766e; background:#f0fdfa; }
.dual-adopt { margin-top:10px; border:none; background:var(--brand); color:#fff; border-radius:9px; padding:8px 16px; font-size:12.5px; font-weight:700; cursor:pointer; }
.dual-adopt:hover { background:#1d4ed8; }
.tier-hint.preset { color:#b45309; font-weight:700; }

/* ---------- 承运商行：窄栏两行式，杜绝名称挤掉价格/按钮 ---------- */
.tier-row { flex-wrap:wrap; row-gap:6px; align-items:center; }
.tier-row .tname { flex:1 1 100%; min-width:0; }
.tier-row .tname a { display:inline-block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; vertical-align:bottom; }
.tier-row .rep { flex:0 0 auto; font-size:12px; color:#b45309; }
.tier-row .tmeta { flex:1 1 auto; min-width:0; font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tier-row .tuse { flex:0 0 auto; }
@media (min-width:1100px){
  .tier-row { flex-wrap:nowrap; }
  .tier-row .tname { flex:1 1 auto; }
}

/* 双栏等高 + 经济账占比突出 */
.dual-grid { align-items:stretch; }
.dual-col { min-height:108px; justify-content:flex-start; }
.dual-ratio { font-weight:700; color:#b45309; }
.dual-col.sys .dual-ratio { color:#0f766e; }

/* ---------- 三个排序按钮（仅改显示顺序，不改打分） ---------- */
.sort-bar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin:-4px 0 6px; }
.sort-lbl { font-size:11.5px; font-weight:700; color:var(--muted); letter-spacing:.04em; }
.sort-btn {
  border:1px solid #c7d2fe; background:#fff; color:#3730a3;
  border-radius:999px; padding:5px 11px; font-size:12px; font-weight:600;
  cursor:pointer; transition:background .15s, border-color .15s, color .15s;
  font-family:inherit; line-height:1.4;
}
.sort-btn:hover { background:#eef2ff; border-color:#a5b4fc; }
.sort-btn.active { background:#4f46e5; border-color:#4f46e5; color:#fff; box-shadow:0 2px 6px rgba(79,70,229,.28); }
.sort-hint { font-size:11.5px; color:#64748b; margin:0 0 10px; line-height:1.55; }

/* ---------- 识别依据一行 ---------- */
.rec-detail { flex:1 1 100%; margin-top:2px; font-size:11.5px; color:#047857; opacity:.9; line-height:1.5; }

/* ---------- 尺寸按单箱录入的提示 ---------- */
.dim-hint { margin:2px 0 8px; font-size:11.5px; color:#94a3b8; }
/* 计价依据：把首重/续重/进位/距离带摊开写清楚，方便对账复算 */
/* 特异性要压过 .suggest p（否则 margin/底色被清掉），这块是「可逐项复算」的依据 */
.suggest p.basis-line { margin:8px 0 0; padding:7px 11px; border-left:3px solid #3b82f6;
  background:#eef5ff; border-radius:0 7px 7px 0; font-size:12.5px; color:#1e40af; line-height:1.62; }

/* 单件规格行：口径提示，正常灰色，超限转橙 */
.suggest p.dim-line { margin:8px 0 0; padding:7px 11px; border-left:3px solid #94a3b8;
  background:#f8fafc; border-radius:0 7px 7px 0; font-size:12.5px; color:#475569; line-height:1.62; }
.suggest p.dim-line.warn { border-left-color:#f59e0b; background:#fffbeb; color:#92400e; }

/* 装箱建议：只列真成立的条目，说清楚「怎么装更省」 */
.advice { margin:10px 0 0; padding:10px 12px; border-radius:9px;
  background:#f5f3ff; border:1px solid #ddd6fe; }
.advice .adv-head { display:block; font-size:12.5px; color:#5b21b6; margin-bottom:5px; letter-spacing:.2px; }
.advice ul { margin:0; padding-left:17px; }
.advice li { font-size:12.5px; color:#3f3f46; line-height:1.72; margin:3px 0; }
.hint.warn.strong { color:#b91c1c; font-weight:700; margin-top:8px; }

@media (max-width:520px) {
  .sort-btn { padding:5px 9px; font-size:11.5px; }
}

/* ---------- hidden 属性必须真的隐藏 ----------
   .rec-loaded / .dz-progress / .geo-suggest 等都有 display:flex|block，
   作者样式会盖掉浏览器默认的 [hidden]{display:none}，导致空的绿框、空进度条常驻。 */
[hidden] { display: none !important; }

/* ---------- 手机端顶部条（2026-11-05 加） ----------
   实测 390px：标题两行时把语言胶囊挤窄，「中文」被压成竖排两个字。
   做法：语言按钮不参与压缩（flex:0 0 auto + nowrap），标题区域可收缩。 */
.topbar{gap:12px}
.brand{min-width:0}
.brand>div{min-width:0}
.langswitch{flex:0 0 auto}
.langswitch .lang{flex:0 0 auto;white-space:nowrap}
@media (max-width:520px){
  .topbar{padding:12px 16px;align-items:flex-start}
  .topbar h1{font-size:16.5px;line-height:1.35}
  .topbar .sub{font-size:11.5px}
  .brand .logo{font-size:24px}
  .lang{padding:6px 11px;font-size:13px}
}

/* ---------- 静态说明与问答（SEO / GEO 用，2026-11-05） ----------
   工具本体是 JS 交互，纯界面标签对检索没有价值，这里补一段可读正文 + 问答。
   中英各一份，跟随工具语言切换（app.js 会设置 documentElement.lang）。
   注意：不要给这些块加 data-i18n，否则会被 app.js 的字典覆盖。 */
.geo-sec { padding-bottom: 8px; }
.geo-card { padding: 26px 28px; max-width: 920px; margin-left: auto; margin-right: auto; }
.geo-card h2 { font-size: 17px; margin: 0 0 8px; }
.geo-card h2:not(:first-child) { margin-top: 24px; }
.geo-card h3 { font-size: 14.5px; margin: 16px 0 4px; color: var(--ink, #0f172a); }
.geo-card p { margin: 0 0 8px; font-size: 14px; line-height: 1.8; color: var(--muted, #475569); }
.geo-en { display: none; }
html[lang="en"] .geo-zh { display: none; }
html[lang="en"] .geo-en { display: block; }
@media (max-width: 520px) {
  .geo-card { padding: 18px 16px; }
  .geo-card p { font-size: 13.5px; line-height: 1.75; }
}
