/* NIEGO-GEO — 黑白灰 · 卡片 · 毛玻璃 UI */
:root{
  --gray-0:#fff;--gray-050:#f7f7f8;--gray-50:#f7f7f8;--gray-100:#eeeef0;--gray-200:#e2e2e6;--gray-300:#c9c9cf;
  --gray-400:#9a9aa3;--gray-500:#71717a;--gray-600:#52525b;--gray-700:#3a3a40;--gray-800:#26262a;--gray-900:#17171b;
  --hairline:rgba(23,23,27,.08);--r-lg:16px;--r-sm:8px;
  --sh-card:0 2px 12px rgba(23,23,27,.05);--sh-float:0 8px 32px rgba(23,23,27,.08);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Inter","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--gray-900);min-height:100vh;background:#e9e9ec;font-size:14px;line-height:1.6}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:
  radial-gradient(640px 420px at 10% 6%,rgba(255,255,255,.95),transparent 60%),
  radial-gradient(720px 520px at 90% 14%,rgba(154,154,163,.38),transparent 62%),
  radial-gradient(900px 640px at 46% 112%,rgba(23,23,27,.14),transparent 55%)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
a{color:inherit;text-decoration:none}

.layout{display:grid;grid-template-columns:224px minmax(0,1fr);width:100%;min-height:100vh;padding:20px;gap:20px}
.sidebar{background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);
  border:1px solid rgba(255,255,255,.65);border-radius:var(--r-lg);box-shadow:var(--sh-float);
  padding:24px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:20px;height:calc(100vh - 40px)}
.brand{display:flex;align-items:center;gap:10px;padding:0 10px 20px}
.brand-mark{width:32px;height:32px;border-radius:9px;object-fit:cover;display:block}
/* 表结构未初始化提示条（站点/SEO/GEO 迁移未执行） */
.schema-warn{margin-bottom:14px;border-left:3px solid var(--gray-900);padding:14px 16px}
.schema-warn .sw-head{font-weight:600;letter-spacing:.01em}
.schema-warn .mono{padding:1px 6px;border-radius:var(--r-sm);background:var(--gray-100);font-size:12px;word-break:break-all}
/* 黑白灰滑动开关（平台启用/停用） */
.switch{position:relative;width:44px;height:24px;border:1px solid var(--gray-400);border-radius:999px;background:var(--gray-200);cursor:pointer;padding:0;transition:background .2s,border-color .2s;vertical-align:middle}
.switch:hover{border-color:var(--gray-600)}
.switch .switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .2s}
.switch.on{background:var(--gray-900);border-color:var(--gray-900)}
.switch.on .switch-knob{transform:translateX(20px);background:#fff}
.switch:focus-visible{outline:2px solid var(--gray-500);outline-offset:2px}
/* ===== 管理后台 Tab ===== */
.tabs{display:flex;gap:4px;background:var(--glass);border:1px solid var(--hairline);border-radius:12px;padding:5px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.tab-btn{border:0;background:transparent;color:var(--gray-500);font:inherit;font-size:13.5px;font-weight:500;padding:8px 18px;border-radius:9px;cursor:pointer;transition:all .18s}
.tab-btn:hover{color:var(--gray-800);background:var(--gray-100)}
.tab-btn.active{background:var(--gray-900);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.18)}
/* ===== 平台渠道卡片网格 ===== */
.plat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.plat-card{border:1px solid var(--hairline);border-radius:12px;padding:12px;background:var(--gray-050);transition:box-shadow .18s}
.plat-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}
.plat-top{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.plat-name{font-size:13.5px}
.plat-json{min-height:48px;font-family:ui-monospace,monospace;font-size:12px}
/* ===== 通用弹窗 ===== */
.modal-mask{position:fixed;inset:0;background:rgba(20,20,22,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px;z-index:80;opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.modal-mask.open{opacity:1;visibility:visible}
.modal{width:100%;max-width:440px;background:rgba(255,255,255,.92);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--hairline);border-radius:16px;padding:20px 22px;box-shadow:0 18px 60px rgba(0,0,0,.22);transform:translateY(-8px) scale(.985);transition:transform .18s;max-height:82vh;overflow:auto}
.modal-mask.open .modal{transform:none}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.modal-head h3{margin:0;font-size:16px}
.modal-x{border:0;background:transparent;color:var(--gray-400);font-size:22px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:8px}
.modal-x:hover{color:var(--gray-800);background:var(--gray-100)}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
/* ===== 富文本编辑器 ===== */
.editor-wrap{border:1px solid var(--hairline);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.75)}
.editor-bar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;border-bottom:1px solid var(--hairline);background:var(--gray-050);align-items:center}
.ebtn{border:0;background:transparent;color:var(--gray-600);min-width:30px;height:28px;border-radius:7px;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.ebtn:hover{background:var(--gray-200);color:var(--gray-900)}
.ebtn:active{background:var(--gray-300)}
.eb-sep{width:1px;height:18px;background:var(--hairline);margin:0 5px}
.editor-area{min-height:300px;padding:14px 16px;font-size:14px;line-height:1.75;outline:none;color:var(--gray-900);width:100%;border:0;background:transparent;resize:vertical}
.editor-area img{max-width:100%;border-radius:8px;margin:4px 0}
.editor-area:empty:before{content:attr(data-placeholder);color:var(--gray-400)}
.editor-area blockquote{border-left:3px solid var(--gray-400);margin:8px 0;padding:4px 12px;color:var(--gray-600);background:var(--gray-050);border-radius:0 8px 8px 0}
.editor-area h2,.editor-area h3{margin:12px 0 6px}
/* ===== 素材选择卡（编辑器引用） ===== */
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.pick-card{position:relative;border:1px solid var(--hairline);border-radius:12px;background:var(--gray-050);padding:0;cursor:pointer;overflow:hidden;text-align:left;transition:all .16s;font:inherit}
.pick-card:hover{border-color:var(--gray-800);box-shadow:0 4px 14px rgba(0,0,0,.12);transform:translateY(-1px)}
.pick-thumb{display:block;height:70px;background:#fff}
.pick-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pick-err{display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;color:var(--gray-400)}
.pick-name{display:block;font-size:11px;color:var(--gray-600);padding:5px 8px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-tip{position:absolute;inset:auto 0 0;background:rgba(20,20,22,.78);color:#fff;font-size:11px;text-align:center;padding:3px 0;opacity:0;transition:opacity .16s}
.pick-card:hover .pick-tip{opacity:1}
/* 编辑页双栏加宽（编辑器空间优先） */
.grid2-wide{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}
/* 素材库网格 */
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.asset-card{border:1px solid var(--hairline);border-radius:12px;overflow:hidden;background:var(--gray-050);display:flex;flex-direction:column}
.asset-thumb{height:100px;background:var(--gray-100);display:flex;align-items:center;justify-content:center;overflow:hidden}
.asset-thumb img{width:100%;height:100%;object-fit:cover}
.asset-meta{padding:8px 10px 4px}
.asset-ops{display:flex;gap:6px;padding:6px 10px 10px;align-items:center}
/* ===== v37 素材库：分类条 / 批量条 / 卡片复选 ===== */
.cat-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0 2px;border-top:1px solid var(--hairline);margin-top:14px}
.cat-bar select,.batch-bar select{width:auto;height:32px;padding:0 10px;font-size:13px}
.flt-form select{width:auto}
.cat-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:99px;border:1px solid var(--hairline);background:rgba(255,255,255,.7);font-size:12.5px;color:var(--gray-700);text-decoration:none;line-height:20px}
.cat-chip i{font-style:normal;font-size:11px;opacity:.6}
.cat-chip:hover{border-color:var(--gray-400);color:var(--gray-900)}
.cat-chip.on{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.cat-chip.on i{opacity:.75}
.batch-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 12px;padding:9px 14px;border-radius:12px;background:var(--gray-050);border:1px dashed var(--gray-300)}
.asset-chk{position:absolute;top:6px;left:6px;z-index:2;width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;cursor:pointer}
.asset-chk input{width:14px;height:14px;margin:0;cursor:pointer}
.asset-thumb{position:relative}
/* 复选行（规则目标账号） */
.chk{display:flex;gap:8px;align-items:center;padding:6px 0;font-size:13px}
.chk input{width:auto}
.brand b{font-size:15px;font-weight:600}
.nav-label{font-size:11px;color:var(--gray-500);letter-spacing:.08em;padding:14px 12px 6px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--gray-600);font-size:13.5px;transition:all 180ms ease-out}
.nav-item:hover{background:rgba(255,255,255,.7);color:var(--gray-900)}
.nav-item.active{background:var(--gray-900);color:#fff;box-shadow:0 4px 14px rgba(23,23,27,.25)}
.nav-item .badge{margin-left:auto;font-size:11px;background:var(--gray-300);color:var(--gray-800);border-radius:99px;padding:0 7px;line-height:18px}
.nav-item.active .badge{background:rgba(255,255,255,.22);color:#fff}
.quota-box{margin-top:auto;background:rgba(255,255,255,.7);border:1px solid var(--hairline);border-radius:12px;padding:14px}
.quota-row{margin-top:10px}
.quota-row .lbl{display:flex;justify-content:space-between;font-size:12.5px;color:var(--gray-600);margin-bottom:6px}
.quota-row .lbl b{font-family:ui-monospace,monospace;color:var(--gray-900)}
.track{height:6px;border-radius:99px;background:var(--gray-200);overflow:hidden}
.fill{height:100%;border-radius:99px;background:var(--gray-900)}
.fill.warn{background:repeating-linear-gradient(45deg,var(--gray-800) 0 6px,var(--gray-500) 6px 12px)}

main{display:flex;flex-direction:column;gap:16px;min-width:0}
.topbar{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.55);
  -webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);
  border:1px solid rgba(255,255,255,.65);border-radius:var(--r-lg);box-shadow:var(--sh-float);padding:12px 20px;position:sticky;top:20px;z-index:20}
.topbar h1{font-size:16px;font-weight:600}
.topbar .spacer{flex:1}
.topbar form{display:flex;margin:0}
.topbar .btn{height:36px}
.topbar .icon-btn{width:36px;height:36px}
.topbar .avatar{width:36px;height:36px}
.avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--gray-700),var(--gray-400));color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--hairline);background:rgba(255,255,255,.7);display:grid;place-items:center;cursor:pointer;position:relative;transition:all 180ms ease-out}
.icon-btn:hover{background:var(--gray-100)}
.icon-btn svg{width:16px;height:16px;stroke:var(--gray-700);fill:none;stroke-width:2;stroke-linecap:round}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--gray-900);border:1.5px solid #fff}
.noti-pop{position:absolute;right:0;top:46px;width:320px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--sh-float);padding:10px;display:none;z-index:50}
.noti-pop.open{display:block}
.noti-pop .n-item{padding:8px 10px;border-bottom:1px solid var(--hairline);font-size:13px}
.noti-pop .n-item:last-child{border-bottom:0}
.noti-pop .n-title{font-weight:500}.noti-pop .n-body{font-size:12px;color:var(--gray-500)}
.noti-pop .n-time{font-size:11px;color:var(--gray-400)}

