/* ═══ 授权管理页 v2：渠道标签页 + 右舷仪表（cred-redesign v5 落地） ═══
   设计基线 /data/workspace/plan/cred-redesign-demo/v5.html（方案C修复版）。
   布局：左内容区（当前渠道授权分组）+ 右舷（驾驶舱卡 + 跨渠道「渠道」卡）。
   全部颜色/圆角/阴影走既有 --md-* / --radius-* / --shadow-* 变量体系，
   暗色模式由 dark-mode.css 的变量翻转天然支持，无需单独适配。 */

/* ── 双栏骨架 ── */
.credv2-layout{display:flex;gap:16px;align-items:flex-start}
.credv2-main{flex:1;min-width:0}
.credv2-side{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;position:sticky;top:14px}
@media(max-width:1080px){
  .credv2-layout{flex-direction:column}
  .credv2-side{width:100%;position:static;flex-direction:row;flex-wrap:wrap}
  .credv2-side>*{flex:1 1 320px}
}

/* ── 卡片通用 ── */
.credv2-cab,.credv2-card{background:var(--md-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);border:1px solid transparent;padding:16px}
.credv2-card{padding:14px 16px}

/* ── 驾驶舱：渠道身份 ── */
.credv2-cid{display:flex;align-items:center;gap:10px}
.credv2-cid-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;background:var(--ch-tencent)}
.credv2-cid-ico.ch-brand-ico{background:transparent}
.credv2-cid-ico.ch-brand-ico .ch-brand-fallback{color:var(--ch-tencent)}
.credv2-cid-nm{font-size:14px;font-weight:700;color:var(--md-on-surface);line-height:1.3}
.credv2-cid-sub{font-size:11px;color:var(--md-outline);margin-top:1px}
.credv2-cst{margin-left:auto;font-size:11px;font-weight:600;padding:2px 9px;border-radius:99px;white-space:nowrap;flex-shrink:0}
.credv2-cst.ok{background:var(--md-success-container);color:var(--md-success)}
.credv2-cst.warn{background:var(--md-warning-container);color:var(--md-warning)}
.credv2-cst.err{background:var(--md-error-container);color:var(--md-error)}
.credv2-cst.run{background:var(--md-primary-container);color:var(--md-primary)}
.credv2-cst.none{background:var(--md-surface-2);color:var(--md-outline)}

/* ── 驾驶舱：添加授权（主按钮 + 下拉，菜单项按平台 authType 生成） ── */
.credv2-add{position:relative;margin-top:14px}
.credv2-add-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:var(--radius-xs);background:var(--md-primary);color:var(--md-on-primary,#fff);border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;transition:background .2s,box-shadow .2s,transform .15s var(--ease-spring)}
.credv2-add-btn:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}
.credv2-add-btn:active{transform:translateY(0) scale(.98)}
.credv2-add-btn .material-symbols-outlined{font-size:17px}
.credv2-add-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--md-surface);border:1px solid var(--md-surface-3);border-radius:var(--radius-xs);box-shadow:var(--shadow-3);padding:6px;z-index:30;display:none}
.credv2-add.on .credv2-add-menu{display:block}
.credv2-add-grp{font-size:10.5px;font-weight:600;color:var(--md-outline);padding:6px 10px 4px;letter-spacing:.04em}
/* 添加授权下拉菜单项 */
.credv2-add-mi{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s}
.credv2-add-mi:hover{background:var(--md-surface-1)}
/* 右舷「接入更多广告渠道」入口：虚线框引导按钮（对齐 v5 demo cab-more） */
.credv2-chan-more{display:flex;align-items:center;gap:9px;width:100%;padding:10px;margin-top:14px;border:1px dashed var(--md-outline-variant);border-radius:9px;background:var(--md-surface-1);color:var(--md-on-surface);cursor:pointer;font-family:inherit;font-size:inherit;text-align:left;appearance:none;-webkit-appearance:none;transition:border-color .2s,background .2s,transform .15s var(--ease-spring)}
.credv2-add-mi .material-symbols-outlined{font-size:17px;color:var(--md-primary);margin-top:1px;flex-shrink:0}
.credv2-add-mi .t{font-size:12.5px;font-weight:600;color:var(--md-on-surface)}
.credv2-add-mi .s{font-size:11px;color:var(--md-outline);margin-top:1px}
.credv2-chan-more .material-symbols-outlined{font-size:19px;color:var(--md-primary);flex-shrink:0}
.credv2-chan:hover{background:var(--md-surface-1);transform:translateY(-1px)}
.credv2-chan:active{transform:translateY(0) scale(.98)}
.credv2-chan-more:hover{border-color:var(--md-primary);background:var(--md-surface-2);transform:translateY(-1px)}
.credv2-chan-more:active{transform:translateY(0) scale(.98)}
.credv2-chan-more .t{font-size:12px;font-weight:600;color:var(--md-on-surface)}
.credv2-chan-more .s{font-size:10.5px;font-weight:400;color:var(--md-outline);margin-top:1px}

