/* ============================================================
   pages.css — 各业务页面的专属样式
   ============================================================ */

/* ============ 总览驾驶舱 ============ */
.dash-hero{
  border-radius:var(--r-xl);padding:26px 30px;position:relative;overflow:hidden;
  background:linear-gradient(118deg,#20222A 0%,#2B2E37 55%,#3A3E2C 100%);color:#F4F1E6;
  box-shadow:var(--sh-2);
}
.dash-hero::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px}
.dash-hero::after{content:"";position:absolute;right:-90px;top:-120px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,195,0,.3),transparent 65%)}
.dh-greet .dg-hi{font-family:var(--f-serif);font-size:27px}
.dh-greet .dg-sub{color:#ABA794;font-size:13px;margin-top:5px}
.dh-stats{display:flex;gap:0;margin-top:22px;flex-wrap:wrap}
.dhs{padding:0 26px;border-left:1px solid rgba(255,255,255,.14)}
.dhs:first-child{border-left:none;padding-left:0}
.dhs .v{font-family:var(--f-num);font-size:25px;font-weight:600;color:#fff}
.dhs .v em{font-style:normal;color:var(--brand);font-size:13px;margin-left:3px}
.dhs .k{font-size:12px;color:#9C9886;margin-top:2px}
@media (max-width:680px){.dhs{padding:0 16px 10px 0;border-left:none}}

.hero-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}

/* 部门速览卡 */
.dept-mini .dm-head{display:flex;align-items:center;gap:11px}
.dept-mini .dm-ic{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  color:#fff;flex:none;position:relative;overflow:hidden}
.dept-mini .dm-ic::after{content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(255,255,255,.28),transparent 55%)}
.dept-mini .dm-ic svg{width:20px;height:20px;position:relative;z-index:1}
.dept-mini .dm-kpi{display:flex;justify-content:space-between;align-items:baseline;margin-top:13px}
.dept-mini .dm-bar{margin-top:9px}

/* AI 简报 */
.ai-brief .ab-row{display:flex;gap:10px;align-items:flex-start;padding:9px 0}
.ai-brief .ab-row+.ab-row{border-top:1px dashed var(--line)}
.ai-brief .ab-tag{flex:none;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}

/* ============ 部门看板页 ============ */
.dept-hero{border-radius:var(--r-xl);padding:24px 26px;display:flex;gap:20px;align-items:center;
  flex-wrap:wrap;position:relative;overflow:hidden;color:#fff}
.dept-hero .dh-ic{width:62px;height:62px;border-radius:18px;background:rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);flex:none}
.dept-hero .dh-ic svg{width:28px;height:28px}
.dept-hero .dh-name{font-family:var(--f-serif);font-size:25px}
.dept-hero .dh-meta{font-size:12.5px;opacity:.88;margin-top:4px}
.dept-hero .dh-kpis{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}
.dh-kpi{text-align:right}
.dh-kpi .v{font-family:var(--f-num);font-size:23px;font-weight:600}
.dh-kpi .k{font-size:11.5px;opacity:.82}

.task-card .tc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.task-card .tc-name{font-weight:700;font-size:14.5px;line-height:1.4}
.task-card .tc-metric{display:flex;align-items:baseline;gap:8px;margin:12px 0 4px}
.task-card .tc-metric .v{font-family:var(--f-num);font-size:27px;font-weight:600}
.task-card .tc-metric .u{color:var(--muted);font-size:12px}
.task-card .tc-target{font-size:11.5px;color:var(--muted)}

/* ============ 任务详情 ============ */
.metric-hero{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.metric-hero .mh-big{font-family:var(--f-num);font-size:46px;font-weight:600;line-height:1}
.metric-hero .mh-target{position:relative;height:8px;border-radius:8px;background:var(--surface-3);width:100%;max-width:420px}
.metric-hero .mh-target .now{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:var(--brand)}
.metric-hero .mh-target .goal{position:absolute;top:-4px;width:2.5px;height:16px;background:var(--ink);border-radius:2px}

.week-bars{display:flex;align-items:flex-end;gap:9px;height:110px;padding-top:16px}
.week-bars .wb{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.week-bars .wb i{width:100%;max-width:30px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#FFD84D,var(--brand-strong));
  transition:height var(--slow) var(--ease),filter var(--fast);position:relative}
.week-bars .wb i:hover{filter:brightness(1.08);box-shadow:var(--sh-1)}
.week-bars .wb.pass i{background:linear-gradient(180deg,#4ACD92,var(--green))}
.week-bars .wb span{font-size:11px;color:var(--faint)}
.week-bars .wb .wbv{font-family:var(--f-num);font-size:11.5px;font-weight:600;color:var(--ink-2)}

/* ============ 检核 ============ */
.insp-card .ip-stats{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px}
.insp-card .ip-s .v{font-family:var(--f-num);font-size:21px;font-weight:600}
.insp-card .ip-s .k{font-size:11.5px;color:var(--muted)}

/* 评分维度条 */
.dim-row{display:flex;align-items:center;gap:12px;padding:8px 0}
.dim-row .dr-name{width:86px;flex:none;font-size:12.5px;color:var(--ink-2)}
.dim-row .dr-bar{flex:1;height:7px;border-radius:7px;background:var(--surface-3);overflow:hidden;position:relative}
.dim-row .dr-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:7px;transition:width var(--slow) var(--ease)}
.dim-row .dr-val{width:38px;text-align:right;font-family:var(--f-num);font-size:12.5px;font-weight:600}

/* 证据图（CSS 生成，无外部图片） */
.ev-thumb{width:100%;aspect-ratio:4/3;border-radius:12px;position:relative;overflow:hidden;cursor:pointer;
  transition:transform var(--fast) var(--ease),box-shadow var(--fast)}
.ev-thumb:hover{transform:translateY(-3px) scale(1.015);box-shadow:var(--sh-2)}
.ev-thumb .ev-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.ev-thumb .ev-play .pl{width:46px;height:46px;border-radius:50%;background:rgba(20,22,26,.55);
  backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;color:#fff}
.ev-thumb .ev-dur{position:absolute;right:9px;bottom:9px;background:rgba(20,22,26,.72);color:#fff;
  font-size:10.5px;padding:2px 8px;border-radius:6px;font-family:var(--f-num)}
.ev-thumb .ev-typ{position:absolute;left:9px;top:9px}
.ai-verdict{border:1.5px solid var(--green-line);background:var(--green-soft);border-radius:var(--r)}
.ai-verdict.fail{border-color:var(--red-line);background:var(--red-soft)}
.ai-verdict.warn{border-color:var(--orange-line);background:var(--orange-soft)}
.checklist .ck{display:flex;gap:9px;align-items:flex-start;padding:6px 0;font-size:13px}

/* ============ 工资核算 ============ */
.batch-card .bc-ring{display:flex;gap:16px;align-items:center}
.pay-strip{display:flex;gap:10px;flex-wrap:wrap}
.pay-strip .ps{flex:1;min-width:120px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;background:var(--surface)}
.pay-strip .ps .v{font-family:var(--f-num);font-size:20px;font-weight:600}
.pay-strip .ps .k{font-size:11.5px;color:var(--muted)}
.pay-strip .ps.up .v{color:var(--green)}.pay-strip .ps.down .v{color:var(--red)}

/* 工资单 */
.slip{max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2)}
.slip-head{padding:22px 26px;display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(120deg,var(--ink),#33363F);color:#F4F1E6}
.slip-row{display:flex;justify-content:space-between;padding:9px 26px;font-size:13.5px}
.slip-row.total{border-top:2px solid var(--line);margin-top:6px;padding-top:13px;font-weight:700}
.slip-row .sr-v{font-family:var(--f-num);font-weight:600}
.slip-row.deduct .sr-v{color:var(--red)}
.slip-sec{padding:14px 26px 4px;font-size:11px;color:var(--faint);letter-spacing:.16em}
.slip-sign{padding:18px 26px;display:flex;gap:10px;justify-content:flex-end;border-top:1px dashed var(--line)}

/* ============ AI 助手 ============ */
.chat-layout{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}
@media (max-width:980px){.chat-layout{grid-template-columns:1fr}.chat-side{display:none}}
.chat-side .cs-item{padding:10px 12px;border-radius:11px;cursor:pointer;transition:background var(--fast)}
.chat-side .cs-item:hover{background:var(--surface-2)}
.chat-side .cs-item.on{background:var(--brand-soft)}
.chat-panel{display:flex;flex-direction:column;height:calc(100vh - 175px);min-height:480px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}
@media (max-width:760px){.chat-panel{height:calc(100vh - 205px)}}
.chat-head{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);
  background:var(--bg-soft)}
.chat-msgs{flex:1;overflow-y:auto;padding:20px 20px 10px;display:flex;flex-direction:column;gap:16px}
.msg{display:flex;gap:10px;max-width:86%}
.msg.me{align-self:flex-end;flex-direction:row-reverse}
.msg .m-av{width:32px;height:32px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center}
.msg .m-body{min-width:0}
.msg .bubble{padding:11px 15px;border-radius:15px;font-size:13.8px;line-height:1.75}
.msg.ai .bubble{background:var(--surface-2);border:1px solid var(--line);border-top-left-radius:4px}
.msg.me .bubble{background:var(--brand);color:var(--brand-ink);border-top-right-radius:4px;font-weight:500}
.msg .m-acts{display:flex;gap:10px;margin-top:6px;font-size:11.5px;color:var(--faint)}
.msg .m-acts span{cursor:pointer;transition:color var(--fast)}
.msg .m-acts span:hover{color:var(--ink)}
.rich-table{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:12.5px}
.rich-table table{width:100%;border-collapse:collapse}
.rich-table th{background:var(--surface-3);padding:6px 11px;text-align:left;color:var(--ink-2)}
.rich-table td{padding:6px 11px;border-top:1px solid var(--line)}
.chat-inputbar{padding:12px 16px;border-top:1px solid var(--line);background:var(--bg-soft)}
.chat-quick{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 10px;background:var(--bg-soft)}
.chat-inputbar .ci-row{display:flex;gap:9px;align-items:flex-end}
.chat-inputbar textarea{flex:1;resize:none;border:1px solid var(--line-strong);border-radius:13px;
  padding:10px 14px;background:var(--surface);font-size:13.5px;outline:none;max-height:110px;min-height:44px;
  transition:all var(--fast)}
.chat-inputbar textarea:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px rgba(255,195,0,.16)}
.send-btn{width:44px;height:44px;border-radius:13px;background:var(--ink);color:#FFFCF2;flex:none;
  display:flex;align-items:center;justify-content:center;transition:all var(--fast)}
.send-btn:hover{background:var(--brand);color:var(--brand-ink);transform:translateY(-2px);box-shadow:var(--sh-brand)}
.mic-btn{width:44px;height:44px;border-radius:13px;background:var(--surface);border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:all var(--fast);flex:none}
.mic-btn:hover{border-color:var(--brand-strong);color:var(--brand-deep);background:var(--brand-soft)}
.mic-btn.rec{background:var(--red);border-color:var(--red);color:#fff;animation:pulse 1.4s infinite}

/* 语音大面板 */
.voice-stage{padding:34px 20px;display:flex;flex-direction:column;align-items:center;text-align:center}
.voice-orb{width:112px;height:112px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 32% 28%,#FFE27A,var(--brand-strong));color:var(--brand-ink);
  box-shadow:0 18px 44px rgba(245,176,0,.4)}
.voice-orb::before{content:"";position:absolute;inset:-14px;border-radius:50%;border:2px solid rgba(245,176,0,.35);
  animation:pulse 2s infinite}
.voice-orb.listening::after{content:"";position:absolute;inset:-26px;border-radius:50%;border:1.5px dashed rgba(245,176,0,.5);
  animation:spin 9s linear infinite}
.callbar{display:flex;gap:18px;justify-content:center;margin-top:26px}
.callbar .cb{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);background:var(--surface);transition:all var(--fast)}
.callbar .cb:hover{transform:translateY(-3px);box-shadow:var(--sh-1)}
.callbar .cb.hang{background:var(--red);border-color:var(--red);color:#fff}
.callbar .cb.hang:hover{box-shadow:0 10px 24px rgba(220,68,68,.4)}
.live-cap{margin-top:22px;min-height:44px;font-size:14.5px;color:var(--ink-2);max-width:520px}

/* 记忆引用条 */
.mem-ref{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);
  font-size:11.5px;color:var(--muted)}
.mem-ref .mr-chip{display:inline-flex;align-items:center;gap:5px;background:var(--teal-soft);color:var(--teal);
  padding:2px 10px;border-radius:var(--r-pill);cursor:pointer;transition:all var(--fast)}
.mem-ref .mr-chip:hover{background:var(--teal);color:#fff}

/* ============ 知识库 / 记忆库 ============ */
.kb-item{display:flex;gap:14px;padding:15px 16px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);transition:all var(--fast);cursor:pointer}
.kb-item:hover{border-color:var(--brand);box-shadow:var(--sh-2);transform:translateY(-2px)}
.kb-item .kb-ic{width:42px;height:42px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center}
.doc-body{max-width:820px}
.doc-body h3{font-size:16.5px;margin:22px 0 10px;padding-left:11px;border-left:3.5px solid var(--brand)}
.doc-body p{color:var(--ink-2);font-size:14px;margin-bottom:10px}
.doc-toc{position:sticky;top:80px}

/* ============ 营销中心 ============ */
.mkt-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:900px){.mkt-nav{grid-template-columns:repeat(2,1fr)}}
.mkt-nav .mn-card{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);padding:20px;
  cursor:pointer;transition:all var(--mid) var(--ease);position:relative;overflow:hidden}
.mkt-nav .mn-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:transparent}
.mkt-nav .mn-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,195,0,.16),transparent 50%);opacity:0;transition:opacity var(--mid)}
.mkt-nav .mn-card:hover::before{opacity:1}
.mkt-nav .mn-ic{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff}