.card{background:rgba(255,255,255,.72);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:20px;transition:all 180ms ease-out}
.card h3{font-size:15px;font-weight:600;line-height:1.2}
.sub{font-size:12px;color:var(--gray-500);letter-spacing:.04em}
.card-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.card-head>div:first-child{flex:1 1 auto;min-width:0}
.card-head .sub{margin-top:4px;line-height:1.5}
.card-head .toolbar{margin-left:auto;align-items:center}
.card-head .toolbar .t-meta{white-space:nowrap}
.grow{flex:1}

.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.kpi-num{font-family:ui-monospace,"JetBrains Mono",monospace;font-size:28px;font-weight:600;letter-spacing:-.02em}
.kpi-trend{font-size:12px;color:var(--gray-500);margin-top:6px}
.grid2{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr);gap:16px;align-items:start}
@media (max-width:1024px){.grid2{grid-template-columns:1fr}.layout{grid-template-columns:64px 1fr}.sidebar .brand b,.sidebar .nav-label,.sidebar .nav-item span,.sidebar .quota-box{display:none}}

.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;border-radius:99px;padding:2px 10px;line-height:20px;white-space:nowrap}
.pill .pt{width:6px;height:6px;border-radius:50%}
.pill.ok{background:var(--gray-900);color:#fff}
.pill.run{background:var(--gray-300);color:var(--gray-800)}
.pill.run .pt{background:var(--gray-700);animation:pulse 1.6s ease-in-out infinite}
.pill.wait{border:1px solid var(--gray-400);color:var(--gray-600)}
.pill.fail{border:1px solid var(--gray-700);color:var(--gray-800);position:relative;padding-left:14px}
.pill.fail::before{content:"";position:absolute;left:-1px;top:4px;bottom:4px;width:2px;background:var(--gray-900);border-radius:2px}
.pill.draft{background:var(--gray-100);color:var(--gray-500)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

table{width:100%;border-collapse:collapse}
thead th{font-size:11.5px;color:var(--gray-500);font-weight:400;letter-spacing:.06em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--hairline);white-space:nowrap}
tbody td{padding:11px 10px;border-bottom:1px solid var(--hairline);font-size:13.5px;vertical-align:middle}
tbody tr:hover{background:var(--gray-50)}
tbody tr:last-child td{border-bottom:0}
.t-title{font-weight:500;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-meta{font-size:12px;color:var(--gray-500)}
.mono{font-family:ui-monospace,monospace;font-size:12px;color:var(--gray-600)}
.plat{display:inline-flex;font-size:12px;color:var(--gray-600);background:var(--gray-100);border-radius:6px;padding:2px 8px;margin:2px 4px 2px 0;white-space:nowrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;height:38px;padding:0 16px;font:inherit;font-size:13.5px;cursor:pointer;transition:all 180ms ease-out;border:1px solid transparent;white-space:nowrap}
.btn-primary{background:var(--gray-900);color:#fff}
.btn-primary:hover{background:#000;transform:translateY(-1px);box-shadow:0 6px 18px rgba(23,23,27,.3)}
.btn-ghost{background:rgba(255,255,255,.7);border-color:var(--hairline);color:var(--gray-800)}
.btn-ghost:hover{background:var(--gray-100)}
.btn-danger{background:rgba(255,255,255,.7);border-color:var(--hairline);color:var(--gray-800)}
.btn-danger:hover{background:var(--gray-200)}
.btn-sm{height:32px;padding:0 12px;font-size:12.5px;border-radius:8px}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gray-900);outline-offset:2px}

input[type=text],input[type=password],input[type=datetime-local],input[type=number],input[type=time],select{
  width:100%;height:38px;border:1px solid var(--hairline);border-radius:10px;background:rgba(255,255,255,.85);
  padding:0 12px;font:inherit;font-size:13.5px;color:var(--gray-900);outline:none;transition:border-color 180ms ease-out}
textarea{
  width:100%;border:1px solid var(--hairline);border-radius:10px;background:rgba(255,255,255,.85);
  padding:9px 12px;font:inherit;font-size:13.5px;color:var(--gray-900);outline:none;transition:border-color 180ms ease-out}
input[type=file]{
  width:100%;height:38px;border:1px solid var(--hairline);border-radius:10px;background:rgba(255,255,255,.85);
  padding:0 10px;font:inherit;font-size:13px;color:var(--gray-500);outline:none;cursor:pointer}
input[type=file]::file-selector-button{
  font:inherit;font-size:12.5px;height:26px;padding:0 12px;margin-right:10px;border-radius:7px;
  border:1px solid var(--hairline);background:var(--gray-100);color:var(--gray-800);cursor:pointer;transition:background 180ms ease-out}
input[type=file]::file-selector-button:hover{background:var(--gray-200)}
input:focus,textarea:focus,select:focus{border-color:var(--gray-700);box-shadow:0 0 0 3px rgba(23,23,27,.08)}
textarea{min-height:280px;resize:vertical;font-family:inherit}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--gray-600);margin-bottom:6px}

.flash{position:fixed;top:96px;right:20px;z-index:99;display:flex;flex-direction:column;gap:8px;max-width:340px}
.flash .f{padding:11px 16px;border-radius:12px;font-size:13.5px;box-shadow:var(--sh-float);border:1px solid var(--hairline);animation:fin .3s ease-out}
.flash .f-ok{background:rgba(255,255,255,.92);border-left:3px solid var(--gray-900)}
.flash .f-error{background:rgba(255,255,255,.92);border-left:3px solid var(--gray-400);color:var(--gray-800)}
@keyframes fin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:100%;max-width:400px;background:rgba(255,255,255,.65);-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);
  border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:var(--sh-float);padding:36px 32px}
.login-card h2{font-size:20px;font-weight:600;margin-bottom:4px}
.hint{font-size:12.5px;color:var(--gray-500);background:var(--gray-100);border-radius:8px;padding:8px 12px;margin-top:16px}

.ai-out{font-size:13px;color:var(--gray-600);border-left:2px solid var(--gray-300);padding:2px 0 2px 12px;margin-top:10px;white-space:pre-wrap;max-height:260px;overflow:auto}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.chip{font-size:12px;color:var(--gray-600);border:1px solid var(--hairline);background:rgba(255,255,255,.7);border-radius:99px;padding:3px 11px;cursor:pointer;transition:all 150ms ease-out}
.chip:hover{background:var(--gray-100);color:var(--gray-900)}
.chip.on{background:var(--gray-900);color:#fff;border-color:var(--gray-900)}
.ai-loading{display:none;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:var(--gray-500)}
.ai-loading .pt{width:8px;height:8px;border-radius:50%;background:var(--gray-700);animation:pulse 1s ease-in-out infinite}
.modal-bg{position:fixed;inset:0;background:rgba(23,23,27,.35);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;place-items:center;z-index:80;padding:20px}
.modal-bg.open{display:grid}
.modal{width:100%;max-width:480px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:var(--sh-float);padding:28px;max-height:82vh;overflow:auto}
.modal h3{font-size:16px;font-weight:600;margin-bottom:16px}
.checkbox-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--hairline);border-radius:10px;margin-bottom:8px;cursor:pointer;background:rgba(255,255,255,.7)}
.checkbox-row:hover{background:var(--gray-50)}
.checkbox-row input{width:auto}
/* ===== 平台账号选择卡片（发布中心） ===== */
.acc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.acc-grid .acc-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--hairline);border-radius:12px;cursor:pointer;background:rgba(255,255,255,.7);transition:border-color .15s,background .15s,box-shadow .15s;user-select:none;text-align:left}
.acc-card:hover{border-color:var(--gray-400);background:var(--gray-050)}
.acc-card.sel{border-color:var(--gray-900);background:var(--gray-050);box-shadow:0 0 0 1px var(--gray-900)}
.acc-card input{display:none}
.acc-ico{width:34px;height:34px;border-radius:9px;background:var(--gray-900);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex:none}
.acc-card.sel .acc-ico{background:var(--gray-700)}
.acc-name{font-size:13.5px;font-weight:500;line-height:1.3;word-break:break-all}
.acc-plat{font-size:11.5px;color:var(--gray-500);margin-top:1px}
/* ===== 工具栏（搜索框/下拉/按钮统一等高） ===== */
.toolbar{display:flex;gap:8px;align-items:center}
.toolbar form{display:flex;gap:8px}
.toolbar input[type=text],.toolbar select{width:auto;height:34px;padding:0 12px;font-size:13px}
.toolbar .btn{height:34px;padding:0 14px;font-size:13px;display:inline-flex;align-items:center;justify-content:center}
/* ===== 快捷操作方块 ===== */
.qa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.qa-tile{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--hairline);border-radius:12px;background:rgba(255,255,255,.7);color:var(--gray-900);text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s}
.qa-tile:hover{border-color:var(--gray-900);background:var(--gray-050);box-shadow:0 2px 10px rgba(0,0,0,.07)}
.qa-txt{font-size:13.5px;font-weight:500}
.detail-json{font-family:ui-monospace,monospace;font-size:11.5px;color:var(--gray-500);word-break:break-all}

