/* v12 · 2026-10-08 碧涵需求 #5 / #6 / #9 + M1 连接状态
   #5 事实库智能录入（粘贴 / 文档 → 自动分类 → 预览 → 入库）
   #6 发布链接智能登记（粘贴链接 → 自动识别 → 推荐复检）
   #9 全局排版规范（重点突出、对齐统一、文案精简）
   M1 连接状态表格 + 跑批实时监控面板 + 失败重试队列 */

/* ============================================================
   通用：智能投递区（两个输入口共用）
   ============================================================ */
.smart{
  border:1px solid var(--line);border-radius:14px;background:var(--card);
  padding:14px 16px;margin:12px 0 10px;
  box-shadow:var(--sh-1,0 1px 3px rgba(0,0,0,.06));
}
.smart-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12.5px;color:var(--fg2)}
.smart-badge{
  display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;
  background:var(--brand-wash);color:var(--brand-deep);font-weight:800;font-size:11.5px;
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));
}
.smart-ta{
  display:block;width:100%;border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;font-size:13px;line-height:1.6;resize:vertical;
  background:var(--bg);color:var(--fg);
}
.smart-ta:focus{outline:none;border-color:var(--brand);background:var(--card)}
.smart-drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  margin-top:10px;padding:18px 14px;text-align:center;cursor:pointer;
  border:1.5px dashed color-mix(in srgb,var(--brand) 42%,var(--line));
  border-radius:12px;background:color-mix(in srgb,var(--brand) 4%,transparent);
  transition:border-color .15s ease,background .15s ease;
}
.smart-drop:hover,.smart-drop.over{border-color:var(--brand);background:var(--brand-wash)}
.smart-drop .sd-ico{
  width:30px;height:30px;line-height:28px;border-radius:50%;text-align:center;
  background:var(--brand);color:#fff;font-size:18px;font-weight:700;margin-bottom:2px;
}
.smart-drop .sd-main{font-size:13px}
.smart-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.smart-bar .wide{flex:1 1 320px;min-width:220px}
.smart-single{margin:10px 0}
.smart-single > summary{cursor:pointer;font-size:12.5px;color:var(--fg2);padding:4px 0}
.smart-single[open] > summary{color:var(--fg);font-weight:600}

/* 事实识别结果预览表 */
.fp-head{font-size:12.5px;color:var(--fg2);margin:12px 0 6px}
.fp-table{width:100%}
.fp-table th{white-space:nowrap;font-size:12px}
.fp-table .fp-chk{width:34px;text-align:center}
.fp-table .fp-c{width:112px}
.fp-table .fp-act{width:64px;text-align:right}
.fp-table .fp-txt,.fp-table .fp-cat{width:100%;box-sizing:border-box;font-size:12.5px}

/* ============================================================
   #6 发布链接：缺口题提示 + 推荐复检
   ============================================================ */
.reco-card{
  border:1px solid var(--line);border-left:3px solid var(--brand);
  border-radius:12px;background:var(--card);padding:12px 14px;margin:10px 0;
}
.reco-card--ok{border-left-color:var(--ok)}
.reco-head{font-size:13px;font-weight:700;margin-bottom:8px;line-height:1.5}
.reco-list{display:flex;flex-wrap:wrap;gap:6px 10px}
.reco-tag{
  display:inline-flex;align-items:center;padding:4px 9px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);font-size:12px;color:var(--fg2);
}
.reco-item{
  display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);font-size:12.5px;cursor:pointer;
}
.reco-item:hover{border-color:var(--brand)}
.reco-item input{margin:0}
#pubDraft.hidden{display:none}
#pubDraft{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}

/* ============================================================
   #9 全局排版规范：重点突出、对齐统一、留白克制
   —— 只做「读起来更清楚」的调整，不动信息结构
   ============================================================ */
/* 页面标题层级：主标题更大更重，副标题退成说明色 */
h2{font-size:14px;font-weight:700;color:var(--fg);letter-spacing:0;margin:26px 0 10px}
.panel > h1,.panel h1{font-size:19px}

/* 输入口的标题与说明：标题加粗，说明不与标题抢视线 */
.inbox h3{font-size:14px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em}
.inbox > .muted{font-size:12.5px;line-height:1.65;margin:0 0 10px}

/* 表格：数字右对齐、表头更清晰、行高更稳 */
table th{font-weight:700;color:var(--fg2);font-size:12px;background:var(--bg)}
table td,table th{padding-top:9px;padding-bottom:9px}
td.num,th.num,.num{text-align:right;font-variant-numeric:tabular-nums}
table td .muted,table td.muted{font-size:12px}

/* 按钮：主次分明（primary 更醒目，普通按钮更克制） */
button.primary{font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.06)}

/* 说明性文字：统一小一号、行高放宽，避免与正文混淆 */
.notice,.banner{font-size:12.5px;line-height:1.7}

