/* ==========================================================================
   外部伙伴自助门户（portal.html）专用样式
   主题与登录大厅保持一致：深蓝星空 + 玻璃卡片
   ========================================================================== */
.pt-body{background:radial-gradient(1200px 700px at 18% -10%,#0e2f66 0%,#071632 46%,#04091a 100%);
  background-attachment:fixed;min-height:100vh;display:flex;flex-direction:column}
.pt-body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(90,160,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(90,160,255,.05) 1px,transparent 1px);
  background-size:54px 54px;mask-image:radial-gradient(circle at 50% 8%,#000,transparent 72%);
  -webkit-mask-image:radial-gradient(circle at 50% 8%,#000,transparent 72%)}

/* ---------- 顶栏 ---------- */
.pt-top{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 22px;padding-top:calc(env(safe-area-inset-top) + 14px);
  border-bottom:1px solid rgba(140,190,255,.14);backdrop-filter:blur(10px);background:rgba(7,18,40,.55)}
.pt-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;min-width:0}
.pt-mark{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,rgba(60,140,255,.35),rgba(90,220,255,.12));border:1px solid rgba(120,190,255,.5);
  box-shadow:0 0 16px rgba(60,150,255,.4)}
.pt-mark i{width:16px;height:16px;border-radius:50%;display:block;background:radial-gradient(circle at 32% 30%,#9fe6ff,#1b6bd6 70%)}
.pt-brand-txt{display:flex;flex-direction:column;line-height:1.22;min-width:0}
.pt-brand-txt b{font-size:15px;font-weight:800;letter-spacing:.1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:linear-gradient(92deg,#7fd8ff,#4d9bff 60%,#a9e5ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.pt-brand-txt em{font-style:normal;font-size:10.5px;color:#8fa8cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-top-right{position:relative;display:flex;align-items:center;gap:10px;flex-shrink:0}

/* ---------- 语言切换（复用 style.css .lang-switch） ---------- */
@media (max-width:640px){
  .pt-brand-txt em{display:none}
  .pt-top{padding:10px 12px}
}

/* ---------- 认证区 ----------
   2026-09-15 起未登录态改用 style.css 的 .login-view 全球化登录大厅，
   原 .pt-auth / .pt-auth-box / .pt-hero / .pt-card 样式已下线。
   仅保留 ptIn 动画（登录后弹窗 .pt-modal 仍在用）。 ---------- */
@keyframes ptIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.pt-tabs{display:flex;gap:4px;padding:4px;border-radius:12px;background:rgba(255,255,255,.05);
  border:1px solid rgba(140,190,255,.16);margin-bottom:18px}
.pt-tab{flex:1;padding:9px 6px;border:none;background:none;color:#9fb4d6;font-size:13.5px;font-weight:600;
  cursor:pointer;border-radius:9px;transition:.18s;font-family:inherit}
.pt-tab.active{background:linear-gradient(135deg,#2a7ae0,#1b6bd6);color:#fff;box-shadow:0 3px 12px rgba(27,107,214,.45)}

.pt-f{display:flex;flex-direction:column;gap:11px}
.pt-label{font-size:11.5px;color:#8fa8cc;letter-spacing:.03em;margin-bottom:-4px}
.pt-in{width:100%;padding:12px 13px;border-radius:12px;font-size:14px;font-family:inherit;color:#e9effb;
  background:rgba(255,255,255,.055);border:1px solid rgba(140,190,255,.2);transition:.18s}
.pt-in::placeholder{color:#6b83a6}
.pt-in:focus{outline:none;border-color:rgba(90,209,255,.6);background:rgba(255,255,255,.085);box-shadow:0 0 0 3px rgba(77,155,255,.15)}
select.pt-in{cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#8fa8cc 50%),linear-gradient(135deg,#8fa8cc 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
[dir="rtl"] select.pt-in{background-position:17px 50%,12px 50%}
select.pt-in option{background:#0d1c3a;color:#e9effb}
.pt-row{display:flex;gap:10px}.pt-row>*{flex:1;min-width:0}
.pt-tip{font-size:11.5px;color:#7f96b8;line-height:1.6;margin-top:-3px}
.pt-check{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:#9fb4d6;line-height:1.6;cursor:pointer}
.pt-check input{width:15px;height:15px;margin-top:2px;flex-shrink:0;accent-color:#2a7ae0;cursor:pointer}
.pt-submit{width:100%;padding:13px;border:none;border-radius:12px;font-size:15px;font-weight:700;font-family:inherit;
  cursor:pointer;color:#fff;background:linear-gradient(135deg,#1b6bd6,#4d9bff);box-shadow:0 8px 22px rgba(27,107,214,.38);transition:.18s}
.pt-submit:hover{box-shadow:0 12px 28px rgba(27,107,214,.55)}
.pt-submit:disabled{opacity:.6;cursor:not-allowed}
.pt-switch{text-align:center;margin-top:14px;font-size:12.5px;color:#8fa8cc}
.pt-switch b{color:#7fd8ff;cursor:pointer;font-weight:600}
.pt-switch b:hover{text-decoration:underline}
.pt-err{min-height:18px;font-size:12px;color:#ff9a9a;text-align:center}
.pt-ok{font-size:13px;color:#5ad1a0;text-align:center;line-height:1.6;background:rgba(90,222,160,.1);
  border:1px solid rgba(90,222,160,.28);border-radius:12px;padding:12px}

/* 徽章标签（登录后 .pt-lvcard 等级卡使用） */
.pt-tag{font-size:10px;padding:2px 7px;border-radius:7px;background:rgba(90,209,255,.12);
  border:1px solid rgba(90,209,255,.26);color:#7fd8ff;white-space:nowrap}
.pt-tag.g{background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.28);color:#7ee2a8}

/* ---------- 应用区 ---------- */
.pt-app{position:relative;z-index:2;padding:0 0 48px}
.pt-wrap{max-width:1180px;margin:0 auto;padding:0 14px}
.pt-nav{display:flex;gap:6px;overflow-x:auto;padding:12px 14px;max-width:1180px;margin:0 auto;scrollbar-width:none}
.pt-nav::-webkit-scrollbar{display:none}
.pt-nv{flex-shrink:0;padding:8px 15px;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer;
  color:#9fb4d6;background:rgba(255,255,255,.05);border:1px solid rgba(140,190,255,.16);
  transition:.18s;white-space:nowrap;font-family:inherit}
.pt-nv:hover{color:#dceaff;background:rgba(255,255,255,.09)}
.pt-nv.active{background:linear-gradient(135deg,#2a7ae0,#1b6bd6);color:#fff;border-color:transparent;
  box-shadow:0 3px 12px rgba(27,107,214,.42)}

.pt-sec{background:var(--glass);border:1px solid var(--glass-line);border-radius:16px;padding:16px;margin-bottom:14px}
.pt-sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.pt-sec-h h3{font-size:14.5px;font-weight:700;color:#dceaff}
.pt-sec-h p{font-size:11.5px;color:#8fa8cc;margin-top:2px}

/* 等级卡 */
.pt-lvcard{background:linear-gradient(135deg,rgba(42,122,224,.22),rgba(90,209,255,.07));
  border:1px solid rgba(127,216,255,.28);border-radius:16px;padding:16px;margin-bottom:14px}
.pt-lvcard-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pt-lvcard-top b{font-size:17px;color:#fff}
.pt-lvcard-top span{font-size:11.5px;color:#9fc4ee}
.pt-prog{margin-bottom:11px}
.pt-prog-h{display:flex;justify-content:space-between;font-size:11.5px;color:#9fb4d6;margin-bottom:5px}
.pt-prog-h i{font-style:normal;color:#7fd8ff;font-weight:700}
.pt-bar{height:7px;border-radius:6px;background:rgba(255,255,255,.09);overflow:hidden}
.pt-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#1b6bd6,#5ad1ff);transition:width .6s}
.pt-lv-badges{display:flex;flex-wrap:wrap;gap:6px}

/* 统计卡 */
.pt-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.pt-stat{background:var(--glass);border:1px solid var(--glass-line);border-radius:14px;padding:13px;text-align:center}
.pt-stat b{display:block;font-size:19px;font-weight:800;line-height:1.2;color:#fff}
.pt-stat span{display:block;font-size:11px;color:#8fa8cc;margin-top:4px}
.pt-stat.g b{color:#7ee2a8}.pt-stat.b b{color:#7fd8ff}.pt-stat.o b{color:#fbbf24}
@media (max-width:640px){.pt-stats{grid-template-columns:repeat(2,1fr)}}

/* 表格 / 列表 */
.pt-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.pt-tbl th{text-align:left;font-size:11px;color:#7f96b8;font-weight:600;padding:8px 9px;
  border-bottom:1px solid rgba(140,190,255,.16);white-space:nowrap}
.pt-tbl td{padding:9px;border-bottom:1px solid rgba(140,190,255,.08);color:#cfdcf0;vertical-align:middle}
.pt-tbl tr:last-child td{border-bottom:none}
[dir="rtl"] .pt-tbl th{text-align:right}
.pt-empty{text-align:center;padding:26px 10px;color:#7f96b8;font-size:12.5px}

/* 状态标签 */
.pt-st{display:inline-block;padding:2.5px 8px;border-radius:8px;font-size:10.5px;font-weight:600;white-space:nowrap}
.pt-st.new{background:rgba(144,180,255,.14);color:#a8c6ff}
.pt-st.reviewing{background:rgba(251,191,36,.14);color:#fbbf24}
.pt-st.won{background:rgba(74,222,128,.14);color:#7ee2a8}
.pt-st.lost{background:rgba(141,152,165,.16);color:#9aa7b6}
.pt-st.rejected{background:rgba(255,110,110,.14);color:#ff9a9a}
.pt-st.pending{background:rgba(251,191,36,.14);color:#fbbf24}
.pt-st.approved{background:rgba(90,209,255,.14);color:#7fd8ff}
.pt-st.paid{background:rgba(74,222,128,.14);color:#7ee2a8}
.pt-st.active{background:rgba(74,222,128,.14);color:#7ee2a8}
.pt-st.frozen{background:rgba(141,152,165,.16);color:#9aa7b6}

/* 产品网格 */
.pt-filters{display:flex;gap:8px;margin-bottom:13px;flex-wrap:wrap}
.pt-filters .pt-in{flex:1;min-width:150px}
.pt-filters select.pt-in{flex:0 0 auto;min-width:130px}
.pt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
@media (max-width:900px){.pt-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.pt-grid{grid-template-columns:1fr}}
.pt-p{background:rgba(255,255,255,.045);border:1px solid rgba(140,190,255,.16);border-radius:14px;
  padding:13px;display:flex;flex-direction:column;transition:.18s}
.pt-p:hover{border-color:rgba(127,216,255,.42);background:rgba(255,255,255,.07);transform:translateY(-2px)}
.pt-p-cat{display:inline-block;align-self:flex-start;font-size:10px;padding:2px 8px;border-radius:8px;margin-bottom:7px;
  background:rgba(90,209,255,.13);border:1px solid rgba(90,209,255,.26);color:#7fd8ff}
.pt-p b{font-size:13.5px;color:#e9effb;line-height:1.4;margin-bottom:5px;display:block}
.pt-p p{font-size:11.5px;color:#8fa8cc;line-height:1.6;min-height:36px;margin-bottom:9px}
.pt-p-row{display:flex;align-items:baseline;gap:5px;margin-bottom:4px}
.pt-p-price{font-size:17px;font-weight:800;color:#7fd8ff}
.pt-p-cur{font-size:11px;color:#8fa8cc}
.pt-p-meta{font-size:11px;color:#8fa8cc;margin-bottom:9px}
.pt-p-comm{font-size:12px;color:#7ee2a8;margin-bottom:10px;font-weight:600}
.pt-p-acts{display:flex;gap:7px;margin-top:auto}
.pt-btn{flex:1;padding:8px 6px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;
  border:1px solid rgba(140,190,255,.28);background:rgba(255,255,255,.05);color:#cfdcf0;transition:.18s;font-family:inherit}
.pt-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(127,216,255,.5);color:#fff}
.pt-btn.p{background:linear-gradient(135deg,#1b6bd6,#4d9bff);color:#fff;border-color:transparent}
.pt-btn.p:hover{box-shadow:0 6px 16px rgba(27,107,214,.45)}
.pt-btn.s{flex:0 0 auto;padding:8px 12px}

/* 弹窗 */
.pt-mask{position:fixed;inset:0;z-index:60;background:rgba(3,8,20,.7);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:16px}
.pt-modal{width:100%;max-width:440px;max-height:88vh;overflow-y:auto;background:linear-gradient(160deg,rgba(19,32,60,.98),rgba(9,17,38,.99));
  border:1px solid rgba(140,190,255,.24);border-radius:18px;padding:18px;box-shadow:0 30px 70px rgba(0,0,0,.65);
  animation:ptIn .25s ease both}
.pt-modal h3{font-size:16px;color:#e9effb;margin-bottom:4px}
.pt-modal .pt-tip{margin-bottom:12px}
.pt-m-acts{display:flex;gap:9px;margin-top:14px}
.pt-m-acts .pt-btn{padding:11px 6px;font-size:13.5px}

/* Toast */
.pt-toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(20px);z-index:90;
  padding:11px 20px;border-radius:12px;font-size:13px;font-weight:600;pointer-events:none;opacity:0;
  background:rgba(16,32,62,.96);border:1px solid rgba(140,190,255,.3);color:#dceaff;
  box-shadow:0 14px 36px rgba(0,0,0,.5);transition:.25s;max-width:88vw;text-align:center}
.pt-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.pt-toast.err{border-color:rgba(255,110,110,.45);color:#ffb3b3}
.pt-toast.ok{border-color:rgba(74,222,128,.45);color:#9df0c4}

/* 资料页 */
.pt-kv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(140,190,255,.09);font-size:12.5px}
.pt-kv:last-child{border-bottom:none}
.pt-kv span{color:#8fa8cc;flex-shrink:0}
.pt-kv b{color:#cfdcf0;font-weight:600;text-align:right;word-break:break-word}
.pt-privacy{margin-top:14px;font-size:11.5px;color:#7f96b8;line-height:1.7;padding:11px;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid rgba(140,190,255,.13)}

/* 用户 chip */
.pt-user{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#cfdcf0;
  padding:6px 11px;border-radius:11px;background:rgba(255,255,255,.055);border:1px solid rgba(140,190,255,.18)}
.pt-user .pt-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 7px #4ade80}
.pt-out{background:none;border:none;color:#8fa8cc;font-size:12px;cursor:pointer;padding:6px 4px;font-family:inherit}
.pt-out:hover{color:#ff9a9a}
@media (max-width:640px){.pt-user span{display:none}}

/* ==========================================================================
   全球化登录大厅（未登录态）
   结构复用 style.css 的 .login-view / .lobby-* / .login-card / .lc-*，
   本节点只做门户侧的尺寸与控件观感微调。
   ========================================================================== */

/* 大厅容器：顶栏为常驻元素，让出高度后由大厅撑满剩余视口 */
#ptAuth.login-view{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden}
/* 背景层锁定首屏高度，内容超长滚动时不会把地球拉伸变形 */
#ptAuth .globe-canvas,
#ptAuth .lobby-grid,
#ptAuth .lobby-vignette{height:100vh;min-height:560px}

/* 顶栏在登录大厅里透明化（顶栏常驻，不随 #ptAuth 隐藏） */
body.pt-lobby .pt-top{background:transparent;border-bottom-color:transparent;
  backdrop-filter:none;-webkit-backdrop-filter:none}
body.pt-lobby .pt-brand-txt b{font-size:16px;letter-spacing:.14em}
/* 大厅自带网格，去掉 body 的重复网格层 */
body.pt-lobby::after{display:none}

/* 卡片：注册表单字段较多，略宽于内部 CRM 的 392px */
.pt-body .lobby-card-wrap{max-width:424px}

/* 卡片内表单：统一到登录大厅的控件观感。
   注意 .login-card input（权重 0,1,1）会盖掉 .pt-in（0,1,0），此处用更高权重显式覆盖 */
.pt-login-card{padding:28px 26px 18px}
.pt-login-card .pt-f{gap:11px}
.pt-login-card .pt-f .pt-in{width:100%;padding:12px 14px;border-radius:11px;font-size:15px;
  margin:0;font-family:inherit;color:#eaf2ff;transition:.18s;
  background:rgba(255,255,255,.055);border:1px solid rgba(140,190,255,.20)}
.pt-login-card .pt-f .pt-in::placeholder{color:#7d92b3}
.pt-login-card .pt-f .pt-in:focus{outline:none;border-color:rgba(127,216,255,.65);
  background:rgba(255,255,255,.09);box-shadow:0 0 0 3px rgba(77,155,255,.16)}
.pt-login-card select.pt-in{margin-bottom:6px}
.pt-login-card .pt-label{color:#93a6c4;font-size:12px}
.pt-login-card .pt-tip{color:#6f86a8}
.pt-login-card .pt-row{gap:10px}

/* 复选框：抵消 .login-card input 的通用输入框样式（权重需高于 0,1,1） */
.pt-login-card .pt-check{color:#93a6c4;font-size:12.5px;line-height:1.65}
.pt-login-card .pt-check input[type="checkbox"]{appearance:none;-webkit-appearance:none;
  width:16px;height:16px;flex-shrink:0;padding:0;margin:2px 0 0;border-radius:5px;position:relative;
  border:1px solid rgba(140,190,255,.35);background:rgba(255,255,255,.05);cursor:pointer;transition:.18s}
.pt-login-card .pt-check input[type="checkbox"]:checked{
  background:linear-gradient(140deg,#1b6bd6,#4d9bff);border-color:#2a7ae0}
.pt-login-card .pt-check input[type="checkbox"]:checked::after{content:"";position:absolute;
  left:5px;top:1.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}

/* 主按钮：对齐登录大厅 */
.pt-login-card .pt-submit{width:100%;padding:13px;margin-top:2px;font-size:16px;font-weight:700;
  letter-spacing:.14em;border-radius:12px;border:none;color:#fff;cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(94deg,#1b6bd6,#2a8bf0 45%,#4d9bff);
  box-shadow:0 8px 24px rgba(27,107,214,.42),inset 0 1px 0 rgba(255,255,255,.22);transition:.2s}
.pt-login-card .pt-submit:hover{transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(27,107,214,.55),inset 0 1px 0 rgba(255,255,255,.3)}
.pt-login-card .pt-submit:active{transform:translateY(0) scale(.995)}
.pt-login-card .pt-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.pt-login-card .pt-submit::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);
  animation:btnSheen 3.6s ease-in-out infinite}

/* 登录 / 注册分段控件 */
.pt-login-card .pt-tabs{padding:4px;border-radius:12px;margin-bottom:18px;
  background:rgba(255,255,255,.055);border:1px solid rgba(140,190,255,.18)}
.pt-login-card .pt-tab{font-size:13.5px;padding:9px 6px;border-radius:9px}

/* 错误提示与底部切换 */
.pt-login-card .pt-err{color:#ff9a9a}
.pt-login-card .pt-switch{color:#93a6c4;margin-top:2px}
.pt-login-card .pt-ok{margin-top:2px!important}

/* 小屏 */
@media (max-width:899px){
  .pt-body .lobby-card-wrap{max-width:460px;margin:0 auto}
  .pt-login-card{padding:24px 20px 16px}
}


/* ==========================================================================
   P1：产品详情 / 物料 / 报价单
   只补新组件；颜色、圆角、玻璃质感全部沿用上面的既有变量与写法，
   避免门户出现两套视觉语言。
   ========================================================================== */

/* 提示条与橙色标签 */
.pt-warn{margin:10px 0;padding:10px 12px;border-radius:11px;font-size:12px;line-height:1.65;
  background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);color:#fbbf24}
.pt-tag.o{background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.28);color:#fbbf24}
.pt-g{color:#7ee2a8}
.pt-sup{font-size:11px;color:#7f96b8;font-weight:400;margin-left:6px}

/* 返回条 */
.pt-back{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.pt-back .pt-btn.s{flex:0 0 auto;padding:7px 12px}

/* 产品详情头 */
.pt-d-head{display:flex;gap:14px;align-items:flex-start}
.pt-d-head-txt{flex:1;min-width:0}
.pt-d-head-txt h2{font-size:19px;font-weight:800;color:#fff;line-height:1.35;margin:5px 0 6px}
.pt-d-head-txt>p{font-size:12.5px;color:#8fa8cc;line-height:1.65;margin-bottom:10px}
.pt-d-cover{flex:0 0 190px;max-width:190px;border-radius:13px;overflow:hidden;
  border:1px solid rgba(140,190,255,.2);background:rgba(255,255,255,.04)}
.pt-d-cover img{display:block;width:100%;height:auto}
.pt-d-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;color:#8fa8cc;margin-bottom:9px}
.pt-d-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.pt-d-acts .pt-btn{flex:0 0 auto;padding:10px 16px}

/* 卖点 / 说明 / 规格 */
.pt-pts{margin:0;padding:0;list-style:none}
.pt-pts li{position:relative;padding:7px 0 7px 20px;font-size:12.5px;color:#cfdcf0;line-height:1.65;
  border-bottom:1px solid rgba(140,190,255,.08)}
.pt-pts li:last-child{border-bottom:none}
.pt-pts li::before{content:"";position:absolute;left:4px;top:14px;width:6px;height:6px;border-radius:50%;
  background:linear-gradient(135deg,#5ad1ff,#1b6bd6)}
.pt-desc{font-size:12.5px;color:#cfdcf0;line-height:1.8}
.pt-spec th{width:36%;color:#8fa8cc;font-weight:600;font-size:12px;padding:8px 9px;
  border-bottom:1px solid rgba(140,190,255,.08);vertical-align:top;text-align:left}

/* 物料列表 */
.pt-a{display:flex;align-items:center;gap:11px;padding:10px 0;
  border-bottom:1px solid rgba(140,190,255,.08)}
.pt-a:last-child{border-bottom:none}
.pt-a-thumb{flex:0 0 58px;width:58px;height:58px;border-radius:10px;overflow:hidden;
  border:1px solid rgba(140,190,255,.2);background:rgba(255,255,255,.04);display:block}
.pt-a-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.pt-a-info{flex:1;min-width:0}
.pt-a-info b{display:block;font-size:12.5px;color:#e9effb;line-height:1.45;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-a-info span{display:block;font-size:11px;color:#7f96b8;margin-top:3px}
.pt-a .pt-btn.s{flex:0 0 auto;padding:8px 13px;text-decoration:none;display:inline-block;text-align:center}

/* 产品卡封面 */
.pt-p-img{margin:-2px -2px 9px;border-radius:11px;overflow:hidden;border:1px solid rgba(140,190,255,.16);
  background:rgba(255,255,255,.04)}
.pt-p-img img{display:block;width:100%;height:118px;object-fit:cover}

/* 表格横向滚动（报价单明细在窄屏会超宽） */
.pt-tbl-wrap{overflow-x:auto}
.pt-tbl-wrap .pt-tbl{min-width:520px}

/* 报价单金额汇总 */
.pt-sums{margin-top:13px;border-top:1px solid rgba(140,190,255,.12);padding-top:5px}
.pt-sums .pt-kv{padding:7px 0}
.pt-kv.tot{border-bottom:none;margin-top:4px;padding-top:10px;
  border-top:1px solid rgba(140,190,255,.2)}
.pt-kv.tot span{color:#cfdcf0;font-weight:600}
.pt-kv.tot b{font-size:17px;color:#7fd8ff;font-weight:800}

/* 报价单详情头 */
.pt-q-head{margin-bottom:4px}
.pt-q-head h2{font-size:18px;font-weight:800;color:#fff;letter-spacing:.02em}
.pt-q-head>p{font-size:12.5px;color:#8fa8cc;margin-top:5px}

/* 事件时间线 */
.pt-ev{display:flex;flex-wrap:wrap;gap:4px 10px;padding:9px 0;font-size:12px;
  border-bottom:1px solid rgba(140,190,255,.08)}
.pt-ev:last-child{border-bottom:none}
.pt-ev-d{flex:0 0 118px;color:#7f96b8;font-size:11px}
.pt-ev b{color:#dceaff;font-weight:600}
.pt-ev-a{color:#7fd8ff}
.pt-ev-t{flex:1 1 100%;color:#8fa8cc;font-size:11.5px;line-height:1.6}

/* 表单内的小输入与删除按钮 */
.pt-in.mini{padding:7px 8px;border-radius:9px;font-size:12.5px;width:88px}
.pt-del{width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:15px;line-height:1;
  color:#ff9a9a;background:rgba(255,110,110,.1);border:1px solid rgba(255,110,110,.3);font-family:inherit}
.pt-del:hover{background:rgba(255,110,110,.2);color:#fff}
.pt-mask .pt-modal.wide{max-width:760px}
.pt-mask .pt-modal.wide .pt-tbl td,.pt-mask .pt-modal.wide .pt-tbl th{padding:7px 8px}

/* ============================================================================
   P2：订单 / 回款 / 佣金 / 结算 样式（门户侧）
   全部复用门户既有的 .pt-* 组件，这里只补三个缺口：
   ① .pt-sums/.pt-kv 在多列时换行  ② 进度条 ③ 详情页返回条
   不新造皮肤 —— 门户是给伙伴看的，视觉一致性优先于局部美观。
   ============================================================================ */

/* 汇总卡：3~4 个数字横排，窄屏自动折行 */
.pt-sums{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 12px}
.pt-kv{flex:1 1 140px;min-width:120px;padding:9px 11px;border-radius:9px;
  background:rgba(140,190,255,.05);border:1px solid rgba(140,190,255,.12)}
.pt-kv span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.pt-kv b{font-size:15px;font-weight:600}
.pt-kv.tot{background:rgba(90,200,140,.07);border-color:rgba(90,200,140,.22)}
.pt-g{color:var(--green)}

/* 详情页顶部：返回 + 状态 + 模式标签 一行排开 */
.pt-back{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pt-back .pt-btn{flex:0 0 auto}
.pt-d-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin-top:6px}
.pt-d-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pt-d-acts .pt-btn{flex:0 0 auto}

/* 表格：小屏可横向滚动而不是压扁 */
.pt-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pt-tbl td,.pt-tbl th{white-space:nowrap}
.pt-tbl td:first-child,.pt-tbl th:first-child{white-space:normal}

/* 副行文字（单号下的小字、状态下的解锁日等） */
.pt-sup{font-size:11px;color:var(--muted)}
.pt-tip{padding:9px 11px;border-radius:9px;font-size:12px;line-height:1.7;color:var(--muted);
  background:rgba(140,190,255,.05);border:1px solid rgba(140,190,255,.12);margin:6px 0}
.pt-empty{padding:22px 12px;text-align:center;color:var(--muted);font-size:13px}

/* 状态徽标：门户已有 .pt-st 基类，这里只补两个语义色 */
.pt-st.ok{color:var(--green);border-color:rgba(90,200,140,.35);background:rgba(90,200,140,.08)}
.pt-st.bad{color:#ff9a9a;border-color:rgba(255,110,110,.35);background:rgba(255,110,110,.08)}
.pt-st.mid{color:#ffd479;border-color:rgba(255,200,80,.35);background:rgba(255,200,80,.08)}

/* 佣金页的台账卡：与「可认领成交」视觉同级，但用左侧色条区分口径 */
#ptLedger{border-left:2px solid rgba(90,200,140,.4);padding-left:10px}

/* 小屏：详情头改纵向堆叠 */
@media (max-width:560px){
  .pt-d-head{flex-direction:column}
  .pt-d-cover{flex:none;max-width:100%;width:100%}
  .pt-d-cover img{max-height:210px;object-fit:cover}
  .pt-d-acts .pt-btn{flex:1 1 auto}
  .pt-ev-d{flex:1 1 100%}
}