/* ===== 行内操作按钮组（表格操作列） ===== */
.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.row-actions form{display:inline-flex;margin:0}
/* ===== 点数充值包（等宽卡片） ===== */
.pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pack-grid form{margin:0}
.pack-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;height:auto;min-height:58px;padding:10px 14px;text-align:left;white-space:normal}
.pack-tile b{font-size:13.5px}
.pack-tile .t-meta{font-family:ui-monospace,monospace}
/* ===== 分页 ===== */
.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:14px}
.pager .pg-info{font-size:12.5px;color:var(--gray-500);margin-right:auto}
.pager .btn[disabled],.pager .btn.disabled{opacity:.45;pointer-events:none}
/* ===== 复选列表滚动区（规则目标账号） ===== */
.chk-box{max-height:210px;overflow:auto;border:1px solid var(--hairline);border-radius:10px;padding:6px 12px;background:rgba(255,255,255,.6)}
/* ===== 加宽弹窗（成员/规则等表单较多时） ===== */
.modal-lg{max-width:520px}

/* ===== 轻提示（替代原生 alert） ===== */
/* 轻提示：屏幕居中 · 黑色半透明圆角 · 白字（v36，全局统一） */
.toast-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(420px,86vw);pointer-events:none}
.toast-box .f{padding:13px 22px;border-radius:14px;font-size:14px;font-weight:500;line-height:1.6;text-align:center;color:#fff;background:rgba(17,17,17,.82);box-shadow:0 12px 40px rgba(0,0,0,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fin .25s ease-out}

/* ===== 套餐行 ===== */
.plan-row{display:flex;gap:12px;align-items:center;border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:rgba(255,255,255,.6)}
.plan-row.cur{background:var(--gray-050);border-color:var(--gray-300)}
.plan-row .t-meta{line-height:1.7}

/* ===== 表单行 / 复选 ===== */
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.chk-row{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:8px 0}
.chk-row .chk{font-weight:400;color:var(--gray-700)}

/* ===== 封面选择（内容编辑器） ===== */
.cover-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cover-box{width:76px;height:52px;border:1px solid var(--hairline);border-radius:10px;background:var(--gray-050);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}
.cover-box img{width:100%;height:100%;object-fit:cover;display:block}
.cover-empty{font-size:11px;color:var(--gray-400)}
.pick-cover{position:absolute;right:6px;top:6px;font-size:11px;line-height:1;padding:4px 6px;border-radius:7px;background:rgba(23,23,27,.72);color:#fff;opacity:0;transition:opacity .15s}
.pick-card:hover .pick-cover{opacity:1}

/* ===== 平台变体折叠区 ===== */
.vary{border:1px solid var(--hairline);border-radius:12px;background:rgba(255,255,255,.55);padding:10px 14px;margin:4px 0 12px}
.vary>summary{cursor:pointer;font-size:13.5px;font-weight:500;color:var(--gray-700);list-style:none;padding:2px 0}
.vary>summary::-webkit-details-marker{display:none}
.vary>summary::before{content:"▸ ";color:var(--gray-400)}
.vary[open]>summary::before{content:"▾ "}
.vary-item{border:1px solid var(--hairline);border-radius:10px;padding:10px 12px;margin-top:10px;background:var(--gray-050)}
.vary-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.vary-head .plat{font-size:13px;font-weight:500}

/* ===== 账号卡片单元格 / OAuth 行 ===== */
.acc-cell{border:1px solid var(--hairline);border-radius:12px;padding:12px;background:var(--gray-050);display:flex;gap:10px;align-items:center}
.acc-av{width:36px;height:36px;border-radius:9px;flex:0 0 auto;object-fit:cover;background:var(--gray-200)}
.acc-av-txt{width:36px;height:36px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--gray-900);color:#fff;font-size:14px;font-weight:600}
.oauth-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hairline)}
.oauth-row:last-child{border-bottom:0}

/* ===== 敏感词库 ===== */
.word-grid{display:flex;flex-wrap:wrap;gap:8px}
.word-tag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hairline);border-radius:999px;padding:4px 6px 4px 12px;background:var(--gray-050);font-size:12.5px;margin:0}
.word-tag:hover{border-color:var(--gray-400)}
.word-x{border:0;background:transparent;color:var(--gray-400);font-size:15px;line-height:1;cursor:pointer;padding:0 4px;border-radius:50%}
.word-x:hover{color:#fff;background:var(--gray-900)}

/* ===== AI 模型行 ===== */
.model-row{border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:rgba(255,255,255,.6)}
.model-row form{display:flex;flex-direction:column;gap:10px}
.model-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.model-head b{font-size:13.5px}

/* ===== 系统参数网格 ===== */
.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.set-grid .field{margin:0}

/* ===== 存储用量进度 ===== */
.progress{height:8px;border-radius:999px;background:var(--gray-200);overflow:hidden;margin:6px 0}
.progress>i{display:block;height:100%;background:var(--gray-900);border-radius:999px;transition:width .3s}
.progress.warn>i{background:var(--gray-600)}

/* ===== 视频缩略 ===== */
.asset-video{display:flex;align-items:center;justify-content:center;height:70px;background:var(--gray-900);color:#fff;font-size:11px;letter-spacing:.5px}

/* ===== Tab 面板 ===== */
.tab-panel{margin-bottom:16px}

/* ===== 后台：系统参数分组 / 平台配置折叠 / 运维按钮区（v17） ===== */
.set-group{border:1px solid var(--hairline);border-radius:12px;padding:14px 16px 16px;margin-bottom:14px;background:rgba(255,255,255,.5)}
.set-group>h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:8px}
.set-group>h4::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--gray-900)}
.set-group .set-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.set-group .field label{display:block;font-weight:500;color:var(--gray-800)}
.f-hint{font-size:11.5px;color:var(--gray-500);margin-top:4px;line-height:1.45}
.plat-config{margin-top:2px}
.plat-config summary{cursor:pointer;font-size:12.5px;color:var(--gray-500);list-style:none;display:flex;align-items:center;gap:8px;padding:6px 0;user-select:none;min-width:0}
.plat-config summary::-webkit-details-marker{display:none}
.plat-config summary::before{content:"\25B8";transition:transform .15s;font-size:11px;flex:none}
.plat-config[open] summary::before{transform:rotate(90deg)}
.plat-config summary:hover{color:var(--gray-900)}
.plat-config summary .t-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
.plat-config .plat-json{min-height:96px;margin-top:2px}
.plat-card .plat-top{margin-bottom:2px}
.ops-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--hairline);border-radius:12px;background:rgba(255,255,255,.5)}
/* ===== 卡片头对齐 / 字段操作行（v18） ===== */
.field-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.field-bar label{margin:0}

/* ===== 平台渠道：结构化配置表单（v19） ===== */
.plat-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.plat-top{flex-wrap:wrap;row-gap:4px}
.plat-name{white-space:nowrap}
.pf-sec{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:11.5px;font-weight:600;color:var(--gray-600);margin:12px 0 8px;padding-top:10px;border-top:1px dashed var(--hairline)}
.pf-sec .t-meta{flex:1 1 100%;font-weight:400;letter-spacing:0}
.pf-sec:first-of-type{border-top:0;padding-top:0;margin-top:4px}
.pf-sec .btn{margin-left:auto}
.pf-field{margin-bottom:8px}
.pf-field label{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--gray-600);margin-bottom:4px}
.pf-field input{height:32px;font-size:13px}
.pf-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kv-rows{display:flex;flex-direction:column;gap:6px}
.kv-row{display:flex;gap:6px;align-items:center}
.kv-row input{height:30px;font-size:12.5px}
.kv-row .kv-key{width:38%;font-family:ui-monospace,monospace}
.kv-row .kv-val{flex:1}
.kv-x{flex:none;width:26px;height:26px;border:1px solid var(--hairline);border-radius:7px;background:rgba(255,255,255,.7);color:var(--gray-500);cursor:pointer;font-size:14px;line-height:1}
.kv-x:hover{color:var(--gray-900);border-color:var(--gray-400)}
.pf-foot{display:flex;align-items:center;gap:10px;margin-top:10px}
.pf-foot .btn{flex:none}
.pf-foot2{border-top:1px dashed var(--hairline);padding-top:10px;margin-top:12px}
.plat-config .plat-form{margin-top:4px}

