/* ============================================================
   平台授权中心 · 文字排版与模块布局层
   ----------
   排版基准参考 beacon.iyunci.cn 的 B 端层级：
   - 正文 13–14px / 行高 1.55–1.65，标题先分级、说明再降级
   - 主文字 #e8ecf6 / 次文字 #9aa4bd / 弱提示 #6b7590
   - 卡片标题 15px·700，区块说明 12.5px·#6b7590，徽章 11px·600
   仅作用于平台授权页(.pa-area)，不影响其它模块。
   ============================================================ */

.pa-area{min-width:0}
.pa-area .card{min-width:0}
.pa-area .card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px 22px;
  flex-wrap:wrap;
  padding:17px 22px;
}
.pa-area .card-head>div:first-child{min-width:0;flex:1 1 320px}
.pa-area .card-title{
  font-size:15px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.15px;
}
.pa-area .card-sub{
  margin-top:5px;
  font-size:13px;
  line-height:1.65;
  color:var(--p-ink-3,#6b7590);
  display:block;
  -webkit-line-clamp:unset;
}
.pa-area .card-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  flex:none;
}
.pa-area .pa-body{padding:20px 22px}
.pa-area .card + .card{margin-top:16px}
.pa-area .pa-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:center;
  margin-bottom:12px;
}
.pa-area .pa-tool{
  min-width:150px;
  flex:0 1 200px;
  padding:7px 10px;
  font-size:13px;
  color:var(--p-ink-2,#9aa4bd);
  background:rgba(255,255,255,.04);
  border:1px solid var(--p-line,rgba(120,140,200,.22));
  border-radius:8px;
  outline:none;
}
.pa-area .pa-tool:focus{border-color:var(--p-brand,#6d8bff)}
.pa-area .pa-tool.pa-search{flex:1 1 220px;min-width:180px}
.pa-area .pa-filter-count{font-size:12px;color:var(--p-ink-3,#6b7590);white-space:nowrap}

/* ---- 区块导语 ---- */
.pa-area .pa-kpis{margin-bottom:18px}
.pa-area .pa-kpis .grid{gap:14px}
.pa-area .pa-lead{
  margin:12px 2px 0;
  font-size:13px;
  line-height:1.7;
  color:var(--p-ink-3,#6b7590);
}

/* ---- 表单：标签在上、输入在下，间距稳定 ---- */
.pa-area .pa-field-row{
  display:flex;
  align-items:flex-end;
  gap:14px;
  flex-wrap:wrap;
}
.pa-area .pa-field{flex:1 1 380px;min-width:230px;display:flex;flex-direction:column;gap:6px}
.pa-area .pa-field label{
  font-size:13px;
  font-weight:600;
  color:var(--p-ink-2,#9aa4bd);
}
.pa-area .pa-field input,
.pa-area .dy-form-grid input{
  width:100%;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.14);
  border-radius:11px;
  color:var(--p-ink,#e8ecf6);
  font-size:14px;
  padding:9px 12px;
  outline:none;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.pa-area .pa-field input:focus,
.pa-area .dy-form-grid input:focus{
  border-color:var(--p-brand,#6d8bff);
  background:rgba(109,139,255,.08);
  box-shadow:0 0 0 3px rgba(109,139,255,.18);
}
.pa-area .pa-field input::placeholder,
.pa-area .dy-form-grid input::placeholder{color:var(--p-ink-3,#6b7590)}
.pa-area .dy-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:12px 16px;
  align-items:end;
}
.pa-area .dy-form-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:var(--p-ink-2,#9aa4bd);
}

/* ---- 按钮组 ---- */
.pa-area .pa-form-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  flex:none;
}
.pa-area .pa-action-row{
  display:flex;
  align-items:center;
  gap:8px 14px;
  flex-wrap:wrap;
  margin-top:12px;
}

/* ---- 回调 / Webhook 地址行 ---- */
.pa-area .pa-url-block{margin-top:16px;padding-top:15px;border-top:1px solid rgba(255,255,255,.07)}
.pa-area .pa-url-block + .pa-verify-panel{margin-top:4px}
.pa-area .dy-url-row{
  display:grid;
  grid-template-columns:108px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin:7px 0;
}
.pa-area .dy-url-label{
  font-size:13px;
  font-weight:600;
  color:var(--p-ink-2,#9aa4bd);
  white-space:nowrap;
}
.pa-area .dy-url{
  display:inline-block;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;
  line-height:1.6;
  color:var(--p-ink,#e8ecf6);
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  border-radius:9px;
  padding:6px 10px;
}
.pa-area .dy-url-hint,
.pa-area .pa-hint{
  font-size:12px;
  color:var(--p-ink-3,#6b7590);
  line-height:1.6;
}
.pa-area .pa-jsbridge-hint{font-size:12px;color:var(--p-ink-3,#6b7590)}

/* ---- 事件订阅 ---- */
.pa-area .pa-event-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px 18px;
  flex-wrap:wrap;
  margin-bottom:6px;
}
.pa-area .pa-enabled-toggle{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  font-weight:600;
  color:var(--p-ink,#e8ecf6);
  cursor:pointer;
}
.pa-area .dy-scope-list{
  display:flex;
  flex-wrap:wrap;
  gap:5px 16px;
  margin-top:10px;
}
.pa-area .dy-scope{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  line-height:1.55;
  color:var(--p-ink-2,#9aa4bd);
  cursor:pointer;
}
.pa-area .dy-scope input{accent-color:var(--p-brand,#6d8bff);width:auto}
.pa-area .dy-scope-note{
  margin-top:8px;
  font-size:12px;
  line-height:1.65;
  color:var(--p-warn,#d9a75b);
  max-width:760px;
}

/* ---- 状态摘要（改成词条式，不再是长句连排） ---- */
.pa-area .pa-status-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px 22px;
  align-items:center;
  margin-top:14px;
  padding:11px 14px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
}
.pa-area .pa-status-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:24px;
}
.pa-area .pa-status-label{
  font-size:12px;
  color:var(--p-ink-3,#6b7590);
  white-space:nowrap;
}
.pa-area .pa-status-val{
  font-size:13px;
  font-weight:600;
  color:var(--p-ink,#e8ecf6);
  font-variant-numeric:tabular-nums;
}
.pa-area .pa-time{font-size:12px;color:var(--p-ink-3,#6b7590);white-space:nowrap}
.pa-area .pa-error-line{
  margin-top:8px;
  font-size:12px;
  line-height:1.6;
  color:#fca5a5;
}

/* ---- 验证结果面板 ---- */
.pa-area .pa-verify-panel{
  display:none;
  margin-top:14px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  overflow:hidden;
}
.pa-area .pa-verify-panel.show{display:block}
.pa-area .pa-verify-panel.show.ok{border-color:rgba(18,183,106,.35)}
.pa-area .pa-verify-panel.show.pending{border-color:rgba(240,173,78,.35)}
.pa-area .pa-verify-panel.show.fail{border-color:rgba(240,68,56,.4)}
.pa-area .pa-verify-head{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:12px 16px;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:13px;
  font-weight:700;
}
.pa-area .pa-verify-head .badge{margin-left:auto}
.pa-area .pa-verify-list{padding:8px 16px 12px}
.pa-area .pa-verify-item{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:8px 0;
  font-size:13px;
  line-height:1.6;
  color:var(--p-ink-2,#9aa4bd);
}
.pa-area .pa-verify-item + .pa-verify-item{border-top:1px solid rgba(255,255,255,.06)}
.pa-area .pa-verify-mark{flex:none;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;margin-top:2px}
.pa-area .pa-verify-mark.ok{background:rgba(18,183,106,.16);color:#7ee2b3}
.pa-area .pa-verify-mark.warn{background:rgba(240,173,78,.16);color:#fcd68a}
.pa-area .pa-verify-mark.fail{background:rgba(240,68,56,.16);color:#fca5a5}
.pa-area .pa-verify-desc{min-width:0;overflow-wrap:anywhere}
.pa-area .pa-verify-desc b{color:var(--p-ink,#e8ecf6);font-weight:650}
.pa-area .pa-verify-desc .pa-time{color:var(--p-ink-3,#6b7590);font-size:12px;margin-left:6px}
.pa-area .pa-verify-note{
  padding:10px 16px 12px;
  font-size:12px;
  line-height:1.7;
  color:var(--p-ink-3,#6b7590);
  background:rgba(109,139,255,.05);
  border-top:1px solid rgba(109,139,255,.16);
}
.pa-area .pa-verify-item code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;
  color:var(--p-brand,#a5b8ff);
  background:rgba(109,139,255,.08);
  border-radius:6px;
  padding:1px 5px;
  overflow-wrap:anywhere;
}

/* ---- 表格包裹 ---- */
.pa-area .pa-table-scroll{
  overflow-x:auto;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:rgba(255,255,255,.018);
}
.pa-area .table{margin-top:0}
.pa-area .table th{
  background:rgba(255,255,255,.035);
  color:var(--p-ink-3,#9aa4bd);
  font-size:12px;
  font-weight:700;
  letter-spacing:.3px;
  white-space:nowrap;
}
.pa-area .table td{color:var(--p-ink-2,#c6cede);font-size:13px;line-height:1.55}
.pa-area .pa-empty{
  padding:26px 16px;
  text-align:center;
  color:var(--p-ink-3,#6b7590);
  font-size:13px;
  line-height:1.7;
}
.pa-area .dy-meta{font-size:12px;color:var(--p-ink-3,#8e99b3);max-width:360px;line-height:1.6}
.pa-area .dy-actions{white-space:nowrap}

/* ---- 使用步骤（结构化，不再整段文字堆砌） ---- */
.pa-area .pa-guide{padding-bottom:6px}
.pa-area .pa-steps{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.pa-area .pa-step{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:4px 12px;
  padding:6px 0;
}
.pa-area .pa-step-no{
  width:22px;
  height:22px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(109,139,255,.85),rgba(167,139,250,.85));
  color:#fff;
  font-size:12px;
  font-weight:800;
  margin-top:2px;
}
.pa-area .pa-step-title{font-size:13px;font-weight:650;color:var(--p-ink,#e8ecf6);line-height:1.55}
.pa-area .pa-step-desc{font-size:13px;color:var(--p-ink-2,#9aa4bd);line-height:1.7;margin-top:2px;overflow-wrap:anywhere}
.pa-area .pa-step-desc code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;
  color:var(--p-brand,#a5b8ff);
  background:rgba(109,139,255,.08);
  border-radius:6px;
  padding:1px 5px;
}
.pa-area .pa-block-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin:18px 0 8px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
  font-size:13px;
  font-weight:700;
  color:var(--p-ink,#e8ecf6);
}
.pa-area .pa-guide-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
  padding:0;
}
.pa-area .pa-guide-list li{
  position:relative;
  padding-left:18px;
  font-size:13px;
  line-height:1.7;
  color:var(--p-ink-2,#9aa4bd);
}
.pa-area .pa-guide-list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:10px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--p-brand,#6d8bff);
  box-shadow:0 0 8px rgba(109,139,255,.8);
}
.pa-area .pa-guide-list li.warn::before{background:#fcd68a;box-shadow:0 0 8px rgba(240,173,78,.7)}

/* ---- 平台 Tab ---- */
.pa-area .pa-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:18px;
}
.pa-area .pa-tab{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:11px;
  background:rgba(255,255,255,.04);
  color:var(--p-ink-2,#9aa4bd);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:all .15s;
}
.pa-area .pa-tab:hover{border-color:rgba(255,255,255,.24);color:var(--p-ink,#e8ecf6)}
.pa-area .pa-tab.active{
  background:linear-gradient(135deg,rgba(109,139,255,.9),rgba(167,139,250,.9));
  border-color:transparent;
  color:#fff;
  box-shadow:0 8px 22px -8px rgba(109,139,255,.65);
}
.pa-area .pa-tab-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}

/* ---- 手动录入表单 ---- */
.pa-area .manual-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px 16px;
}
.pa-area .manual-form-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:var(--p-ink-2,#9aa4bd);
}

/* 小屏 */
@media(max-width:900px){
  .pa-area .dy-url-row{grid-template-columns:1fr;gap:6px}
  .pa-area .dy-url-row .btn{justify-self:start}
  .pa-area .card-head{flex-direction:column}
  .pa-area .card-actions{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .pa-area .card,.pa-area .pa-tab,.pa-area .pa-verify-panel{transition:none;animation:none}
}

/* ---- 抖音两类授权说明（小程序 / 网页·移动应用 OAuth；作用域仅限 .pa-auth-notice，不影响其它模块） ---- */
.pa-area .pa-auth-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:14px}
.pa-area .pa-auth-block{min-width:0;padding:14px 15px 15px;border-radius:14px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.09);border-top:3px solid var(--pa-accent,#6d8bff)}
.pa-area .pa-auth-block.is-mini{--pa-accent:#25c2a0}
.pa-area .pa-auth-block.is-web{--pa-accent:#6d8bff}
.pa-area .pa-auth-type{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700;letter-spacing:.3px;color:#08101f;background:var(--pa-accent,#6d8bff)}
.pa-area .pa-auth-block-title{margin-top:9px;font-size:14px;font-weight:700;line-height:1.5;color:var(--p-ink,#e8ecf6)}
.pa-area .pa-auth-block-desc{margin-top:5px;font-size:13px;line-height:1.7;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .pa-auth-list{list-style:none;display:flex;flex-direction:column;gap:7px;margin:12px 0 0;padding:0}
.pa-area .pa-auth-list li{position:relative;padding-left:14px;font-size:13px;line-height:1.72;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .pa-auth-list li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--pa-accent,#6d8bff)}
.pa-area .pa-auth-list li.is-derived{color:var(--p-ink,#dbe2f2)}
.pa-area .pa-auth-block code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:600;color:#cfe0ff;background:rgba(109,139,255,.13);border:1px solid rgba(109,139,255,.22);border-radius:6px;padding:1px 6px;overflow-wrap:anywhere;word-break:break-all}
.pa-area .pa-auth-list li code{display:inline-block;margin-right:6px}
.pa-area .pa-auth-block.is-mini code{color:#bdf3e6;background:rgba(37,194,160,.14);border-color:rgba(37,194,160,.26)}
.pa-area .pa-auth-purpose{margin-top:13px;padding:11px 13px;border-radius:12px;background:rgba(37,194,160,.07);border:1px solid rgba(37,194,160,.24)}
.pa-area .pa-auth-purpose-label{margin-bottom:5px;font-size:12px;font-weight:700;letter-spacing:.4px;color:#7fe0c8}
.pa-area .pa-auth-purpose-text{font-size:13px;line-height:1.8;color:var(--p-ink,#e8ecf6);overflow-wrap:anywhere}
.pa-area .pa-auth-mix-note{margin-top:13px;padding:11px 13px;border-radius:12px;background:rgba(109,139,255,.07);border:1px dashed rgba(109,139,255,.32);font-size:13px;line-height:1.7;color:var(--p-ink-2,#c6cede);overflow-wrap:anywhere}
.pa-area .pa-auth-foot{margin-top:13px;padding-top:11px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;line-height:1.65;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
/* 说明卡片内副标题提到 --p-ink-2，保证对比度 >=4.5（仅作用于本卡片） */
.pa-area .pa-auth-notice .card-sub{color:var(--p-ink-2,#9aa4bd)}

/* ============================================================
   抖音应用配置：两类独立入口（2026-09-10 · R8）
   与上方「两类授权说明」同色系：小程序=青绿 #25c2a0，网页/移动应用=蓝紫 #6d8bff
   作用域仅限 .pa-area
   ============================================================ */
.pa-area .dy-type-switch{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;margin-bottom:12px}
.pa-area .dy-type-card{
  --dy-accent:#6d8bff;--dy-tint:rgba(109,139,255,.10);--dy-ring:rgba(109,139,255,.30);
  display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 13px;
  border:1px solid rgba(255,255,255,.10);border-left:4px solid rgba(255,255,255,.16);
  border-radius:12px;background:rgba(255,255,255,.03);color:var(--p-ink-2,#9aa4bd);
  text-align:left;font-family:inherit;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.pa-area .dy-type-card.is-mini{--dy-accent:#25c2a0;--dy-tint:rgba(37,194,160,.10);--dy-ring:rgba(37,194,160,.30)}
.pa-area .dy-type-card.is-web{--dy-accent:#6d8bff;--dy-tint:rgba(109,139,255,.10);--dy-ring:rgba(109,139,255,.30)}
.pa-area .dy-type-card:hover{background:rgba(255,255,255,.055)}
.pa-area .dy-type-card.active{border-color:var(--dy-accent);border-left-color:var(--dy-accent);background:var(--dy-tint);box-shadow:0 0 0 1px var(--dy-ring)}
.pa-area .dy-type-card:focus-visible{outline:2px solid var(--dy-accent);outline-offset:2px}
.pa-area .dy-type-badge{align-self:flex-start;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700;letter-spacing:.3px;background:rgba(255,255,255,.10);color:var(--p-ink,#e8ecf6)}
.pa-area .dy-type-card.active .dy-type-badge{background:var(--dy-accent);color:#08101f}
.pa-area .dy-type-title{font-size:14px;font-weight:650;line-height:1.5;color:var(--p-ink,#e8ecf6);overflow-wrap:anywhere}
.pa-area .dy-type-sub{font-size:12px;line-height:1.6;color:var(--p-ink-2,#8a94ad);overflow-wrap:anywhere}
.pa-area .dy-type-mark{align-self:flex-start;font-size:11px;font-weight:600;color:var(--dy-accent)}
.pa-area .dy-type-state{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px}
.pa-area .dy-type-state-chip{padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--p-ink,#e8ecf6)}
.pa-area .dy-type-state-chip.is-mini{border-color:rgba(37,194,160,.45);color:#8ee9d5}
.pa-area .dy-type-state-chip.is-web{border-color:rgba(109,139,255,.45);color:#b9c8ff}
.pa-area .dy-type-state-hint{font-size:12px;line-height:1.6;color:var(--p-ink-2,#8a94ad)}
.pa-area .dy-type-chip{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:700}
.pa-area .dy-type-chip.is-mini{background:rgba(37,194,160,.14);border:1px solid rgba(37,194,160,.38);color:#8ee9d5}
.pa-area .dy-type-chip.is-web{background:rgba(109,139,255,.14);border:1px solid rgba(109,139,255,.38);color:#b9c8ff}
.pa-area .dy-scope-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:14px}
.pa-area .dy-scope-row-label{font-size:13px;font-weight:600;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-scope-row-hint{font-size:12px;line-height:1.6;color:var(--p-ink-2,#8a94ad)}

/* ============================================================
   抖音授权页二级导航与模块 / 小程序服务器域名（2026-09-10 · R9）
   作用域仅限 .pa-area
   ============================================================ */
.pa-area .pa-modbar{margin-bottom:14px}
.pa-area .pa-modtabs{display:flex;flex-wrap:wrap;gap:8px}
.pa-area .pa-mod{
  display:inline-flex;align-items:center;gap:8px;padding:8px 12px;
  border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.04);
  color:var(--p-ink-2,#9aa4bd);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;
}
.pa-area .pa-mod:hover{border-color:rgba(255,255,255,.24);color:var(--p-ink,#e8ecf6)}
.pa-area .pa-mod:focus-visible{outline:2px solid var(--p-brand,#6d8bff);outline-offset:2px}
.pa-area .pa-mod.active{background:linear-gradient(135deg,rgba(109,139,255,.9),rgba(167,139,250,.9));border-color:transparent;color:#fff;box-shadow:0 8px 22px -10px rgba(109,139,255,.65)}
.pa-area .pa-mod .badge{font-size:11px}
.pa-area .pa-mod.active .badge{background:rgba(255,255,255,.22);color:#fff}
.pa-area .pa-modhint{margin-top:8px;font-size:12px;line-height:1.6;color:var(--p-ink-2,#8a94ad)}

.pa-area .dy-srv-list{display:flex;flex-direction:column;gap:10px}
.pa-area .dy-srv-row{padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-left:4px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.03)}
.pa-area .dy-srv-row.is-used{border-left-color:#25c2a0}
.pa-area .dy-srv-row.is-todo{border-left-color:#6d8bff}
.pa-area .dy-srv-empty{font-size:12px;color:var(--p-ink-3,#8a94ad);font-style:italic}
.pa-area .dy-srv-go{margin-top:6px;font-size:12px;line-height:1.6;color:var(--p-ink-3,#8a94ad);overflow-wrap:anywhere}
.pa-area .dy-tech{margin-top:10px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(255,255,255,.02)}
.pa-area .dy-tech>summary{cursor:pointer;padding:9px 12px;font-size:12px;font-weight:650;color:var(--p-ink-2,#9aa4bd);list-style:none}
.pa-area .dy-tech>summary::-webkit-details-marker{display:none}
.pa-area .dy-tech>summary::before{content:"▸ ";color:#8a94ad}
.pa-area .dy-tech[open]>summary::before{content:"▾ "}
.pa-area .dy-tech>ul{padding:0 14px 10px 16px}
.pa-area .dy-srv-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pa-area .dy-srv-name{font-size:13px;font-weight:650;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-srv-value{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.pa-area .dy-srv-value code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;
  color:#bdf3e6;background:rgba(37,194,160,.12);border:1px solid rgba(37,194,160,.26);
  border-radius:7px;padding:3px 8px;overflow-wrap:anywhere;word-break:break-all;
}
.pa-area .dy-srv-note{margin-top:7px;font-size:12px;line-height:1.65;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-example{margin-top:6px;padding:11px 13px;border:1px dashed rgba(240,173,78,.35);border-radius:12px;background:rgba(240,173,78,.06)}
.pa-area .dy-example-tag{font-size:12px;font-weight:700;color:#fcd68a;margin-bottom:6px}
.pa-area .dy-example-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;line-height:1.7;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-example-row>span{min-width:86px;color:var(--p-ink-3,#8a94ad)}
.pa-area .dy-example-row code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;
  color:#fcd68a;background:rgba(240,173,78,.10);border:1px solid rgba(240,173,78,.28);
  border-radius:6px;padding:1px 6px;overflow-wrap:anywhere;word-break:break-all;
}
@media(max-width:768px){
  .pa-area .pa-mod{padding:7px 10px;font-size:12px}
  .pa-area .pa-mod .badge{display:none}
}

/* 移动端：模块内操作行不横向溢出（R9 追加，仅 ≤768px） */
@media(max-width:768px){
  .pa-area .pa-event-head{align-items:flex-start}
  .pa-area .pa-event-head > .pa-form-actions,
  .pa-area .pa-form-actions{flex:1 1 100%;max-width:100%}
  .pa-area .pa-card > .card-head > .card-actions{flex:1 1 100%;max-width:100%}
}

/* ============================================================
   R12：保存结果横幅 + 基础凭据状态块 + 小程序签名密钥分组
   作用域限定 .pa-area，不影响其它页面；全部使用既有暗色变量
   ============================================================ */
.pa-area .dy-group-head{margin:14px 0 8px;font-size:13px;font-weight:750;letter-spacing:.3px;color:var(--p-ink,#e8ecf6);padding-left:9px;border-left:3px solid #6d8bff}
.pa-area .dy-save-banner{margin:10px 0 0;padding:11px 13px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);font-size:13px;line-height:1.7;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-save-banner.is-ok{border-color:rgba(37,194,160,.45);background:rgba(37,194,160,.10)}
.pa-area .dy-save-banner.is-err{border-color:rgba(232,86,86,.45);background:rgba(232,86,86,.10)}
.pa-area .dy-save-banner.is-busy{border-color:rgba(109,139,255,.45);background:rgba(109,139,255,.10)}
.pa-area .dy-save-title{font-weight:700}
.pa-area .dy-save-banner.is-ok .dy-save-title{color:#6fe0c2}
.pa-area .dy-save-banner.is-err .dy-save-title{color:#fca5a5}
.pa-area .dy-save-banner.is-busy .dy-save-title{color:#a7b8ff}
.pa-area .dy-save-list{margin:7px 0 0;padding-left:18px;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-save-list li{margin:2px 0;overflow-wrap:anywhere}
.pa-area .dy-cfg-state{margin:10px 0 0;padding:10px 13px;border-radius:12px;border:1px dashed rgba(255,255,255,.14);background:rgba(255,255,255,.02)}
.pa-area .dy-cfg-state-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.pa-area .dy-cfg-state-k{font-size:12px;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-cfg-state-k b{color:var(--p-ink,#e8ecf6);font-weight:650}
.pa-area .dy-cfg-state-tip{margin-top:7px;font-size:12px;line-height:1.65;color:var(--p-ink-3,#8a94ad)}
.pa-area .dy-sign-note{margin:10px 0 0;padding:10px 13px;border-radius:12px;border:1px solid rgba(109,139,255,.30);background:rgba(109,139,255,.07);font-size:12px;line-height:1.75;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-sign-note code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;font-size:12px}
.pa-area .dy-sign-state{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;margin:10px 0 0}
.pa-area .dy-sign-meta{font-size:12px;color:var(--p-ink-3,#8a94ad)}
.pa-area .dy-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.pa-area .dy-sign-col{padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-left:4px solid #6d8bff;border-radius:12px;background:rgba(255,255,255,.03);min-width:0}
.pa-area .dy-sign-title{font-size:13px;font-weight:650;color:var(--p-ink,#e8ecf6);margin-bottom:8px}
.pa-area .dy-pem{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.55;color:var(--p-ink,#e8ecf6);background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:8px 10px;resize:vertical;overflow-wrap:anywhere}
.pa-area .dy-pem[readonly]{color:#a7d8cb}
.pa-area .dy-sign-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pa-area .dy-sign-hint{margin-top:7px;font-size:12px;line-height:1.65;color:var(--p-ink-3,#8a94ad);overflow-wrap:anywhere}
.pa-area .dy-sign-hint code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px}
.pa-area .dy-sign-platform{margin-top:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-left:4px solid #25c2a0;border-radius:12px;background:rgba(255,255,255,.03)}
.pa-area .dy-sign-ver{display:block;margin-top:8px;font-size:12px;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-sign-ver input{display:block;margin-top:5px;width:180px;max-width:100%}
.pa-area .dy-sign-boundary{margin-top:10px;font-size:12px;line-height:1.7;color:var(--p-ink-3,#8a94ad);border-top:1px dashed rgba(255,255,255,.12);padding-top:8px}
@media(max-width:768px){
  .pa-area .dy-sign-grid{grid-template-columns:1fr}
  .pa-area .dy-sign-ver input{width:100%}
}

/* ============================================================
   R13：密钥设置区（① 应用公钥 ② 代码上传密钥 ③ 平台公钥）
   作用域 .pa-area，沿用既有暗色变量
   ============================================================ */
.pa-area .dy-key-item{margin-top:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.09);border-left:4px solid #6d8bff;border-radius:12px;background:rgba(255,255,255,.03)}
.pa-area .dy-key-head{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px}
.pa-area .dy-key-no{font-weight:800;color:#a7b8ff}
.pa-area .dy-key-name{font-size:13px;font-weight:700;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-key-meta{font-size:12px;color:var(--p-ink-3,#8a94ad)}
.pa-area .dy-key-hint{margin-top:7px;font-size:12px;line-height:1.68;color:var(--p-ink-3,#8a94ad);overflow-wrap:anywhere}
.pa-area .dy-key-hint code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px}
.pa-area .dy-key-hint b{color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-key-sub{margin-top:9px;font-size:12px;font-weight:650;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-key-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pa-area .dy-key-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.pa-area .dy-key-row input{flex:1 1 260px;min-width:0}
.pa-area .dy-key-ver{display:block;margin-top:8px;font-size:12px;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-key-ver input{display:block;margin-top:5px;width:180px;max-width:100%}
/* R23：① 应用公钥「复制 → 粘贴到抖音后台」区（含 Key Version） */
.pa-area .dy-key-handoff{margin:9px 0 2px;padding:10px 12px;border:1px dashed rgba(109,139,255,.5);border-radius:11px;background:rgba(109,139,255,.08)}
.pa-area .dy-key-handoff-t{font-size:12px;font-weight:700;color:var(--p-ink,#e8ecf6);margin-bottom:2px;line-height:1.6}
.pa-area .dy-key-handoff-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.pa-area .dy-key-handoff-k{font-size:12px;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-key-handoff-line code{font-size:13px;font-weight:700;color:#c3cdff;background:rgba(255,255,255,.1);padding:1px 7px;border-radius:5px}
.pa-area .dy-key-handoff-hint{margin-top:8px;font-size:12px;line-height:1.68;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-key-handoff-hint b{color:var(--p-ink,#e8ecf6)}
/* R24：应用类型已拆为两个独立页面 → 页面头 + 凭据连通性自测卡 */
.pa-area .dy-page-head{margin:2px 0 10px;padding:11px 13px;border:1px solid rgba(255,255,255,.1);border-left:4px solid #6d8bff;border-radius:12px;background:rgba(109,139,255,.07)}
.pa-area .dy-page-head.is-web{border-left-color:#6d8bff}
.pa-area .dy-page-head.is-mini{border-left-color:#25c2a0}
.pa-area .dy-page-head-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pa-area .dy-page-head-title{font-size:14px;font-weight:700;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-page-head-sub{margin-top:6px;font-size:12px;line-height:1.68;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-page-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px}
.pa-area .dy-ct-item{border-left-color:#25c2a0}
.pa-area .dy-ct-result{margin-top:9px;padding:9px 11px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.03)}
.pa-area .dy-ct-result.is-ok{border-color:rgba(37,194,160,.55);background:rgba(37,194,160,.1)}
.pa-area .dy-ct-result.is-err{border-color:rgba(248,113,113,.55);background:rgba(248,113,113,.1)}
.pa-area .dy-ct-line{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:5px;font-size:12px;line-height:1.66;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-ct-line:first-child{margin-top:0}
.pa-area .dy-ct-line b{flex:0 0 84px;color:var(--p-ink-3,#8a94ad);font-weight:600}
.pa-area .dy-ct-line code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;word-break:break-all}
/* R26：测试连接说明块（判定规则 / 结论来源 / 副作用）+ 无响应告警色 */
.pa-area .dy-ct-note{margin-top:10px;padding:9px 11px;border:1px dashed rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.02);font-size:12px;line-height:1.72;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-ct-note-line{margin-top:5px}
.pa-area .dy-ct-note-line:first-child{margin-top:0}
.pa-area .dy-ct-note b{color:var(--p-ink,#e8ecf6)}
.pa-area .dy-ct-note code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;word-break:break-all}
.pa-area .dy-ct-warn{color:#fca5a5}
.pa-area .dy-domain-added{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pa-area .dy-domain-chip{display:flex;align-items:center;gap:7px;min-width:0}
.pa-area .dy-domain-chip code{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-all}
.pa-area .dy-domain-entry{display:flex;align-items:center;gap:8px;margin-top:8px}
.pa-area .dy-domain-entry input{flex:1 1 auto;min-width:0;width:100%;box-sizing:border-box}
.pa-area .dy-verify-form{margin-top:12px;padding:11px 12px;border:1px dashed rgba(109,139,255,.45);border-radius:11px;background:rgba(109,139,255,.06)}
.pa-area .dy-verify-form>label{display:block;margin:8px 0;font-size:12px;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-verify-form input[type=text],.pa-area .dy-verify-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:5px}
.pa-area .dy-verify-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
@media(max-width:768px){
  .pa-area .dy-key-row input{flex:1 1 100%}
  .pa-area .dy-key-ver input{width:100%}
  .pa-area .dy-key-handoff-line{flex-direction:column;align-items:flex-start;gap:6px}
  .pa-area .dy-key-handoff-line .btn{width:100%}
  .pa-area .dy-page-head-actions{align-items:stretch;flex-direction:column}
  .pa-area .dy-page-head-actions .btn{width:100%}
  .pa-area .dy-ct-line b{flex:0 0 100%}
  .pa-area .dy-domain-entry{align-items:stretch;flex-direction:column}
  .pa-area .dy-domain-entry .btn{width:100%}
  .pa-area .dy-domain-chip{flex-wrap:wrap}
  .pa-area .dy-domain-chip code{flex:1 1 100%}
}

/* ============================================================
   R14：统一「已添加配置」列表 + 明文眼睛按钮
   作用域 .pa-area（抖音页与平台授权页共用），暗色风格内联变量
   ============================================================ */
.pa-area .ac-block{margin:0 0 14px;padding:12px 14px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.03)}
.pa-area .ac-head{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin-bottom:10px}
.pa-area .ac-title{font-size:13px;font-weight:750;color:var(--p-ink,#e8ecf6)}
.pa-area .ac-warn{font-size:12px;line-height:1.6;color:#fcd68a;flex:1 1 320px;min-width:0}
.pa-area .ac-list{display:flex;flex-direction:column;gap:10px}
.pa-area .ac-card{padding:10px 12px;border:1px solid rgba(255,255,255,.09);border-left:4px solid #6d8bff;border-radius:12px;background:rgba(255,255,255,.02)}
.pa-area .ac-card.is-current{border-left-color:#25c2a0;box-shadow:0 0 0 1px rgba(37,194,160,.25) inset}
.pa-area .ac-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pa-area .ac-name{font-size:14px;font-weight:750;color:var(--p-ink,#e8ecf6);overflow-wrap:anywhere}
.pa-area .ac-name.ac-unnamed{color:var(--p-ink-3,#8a94ad);font-weight:600;font-style:italic}
.pa-area .ac-name-edit{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--p-ink-2,#9aa4bd);flex:1 1 260px;min-width:180px}
.pa-area .ac-name-edit input{flex:1 1 auto;min-width:0;width:100%;box-sizing:border-box;padding:7px 9px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.30);color:var(--p-ink,#e8ecf6)}
.pa-area .ac-time{font-size:12px;color:var(--p-ink-3,#8a94ad)}
.pa-area .ac-fields{display:flex;flex-direction:column;gap:5px;margin-top:9px}
.pa-area .ac-field{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}
.pa-area .ac-f-label{flex:0 0 auto;font-size:12px;color:var(--p-ink-2,#9aa4bd);min-width:132px}
.pa-area .ac-f-secret{font-size:11px;padding:1px 5px;border-radius:5px;background:rgba(232,86,86,.16);color:#fca5a5}
.pa-area .ac-val{flex:1 1 180px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;padding:3px 8px;border-radius:7px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.10);color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere;word-break:break-all}
.pa-area .ac-val.is-plain{color:#fde68a;border-color:rgba(240,173,78,.5);background:rgba(240,173,78,.10)}
.pa-area input.ac-direct-input,.pa-area textarea.ac-direct-input{width:auto;box-sizing:border-box;outline:none;resize:vertical}
.pa-area input.ac-direct-input:focus,.pa-area textarea.ac-direct-input:focus,.pa-area .ac-name-edit input:focus{border-color:rgba(109,139,255,.85);box-shadow:0 0 0 2px rgba(109,139,255,.18);color:var(--p-ink,#e8ecf6)}
.pa-area .ac-field .icon-btn{flex:0 0 auto}
.pa-area .ac-eye.is-on{color:#fcd68a;border-color:rgba(240,173,78,.5)}
.pa-area .ac-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px}
.pa-area .ac-hint{font-size:12px;color:var(--p-ink-3,#8a94ad)}
.pa-area .ac-empty{padding:12px;border:1px dashed rgba(255,255,255,.16);border-radius:12px;font-size:13px;color:var(--p-ink-3,#8a94ad);text-align:center}
@media(max-width:768px){
  .pa-area .ac-f-label{min-width:0;flex:1 1 100%}
  .pa-area .ac-val{flex:1 1 100%}
  .pa-area .ac-name-edit{flex:1 1 100%;min-width:0}
  .pa-area .ac-warn{flex:1 1 100%}
}

/* ============================================================
   R16：真编辑面板（紧贴记录卡片下方；与「首次配置」表单视觉区分）
   作用域 .pa-area，暗色风格内联变量
   ============================================================ */
.pa-area .ac-card.is-editing{border-left-color:#f0ad4e;box-shadow:0 0 0 1px rgba(240,173,78,.28) inset}
.pa-area .ac-edit{margin-top:10px;padding:11px 12px;border:1px dashed rgba(240,173,78,.5);border-radius:11px;background:rgba(240,173,78,.07)}
.pa-area .ac-edit-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pa-area .ac-edit-tag{font-size:11px;font-weight:750;padding:2px 7px;border-radius:6px;background:rgba(240,173,78,.22);color:#fcd68a;border:1px solid rgba(240,173,78,.45)}
.pa-area .ac-edit-title{font-size:13px;font-weight:750;color:var(--p-ink,#e8ecf6);overflow-wrap:anywhere}
.pa-area .ac-edit-note{margin-top:7px;font-size:12px;line-height:1.65;color:var(--p-ink-3,#8a94ad)}
.pa-area .ac-edit-note b{color:#fcd68a}
.pa-area .ac-edit-err{margin-top:7px;padding:7px 9px;border-radius:8px;border:1px solid rgba(232,86,86,.45);background:rgba(232,86,86,.12);font-size:12px;line-height:1.6;color:#fca5a5;overflow-wrap:anywhere}
.pa-area .ac-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;margin-top:9px}
.pa-area .ac-edit-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--p-ink-2,#9aa4bd);min-width:0}
.pa-area .ac-edit-f input{width:100%;min-width:0;box-sizing:border-box;padding:7px 9px;border-radius:9px;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.30);color:var(--p-ink,#e8ecf6);font-size:13px;font-family:inherit}
.pa-area .ac-edit-f input:focus{outline:none;border-color:rgba(240,173,78,.75);box-shadow:0 0 0 2px rgba(240,173,78,.18)}
.pa-area .ac-edit-f input::placeholder{color:#6f7891}
.pa-area .ac-edit-sign{margin-top:9px;padding:9px 10px;border-radius:9px;border:1px solid rgba(109,139,255,.35);background:rgba(109,139,255,.08)}
.pa-area .ac-edit-sign-head{font-size:12px;font-weight:700;color:#a7b8ff}
.pa-area .ac-edit-sign-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pa-area .ac-edit-sign-hint{margin-top:6px;font-size:11px;line-height:1.6;color:var(--p-ink-3,#8a94ad)}
.pa-area .ac-edit-sign-hint a{color:#a7b8ff}
.pa-area .ac-edit-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.pa-area .ac-edit-hint{font-size:11px;color:var(--p-ink-3,#8a94ad)}
.pa-area .ac-edit-msg{margin-top:7px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.pa-area .ac-edit-msg.is-warn{color:#fcd68a}
.pa-area .ac-edit-msg.is-err{color:#fca5a5}
.pa-area .ac-edit-msg.is-busy{color:#a7b8ff}
@media(max-width:768px){
  .pa-area .ac-edit-grid{grid-template-columns:minmax(0,1fr)}
  .pa-area .ac-edit-actions .btn{flex:1 1 auto}
  .pa-area .ac-edit-sign-row .badge{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .pa-area .ac-card.is-editing{transition:none}
}

/* ============================================================
   R17：web-view 合法域名录入区（明确入口 · 明确反馈 · 列表+数量 · 编辑/删除）
   作用域仅限 .pa-area，沿用既有暗色变量，不覆盖其它页面
   ============================================================ */
.pa-area .dy-domain-notice{
  margin:0 0 12px;padding:11px 13px;border-radius:12px;
  border:1px solid rgba(240,173,78,.42);background:rgba(240,173,78,.10);
  font-size:13px;line-height:1.75;color:var(--p-ink,#e8ecf6);overflow-wrap:anywhere;
}
.pa-area .dy-domain-notice b{color:#fcd68a}
.pa-area .dy-domain-head{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin:2px 0 2px}
.pa-area .dy-domain-head-title{font-size:13px;font-weight:700;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-domain-rule{margin-top:7px;font-size:12px;line-height:1.7;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-domain-rule code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;font-size:11px}
.pa-area .dy-domain-chip-acts{display:flex;flex:0 0 auto;align-items:center;gap:6px}
.pa-area .dy-domain-chip.is-editing{padding:8px 10px;border:1px dashed rgba(109,139,255,.55);border-radius:11px;background:rgba(109,139,255,.08)}
.pa-area .dy-domain-chip.is-editing input{
  flex:1 1 auto;min-width:0;width:100%;box-sizing:border-box;padding:7px 9px;
  border-radius:9px;border:1px solid rgba(255,255,255,.20);background:rgba(0,0,0,.30);
  color:var(--p-ink,#e8ecf6);font-size:13px;font-family:inherit;
}
.pa-area .dy-domain-chip.is-editing input:focus{outline:none;border-color:rgba(109,139,255,.8);box-shadow:0 0 0 2px rgba(109,139,255,.20)}
@media(max-width:768px){
  .pa-area .dy-domain-chip{flex-wrap:wrap}
  .pa-area .dy-domain-chip code{flex:1 1 100%}
  .pa-area .dy-domain-chip-acts{flex:1 1 100%;flex-wrap:wrap}
  .pa-area .dy-domain-chip-acts .btn{flex:1 1 auto}
  .pa-area .dy-domain-chip.is-editing{flex-direction:column;align-items:stretch}
  .pa-area .dy-domain-chip.is-editing input{flex:1 1 100%}
}

/* R17b：域名反馈横幅现在挂在各自卡片内部（紧贴刚操作的控件） */
.pa-area .pa-body > .dy-save-banner{margin:0 0 12px}

/* ============================================================
   R17b：授权中心表单卡取消「整卡位移」类动效（点击可靠性修复）
   问题：motion.css 的 `.card:hover{translateY(-5px) scale(1.006)}`（带 .18s 过渡）
         + motion.js 的 3D 倾斜会持续改变整张卡（连同内部按钮）在屏幕上的投影位置，
         导致指针按下与松开落在不同元素上 → click 落到父容器，
         「添加 / 编辑 / 保存修改 / 删除」偶发无效（真实鼠标 + 自动化都会命中）。
   处理：仅对授权中心内的表单卡（.pa-area .pa-card）关掉整卡位移，卡片本身的
         边框/阴影/标题变色反馈保留；其它页面与数据大屏不受影响。
   ============================================================ */
.pa-area .pa-card,
.pa-area .pa-card:hover{transform:none !important}

/* ============================================================
   R18：web-view 合法域名（系统生成值 + 一键复制 + 校验文件已部署状态）
   作用域仅限 .pa-area
   ============================================================ */
.pa-area .dy-tw-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.pa-area .dy-tw-step{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border:1px solid rgba(109,139,255,.28);border-radius:12px;background:rgba(109,139,255,.07);min-width:0}
.pa-area .dy-tw-no{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,#6d8bff,#a78bfa)}
.pa-area .dy-tw-title{font-size:13px;font-weight:700;color:var(--p-ink,#e8ecf6);line-height:1.5}
.pa-area .dy-tw-desc{margin-top:3px;font-size:12px;line-height:1.65;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-tw-desc code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;font-size:11px}
.pa-area .dy-tw-box{margin:0 0 12px;padding:11px 13px;border:1px solid rgba(255,255,255,.10);border-left:4px solid #25c2a0;border-radius:12px;background:rgba(255,255,255,.03)}
.pa-area .dy-tw-box-head{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin-bottom:8px}
.pa-area .dy-tw-box-title{font-size:13px;font-weight:750;color:var(--p-ink,#e8ecf6)}
.pa-area .dy-tw-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;margin-top:8px}
.pa-area .dy-tw-k{flex:0 0 auto;font-size:12px;color:var(--p-ink-2,#9aa4bd);min-width:104px}
.pa-area .dy-tw-row code{
  flex:1 1 220px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;
  color:#bdf3e6;background:rgba(37,194,160,.12);border:1px solid rgba(37,194,160,.26);
  border-radius:7px;padding:5px 9px;overflow-wrap:anywhere;word-break:break-all;
}
.pa-area .dy-tw-row .btn{flex:0 0 auto}
.pa-area .dy-tw-row .dy-srv-note{margin-top:0;flex:1 1 220px}
@media(max-width:768px){
  .pa-area .dy-tw-steps{grid-template-columns:minmax(0,1fr)}
  .pa-area .dy-tw-k{min-width:0;flex:1 1 100%}
  .pa-area .dy-tw-row code{flex:1 1 100%}
  .pa-area .dy-tw-row .btn{flex:1 1 auto}
}

/* ---------- R19：抖音小程序 Webhook 配置卡（复制 → 粘贴 → 平台校验） ---------- */
.pa-area .dy-wh-scope{margin-right:6px}
.pa-area .dy-wh-callout{
  margin:0 0 12px;
  padding:10px 13px;
  border:1px solid rgba(37,194,160,.32);
  border-left:4px solid #25c2a0;
  border-radius:12px;
  background:rgba(37,194,160,.08);
  font-size:13px;
  line-height:1.8;
  color:var(--p-ink,#e8ecf6);
}
.pa-area .dy-wh-callout code{
  background:rgba(255,255,255,.09);
  padding:1px 5px;
  border-radius:5px;
  font-size:12px;
}
.pa-area .dy-wh-src{
  flex:1 1 220px;
  min-width:0;
  font-size:12px;
  line-height:1.75;
  color:var(--p-ink-2,#9aa4bd);
  overflow-wrap:anywhere;
}
.pa-area .dy-wh-src code{
  background:rgba(255,255,255,.075);
  padding:1px 5px;
  border-radius:5px;
  font-size:12px;
  color:var(--p-ink,#e8ecf6);
}
.pa-area .dy-wh-card .dy-tw-row input[type="password"],
.pa-area .dy-wh-card .dy-tw-row input[type="text"]{
  flex:1 1 260px;
  min-width:0;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.14);
  border-radius:11px;
  color:var(--p-ink,#e8ecf6);
  font-size:13px;
  padding:9px 12px;
  outline:none;
}
.pa-area .dy-wh-card .dy-tw-row input[type="password"]:focus,
.pa-area .dy-wh-card .dy-tw-row input[type="text"]:focus{
  border-color:rgba(109,139,255,.75);
  background:rgba(109,139,255,.10);
}
.pa-area .dy-wh-card #dyWhSecretValue{
  max-width:100%;
}
.pa-area .dy-wh-card .dy-tw-row .btn{flex:0 0 auto}
@media (max-width:768px){
  .pa-area .dy-wh-callout{font-size:12px;padding:9px 11px}
  .pa-area .dy-wh-src{flex:1 1 100%}
  .pa-area .dy-wh-card .dy-tw-row input[type="password"],
  .pa-area .dy-wh-card .dy-tw-row input[type="text"]{flex:1 1 100%}
  .pa-area .dy-wh-card .dy-tw-row .btn{flex:1 1 auto}
}

/* ---------- R20：请求网址 URL 主区块 + 四项独立状态 ---------- */
.pa-area .dy-wh-hero{
  margin:0 0 14px;
  padding:14px 15px;
  border:1px solid rgba(37,194,160,.45);
  border-left:5px solid #25c2a0;
  border-radius:14px;
  background:linear-gradient(180deg,rgba(37,194,160,.13),rgba(37,194,160,.05));
}
.pa-area .dy-wh-hero-head{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin-bottom:9px}
.pa-area .dy-wh-hero-title{font-size:14px;font-weight:800;color:var(--p-ink,#e8ecf6);letter-spacing:.2px}
.pa-area .dy-wh-hero-url{
  display:block;
  width:100%;
  box-sizing:border-box;
  overflow-wrap:anywhere;
  word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:14px;
  font-weight:700;
  line-height:1.65;
  color:var(--p-ink,#e8ecf6);
  background:rgba(255,255,255,.075);
  border:1px solid rgba(255,255,255,.16);
  border-radius:11px;
  padding:9px 12px;
}
.pa-area .dy-wh-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:9px 0 4px}
.pa-area .dy-wh-hero-note{font-size:12px;line-height:1.7;color:var(--p-ink-2,#9aa4bd);overflow-wrap:anywhere}
.pa-area .dy-wh-hero-note code{background:rgba(255,255,255,.085);padding:1px 5px;border-radius:5px;font-size:12px}

.pa-area .dy-status-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:4px}
.pa-area .dy-status-cell{
  min-width:0;
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.pa-area .dy-status-cap{font-size:12px;font-weight:700;color:var(--p-ink-2,#9aa4bd)}
.pa-area .dy-status-sub{font-size:12px;line-height:1.6;color:var(--p-ink-3,#6b7590);overflow-wrap:anywhere}
.pa-area .dy-status-sub b{color:var(--p-ink,#e8ecf6)}
.pa-area .dy-status-cell .btn{align-self:flex-start}
.pa-area .dy-wh-counters{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:11px;
  font-size:12px;color:var(--p-ink-2,#9aa4bd);
}
.pa-area .dy-wh-counters b{color:var(--p-ink,#e8ecf6)}
@media (max-width:1100px){
  .pa-area .dy-status-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .pa-area .dy-wh-hero{padding:12px}
  .pa-area .dy-wh-hero-url{font-size:13px}
  .pa-area .dy-wh-hero-actions .btn{flex:1 1 100%}
  .pa-area .dy-status-grid4{grid-template-columns:minmax(0,1fr)}
  .pa-area .dy-status-cell .btn{flex:1 1 auto}
}

/* ============================================================
   R21：小程序服务器域名 = 系统生成的配置清单
   作用域仅限 .pa-area
   ============================================================ */
.pa-area .dy-srv-row.is-idle{border-left-color:rgba(255,255,255,.18);opacity:.96}
.pa-area .dy-srv-row.is-used{border-left-color:#25c2a0}
.pa-area .dy-ledger{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.pa-area .dy-ledger-item{padding:10px 12px;border:1px solid rgba(255,255,255,.09);border-left:4px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.02)}
@media(max-width:768px){
  .pa-area .dy-ledger-item{padding:9px 10px}
}
