:root{
  --bg:#f0f2f8; --card:#fff; --ink:#1a1f2e; --sub:#6b768c; --line:#dde1ea;
  --primary:#2563eb; --primary-d:#1d4ed8; --danger:#dc2626; --ok:#059669;
  --warn:#d97706; --chip:#eff6ff; --inp-h:40px;
  --gradient:linear-gradient(135deg,#667eea 0%,#764ba2 100%);
  --card-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);
  --card-shadow-hover:0 4px 12px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.05);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}
.risk-toast{position:fixed;left:50%;top:18px;transform:translateX(-50%) translateY(-20px);
  max-width:min(92vw,640px);background:#fff7ed;color:#9a3412;border:1px solid #fdba74;
  border-left:5px solid #ea580c;border-radius:10px;padding:12px 16px;font-size:13.5px;line-height:1.55;
  box-shadow:0 8px 24px rgba(0,0,0,.14);z-index:9999;opacity:0;pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;white-space:pre-wrap;cursor:pointer}
.risk-toast.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
h1,h3{margin:0 0 8px}
.sub{color:var(--sub);font-size:13px;margin:0 0 10px}
small{color:var(--sub);font-weight:400;font-size:12px}
.msg{margin-top:8px;font-size:13px;min-height:18px}
.msg.ok{color:var(--ok)} .msg.err{color:var(--danger)} .err-border{border-color:var(--danger)!important;box-shadow:0 0 0 2px rgba(231,76,60,.25)!important}
/* 查价错误：醒目红底框，微信内也能看清，便于排查 */
#query-msg.err{margin-top:8px;min-height:0}
#query-msg .err-box{background:#fff2f2;border:1px solid #ffc9c9;border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.5;color:#c0392b;white-space:pre-wrap;word-break:break-word}
#query-msg .err-title{font-weight:700;margin-bottom:3px}
#query-msg .err-detail{margin-top:5px;font-size:11px;color:#b03a2e;font-family:ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word;opacity:.92}
.hint{color:var(--sub);font-size:12px;padding:6px 8px;background:var(--bg);border-radius:6px;margin-top:4px}
.sub-h{font-size:13px;font-weight:600;color:var(--ink);margin:10px 0 4px}

/* 登录 */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 50%,#8b5cf6 100%)}
.login-card{background:#fff;border-radius:20px;padding:32px;width:100%;max-width:390px;
  box-shadow:0 25px 60px rgba(0,0,0,.25),0 10px 20px rgba(0,0,0,.1)}
.login-card h1{font-size:28px;color:var(--primary);letter-spacing:-.5px}
.tip{color:var(--sub);font-size:12px;margin-top:14px;line-height:1.6}
.tip code{background:var(--chip);padding:1px 5px;border-radius:4px}

/* 表单 —— 统一柔和圆角风格（与附加费区域一致） */
label{display:block;margin:10px 0;font-size:11.5px;color:var(--sub);font-weight:600;letter-spacing:.3px}
label input,label select,label textarea{
  display:block;width:100%;margin-top:5px;padding:7px 12px;border:1.5px solid var(--line);
  border-radius:10px;font-size:10.5px;color:var(--ink);background:#fff;font-weight:400;
  transition:border-color .2s,box-shadow .2s}