/* ===== 内容编辑：平台差异 / AI 双模式（v20） ===== */
.vary-wide{grid-column:1 / -1}
.form-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}

/* —— 平台差异区块 —— */
.vary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px}
@media (max-width:900px){.vary-grid{grid-template-columns:1fr}}
.vcard{border:1px solid var(--hairline);border-radius:14px;background:var(--gray-0);padding:12px 14px 10px;transition:border-color .16s,box-shadow .16s;min-width:0}
.vcard.on{border-color:var(--gray-400);box-shadow:0 2px 12px rgba(23,23,27,.06)}
.vcard.err{border-color:var(--gray-700)}
.vcard-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.vcard-head>b{font-size:13.5px;font-weight:600;white-space:nowrap}
.vcard-head .plat{font-size:11.5px;color:var(--gray-400);white-space:nowrap}

/* 沿用主内容 / 已自定义 切换（状态圆点 + 文字） */
.vmode{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--gray-500);cursor:pointer;user-select:none;padding:3px 10px;border:1px solid var(--hairline);border-radius:99px;background:var(--gray-50);white-space:nowrap;transition:border-color .15s,background .15s,color .15s}
.vmode:hover{border-color:var(--gray-400)}
.vmode input{display:none}
.vmode::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gray-300);flex:none;transition:background .16s}
.vcard.on .vmode{color:var(--gray-900);border-color:var(--gray-400);background:var(--gray-100)}
.vcard.on .vmode::before{background:var(--gray-900)}

/* 平台设置标签 */
.vset{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.vtag{font-size:11.5px;color:var(--gray-600);background:var(--gray-100);border-radius:6px;padding:2px 8px;line-height:18px;white-space:nowrap}
.vhint{font-size:11.5px;color:var(--gray-400);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 差异内容字段 */
.vfields{border-top:1px dashed var(--hairline);padding-top:10px;transition:opacity .16s}
.vfields.dim{opacity:.42;pointer-events:none}
.vf{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.vf>label{flex:0 0 40px;font-size:12px;color:var(--gray-500)}
.vf>input,.vf>textarea{flex:1 1 auto;width:auto;min-width:0;font-size:12.5px}
.vf>textarea{min-height:84px;line-height:1.6;resize:vertical}
.vf.vf-body{align-items:flex-start}
.vf.vf-body>label{margin-top:8px}
.v-count{flex:0 0 auto;min-width:70px;text-align:right;font-size:11px;color:var(--gray-400);font-family:ui-monospace,monospace}
.v-count.over{color:#b91c1c;font-weight:600}
.v-hint-inline{flex:0 0 auto;font-size:11px;color:var(--gray-400);white-space:nowrap}
.vfoot{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--hairline)}
.vfoot .btn{height:28px;padding:0 10px;font-size:12px;border-radius:8px}

/* —— AI 生成模式选择 —— */
.ai-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ai-mode{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--hairline);border-radius:12px;padding:10px 12px;cursor:pointer;background:var(--gray-0);transition:border-color .15s,background .15s}
.ai-mode:hover{border-color:var(--gray-400)}
.ai-mode.on{border-color:var(--gray-900);background:var(--gray-50);box-shadow:0 0 0 1px var(--gray-900)}
.ai-mode input{display:none}
.ai-mode b{font-size:13px;font-weight:600;color:var(--gray-800)}
.ai-mode span{font-size:11.5px;color:var(--gray-500);line-height:1.45}
.ai-mode.on b{color:var(--gray-900)}

/* —— 目标平台多选 —— */
.vp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.vp-card{display:flex;flex-direction:column;gap:1px;border:1.5px solid var(--hairline);border-radius:10px;padding:7px 9px;cursor:pointer;background:var(--gray-0);transition:border-color .14s,background .14s;user-select:none;min-width:0}
.vp-card:hover{border-color:var(--gray-400)}
.vp-card.sel{border-color:var(--gray-900);background:var(--gray-50);box-shadow:0 0 0 1px var(--gray-900)}
.vp-card input{display:none}
.vp-card b{font-size:12.5px;font-weight:500;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-card .t-meta{font-family:ui-monospace,monospace;font-size:11px}
.vp-card.sel b{color:var(--gray-900)}

/* ===== v21: 平台参数配置弹窗 ===== */
.plat-foot{display:flex;align-items:center;justify-content:flex-end;margin-top:8px}
.modal-w{max-width:600px}
.pf-modal-foot{align-items:center}
.pf-side{display:inline-flex;margin:0}
.pf-side .btn{flex:none}

/* ===== v22: 内容编辑页排版重构（单列流 + AI 指挥栏 + 差异卡精简） ===== */
.content-flow{display:flex;flex-direction:column;gap:16px}
.ai-seg{display:inline-flex;border:1px solid var(--hairline);border-radius:10px;background:var(--gray-050);padding:3px;gap:2px}
.ai-seg button{border:0;background:transparent;border-radius:8px;padding:6px 14px;font:inherit;font-size:12.5px;font-weight:600;color:var(--gray-500);cursor:pointer;transition:all .14s;white-space:nowrap}
.ai-seg button:hover{color:var(--gray-800)}
.ai-seg button.on{background:var(--gray-0);color:var(--gray-900);box-shadow:0 1px 4px rgba(23,23,27,.14)}
.ai-row{display:flex;gap:12px;align-items:flex-end}
.ai-row .field{flex:1;margin:0}
.ai-gen{height:40px;flex:none;padding:0 24px}
.ai-ctx .vp-grid{margin-top:2px}
.asset-sec{margin-top:14px;border-top:1px dashed var(--hairline);padding-top:12px}
.vmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--gray-500);margin:2px 0 8px;cursor:help}
.vmeta .sep{color:var(--gray-300)}
.vinherit-tip{font-size:11.5px;color:var(--gray-400);border-top:1px dashed var(--hairline);padding-top:9px;margin-top:2px}
.vcard.on .vinherit-tip{display:none}
.vcard:not(.on) .vfields,.vcard:not(.on) .vfoot{display:none}

/* ===== v23: 封面独立行 / AI 结果居中弹窗 / 差异网格规范化 ===== */
.cover-field{margin-top:0}
.ai-result-body{max-height:54vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:13.5px;line-height:1.85;color:var(--gray-800);background:var(--gray-050);border:1px solid var(--hairline);border-radius:12px;padding:16px 18px}
.vary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1280px){.vary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.vary-grid{grid-template-columns:1fr}}
.vcard{display:flex;flex-direction:column}
.vcard .vfields,.vcard .vfoot{margin-top:auto}
.vcard .vfoot{border-top:1px dashed var(--hairline);padding-top:9px}

/* ===== v24: AI 模型卡片化 ===== */
.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1280px){.model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.model-grid{grid-template-columns:1fr}}
.model-card{display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:12px;background:var(--gray-050);padding:12px 14px;transition:border-color .15s,box-shadow .15s}
.model-card:hover{box-shadow:0 2px 10px rgba(0,0,0,.07)}
.model-card.on{border-color:var(--gray-300);background:var(--gray-0)}
.model-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.model-top>b{font-size:13.5px;font-weight:600}
.model-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--gray-500);margin-top:8px}
.model-meta .sep{color:var(--gray-300)}
.model-url{font-size:11.5px;color:var(--gray-400);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-foot{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--hairline)}

/* ===== v25: AI 卡头部左对齐 + 生成按钮独立行 ===== */
.ai-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}
.ai-actions .ai-gen{height:38px;padding:0 22px;flex:none}
.ai-actions .t-meta{flex:1 1 260px;min-width:0;line-height:1.6}