/* 海报缩略（CSS 艺术） */
.poster-card{position:relative;aspect-ratio:3/4;border-radius:14px;overflow:hidden;cursor:pointer;
  transition:transform var(--fast) var(--ease),box-shadow var(--fast);border:1px solid var(--line)}
.poster-card:hover{transform:translateY(-4px) rotate(-.4deg);box-shadow:var(--sh-2)}
.po-p1{background:linear-gradient(160deg,#1B1D22,#3A3E2C);color:#F4F1E6}
.po-p2{background:linear-gradient(160deg,#0E8B8D,#14636B);color:#EAF7F7}
.po-p3{background:linear-gradient(160deg,#FFC300,#F08A00);color:#241C00}
.po-p4{background:linear-gradient(160deg,#DC4444,#8E2B57);color:#FDECEC}
.po-p5{background:linear-gradient(160deg,#7A5FC8,#3E3E78);color:#F0ECFA}
.po-in{position:absolute;inset:0;padding:16px;display:flex;flex-direction:column;justify-content:space-between}
.po-in .pi-t{font-family:var(--f-serif);font-size:17px;line-height:1.35}
.po-in .pi-b{font-size:10.5px;opacity:.85}
.po-in .pi-rib{align-self:flex-start;background:rgba(255,255,255,.2);padding:2px 9px;border-radius:var(--r-pill);font-size:10px}

/* 排期日历 */
.cal{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.cal-head{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;padding:14px}
.cal-wk{text-align:center;font-size:11px;color:var(--faint);padding:5px 0}
.cal-day{aspect-ratio:1.06;border-radius:11px;border:1px solid var(--line);padding:6px 8px;cursor:pointer;
  display:flex;flex-direction:column;gap:3px;transition:all var(--fast);position:relative;min-height:56px}
.cal-day:hover{border-color:var(--brand-strong);background:var(--brand-soft);transform:translateY(-2px);box-shadow:var(--sh-1);z-index:2}
.cal-day .cd{font-family:var(--f-num);font-size:12.5px;font-weight:600}
.cal-day.dim{opacity:.34;pointer-events:none}
.cal-day.today{border-color:var(--brand);background:var(--brand-soft)}
.cal-day .cd-dot{display:flex;gap:2.5px;margin-top:auto}
.cal-day .cd-dot i{width:5.5px;height:5.5px;border-radius:50%}
.cal-day .cd-cnt{position:absolute;top:6px;right:7px;font-size:9.5px;background:var(--ink);color:#FFFCF2;
  border-radius:var(--r-pill);padding:0 5px;font-weight:600}

/* 视频项目卡 */
.vid-card{position:relative;border-radius:var(--r);overflow:hidden;cursor:pointer;transition:all var(--fast);border:1px solid var(--line)}
.vid-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.vid-cover{aspect-ratio:16/9;position:relative;display:flex;align-items:flex-end;padding:12px}
.vid-cover .vc-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.vid-cover .vc-play .pl{width:52px;height:52px;border-radius:50%;background:rgba(18,20,24,.55);
  backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#fff;
  transition:all var(--fast)}
.vid-card:hover .vc-play .pl{transform:scale(1.12);background:var(--brand);color:var(--brand-ink)}

/* 软文编辑器 */
.ed-paper{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px 30px;
  font-size:14.5px;line-height:1.95;min-height:340px;outline:none}
.ed-paper:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px rgba(255,195,0,.14)}
.ed-paper h2{font-family:var(--f-serif);font-size:20px;margin-bottom:12px}
.wc{font-size:11.5px;color:var(--faint)}

/* ============ 管理后台 ============ */
.adm-stat .v{font-family:var(--f-num);font-size:26px;font-weight:600}
.adm-stat .k{font-size:12px;color:var(--muted)}
.model-card{border:1px solid var(--line);border-radius:var(--r);padding:17px 18px;background:var(--surface);
  transition:all var(--fast)}
.model-card:hover{border-color:var(--line-strong);box-shadow:var(--sh-1)}
.model-card .mc-head{display:flex;align-items:center;gap:11px}
.model-card .mc-logo{width:40px;height:40px;border-radius:12px;color:#fff;display:flex;align-items:center;
  justify-content:center;font-weight:700;font-family:var(--f-serif);font-size:15px;flex:none}
.key-input{display:flex;align-items:center;gap:8px}
.key-input .input{font-family:"Cascadia Code",Consolas,monospace;font-size:12px}
.route-row{display:grid;grid-template-columns:150px 1fr 130px;gap:12px;align-items:center;padding:10px 0;
  border-bottom:1px dashed var(--line)}
.route-row:last-child{border-bottom:none}
@media (max-width:680px){.route-row{grid-template-columns:1fr;gap:6px}}

/* 日志行 */
.log-line{font-family:"Cascadia Code",Consolas,monospace;font-size:11.8px;padding:4px 0;color:var(--ink-2)}
.log-line .lt{color:var(--faint)}
.log-line .lv-ok{color:var(--green);font-weight:700}
.log-line .lv-info{color:var(--blue);font-weight:700}

/* ---- 小工具:闪光按钮 ---- */
.shimmer{position:relative}
.shimmer::after{content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.5) 50%,transparent 60%);
  background-size:200% 100%;animation:sweep 2.6s infinite;display:none}
.shimmer.busy::after{display:block}