label input:focus,label select:focus,textarea:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.1)}
label input[readonly]{background:#f5f7fa;color:var(--sub);cursor:default}
/* 全局 select 统一圆角 + 隐藏原生箭头 */
select{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b768c'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:10px 6px;padding-right:28px}

/* 国家输入框（可输入搜索 + 下拉选择）—— 圆角融入整体 */
.country-input-wrap{position:relative;display:flex;align-items:stretch;gap:0;flex:1;min-width:0;overflow:visible}
.country-input-wrap input{flex:1;min-width:0;padding:5px 8px;border-radius:10px 0 0 10px !important;
  border-right:none !important;font-size:12px;background:#fff;color:var(--ink);
  border:1.5px solid var(--line);transition:border-color .15s}
/* 下拉箭头：融入输入框右侧，同款圆角 */
.country-toggle-btn{
  flex:0 0 auto;width:36px;border:1.5px solid var(--line);border-left:none;
  border-radius:0 10px 10px 0;background:#f8fafc;color:var(--sub);
  font-size:0;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;outline:none}
.country-toggle-btn::after{
  content:"";width:0;height:0;
  border-left:5px solid transparent;border-right:5px solid transparent;
  border-top:6px solid currentColor;transition:border-top-color .15s,transform .2s}
.country-toggle-btn:hover{background:rgba(59,130,246,.06);color:var(--primary)}
.country-input-wrap.open .country-toggle-btn{background:rgba(59,130,246,.08);color:var(--primary)}
.country-input-wrap.open .country-toggle-btn::after{transform:rotate(180deg)}
.country-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;
  border:1px solid var(--line);border-radius:8px;max-height:220px;overflow-y:auto;
  box-shadow:0 6px 20px rgba(0,0,0,.12);margin-top:2px}
.country-dd-item{padding:7px 12px;font-size:12.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.country-dd-item:hover{background:var(--chip);color:var(--primary)}
textarea{resize:vertical;font-family:inherit}
.row{display:flex;align-items:center;gap:10px}
.row label{flex:1;margin:0}
/* 寄件人仓库下拉：与其它输入控件保持一致的字体/边框 */
.row select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:15px;color:var(--ink);background:#fff;font-weight:400}
.chk-group{display:flex;flex-wrap:wrap;gap:10px;margin-top:5px}
.chk-group label{margin:0;font-weight:400;color:var(--ink);display:flex;align-items:center;gap:5px}
.chk-group input{width:auto;margin:0}
/* 圆角胶囊单选按钮（分区类型 / 物流方式） */
.radio-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}
.radio-group label{
  margin:0;font-weight:500;
  display:inline-flex;align-items:center;justify-content:center;
  gap:0;padding:7px 18px;border-radius:20px;
  border:1.5px solid var(--line);background:#f8fafc;color:var(--sub);
  cursor:pointer;user-select:none;transition:all .15s ease;
  font-size:12px;line-height:1.2;min-width:48px;text-align:center;
}
/* 隐藏原生 radio 圆点 */
.radio-group input[type=radio]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
/* 选中态：蓝色填充 */
.radio-group label:has(input:checked){
  background:var(--primary);color:#fff;border-color:var(--primary);
  box-shadow:0 1px 6px rgba(37,99,235,.3);
}
.radio-group label:hover:not(:has(input:checked)){
  background:#eef2ff;border-color:rgba(59,130,246,.4);color:var(--ink)}

/* 按钮 */
.btn-primary{background:linear-gradient(135deg,var(--primary),#3b82f6);color:#fff;border:none;
  border-radius:11px;padding:13px 20px;font-size:15px;font-weight:600;cursor:pointer;width:100%;
  box-shadow:0 2px 8px rgba(37,99,235,.25);transition:transform .15s,box-shadow .15s}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(37,99,235,.35)}
.btn-primary:active{background:var(--primary-d);transform:none}
.btn-ghost{background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:9px 16px;
  font-size:13px;cursor:pointer;color:var(--ink);transition:border-color .2s,background .2s}
.btn-ghost:hover{background:#f8fafc;border-color:#cbd5e1}
.btn-ghost.danger{color:var(--danger);border-color:#fecaca}
.btn-ghost:active{background:#f4f6fb}

/* 顶栏/导航 */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;
  background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.03)}
.brand{font-weight:800;color:var(--primary);font-size:19px;letter-spacing:-.3px}
.account{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--sub)}
.tabs{display:flex;background:#fff;border-bottom:1px solid var(--line)}
.tab{flex:1;padding:13px 0;border:none;background:none;font-size:15px;color:var(--sub);cursor:pointer;
  border-bottom:2.5px solid transparent;transition:color .2s,border-color .2s}
.tab.active{color:var(--primary);font-weight:700;border-bottom-color:var(--primary)}

/* 面板/卡片 */
main{padding:14px;max-width:1100px;margin:0 auto}
.panel{display:none}.panel.active{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px;
  box-shadow:var(--card-shadow);transition:box-shadow .25s}
.card:hover{box-shadow:var(--card-shadow-hover)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

/* 渠道搜索条 */
.channel-filter{display:flex;align-items:center;gap:10px;margin:6px 0 14px;padding:10px 12px;
  background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;position:sticky;top:8px;z-index:5}
.channel-filter input{flex:1;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:15px;
  outline:none;background:#fff;color:var(--ink)}
.channel-filter input:focus{border-color:var(--primary)}
.channel-filter-count{font-size:12px;color:var(--sub);white-space:nowrap}

/* 结果卡 */
.result-card{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;
  background:#fff;box-shadow:var(--card-shadow);transition:box-shadow .25s}
.result-card:hover{box-shadow:var(--card-shadow-hover)}
.result-card.sel{border-color:var(--primary);box-shadow:0 0 0 3px var(--chip)}
.rc-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px}
.rc-title{font-weight:800;font-size:17px;color:var(--ink)}
.rc-meta{color:var(--sub);font-size:12px}
.rc-total{font-size:24px;font-weight:900;color:var(--primary);text-align:right}
.result-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0;border:1px solid var(--line);border-radius:10px}
.result-table{min-width:720px;width:100%;border-collapse:collapse;font-size:13px}
.result-table th,.result-table td{border:1px solid var(--line);padding:8px 6px;text-align:center}
.result-table th{background:#f8faff;color:var(--sub);font-weight:600;font-size:12px;white-space:nowrap}
.result-table td{color:var(--ink);font-weight:500}
.result-table td:first-child,.result-table td:nth-child(2){text-align:left}
.result-table td.formula{color:var(--sub);font-size:12px;word-break:break-all}
.fee-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}
.fee-table td{border-bottom:1px dashed var(--line);padding:5px 4px}
.fee-table td:last-child{text-align:right;font-weight:600}
.tag{display:inline-block;background:var(--chip);color:var(--primary);border-radius:6px;padding:2px 8px;font-size:12px;margin:2px}
.tag.warn{background:#fff3e6;color:var(--warn)}
.tag.ok{background:#e9f8ef;color:var(--ok)}
.demo-badge{background:#fff7e6;color:var(--warn);font-size:12px;padding:3px 8px;border-radius:6px;display:inline-block;margin-bottom:8px}
.debug-box{border:1px dashed #d9b56b;background:#fffdf6;border-radius:10px;padding:8px 10px;margin-top:10px;font-size:12px}
.debug-box summary{cursor:pointer;color:var(--warn);font-weight:600}
.dbg-sub{margin:8px 0 4px;color:var(--sub);font-weight:600}
.dbg-pre{max-height:220px;overflow:auto;background:#2b2b2b;color:#e9e9e9;border-radius:8px;padding:8px;white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.5}
.dbg-tip{margin-top:6px;color:var(--sub)}
.rc-actions{display:flex;gap:8px;margin-top:8px}
.rc-actions button{flex:1}

/* 列表 */
.list-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff}
.list-item .li-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.li-head{display:flex;align-items:center;gap:8px;min-width:0}
.li-head .rec-chk{flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer}
.rec-toolbar{display:flex;align-items:center;gap:10px;padding:6px 4px 10px;flex-wrap:wrap}
.rec-toolbar .rec-all{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);cursor:pointer}
.rec-toolbar .rec-all input{width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer}
.rec-toolbar .rec-count{font-size:12.5px;color:var(--sub)}
.rec-toolbar .rec-spacer{flex:1 1 auto}
.rec-toolbar button{font-size:13px;padding:6px 12px}
.rec-toolbar button:disabled{opacity:.45;cursor:not-allowed}
.li-title{font-weight:700}
.li-sub{color:var(--sub);font-size:12px;margin-top:3px}
.li-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.li-actions button{font-size:13px;padding:6px 10px}
.li-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin:8px 0 4px;font-size:13px;color:var(--ink)}
.li-meta span{display:inline-flex;align-items:center;gap:4px}
.li-meta span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--sub);opacity:.5}
.due{color:var(--danger);font-weight:700}
.done{opacity:.6}

/* 弹窗 */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal-box{background:#fff;border-radius:14px;padding:18px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column}
.modal-box textarea{width:100%;min-height:200px;font-size:14px}
.modal-scroll{overflow-y:auto;overflow-x:hidden;padding-right:4px;flex:1}
.modal-scroll label{margin:8px 0}
.modal-scroll label:first-child{margin-top:0}

/* 寄件人摘要 */
.wh-summary{margin-top:12px;background:var(--chip);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px}
.wh-title{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--ink);margin-bottom:6px}
.wh-title small{font-weight:400;color:var(--sub)}
.wh-row{display:flex;flex-wrap:wrap;gap:6px 12px;color:var(--sub);line-height:1.5}
.wh-row span{white-space:nowrap}

/* 视觉识别（截图报价） */
.vision-bar{display:flex;flex-direction:column;gap:8px;background:linear-gradient(135deg,#eef3ff,#f6f0ff);
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px}
.vision-area-wrap{position:relative;display:flex;gap:8px;align-items:flex-start}
.vision-paste{flex:1;min-width:0;resize:vertical;background:#fff;border:2px dashed var(--primary);
  border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.5;color:var(--text);outline:none;
  min-height:72px;transition:border-color .2s,background .2s}
.vision-paste::placeholder{color:var(--sub)}
.vision-paste:focus,.vision-paste.drag{border-style:solid;background:#f8fbff;box-shadow:0 0 0 3px rgba(47,107,255,.15)}
.vision-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.vision-icon-btn{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  font-size:18px;cursor:pointer;transition:background .2s}
.vision-icon-btn:hover{background:#f4f7ff}
.vision-send{flex-shrink:0;background:linear-gradient(135deg,#7b5bff,#2f6bff);color:#fff;border:none;
  border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;flex:1}
.vision-send:active{filter:brightness(.95)}
.vision-status{font-size:13px;color:var(--sub)}
.vision-status.ok{color:var(--ok)}
.vision-status.warn{color:var(--warn)}
.vision-status.err{color:var(--danger)}
.vision-recognized{margin:12px 0;background:#fff;border:1px solid var(--line);border-left:4px solid var(--primary);
  border-radius:12px;padding:12px 14px}
.vr-title{font-weight:700;margin-bottom:8px;color:var(--primary)}
.vr-table{width:100%;border-collapse:collapse;font-size:14px}
.vr-table td{padding:6px 8px;border-bottom:1px dashed var(--line)}
.vr-table td:first-child{color:var(--sub);width:80px;font-weight:600}
.vr-remarks{margin-top:8px;font-size:13px;color:var(--warn);background:#fff7ec;border-radius:8px;padding:6px 8px}
.vr-raw{margin-top:8px;font-size:13px}
.vr-raw pre{white-space:pre-wrap;background:var(--bg);border-radius:8px;padding:8px;margin:4px 0 0;font-size:12px;color:var(--sub)}
#vr-toform{margin-top:10px;width:100%}

/* 设置页：视觉识别快速试用 */
.vis-trial{margin-top:16px;border-top:1px dashed var(--line);padding-top:14px}
.vis-trial-h{font-weight:700;font-size:13px;color:var(--primary);margin-bottom:10px}
.vis-trial textarea{margin-top:10px}
#vis-trial-result{margin-top:12px}
#vis-trial-result .result-card{border-radius:10px}

/* 账号管理（管理员） */
.au-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:4px}
.au-table th,.au-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.au-table th{color:var(--sub);font-weight:600}
.au-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}
.au-badge.on{background:#e7f7ec;color:#1a7f37}
.au-badge.off{background:#fdecec;color:#c0392b}
.au-ops{display:flex;gap:6px;flex-wrap:wrap}
.btn-mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 9px;font-size:12px;cursor:pointer}
.btn-mini:hover{background:#f4f7ff}
.btn-mini.warn{color:#b9770e;border-color:#f0d9a8;background:#fff8ec}
.btn-mini.danger{color:#c0392b;border-color:#f0c0bb;background:#fff5f3}
.hidden-list{font-size:13px}
.hidden-quote-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;margin-top:6px;background:#fff}

/* 邮编联想城市 */
.city-wrap{position:relative}
#city-suggest{position:absolute;left:0;right:0;top:100%;margin-top:2px;z-index:10;background:#fff;border:1px solid var(--primary);border-radius:8px;padding:8px;font-size:13px;color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.12)}

/* 附加项勾选 */
.extra-opts{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 4px}
.extra-opts .check-label{margin:0;font-weight:400;color:var(--ink);display:flex;align-items:center;gap:5px;cursor:pointer}
.extra-opts .check-label input{width:auto;margin:0}

/* 报价预览（直接显示在结果卡里） */
.quote-preview{background:linear-gradient(135deg,#f8fafc,#eff6ff);border:1.5px solid var(--line);
  border-radius:12px;padding:12px 14px;margin:10px 0;font-size:13px;line-height:1.7;
  color:var(--ink);white-space:normal;word-break:break-word;border-left:4px solid var(--primary)}
/* 渠道备注区（卡片内，与复制文本同步） */
.quote-remarks{background:#fffbeb;border:1.5px solid #fde68a;border-left:4px solid #f59e0b;
  border-radius:12px;padding:10px 14px;margin:-4px 0 10px;font-size:12.5px;line-height:1.7;
  color:#78350f;word-break:break-word}
.quote-remarks .qr-title{font-weight:600;margin-bottom:4px;color:#92400e}

/* 卡派选项 */
.kapai-bar{display:flex;align-items:center;gap:10px;margin-top:5px;flex-wrap:wrap}
.kapai-bar .btn-ghost{width:auto;flex:0 0 auto}
/* 卡派选项折叠 */
.fold-toggle{flex:0 0 auto;padding:2px 10px;font-size:12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;color:var(--sub);cursor:pointer;transition:color .15s,border-color .15s}
.fold-toggle:hover{color:var(--primary);border-color:var(--primary)}
.fold-body{display:none;margin-top:8px}
.fold-body.open{display:block}
.kapai-label{color:var(--ink);font-size:14px;font-weight:500;margin-right:auto}
.kapai-status{color:var(--sub);font-size:13px;font-weight:400}
.kapai-tabs{display:flex;gap:6px;margin:4px 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}
.kapai-tab{flex:1;padding:9px 0;border:1px solid var(--line);background:#fff;border-radius:8px 8px 0 0;font-size:14px;color:var(--sub);cursor:pointer;margin-bottom:-7px}
.kapai-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}
.kapai-opts{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.check-row{display:flex;align-items:center;gap:8px;font-weight:400;color:var(--ink);margin:0;cursor:pointer}
.check-row input{width:auto;margin:0}
.check-row.sender-only{display:flex}

/* 询价统计面板 */
/* ===== 询价统计 —— 高端仪表盘风格 ===== */
.sc-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 20px}
.sc-item{background:#fff;border-radius:14px;padding:18px 20px;
  border:1px solid var(--line);box-shadow:var(--card-shadow);
  transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.sc-item:hover{transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}
.sc-item::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:14px 14px 0 0}
.sc-item-blue::before{background:linear-gradient(90deg,#2563eb,#60a5fa)}
.sc-item-orange::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.sc-item-green::before{background:linear-gradient(90deg,#059669,#34d399)}

.sc-card-body{display:flex;align-items:center;gap:14px}
.sc-icon{flex:0 0 46px;width:46px;height:46px;border-radius:12px;display:flex;
  align-items:center;justify-content:center;font-size:22px;background:#f0f4ff;
  flex-shrink:0;line-height:1}
.sc-item-orange .sc-icon{background:#fff8e6}
.sc-item-green .sc-icon{background:#ecfdf5}

.sc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.sc-lbl{font-size:13.5px;color:var(--sub);font-weight:500;letter-spacing:.3px;white-space:nowrap}
.sc-num{font-size:30px;font-weight:800;line-height:1.15;color:var(--ink);letter-spacing:-1px;white-space:nowrap}
.sc-num.warn{color:#d97706}.sc-num.ok{color:var(--ok)}

/* 客户排行 */
.sc-detail{background:#fff;border-radius:14px;border:1px solid var(--line);
  padding:18px 20px;box-shadow:var(--card-shadow)}
.sc-detail-title{font-size:14px;color:var(--sub);margin:0 0 14px;font-weight:600;
  display:flex;align-items:center;gap:8px}
.sc-detail-title::before{content:'';display:inline-block;width:4px;height:16px;
  background:var(--primary);border-radius:2px}
.sc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sc-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;
  background:var(--bg);transition:background .15s}
.sc-list li:hover{background:#e8ecf4}
.sc-rank{flex:0 0 28px;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0}
.sc-rank.r1{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#78350f}
.sc-rank.r2{background:linear-gradient(135deg,#94a3b8,#cbd5e1);color:#1e293b}
.sc-rank.r3{background:linear-gradient(135deg,#d97706,#fb923c);color:#fff}
.sc-rank rn{background:#c7ccd6;color:#fff}
.sc-name{flex:0 0 auto;min-width:70px;max-width:140px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:13.5px;font-weight:600;color:var(--ink)}
.sc-bar-wrap{flex:1;height:12px;background:#e2e6ef;border-radius:8px;overflow:hidden;min-width:40px}
.sc-bar-wrap i{display:block;height:100%;border-radius:8px;
  background:linear-gradient(90deg,var(--primary),#93c5fd);transition:width .4s ease}
.sc-cnt{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--primary);min-width:42px;text-align:right;
  font-variant-numeric:tabular-nums}
.sc-empty{font-size:13.5px;color:var(--sub);padding:16px 0;text-align:center}

/* 团队记录概况（查看下级）——统一卡片风格（手机/电脑一致） */
.team-summary{margin:12px 0 8px}
.team-total{font-size:15px;font-weight:700;color:var(--ink)}
.team-total b{font-size:24px;color:var(--primary);margin:0 2px;font-variant-numeric:tabular-nums}
.team-total-sub{font-size:12px;color:var(--sub);font-weight:500;margin-left:6px}
.team-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.team-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;
  border:1px solid var(--line);border-radius:12px;font-size:13.5px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);transition:background .15s,box-shadow .15s}
.team-row:hover{background:#f8fafc;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.team-chkwrap{flex:0 0 auto;display:inline-flex;align-items:center;cursor:pointer}
.team-chkwrap input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary);cursor:pointer;margin:0}
.stat-scope-banner{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:12px;
  background:#eafaf1;border:1px solid #bfe9cf;border-radius:11px;font-size:13.5px;color:#1f7a44;font-weight:600}
.team-name{flex:1;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-dept{flex:0 0 90px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-role{flex:0 0 52px;color:var(--sub);font-size:12px}
.team-count{flex:0 0 70px;text-align:right;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
/* 团队行的「查看记录」按钮：统一为紧凑圆角胶囊 */
.team-row .btn-ghost{padding:6px 14px;font-size:12.5px;border-radius:8px;white-space:nowrap;
  flex:0 0 auto;border-color:#c7d2e0}
.owner-banner{display:flex;align-items:center;gap:10px;padding:9px 12px;margin-bottom:10px;
  background:#eef4ff;border:1px solid #cfe0ff;border-radius:11px;font-size:13.5px;color:var(--ink)}
.owner-banner b{color:var(--primary)}

/* ============ 手机竖屏适配（高端紧凑版：一屏放下查价表单） ============ */
@media (max-width:720px){
  :root{--inp-h:34px}
  body{font-size:13px;line-height:1.35}
  main{padding:6px;max-width:100%}
  .topbar{display:none}
  .brand{font-size:17px}
  .account{font-size:11.5px;gap:6px}
  .tabs{position:sticky;top:0;z-index:20;background:#fff}
  .tab{padding:9px 0;font-size:13.5px;border-bottom-width:2px}
  .msg{margin-top:3px;font-size:12px;min-height:0}

  /* 两张主卡片竖向堆叠；手机端合并为一张连续卡片 */
  .grid2.cards{
    grid-template-columns:1fr;
    background:var(--card);border:1px solid var(--line);border-radius:16px;
    box-shadow:var(--card-shadow);overflow:hidden;gap:0
  }
  .grid2.cards > .card{
    margin-bottom:0;border:none;border-radius:0;background:transparent;
    box-shadow:none;padding:8px 12px
  }
  .grid2.cards > .card:first-child{padding-bottom:4px}
  .grid2.cards > .card + .card{border-top:1px solid var(--line);padding-top:6px}
  /* 手机端卡片内标题紧贴上方 */
  .grid2.cards h3{margin-top:4px}

@media (max-width:600px){
  /* 手机端团队行改为两行网格：第一行 勾选+姓名+条数，第二行 部门+查看记录
     姓名单独占满剩余宽度，避免被挤成竖排 */
  .team-row{display:grid;grid-template-columns:auto 1fr auto;
    grid-template-areas:"chk name count" "chk dept btn";
    row-gap:5px;column-gap:8px;align-items:center;padding:11px 12px}
  .team-chkwrap{grid-area:chk}
  .team-name{grid-area:name;flex:none;min-width:0;overflow:visible;text-overflow:clip;
    white-space:nowrap;font-size:14px}
  .team-dept{grid-area:dept;flex:none;overflow:visible;text-overflow:clip;white-space:nowrap;font-size:12px}
  .team-role{display:none}
  .team-count{grid-area:count;flex:none;font-size:12.5px}
  .team-row .btn-ghost{grid-area:btn;justify-self:end;padding:5px 12px;font-size:12px}
}

@media (max-width:600px){
  .sc-summary{grid-template-columns:repeat(3,1fr);gap:8px}
  .sc-item{padding:12px 10px;border-radius:12px}
  .sc-icon{flex:0 0 36px;width:36px;height:36px;font-size:17px;border-radius:9px}
  .sc-card-body{gap:8px}
  .sc-num{font-size:20px}
  .sc-lbl{font-size:11px}
  .sc-name{flex:0 0 60px;max-width:100px;font-size:12px}
  .sc-detail{padding:14px 12px}
  .sc-rank{width:24px;height:24px;font-size:11px;flex:0 0 24px}
}
  .grid2{gap:0 8px}
  /* 查询卡片内的嵌套 grid2（重量/件数、实重/体积、国家/邮编）手机端保持双列紧凑 */
  .card .grid2{grid-template-columns:1fr 1fr;gap:4px 8px}
  .card .grid2 > *{min-width:0}
  .card .grid2 .field{margin:2px 0;gap:4px}
  .card{padding:10px 12px;border-radius:14px;margin-bottom:8px;
        display:grid;grid-template-columns:1fr 1fr;gap:0 10px;align-items:start;
        box-shadow:0 1px 2px rgba(0,0,0,.04)}
  .card > *{grid-column:1/-1;min-width:0}
  .card > label{grid-column:auto}
  .card > label.full{grid-column:1/-1}
  .card > .markup-row{grid-column:1/-1}

  /* 小标题压成一行小字，带左侧色条 */
  h1{margin:0 0 4px}
  h3{margin:5px 0 0;font-size:12.5px;line-height:1.25;color:var(--primary);
     border-left:3px solid var(--primary);padding-left:7px;font-weight:700}
  h3:first-child{margin-top:0}
  h3[style]{margin-top:4px!important}
  small{font-size:11px}
  .sub{font-size:11.5px;margin:0 0 4px}

  /* 表单控件：更紧凑但保持精致圆角和阴影 */
  label{margin:3px 0;font-size:10.5px}
  label input,label select{
    margin-top:2px;padding:7px 10px;font-size:9.5px;border-radius:9px;
    border:1.4px solid var(--line);background:#fff;height:auto;line-height:1.25}
  label textarea{margin-top:2px;font-size:13px;padding:7px 10px;border-radius:9px}

  /* 整行字段：标签与控件同行 */
  .card > label.full{display:flex;align-items:center;gap:8px;margin:3px 0}
  .card > label.full > input,
  .card > label.full > select{flex:1;min-width:0;margin-top:0}
  .card > label.full > small{flex:0 0 auto}
  .card > label.full > div{flex:1;min-width:0;margin-top:0}

  .row{gap:6px}
  .row select{font-size:9.5px;padding:7px 10px;border-radius:9px;height:auto;line-height:1.25}
  .btn-ghost{padding:5px 10px;font-size:11.5px;border-radius:8px;height:32px;line-height:1.2}
  .btn-primary{padding:10px;font-size:15.5px;border-radius:11px;
    box-shadow:0 2px 6px rgba(37,99,235,.2)}

  /* 查价 / 上次查价：手机端等高对齐（覆盖 ghost 的 32px 固定高，且不让主按钮单独下移） */
  .query-actions{align-items:stretch}
  .query-actions .btn-primary,
  .query-actions .btn-ghost{height:40px;display:flex;align-items:center;justify-content:center;
    flex:1;padding:0 10px;margin-top:0;white-space:nowrap}

  /* 记录操作按钮：强制单行，确保「提醒」与「重新查价」同行（窄屏可横向滚动） */
  .li-actions{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .li-actions button{flex:0 0 auto;white-space:nowrap}

  .chk-group,.radio-group{gap:6px;margin-top:0}
  .chk-group label,.radio-group label{font-size:12.5px}
  /* 胶囊按钮手机端更紧凑：分区类型4个按钮强制同行 */
  .radio-group{flex-wrap:nowrap;gap:4px}
  .radio-group label{flex:1;padding:5px 6px;min-width:0;font-size:11px;border-radius:16px;text-align:center;white-space:nowrap}
  .extra-opts{gap:8px;margin:2px 0 0}
  .extra-opts .check-label{font-size:12.5px}
  .city-wrap{min-width:0}

  /* 截图识别区压缩 */
  .vision-bar{padding:6px 8px;gap:6px;margin-bottom:4px;border-radius:12px}
  .vision-paste{min-height:36px;padding:6px 10px;font-size:13px;line-height:1.35;border-radius:10px}
  .vision-actions{gap:6px}
  .vision-icon-btn{padding:5px 8px;font-size:16px;border-radius:8px}
  .vision-send{padding:5px 10px;font-size:13px;border-radius:9px}

  /* 卡派栏 */
  .kapai-bar{margin-top:0;margin-bottom:6px!important;gap:8px}
  .kapai-label{font-size:13px}
  /* 国家输入框手机端 */
  .country-input-wrap{flex:1;min-width:0}
  .country-input-wrap input{font-size:11px;padding:4px 8px;line-height:1.35}
  .country-toggle-btn{width:30px;border-radius:0 8px 8px 0}
  .country-dropdown{max-height:180px;font-size:11.5px}
  .country-dd-item{padding:6px 10px;font-size:11.5px}

  /* 结果/列表区：更精致的卡片 */
  .rc-total{font-size:20px}
  .result-table{min-width:600px;font-size:11.5px}
  .result-table th,.result-table td{padding:6px 4px}
  .list-item{padding:10px 12px;margin-bottom:8px;border-radius:12px;
    box-shadow:0 1px 2px rgba(0,0,0,.04)}
  .li-meta{font-size:11.5px}
  .rec-toolbar{gap:8px;padding:4px 2px 8px}
  .rec-toolbar .rec-count{font-size:12px}
  .rec-toolbar button{font-size:12px;padding:6px 10px}

  /* 行内字段 / 附加费 在手机端进一步紧凑 */
  .field{margin:3px 0;gap:4px}
  .field > .fl{font-size:10.5px;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}
  .field > input,.field > select{font-size:11px;padding:4px 8px;line-height:1.35}
  .field > input::placeholder{font-size:6px}
  .inline-row input,.wh-row input{font-size:11px;padding:4px 8px}
  .inline-row select{font-size:10px}
  #unit-detail-btn{height:32px;min-width:32px;font-size:16px;padding:0 8px}
  .fee-item{padding:5px 8px;margin:4px 0;gap:5px;border-radius:8px}
  .fee-name{font-size:12px;min-width:54px}
  .fee-mode{min-width:64px;font-size:11.5px;padding:4px 2px}
  .fee-amount{font-size:12.5px;padding:4px 6px}
  .wh-row select{font-size:11.5px}
}

/* ============ 行内字段 & 附加费多选 ============ */
/* 行内字段：标签与控件同一行（重量/件数/分区国家等），不单独占一行 */
.field{display:flex;align-items:center;gap:6px;margin:6px 0;min-width:0}
.field > .fl{flex:0 0 auto;font-size:11.5px;color:var(--sub);font-weight:600;white-space:nowrap}
.field > input,.field > select{flex:1 1 auto;min-width:0;margin:0;padding:5px 8px;
  border:1.5px solid var(--line);border-radius:10px;font-size:12px;background:#fff;color:var(--ink);
  transition:border-color .15s}
.field > input:focus,.field > select:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.field > input::placeholder{font-size:8px;color:var(--sub)}
.field .country-input-wrap{flex:1 1 auto;min-width:0}
.field .inline-row{flex:1 1 auto;min-width:0;display:flex;gap:8px;align-items:center}
/* inline-row / wh-row 内的输入框也要圆角（件数、总重量等嵌套在 div 里的） */
.inline-row input,.wh-row input{
  padding:5px 8px;border:1.5px solid var(--line);border-radius:10px;
  font-size:12px;background:#fff;color:var(--ink);transition:border-color .15s;
  flex:1 1 auto;min-width:0}
.inline-row input:focus,.wh-row input:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.1)}
/* 件数旁的 ⋯ 按钮：高度与输入框对齐 */
#unit-detail-btn{flex:0 0 auto;padding:0 10px;height:38px;min-width:38px;font-size:18px;line-height:1;
  display:flex;align-items:center;justify-content:center}
/* 寄件人仓库下拉字号缩小（#4：选择已存仓库字号更小） */
.wh-row select{font-size:12px}
/* 附加费（预设选项 + 勾选多选） */
#fee-list:empty{display:none}
.fee-item{display:flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid var(--line);
  border-radius:10px;padding:7px 10px;margin:5px 0;transition:border-color .15s,background .15s}
.fee-item.fee-active{border-color:var(--primary);background:#fff}
.fee-item:hover{border-color:#93b4f5}
.markup-row{display:flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--primary);
  border-radius:10px;padding:7px 10px;margin:5px 0}
.fee-check{flex:0 0 auto;display:flex;align-items:center}
.fee-check input{width:17px;height:17px;margin:0;accent-color:var(--primary);cursor:pointer}
.chk-row{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:500;cursor:pointer}
.chk-row input{width:17px;height:17px;margin:0;accent-color:var(--primary);cursor:pointer}
.agent-selector{display:flex;flex-wrap:wrap;gap:8px}
.agent-check{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#f8f9fa;border:1px solid var(--line);border-radius:8px;font-size:13px;cursor:pointer;transition:border-color .15s,background .15s}
.agent-check:hover{border-color:#93b4f5;background:#fff}
.agent-check input{width:17px;height:17px;margin:0;accent-color:var(--primary);cursor:pointer}
/* 该代理本次未查出价格：整块标红提示 */
.agent-check.no-price{color:#d93025;border-color:#f3b6b6;background:#fdecec;font-weight:600}
.agent-check.no-price input{accent-color:#d93025}
.agent-code-tag{display:inline-block;margin-left:6px;padding:2px 7px;background:var(--primary);color:#fff;font-size:11px;font-weight:600;border-radius:4px;vertical-align:middle}
.fee-name{flex:0 0 auto;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;min-width:64px}
.fee-name-input{padding:4px 6px;border:1.5px solid var(--line);border-radius:8px;font-size:13px;font-weight:600;color:var(--ink);background:#fff;min-width:64px;outline:none;transition:border-color .15s}
.fee-name-input:focus{border-color:var(--primary)}
.fee-mode{flex:0 0 auto;width:auto;min-width:70px;padding:5px 4px;border:1.5px solid var(--line);
  border-radius:8px;font-size:12px;background:#fff;color:var(--ink)}
.fee-amount{flex:1;min-width:0;padding:5px 8px;border:1.5px solid var(--line);border-radius:8px;font-size:13px;background:#fff}
.fee-amount:disabled{background:#f1f3f7;color:var(--sub)}
.fee-del{flex:0 0 auto;padding:3px 8px;font-size:12px;border-radius:8px}

/* 更窄的手机（≤400px）再压一档 */
@media (max-width:400px){
  body{font-size:12.5px}
  .card{padding:8px;gap:0 6px}
  label{margin:4px 0}
  label input,label select{font-size:13.5px;padding:5px 7px}
  .btn-primary{font-size:14px;padding:9px}
  .fee-item{flex-wrap:wrap;padding:5px 6px;gap:4px}
  .fee-name{min-width:48px;font-size:11.5px}
  .fee-mode{min-width:58px;font-size:11px;padding:3px 2px}
  .fee-amount{flex:1;min-width:60px;font-size:12px}
}

/* ============ 查价表单增强（16项改版） ============ */
/* 寄件人下拉与按钮：边框与其它输入一致，新增/删除按钮横向排列不换行 */
select{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:15px;font-family:inherit}
.wh-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.wh-row select{flex:1;min-width:0}
.wh-btns{display:flex;gap:6px;flex:0 0 auto}
/* 直客加价：选择 + 金额合并为一行控件 */
.inline-row{display:flex;gap:8px;align-items:center}
.inline-row select{flex:0 0 auto;width:auto;min-width:96px;font-size:11px}
.inline-row input{flex:1;min-width:0}
/* 附加项费用行（报关费 / 私人地址） */
.fee-block{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}
.fee-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fee-line > .check-label{margin:0;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;cursor:pointer}
.fee-line > .check-label input{width:auto;margin:0}
.fee-extra{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fee-extra select{width:auto;min-width:120px}
.fee-extra > label{margin:0;display:flex;align-items:center;gap:6px;font-weight:400;color:var(--ink)}
.fee-extra > label input{width:auto;min-width:90px}

/* 单件详情表格 */
.unit-table{width:100%;border-collapse:collapse;font-size:13px}
.unit-table th,.unit-table td{border:1px solid var(--line);padding:6px 4px;text-align:center}
.unit-table th{background:var(--bg2);font-weight:600;color:var(--ink)}
.unit-table td input[type=number]{width:100%;box-sizing:border-box;text-align:center;padding:4px 2px;font-size:13px;border:1px solid var(--line);border-radius:5px}
.unit-table .u-op-btn{cursor:pointer;font-size:16px;padding:0 4px;background:none;border:none;line-height:1}
.unit-table .u-op-btn:hover{color:var(--primary)}

/* 报价模板变量 chips */
.tpl-vars{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.tpl-var{border:1px solid var(--primary);background:var(--chip);color:var(--primary);
  border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;font-weight:600;transition:.15s}
.tpl-var:hover{background:var(--primary);color:#fff}
.tpl-tip{font-size:12px;color:var(--sub);margin:6px 0 10px;line-height:1.5}
/* 报价模板编辑框：桌面端尽量大，便于编辑多行变量模板 */
#set-template{
  width:100%;min-height:260px;font-size:14px;line-height:1.7;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;
  padding:12px 14px;border-radius:10px;border:1px solid var(--line);
  background:#fcfdff;margin:4px 0 10px;box-sizing:border-box;white-space:pre;
}
#set-template:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--chip)}
@media (min-width:768px){
  #set-template{min-height:440px;font-size:15px}
}

/* 记录/提醒：所属人标记 */
.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;line-height:1.4;vertical-align:middle}
.tag.warn{background:#fff3e0;color:var(--warn)}
.tag.owner{background:#eaf1ff;color:var(--primary);font-weight:600}

/* 账号管理：上级下拉 */
.sup-sel{max-width:160px;font-size:12px;padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:#fff}