/* ===== v26: 账号专属文案 / 发布风险提示 / 强制重发 ===== */
.vacc{border-top:1px dashed var(--hairline);margin-top:10px;padding-top:10px}
.vacc-head{display:flex;align-items:center;gap:8px}
.vacc-head>b{font-size:12.5px;font-weight:600;color:var(--gray-800)}
.vacc-tip{font-size:11.5px;color:var(--gray-400);margin:4px 0 8px;line-height:1.6}
.vacc-list{display:flex;flex-direction:column;gap:8px}
.vacc-card{border:1px solid var(--hairline);border-radius:10px;background:var(--gray-0);padding:10px 12px}
.vacc-card.on{border-color:var(--gray-300);background:var(--gray-050)}
.vacc-top{display:flex;align-items:center;gap:7px}
.vacc-top>b{font-size:12.5px;font-weight:600}
.vacc-ico{width:20px;height:20px;border-radius:6px;background:var(--gray-900);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.vacc-inherit{font-size:11.5px;color:var(--gray-400);margin-top:7px}
.vacc-card:not(.on) .vacc-fields{display:none}
.vacc-card.on .vacc-inherit{display:none}
.vacc-fields{margin-top:9px;display:flex;flex-direction:column;gap:9px}
.vacc-fields .vf label{font-size:11.5px;color:var(--gray-500)}
.vacc-fields .vfoot{margin-top:2px;padding-top:8px}
.acc-warn{margin-top:10px;font-size:12.5px;line-height:1.6;color:#854F0B;background:#FAEEDA;border-radius:8px;padding:9px 12px}
.chk-block{margin-top:14px}
.flash .f-warn{background:rgba(255,255,255,.92);border-left:3px solid #BA7517;color:var(--gray-800)}
.vcard .vacc-card .vmode{color:var(--gray-500);border-color:var(--hairline);background:var(--gray-0)}
.vcard .vacc-card .vmode::before{background:var(--gray-300)}
.vcard .vacc-card.on .vmode{color:var(--gray-900);border-color:var(--gray-400);background:var(--gray-100)}
.vcard .vacc-card.on .vmode::before{background:var(--gray-900)}

/* v27：平台差异空态（未接入任何平台账号） */
.vary-empty{border:1px dashed var(--hairline);border-radius:14px;padding:26px 18px;text-align:center;font-size:13px;line-height:1.9;color:var(--gray-500);background:var(--gray-50)}
.vary-empty a{color:var(--gray-900);text-decoration:underline}
.vary-empty a:hover{color:var(--gray-800)}

/* v28：平台参数配置·「仅兜底」字段标注（AppID/AppSecret 账号级优先） */
.pf-badge{display:inline-block;margin:0 2px 0 6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.7;letter-spacing:.2px;color:var(--gray-600);background:var(--gray-100);border:1px solid var(--hairline);vertical-align:middle}
.pf-fallback input{background:var(--gray-050)}
.pf-note{margin-top:6px;font-size:12px;line-height:1.7;color:var(--gray-500)}
.pf-note b{color:var(--gray-700);font-weight:600}

/* v29：内容库·发布平台列与工具栏筛选 */
.flt-form{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.pub-plats{display:flex;flex-wrap:wrap;gap:4px;max-width:280px}
.pp{display:inline-flex;align-items:center;gap:5px;max-width:100%;font-size:12px;line-height:18px;padding:1px 8px;border-radius:99px;white-space:nowrap;border:1px solid transparent}
.pp b{font-weight:500}
.pp i{font-style:normal;font-size:11px;opacity:.62;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pp em{font-style:normal;font-size:11px;opacity:.75;padding-left:6px;margin-left:1px;border-left:1px solid currentColor}
.pp.ok{background:var(--gray-900);color:#fff}
.pp.no{background:var(--gray-100);color:var(--gray-500)}

/* v30：平台渠道·配置检测结果状态色（绿=配置已通，红=检测未通过） */
.pill.pass{background:#e7f4ea;color:#177a3d;border:1px solid #bfe3c9}
.pill.bad{background:#fdeceb;color:#b3261e;border:1px solid #f3c4bf}

/* v31：平台账号·接入指引（弹窗卡片 + 表单内联提示） */
.guide-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
.guide-card{border:1px solid var(--hairline);border-radius:12px;padding:12px 14px;background:var(--gray-050)}
.guide-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.guide-top b{font-size:13.5px}
.guide-need{margin-top:8px;font-size:12.5px;line-height:1.8;color:var(--gray-600)}
.gn-label{display:inline-block;margin-right:6px;padding:0 6px;border-radius:6px;background:var(--gray-200);color:var(--gray-700);font-size:11px;line-height:18px}
.guide-links{margin-top:6px;font-size:12.5px;color:var(--gray-600)}
.guide-links a{color:var(--gray-900);text-decoration:underline}
.guide-steps{margin:8px 0 0;padding-left:20px;font-size:12.5px;line-height:1.9;color:var(--gray-600)}
.guide-inline{margin:2px 0 10px}
.gi-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.gi-need,.gi-links{font-size:12.5px;line-height:1.8;color:var(--gray-600)}
.gi-steps{margin:6px 0 0;padding-left:20px;font-size:12.5px;line-height:1.85;color:var(--gray-600)}
.gi-links a{color:var(--gray-900);text-decoration:underline}

/* v32：平台渠道·黄色「凭据未配置」状态（真实API通道参数合法但缺凭据） */
.pill.warn{background:#fdf3e0;color:#9a6b0f;border:1px solid #f0dcae}

/* v33：接入指引对齐修正（序号行内，所有行共享左边界） */
.gi-steps{padding-left:0;list-style-position:inside}
.guide-steps{padding-left:0;list-style-position:inside}
.gi-steps li,.guide-steps li{margin:0}

/* v34：接入指引·分类标签过滤 */
.gf-bar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 2px}
.gf-btn{border:1px solid var(--hairline);background:var(--gray-100);border-radius:999px;padding:4px 14px;font-size:12.5px;color:var(--gray-600);cursor:pointer}
.gf-btn .mono{font-size:11.5px;opacity:.7;margin-left:2px}
.gf-btn:hover{background:var(--gray-200)}
.gf-btn.on{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.guide-card[data-os="1"] .plat::after{content:" · 海外"}

/* v35：平台差异·配图按平台选择 / 账号专属卡排版修正 */
.vf-media{align-items:flex-start}
.vf-media>label{margin-top:6px}
.vmedia{flex:1 1 auto;min-width:0;border:1px dashed var(--hairline);border-radius:10px;padding:8px 10px;background:var(--gray-050)}
.vmedia-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.vmedia-inh{font-size:11.5px;color:var(--gray-500)}
.vmedia-cnt{font-size:11px;color:var(--gray-500)}
.vmedia-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.vm-chk{position:relative;width:50px;height:50px;border-radius:8px;overflow:hidden;border:2px solid transparent;cursor:pointer;flex:none;background:var(--gray-200)}
.vm-chk input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.vm-chk img{width:100%;height:100%;object-fit:cover;display:block}
.vm-chk.on{border-color:var(--gray-900)}
.vm-chk.on::after{content:"✓";position:absolute;right:2px;bottom:2px;width:14px;height:14px;border-radius:50%;background:var(--gray-900);color:#fff;font-size:10px;line-height:14px;text-align:center}
.vmedia-tip{margin-top:6px;font-size:11px;color:var(--gray-400)}
/* 账号专属卡：字段改为「标签在上、控件在下」，窄卡不再挤压错位 */
.vacc-fields .vf{flex-wrap:wrap;row-gap:4px}
.vacc-fields .vf>label{flex:0 0 100%}
.vacc-fields .vf .v-hint-inline{display:none}
.vacc-fields .vf .v-count{min-width:0;margin-left:auto}
/* 差异网格：按内容宽度自适应列数（覆盖 v23 固定 3 列） */
.vary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px}

/* ===== v38: 内容编辑器「通用内容 + 平台标签」合并布局 ===== */
.ptabs{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end;border-top:1px dashed var(--hairline);margin-top:16px;padding-top:14px}
.ptab{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hairline);border-bottom-color:transparent;background:var(--gray-050);border-radius:10px 10px 0 0;padding:8px 14px;font:inherit;font-size:12.5px;font-weight:600;color:var(--gray-500);cursor:pointer;transition:background .14s,color .14s,border-color .14s}
.ptab:hover{background:var(--gray-100);color:var(--gray-800)}
.ptab.on{background:var(--gray-0);color:var(--gray-900);border-color:var(--gray-400);box-shadow:0 -2px 10px rgba(23,23,27,.06)}
.ptab i{font-style:normal;font-size:11px;font-weight:500;color:var(--gray-400);white-space:nowrap}
.ptab.custom i{color:var(--gray-900);font-weight:600}
.ptab.custom::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--gray-900);flex:none}
.ptabs-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px}
.ppane{border:1px solid var(--hairline);border-radius:0 14px 14px 14px;background:var(--gray-0);padding:14px 16px}
.pane-head{border-bottom:1px dashed var(--hairline);padding-bottom:10px;margin-bottom:12px}
.pane-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pane-title>b{font-size:14px;font-weight:600}
.pane-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;font-size:11.5px;color:var(--gray-500)}
.pane-meta .sep{color:var(--gray-300)}
.pane-tip{margin-top:6px;font-size:11.5px;color:var(--gray-400);line-height:1.6;cursor:help}
.pane-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.vai{height:32px;padding:0 14px;font-size:12.5px;border-radius:9px}
/* 沿用状态下字段淡显但仍可直接编辑（首次输入会自动切到「自定义」） */
.ppane .vfields.dim{opacity:.55;pointer-events:auto}
.ppane .vinherit-tip{border-top:0;padding-top:0}
/* 共享素材选择卡 */
.cm-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
.cm-card{padding-bottom:0}
.cm-card.on{border-color:var(--gray-900);box-shadow:0 0 0 1px var(--gray-900)}
.cm-chk{position:absolute;left:6px;top:6px;z-index:2;width:16px;height:16px;margin:0;accent-color:#17171b;cursor:pointer}
.pick-ops{display:flex;gap:4px;padding:2px 6px 7px;position:relative;z-index:2}
.pick-op{flex:1 1 0;border:1px solid var(--hairline);background:var(--gray-0);border-radius:7px;font:inherit;font-size:10.5px;color:var(--gray-500);padding:3px 2px;cursor:pointer;white-space:nowrap;transition:all .14s}
.pick-op:hover{color:var(--gray-900);border-color:var(--gray-400)}
.pick-op.on{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.cover-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;border-top:1px dashed var(--hairline);margin-top:14px;padding-top:14px}
@media (max-width:820px){.ptabs-meta{align-items:flex-start;flex-direction:column}.ppane{border-radius:14px;padding:12px}}

/* ===== v39: 网站文章 / SEO / GEO ===== */
/* 标签条可换行（SEO/GEO 页标签较多） */
.tabs{flex-wrap:wrap}
.tab-btn .mono{font-size:11.5px;opacity:.65;margin-left:2px}
.tab-btn.active .mono{opacity:.85}

/* 站点卡片 */
.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
@media (max-width:920px){.site-grid{grid-template-columns:1fr}}
.site-card{border:1px solid var(--hairline);border-radius:14px;background:var(--gray-0);padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .16s,box-shadow .16s}
.site-card:hover{border-color:var(--gray-300);box-shadow:0 2px 12px rgba(23,23,27,.06)}
.site-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.site-head>b{font-size:14px;font-weight:600}
.site-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11.5px;color:var(--gray-500)}
.site-meta .sep{color:var(--gray-300)}
.site-links{display:flex;flex-wrap:wrap;gap:6px}
.site-ops{border-top:1px dashed var(--hairline);padding-top:10px}
.site-fold{border-top:1px dashed var(--hairline);padding-top:8px}
.site-fold>summary{cursor:pointer;font-size:12.5px;color:var(--gray-600);list-style:none;padding:2px 0;user-select:none}
.site-fold>summary::-webkit-details-marker{display:none}
.site-fold>summary::before{content:"\25B8";display:inline-block;margin-right:6px;font-size:11px;transition:transform .15s}
.site-fold[open]>summary::before{transform:rotate(90deg)}
.site-fold>summary:hover{color:var(--gray-900)}

/* 日志 / 快照列表 */
.log-list{display:flex;flex-direction:column;gap:8px}
.log-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--gray-050);font-size:12.5px}
.log-item .log-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-700)}