/* KPI 数值：最重要的数字给最大字号 */
.kpi .v{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.2}

/* 窄屏：投递区与推荐列表自动堆叠 */
@media (max-width:760px){
  .smart{padding:12px}
  .smart-bar{flex-direction:column;align-items:stretch}
  .smart-bar .wide{flex:1 1 auto}
  .reco-list{flex-direction:column}
}

/* ===================== M1 监测可靠性中心 ===================== */
/* 连接状态表 */
.hp-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.hp-table th{background:var(--bg2,#f5f6f8);color:var(--fg2,#555);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line,#e2e6ec);white-space:nowrap}
.hp-table td{padding:8px 10px;border-bottom:1px solid var(--line-soft,#eef0f3);vertical-align:top}
.hp-table tr:hover td{background:var(--bg-soft,#fafbfc)}
.hp-pill{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:10px;line-height:1.5;letter-spacing:0.5px;font-weight:600}
.hp-pill.hp-ok{background:#DCFCE7;color:#15803D}
.hp-pill.hp-warn{background:#FEF3C7;color:#B45309}
.hp-pill.hp-err{background:#FEE2E2;color:#B91C1C}
.hp-pill.hp-off{background:#E5E7EB;color:#6B7280}
.hp-row-paused td{background:#FEF2F2}
.hp-row-error td{background:#FFFBEB}
.hp-row-ready td{background:#fff}
.hp-row-off td{opacity:0.55}
.hp-row-unknown td{background:#FAFAFA}

/* 跑批实时监控面板 */
#monitorPanel{margin:8px 0 12px}
.mp-card{padding:12px 14px;border-radius:10px;border:1px solid var(--line,#e2e6ec);background:var(--card,#fff);box-shadow:var(--sh-1,0 1px 2px rgba(0,0,0,.04))}
.mp-card.mp-running{border-color:#3B82F6;background:linear-gradient(180deg,#EFF6FF,#fff)}
.mp-card.mp-done{border-color:#10B981;background:linear-gradient(180deg,#ECFDF5,#fff)}
.mp-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.mp-head b{font-size:14px}
.mp-head .muted{flex:1;font-size:12px}
.mp-bar{height:8px;background:var(--bg2,#f5f6f8);border-radius:4px;overflow:hidden}
.mp-fill{height:100%;background:linear-gradient(90deg,#3B82F6,#10B981);transition:width .3s ease;border-radius:4px}
.mp-current{margin-top:8px;font-size:12.5px;color:var(--fg2,#555)}
.mp-errs,.mp-skipped{margin-top:8px;font-size:12px}
.mp-errs b,.mp-skipped b{font-weight:600;color:var(--fg2,#555);display:block;margin-bottom:4px}
.mp-errs ul,.mp-skipped ul{margin:0;padding-left:18px;color:var(--fg2,#555)}
.mp-errs li{color:#B45309}
.mp-skipped li{color:#6B7280}
.mp-cancel{margin-left:auto}

/* 一键检测按钮放标题旁 */
.monitor-card-head p{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ===== M2 稿件工作台 ===== */
/* 本月节奏条（数据来自 /api/schedule，与链路页同一口径） */
.draft-ry{border:1px solid var(--line,#e2e6ec);border-radius:12px;background:var(--card,#fff);padding:12px 14px;margin:10px 0 14px}
.ry-title{font-weight:600;margin-bottom:10px}
.ry-flow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ry-node{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border-radius:8px;border:1px solid var(--line,#e2e6ec);background:var(--bg2,#f5f6f8);font-size:12.5px}
.ry-node i{font-style:normal;color:var(--fg2,#666);font-size:11px}
.ry-node.done{border-color:#10B981;background:#ECFDF5}
.ry-node.running{border-color:var(--brand,#8E2BB8);background:color-mix(in srgb,var(--brand,#8E2BB8) 8%,transparent)}
.ry-node.overdue{border-color:#EF4444;background:#FEF2F2}
.ry-arrow{color:var(--fg2,#999);font-size:11px}
.ry-now{font-size:13px;margin:6px 0}
.ry-alerts{color:#B91C1C;font-size:12.5px;margin:6px 0;line-height:1.7}

/* 稿件编辑弹层 */
.draft-overlay{position:fixed;inset:0;background:rgba(15,18,25,.45);z-index:90;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow:auto}
.draft-overlay.hidden{display:none}
.draft-modal{width:min(860px,100%);background:var(--card,#fff);border-radius:14px;border:1px solid var(--line,#e2e6ec);box-shadow:0 18px 50px rgba(0,0,0,.18)}
.draft-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line,#e2e6ec);position:sticky;top:0;background:var(--card,#fff);border-radius:14px 14px 0 0;z-index:1}
.draft-modal-body{padding:16px 18px 22px}
.dm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.dm-grid label,.dm-block{display:block;margin-bottom:10px;font-size:12.5px;color:var(--fg2,#555);font-weight:600}
.dm-grid label input,.dm-block textarea{display:block;width:100%;margin-top:4px;border:1px solid var(--line,#e2e6ec);border-radius:8px;padding:8px 10px;font-size:13.5px;background:var(--bg2,#fafbfc);color:var(--fg,#1c2330)}
.dm-grid input{display:block;width:100%;margin-top:4px;border:1px solid var(--line,#e2e6ec);border-radius:8px;padding:8px 10px;font-size:13.5px;background:var(--bg2,#fafbfc)}
.dm-block .muted{display:block;margin-top:4px;font-weight:400;font-size:12.5px}
.dm-facts{margin:6px 0 0;padding-left:0;list-style:none}
.dm-facts li{margin:4px 0;font-size:12.5px;color:var(--fg,#333);line-height:1.6}
.dm-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 4px;padding-top:12px;border-top:1px dashed var(--line,#e2e6ec)}
.dm-danger{color:#B91C1C !important;border-color:#FCA5A5 !important}
.dm-publish{border:1px solid color-mix(in srgb,var(--brand,#8E2BB8) 30%,var(--line,#e2e6ec));border-radius:10px;padding:12px;margin-top:12px}
.dm-publish b{display:block;margin-bottom:8px;font-size:13px}
.dm-publish input{display:block;width:100%;border:1px solid var(--line,#e2e6ec);border-radius:8px;padding:8px 10px;font-size:13.5px;margin-bottom:8px;background:var(--bg2,#fafbfc)}
.dm-publish p{margin:8px 0 0;font-size:12px}
.dm-retest{margin-top:14px;border-top:1px solid var(--line,#e2e6ec);padding-top:12px}
.dm-retest>b{display:block;margin-bottom:8px;font-size:13px}
.dm-cmp{width:100%;border-collapse:collapse;font-size:12.5px;margin-bottom:8px}
.dm-cmp th{background:var(--bg2,#f5f6f8);text-align:left;padding:6px 10px;border-bottom:1px solid var(--line,#e2e6ec)}
.dm-cmp td{padding:6px 10px;border-bottom:1px solid var(--line-soft,#eef0f3)}
@media (max-width:640px){.dm-grid{grid-template-columns:1fr}}

/* ===== M3 Top 行动卡 + 依据弹层 ===== */
.topcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:10px 0 18px}
.topcard{background:var(--card,#fff);border:1px solid var(--line,#e2e6ec);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.topcard header{display:flex;align-items:flex-start;gap:8px}
.topcard h3.top-q{margin:0;font-size:15px;line-height:1.45;flex:1}
.top-rank{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:8px;background:var(--brand,#8E2BB8);color:#fff;font-weight:700;font-size:13px}
.top-total{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 8px;border-radius:8px;background:#FEF3C7;color:#92400E;font-weight:700;font-size:14px}
.top-target{font-size:12.5px;color:var(--fg2,#555)}
.top-target b{color:var(--fg,#1c2330)}
.top-bars{display:flex;flex-direction:column;gap:6px}
.scorebar{display:flex;flex-direction:column;gap:3px}
.sb-head{display:flex;justify-content:space-between;font-size:12px;color:var(--fg2,#555)}
.sb-head b{color:var(--fg,#1c2330);font-size:14px}
.sb-track{height:6px;border-radius:3px;background:var(--bg2,#f0f2f5);overflow:hidden}
.sb-fill{height:100%;background:linear-gradient(90deg,var(--brand,#8E2BB8),#A78BFA);border-radius:3px}
.sb-hint{font-size:11.5px;color:var(--fg2,#777);line-height:1.5}
.topcard footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line,#e2e6ec);padding-top:8px}
.top-foot{flex:1;font-size:11.5px}

/* 依据弹层（沿用 M2 draft-overlay 同款遮罩） */
.te-modal{width:min(820px,100%);background:var(--card,#fff);border-radius:14px;border:1px solid var(--line,#e2e6ec);box-shadow:0 18px 50px rgba(0,0,0,.18);max-height:88vh;display:flex;flex-direction:column}
.te-modal header{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 18px;border-bottom:1px solid var(--line,#e2e6ec);gap:10px}
.te-modal header h3{margin:6px 0 0;font-size:16px;line-height:1.4}
.te-modal #teClose{font-size:20px;line-height:1;padding:4px 10px}
.te-body{padding:14px 18px 18px;overflow:auto}
.te-section{margin-bottom:16px;padding-bottom:12px;border-bottom:1px dashed var(--line,#e2e6ec)}
.te-section:last-child{border-bottom:none;margin-bottom:0}
.te-section h4{font-size:13.5px;margin:0 0 8px;color:var(--fg,#1c2330)}
.te-section p{font-size:13px;line-height:1.6;margin:6px 0}
.te-section .dm-cmp{margin-top:6px}
