/* ===========================================================================
   P8 买家页面（[sourcing_buyer_portal]）的样式
   ---------------------------------------------------------------------------
   买家多半用手机打开（原申请 §2.4 / QA-19），所以**手机优先**：

     · 屏宽 360px 不出现横向滚动：没有表格、没有定宽；长串（请求号、文件名、
       没有空格的标题）一律允许断行；
     · 触控目标不小于 44px（这里取 48px），按钮铺满一行；
     · 字号不小于 16px —— iOS Safari 对 <16px 的输入框会放大整页；
     · 对比度按 WCAG AA；有深色模式；
     · **不碰主题的版面**：每条选择器都以 .sourcing-buyer 打头
       （与 portal.css 同一条规矩）。
   =========================================================================== */

.sourcing-buyer{
  /* 226 设计规格 §1：在本主题里引用 site.css 那一组 token（--sd-*），不再各自维护一套；别的主题下没有 --sd-*，就用后面的备用值 */
  --sb-ink:var(--sd-ink, #15191e);
  --sb-mut:var(--sd-mut, #59636d);
  --sb-line:var(--sd-line, #d8dde2);
  --sb-line-2:var(--sd-line-2, #c4cbd2);
  --sb-field-line:var(--sd-field-line, #858f9b);   /* 226 表单格的边（A2 深色清单 B1）：表单格单独一个边色，见 site.css --sd-field-line */
  --sb-surface:var(--sd-surface, #fff);
  --sb-soft:var(--sd-bg, #f4f6f8);
  --sb-accent:var(--sd-accent, #0e7490);
  --sb-accent-ink:var(--sd-accent-ink, #fff);
  --sb-accent-soft:var(--sd-accent-soft, #e6f7fa);
  /* 226 深色主按钮（指挥 10-18 08:32 甲）：实心主按钮的底与字，在本主题里引用 site.css 的 --sd-solid-*；别的主题照备用值。
     226 全站青色（LK 10-19 批）：青底深藏青字、浅色时边深一档、悬停与按下各一档；键盘落点的框改用链接色（--sb-focus）—— 青底色对白底只有 1.81:1 */
  --sb-solid:var(--sd-solid-bg, #22d3ee);
  --sb-solid-ink:var(--sd-solid-ink, #04202e);
  --sb-solid-line:var(--sd-solid-line, #0e7490); --sb-solid-hover:var(--sd-solid-hover, #06b6d4); --sb-solid-active:var(--sd-solid-active, #0891b2);
  --sb-focus:var(--sd-link, #0e7490);
  --sb-warn:#8a4a00;
  --sb-warn-bg:#fff4e5;
  --sb-warn-line:#f0d3a8;
  /* 只在深浅两种外观里取值不同的几样：按钮悬停、请求卡的状态色（进行中与报告好了、要你动手） */
  --sb-hover-filter:brightness(.9);
  --sb-state:var(--sb-accent);
  --sb-amber:#b7791f;

  font-size:16px;
  line-height:1.65;
  color:var(--sb-ink);
  max-width:40rem;
  margin:0 auto;
  box-sizing:border-box;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* LK 10-14：本主题顶栏的「外观」开关（见 site.css）—— 系统是深色且没选「浅」时一段，选了「深」时一段，两段逐字相同。
   别的主题下没有 data-theme，照旧只跟系统。 */
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) .sourcing-buyer{
    --sb-ink:var(--sd-ink, #e8ecf1); --sb-mut:var(--sd-mut, #a3adb7); --sb-line:var(--sd-line, #333c46); --sb-line-2:var(--sd-line-2, #3d4752); --sb-field-line:var(--sd-field-line, #5f6b78);
    --sb-surface:var(--sd-surface, #181d23); --sb-soft:var(--sd-bg, #1f252c);
    --sb-accent:var(--sd-accent, #22d3ee); --sb-accent-ink:var(--sd-accent-ink, #04202e); --sb-accent-soft:var(--sd-accent-soft, #0f2c34);
    --sb-warn:#e8b473; --sb-warn-bg:#2a2013; --sb-warn-line:#4b3a1c;
    --sb-hover-filter:brightness(1.18); --sb-state:var(--sd-link, #22d3ee); --sb-amber:#e0a944;
    --sb-solid:var(--sd-solid-bg, #22d3ee); --sb-solid-ink:var(--sd-solid-ink, #04202e);
    --sb-solid-line:var(--sd-solid-line, #22d3ee); --sb-solid-hover:var(--sd-solid-hover, #8ff3ff); --sb-solid-active:var(--sd-solid-active, #06b6d4);
    --sb-focus:var(--sd-link, #22d3ee);
  }
}
html[data-theme="dark"] .sourcing-buyer{
    --sb-ink:var(--sd-ink, #e8ecf1); --sb-mut:var(--sd-mut, #a3adb7); --sb-line:var(--sd-line, #333c46); --sb-line-2:var(--sd-line-2, #3d4752); --sb-field-line:var(--sd-field-line, #5f6b78);
    --sb-surface:var(--sd-surface, #181d23); --sb-soft:var(--sd-bg, #1f252c);
    --sb-accent:var(--sd-accent, #22d3ee); --sb-accent-ink:var(--sd-accent-ink, #04202e); --sb-accent-soft:var(--sd-accent-soft, #0f2c34);
    --sb-warn:#e8b473; --sb-warn-bg:#2a2013; --sb-warn-line:#4b3a1c;
    --sb-hover-filter:brightness(1.18); --sb-state:var(--sd-link, #22d3ee); --sb-amber:#e0a944;
    --sb-solid:var(--sd-solid-bg, #22d3ee); --sb-solid-ink:var(--sd-solid-ink, #04202e);
    --sb-solid-line:var(--sd-solid-line, #22d3ee); --sb-solid-hover:var(--sd-solid-hover, #8ff3ff); --sb-solid-active:var(--sd-solid-active, #06b6d4);
    --sb-focus:var(--sd-link, #22d3ee);
}

.sourcing-buyer *,
.sourcing-buyer *::before,
.sourcing-buyer *::after{box-sizing:border-box}

.sourcing-buyer-title{font-size:1.35rem; line-height:1.4; margin:.2em 0 .5em}
.sourcing-buyer h3{font-size:1.1rem; margin:1.2em 0 .4em}
.sourcing-buyer p{margin:.5em 0}

/* —— 表单：整行宽、字号不小于 16px —— */
.sourcing-buyer-form{margin:0}
.sourcing-buyer label{
  display:block; margin:1em 0 .3em;
  font-size:.95rem; color:var(--sb-mut);
}
.sourcing-buyer input[type=text],
.sourcing-buyer input[type=email],
.sourcing-buyer input[type=password],
.sourcing-buyer textarea{
  font-size:1.0625rem; width:100%; max-width:100%;
  padding:.7em .8em; font-family:inherit;
  border:1px solid var(--sb-field-line); border-radius:8px;
  background:var(--sb-surface); color:var(--sb-ink);
}
.sourcing-buyer textarea{min-height:7em; resize:vertical}
.sourcing-buyer input[type=file]{
  font-size:1rem; width:100%; max-width:100%; min-height:48px; padding:.5em 0;
}
/* 226 走查 C3（walk-226/shots-1/request-detail-d1280-dark）：上传那一格原来是浏览器原样的「Choose Files」小灰按钮，深色时也是浅灰 —— 照站上的次要按钮，
   旁边「No file chosen」那几个字用淡色 */
.sourcing-buyer input[type=file]{color:var(--sb-mut)}
.sourcing-buyer input[type=file]::file-selector-button{
  min-height:44px; margin-right:.8em; padding:0 1em; font:inherit; font-weight:600; cursor:pointer;
  color:var(--sb-ink); background:var(--sb-surface); border:1px solid var(--sb-line-2); border-radius:8px;
}
.sourcing-buyer input[type=file]::file-selector-button:hover{background:var(--sb-soft)}
.sourcing-buyer input:focus-visible,
.sourcing-buyer textarea:focus-visible,
.sourcing-buyer-button:focus-visible{
  outline:2px solid var(--sb-focus); outline-offset:1px;
}

/* —— 按钮（含做成按钮样子的链接）：整行、够大 —— */
.sourcing-buyer-button{
  display:block; width:100%;
  margin-top:.9em; padding:.7em 1em; min-height:44px;
  font-size:1.0625rem; font-weight:600; line-height:1.3; text-align:center;
  border:0; border-radius:8px; cursor:pointer;
  background:var(--sb-solid); color:var(--sb-solid-ink);
  text-decoration:none;
}
/* 226 全站青色（LK 10-19 批）：实心的按钮浅色底上一道深一档的青边（青底对白底只有 1.81:1），悬停、按下各一档；空心的次按钮与只有字的按钮照旧 */
.sourcing-buyer-button:not(.sourcing-buyer-secondary):not(.sourcing-buyer-quiet){box-shadow:inset 0 0 0 1px var(--sb-solid-line)}
.sourcing-buyer-button:not(.sourcing-buyer-secondary):not(.sourcing-buyer-quiet):hover{background:var(--sb-solid-hover)}
.sourcing-buyer-button:not(.sourcing-buyer-secondary):not(.sourcing-buyer-quiet):active{background:var(--sb-solid-active)}
.sourcing-buyer-secondary{
  background:var(--sb-surface); color:var(--sb-ink);
  border:1px solid var(--sb-line-2);
}
.sourcing-buyer-secondary:hover{filter:none; background:var(--sb-soft)}

/* —— 提示 —— */
.sourcing-buyer-msg{
  margin:.8em 0; padding:.7em .9em;
  color:var(--sb-warn); background:var(--sb-warn-bg);
  border:1px solid var(--sb-warn-line); border-left-width:3px;
  border-radius:6px; font-size:.95rem;
}
/* 226 走查 C2（指挥 10-16 16:12 定甲）：「告诉你」的提示（成功与收到、请登录、建公司、没次数 —— 买家页与免费次数页上按提示的键点名的那几类）
   不再用上面那种黄框（看着像出了错），用中性的样子 —— 同登录页上 WordPress 那种提示：白底、正文色、左边 4px 链接色竖线；深色跟着换。没点名的照旧黄框 */
.sourcing-buyer-msg.sourcing-buyer-info{
  color:var(--sb-ink); background:var(--sb-surface);
  border-color:var(--sb-line); border-left:4px solid var(--sd-link, var(--sb-accent));
}
.sourcing-buyer-hint,
.sourcing-buyer-sub{color:var(--sb-mut); font-size:.9rem}
/* 226 第四波 a：Request access 页上句子里的链接（Sign in、Back to the home page）—— 上下各加一点，点按目标不小于 24 像素高 */
.sourcing-buyer .sra-link{display:inline-block; padding:4px 0}
/* 226 设计规格 §3：免费核验那一句做成浅底信息条（数字单独加粗要改标记、牵动逐字的用例，这一版先整句加重） */
.sourcing-buyer-credits{font-weight:650; font-size:17px; margin:.4em 0 .6em; padding:.65em .9em; border-radius:8px; background:var(--sb-accent-soft); color:var(--sb-ink)}
.sourcing-buyer-back{
  display:inline-block; min-height:44px; padding:.6em 0;
  color:var(--sb-mut);
}

/* —— 卡片与列表：一行一张卡，不用表格（四列挤在 360px 里会一字一行） —— */
.sourcing-buyer-card{
  margin:1em 0; padding:.9em;
  border:1px solid var(--sb-line); border-radius:8px;
  background:var(--sb-surface);
}
.sourcing-buyer-pending{background:var(--sb-soft)}
.sourcing-buyer-label{font-weight:600; margin:0 0 .3em}
.sourcing-buyer-list,
.sourcing-buyer-messages,
.sourcing-buyer-files{list-style:none; margin:.6em 0; padding:0}
.sourcing-buyer-item,
.sourcing-buyer-message{
  margin:.6em 0; padding:.8em .9em;
  border:1px solid var(--sb-line); border-radius:8px;
  background:var(--sb-surface);
}
.sourcing-buyer-item > span{display:block}
/* 226 A2（指挥 10:12 手机复查）：卡片里的徽标各占一行，但宽度照字 —— 上一条把卡片里的 span 都变成整行块，「Sample」「Action needed」被拉满整张卡 */
.sourcing-buyer-item > .sd-sample,
.sourcing-buyer-item > .sourcing-buyer-badge{display:table}
.sourcing-buyer-item-title{
  display:block; min-height:44px; padding:.35em 0;
  font-weight:650; font-size:17px; line-height:1.4; color:var(--sb-ink);
}
.sourcing-buyer-status{font-weight:600}
/* 226 设计规格 §3：请求卡左边 4px 状态条（class 只给样式用）—— 进行中主色、要你动手琥珀、报告好了主色加 ✓、已关闭灰 */
.sourcing-buyer-item-progress, .sourcing-buyer-item-ready{border-left:4px solid var(--sb-state)}
.sourcing-buyer-item-action{border-left:4px solid var(--sb-amber)}
.sourcing-buyer-item-closed{border-left:4px solid var(--sb-line-2)}
.sourcing-buyer-item-ready .sourcing-buyer-item-title::before{content:"\2713"; display:inline-block; margin-right:.45em; color:var(--sb-state); font-weight:700}
.sourcing-buyer-item-progress > .sourcing-buyer-status,
.sourcing-buyer-item-action > .sourcing-buyer-status,
.sourcing-buyer-item-ready > .sourcing-buyer-status,
.sourcing-buyer-item-closed > .sourcing-buyer-status{display:flex; align-items:center; gap:8px; font-size:15px}
.sourcing-buyer-item-progress > .sourcing-buyer-status::before,
.sourcing-buyer-item-action > .sourcing-buyer-status::before,
.sourcing-buyer-item-ready > .sourcing-buyer-status::before,
.sourcing-buyer-item-closed > .sourcing-buyer-status::before{content:""; width:8px; height:8px; flex:none; border-radius:50%; background:var(--sb-state)}
.sourcing-buyer-item-action > .sourcing-buyer-status::before{background:var(--sb-amber)}
.sourcing-buyer-item-closed > .sourcing-buyer-status::before{background:var(--sb-line-2)}
.sourcing-buyer-badge{
  display:inline-block; margin:.3em 0; padding:.15em .55em;
  font-size:.85rem; font-weight:600;
  color:var(--sb-warn); background:var(--sb-warn-bg);
  border:1px solid var(--sb-warn-line); border-radius:999px;
}
.sourcing-buyer-questions{margin:.6em 0; padding-left:1.4em}
.sourcing-buyer-files li{padding:.2em 0}

/* 宽屏上按钮不必铺满整行 */
@media (min-width:640px){
  .sourcing-buyer-button{display:inline-block; width:auto; min-width:12rem}
  .sourcing-buyer-form .sourcing-buyer-button + .sourcing-buyer-button{margin-left:.6em}
}

/* =========================================================================== 226 A2-2
   账户与请求页：「现在会发生什么」一句、四步时间线、免费核验那一块、在线阅读报告。
   仍然手机优先、只用 .sourcing-buyer 开头的选择器、不碰主题版面（与上面同一条规矩）。 */

.sourcing-buyer-next{margin:.2em 0 .8em}
.sourcing-buyer-checks .sourcing-buyer-title{margin-top:0}
/* 226 走查 A2：三种次数各一段（核验、找头部工厂报告、供应商档案请求），段与段之间一条细线；每段那一行照旧加粗，
   但不再是浅底信息条（三条浅底叠在一起太重），按钮与提示照旧 */
.sourcing-buyer-kind + .sourcing-buyer-kind{margin-top:.9em; padding-top:.9em; border-top:1px solid var(--sb-line)}
.sourcing-buyer-kind .sourcing-buyer-credits{margin:0 0 .3em; padding:0; background:none}
.sourcing-buyer-kind > p{margin:.35em 0}
.sourcing-buyer-kind > .sqr-entry{margin:.35em 0}
/* 卡片里打头的标题不要上边距（A2-2 截图：「Your company」那一块顶上空了一截） */
.sourcing-buyer-card > h3:first-child,
.sourcing-buyer-card > .sourcing-buyer-label:first-child{margin-top:0}

/* 只给读屏软件听的字（时间线里「已完成」的那几步） */
.sourcing-buyer-vh{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* —— 四步时间线：手机上竖排（一步一行），宽屏横排 —— */
.sourcing-buyer-timeline{list-style:none; margin:1em 0; padding:0; counter-reset:sbstep}
.sourcing-buyer-step{
  position:relative; padding:.45em 0 .9em 2.6em; min-height:2.4em;
  counter-increment:sbstep; color:var(--sb-mut);
}
.sourcing-buyer-step::before{
  content:counter(sbstep); position:absolute; left:0; top:.25em; z-index:1;
  width:1.8em; height:1.8em; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem; font-weight:600;
  border:2px solid var(--sb-line); background:var(--sb-surface); color:var(--sb-mut);
}
/* 226 设计规格 §3：步与步之间一道 2px 的线（手机竖、宽屏横） */
.sourcing-buyer-step:not(:last-child)::after{content:""; position:absolute; left:calc(.9em - 1px); top:2.05em; bottom:-.25em; width:2px; background:var(--sb-line)}
/* 226 动效第二轮（LK 10-20 11:0x 选 Yes）：做完的那几步往后那一道线用主色（原来全是灰的，做完的那一截看不出来）；是样子不是动效，打印与减少动态时也一样 */
.sourcing-buyer-step-done:not(:last-child)::after{background:var(--sb-accent)}
.sourcing-buyer-step-done{color:var(--sb-ink)}
.sourcing-buyer-step-done::before{content:"\2713"; background:var(--sb-accent); border-color:var(--sb-accent); color:var(--sb-accent-ink)}
.sourcing-buyer-step-current{color:var(--sb-ink); font-weight:600}
.sourcing-buyer-step-current::before{border-color:var(--sb-accent); color:var(--sb-accent); box-shadow:0 0 0 4px var(--sb-accent-soft)}
.sourcing-buyer-step-name{display:block}
.sourcing-buyer-step .sourcing-buyer-sub{display:block; font-weight:400}
@media (min-width:640px){
  .sourcing-buyer-timeline{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6em}
  .sourcing-buyer-step{padding:2.5em .4em 0 0}
  .sourcing-buyer-step::before{top:0}
  .sourcing-buyer-step:not(:last-child)::after{left:2.1em; right:-.3em; top:calc(.9em - 1px); bottom:auto; width:auto; height:2px}
}

/* —— 在线阅读报告：框里滚，下面是下载与新标签页 —— */
.sourcing-buyer-report{margin:1.2em 0}
.sourcing-buyer-reader{
  display:block; width:100%; height:70vh; min-height:24rem;
  border:1px solid var(--sb-line); border-radius:0 0 8px 8px; background:#fff;
}
/* 226 设计规格 §3：框上方一条工具条 —— 左边版本与日期，右边「Open in a new tab」（手机上按钮仍有 44px 高，宽屏 36px） */
.sourcing-buyer-reader-bar{display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:36px;
  padding:4px 4px 4px 12px; border:1px solid var(--sb-line); border-bottom:0; border-radius:8px 8px 0 0; background:var(--sb-soft)}
.sourcing-buyer-reader-bar .sourcing-buyer-sub{margin:0}
.sourcing-buyer-reader-bar .sourcing-buyer-button{display:inline-flex; align-items:center; width:auto; min-width:0; margin:0; padding:.35em .9em; font-size:.95rem}
@media (min-width:640px){ .sourcing-buyer-reader-bar .sourcing-buyer-button{min-height:36px} }
.sourcing-buyer-report .sourcing-buyer-item > .sourcing-buyer-button{margin-top:.5em}
@media (min-width:640px){
  .sourcing-buyer-report .sourcing-buyer-item > .sourcing-buyer-button{display:inline-block; width:auto; margin-right:.6em}
}

/* =========================================================================== 226 A2-3
   Check a factory 表单：预设问题一组复选框（每项整行可点、44px 高）、提交前的告知那一块。 */

.sourcing-buyer-presets{margin:1.2em 0; padding:.3em .9em .8em; border:1px solid var(--sb-line); border-radius:8px}
.sourcing-buyer-presets legend{padding:0 .3em; font-weight:600}
.sourcing-buyer .sourcing-buyer-check{
  display:flex; align-items:center; gap:.65em; min-height:44px; margin:0;
  font-size:1rem; color:var(--sb-ink); cursor:pointer;
}
.sourcing-buyer-check input[type=checkbox]{width:1.25rem; height:1.25rem; flex:none; margin:0; accent-color:var(--sb-accent)}
/* 226 三页（§B.6）：找头部工厂表单的「Certificates you need」—— 八个选项手机上两列（最长的「FSSC 22000」放得下）、宽屏四列，下面一格写别的 */
.sourcing-buyer-check-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1em}
@media (min-width:640px){ .sourcing-buyer-check-grid{grid-template-columns:repeat(4,minmax(0,1fr))} }
.sourcing-buyer-notice{
  margin:1.2em 0 .4em; padding:.8em .95em; font-size:.95rem;
  background:var(--sb-soft); border:1px solid var(--sb-line); border-left:3px solid var(--sb-accent); border-radius:8px;
}
.sourcing-buyer-notice p{margin:.4em 0}
.sourcing-buyer-notice .sourcing-buyer-label{margin-top:0}

/* 226 A2-6：价格信息（免费视图）—— 产品与相对上月的方向两列，手机上也不横向滚动 */
.sourcing-buyer-prices{width:100%; border-collapse:collapse; margin:12px 0; font-size:15px; table-layout:fixed}
.sourcing-buyer-prices th, .sourcing-buyer-prices td{padding:10px 8px; border-bottom:1px solid var(--sd-line, #e3e7ed); text-align:left; vertical-align:top; overflow-wrap:anywhere}
.sourcing-buyer-prices th{font-weight:600; color:var(--sd-ink-2, #4b5563)}
.sourcing-buyer-notice-line{margin:8px 0; font-size:.9rem}

/* 226 W30（A3）：客户看的一个产品一页 —— 报价表七列；手机上每一条报价叠成一块、每格前面写列名（td 的 data-label），同样不横向滚动。
   价格历史每一条可比序列一张两列的小表 */
/* 宽屏上七列按内容分宽（等分时「Specification」会从词中间断开），表头不在词中间断 */
.sourcing-buyer-quotes{table-layout:auto}
.sourcing-buyer-quotes th{overflow-wrap:normal; word-break:normal}   /* 外层 .sourcing-buyer 的 word-break:break-word 会继承下来 */
.sourcing-buyer-quotes td:nth-child(3){white-space:nowrap}
@media (max-width:640px){
  .sourcing-buyer-quotes thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
  .sourcing-buyer-quotes tr{display:block; padding:8px 0; border-bottom:1px solid var(--sd-line, #e3e7ed)}
  .sourcing-buyer-quotes td{display:grid; grid-template-columns:7.5rem minmax(0,1fr); gap:8px; padding:3px 0; border:0}
  .sourcing-buyer-quotes td::before{content:attr(data-label); font-weight:600; color:var(--sd-ink-2, #4b5563)}
  .sourcing-buyer-quotes td.sourcing-buyer-empty{display:block}
  .sourcing-buyer-quotes td.sourcing-buyer-empty::before{content:none}
  .sourcing-buyer-quotes td:empty{display:none}                /* 月表里没写的（例如有效期）：手机上不留一个只有列名的空行 */
}
.sourcing-buyer-history h4{margin:14px 0 2px; font-size:.95rem; font-weight:600; overflow-wrap:anywhere}
.sourcing-buyer-history .sourcing-buyer-prices{margin-top:4px}

/* 226 接口更正 23：找头部工厂「What you asked for」—— 标签与值两列，手机上叠成一列；长值照样换行，不横向滚动 */
.sourcing-buyer-ask{display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:8px 0 16px}
.sourcing-buyer-ask dt{font-weight:600; color:var(--sd-ink-2, #4b5563)}
.sourcing-buyer-ask dd{margin:0; overflow-wrap:anywhere}
@media (max-width:480px){.sourcing-buyer-ask{grid-template-columns:1fr; gap:2px}.sourcing-buyer-ask dd{margin-bottom:8px}}

/* 226 补丁六：账户页「Your company」下的公司显示名 —— 比正文略重，长名字照样换行 */
.sourcing-buyer-org-name{font-weight:600; margin:0 0 12px; overflow-wrap:anywhere}

/* =========================================================================== 226 注册（design-launch.md §2、§4）
   示例答案的两个按钮：宽屏在表单右边（跟着往下滚），手机在表单上面；按下的那一个有主色的边。上传登记证书那一格只在选了「没有公司邮箱」时出（脚本设 hidden）。 */
.srg-layout{display:flex; flex-direction:column; gap:12px}
@media (min-width:860px){
  .srg-layout{display:grid; grid-template-columns:minmax(0,1fr) 10.5rem; align-items:start; gap:24px}
  .srg-form{grid-column:1; grid-row:1}
  .srg-examples{grid-column:2; grid-row:1; position:sticky; top:16px; flex-direction:column; align-items:stretch}
}
.srg-examples{display:flex; flex-wrap:wrap; gap:8px}
.sourcing-buyer .srg-ex{min-height:44px; padding:0 14px; border:1px solid var(--sb-line-2); border-radius:8px; background:var(--sb-surface); color:var(--sb-ink);
  font:inherit; font-size:.95rem; cursor:pointer}
.sourcing-buyer .srg-ex[aria-pressed="true"]{border-color:var(--sb-accent); box-shadow:inset 0 0 0 1px var(--sb-accent); font-weight:600}
.srg-cert[hidden]{display:none}
/* 国家下拉：与上面的文字框同一个样子，手机上 ≥ 44px（只管注册页这一张表，别的表单里的下拉不动） */
.sourcing-buyer .srg-form select{font-size:1.0625rem; width:100%; max-width:100%; min-height:48px; padding:.5em .7em; font-family:inherit;
  border:1px solid var(--sb-field-line); border-radius:8px; background:var(--sb-surface); color:var(--sb-ink)}
.sourcing-buyer .srg-form select:focus-visible{outline:2px solid var(--sb-focus); outline-offset:1px}
/* 226 注册重做（指挥 10-17 07:3x）：第 1 步 —— 价值那一句、两张选路的卡片（整张点得到，选中的主色边）、宽屏两格一行、
   没过的那一格（警示色的边、下面一行字）、表顶「N things to fix」那一框、收起的两样（网站、码）；第 2 步写明地址的那一句。只用变量 */
.sourcing-buyer .srg-value{margin:0 0 4px; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .srg-route{border:0; margin:0 0 14px; padding:0; display:grid; gap:10px; min-width:0}
.sourcing-buyer .srg-route legend{padding:0; margin:0 0 8px; font-weight:600}
@media (min-width:720px){ .sourcing-buyer .srg-route{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.sourcing-buyer .srg-route-opt{display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:10px; row-gap:2px; align-items:start; min-height:44px;
  margin:0; padding:12px 14px; border:1px solid var(--sb-line-2); border-radius:10px; background:var(--sb-surface); color:var(--sb-ink); cursor:pointer}
/* 226 选路那两个单选（指挥 10-25 07:59 B）：原来没设 accent-color，浏览器用它自己的蓝；照站上别的单选与勾选框用主色（选中那张卡片的边本来就是主色） */
.sourcing-buyer .srg-route-opt input{grid-row:1 / span 2; margin:4px 0 0; accent-color:var(--sb-accent)}
.sourcing-buyer .srg-route-title{font-weight:600}
.sourcing-buyer .srg-route-text{grid-column:2; font-size:.9rem; color:var(--sb-mut)}
.sourcing-buyer .srg-route-opt:has(input:checked){border-color:var(--sb-accent); box-shadow:inset 0 0 0 1px var(--sb-accent)}
@media (min-width:720px){ .sourcing-buyer .srg-pair{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:16px} }
.sourcing-buyer .srg-err{display:block; margin:6px 0 0; color:var(--sb-warn); font-weight:600}
.sourcing-buyer .srg-f-bad input, .sourcing-buyer .srg-f-bad select, .sourcing-buyer .srg-f-bad textarea{border-color:var(--sb-warn); box-shadow:inset 0 0 0 1px var(--sb-warn)}
.sourcing-buyer .srg-summary:focus{outline:2px solid var(--sb-focus); outline-offset:2px}
.sourcing-buyer .srg-summary-head{font-weight:600}
.sourcing-buyer .srg-summary a{color:inherit}
.sourcing-buyer .srg-more{margin:2px 0 10px}
.sourcing-buyer .srg-more > summary{display:flex; align-items:center; gap:6px; min-height:44px; cursor:pointer; color:var(--sb-state); font-weight:600; list-style:none}
/* 1b（指挥 10-17 08:1x 第 3、4 条）：字色用 --sb-state（浅色照旧是主色，深色是站上链接的蓝，约 7.6:1）；display:flex 把浏览器的小三角弄没了 → 自己画一个「+」，打开后「−」 */
.sourcing-buyer .srg-more > summary::-webkit-details-marker{display:none}
.sourcing-buyer .srg-more > summary::before{content:"+"; display:inline-block; width:1em; text-align:center; font-weight:700}
.sourcing-buyer .srg-more[open] > summary::before{content:"\2212"}
/* 1c（指挥 10-17 08:1x 第 7、8 条）：邮箱那一格下面「No company email? Upload a certificate instead」是一行字样的、点得到的（≥ 44px）；
   有脚本时登记证那一格换成站上的按钮 ＋ 选中的文件名，原样的那一格收起（照样拿得到焦点，焦点框画在按钮上）；「Only if …」那半句只在没有脚本时出 */
.sourcing-buyer .srg-switch{display:inline-flex; align-items:center; min-height:44px; margin:2px 0 0; color:var(--sb-state); font-weight:600; text-decoration:underline; cursor:pointer}
.sourcing-buyer .srg-file-ui[hidden]{display:none}
.sourcing-buyer .srg-js .srg-file-input{position:absolute; width:1px; height:1px; opacity:0; overflow:hidden}
.sourcing-buyer .srg-file-ui{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px}
.sourcing-buyer .srg-file-btn{display:inline-flex; align-items:center; min-height:44px; margin:0; padding:0 16px; border:1px solid var(--sb-line-2); border-radius:8px;
  background:var(--sb-surface); color:var(--sb-ink); font-weight:600; cursor:pointer}
.sourcing-buyer .srg-file-input:focus-visible + .srg-file-ui .srg-file-btn{outline:2px solid var(--sb-focus); outline-offset:1px}
.sourcing-buyer .srg-file-name{color:var(--sb-mut); overflow-wrap:anywhere}
.sourcing-buyer .srg-js .srg-nojs-only{display:none}
.sourcing-buyer .srg-more[open] > summary{margin-bottom:4px}
.sourcing-buyer .srg-sent-to{font-size:1.0625rem}
/* 注册表紧凑一点（手机上少翻一屏）：标签与段落的上下距收小、「What do you buy?」三行高、提示紧贴在格子下面；格子本身照旧 ≥ 44px */
.sourcing-buyer .srg-form label{margin:.65em 0 .25em}
.sourcing-buyer .srg-form p{margin:.25em 0}
.sourcing-buyer .srg-form textarea{min-height:4.8em}
.sourcing-buyer .srg-form .sourcing-buyer-sub{display:block; margin-top:4px; font-size:.85rem; line-height:1.4}
.sourcing-buyer .srg-route-opt{padding:10px 12px}
/* 拆两屏改（08:18 第 1 条「两张卡片收紧一点」）：上面那几条标签的上下距不给选路的两张卡（卡片之间只留 gap 那 10px） */
.sourcing-buyer .srg-form .srg-route-opt{margin:0}
/* 226 注册重做第二笔（指挥 10-17 08:0x）：第 1 步两屏（脚本才分，没有脚本时一页）。拆两屏改（08:18）：第二屏顶上一行「地址 · Change」
   （Change 是一行字样的按钮，照样 ≥ 44px，深色里是链接的蓝）；手机上第一屏不出示例按钮（第一屏只有选路与邮箱，用不着）；
   脚本报邮箱错时收起原来的提示；服务端退回时表顶那一框与下面的示例按钮之间留平常的间距 */
.sourcing-buyer .srg-part[hidden], .sourcing-buyer .srg-next[hidden], .sourcing-buyer .srg-who[hidden], .sourcing-buyer .srg-form .srg-email-hint[hidden]{display:none}
.sourcing-buyer .srg-next{margin-top:14px}
.sourcing-buyer .srg-who{margin:0 0 4px; overflow-wrap:anywhere}
.sourcing-buyer .srg-who-email{font-weight:600}
.sourcing-buyer .srg-change{display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; background:none; font:inherit;
  font-weight:600; color:var(--sb-state); text-decoration:underline; cursor:pointer}
@media (max-width:859.98px){ .sourcing-buyer.srg-at-1 .srg-examples{display:none} }
.sourcing-buyer .srg-summary{margin-bottom:16px}
.sourcing-buyer.srg-at-2 > .srg-value{display:none}

/* =========================================================================== 226 注册以后（状态页、Free factory checks 页、账户页上头那一块）
   价值那一句做成浅底信息条；三档做成三张卡（手机一列、宽屏三列），每张卡最上面一行是「到了哪一步」，给过了的那一张用主色的边；
   八题与第 3 档那张表的样子见下面「第三笔」那一段。只用变量，深浅两种照 token 走。 */
.sourcing-buyer .sfx-value{font-size:17px; margin:.4em 0 .6em; padding:.65em .9em; border-radius:8px; background:var(--sb-accent-soft); color:var(--sb-ink)}
.sourcing-buyer .sfx-tiers{list-style:none; margin:1em 0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:12px}
@media (min-width:760px){ .sourcing-buyer .sfx-tiers{grid-template-columns:repeat(3,minmax(0,1fr))} }
.sourcing-buyer .sfx-tier{margin:0; padding:.9em; border:1px solid var(--sb-line); border-radius:8px; background:var(--sb-surface); display:flex; flex-direction:column}
.sourcing-buyer .sfx-tier h3{margin:.15em 0 .3em}
.sourcing-buyer .sfx-tier p{margin:.3em 0}
.sourcing-buyer .sfx-tier .sfx-state{order:-1; margin:0; font-size:.85rem; font-weight:600; color:var(--sb-mut)}
/* 给过了的那一张：用状态色（浅色模式是主色，深色模式换成亮一点的链接色，深底上看得清） */
.sourcing-buyer .sfx-tier.sfx-granted{border-color:var(--sb-state)}
.sourcing-buyer .sfx-tier.sfx-granted .sfx-state{color:var(--sb-state)}
/* 226 注册重做第三笔（redesign.md §八题、§第 3 档）：八题与第 3 档那三种文件不再一题一个框 —— 题目加粗当标题；选项是小卡片（整张点得到、≥ 48px，
   选中的主色边、键盘焦点画在卡片上，与注册页选路那两张同一个样子）：八题两栏（手机上也两栏），第 3 档那三种一句一张、一栏。
   没答的那一题卡片换警示色的边、题目下面一行字；「If other」那一格选了 Other 才出（脚本收）；两页的步骤条、「Continue」、回第一页那一个没有脚本时收着 */
.sourcing-buyer .sfx-profile .sourcing-buyer-presets, .sourcing-buyer .sfx-document .sourcing-buyer-presets{margin:0 0 22px; padding:0; border:0; min-width:0}
.sourcing-buyer .sfx-profile legend, .sourcing-buyer .sfx-document legend{padding:0; margin:0 0 8px; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .sfx-profile .sfx-q > .sourcing-buyer-sub{display:block; margin:-4px 0 8px}
.sourcing-buyer .sfx-opts{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
/* 226 登录以后的页（指挥 10-23 22:0x 定，A2 清单 B2；10-24 00:04 分两种界限）：勾选的格子窄屏一格一行 —— 两格时格子比 Pharmaceuticals、Communication
   这样的词窄，下面那一条的 overflow-wrap:anywhere 让词从中间断。注册那两步（About you、About your company，表是 .sv-form）390 宽就断：480 以下一格一行。
   免费核验八题那一页（.sfx-profile）格子宽一些：A2 在练习站上一个像素一个像素量过，三种字两格时从 374px 起都不断，留 15px 余量 ——
   389px 以下一格一行，从 389px 起照旧两栏（注册重做时定、LK 看过的样子） */
@media (max-width:479.98px){ .sourcing-buyer .sv-form .sfx-opts{grid-template-columns:minmax(0,1fr)} }
@media (max-width:388.98px){ .sourcing-buyer .sfx-profile .sfx-opts{grid-template-columns:minmax(0,1fr)} }
.sourcing-buyer .sfx-kinds{display:grid; grid-template-columns:minmax(0,1fr); gap:8px}
.sourcing-buyer .sfx-opts > .sourcing-buyer-check, .sourcing-buyer .sfx-kinds > .sourcing-buyer-check{min-height:48px; margin:0; padding:8px 10px; gap:8px;
  border:1px solid var(--sb-line-2); border-radius:8px; background:var(--sb-surface); font-size:.95rem; line-height:1.3; overflow-wrap:anywhere}
.sourcing-buyer .sfx-opts > .sourcing-buyer-check:has(input:checked), .sourcing-buyer .sfx-kinds > .sourcing-buyer-check:has(input:checked){
  border-color:var(--sb-accent); box-shadow:inset 0 0 0 1px var(--sb-accent)}
.sourcing-buyer .sfx-opts > .sourcing-buyer-check:has(input:focus-visible), .sourcing-buyer .sfx-kinds > .sourcing-buyer-check:has(input:focus-visible){
  outline:2px solid var(--sb-focus); outline-offset:1px}
.sourcing-buyer .sfx input[type=radio]{width:1.25rem; height:1.25rem; flex:none; margin:0; accent-color:var(--sb-accent)}
.sourcing-buyer .sfx-err{display:block; margin:0 0 8px; color:var(--sb-warn); font-weight:600}
.sourcing-buyer .sfx-text-q .sfx-err, .sourcing-buyer .sfx-file .sfx-err, .sourcing-buyer .sfx-other .sfx-err{margin:6px 0 0}
.sourcing-buyer .sfx-q-bad .sfx-opts > .sourcing-buyer-check, .sourcing-buyer .sfx-q-bad .sfx-kinds > .sourcing-buyer-check{border-color:var(--sb-warn)}
.sourcing-buyer .sfx-q-bad textarea, .sourcing-buyer .sfx-other input[aria-invalid="true"], .sourcing-buyer .sfx-file.sfx-q-bad .srg-file-btn{
  border-color:var(--sb-warn); box-shadow:inset 0 0 0 1px var(--sb-warn)}
.sourcing-buyer .sfx-other{display:block; margin-top:10px}
.sourcing-buyer .sfx-other[hidden], .sourcing-buyer .sfx-bar[hidden], .sourcing-buyer .sfx-part[hidden], .sourcing-buyer .sfx-next[hidden], .sourcing-buyer .sfx-back-row[hidden]{display:none}
.sourcing-buyer .sfx-text-q > label{margin-top:0; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .sfx-text-q textarea, .sourcing-buyer .sfx-note textarea{min-height:4.8em}
.sourcing-buyer.sfx-split .sfx-bars + h2{margin-top:0}
.sourcing-buyer .sfx-back-row{margin:0 0 6px}
.sourcing-buyer .sfx-back{display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; background:none; font:inherit; font-weight:600;
  color:var(--sb-state); text-decoration:underline; cursor:pointer}
.sourcing-buyer .sfx-note{margin:4px 0 10px}
.sourcing-buyer .sfx-account{margin:0 0 1em}
/* 226 注册重做第二笔（指挥 10-17 08:15 第 10 条、08:42、09:19；docs/parallel/agent2-redesign-226/reg-ux4/account-design.md）：账户页最上面那一张 ——
   「还在弄」那一张（srw）：等久了的那一句用次要的字色，「Check again」是次要按钮、不整宽；Getting started（sgs）：一行一项（记号、那一句、链接或那一个主按钮），
   做完的那几行字用次要的颜色、记号用状态色（深色是链接的蓝）；「Leave this company」一行字样的按钮（不整宽，照样 ≥ 44px）。只用变量 */
.sourcing-buyer .sgs > .sourcing-buyer-title:first-child, .sourcing-buyer .sd-progress + .sourcing-buyer-title{margin-top:0}
.sourcing-buyer .srw-calm{color:var(--sb-mut)}
.sourcing-buyer .srw-again[hidden]{display:none}
.sourcing-buyer .srw-again .sourcing-buyer-button{display:inline-flex; align-items:center; justify-content:center; width:auto; padding:.55em 1.2em}
.sourcing-buyer .sgs-hello{margin:.2em 0 .3em; font-weight:600}
.sourcing-buyer .sgs-count{margin:.2em 0 .6em}
.sourcing-buyer .sgs-list{list-style:none; margin:.8em 0 .4em; padding:0}
.sourcing-buyer .sgs-item{display:grid; grid-template-columns:1.5em minmax(0,1fr); column-gap:.4em; align-items:baseline; margin:0; padding:.55em 0; border-top:1px solid var(--sb-line)}
.sourcing-buyer .sgs-item > a{grid-column:2; justify-self:start}
.sourcing-buyer .sgs-item > a.sourcing-buyer-button{justify-self:stretch; margin-top:.5em}
.sourcing-buyer .sgs-mark{font-weight:700; text-align:center; color:var(--sb-mut)}
.sourcing-buyer .sgs-done .sgs-mark{color:var(--sb-state)}
.sourcing-buyer .sgs-done .sgs-text, .sourcing-buyer .sgs-end .sgs-text{color:var(--sb-mut)}
.sourcing-buyer .sgs-done-line{margin:0; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .sourcing-buyer-quiet{display:inline-flex; align-items:center; width:auto; min-height:44px; margin-top:.4em; padding:0; border:0; background:none;
  font:inherit; font-weight:600; color:var(--sb-state); text-decoration:underline; cursor:pointer}
.sourcing-buyer .sourcing-buyer-quiet:hover{filter:none}

/* =========================================================================== 226 报价申请（A3）：「Request a quote」那一页与账户页「Your quote requests」一块
   六样每样一行（名字 · 价 单位，组合下面一行小字），数量格窄一点、跟在「How many?」后面；开票那一组照别的表单的分组框。账户页一行一张，状态加粗。
   只用变量，深浅两种照 token 走。 */
.sourcing-buyer .sqr-items, .sourcing-buyer .sqr-invoice{margin:1.2em 0; padding:.3em .9em .8em; border:1px solid var(--sb-line); border-radius:8px}
.sourcing-buyer .sqr-items legend, .sourcing-buyer .sqr-invoice legend{padding:0 .3em; font-weight:600}
.sourcing-buyer .sqr-item{padding:.55em 0; border-bottom:1px solid var(--sb-line)}
.sourcing-buyer .sqr-item:last-child{border-bottom:0}
/* 226 B 块 A4（LK 10-22 12:5x 批）：报价表的估算合计 —— 一样都没选时 hidden；浅底同站上的提示块 */
.sourcing-buyer .sqr-total{margin:18px 0 10px; padding:14px 16px; border:1px solid var(--sb-line); border-radius:8px; background:var(--sb-accent-soft)}
.sourcing-buyer .sqr-total[hidden]{display:none}
.sourcing-buyer .sqr-total-line{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 4px; font-size:17px}
.sourcing-buyer .sqr-total .sourcing-buyer-hint{margin:0}
/* 226 B 块 A3（LK 10-22 12:5x 批的样子）：没登录打开报价表时，Create an account 下面那一行离按钮 12px（原来贴着按钮） */
.sourcing-buyer .sbp-signin-hint{margin-top:12px}
.sourcing-buyer .sqr-item p{margin:.2em 0}
.sourcing-buyer .sqr-name{font-weight:600}
.sourcing-buyer .sqr-qty label{display:inline; margin:0 .4em 0 0; color:var(--sb-mut)}
/* 数量格照上面文字格的样子（字号、边、圆角、底色），只是窄；手机上点得着（不矮于 44px）；卡片里打头的标题不要上边距（与免费核验那一块同一条） */
.sourcing-buyer .sqr-qty input[type="number"]{width:5.5em; max-width:100%; min-height:44px; font-size:1.0625rem; padding:.45em .6em; font-family:inherit;
  border:1px solid var(--sb-field-line); border-radius:8px; background:var(--sb-surface); color:var(--sb-ink)}
/* 226 B 块 A6、A8（LK 10-22 12:5x 批的样子）：账户页最上面「Your orders」—— 一张一卡（卡的样子用请求卡那一套 .sourcing-buyer-item-*），
   不放进 .sourcing-buyer-list（那一套给能点的卡加一圈悬停的框，订单卡不能点）；标题下一行灰字说只有本人看得到 */
.sourcing-buyer .sqr-orders{margin:0 0 30px}
.sourcing-buyer .sqr-orders > .sourcing-buyer-title{margin-bottom:.2em}
.sourcing-buyer .sqr-orders-only{color:var(--sb-mut); margin:0 0 .6em; font-size:15px}
.sourcing-buyer .sqr-credit{margin:0 0 .6em}
.sourcing-buyer .sqr-orders-list{list-style:none; margin:0; padding:0}
.sourcing-buyer .sqr-order .sourcing-buyer-next{margin:.35em 0 0}

/* =========================================================================== 226 My account 改资料、改口令（A2，10-19；LK 13:2x 批的样子，样稿 account-settings/mock.css 原样搬来）
   账户页「Your details」一张：标题贴着卡顶；两列（名目、内容），手机上上下排；没给的那一样用淡色。改资料那一页：邮箱与公司放一个框只显示。
   改口令那一页：口令格旁的眼睛照现在的样子画（睁眼＝看得见，带斜线＝看不见；与登录页那只同一个规矩），点了换由页上的小脚本做。只用变量 */
.sourcing-buyer .sas-details .sourcing-buyer-title{margin-top:0}
.sourcing-buyer .sas-dl{display:grid; grid-template-columns:minmax(0,1fr); row-gap:2px; margin:0 0 16px}
.sourcing-buyer .sas-dl dt{margin:10px 0 0; font-size:.85rem; color:var(--sb-mut)}
.sourcing-buyer .sas-dl dd{margin:0; color:var(--sb-ink); overflow-wrap:anywhere}
.sourcing-buyer .sas-dl dd.sas-none{color:var(--sb-mut)}
@media (min-width:720px){
  .sourcing-buyer .sas-dl{grid-template-columns:10rem minmax(0,1fr); column-gap:16px; row-gap:10px}
  .sourcing-buyer .sas-dl dt{margin:0; font-size:1rem}
}
.sourcing-buyer .sas-actions{display:flex; flex-wrap:wrap; gap:10px; margin:4px 0 0}
.sourcing-buyer .sas-actions .sourcing-buyer-button{min-width:0}
.sourcing-buyer .sas-ro{margin:20px 0 0; padding:12px 14px; border:1px solid var(--sb-line); border-radius:8px; background:var(--sb-soft)}
.sourcing-buyer .sas-ro-label{display:block; font-size:.85rem; color:var(--sb-mut)}
.sourcing-buyer .sas-ro-value{display:block; margin:2px 0 10px; font-weight:600; color:var(--sb-ink); overflow-wrap:anywhere}
.sourcing-buyer .sas-ro .sourcing-buyer-sub{display:block; font-size:.9rem}
.sourcing-buyer .sas-ro a{color:var(--sb-focus)}
.sourcing-buyer .sas-pw{position:relative; display:block}
.sourcing-buyer .sas-pw input{width:100%; padding-right:52px}
.sourcing-buyer .sas-eye{position:absolute; top:50%; right:2px; transform:translateY(-50%); display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--sb-focus); cursor:pointer}
.sourcing-buyer .sas-eye[hidden]{display:none}
.sourcing-buyer .sas-eye:focus-visible{outline:2px solid var(--sb-focus); outline-offset:-2px}
.sourcing-buyer .sas-eye svg{width:22px; height:22px}
.sourcing-buyer .sas-pw input[type=text] ~ .sas-eye .sas-eye-off, .sourcing-buyer .sas-pw input[type=password] ~ .sas-eye .sas-eye-on{display:none}
.sourcing-buyer .sas-note{margin:16px 0 0; color:var(--sb-mut); font-size:.95rem}
.sourcing-buyer .sas-forgot{display:inline-flex; align-items:center; min-height:44px; color:var(--sb-focus); font-size:.95rem}
.sourcing-buyer .sas-form-actions{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:20px 0 0}
.sourcing-buyer .sas-form-actions .sourcing-buyer-button{min-width:0}

/* =========================================================================== 226 月度价格邮件（A2，10-19；LK 10-19 11:0x 批的样子）：账户页「Emails」一张
   （与「Your company」同一种卡）—— 开关那一行（On：主色的边与浅青底）、关注的产品一行一个（右边 Unfollow）、一个按钮、一句说明；上一下没办成时一句。
   只用变量；两段次要的字照样稿用站上的 --sd-ink-2（别的主题下退回 --sb-mut） */
.sourcing-buyer .sbe-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:6px 0 0}
.sourcing-buyer .sbe-name{margin:0; font-weight:650; color:var(--sb-ink)}
.sourcing-buyer .sbe-state{flex:none; display:inline-flex; align-items:center; min-height:26px; padding:0 12px; border-radius:999px; font-size:13px; font-weight:650;
  border:1px solid var(--sb-line-2); background:var(--sb-soft); color:var(--sd-ink-2, var(--sb-mut))}
.sourcing-buyer .sbe-state.sbe-on{border-color:var(--sb-accent); background:var(--sb-accent-soft); color:var(--sb-ink)}
.sourcing-buyer .sbe-lead{margin:6px 0 0; color:var(--sd-ink-2, var(--sb-mut))}
.sourcing-buyer .sbe-h{margin:18px 0 4px; font-size:14px; font-weight:650; color:var(--sb-mut)}
.sourcing-buyer .sbe-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--sb-line)}
.sourcing-buyer .sbe-list li{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:2px 0; border-bottom:1px solid var(--sb-line)}
.sourcing-buyer .sbe-list form{margin:0; display:flex; justify-content:flex-end}
.sourcing-buyer .sbe-list .sourcing-buyer-quiet{margin-top:0; min-width:0}
.sourcing-buyer .sbe-none{margin:6px 0 0; color:var(--sb-mut)}
.sourcing-buyer .sbe-add{margin:10px 0 14px; font-size:15px; color:var(--sd-ink-2, var(--sb-mut))}
.sourcing-buyer .sbe-note{margin:12px 0 0; font-size:14px; color:var(--sb-mut)}
.sourcing-buyer .sbe .spe-failed{margin:6px 0 0; font-weight:600; color:var(--sb-warn)}

/* 226 兑换码（A3，W34）：账户页「Have a code? Redeem it」那一行 —— 点开是一格一个按钮。那一行照句子里的链接写：站点链接的颜色（没有主题时用字的颜色）、
   下划线，上下各加一点，点按目标不小于 24 像素高 */
.sourcing-buyer .spc{margin:.6em 0 1em}
.sourcing-buyer .spc-link{display:inline-block; padding:4px 0; cursor:pointer; color:var(--sd-link, currentColor); text-decoration:underline; text-underline-offset:2px}
.sourcing-buyer .spc-link:focus-visible{outline:2px solid var(--sd-link, currentColor); outline-offset:2px}
.sourcing-buyer .spc[open] .spc-link{margin-bottom:.3em}
.sourcing-buyer .spc-form{max-width:26rem}

/* =========================================================================== 226 账户那一块（LK 10-20 批，照 admindocs-review/2026-10-19-account-polish 的样子）
   取消请求是一行链接，点开才出那张表（第 7 条；键盘落点的框在 site.css）；价格那两页的表放进一张白卡片（第 8、9 条）；请求页编号与服务一行（第 5 条）；
   跳到 #emails、#details 时上面那一行标题（第 6 条挪到卡片上面了）照样看得见。只用变量 */
.sourcing-buyer details.sbp-cancel{margin:28px 0 0}
.sourcing-buyer details.sbp-cancel > summary{display:inline-flex; align-items:center; min-height:44px; cursor:pointer; color:var(--sb-state); font-weight:600;
  text-decoration:underline; text-underline-offset:3px; list-style:none}
.sourcing-buyer details.sbp-cancel > summary::-webkit-details-marker{display:none}
.sourcing-buyer details.sbp-cancel[open] > summary{margin-bottom:8px}
.sourcing-buyer details.sbp-cancel > .sourcing-buyer-form{margin:0; padding:18px 20px; border:1px solid var(--sb-line); border-radius:10px; background:var(--sb-surface)}
.sourcing-buyer .sbp-table-card{padding:18px 20px}
.sourcing-buyer .sbp-table-card .sourcing-buyer-prices{margin:0}
.sourcing-buyer .sbp-table-card > p:last-child{margin-bottom:0}
.sourcing-buyer .sbp-meta{margin:0 0 4px}
.sourcing-buyer .sbe, .sourcing-buyer .sas-details{scroll-margin-top:4rem}

/* 226 注册重做（LK 10-20 批的样子 admindocs-review/2026-10-20-signup；A2）：第 1 步右边那一栏、第 2、3 步两页（示例、几格、选择题）、账户页「Free factory checks」
   那一张、还没有公司时 Check a factory 那一屏。只用站上现有的变量；站上已有的几样（srg-f、srg-err、srg-summary、srg-pair、srg-ex、sfx-opts、sfx-other、sd-progress）照用 */
@media (min-width:860px){ .sourcing-buyer .sv-value-m{display:none} }
.sourcing-buyer .sv-layout{display:grid; grid-template-columns:minmax(0,1fr); gap:20px; align-items:start}
@media (min-width:860px){ .sourcing-buyer .sv-layout{grid-template-columns:minmax(0,26rem) minmax(0,1fr); gap:40px} }
.sourcing-buyer .sv-card{margin:0; padding:24px; border:1px solid var(--sb-line); border-radius:10px; background:var(--sb-surface)}
.sourcing-buyer .sv-card .srg-f{margin:0 0 14px}
.sourcing-buyer .sv-card .srg-f label{margin:0 0 .3em; color:var(--sb-ink); font-weight:600}
.sourcing-buyer .sv-alt{margin:16px 0 0; color:var(--sb-mut)}
.sourcing-buyer .sv-aside{margin:0; padding:4px 0 0}
.sourcing-buyer .sv-aside h2{font-family:var(--sd-display, inherit); font-size:22px; line-height:1.3; margin:0 0 6px}
.sourcing-buyer .sv-aside > p{margin:0 0 14px; color:var(--sb-mut)}
.sourcing-buyer .sv-earn{list-style:none; margin:0 0 14px; padding:0; display:grid; gap:10px}
.sourcing-buyer .sv-earn li{display:grid; grid-template-columns:2rem minmax(0,1fr); column-gap:12px; align-items:start; margin:0}
.sourcing-buyer .sv-earn-n{display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:var(--sb-accent-soft); color:var(--sb-ink); font-weight:700}
.sourcing-buyer .sv-earn b{display:block}
.sourcing-buyer .sv-earn span:not(.sv-earn-n){color:var(--sb-mut); font-size:.95rem}
.sourcing-buyer .sv-small{font-size:.9rem; color:var(--sb-mut)}
/* 第 2、3 步：表不超过 46rem（一行太长读着累），卡片跟着；示例两套（「See an example:」后面两个按钮，没有脚本时那一行藏着），格下一行「Example: …」用次要的字色 */
.sourcing-buyer .ssu > .sv-card{max-width:48rem}
.sourcing-buyer .sv-form{max-width:46rem}
.sourcing-buyer .sv-lead{margin:0 0 18px; max-width:40rem}
.sourcing-buyer .sv-examples{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 18px}
.sourcing-buyer .sv-examples[hidden]{display:none}
.sourcing-buyer .sv-examples p{margin:0; font-size:.95rem; color:var(--sb-mut)}
.sourcing-buyer .sv-examples .srg-ex{min-height:36px; padding:0 12px; font-size:.9rem}
.sourcing-buyer .sv-ex{display:block; margin-top:4px; font-size:.85rem; line-height:1.4; color:var(--sb-mut)}
.sourcing-buyer .sv-form .srg-f, .sourcing-buyer .sv-form .sfx-q{margin:0 0 18px}
.sourcing-buyer .sv-form .srg-f > label, .sourcing-buyer .sv-form legend{margin:0 0 .3em; color:var(--sb-ink); font-weight:600}
.sourcing-buyer .sv-opt{font-weight:400; color:var(--sb-mut)}
/* 电话与 LinkedIn 两格（type=tel／url）：照 text／email／password 那三种的样子（键盘落点那一圈照 .sourcing-buyer input:focus-visible） */
.sourcing-buyer input[type=tel], .sourcing-buyer input[type=url]{font-size:1.0625rem; width:100%; max-width:100%; padding:.7em .8em; font-family:inherit;
  border:1px solid var(--sb-field-line); border-radius:8px; background:var(--sb-surface); color:var(--sb-ink)}
.sourcing-buyer .ssu input[type=checkbox]{width:1.25rem; height:1.25rem; flex:none; margin:0; accent-color:var(--sb-accent)}
/* 一题几个选项（fieldset）：不要浏览器那一圈框；题目照别的格子的标签 */
.sourcing-buyer .sv-form fieldset{margin:0 0 18px; padding:0; border:0; min-width:0}
.sourcing-buyer .sv-form legend{padding:0}
.sourcing-buyer .sv-actions{display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:8px 0 0}
.sourcing-buyer .sv-actions .sourcing-buyer-button{margin:0}
.sourcing-buyer .sv-nosite{display:flex; align-items:center; gap:8px; min-height:44px; margin:2px 0 0; color:var(--sb-ink); font-size:.95rem}
.sourcing-buyer .sv-nosite input{width:1.15rem; height:1.15rem; margin:0; accent-color:var(--sb-accent)}
.sourcing-buyer .sv-form input:disabled{opacity:.6}
/* 账户页最上面「Free factory checks」：上面一行几次、值多少；三步一行一项（记号、名字与一句、右边动作或状态）；最下面小字 */
.sourcing-buyer .sfc{padding:22px 24px}
.sourcing-buyer .sfc-head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 18px; margin:0 0 6px}
.sourcing-buyer .sfc-count{margin:0; font-size:18px; font-weight:650; color:var(--sb-ink)}
.sourcing-buyer .sfc-n{font-family:var(--sd-display, inherit); font-size:30px; line-height:1; font-weight:800; margin-right:6px; font-variant-numeric:tabular-nums}
.sourcing-buyer .sfc-value{margin:0; color:var(--sb-mut); font-size:.95rem}
.sourcing-buyer .sfc-use{margin:0 0 4px; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .sfc-steps{list-style:none; margin:12px 0 4px; padding:0}
.sourcing-buyer .sfc-step{display:grid; grid-template-columns:2rem minmax(0,1fr); column-gap:12px; row-gap:8px; align-items:start; margin:0; padding:14px 0; border-top:1px solid var(--sb-line)}
@media (min-width:640px){ .sourcing-buyer .sfc-step{grid-template-columns:2rem minmax(0,1fr) auto; align-items:center} }
.sourcing-buyer .sfc-mark{display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; border:1.5px solid var(--sb-line-2); color:var(--sb-mut); font-weight:700; font-size:.9rem}
.sourcing-buyer .sfc-done .sfc-mark{border-color:var(--sb-state); background:var(--sb-state); color:var(--sb-surface)}
.sourcing-buyer .sfc-wait .sfc-mark{border-style:dashed; border-color:var(--sb-state); color:var(--sb-state)}
.sourcing-buyer .sfc-body p{margin:0}
.sourcing-buyer .sfc-name{font-weight:650; color:var(--sb-ink)}
.sourcing-buyer .sfc-text{color:var(--sb-mut); font-size:.95rem}
.sourcing-buyer .sfc-state{font-size:.95rem; color:var(--sb-ink)}
.sourcing-buyer .sfc-done .sfc-state{color:var(--sb-state); font-weight:600}
.sourcing-buyer .sfc-step > .sourcing-buyer-button, .sourcing-buyer .sfc-step > .sfc-pill{grid-column:2; justify-self:start; margin:0}
@media (min-width:640px){ .sourcing-buyer .sfc-step > .sourcing-buyer-button, .sourcing-buyer .sfc-step > .sfc-pill{grid-column:3; justify-self:end} }
.sourcing-buyer .sfc-pill{display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:0 12px; border-radius:999px; border:1px solid var(--sb-line-2);
  background:var(--sb-soft); color:var(--sb-ink); font-size:.9rem; font-weight:600; white-space:nowrap}
.sourcing-buyer .sfc-gain{color:var(--sb-mut); font-size:.9rem; font-weight:600}
.sourcing-buyer .sfc-first{margin-top:4px !important; font-size:.95rem; font-weight:600; color:var(--sb-ink)}
.sourcing-buyer .sfc-note{margin:6px 0 0 !important; padding:10px 12px; border-radius:8px; background:var(--sb-soft); color:var(--sb-ink); font-size:.95rem}
.sourcing-buyer .sfc-note a{color:inherit}
.sourcing-buyer .sfc-foot{margin:14px 0 0; padding-top:16px; border-top:1px solid var(--sb-line)}
.sourcing-buyer .sfc-foot p{margin:0}
/* 还没有公司时打开 Check a factory；Your details 那一张上到那一步改的「Edit」 */
.sourcing-buyer .sv-nocompany{max-width:40rem; padding:22px 24px}
.sourcing-buyer .sv-nocompany .sfc-count{margin:0 0 8px}
.sourcing-buyer .sas-edit{margin-left:.5em; font-size:.9rem}
.sourcing-buyer .sas-steps{margin:0 0 16px}
/* 226 登录以后的页（指挥 10-23 22:0x 定，A2 清单 B1）：手机上几样点得到的地方不到 44 —— 样子不动，照 Pricing 卡片那一修（site.css 的 .sp-card-link a::after）
   用看不见的外框把点得到的地方放到 44：兑换码那一行（34px 高，上下各伸 5；那一行的小箭头用了 ::after，外框用 ::before）、Your details 那一张里的 Edit
   （17px 高、约 26px 宽，上下各伸 14、左右各伸 10；几个 Edit 上下至少隔 60px，不相叠；外框用 ::before —— 用 ::after 时那一格的折行变了：Edit 是行内的链接，
   末尾一个绝对定位的伪元素让「…injection moulding Edit」从 moulding 前折改成 Edit 前折，A2 在练习站上逐格量过，::before 不变、键盘落点的框也一样）、
   没次数时的 Request a quote（34px 高，上下各伸 5）、About you 与 About your company 的 Example 钮（36px 高、带 1px 的边 —— 外框从边里面那一圈算，上下各伸 5
   才到 44；两个钮折成两行时只隔 8px，伸出边外的各 4，正好接上、不相叠）、Do this later（26px 高，上下各伸 9；上面的 Save 隔 10px）。
   A2 在练习站上用浏览器自己的 elementFromPoint 量过前后：docs/parallel/agent2-redesign-226/signed-in-fix/ */
.sourcing-buyer .spc > .spc-link{position:relative}
.sourcing-buyer .spc > .spc-link::before{content:""; position:absolute; left:0; right:0; top:-5px; bottom:-5px}
.sourcing-buyer .sas-edit{position:relative}
.sourcing-buyer .sas-edit::before{content:""; position:absolute; left:-10px; right:-10px; top:-14px; bottom:-14px}
.sourcing-buyer .sqr-entry > .sra-link{position:relative}
.sourcing-buyer .sqr-entry > .sra-link::after{content:""; position:absolute; left:0; right:0; top:-5px; bottom:-5px}
.sourcing-buyer .sv-examples .srg-ex{position:relative}
.sourcing-buyer .sv-examples .srg-ex::after{content:""; position:absolute; left:0; right:0; top:-5px; bottom:-5px}
.sourcing-buyer .sv-actions > a:not(.sourcing-buyer-button){position:relative}
.sourcing-buyer .sv-actions > a:not(.sourcing-buyer-button)::after{content:""; position:absolute; left:0; right:0; top:-9px; bottom:-9px}

/* 226 4c（指挥 10-24 06:1x 照甲）：交了的深度报告那一张卡上两个下载钮（English PDF 实心、Chinese PDF 空心）—— 一行两个；手机上各占半行，宽屏照字宽。
   整张卡能点（site.css 里标题的 ::after 铺满整张卡）：钮那一行垫到它上面，点钮是下载、不是进详情 */
.sourcing-buyer-item > .sbp-dd-dl{position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:8px; margin-top:.7em}
.sourcing-buyer-item > .sbp-dd-dl > .sourcing-buyer-button{flex:1 1 0; width:auto; min-width:0; margin:0; padding:.55em .9em; font-size:1rem}
@media (min-width:640px){ .sourcing-buyer-item > .sbp-dd-dl > .sourcing-buyer-button{flex:0 0 auto; min-width:10rem} }