/* 趋势条 */
.trend-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:11.5px}
.trend-row>.mono{flex:0 0 44px;color:var(--gray-500)}
.trend-track{flex:1;height:8px;border-radius:99px;background:var(--gray-150,#eee);overflow:hidden}
.trend-track>i{display:block;height:100%;background:var(--gray-900);border-radius:99px;transition:width .3s}
.trend-row>.t-meta{flex:0 0 52px;text-align:right;font-family:ui-monospace,monospace}

/* 网站文章编辑器：站点变体字段 */
.smeta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.score-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;border-radius:99px;padding:2px 10px;line-height:20px;background:var(--gray-100);color:var(--gray-700)}
.score-badge b{font-family:ui-monospace,monospace;font-size:12.5px;color:var(--gray-900)}
.audit-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.audit-item{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.6;color:var(--gray-600)}
.audit-item .dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--gray-300)}
.audit-item.ok .dot{background:var(--gray-900)}
.audit-item.warn .dot{background:var(--gray-500)}
.audit-item.bad .dot{border:1px solid var(--gray-900);background:transparent}
.faq-row{display:flex;flex-direction:column;gap:6px;border:1px solid var(--hairline);border-radius:10px;padding:10px 12px;background:var(--gray-050);margin-bottom:8px}
.faq-row input,.faq-row textarea{font-size:12.5px}
.faq-row textarea{min-height:56px;resize:vertical}
.faq-x{display:flex;justify-content:flex-end}
.faq-x button{border:0;background:transparent;color:var(--gray-400);cursor:pointer;font-size:14px;padding:0 4px;border-radius:6px}
.faq-x button:hover{color:var(--gray-900);background:var(--gray-100)}

/* ===== v41: 图片选择器（按分类 · 各内容区独立）/ 封面选择弹窗 / AI 行对齐 ===== */
/* AI 生成区：无「创作要求」输入框，仅一个按钮 + 说明文字（垂直居中并留出间距） */
.ai-ctx{margin-top:14px;border-top:1px dashed var(--hairline);padding-top:12px}
.ai-ctx .chips{margin-top:0}
.ai-ctx .ai-actions{margin-top:12px}

/* 图片选择器容器（放在各内容区里） */
.vf.vf-media{flex-wrap:wrap;row-gap:4px}
.vf.vf-media>label{flex:0 0 100%;margin-top:0}
.mpx{flex:1 1 auto;min-width:0;border:1px dashed var(--hairline);border-radius:10px;padding:8px 10px;background:var(--gray-050)}
.mpx-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mpx-hint{font-size:11.5px;color:var(--gray-500)}
.mpx-cnt{white-space:nowrap}
.mpx-cnt.over{color:#b91c1c;font-weight:600}
.mpx-foot .btn{height:28px;padding:0 10px;font-size:12px;border-radius:8px}
.mpx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mpx-chips .cat-chip{font:inherit;font-size:12px;cursor:pointer;padding:3px 10px;line-height:18px}
.mpx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:8px;max-height:232px;overflow:auto;padding-right:2px}
.mpx-grid .mpx-card{position:relative;display:block;margin:0;border:1px solid var(--hairline);border-radius:10px;background:var(--gray-0);padding:0;overflow:hidden;cursor:pointer;text-align:left;font:inherit;transition:border-color .15s,box-shadow .15s}
.mpx-grid .mpx-card:hover{border-color:var(--gray-400);box-shadow:0 2px 10px rgba(23,23,27,.08)}
.mpx-grid .mpx-card.on{border-color:var(--gray-900);box-shadow:0 0 0 1px var(--gray-900)}
.mpx-grid .mpx-card[hidden]{display:none}
.mpx-grid .pick-thumb{display:block;height:60px;background:var(--gray-100)}
.mpx-grid .pick-name{display:block;font-size:10.5px;color:var(--gray-600);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mpx-card input[type=checkbox]{position:absolute;left:5px;top:5px;z-index:2;width:15px;height:15px;margin:0;accent-color:#17171b;cursor:pointer}
.mpx-card.on::after{content:"\2713";position:absolute;right:4px;top:4px;z-index:2;width:15px;height:15px;border-radius:50%;background:var(--gray-900);color:#fff;font-size:10px;line-height:15px;text-align:center}
.mpx-none-tip{grid-column:1 / -1;font-size:12px;color:var(--gray-500);padding:10px 2px}
.mpx-none-tip a{color:var(--gray-900);text-decoration:underline}
/* 封面弹窗：选择器占满弹窗宽度 */
#coverModal .mpx{background:var(--gray-050)}
#coverModal .mpx-grid{max-height:46vh}

/* ===== v42: 富文本正文只属于文章（下沉到站点标签页）/ 通用描述改纯文本 / 移除 AI 场景标签 ===== */
/* 通用内容 = 社媒平台共用的「描述」，纯文本多行 */
.ta-desc{min-height:200px;line-height:1.75;resize:vertical}
.field>label .t-meta{font-weight:400}

/* AI 生成区：场景标签已移除，只保留按钮 + 说明（垂直居中并留间距） */
.ai-ctx{margin-top:14px;border-top:1px dashed var(--hairline);padding-top:12px}
.ai-ctx .ai-actions{margin-top:0}

/* 文章正文富文本编辑器（网站 · 站点标签页，可多实例） */
.vf.vf-rte{flex-wrap:wrap;row-gap:6px;align-items:stretch}
.vf.vf-rte>label{flex:0 0 100%;margin-top:0}
.rte{flex:1 1 100%;min-width:0;border:1px solid var(--hairline);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.75)}
.rte-bar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;border-bottom:1px solid var(--hairline);background:var(--gray-050);align-items:center}
.rte-bar .rte-cnt{font-family:ui-monospace,monospace;padding-right:4px}
.rte-area{min-height:260px;max-height:52vh;overflow:auto}
.rte-area a{color:var(--gray-900);text-decoration:underline}

/* ===== v43: 长表单弹窗分页签（新建/编辑站点）===== */
.modal-xl{max-width:940px;display:flex;flex-direction:column;max-height:86vh;overflow:hidden}
.modal-xl .modal-head{flex:none}
.modal-xl .modal-foot{flex:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline)}
/* 页签栏固定在弹窗顶部，只有内容区滚动 */
.mtabs{flex:none;display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--hairline);margin:0 0 16px}
.mtab{position:relative;border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--gray-500);
  padding:8px 12px 10px;margin-bottom:-1px;border-bottom:2px solid transparent;cursor:pointer;
  display:inline-flex;align-items:center;gap:7px;transition:color .14s,border-color .14s}
.mtab:hover{color:var(--gray-800)}
.mtab.on{color:var(--gray-900);border-bottom-color:var(--gray-900)}
.mtab.dirty::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--gray-900);flex:none}
.mtab.err::before{content:"!";flex:none;width:14px;height:14px;border-radius:50%;background:var(--gray-900);color:var(--gray-0);
  font-size:10px;line-height:14px;text-align:center}
.mpane{display:none}
.mpane.on{display:block;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:4px;margin-right:-4px}
/* 内容区更宽 → 三列排布，篇幅大幅缩短 */
.modal-xl .set-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px 16px}
.modal-xl .set-grid+.set-grid{margin-top:12px}
.modal-xl .set-grid .field.wide{grid-column:1/-1}
.modal-xl .chk-row{padding:12px 0 2px}
@media (max-width:820px){.modal-xl{max-width:100%}.modal-xl .set-grid{grid-template-columns:1fr}.mtab{padding:8px 9px 10px;font-size:12.5px}}
/* 复选/单选统一黑白灰（原生默认蓝与单色系冲突） */
input[type=checkbox],input[type=radio]{accent-color:var(--gray-900)}