/* ── 驾驶舱：统计四行 ── */
.credv2-lab{font-size:10.5px;font-weight:700;color:var(--md-outline);letter-spacing:.06em;margin:16px 0 8px}
.credv2-stats{display:flex;flex-direction:column;gap:2px}
.credv2-stat{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--md-on-surface-variant);padding:5px 2px}
.credv2-stat .v{font-weight:700;color:var(--md-on-surface)}
.credv2-stat .v.warn{color:var(--md-warning)}
.credv2-stat .v.run{color:var(--md-primary)}

/* ── 驾驶舱：实名认证（腾讯专属，容器 id 固定供 auth.js 控制） ── */
.credv2-verify{margin-top:14px;padding-top:12px;border-top:1px solid var(--md-surface-3)}
.credv2-verify-t{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--md-on-surface)}
.credv2-verify-t .material-symbols-outlined{font-size:16px;color:var(--md-primary)}
.credv2-verify-d{font-size:11px;color:var(--md-outline);line-height:1.6;margin:5px 0 10px}
.credv2-verify-b{display:flex;gap:8px;flex-wrap:wrap}
.credv2-verify-b button{font-size:11.5px;padding:5px 12px;border-radius:7px;cursor:pointer;font-family:inherit}
.credv2-verify-b .qr{border:1px solid var(--md-primary);background:var(--md-primary);color:var(--md-on-primary,#fff);transition:filter .15s,transform .15s var(--ease-spring),box-shadow .2s}
.credv2-verify-b .tk{border:1px solid var(--md-surface-3);background:transparent;color:var(--md-on-surface-variant);transition:border-color .15s,background .15s,color .15s,transform .15s var(--ease-spring)}
.credv2-verify-b .qr:hover,.credv2-verify-b .tk:hover{filter:brightness(1.05);transform:translateY(-1px)}
.credv2-verify-b .qr:active,.credv2-verify-b .tk:active{transform:translateY(0) scale(.97)}

/* ── 右舷渠道卡（唯一切换入口） ── */
.credv2-card-lab{font-size:10.5px;font-weight:700;color:var(--md-outline);letter-spacing:.06em;margin-bottom:8px}
.credv2-chans{display:flex;flex-direction:column;gap:4px}
.credv2-chan{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;border:1px solid transparent;cursor:pointer;background:transparent;font-family:inherit;text-align:left;width:100%;transition:background .15s,border-color .15s,transform .15s var(--ease-spring)}
.credv2-chan.on{background:rgba(0,82,217,.06);border-color:rgba(0,82,217,.35)}
[data-theme="dark"] .credv2-chan.on{background:rgba(163,196,255,.10);border-color:rgba(163,196,255,.45)}
.credv2-chan.on .credv2-chan-nm{color:var(--md-primary)}
.credv2-chan-ico{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;background:var(--ch-tencent)}
.credv2-chan-ico.ch-brand-ico{background:transparent}
.credv2-chan-ico.ch-brand-ico .ch-brand-fallback{color:var(--ch-tencent)}
.credv2-chan-mid{flex:1;min-width:0}
.credv2-chan-nm{font-size:12.5px;font-weight:600;color:var(--md-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.credv2-chan-sub{font-size:10.5px;color:var(--md-outline);display:block;margin-top:1px}
.credv2-chan .credv2-cst{margin-left:0;flex-shrink:0}

/* 渠道图标：去底板后字形/字母以品牌色呈现（SVG 原色自带，暗色反白见 base.css） */
.credv2-cid-ico.ch-brand-ico.ch-ocean .ch-brand-fallback,.credv2-chan-ico.ch-brand-ico.ch-ocean .ch-brand-fallback{color:var(--ch-ocean)}
.credv2-cid-ico.ch-brand-ico.ch-kwai .ch-brand-fallback,.credv2-chan-ico.ch-brand-ico.ch-kwai .ch-brand-fallback{color:var(--ch-kwai,#FF6D00)}
.credv2-cid-ico.ch-brand-ico.ch-meta .ch-brand-fallback,.credv2-chan-ico.ch-brand-ico.ch-meta .ch-brand-fallback{color:var(--ch-meta)}
.credv2-cid-ico.ch-brand-ico.ch-tiktok .ch-brand-fallback,.credv2-chan-ico.ch-brand-ico.ch-tiktok .ch-brand-fallback{color:#111}
.credv2-cid-ico.ch-brand-ico.ch-google .ch-brand-fallback,.credv2-chan-ico.ch-brand-ico.ch-google .ch-brand-fallback{color:var(--ch-google,#4285F4)}
[data-theme="dark"] .credv2-cid-ico.ch-brand-ico.ch-tiktok .ch-brand-fallback,[data-theme="dark"] .credv2-chan-ico.ch-brand-ico.ch-tiktok .ch-brand-fallback{color:var(--ch-tiktok,#E8E1E5)}

/* ── 内容区：空渠道态 ── */
.credv2-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;text-align:center;background:var(--md-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-1)}
.credv2-empty .credv2-cid-ico{width:44px;height:44px;border-radius:12px;font-size:17px}

/* ── 渠道品牌 Logo ──（显隐公共规则见 base.css；此处仅页面级尺寸微调） */
.credv2-chan-ico .ch-brand-logo{width:74%;height:74%}
.credv2-empty .credv2-cid-ico .ch-brand-logo{width:58%;height:58%}
.credv2-empty-t{font-size:13.5px;font-weight:600;color:var(--md-on-surface)}
.credv2-empty-s{font-size:12px;color:var(--md-outline);line-height:1.7;max-width:360px}
.credv2-empty-b{display:flex;gap:8px;margin-top:4px}

/* ── 六项校验弹窗（v5 形态：弹窗 + 逐项点亮） ── */
.credv2-ck-overlay{position:fixed;inset:0;background:rgba(23,26,32,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;opacity:0;pointer-events:none;transition:opacity .18s}
[data-theme="dark"] .credv2-ck-overlay{background:rgba(0,0,0,.55)}
.credv2-ck-overlay.visible{opacity:1;pointer-events:auto}
.credv2-ck-modal{background:var(--md-surface);border-radius:var(--radius-md);box-shadow:0 24px 48px rgba(0,82,217,.12),0 8px 16px rgba(0,0,0,.08);width:100%;max-width:460px;max-height:82vh;display:flex;flex-direction:column;transform:translateY(8px) scale(.98);transition:transform .3s var(--ease-spring)}
.credv2-ck-overlay.visible .credv2-ck-modal{transform:none}
.credv2-ck-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--md-surface-3)}
.credv2-ck-title{font-size:13.5px;font-weight:700;color:var(--md-on-surface)}
.credv2-ck-sub{font-size:11px;color:var(--md-outline);margin-top:2px}
.credv2-ck-x{margin-left:auto;border:none;background:transparent;cursor:pointer;color:var(--md-outline);display:flex;padding:4px;border-radius:6px;transition:background .15s,color .15s,transform .15s var(--ease-spring)}
.credv2-ck-x:hover{background:var(--md-surface-1);color:var(--md-on-surface);transform:scale(1.08)}
.credv2-ck-x .material-symbols-outlined{font-size:18px}
.credv2-ck-body{padding:14px 16px;overflow:auto}
.credv2-ck-list{display:flex;flex-direction:column;gap:2px}
.credv2-ck-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:12.5px;transition:background .2s}
.credv2-ck-item .material-symbols-outlined{font-size:18px;flex-shrink:0}
.credv2-ck-item .lb{color:var(--md-on-surface);font-weight:500}
.credv2-ck-item .dt{margin-left:auto;font-size:11.5px;color:var(--md-outline);text-align:right;max-width:180px}
.credv2-ck-item.pending{background:rgba(0,82,217,.05)}
[data-theme="dark"] .credv2-ck-item.pending{background:rgba(163,196,255,.10)}
.credv2-ck-item.pending .material-symbols-outlined{color:var(--md-primary);animation:spin 1s linear infinite}
.credv2-ck-item.pass .material-symbols-outlined,.credv2-ck-item.pass .dt{color:var(--md-success)}
.credv2-ck-item.fail .material-symbols-outlined,.credv2-ck-item.fail .dt{color:var(--md-error)}
.credv2-ck-item.warn .material-symbols-outlined,.credv2-ck-item.warn .dt{color:var(--md-warning)}
.credv2-ck-sum{display:flex;align-items:center;gap:7px;margin-top:10px;padding:9px 11px;border-radius:8px;background:var(--md-surface-1);font-size:12px;font-weight:600}
.credv2-ck-sum .material-symbols-outlined{font-size:16px}
.credv2-ck-sum.ok{color:var(--md-success)}
.credv2-ck-sum.bad{color:var(--md-error)}
.credv2-ck-sum.wn{color:var(--md-warning)}
.credv2-ck-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--md-surface-3)}
.credv2-ck-btn{font-size:11.5px;padding:5px 14px;border-radius:7px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.credv2-ck-btn .material-symbols-outlined{font-size:14px}
.credv2-ck-btn.ghost{border:1px solid var(--md-surface-3);background:transparent;color:var(--md-on-surface-variant);transition:border-color .15s,background .15s,color .15s,transform .15s var(--ease-spring)}
.credv2-ck-btn.primary{border:none;background:var(--md-primary);color:var(--md-on-primary,#fff);transition:filter .15s,transform .15s var(--ease-spring),box-shadow .2s}
.credv2-ck-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.credv2-ck-btn:active{transform:translateY(0) scale(.97)}
.credv2-ck-btn.ghost:hover{filter:none;border-color:var(--md-primary);background:var(--md-surface-1);color:var(--md-primary)}

/* ── 内容区既有 token_group 卡微调（分组外壳沿用旧类） ── */
.credv2-main [data-cred-single-panel],
.credv2-main [data-cred-group]{margin:0 0 14px}
[data-theme="dark"] .credv2-main [data-cred-single-panel],
[data-theme="dark"] .credv2-main [data-cred-group]{background:var(--md-surface-2);border-color:var(--md-surface-4)}
[data-theme="dark"] .credv2-cab,
[data-theme="dark"] .credv2-card,
[data-theme="dark"] .credv2-empty{border-color:var(--md-surface-3)}
[data-theme="dark"] .credv2-ck-modal{border:1px solid var(--md-surface-3);box-shadow:0 24px 48px rgba(0,0,0,.5),0 8px 16px rgba(0,0,0,.3)}