/* ===== v45: 后台 AI 模型（对话/生图分池 + 子页签 + 连通性测试）===== */
.tabs.sub{margin:0 0 14px;padding:4px;border-radius:11px}
.tabs.sub .tab-btn{font-size:12.5px;padding:6px 14px}
.tabs.sub .tab-btn .mono{margin-left:5px;font-size:11px}
.ai-sub{display:block}
.ai-hide{display:none!important}
.ai-switch{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:8px;font-size:12.5px;
  border:1px solid var(--hairline);background:var(--gray-050);color:var(--gray-700)}
.ai-switch.on{background:var(--gray-900);border-color:var(--gray-900);color:var(--gray-0)}
.ai-switch.off{color:var(--gray-500)}
.ai-chain{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--gray-700);
  border:1px solid var(--hairline);border-radius:9px;padding:8px 10px;background:var(--gray-050)}
.ai-chain-i{font-family:ui-monospace,monospace;font-size:12px}
.ai-chain-i.off{color:var(--gray-400);text-decoration:line-through}
.modal-w form.ai-model-form .chk-row{padding:6px 0 2px}
.modal-w form.ai-model-form .field-row+.field-row{margin-top:10px}

/* ===== v44: AI 助手首页（对话 / 生图 / 会话列表）===== */
/* --- 紧凑指标条：常驻展示核心数据 --- */
.ai-metrics{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:rgba(255,255,255,.62);border:1px solid var(--hairline);
  border-radius:12px;box-shadow:var(--sh-card);padding:10px 16px;font-size:12.5px;color:var(--gray-500)}
.ai-metrics .am b{font-size:16px;font-weight:600;color:var(--gray-900);margin-right:5px;font-variant-numeric:tabular-nums}
.ai-metrics .am.warn b{text-decoration:underline;text-underline-offset:3px}

/* --- 主框架：会话列表 + 对话区 --- */
.ai-shell{display:grid;grid-template-columns:252px minmax(0,1fr);gap:14px;height:calc(100vh - 214px);min-height:520px}
.ai-convbar{display:flex;flex-direction:column;gap:8px;min-width:0;background:rgba(255,255,255,.6);border:1px solid var(--hairline);
  border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:12px;transition:width .16s}
.ai-cbhead{display:flex;gap:6px;align-items:center}
.ai-search input{height:34px}
.ai-convlist{flex:1;overflow:auto;display:flex;flex-direction:column;gap:2px;margin:0 -4px;padding:0 4px}
.ai-conv{display:flex;align-items:center;gap:6px;padding:8px;border-radius:10px;cursor:pointer;transition:background .14s;position:relative;min-width:0}
.ai-conv:hover{background:var(--gray-100)}
.ai-conv.on{background:var(--gray-900)}
.ai-conv.on .ai-ctitle,.ai-conv.on .ai-ctime,.ai-conv.on .ai-pin{color:var(--gray-0)}
.ai-conv.on .ai-cop{color:var(--gray-300)}
.ai-pin{font-size:11px;color:var(--gray-300);flex:none;line-height:1}
.ai-pin.on{color:var(--gray-900)}
.ai-ctitle{flex:1;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-ctime{font-size:11px;color:var(--gray-400);flex:none;font-family:ui-monospace,monospace}
.ai-cops{display:none;gap:2px;flex:none}
.ai-conv:hover .ai-cops{display:flex}
.ai-conv:hover .ai-ctime{display:none}
.ai-cop{border:0;background:transparent;color:var(--gray-500);cursor:pointer;font-size:12px;padding:2px 5px;border-radius:6px;line-height:1}
.ai-cop:hover{background:rgba(255,255,255,.9);color:var(--gray-900)}
.ai-conv-empty{padding:14px 8px;font-size:12.5px;color:var(--gray-400);line-height:1.7}
.ai-cbmore{padding:6px 8px 0;font-size:11.5px;color:var(--gray-400);border-top:1px solid var(--hairline)}
.ai-convbar.mini{width:auto;padding:12px 8px}
.ai-convbar.mini .ai-search,.ai-convbar.mini .ai-convlist,.ai-convbar.mini .ai-cbmore{display:none}
.ai-convbar.mini #aiNew{display:none}

/* --- 对话区 --- */
.ai-main{display:flex;flex-direction:column;min-width:0;background:rgba(255,255,255,.62);border:1px solid var(--hairline);
  border-radius:var(--r-lg);box-shadow:var(--sh-card);overflow:hidden;position:relative}
.ai-chead{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--hairline);flex-wrap:wrap}
.ai-ct{font-size:14px;font-weight:600;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-chead select{width:auto;min-width:170px;height:32px;font-size:12.5px}
.ai-chead .grow{flex:1}
.ai-msgs{flex:1;overflow:auto;padding:16px 18px 8px;display:flex;flex-direction:column;gap:14px}
.ai-msg{display:flex;gap:10px;align-items:flex-start;max-width:100%}
.ai-msg.me{flex-direction:row-reverse}
.ai-ava{flex:none;width:28px;height:28px;border-radius:9px;background:var(--gray-900);color:var(--gray-0);font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;margin-top:2px}
.ai-msg.me .ai-ava{background:var(--gray-200);color:var(--gray-700)}
.ai-bubble{min-width:0;max-width:min(760px,78%);background:rgba(255,255,255,.9);border:1px solid var(--hairline);
  border-radius:14px;padding:10px 14px;box-shadow:var(--sh-card)}
.ai-msg.me .ai-bubble{background:var(--gray-900);color:var(--gray-0);border-color:var(--gray-900)}
.ai-msg.pending .ai-bubble{border-style:dashed}
.ai-msg.bad .ai-bubble{border-left:3px solid var(--gray-400)}
.ai-msg.stopped .ai-bubble{border-left:3px dashed var(--gray-400)}
.ai-mmeta{font-size:11px;color:var(--gray-400);margin-top:6px;font-family:ui-monospace,monospace}
.ai-msg.me .ai-mmeta{color:rgba(255,255,255,.6)}
.ai-mmeta:empty{display:none}
.ai-merr{margin-top:6px;font-size:12px;color:var(--gray-700);background:var(--gray-100);border-radius:8px;padding:6px 9px}
.ai-acts{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap;opacity:0;transition:opacity .14s}
.ai-msg:hover .ai-acts{opacity:1}
.ai-acts button{border:1px solid var(--hairline);background:rgba(255,255,255,.8);color:var(--gray-600);font:inherit;font-size:11.5px;
  padding:3px 9px;border-radius:7px;cursor:pointer;transition:all .14s}
.ai-acts button:hover{color:var(--gray-900);border-color:var(--gray-400)}
.ai-typing{display:flex;gap:4px;padding:4px 0 2px}
.ai-typing .pt{width:6px;height:6px;border-radius:50%;background:var(--gray-500);display:block;animation:pulse 1.1s ease-in-out infinite}
.ai-typing .pt:nth-child(2){animation-delay:.18s}
.ai-typing .pt:nth-child(3){animation-delay:.36s}
.ai-reason{margin:0 0 8px;font-size:12px;color:var(--gray-500)}
.ai-reason summary{cursor:pointer}
.ai-reason-body{margin-top:6px;padding:8px 10px;background:var(--gray-050);border-radius:8px;white-space:pre-wrap;max-height:200px;overflow:auto}

/* --- 生图卡片 --- */
.ai-imgcard{border:1px solid var(--hairline);border-radius:12px;overflow:hidden;background:var(--gray-050)}
.ai-imghead{font-size:12px;color:var(--gray-600);padding:8px 10px;border-bottom:1px solid var(--hairline);background:rgba(255,255,255,.7)}
.ai-imggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;padding:8px}
.ai-imgitem{display:block;border:1px solid var(--hairline);border-radius:9px;overflow:hidden;background:var(--gray-0);line-height:0}
.ai-imgitem img{width:100%;height:auto;display:block;transition:transform .2s}
.ai-imgitem:hover img{transform:scale(1.02)}
.ai-imgwait{padding:14px 12px;font-size:12.5px;color:var(--gray-500);display:flex;align-items:center;gap:8px}
.ai-imgwait .pt{width:7px;height:7px;border-radius:50%;background:var(--gray-600);animation:pulse 1.1s ease-in-out infinite;flex:none}
.ai-imgwait.bad{color:var(--gray-700)}
.ai-imgfoot{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--hairline);background:rgba(255,255,255,.7);flex-wrap:wrap}
.ai-imgmeta{padding:0 10px 8px;font-size:11px;color:var(--gray-400);font-family:ui-monospace,monospace}
.ai-imgmeta:empty{display:none}

/* --- 输入区 --- */
.ai-composer{flex:none;border-top:1px solid var(--hairline);padding:10px 14px 12px;background:rgba(255,255,255,.66)}
.ai-composer.imgmode{border-top:1px solid var(--gray-400)}
.ai-imgbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 10px 10px;border-bottom:1px dashed var(--hairline);margin-bottom:8px}
.ai-imgbar[hidden]{display:none}
.ai-imgbar label{font-size:12px;color:var(--gray-600);display:flex;align-items:center;gap:6px}
.ai-imgbar select{width:auto;height:30px;font-size:12.5px}
/* 输入盒：附件缩略图 + 文本域 + 底部工具行（附件 / 生图 / 模型选择），整体为一张可聚焦卡片 */
.ai-cbox{border:1px solid var(--gray-300);border-radius:12px;background:rgba(255,255,255,.9);padding:8px 10px 6px;
  transition:border-color .14s,box-shadow .14s,background .14s}
.ai-cbox:focus-within{border-color:var(--gray-400);box-shadow:0 0 0 3px rgba(23,23,27,.05)}
.ai-composer.imgmode .ai-cbox{border-color:var(--gray-900);box-shadow:inset 3px 0 0 var(--gray-900)}
.ai-cbox.dragover{border-color:var(--gray-900);background:rgba(23,23,27,.04)}
.ai-cbox textarea{border:0!important;box-shadow:none!important;background:transparent;min-height:38px;max-height:200px;resize:none;
  overflow-y:auto;line-height:1.6;padding:4px 2px}
.ai-cbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px}
.ai-cbar .grow{flex:1}
.ai-tool{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--hairline);border-radius:8px;
  background:rgba(255,255,255,.8);color:var(--gray-600);font:inherit;font-size:12px;cursor:pointer;transition:all .14s;flex:none}
.ai-tool svg{width:14px;height:14px}
.ai-tool:hover{color:var(--gray-900);border-color:var(--gray-400)}
.ai-tool.on{background:var(--gray-900);color:var(--gray-0);border-color:var(--gray-900)}
.ai-tool[disabled]{opacity:.45;cursor:not-allowed}
.ai-mpick{width:auto;max-width:220px;height:30px;font-size:12px;padding:0 8px;color:var(--gray-600);flex:none}
.ai-send,.ai-stop{width:34px;height:34px;flex:none;border-radius:50%;border:1px solid var(--gray-900);background:var(--gray-900);color:var(--gray-0);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s}
.ai-send svg{width:16px;height:16px}
.ai-send:hover{background:var(--gray-800)}
.ai-send[disabled]{opacity:.4;cursor:not-allowed}
.ai-send[hidden],.ai-stop[hidden]{display:none}
.ai-stop{background:var(--gray-0);color:var(--gray-900);font-size:12px;line-height:1}
.ai-stop:hover{background:var(--gray-100)}
/* 待发送附件条 */
.ai-atts{display:flex;gap:8px;flex-wrap:wrap;padding:2px 2px 8px}
.ai-atts[hidden]{display:none}
.ai-att{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;border:1px solid var(--hairline);background:var(--gray-100)}
.ai-att img{width:100%;height:100%;object-fit:cover;display:block}
.ai-att .x{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;border:0;background:rgba(23,23,27,.72);color:#fff;
  font-size:11px;line-height:16px;text-align:center;cursor:pointer;padding:0}
.ai-att.up img{opacity:.45}
.ai-att .st{position:absolute;left:0;right:0;bottom:0;font-size:10px;text-align:center;background:rgba(23,23,27,.72);color:#fff}
.ai-att.bad{border-color:var(--gray-500);border-style:dashed}
/* 消息气泡里的图片附件 */
.ai-atts-view{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.ai-att-thumb{display:block;width:96px;height:96px;border-radius:8px;overflow:hidden;border:1px solid var(--hairline);line-height:0}
.ai-att-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ai-chint{display:flex;align-items:center;gap:10px;margin-top:8px}
.ai-chint .grow{flex:1}
.ai-chint .t-meta.over{text-decoration:underline}
.ai-jump{position:absolute;right:20px;bottom:120px;z-index:5;border:1px solid var(--hairline);background:rgba(255,255,255,.95);
  color:var(--gray-800);font:inherit;font-size:12px;padding:6px 12px;border-radius:999px;cursor:pointer;box-shadow:var(--sh-float)}
.ai-jump[hidden]{display:none}

/* --- 空态引导（对齐原型：居中 hero + 3×2 场景卡） --- */
.ai-empty{flex:1;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:24px 12px 32px}
.ai-empty[hidden]{display:none}
.ai-empty-hero{text-align:center}
.ai-eicon{width:52px;height:52px;border-radius:16px;background:var(--gray-900);color:var(--gray-0);display:grid;place-items:center;
  font-weight:700;font-size:16px;letter-spacing:.02em;margin:0 auto 14px}
.ai-etitle{font-size:19px;font-weight:600;color:var(--gray-900);margin:0 0 7px;line-height:1.4}
.ai-esub{font-size:12.5px;color:var(--gray-500);line-height:1.6}
.ai-empty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;width:100%;max-width:720px;margin:0 auto}
.ai-ecard{text-align:left;border:1px solid var(--hairline);background:rgba(255,255,255,.8);border-radius:12px;padding:12px 13px;
  cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:4px;transition:all .16s}
.ai-ecard:hover{border-color:var(--gray-400);box-shadow:var(--sh-card);transform:translateY(-1px)}
.ai-ecard .ai-eic{width:16px;height:16px;fill:none;stroke:var(--gray-400);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px;flex:none}
.ai-ecard:hover .ai-eic{stroke:var(--gray-700)}
.ai-ecard b{font-size:13px;font-weight:600}
.ai-ecard span{font-size:11.5px;color:var(--gray-500);line-height:1.5}

/* --- 大图查看 --- */
.ai-imgview .ai-imgmodal{max-width:min(920px,94vw);max-height:88vh;display:flex;flex-direction:column}
.ai-imgview-body{flex:1;min-height:0;overflow:auto;display:flex;justify-content:center;background:var(--gray-050);border-radius:12px;padding:10px}
.ai-imgview-body img{max-width:100%;height:auto;display:block;border-radius:8px}

/* --- Markdown 渲染（mini-md.js） --- */
.ai-md{font-size:13.5px;line-height:1.75;word-break:break-word;overflow-wrap:anywhere}
.ai-md>*+*{margin-top:10px}
.ai-md .md-h{font-size:15px;font-weight:600;line-height:1.4}
.ai-md .md-p{margin:0}
.ai-md .md-list{padding-left:20px}
.ai-md .md-list li{margin:2px 0}
.ai-md .md-q{margin:0;padding:8px 12px;border-left:3px solid var(--gray-300);background:var(--gray-050);border-radius:0 8px 8px 0;color:var(--gray-700)}
.ai-md .md-hr{border:0;border-top:1px solid var(--hairline);margin:12px 0}
.ai-md .md-a{text-decoration:underline;text-underline-offset:2px}
.ai-md .md-ic{font-family:ui-monospace,monospace;font-size:12.5px;background:var(--gray-100);border-radius:5px;padding:1px 5px}
.ai-md .md-img{max-width:100%;border-radius:9px;border:1px solid var(--hairline);display:block}
.ai-md .md-code{border:1px solid var(--hairline);border-radius:10px;overflow:hidden;background:var(--gray-050)}
.ai-md .md-code-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--hairline);background:rgba(255,255,255,.7)}
.ai-md .md-lang{font-family:ui-monospace,monospace;font-size:11px;color:var(--gray-500)}
.ai-md .md-copy{border:0;background:transparent;color:var(--gray-500);font:inherit;font-size:11px;cursor:pointer;padding:2px 7px;border-radius:6px}
.ai-md .md-copy:hover{background:var(--gray-200);color:var(--gray-900)}
.ai-md pre{margin:0;padding:10px 12px;overflow:auto;max-height:380px}
.ai-md pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.6;white-space:pre}
.ai-md .md-tblwrap{overflow:auto}
.ai-md .md-tbl{border-collapse:collapse;width:100%;font-size:12.5px}
.ai-md .md-tbl th,.ai-md .md-tbl td{border:1px solid var(--hairline);padding:6px 9px;text-align:left}
.ai-md .md-tbl th{background:var(--gray-050);font-weight:600}
.ai-msg.me .ai-md .md-ic{background:rgba(255,255,255,.18);color:var(--gray-0)}
.ai-msg.me .ai-md .md-a{color:var(--gray-0)}
.ai-msg.me .ai-md .md-code{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
.ai-msg.me .ai-md .md-code-bar{background:transparent;border-bottom-color:rgba(255,255,255,.2)}
.ai-msg.me .ai-md .md-lang,.ai-msg.me .ai-md .md-copy{color:rgba(255,255,255,.7)}

/* --- 空态：视口偏矮时不强求垂直居中（避免卡片被裁切） --- */
@media (max-height:760px){
  .ai-empty{justify-content:flex-start;gap:16px;padding-top:18px}
  .ai-eicon{width:42px;height:42px;border-radius:13px;font-size:14px;margin-bottom:10px}
  .ai-etitle{font-size:17px}
}

/* --- 响应式：窄屏会话列表抽屉化 --- */
@media (max-width:1024px){
  .ai-shell{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}
  .ai-convbar{position:absolute;left:0;top:0;bottom:0;width:min(280px,86vw);z-index:20}
  .ai-convbar.mini{width:44px}
  .ai-main{min-height:70vh}
  .ai-msgs{min-height:320px}
  .ai-empty{justify-content:flex-start;gap:18px}
  .ai-empty-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px}
}
@media (max-width:640px){
  .ai-msgs{padding:12px 10px 6px}
  .ai-bubble{max-width:90%}
  .ai-metrics{gap:12px;font-size:12px}
  .ai-empty-grid{grid-template-columns:minmax(0,1fr);max-width:360px}
}
