:root{
  --bg:#0b1220; --panel:#111c2e; --panel-2:#16233a; --line:#22304a;
  --txt:#e6edf7; --muted:#8b9bb4; --accent:#2dd4bf; --accent-2:#38bdf8;
  --ok:#22c55e; --warn:#f59e0b; --danger:#ef4444; --purple:#a78bfa;
  --radius:12px; --pad:16px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:radial-gradient(1200px 600px at 80% -10%,#152642 0%,var(--bg) 55%) fixed;
  color:var(--txt); font-size:14px; line-height:1.6;
}
a{color:var(--accent-2);text-decoration:none}
button{font-family:inherit}
/* 全局细滚动条 */
*{scrollbar-width:thin;scrollbar-color:#2a3a58 transparent}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2a3a58;border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#3b5079;background-clip:content-box}
::-webkit-scrollbar-corner{background:transparent}
.scroll::-webkit-scrollbar,.side::-webkit-scrollbar,.drawer::-webkit-scrollbar{width:7px;height:7px}
.app{display:flex;min-height:100vh}
/* 侧栏 */
.side{width:212px;flex:0 0 212px;background:linear-gradient(180deg,#0e1930,#0b1220);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:block;padding:8px 8px 16px}
.brand h1{font-size:15px;margin:0;line-height:1.2;white-space:nowrap;font-weight:800;letter-spacing:.02em}
.brand small{color:var(--muted);font-size:11px}
.nav{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--muted);font-weight:600}
.nav a .ic{width:18px;text-align:center}
.nav a:hover{background:#16233a;color:var(--txt)}
.nav a.on{background:linear-gradient(90deg,rgba(45,212,191,.18),rgba(56,189,248,.08));color:var(--txt);box-shadow:inset 2px 0 0 var(--accent)}
.side .foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
/* 主区 */
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line);background:rgba(11,18,32,.7);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.topbar h2{font-size:16px;margin:0}
.spacer{flex:1}
.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{background:none;border:0;color:var(--muted);padding:7px 13px;cursor:pointer;font-weight:600;font-size:13px}
.seg button.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04202b}
/* 统计周期切换：与「运营筛选」区分开——独立药丸按钮 + 蓝色系 + 左侧小标题 */
.ac-range-wrap{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);flex-wrap:wrap}
.ac-range-wrap .lbl{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em;white-space:nowrap}
.seg-pills{display:inline-flex;gap:6px;flex-wrap:wrap}
.seg-pills button{background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.30);color:#7eb3ff;border-radius:999px;padding:6px 15px;cursor:pointer;font-weight:600;font-size:13px;transition:all .15s ease}
.seg-pills button:hover{border-color:rgba(59,130,246,.7);color:#a9cdff;background:rgba(59,130,246,.16)}
.seg-pills button.on{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#3b82f6;color:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.24)}
/* 多选下拉（监控对象）：点开浮层勾选，收起后显示已选标签。
   注意：全局 input{width:100%} 会把复选框撑满整行、把文字挤成窄列，
   这里必须显式收窄 checkbox 并让文字正常换行。 */
.msel{position:relative;display:inline-block;min-width:230px;max-width:320px}
/* 表单里的多选：允许跟随容器伸展，不再被 max-width 卡住留白 */
.msel-fluid{display:block;width:100%;min-width:0;max-width:none}
/* 表单小字段（指标/阈值）：定宽，不参与拉伸 */
.mn-fld-sm{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}
.mn-fld-sm input,.mn-fld-sm select{width:130px}
/* 多选外层：纵向排列，允许压缩，不再被 .row>div{flex:1} 撑成等分大块 */
/* 监控对象行：左侧字段自适应，右侧操作固定，永不因差几像素而掉行 */
.mn-obj-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.mn-obj-fields{display:flex;gap:10px;align-items:flex-end;flex:0 1 auto;flex-wrap:wrap;min-width:0}
.mn-obj-actions{display:flex;gap:10px;align-items:center;flex:0 0 auto;white-space:nowrap}
/* 两个多选控件固定宽度：不再拉伸填满整行，避免出现超长输入框 */
#mnForm .mn-obj-fields>.mn-ms-wrap{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;width:300px}
.msel-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--txt);padding:8px 11px;cursor:pointer;font-size:13px;text-align:left;font-family:inherit}
.msel-btn:hover{border-color:var(--accent)}
.msel-btn .caret{color:var(--muted);font-size:11px;flex:0 0 auto}
.msel-btn .sum{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}
.msel-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 44px rgba(0,0,0,.6);width:max-content;min-width:290px;max-width:min(420px,92vw);max-height:340px;overflow-y:auto;overflow-x:hidden;padding:6px;display:none;box-sizing:border-box}
.msel-pop.open{display:block}
.msel-pop .grp{font-size:11px;font-weight:700;color:var(--muted);padding:8px 8px 3px;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 每一行：复选框固定宽 + 文字自适应，禁止被全局 width:100% 撑变形 */
.msel-pop label{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--txt);line-height:1.45;margin:0;box-sizing:border-box}
.msel-pop label:hover{background:rgba(59,130,246,.12)}
.msel-pop label input[type=checkbox]{width:15px!important;height:15px!important;min-width:15px;max-width:15px;flex:0 0 15px;margin:2px 0 0;padding:0;accent-color:#3b82f6;cursor:pointer;border-radius:3px;box-sizing:border-box}
.msel-pop label .txt{flex:1 1 auto;min-width:0;word-break:break-word;white-space:normal}
.msel-pop label .tagp{flex:0 0 auto;font-size:11px;color:var(--muted);white-space:nowrap;padding-top:1px}
.msel-pop .allrow{border-bottom:1px solid var(--line);margin-bottom:4px;font-weight:700;color:#7eb3ff;border-radius:0;padding-bottom:9px}
.msel-pop .allrow:hover{background:rgba(59,130,246,.16)}
.msel-tag{display:inline-flex;align-items:center;gap:5px;background:rgba(59,130,246,.14);border:1px solid rgba(59,130,246,.35);color:#9ec5ff;border-radius:999px;padding:2px 9px;font-size:12px}
/* 授权码填写状态标记 */
.pass-ok{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:12px;font-weight:700;color:#34d399;background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.35);border-radius:999px;padding:3px 10px}
.pass-no{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:12px;font-weight:700;color:#fbbf24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.38);border-radius:999px;padding:3px 10px}
/* 放在字段标题行里的徽章：压到不撑高标题行（行高仍为 19.2px），保证四列顶部齐平 */
.small>.pass-ok,.small>.pass-no{padding:0 6px;font-size:11px;line-height:1;height:17px;font-weight:700;vertical-align:middle}
/* 告警邮箱这一行：所有输入控件统一高度，避免底对齐时互相推挤 */
#mnMail .row>label>input,#mnMail .row>label>select:not(#mnSec){height:38px;box-sizing:border-box}
#mnMail .row>label>select{height:38px;box-sizing:border-box}
#mnMail .pass-wrap>input{height:38px!important;box-sizing:border-box}
/* 授权码输入框：密码 + 小眼睛 + 复制 */
.pass-wrap{position:relative;display:flex;align-items:center;width:100%}
.pass-wrap input{padding-right:76px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.pass-eye,.pass-copy{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#8ea6c8;cursor:pointer;font-size:12px;line-height:1;padding:6px 7px;border-radius:6px;white-space:nowrap}
.pass-eye{right:48px;font-size:14px}
.pass-copy{right:4px}
.pass-eye:hover,.pass-copy:hover{background:rgba(255,255,255,.08);color:#dbe7f6}
.pass-wrap input[type=text]~.pass-eye{color:#7dd3fc}
/* 周期选择器 */
.pick{position:relative;display:inline-block}
.pick .chip{cursor:pointer;user-select:none}
.pick .chip:hover{border-color:var(--accent);color:var(--txt)}
.pick .panel{position:absolute;right:0;top:calc(100% + 8px);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;width:288px;box-shadow:0 20px 50px rgba(0,0,0,.55);z-index:50;display:none}
.pick .panel.open{display:block}
.pick .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pick .head button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:15px}
.pick .head b{font-size:14px}
.pick .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pick .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pick .grid4 button,.pick .grid3 button{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:8px 0;cursor:pointer;font-size:13px;font-weight:600}
.pick .grid4 button.on,.pick .grid3 button.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04202b;border-color:transparent}
.pick .grid4 button:hover,.pick .grid3 button:hover{border-color:var(--accent);color:var(--txt)}
.pick .mini{font-size:11px;color:var(--muted);margin-top:8px;text-align:center}
@media(max-width:820px){.pick .panel{right:auto;left:0}}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--muted)}
.chip b{color:var(--txt)}
.btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04202b;border:0;border-radius:9px;padding:8px 14px;font-weight:700;cursor:pointer}
.btn.ghost{background:var(--panel);color:var(--txt);border:1px solid var(--line)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.wrap{padding:20px;flex:1}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.kpi{background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.kpi .t{color:var(--muted);font-size:12px;display:flex;justify-content:space-between}
.kpi .v{font-size:26px;font-weight:800;margin-top:6px;letter-spacing:.5px}
.kpi .d{font-size:12px;margin-top:4px;color:var(--muted)}
.kpi .d.up{color:var(--ok)} .kpi .d.down{color:var(--danger)} .kpi .d.warn{color:var(--warn)}
/* 重点 KPI（如非流量机型开单数） */
.kpi.kpi-hl{background:linear-gradient(160deg,rgba(56,189,248,.16),rgba(56,189,248,.04));border-color:rgba(56,189,248,.55);box-shadow:0 0 0 1px rgba(56,189,248,.15),0 8px 24px -12px rgba(56,189,248,.55)}
.kpi.kpi-hl .t{color:#7dd3fc}
.kpi.kpi-hl .v{font-size:34px;color:#38bdf8;text-shadow:0 0 18px rgba(56,189,248,.45)}
.card{background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.card h3{margin:0 0 12px;font-size:14px;display:flex;align-items:center;gap:8px}
.card h3 .tag{font-size:11px;color:var(--muted);font-weight:500}
.two{grid-template-columns:1fr 1fr}
@media(max-width:1080px){.two{grid-template-columns:1fr}}
.chart{width:100%;height:320px}
.muted{color:var(--muted)}
.small{font-size:12px}
table{width:100%;border-collapse:collapse}
th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}
th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel)}
th{cursor:pointer;user-select:none;white-space:nowrap}
th:hover{color:var(--txt)}
th .sort-ind{color:#5b6f92;font-size:12px;margin-left:5px;opacity:.9}
th:hover .sort-ind{color:var(--accent)}
th[data-sort-dir] .sort-ind{color:var(--accent);opacity:1}
tr:hover td{background:#16233a}
.scroll{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:10px}
/* 账户看板：账户间强边界 + 分区面板 */
#acTable tr.ac-row>td{background:var(--panel);border-bottom:2px solid #2a3a58}
#acTable tr.ac-row:hover>td{background:#16233a}
#acTable tr.ac-row.open>td{background:linear-gradient(90deg,rgba(45,212,191,.10),rgba(45,212,191,.02));border-bottom-color:#2dd4bf}
#acTable tbody tr.ac-acct-sep>td{border-top:3px solid #16233a;padding:0;height:0}
.ac-detail{background:#0b1524;border:1px solid #22304a;border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin:8px 0}
.ac-detail h4{margin:0 0 8px;font-size:13px;color:var(--accent);display:flex;align-items:center;gap:8px}
.ac-detail h4 .tag{color:var(--muted);font-weight:500}
.ac-sub-tbl{border:1px solid #1d2a42;border-radius:8px;overflow:hidden;margin-bottom:8px}
.ac-sub-tbl th{background:#122036}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}
.b-ok{background:rgba(34,197,94,.16);color:#4ade80}
.b-warn{background:rgba(245,158,11,.16);color:#fbbf24}
.b-danger{background:rgba(239,68,68,.16);color:#f87171}
.b-muted{background:#1d2a42;color:var(--muted)}
.b-info{background:rgba(56,189,248,.16);color:#7dd3fc}
/* 分析高亮数字 */
.hl{color:#2dd4bf;font-weight:800;font-size:1.02em}
.bar{height:8px;background:#1d2a42;border-radius:99px;overflow:hidden;min-width:80px}
.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.bar.warn>i{background:linear-gradient(90deg,#f59e0b,#f97316)}
.bar.danger>i{background:linear-gradient(90deg,#ef4444,#dc2626)}
/* 表单 */
label.f{display:block;margin:10px 0 4px;color:var(--muted);font-size:12px}
input,select,textarea{width:100%;background:#0d1729;border:1px solid var(--line);border-radius:9px;color:var(--txt);padding:9px 11px;font-size:13px;font-family:inherit}
/* 复选框/单选框永远不吃全局 width:100%，否则会把同一行的按钮挤成竖排 */
input[type=checkbox],input[type=radio]{width:15px!important;min-width:15px!important;max-width:15px!important;height:15px!important;padding:0!important;margin:0;accent-color:#3b82f6;cursor:pointer;flex:0 0 15px}
/* 按钮文字不允许被压成竖排 */
.btn,.btn.ghost{white-space:nowrap;flex:0 0 auto}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
/* 日期选择：点击整个区域都能弹出 */
.datepick{position:relative}
.datepick input[type=date]{padding-right:34px;width:100%}
.datepick input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:100%;height:100%;cursor:pointer}
.datepick .dp-ic{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;pointer-events:none;opacity:.7}
/* 上传区 */
.upr{border:1.5px dashed var(--line);border-radius:10px;padding:16px;text-align:center;cursor:pointer;color:var(--muted);transition:.2s}
.upr:hover{border-color:var(--accent);color:var(--txt)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.row>div{flex:1;min-width:150px}
.checkbox{display:flex;align-items:center;gap:8px;background:#0d1729;border:1px solid var(--line);border-radius:9px;padding:10px 12px;cursor:pointer}
.checkbox input{width:auto}
.checkbox.on{border-color:var(--accent);background:rgba(45,212,191,.08)}
/* 状态 */
.status{padding:40px;text-align:center;color:var(--muted)}
.status .ic{font-size:34px}
.status h4{color:var(--txt);margin:10px 0 4px}
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.empty{padding:30px;text-align:center;color:var(--muted)}
.alert{display:flex;gap:10px;align-items:flex-start;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35);color:#fcd34d;border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:13px}
.alert.err{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.35);color:#fca5a5}
.hide{display:none!important}
/* 登录页 */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth .box{width:400px;max-width:94vw;background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:30px 28px;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.auth h1{margin:0 0 4px;font-size:20px}
.auth p.sub{color:var(--muted);margin:0 0 18px;font-size:13px}
.tabs{display:flex;gap:6px;margin-bottom:14px}
.tabs button{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:9px;border-radius:9px;cursor:pointer;font-weight:700}
.tabs button.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04202b;border-color:transparent}
.msg{margin-top:12px;font-size:13px;padding:9px 12px;border-radius:9px}
.msg.ok{background:rgba(34,197,94,.14);color:#4ade80}
.msg.err{background:rgba(239,68,68,.14);color:#f87171}
/* 详情抽屉 */
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(560px,94vw);background:var(--panel);border-left:1px solid var(--line);box-shadow:-20px 0 60px rgba(0,0,0,.5);z-index:40;padding:20px;overflow:auto;transform:translateX(100%);transition:.25s}
.drawer.open{transform:none}
.mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:35;display:none}
.mask.open{display:block}
@media(max-width:820px){
  #burger{display:inline-block!important}
  .side{position:fixed;left:0;top:0;z-index:30;transform:translateX(-100%);transition:.25s}
  .side.open{transform:none}
  .main{width:100%}
  .wrap{padding:14px}
}

/* ============ Q3 季度汇报页 ============ */
.q3wrap{padding-bottom:30px}
.q3hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;
  background:linear-gradient(120deg,#12213b,#0e1930);border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.q3eyebrow{font-size:12px;letter-spacing:.12em;color:var(--accent-2);text-transform:uppercase;margin-bottom:6px}
.q3title{margin:0 0 6px;font-size:26px;letter-spacing:.5px}
.q3sub{color:var(--muted);font-size:13px}
.q3hero-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.q3pick{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:2px 6px}
.q3plabel{min-width:96px;text-align:center;font-weight:700;font-size:13px;color:#e6edf7;white-space:nowrap}
.q3pick .btn.ghost.sm{padding:4px 9px}
.q3pick .btn[disabled]{opacity:.35;cursor:not-allowed}
.q3line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:16px 0 6px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.q3seg{font-size:12.5px;color:var(--muted);padding:3px 9px;border-radius:99px;border:1px solid var(--line);white-space:nowrap}
.q3seg.on{color:#04202b;background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;font-weight:700}
.q3arrow{color:#3b5079;font-size:12px}
.q3kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:16px 0}
.q3kpis.q3kpis6{grid-template-columns:repeat(6,1fr)}
.q3kpis.q3kpis7{grid-template-columns:repeat(7,1fr)}
/* 8 张卡：适度收紧内边距，字号保持可读 */
.q3kpis.q3kpis8{grid-template-columns:repeat(8,1fr);gap:9px}
.q3kpis.q3kpis8 .q3kpi{padding:12px 10px}
.q3kpis.q3kpis8 .q3kpi-t{font-size:13px}
.q3kpis.q3kpis8 .q3kpi-v{font-size:27px;letter-spacing:0}
.q3kpis.q3kpis8 .q3kpi-s{font-size:12px;line-height:1.5}
@media(max-width:1600px){.q3kpis.q3kpis8{grid-template-columns:repeat(4,1fr)}}
.q3kpis.q3kpis4{grid-template-columns:repeat(4,1fr)}
/* 品类新增 / 目标：KPI 下方一行小卡 */
.q3catt{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:-2px 0 14px}
.q3catt-h{color:var(--muted);font-size:12.5px;margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.q3catt-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}
.q3catt-card{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.q3catt-n{color:var(--muted);font-size:12px;margin-bottom:2px}
.q3catt-v{font-size:20px;font-weight:800;line-height:1.2}
.q3catt-t{font-size:12.5px;font-weight:600;color:var(--muted);letter-spacing:0}
.q3catt-s{color:var(--muted);font-size:11.5px}
.q3catt-card .bar{height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.q3catt-card .bar i{display:block;height:100%;background:#38bdf8;border-radius:3px}
.q3catt-card .bar i.ok{background:var(--ok,#34d399)}
.q3catt-card .bar i.warn{background:var(--warn,#f59e0b)}
.q3catt-card .bar i.danger{background:var(--danger,#f87171)}
.q3kpi-s b.ok{color:var(--ok)}.q3kpi-s b.danger{color:var(--danger)}.q3kpi-s b.warn{color:var(--warn)}.q3kpi-s b.muted{color:var(--muted)}
.q3kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.q3kpi-t{color:var(--muted);font-size:12.5px}
.q3kpi-v{font-size:26px;font-weight:800;margin:4px 0 2px;letter-spacing:.5px}
.q3kpi-s{color:var(--muted);font-size:12px}
.q3kpi.k-ok .q3kpi-v{color:var(--ok)}
.q3kpi.k-warn .q3kpi-v{color:var(--warn)}
.q3kpi.k-danger .q3kpi-v{color:var(--danger)}
.q3kpi.k-muted .q3kpi-v{color:var(--muted)}
.q3cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.q3grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
/* 品类占比（窄）+ 开单机型明细（宽）：表格列多，需要更多横向空间 */
.q3grid2.q3grid-pie-model{grid-template-columns:minmax(280px,.78fr) 1.42fr}
@media(max-width:1320px){.q3grid2.q3grid-pie-model{grid-template-columns:minmax(260px,.9fr) 1.3fr}}
.q3card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.q3card-h{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700;background:var(--panel-2)}
.q3no{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04202b;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
.q3tag{color:var(--muted);font-size:12px;font-weight:400}
.q3sum{margin-left:auto;color:#c9d4e4;display:inline-flex;align-items:center;gap:10px}
.q3sum b{color:var(--ok);font-weight:900;font-size:22px;line-height:1;margin:0 2px}
.q3sum::before{content:"合计  ";color:var(--muted);font-weight:400}
.q3card-b{padding:14px 16px}
.q3row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:13.5px}
.q3row:last-child{border-bottom:0}
.q3row>span{color:var(--muted)}
.q3row b{font-size:15px}
.q3row b.ok,.q3row b.ok{color:var(--ok)}
.q3row b.warn{color:var(--warn)}
.q3row b.danger{color:var(--danger)}
.q3row .muted{color:var(--muted);font-size:12px}
.q3cmp{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:2px 0 10px}
.q3cmp-col{display:flex;flex-direction:column;gap:2px}
.q3cmp-col .k{color:var(--muted);font-size:12px}
.q3cmp-col b{font-size:24px;font-weight:800;letter-spacing:.5px}
.q3cmp-col b.ok{color:var(--ok)}
.q3cmp-col:last-child{text-align:right}
.q3cmpbar{display:flex;height:10px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:8px}
.q3cmpbar i{display:block;height:100%}
.q3cmpbar i.done{background:linear-gradient(90deg,var(--accent-2),var(--ok))}
.q3cmpbar i.over{background:linear-gradient(90deg,var(--ok),#7dd3fc)}
.q3cmp-l{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:6px}
.q3cmp-l b.ok{color:var(--ok)}.q3cmp-l b.danger{color:var(--danger)}.q3cmp-l b.warn{color:var(--warn)}
.q3mstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px}
.q3ms{padding:12px 16px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.q3ms:first-child{border-left:0}
.q3ms span{color:var(--muted);font-size:12px}
.q3ms b{font-size:22px;font-weight:800;letter-spacing:.5px}
.q3ms b.ok{color:var(--ok)}.q3ms b.warn{color:var(--warn)}.q3ms b.danger{color:var(--danger)}.q3ms b.muted{color:var(--muted)}
.q3ms em{font-style:normal;color:var(--muted);font-size:11.5px}
.q3mstrip{margin-top:14px}
.q3mstrip-hi{border-color:rgba(239,68,68,.45);box-shadow:inset 0 0 0 1px rgba(239,68,68,.12)}
.q3mstrip-hi .q3ms:first-child span{color:#f0a3a3}
.q3plan{margin:0;padding-left:20px;font-size:13.5px;line-height:1.95;color:#c9d4e4}
.q3plan li{margin-bottom:7px}
.q3plan li::marker{color:var(--accent-2);font-weight:700}
.q3note{margin-top:10px;padding:9px 11px;background:rgba(56,189,248,.07);border-left:3px solid var(--accent-2);border-radius:6px;font-size:12.5px;color:#c3cede;line-height:1.7}
.q3mini{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:280px}
.q3mini table{width:100%;border-collapse:collapse;font-size:12.5px}
.q3mini th{background:var(--panel-2);color:var(--muted);font-weight:600;text-align:left;padding:7px 10px;position:sticky;top:0}
.q3mini td{padding:7px 10px;border-top:1px solid var(--line)}
.q3mini tr.q3mine{background:rgba(45,212,191,.10)}
.q3mini tr.q3mine td{color:var(--txt);font-weight:600}
.q3foot{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.q3footc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.q3footc b{color:var(--txt)}
.q3footc ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:12.5px;line-height:1.9}
@media(max-width:1100px){.q3kpis{grid-template-columns:repeat(2,1fr)}.q3cards{grid-template-columns:1fr}.q3grid2{grid-template-columns:1fr}.q3foot{grid-template-columns:1fr}}

/* Q3 三句话模板 */
.q3three{display:grid;grid-template-columns:1fr;gap:14px;margin:4px 0 8px}
.q3card.q3big{border-left:3px solid var(--accent-2)}
.q3card-b.q3prose{font-size:14px;line-height:1.95}
.q3prose p{margin:0 0 8px}
.q3prose p:last-child{margin-bottom:0}
.q3prose ul{margin:8px 0 0;padding-left:20px}
.q3prose li{margin-bottom:5px}
.q3prose b.ok{color:var(--ok)}
.q3prose b.warn{color:var(--warn)}
.q3prose b.danger{color:var(--danger)}
.q3prose .muted{color:var(--muted)}
.q3sect-h{font-size:12px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin:24px 0 10px;padding-left:2px;border-left:3px solid var(--accent);padding-left:8px}

/* Q3 vs Q2 对比 */
.q3imp{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:12px}
.q3imp>div{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.q3imp b{font-size:13px}
.q3imp ul{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:12.5px;line-height:1.85}
.q3imp li{margin-bottom:4px}
.q3imp b.ok,.q3imp .ok{color:var(--ok)}
.q3imp b.danger,.q3imp .danger{color:var(--danger)}
.q3imp b.warn,.q3imp .warn{color:var(--warn)}
.q3mini td.ok{color:var(--ok);font-weight:700}
.q3mini td.danger{color:var(--danger);font-weight:700}
.q3mtag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:99px;border:1px solid}
.q3mtag.hi{color:#fbbf24;border-color:rgba(251,191,36,.45);background:rgba(251,191,36,.10)}
.q3mtag.head{color:#f87171;border-color:rgba(248,113,113,.5);background:rgba(248,113,113,.10)}
.q3mtag.flow{color:#60a5fa;border-color:rgba(96,165,250,.45);background:rgba(96,165,250,.10)}
.q3blk{display:inline-block;font-size:11.5px;color:#c9d4e4;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:6px;padding:0 6px;margin:1px 2px 1px 0;white-space:nowrap}
.q3blk.hi{color:#34d399;background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.45);font-weight:700}
.q3ol{margin:0;padding-left:22px;color:#c3cede;font-size:14.5px;line-height:1.9}
.q3ol li{margin-bottom:4px}
.geoRankM{margin-bottom:18px}
.geoRankWrap{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.geoRankWrap .geoRankM{margin-bottom:0}
.geoRankWrap table{font-size:12.5px}
@media(max-width:1100px){.geoRankWrap{grid-template-columns:1fr}}
.geoRankM-h{font-size:15px;font-weight:800;color:#7dd3fc;margin:0 0 8px;padding-left:10px;border-left:3px solid #38bdf8}
.q3alert{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.q3alert-big{font-size:30px;font-weight:900;color:#f87171;line-height:1;letter-spacing:.5px}
.q3alert-tx{font-size:15px;color:#e7eefb;font-weight:600}
.q3cate{width:100%;border-collapse:collapse;font-size:14px}
.q3cate th{background:var(--panel-2);color:var(--muted);font-weight:600;text-align:left;padding:8px 10px}
.q3cate td{padding:8px 10px;border-top:1px solid var(--line)}
.q3cate-top{background:rgba(52,211,153,.09)}
.q3cate-top td{font-weight:600}
.q3mini td.q3sm{font-size:11.5px;line-height:1.6;max-width:360px}
.q3mini td.q3wrap{white-space:normal;word-break:break-word;max-width:none}
.q3mini table{font-size:12px}
.q3mini th,.q3mini td{padding:6px 8px}
@media(max-width:1100px){.q3imp{grid-template-columns:1fr}}

/* 战略地图 */
.q3mapttl{font-size:13px;font-weight:700;color:#c3cede;margin:16px 0 6px;display:flex;align-items:center;gap:8px}
.q3badge{background:var(--danger);color:#fff;border-radius:99px;font-size:10.5px;padding:0 6px;margin-left:4px;font-weight:800}
.q3anom{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.q3anom-i{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:8px;padding:9px 12px;background:rgba(255,255,255,.02)}
.q3anom-i.danger{border-left-color:var(--danger)}
.q3anom-i.warn{border-left-color:var(--warn)}
.q3anom-t{font-size:13.5px;font-weight:700;color:var(--txt)}
.q3anom-t b{margin-left:4px}
.q3anom-i.danger .q3anom-t b{color:var(--danger)}
.q3anom-i.warn .q3anom-t b{color:var(--warn)}
.q3anom-d{color:var(--muted);font-size:12.5px;line-height:1.7;margin-top:3px}
.q3sol{margin-top:9px;padding-top:9px;border-top:1px dashed rgba(255,255,255,.12)}
.q3sol-h{display:inline-block;font-size:11px;color:var(--accent-2);border:1px solid var(--accent-2);border-radius:6px;padding:1px 7px;margin-bottom:6px;letter-spacing:.06em}
.q3sol ul{margin:0;padding-left:18px;color:#c9d4e4;font-size:12.8px;line-height:1.85}
.q3sol li{margin-bottom:4px}
.q3sol li::marker{color:var(--ok)}
.q3chg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.q3chg-i{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:rgba(255,255,255,.02)}
.q3chg-full{grid-column:1/-1}
.q3chg-t{font-size:17px;font-weight:800;color:#7dd3fc;margin-bottom:8px;line-height:1.4}
.q3chg-head{font-size:14px;font-weight:900;color:#fcd34d;letter-spacing:.5px;margin:20px 0 12px;padding:5px 12px;border-left:3px solid #f59e0b;background:rgba(245,158,11,.08);border-radius:0 6px 6px 0}
.q3chg-head:first-child{margin-top:2px}
.q3chg-i ul{margin:8px 0 12px;padding-left:20px;color:var(--muted);font-size:15px;line-height:1.95}
.q3chg-i li{margin-bottom:3px}
.q3lk{color:#7dd3fc;text-decoration:none;border-bottom:1px dashed rgba(125,211,252,.5);font-weight:700}
.q3lk:hover{color:#a5e0ff;border-bottom-color:#a5e0ff}
.q3lk-r{margin-left:8px;padding:2px 9px;border:1px solid rgba(125,211,252,.45);border-radius:99px;background:rgba(125,211,252,.08);font-size:13px;white-space:nowrap}
.q3lk-r:hover{background:rgba(125,211,252,.16)}
.q3chg-v{font-size:15px;color:var(--muted);border-top:1px dashed rgba(255,255,255,.1);padding-top:10px;line-height:1.7}
.q3chg-v b{color:var(--ok);font-size:16px}
.q3chg-iv{color:#a7f3d0;font-weight:700}
.q3ctable{margin:8px 0 6px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.q3ctable table{width:100%;border-collapse:collapse;font-size:13.5px}
.q3ctable th{background:var(--panel-2);color:var(--muted);font-weight:600;text-align:left;padding:8px 11px}
.q3ctable td{padding:8px 11px;border-top:1px solid var(--line);color:var(--muted);line-height:1.6}
.q3ctable td.q3ct-k{color:#7dd3fc;font-weight:700;white-space:nowrap}
.q3ctable tr:last-child td .q3ct-k{color:var(--muted)}
.q3ctable tbody tr:hover td{background:rgba(255,255,255,.03)}
.q3ctable td b{color:#eaf2ff;font-weight:800}
.q3chg-i b, .q3chg-v b{font-weight:800}
.q3hl{color:#7dd3fc;border-bottom:2px solid rgba(56,189,248,.6);font-weight:700;padding-bottom:1px}
.q3hl-r{color:#ff9c9c;border-bottom:2px solid rgba(239,68,68,.75);font-weight:800;padding-bottom:1px}
.q3hl-g{color:#6ee7b7;border-bottom:2px solid rgba(52,211,153,.75);font-weight:800;padding-bottom:1px}
.q3st{display:inline-block;font-size:11.5px;line-height:1.6;padding:0 8px;border-radius:99px;font-weight:800;margin-left:6px;vertical-align:middle;white-space:nowrap}
.nb{white-space:nowrap}
.q3st-doing{background:rgba(56,189,248,.15);color:#7dd3fc;border:1px solid rgba(56,189,248,.5)}
.q3st-done{background:rgba(52,211,153,.15);color:#6ee7b7;border:1px solid rgba(52,211,153,.5)}
.q3st-todo{background:rgba(148,163,184,.15);color:#cbd5e1;border:1px solid rgba(148,163,184,.4)}
.q3hl-a{color:#fcd34d;border-bottom:2px solid rgba(245,158,11,.75);font-weight:800;padding-bottom:1px}
.q3chg-i b,.q3chg-v b{color:#eaf2ff}
@media(max-width:1100px){.q3anom{grid-template-columns:1fr}.q3chg{grid-template-columns:1fr}}

/* 素材红黑榜 */
.mb-h{font-size:13px;font-weight:700;margin:0 0 6px}
.mb-h.mb-red{color:#f87171}
.mb-h.mb-black{color:#94a3b8}
.mb-h.mb-orange{color:#fb923c}
.mb-name{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 超级个体规划：宽表在窄屏可横向滚动，首列不换行 */
.q3ctable{overflow-x:auto}
.q3ctable table{min-width:560px}
.q3ctable td:first-child{white-space:nowrap}
.q3ctable td:nth-child(2){white-space:normal}
.q3chg-t{font-size:16px;font-weight:800;color:#eaf2ff;margin-bottom:8px}
.q3plan-core{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}

/* 超级个体 · 怎么干（五步） */
.q3plan-intro{font-size:15.5px;line-height:1.85;color:#c9d4e4;margin:2px 0 16px;padding:12px 16px;border-left:3px solid #2dd4bf;background:rgba(45,212,191,.07);border-radius:0 8px 8px 0}
.q3steps{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.q3step{display:flex;gap:14px;border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:rgba(255,255,255,.025)}
.q3step:last-child:nth-child(odd){grid-column:1/-1}
.q3step-no{flex:0 0 auto;width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:900;color:#0b1220;background:linear-gradient(135deg,#2dd4bf,#38bdf8);letter-spacing:-.5px}
.q3step-body{flex:1;min-width:0}
.q3step-name{font-size:16.5px;font-weight:800;color:#eaf2ff;line-height:1.5;margin-bottom:8px}
.q3step-body ul{margin:0;padding-left:19px;color:var(--muted);font-size:15px;line-height:1.95}
.q3step-body li{margin-bottom:5px}
.q3step-body li::marker{color:#2dd4bf}
@media (max-width:960px){.q3steps{grid-template-columns:1fr}}

/* ================= 超级个体（AI 工作台） ================= */
.sf-wrap{display:flex;flex-direction:column;gap:14px}
.sf-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.sf-head h2{font-size:22px;color:#eaf2ff;letter-spacing:.5px}
.sf-stat{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:999px;padding:7px 14px}
.sf-stat b{color:#eaf2ff}
.sf-sep{opacity:.35}
.sf-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.sf-dot.on{background:#2dd4bf;box-shadow:0 0 0 4px rgba(45,212,191,.16)}
.sf-dot.off{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.16)}

.sf-tabs{display:flex;gap:8px;flex-wrap:wrap}
.sf-tabs button{display:flex;align-items:center;gap:7px;padding:10px 18px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:#a9b8cf;font-size:14.5px;cursor:pointer;transition:.15s}
.sf-tabs button:hover{background:rgba(255,255,255,.06);color:#eaf2ff}
.sf-tabs button.on{background:linear-gradient(135deg,rgba(45,212,191,.18),rgba(56,189,248,.14));border-color:#2dd4bf;color:#eaf2ff;font-weight:700}
.sf-ic{font-size:16px}

.sf-main{display:grid;grid-template-columns:1fr 330px;gap:14px;align-items:start}
@media (max-width:1080px){.sf-main{grid-template-columns:1fr}}

.sf-form{padding:20px 22px}
.sf-form-h{font-size:17px;font-weight:800;color:#eaf2ff;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sf-fields{display:flex;flex-direction:column;gap:15px}
.sf-fld{display:flex;flex-direction:column;gap:7px}
.sf-fld>span{font-size:13px;color:#93a4bd;font-weight:600;letter-spacing:.3px}
.sf-fld input,.sf-fld textarea,.sf-fld select{width:100%;background:#0d1728;border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:#e6edf7;font-size:14.5px;font-family:inherit;outline:none;transition:.15s}
.sf-fld input:focus,.sf-fld textarea:focus,.sf-fld select:focus{border-color:#2dd4bf;box-shadow:0 0 0 3px rgba(45,212,191,.11)}
.sf-fld textarea{resize:vertical;line-height:1.7}
.sf-suffix{font-size:13px;color:var(--muted);margin-left:6px}
.sf-act{display:flex;align-items:center;gap:14px;margin-top:4px;padding-top:16px;border-top:1px solid var(--line)}

.sf-side{padding:16px 0 0;max-height:640px;display:flex;flex-direction:column}
.sf-side-h{display:flex;justify-content:space-between;align-items:center;padding:0 16px 12px;font-size:14.5px;font-weight:700;color:#eaf2ff;border-bottom:1px solid var(--line)}
.sf-list{overflow-y:auto;padding:8px}
.sf-item{padding:10px 12px;border-radius:9px;cursor:pointer;transition:.13s;margin-bottom:3px}
.sf-item:hover{background:rgba(255,255,255,.05)}
.sf-item.on{background:rgba(45,212,191,.1);box-shadow:inset 2px 0 0 #2dd4bf}
.sf-item-t{font-size:13.5px;color:#dbe6f5;line-height:1.5;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sf-item-m{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.sf-item-u{display:inline-flex;align-items:center;max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#93c5fd;background:rgba(59,130,246,.12);border-radius:5px;padding:1px 6px;font-size:11px}
.sf-item-m>span:last-child{margin-left:auto;flex-shrink:0}
.sf-badge{font-size:11px;padding:2px 8px;border-radius:5px;font-weight:700;letter-spacing:.2px}
.sf-wait{color:#f59e0b;background:rgba(245,158,11,.09)}
.sf-run{color:#38bdf8;background:rgba(56,189,248,.12)}
.sf-ok{color:#2dd4bf;background:rgba(45,212,191,.12)}
.sf-err{color:#f87171;background:rgba(248,113,113,.12)}
.sf-gray{color:#8b9bb4;background:rgba(139,155,180,.12)}

.sf-result{padding:22px 24px}

/* 任务归档 */
.sf-side-f{padding:10px 12px 14px;border-top:1px solid var(--line);margin-top:auto}
.ar-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.ar-bar input,.ar-bar select{background:#0d1728;border:1px solid var(--line);border-radius:8px;padding:8px 11px;color:#e6edf7;font-size:13.5px;font-family:inherit;outline:none;width:auto;flex:0 0 auto}
.ar-bar input:focus,.ar-bar select:focus{border-color:#2dd4bf}
.ar-bar input#arKw,.ar-bar input#lgKw{flex:1 1 200px;min-width:180px}
.ar-bar select{max-width:170px}
.ar-bar input[type=date]{width:140px}
.ar-bar input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.65)}
.ar-table{font-size:13.5px;table-layout:fixed;width:100%}
.ar-table col.c1{width:112px}.ar-table col.c2{width:90px}.ar-table col.c3{width:100px}
.ar-table col.c4{width:auto}.ar-table col.c5{width:82px}.ar-table col.c6{width:72px}.ar-table col.c7{width:190px}
.ar-table td:nth-child(3),.ar-table th:nth-child(3){white-space:nowrap}
.ar-table td:nth-child(6),.ar-table th:nth-child(6){white-space:nowrap}
.ar-table td{white-space:normal;word-break:break-word}
.ar-table td.nowrap{white-space:nowrap}
.ar-table td:nth-child(3){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-table .ar-prev{color:#8b9bb4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45}
.ar-row{cursor:pointer}
.ar-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 0 4px}

/* 站点日志 */
.log-ov{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px}
.log-ov-i{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.log-ov-t{font-size:12px;color:var(--muted);margin-bottom:5px}
.log-ov-v{font-size:19px;font-weight:800;color:#eaf2ff}
.log-ov-v.warn{color:#f59e0b}
.log-table{table-layout:fixed;width:100%}
.log-table td,.log-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.log-table td:nth-child(4){white-space:normal;word-break:break-word;color:#a9b8cf}
.log-table td:nth-child(5){white-space:normal;line-height:1.35}
.log-detail{color:#a9b8cf;word-break:break-word}
.log-detail code,.nowrap code{background:rgba(45,212,191,.09);color:#5eead4;padding:1px 5px;border-radius:4px;font-size:12px}
[data-theme] .log-ov-i{background:rgba(0,0,0,.02)}

/* 结果弹窗 */
.sf-modal{position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;padding:28px}
.sf-modal.on{display:flex}
/* 详情从归档打开时叠在上层 */
.sf-modal.sf-modal-top{z-index:950}
.sf-modal.sf-modal-top .sf-modal-mask{background:rgba(6,11,20,.55)}
.sf-modal-mask{position:absolute;inset:0;background:rgba(6,11,20,.72);backdrop-filter:blur(3px);animation:sfFade .18s ease}
.sf-modal-box{position:relative;width:min(1240px,100%);max-height:calc(100vh - 56px);display:flex;flex-direction:column;
  border:1px solid rgba(45,212,191,.22);box-shadow:0 24px 60px rgba(0,0,0,.55);animation:sfPop .2s cubic-bezier(.2,.9,.3,1.2)}
.sf-modal-body{padding:22px 24px;overflow-y:auto;flex:1;min-height:0}
.sf-modal-body::-webkit-scrollbar{width:9px}
.sf-modal-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.13);border-radius:5px}
@keyframes sfFade{from{opacity:0}to{opacity:1}}
@keyframes sfPop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media (max-width:640px){.sf-modal{padding:10px}.sf-modal-box{max-height:calc(100vh - 20px)}.sf-modal-body{padding:16px}}
.sf-res-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.sf-res-h b{font-size:16px;color:#eaf2ff}
.sf-res-f{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.sf-res-sticky{position:sticky;top:-22px;background:var(--card,#101a2c);z-index:2;margin:-22px -24px 16px;padding:16px 24px 14px;border-bottom:1px solid var(--line)}
@media (max-width:640px){.sf-res-sticky{top:-16px;margin:-16px -16px 14px;padding:14px 16px}}
.sf-wait{display:flex;align-items:center;gap:10px;padding:26px;justify-content:center;color:#f59e0b;font-size:14.5px;background:rgba(245,158,11,.06);border-radius:10px}
.sf-spin{width:15px;height:15px;border:2px solid rgba(245,158,11,.25);border-top-color:#f59e0b;border-radius:50%;animation:sfspin .8s linear infinite}
@keyframes sfspin{to{transform:rotate(360deg)}}

/* 结果文档排版 */
.sf-doc{color:#c9d4e4;font-size:14.8px;line-height:1.95}
.sf-doc h1,.sf-doc h2,.sf-doc h3,.sf-doc h4{color:#eaf2ff;line-height:1.5;margin:22px 0 10px}
.sf-doc h1{font-size:20px}.sf-doc h2{font-size:18px;padding-left:11px;border-left:3px solid #2dd4bf}
.sf-doc h3{font-size:16px}.sf-doc h4{font-size:15px;color:#a9b8cf}
.sf-doc p{margin:10px 0}
.sf-doc ul,.sf-doc ol{margin:10px 0;padding-left:22px}
.sf-doc li{margin-bottom:7px}
.sf-doc li::marker{color:#2dd4bf}
.sf-doc b{color:#eaf2ff}
.sf-doc code{background:rgba(45,212,191,.1);color:#5eead4;padding:1px 6px;border-radius:4px;font-size:13.5px}
.sf-code{background:#0a1322;border:1px solid var(--line);border-radius:9px;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.7;color:#a9b8cf;margin:12px 0}

/* 超级个体 · 结果表格 */
.sf-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;background:rgba(255,255,255,.02);border-radius:9px;overflow:hidden}
.sf-table th{background:rgba(45,212,191,.1);color:#eaf2ff;font-weight:700;text-align:left;padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap}
.sf-table td{padding:9px 13px;border-bottom:1px solid rgba(34,48,74,.65);color:#c9d4e4;vertical-align:top}
.sf-table tr:last-child td{border-bottom:none}
.sf-table tr:hover td{background:rgba(255,255,255,.03)}
/* 弹窗内表格：列数不固定（6 列、7 列都可能），一律自适应，禁止写死列宽。
   —— 写死 nth-child 宽度 + 总和 100%，会让多出的一列分到 0 宽，文字竖排撑出大片空白。 */
.sf-modal-body .sf-table{table-layout:auto;width:100%;min-width:0;max-width:100%}

/* 表头：除最后一列外都不换行，靠 nowrap 自然撑开列宽，防止「转化成本」被拆成竖排 */
.sf-modal-body .sf-table th{white-space:nowrap;padding:10px 11px}
.sf-modal-body .sf-table th:last-child{white-space:normal}

/* 单元格：数字/百分比列不折行；文字列（首列、末列）允许换行 */
.sf-modal-body .sf-table td{white-space:nowrap;line-height:1.6;padding:9px 11px}
.sf-modal-body .sf-table td:first-child,
.sf-modal-body .sf-table td:last-child{white-space:normal;word-break:break-word;overflow-wrap:anywhere}

/* 首列留出素材名/账户名空间，末列（理由/判定/关联客户）占剩余宽度 */
.sf-modal-body .sf-table th:first-child,
.sf-modal-body .sf-table td:first-child{min-width:130px}
.sf-modal-body .sf-table th:last-child,
.sf-modal-body .sf-table td:last-child{min-width:180px}

/* ───────── 落地页制作 ───────── */
.lp-entry{max-width:760px}
.lp-entry-t{font-size:16px;font-weight:700;margin-bottom:2px}
.lp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:6px}
.lp-empty{padding:28px;text-align:center;color:var(--muted);font-size:13px;
  border:1px dashed rgba(255,255,255,.14);border-radius:10px}
.lp-card{position:relative;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);
  border-radius:10px;overflow:hidden;cursor:pointer;transition:.15s;display:flex;flex-direction:column}
.lp-card:hover{border-color:rgba(99,163,255,.5);transform:translateY(-2px)}
.lp-cov{width:100%;height:150px;object-fit:cover;object-position:top;display:block;background:#0d1524}
.lp-cov-ph{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
.lp-card-b{padding:9px 11px 11px}
.lp-card-t{font-size:13px;font-weight:600;line-height:1.4;margin-bottom:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lp-card-m{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}
.lp-st{font-size:11px;padding:2px 7px;border-radius:5px;font-weight:600}
.lp-st-idle{background:rgba(148,163,184,.16);color:#cbd5e1}
.lp-st-build{background:rgba(56,189,248,.16);color:#38bdf8}
.lp-st-ok{background:rgba(45,212,191,.15);color:#2dd4bf}
.lp-st-bad{background:rgba(248,113,113,.15);color:#f87171}
.lp-del{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;
  border:0;background:rgba(0,0,0,.55);color:#e2e8f0;cursor:pointer;font-size:12px;line-height:1;
  opacity:0;transition:.15s}
.lp-card:hover .lp-del{opacity:1}
.lp-del:hover{background:#dc2626}

/* 工作台 */
.lp-work{position:fixed;inset:0;z-index:960;background:#0a1220;display:none;flex-direction:column}
.lp-work.on{display:flex}
.lp-work-in{display:flex;flex-direction:column;height:100%}
.lp-head{display:flex;align-items:center;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.09);
  background:rgba(16,26,44,.9);flex-shrink:0}
.lp-body{display:flex;flex:1;min-height:0}
.lp-pane-l{flex:1;min-width:0;overflow-y:auto;padding:18px;background:#070d18;
  display:flex;flex-direction:column;align-items:center;gap:14px}
.lp-preview{width:100%;max-width:780px;border-radius:8px;overflow:hidden;background:#0d1524;
  border:1px solid rgba(255,255,255,.08)}
.lp-preview img{width:100%;display:block}
.lp-dl{width:100%;max-width:780px}
.lp-dl-t{font-size:12px;color:var(--muted);margin-bottom:8px}
.lp-dl-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.lp-segs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.lp-segs a{position:relative;display:block;border-radius:6px;overflow:hidden;
  border:1px solid rgba(255,255,255,.1);background:#101a2c}
.lp-segs img{width:100%;display:block}
.lp-segs span{position:absolute;left:0;bottom:0;background:rgba(0,0,0,.7);color:#fff;
  font-size:10px;padding:1px 5px;border-radius:0 4px 0 4px}
.lp-pane-r{width:min(430px,40%);display:flex;flex-direction:column;border-left:1px solid rgba(255,255,255,.09);
  background:#0b1421;min-width:320px}
.lp-chat{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.lp-msg{display:flex}
.lp-msg.me{justify-content:flex-end}
.lp-bubble{max-width:88%;padding:10px 13px;border-radius:11px;font-size:13px;line-height:1.65;
  word-break:break-word}
.lp-msg.me .lp-bubble{background:#2563eb;color:#fff;border-bottom-right-radius:3px}
.lp-msg.ai .lp-bubble{background:rgba(255,255,255,.055);color:#dbe6f5;border-bottom-left-radius:3px}
.lp-msg.ai .lp-bubble p{margin:0 0 7px}
.lp-msg.ai .lp-bubble p:last-child{margin:0}
.lp-typing{display:flex;align-items:center;gap:8px;color:#f0b429}
.lp-input{border-top:1px solid rgba(255,255,255,.09);padding:11px 13px;flex-shrink:0}
.lp-input textarea{width:100%;resize:none;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.11);
  border-radius:8px;color:#e6edf7;padding:9px 11px;font-size:13px;font-family:inherit;line-height:1.6}
.lp-input textarea:focus{outline:0;border-color:rgba(99,163,255,.6)}
.lp-send{display:flex;align-items:center;margin-top:8px}
@media (max-width:900px){
  .lp-body{flex-direction:column}
  .lp-pane-r{width:100%;min-width:0;max-height:52%;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
  .lp-pane-l{max-height:48%}
}

/* 新建落地页弹窗（替代浏览器原生 prompt） */
.lp-dlg{position:fixed;inset:0;z-index:980;background:rgba(4,9,18,.72);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;animation:lpDlgIn .16s ease-out}
@keyframes lpDlgIn{from{opacity:0}to{opacity:1}}
.lp-dlg-in{width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;
  background:#0e1727;border:1px solid rgba(255,255,255,.11);border-radius:14px;
  box-shadow:0 24px 64px rgba(0,0,0,.55);overflow:hidden}
.lp-dlg-h{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;
  border-bottom:1px solid rgba(255,255,255,.08)}
.lp-dlg-t{font-size:17px;font-weight:800;color:#eaf2ff;letter-spacing:.3px}
.lp-dlg-s{font-size:12.5px;color:#8fa2bd;margin-top:5px;line-height:1.5}
.lp-dlg-x{margin-left:auto;flex:0 0 auto;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);color:#93a4bd;font-size:13px;cursor:pointer;line-height:1}
.lp-dlg-x:hover{background:rgba(255,255,255,.1);color:#eaf2ff}
.lp-dlg-b{padding:18px 20px;display:flex;flex-direction:column;gap:15px;overflow-y:auto}
.lp-dlg-f{display:flex;flex-direction:column;gap:7px}
.lp-dlg-f>span{font-size:13px;color:#93a4bd;font-weight:600;letter-spacing:.3px}
.lp-dlg-f>span i{color:#f87171;font-style:normal}
.lp-dlg-f>span em{font-style:normal;color:#6b7f99;font-weight:400;font-size:12px}
.lp-dlg-f input,.lp-dlg-f textarea{width:100%;background:#0a1220;border:1px solid rgba(255,255,255,.11);
  border-radius:9px;padding:11px 13px;color:#e6edf7;font-size:14.5px;font-family:inherit;outline:none;transition:.15s}
.lp-dlg-f input:focus,.lp-dlg-f textarea:focus{border-color:#2dd4bf;box-shadow:0 0 0 3px rgba(45,212,191,.11)}
.lp-dlg-f textarea{resize:vertical;line-height:1.7;min-height:110px}
.lp-dlg-tip{font-size:12px;color:#6b7f99;line-height:1.5}
.lp-dlg-f2{display:flex;align-items:center;gap:10px;padding:14px 20px 18px;
  border-top:1px solid rgba(255,255,255,.08)}
.lp-dlg-err{flex:1;font-size:12.5px;color:#f87171;min-height:1em}
.lp-dlg-f2 .btn{flex:0 0 auto}
.lp-dlg-f2 .btn[disabled]{opacity:.6;cursor:not-allowed}
@media (max-width:600px){
  .lp-dlg{padding:0;align-items:flex-end}
  .lp-dlg-in{max-width:none;border-radius:14px 14px 0 0;max-height:92vh}
  .lp-dlg-f textarea{min-height:88px}
}

/* 管理后台 tab 选项卡 */
.adm-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.adm-tabs button{display:flex;align-items:center;gap:7px;padding:10px 18px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:#a9b8cf;font-size:14.5px;cursor:pointer;transition:.15s}
.adm-tabs button:hover{background:rgba(255,255,255,.06);color:#eaf2ff}
.adm-tabs button.on{background:linear-gradient(135deg,rgba(45,212,191,.18),rgba(56,189,248,.14));border-color:#2dd4bf;color:#eaf2ff;font-weight:700}
.adm-pane.hide{display:none}

/* 刷新按钮 loading 反馈：所有刷新类按钮统一表现 */
@keyframes refreshSpin{to{transform:rotate(360deg)}}
.btn.is-loading{position:relative;pointer-events:none;opacity:.75}
.btn.is-loading::before{content:"";display:inline-block;width:11px;height:11px;margin-right:6px;
  border:2px solid currentColor;border-top-color:transparent;border-radius:50%;
  vertical-align:-1px;animation:refreshSpin .7s linear infinite}
/* 圆形图标按钮（只有 ↻ 一个字符）：转起来，不占额外宽度 */
.btn.icon-only.is-loading{opacity:1}
.btn.icon-only.is-loading::before{display:none}
.btn.icon-only.is-loading>span, .btn.icon-only.is-loading{animation:refreshSpin .7s linear infinite}
/* 刷新中的区域：只做极轻微的骨架感，不整页闪（整页闪会像页面重载） */
.is-refreshing .card[data-refreshing="1"]{opacity:.92;transition:opacity .2s}
/* 顶部细进度条 */
.refresh-bar{position:fixed;top:0;left:0;height:2px;width:0;z-index:80;
  background:linear-gradient(90deg,#2dd4bf,#38bdf8);transition:width .25s ease,opacity .35s ease}
.refresh-bar.on{width:72%}
.refresh-bar.done{width:100%;opacity:0}

/* 加载遮罩：保留原有内容，只在上层盖一层半透明提示，避免高度塌缩 */
.ld-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;
  background:rgba(12,18,30,.55);backdrop-filter:blur(1px);border-radius:10px;font-size:13px;color:#cfe3ff;z-index:3}
.ld-mask .spin{width:14px;height:14px}

/* 无效线索提报 · 状态标签（与原平台一致：绿=已处理 / 橙=待处理） */
.lead-st{display:inline-block;padding:1px 9px;border-radius:10px;font-size:12px;line-height:1.7;white-space:nowrap}
.lead-st.is-done{background:rgba(45,212,191,.15);color:#2dd4bf;border:1px solid rgba(45,212,191,.35)}
.lead-st.is-pending{background:rgba(240,180,41,.15);color:#f0b429;border:1px solid rgba(240,180,41,.35)}

/* ===== 运营账户看板 · 移动端卡片布局 =====
   窄屏下表格 11 列横向挤压不可读，改为每账户一张卡片。
   data-label 由 JS 渲染时写入，这里只负责布局。 */
@media (max-width:900px){
  /* 看板容器允许横向滚动兜底 */
  #acTable.scroll{overflow-x:visible}
  .ac-table{display:block;border:0}
  .ac-table thead{display:none}
  .ac-table tbody{display:block}
  .ac-table tr.ac-row{
    display:grid;grid-template-columns:1fr 1fr;gap:0 10px;
    border:1px solid rgba(255,255,255,.12);border-radius:10px;
    padding:10px 12px;margin-bottom:10px;background:rgba(255,255,255,.03)}
  .ac-table tr.ac-row>td{display:block;border:0;padding:4px 0;text-align:left}
  /* 第一格（操作按钮）跨两列放底部 */
  .ac-table tr.ac-row>td:first-child{grid-column:1/-1;order:99;border-top:1px dashed rgba(255,255,255,.1);margin-top:6px;padding-top:8px}
  /* 账户名跨两列置顶 */
  .ac-table tr.ac-row>td:nth-child(2){grid-column:1/-1;order:-1;font-size:14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}
  /* 其余单元格显示「标签 + 数值」 */
  .ac-table tr.ac-row>td[data-label]::before{
    content:attr(data-label);display:block;font-size:11px;color:#94a3b8;margin-bottom:2px}
  /* 明细行占满整宽 */
  .ac-table tr.ac-detail-row{display:block;margin:-6px 0 10px}
  .ac-table tr.ac-detail-row>td{display:block;padding:0;border:0}
  .ac-table tr.ac-detail-row[style*="display:none"]{display:none!important}
  /* 看板 KPI 窄屏两列 */
  #acKpi.grid.kpis{grid-template-columns:repeat(2,1fr)}
  /* 监控页表单与表格 */
  #mnForm .row{gap:8px}
  #mnForm .row>label{flex:1 1 45%}
  /* 多选控件内部的 label/复选框不能被这里的 width:100% 波及 */
  #mnForm select,#mnForm .row>label>input{width:100%!important}
  #mnForm .msel,#mnForm .msel-pop,#mnForm .msel-pop label{flex:none}
  #mnForm .msel{width:100%;max-width:none}
  #mnForm .msel-pop{width:max-content;max-width:min(420px,92vw)}
  #mnForm .msel-pop label{flex:1 1 auto}
  #mnForm .msel-pop label input[type=checkbox]{width:15px!important;height:15px!important}
  .ac-table tr.ac-detail-row .ac-detail{padding:10px}
}
@media (max-width:520px){
  #acKpi.grid.kpis{grid-template-columns:1fr 1fr}
  .ac-table tr.ac-row{grid-template-columns:1fr}
  #mnForm .row>label{flex:1 1 100%}
  #mnForm .msel-pop{max-width:calc(100vw - 60px)}
}

/* 剪辑中心：任务表在窄屏转卡片，避免审核列挤爆 */
@media (max-width:900px){
  #clipTasks table thead{display:none}
  #clipTasks table tbody tr{display:block;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;margin-bottom:10px}
  #clipTasks table tbody td{display:flex;justify-content:space-between;gap:12px;border:0;padding:3px 0;text-align:right}
  #clipTasks table tbody td::before{content:attr(data-l);color:#94a3b8;font-size:12px;flex:0 0 auto;text-align:left}
}

/* 我的监控 · 管理员运营 Tab */
.mn-tabs{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}
.mn-tab{
  display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:9px;cursor:pointer;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:inherit;
  font-size:13px;line-height:1;transition:background .15s,border-color .15s,color .15s}
.mn-tab:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.28)}
.mn-tab.on{background:rgba(45,212,191,.16);border-color:rgba(45,212,191,.55);color:#2dd4bf;font-weight:600}
.mn-tab.muted{opacity:.55}
.mn-tab-n{
  min-width:18px;padding:1px 5px;border-radius:9px;font-size:11px;text-align:center;
  background:rgba(255,255,255,.12);color:inherit}
.mn-tab.on .mn-tab-n{background:rgba(45,212,191,.28)}
.mn-tab-warn{color:#fbbf24;font-weight:700}
@media (max-width:900px){
  .mn-tabs{gap:6px}
  .mn-tab{padding:6px 10px;font-size:12px}
}

/* 我的监控 · Tab 状态标记 */
.mn-tab.empty{opacity:.6;border-style:dashed}
.mn-tab-none{
  font-size:10px;padding:1px 5px;border-radius:6px;
  background:rgba(148,163,184,.22);color:#94a3b8;font-weight:400}
.mn-tab.on .mn-tab-none{background:rgba(148,163,184,.3);color:#cbd5e1}

/* ================= 周复盘 ================= */
.wr-table{width:100%;border-collapse:collapse}
.wr-table th{
  font-size:14px;font-weight:600;color:#a9b7c9;text-align:left;
  padding:14px 16px;white-space:nowrap;
  border-bottom:1px solid rgba(148,163,184,.26)}
.wr-table td{
  padding:18px 16px;font-size:15.5px;line-height:1.5;
  border-bottom:1px solid rgba(148,163,184,.10);vertical-align:middle}
.wr-table tr.wr-op{transition:background .12s}
.wr-table tr.wr-op:hover{background:rgba(125,211,252,.055)}
.wr-table tbody tr:nth-child(even){background:rgba(148,163,184,.025)}
.wr-table tbody tr:nth-child(even):hover{background:rgba(125,211,252,.06)}
.wr-table tr.wr-foot td{
  font-size:15px;font-weight:600;color:#e2e8f0;padding:16px;
  background:rgba(125,211,252,.06);
  border-top:1px solid rgba(125,211,252,.22);border-bottom:0}
/* 极值标注：只变文字颜色 + 右上角浮动提示，不铺底色 */
.wr-table.wr-fixed{table-layout:fixed;width:100%}
.wr-table.wr-fixed th,.wr-table.wr-fixed td{white-space:nowrap;overflow:visible}
.wr-table td.wr-cell{position:relative;white-space:nowrap}
/* 角标绝对定位，脱离文档流，不参与列宽计算 */
.wr-table tbody td{padding-top:19px;padding-bottom:9px}
.wr-table td.wr-hit > .wr-flag{position:absolute;z-index:2}
/* 平均成本最高 —— 橙色文字 */
.wr-table td.wr-hit-avg{color:#fdba74}
.wr-table td.wr-hit-avg > span:not(.wr-flag){color:#fdba74 !important}
/* 重复率最高 / 投产比最低 —— 红色文字 */
.wr-table td.wr-hit-rep{color:#fca5a5}
.wr-table td.wr-hit-rep > span:not(.wr-flag){color:#fca5a5 !important}
.wr-table td.wr-hit-roi{color:#fca5a5}
.wr-table td.wr-hit-roi > span:not(.wr-flag){color:#fca5a5 !important}
/* 右上角浮动提示词 */
.wr-flag{
  position:absolute;top:3px;right:5px;
  font-size:10px;font-weight:500;line-height:1.2;letter-spacing:.01em;
  background:none;padding:0;white-space:nowrap;pointer-events:none;opacity:.62}
.wr-flag-avg{color:#fdba74}
.wr-flag-rep{color:#fca5a5}
.wr-flag-roi{color:#fca5a5}
/* 开单数：总数 + 首单/回购拆分小字 */
.wr-split{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.28;gap:1px}
.wr-split-n{font-size:15.5px;font-weight:600;color:#e2e8f0;font-variant-numeric:tabular-nums}
.wr-split-d{font-size:11.5px;font-weight:400;color:#93a3b8;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.wr-split-d i{font-style:normal;color:#5eead4}
.wr-split-d b{font-weight:500;color:#b7c4d4}
.wr-split-d .wr-sp{opacity:.45;margin:0 3px}
/* 合计行：字体更大，拆分缩小并上下叠放，避免撑宽列 */
.wr-split.is-foot{gap:0}
.wr-split.is-foot .wr-split-n{font-size:15px}
.wr-split.is-foot .wr-split-d{font-size:10.5px;letter-spacing:0}
.wr-split.is-foot .wr-sp{margin:0 2px}
/* 平台分区标题 */
.wr-sec{margin-bottom:26px}
.wr-sec:last-child{margin-bottom:0}
.wr-sec-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px 2px}
.wr-badge{
  display:inline-block;font-size:13px;font-weight:600;letter-spacing:.02em;
  padding:4px 12px;border-radius:20px}
.wr-badge.lp{background:rgba(125,211,252,.16);color:#7dd3fc;border:1px solid rgba(125,211,252,.3)}
.wr-badge.np{background:rgba(167,139,250,.16);color:#a78bfa;border:1px solid rgba(167,139,250,.32)}
.wr-in{
  background:rgba(15,23,42,.55);border:1px solid rgba(125,211,252,.35);
  border-radius:7px;color:#e2e8f0;font-size:15px;padding:7px 9px;outline:none;
  width:96px;text-align:right;transition:border-color .14s,box-shadow .14s}
.wr-in:focus{border-color:#7dd3fc;box-shadow:0 0 0 2px rgba(125,211,252,.18)}
/* 只读态：去掉输入框外观，看起来像普通数字，点「修改」才变成可编辑 */
.wr-in.is-ro{
  background:transparent;border-color:transparent;color:#e2e8f0;
  cursor:default;box-shadow:none}
.wr-in.is-ro:hover{background:rgba(148,163,184,.08)}
.wr-in.is-ro:focus{box-shadow:none;border-color:transparent}
.wr-unit{font-size:13px;color:#94a3b8}
@media (max-width:760px){
  .wr-table th,.wr-table td{padding:8px}
  .wr-table td[data-l]{font-size:12px}
}

/* 周复盘 · 单元格小笔与编辑态 */
.wr-cell{text-align:right}
/* 可编辑单元格内部容器（span），与 td 的 wr-cell 分开 */
.wr-ecell{display:inline-flex;align-items:center;gap:5px;justify-content:flex-end;width:100%}
.wr-val{min-width:38px;display:inline-block}
.wr-val.is-empty{color:#64748b}
.wr-pen{
  border:0;background:transparent;color:#64748b;cursor:pointer;
  font-size:15px;line-height:1;padding:3px 5px;border-radius:6px;
  opacity:.7;transition:opacity .12s,color .12s,background .12s}
tr.wr-op:hover .wr-pen{opacity:1}
.wr-pen:hover{color:#7dd3fc;background:rgba(125,211,252,.12)}
.is-editing .wr-pen{display:none}

/* ================= 周复盘 · 重点关注 / 问题 / 下周工作 ================= */
.wr-badge.focus{background:rgba(248,113,113,.16);color:#f87171;border:1px solid rgba(248,113,113,.32)}
.wr-badge.issue{background:rgba(251,191,36,.16);color:#fbbf24;border:1px solid rgba(251,191,36,.32)}
.wr-badge.next{background:rgba(52,211,153,.16);color:#34d399;border:1px solid rgba(52,211,153,.32)}

/* 重点关注：三张卡 */
.wr-focus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.wr-focus-card{
  border-radius:12px;padding:18px 20px;
  background:rgba(148,163,184,.06);
  border:1px solid rgba(148,163,184,.16)}
.wr-focus-card.bad{background:rgba(248,113,113,.07);border-color:rgba(248,113,113,.28)}
.wr-focus-card.warn{background:rgba(251,191,36,.07);border-color:rgba(251,191,36,.28)}
.wr-focus-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.wr-focus-ic{font-size:18px;line-height:1}
.wr-focus-label{font-size:13px;color:#94a3b8;letter-spacing:.02em}
.wr-focus-name{font-size:22px;font-weight:700;color:#e2e8f0;margin-bottom:6px}
.wr-focus-val{font-size:28px;font-weight:700;line-height:1.1;margin-bottom:8px}
.wr-focus-card.bad .wr-focus-val{color:#f87171}
.wr-focus-card.warn .wr-focus-val{color:#fbbf24}
.wr-focus-vs{font-size:13px;color:#94a3b8;margin-bottom:10px}
.wr-focus-detail{
  font-size:13.5px;color:#cbd5e1;line-height:1.6;
  padding-top:10px;border-top:1px dashed rgba(148,163,184,.18)}
.wr-focus-tip{font-size:12.5px;color:#64748b;margin-top:8px;font-style:italic}

/* 本周问题 */
.wr-issue-list{display:flex;flex-direction:column;gap:12px}
.wr-issue{
  border-radius:10px;padding:16px 18px;
  background:rgba(148,163,184,.05);
  border-left:3px solid #64748b}
.wr-issue.high{background:rgba(248,113,113,.06);border-left-color:#f87171}
.wr-issue.mid{background:rgba(251,191,36,.06);border-left-color:#fbbf24}
.wr-issue.good{background:rgba(52,211,153,.06);border-left-color:#34d399}
.wr-issue-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.wr-issue-lv{
  font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:20px;flex-shrink:0;
  background:rgba(148,163,184,.2);color:#cbd5e1}
.wr-issue-lv.high{background:rgba(248,113,113,.2);color:#f87171}
.wr-issue-lv.mid{background:rgba(251,191,36,.2);color:#fbbf24}
.wr-issue-lv.good{background:rgba(52,211,153,.2);color:#34d399}
.wr-issue-t{font-size:16px;font-weight:600;color:#e2e8f0;line-height:1.4}
.wr-issue-body{display:flex;flex-direction:column;gap:8px}
.wr-issue-row{display:flex;gap:12px;align-items:flex-start}
.wr-issue-k{
  font-size:12.5px;color:#64748b;flex-shrink:0;width:34px;
  padding-top:2px;font-weight:600}
.wr-issue-v{font-size:14.5px;color:#cbd5e1;line-height:1.65;flex:1}

/* 下周重点工作 */
.wr-next-list{display:flex;flex-direction:column;gap:12px}
.wr-next{
  border-radius:10px;padding:16px 18px;
  background:rgba(148,163,184,.05);
  border-left:3px solid #64748b}
.wr-next.p1{border-left-color:#f87171;background:rgba(248,113,113,.05)}
.wr-next.p2{border-left-color:#fbbf24;background:rgba(251,191,36,.05)}
.wr-next.p3{border-left-color:#38bdf8;background:rgba(56,189,248,.05)}
.wr-next-hd{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.wr-next-p{
  font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:5px;flex-shrink:0;
  background:rgba(148,163,184,.2);color:#cbd5e1;letter-spacing:.04em}
.wr-next-p.P0{background:rgba(248,113,113,.2);color:#f87171}
.wr-next-p.P1{background:rgba(251,191,36,.2);color:#fbbf24}
.wr-next-p.P2{background:rgba(56,189,248,.2);color:#38bdf8}
.wr-next-t{font-size:16px;font-weight:600;color:#e2e8f0;line-height:1.4}
.wr-next-d{font-size:14px;color:#94a3b8;line-height:1.65;margin-bottom:10px}
.wr-next-a{
  margin:0;padding-left:20px;
  font-size:14px;color:#cbd5e1;line-height:1.9}
.wr-next-a li{margin-bottom:2px}
@media (max-width:760px){
  .wr-focus-name{font-size:19px}
  .wr-focus-val{font-size:24px}
  .wr-issue-t,.wr-next-t{font-size:15px}
  .wr-issue-v,.wr-next-d{font-size:13.5px}
}

/* ================= 周复盘 · 解决方案文本框（运营填写） ================= */
.wr-sol{
  margin:10px 0 2px;padding:10px 12px;border-radius:9px;
  background:rgba(56,189,248,.05);border:1px dashed rgba(56,189,248,.22)}
.wr-sol-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.wr-sol-k{font-size:12.5px;font-weight:600;color:#7dd3fc;flex-shrink:0}
.wr-sol-meta{font-size:11.5px;color:#64748b;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wr-sol-btn{
  margin-left:auto;font-size:12px;font-weight:600;padding:3px 12px;border-radius:7px;
  border:1px solid rgba(125,211,252,.35);background:rgba(125,211,252,.1);color:#7dd3fc;
  cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}
.wr-sol-btn:hover{background:rgba(125,211,252,.2);color:#bae6fd}
.wr-sol-ta{
  width:100%;box-sizing:border-box;display:block;
  background:rgba(15,23,42,.6);border:1px solid rgba(148,163,184,.28);border-radius:8px;
  color:#e2e8f0;font-size:13.5px;line-height:1.65;padding:9px 11px;resize:vertical;
  font-family:inherit;min-height:62px}
.wr-sol-ta:focus{outline:none;border-color:rgba(125,211,252,.6);background:rgba(15,23,42,.85)}
.wr-sol-ta::placeholder{color:#475569}
.wr-sol-preview{
  font-size:13.5px;line-height:1.7;color:#cbd5e1;white-space:pre-wrap;
  padding:8px 11px;border-radius:8px;background:rgba(15,23,42,.35)}
.wr-sol-acts{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.wr-sol-acts[hidden]{display:none !important}
.wr-sol-ta[hidden]{display:none !important}
.wr-sol-preview[hidden]{display:none !important}
.wr-sol-save{
  font-size:12.5px;font-weight:600;padding:5px 16px;border-radius:7px;border:0;
  background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#04202b;cursor:pointer}
.wr-sol-save:hover{filter:brightness(1.08)}
.wr-sol-save:disabled{opacity:.55;cursor:default}
.wr-sol-cancel{
  font-size:12.5px;padding:5px 14px;border-radius:7px;cursor:pointer;
  border:1px solid rgba(148,163,184,.3);background:transparent;color:#94a3b8}
.wr-sol-cancel:hover{background:rgba(148,163,184,.1);color:#cbd5e1}
.wr-sol-msg{font-size:12px;color:#64748b}
.wr-sol-msg.err{color:#f87171}
.wr-sol-msg.hint{color:#94a3b8}
.wr-sol-msg.ok{color:#34d399}
@media (max-width:760px){
  .wr-sol{padding:8px 10px}
  .wr-sol-ta{font-size:13px;min-height:58px}
}

/* ================= 周复盘 · 下周重点任务（各运营填写） ================= */
.wr-badge.task{background:rgba(167,139,250,.18);color:#c4b5fd}

/* 「下周重点任务」右侧的部门获客目标合计 */
.wr-goalstat{
  margin-left:auto;flex-shrink:0;
  display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;
  padding:5px 13px;border-radius:9px;
  background:rgba(167,139,250,.10);border:1px solid rgba(167,139,250,.26)}
.wr-goalstat.is-partial{background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.3)}
.wr-goalstat-k{font-size:11.5px;color:#94a3b8}
.wr-goalstat-v{
  font-size:19px;font-weight:700;color:#c4b5fd;line-height:1;
  font-variant-numeric:tabular-nums}
.wr-goalstat.is-partial .wr-goalstat-v{color:#fbbf24}
.wr-goalstat-u{font-size:11.5px;color:#94a3b8;margin-right:2px}
.wr-goalstat-meta{font-size:11.5px;color:#64748b}
/* 两列网格：6 人正好 3 行；同行等高，避免参差错位 */
.wr-task-wrap{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;align-items:stretch}
.wr-task-row{
  display:flex;gap:10px;padding:12px 14px;border-radius:10px;min-width:0;
  background:rgba(148,163,184,.045);border-left:3px solid rgba(148,163,184,.25)}
.wr-task-row.mine{background:rgba(167,139,250,.06);border-left-color:#a78bfa}
.wr-task-op{
  width:78px;min-width:78px;flex-shrink:0;font-size:13.5px;font-weight:600;color:#e2e8f0;
  padding-top:2px;display:flex;align-items:center;gap:4px;white-space:nowrap}
.wr-task-me{
  font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:20px;
  background:rgba(167,139,250,.22);color:#c4b5fd}
.wr-task-body{flex:1;min-width:0;display:flex;flex-direction:column}
.wr-task-body .wr-task-list{flex:0 0 auto}
.wr-task-body .wr-task-add{align-self:flex-start}
.wr-task-body .wr-task-editor{align-self:stretch}
.wr-task-list{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wr-task-item{
  display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.6;color:#cbd5e1}
.wr-task-idx{
  flex-shrink:0;width:19px;height:19px;border-radius:50%;margin-top:2px;
  background:rgba(167,139,250,.16);color:#a78bfa;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.wr-task-txt{flex:1;min-width:0;word-break:break-word}
.wr-task-txt.is-editable{cursor:pointer;border-radius:4px;transition:background .12s}
.wr-task-txt.is-editable:hover{background:rgba(125,211,252,.09)}
.wr-task-due{
  flex-shrink:0;font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:20px;
  background:rgba(56,189,248,.14);color:#7dd3fc;margin-top:2px;white-space:nowrap}
.wr-task-acts{display:flex;gap:2px;flex-shrink:0;opacity:.45;transition:opacity .12s}
.wr-task-item:hover .wr-task-acts{opacity:1}
/* 触屏没有 hover，按钮也要能看见，否则看起来就是“填完不能改” */
@media (hover:none){.wr-task-acts{opacity:.75}}
.wr-task-edit,.wr-task-del{
  flex-shrink:0;border:0;background:transparent;color:#475569;cursor:pointer;
  font-size:15px;line-height:1;padding:1px 5px;border-radius:5px}
.wr-task-edit:hover{color:#7dd3fc;background:rgba(125,211,252,.12)}
.wr-task-del:hover{color:#f87171;background:rgba(248,113,113,.12)}
.wr-task-empty{font-size:12.5px;color:#475569;padding:2px 0 2px 26px}
.wr-task-add{
  margin-top:8px;font-size:12px;font-weight:600;padding:5px 12px;border-radius:7px;
  border:1px dashed rgba(167,139,250,.38);background:transparent;color:#a78bfa;cursor:pointer;
  transition:background .12s}
.wr-task-add:hover{background:rgba(167,139,250,.12)}
.wr-task-editor{display:flex;align-items:center;gap:7px;margin-top:8px;flex-wrap:wrap}
.wr-task-editor[hidden]{display:none !important}
/* 就地编辑：编辑框展开在目标行内部，必须独占一整行 */
.wr-task-item.has-editor{flex-wrap:wrap;background:rgba(56,189,248,.05);border-radius:8px;padding:4px 6px 6px}
.wr-task-item.has-editor .wr-task-editor{flex:1 0 100%;margin-top:6px}
.wr-task-in{
  flex:1 1 100%;min-width:0;font-size:13px;padding:6px 10px;border-radius:8px;
  background:rgba(15,23,42,.6);border:1px solid rgba(148,163,184,.28);color:#e2e8f0;
  font-family:inherit}
.wr-task-in:focus{outline:none;border-color:rgba(167,139,250,.6);background:rgba(15,23,42,.85)}
.wr-task-in::placeholder{color:#475569}
.wr-task-day{
  flex:0 0 auto;width:86px;font-size:12px;padding:5px 7px;border-radius:7px;cursor:pointer;
  background:rgba(15,23,42,.6);border:1px solid rgba(148,163,184,.28);color:#cbd5e1;
  font-family:inherit}
.wr-task-day:focus{outline:none;border-color:rgba(167,139,250,.6)}
.wr-task-ok{
  font-size:12.5px;font-weight:600;padding:6px 15px;border-radius:7px;border:0;
  background:linear-gradient(135deg,#a78bfa,#8b5cf6);color:#1a1030;cursor:pointer;flex-shrink:0}
.wr-task-ok:hover{filter:brightness(1.08)}
.wr-task-cancel{
  font-size:12.5px;padding:6px 13px;border-radius:7px;cursor:pointer;flex-shrink:0;
  border:1px solid rgba(148,163,184,.3);background:transparent;color:#94a3b8}
.wr-task-cancel:hover{background:rgba(148,163,184,.1);color:#cbd5e1}
@media (max-width:1180px){
  .wr-task-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .wr-task-wrap{grid-template-columns:minmax(0,1fr)}
  .wr-task-row{flex-direction:column;gap:8px;padding:12px 13px}
  .wr-task-op{width:auto}
  .wr-task-item{font-size:13px}
  .wr-task-empty{padding-left:0}
  .wr-task-editor{flex-wrap:wrap}
}

/* ================= 周复盘 · 重点关注（三项 + 运营填方案） ================= */
/* 三列横排 */
.wr-key-list{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;align-items:stretch}
.wr-key{
  display:flex;flex-direction:column;
  border-radius:11px;padding:13px 14px;
  background:rgba(148,163,184,.05);border:1px solid rgba(148,163,184,.13);
  border-left-width:3px;min-width:0}
.wr-key.bad{border-left-color:#f87171;background:rgba(248,113,113,.045)}
.wr-key.warn{border-left-color:#fbbf24;background:rgba(251,191,36,.045)}
.wr-key-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}
.wr-key-id{display:flex;align-items:center;gap:7px;padding-top:2px;min-width:0}
.wr-key-ic{font-size:16px;line-height:1}
.wr-key-title{font-size:14px;font-weight:600;color:#e2e8f0;white-space:nowrap}
.wr-key-metric{text-align:right;flex-shrink:0;min-width:0}
.wr-key-name{font-size:13.5px;font-weight:600;color:#cbd5e1;margin-bottom:1px;white-space:nowrap}
.wr-key-val{font-size:21px;font-weight:700;line-height:1.1;white-space:nowrap}
.wr-key.bad .wr-key-val{color:#f87171}
.wr-key.warn .wr-key-val{color:#fbbf24}
.wr-key-vs{
  font-size:11.5px;color:#94a3b8;margin-bottom:9px;
  padding-left:23px;line-height:1.45}
.wr-key-row{display:flex;gap:7px;align-items:flex-start;margin-bottom:5px}
.wr-key-k{
  font-size:11.5px;font-weight:600;color:#64748b;flex-shrink:0;width:26px;padding-top:2px}
.wr-key-v{font-size:12.5px;color:#cbd5e1;line-height:1.55;flex:1;min-width:0}
.wr-key .wr-sol{margin-top:auto}
.wr-sol-owner{font-size:11.5px;color:#94a3b8;margin-left:auto}
.wr-sol.is-ro{background:rgba(148,163,184,.04);border-color:rgba(148,163,184,.16)}
.wr-sol.is-ro .wr-sol-k{color:#94a3b8}
.wr-sol-preview.is-empty{color:#475569;font-style:italic}
@media (max-width:1180px){
  .wr-key-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .wr-key-list{grid-template-columns:minmax(0,1fr)}
  .wr-key{padding:12px 13px}
  .wr-key-title{font-size:14.5px}
  .wr-key-val{font-size:22px}
  .wr-key-vs{padding-left:0}
}

/* 下周重点任务 · 行内完成时间选择 */
.wr-task-day-inline{
  flex:0 0 auto;width:64px;font-size:11.5px;font-weight:600;padding:2px 4px;border-radius:20px;
  background:rgba(56,189,248,.12);color:#7dd3fc;border:1px solid rgba(56,189,248,.28);
  cursor:pointer;font-family:inherit;margin-top:1px;outline:none;
  -webkit-appearance:none;appearance:none;background-image:none;text-align:center}
.wr-task-day-inline:hover{background:rgba(56,189,248,.22);border-color:rgba(56,189,248,.45)}
.wr-task-day-inline:focus{border-color:rgba(56,189,248,.7)}
.wr-task-day-inline option{background:#0f172a;color:#e2e8f0;font-size:13px}
@media (max-width:760px){
  .wr-task-day-inline{min-width:52px;font-size:11px}
}

/* ================= 周复盘 · 本周部门问题及解决方案（管理员） ================= */
.wr-dept{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(148,163,184,.18)}
.wr-dept-hd{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.wr-dept-badge{
  font-size:13.5px;font-weight:700;color:#fbbf24;
  padding:3px 11px;border-radius:7px;background:rgba(251,191,36,.13)}
.wr-dept-sub{font-size:12px;color:#64748b}
/* 每组问题一个独立小方块；桌面端一行 2 个 */
.wr-dept-list{
  display:grid;gap:11px;
  grid-template-columns:repeat(2,minmax(0,1fr))}
.wr-dept-item{
  display:flex;flex-direction:column;gap:8px;
  padding:11px 13px 13px;border-radius:10px;min-width:0;
  background:rgba(251,191,36,.04);border:1px solid rgba(251,191,36,.15)}
.wr-dept-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wr-dept-no{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;
  background:rgba(251,191,36,.18);color:#fbbf24;
  font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.wr-dept-line-col{display:flex;flex-direction:column;gap:5px;min-width:0}
.wr-dept-k{flex-shrink:0;font-size:12px;font-weight:600;color:#94a3b8}
.wr-dept-in{
  width:100%;box-sizing:border-box;font-size:13.5px;padding:6px 10px;border-radius:7px;
  background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.25);color:#e2e8f0;
  font-family:inherit}
.wr-dept-in:focus{outline:none;border-color:rgba(251,191,36,.55);background:rgba(15,23,42,.85)}
.wr-dept-in::placeholder,.wr-dept-ta::placeholder{color:#475569}
.wr-dept-ta{
  width:100%;box-sizing:border-box;font-size:13.5px;line-height:1.6;padding:7px 10px;border-radius:7px;resize:vertical;
  background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.25);color:#e2e8f0;
  font-family:inherit;min-height:76px}
.wr-dept-ta:focus{outline:none;border-color:rgba(251,191,36,.55);background:rgba(15,23,42,.85)}
.wr-dept-static{font-size:13.5px;color:#cbd5e1;line-height:1.6}
.wr-dept-static.pre{white-space:pre-wrap}
.wr-dept-del{
  flex-shrink:0;border:0;background:transparent;color:#475569;cursor:pointer;
  font-size:17px;line-height:1;padding:1px 6px;border-radius:6px}
.wr-dept-del:hover{color:#f87171;background:rgba(248,113,113,.12)}
.wr-dept-acts{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.wr-dept-acts[hidden]{display:none !important}
.wr-dept-add{
  margin-left:auto;flex-shrink:0;
  font-size:12.5px;font-weight:600;padding:5px 13px;border-radius:7px;cursor:pointer;
  border:1px dashed rgba(251,191,36,.4);background:transparent;color:#fbbf24}
.wr-dept-add:hover{background:rgba(251,191,36,.1)}
.wr-dept-save{
  font-size:12.5px;font-weight:600;padding:6px 18px;border-radius:7px;border:0;cursor:pointer;
  background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#241505}
.wr-dept-save:hover{filter:brightness(1.08)}
.wr-dept-save:disabled{opacity:.55;cursor:default}
.wr-dept-msg{font-size:12px;color:#64748b}
.wr-dept-msg.err{color:#f87171}

/* ===== 部门下周重点工作（项目 + 内容，可增删；紫色系以区别上方琥珀色问题块） ===== */
.wr-nextdept{margin-top:18px;padding-top:16px;border-top:1px dashed rgba(148,163,184,.18)}
.wr-nextdept-hd{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.wr-nextdept-badge{
  font-size:13.5px;font-weight:700;color:#c4b5fd;
  padding:3px 11px;border-radius:7px;background:rgba(167,139,250,.15)}
.wr-nextdept-sub{font-size:12px;color:#64748b}
/* 每组一个独立方块；桌面端一行 3 个 */
.wr-nextdept-list{
  display:grid;gap:11px;
  grid-template-columns:repeat(3,minmax(0,1fr))}
.wr-nextdept-item{
  display:flex;gap:6px;align-items:flex-start;min-width:0;
  padding:8px 9px 9px;border-radius:10px;
  background:rgba(167,139,250,.05);border:1px solid rgba(167,139,250,.18)}
.wr-nextdept-no{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;margin-top:2px;
  background:rgba(167,139,250,.2);color:#c4b5fd;
  font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.wr-nextdept-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
/* 三列窄卡里标签横排太占宽（44px），改成标签在上、字段在下，字段吃满整列。
   注意：父容器变成 column 后，原先给横排用的 flex:1（basis=0）会转而抢「高度」，
   把 autoGrow 写好的 style.height 直接盖掉 —— 文本框就被压回一行高、内容截断。
   所以这里显式改回 flex:0 0 auto + width:100%：横向撑满、纵向按内容。 */
.wr-nextdept-line{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0}
.wr-nextdept-line-col{align-items:stretch}
.wr-nextdept-line>.wr-nextdept-in,
.wr-nextdept-line>.wr-nextdept-ta{flex:0 0 auto;width:100%}
.wr-nextdept-k{
  flex-shrink:0;font-size:11.5px;font-weight:600;color:#94a3b8;padding-top:0}
.wr-nextdept-in{
  flex:1;min-width:0;font-size:13.5px;padding:5px 8px;border-radius:7px;
  background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.25);color:#e2e8f0;
  font-family:inherit}
.wr-nextdept-in:focus{outline:none;border-color:rgba(167,139,250,.6);background:rgba(15,23,42,.85)}
.wr-nextdept-in::placeholder,.wr-nextdept-ta::placeholder{color:#475569}
.wr-nextdept-ta{
  flex:1;min-width:0;font-size:13.5px;line-height:1.6;padding:6px 8px;border-radius:7px;resize:vertical;
  background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.25);color:#e2e8f0;
  font-family:inherit;min-height:64px}
.wr-nextdept-ta:focus{outline:none;border-color:rgba(167,139,250,.6);background:rgba(15,23,42,.85)}
.wr-nextdept-static{flex:1;min-width:0;font-size:13.5px;color:#cbd5e1;line-height:1.6;padding-top:5px}
.wr-nextdept-static.pre{white-space:pre-wrap}
.wr-nextdept-del{
  flex-shrink:0;border:0;background:transparent;color:#475569;cursor:pointer;
  font-size:17px;line-height:1;padding:2px 7px;border-radius:6px;margin-top:1px}
.wr-nextdept-del:hover{color:#f87171;background:rgba(248,113,113,.12)}
.wr-nextdept-acts{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.wr-nextdept-add{
  margin-left:auto;flex-shrink:0;
  font-size:12.5px;font-weight:600;padding:5px 13px;border-radius:7px;cursor:pointer;
  border:1px dashed rgba(167,139,250,.45);background:transparent;color:#c4b5fd}
.wr-nextdept-add:hover{background:rgba(167,139,250,.12)}
.wr-nextdept-save{
  font-size:12.5px;font-weight:600;padding:6px 18px;border-radius:7px;border:0;cursor:pointer;
  background:linear-gradient(135deg,#a78bfa,#8b5cf6);color:#140b2e}
.wr-nextdept-save:hover{filter:brightness(1.08)}
.wr-nextdept-save:disabled{opacity:.55;cursor:default}
.wr-nextdept-msg{font-size:12px;color:#64748b}
.wr-nextdept-msg.err{color:#f87171}
/* 部门下周重点工作：中等屏两列，手机单列（桌面三列） */
@media (max-width:1180px){
  .wr-nextdept-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* 部门问题方块：手机单列（桌面与平板均为两列） */
@media (max-width:760px){
  .wr-goalstat{margin-left:0;width:100%;margin-top:6px}
  .wr-goalstat-v{font-size:17px}
  .wr-dept-list{grid-template-columns:1fr}
  .wr-nextdept-list{grid-template-columns:1fr}
  .wr-dept-item{padding:10px 11px}
  .wr-nextdept-item{padding:8px 9px}
  .wr-dept-k{font-size:11.5px}
  .wr-dept-add{font-size:11.5px;padding:5px 10px}
}

/* 重点关注 · 卡片内「上周对比」行 */
.wr-key-prev{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:11.5px;color:#94a3b8;margin:-4px 0 8px 23px}
.wr-key-prev.is-empty{color:#475569;font-style:italic}
.wr-key-prev-k{
  font-weight:600;color:#64748b;background:rgba(148,163,184,.12);
  padding:1px 6px;border-radius:4px;font-size:10.5px}
.wr-key-prev-v{color:#cbd5e1;font-weight:600}
.wr-key-prev-d{font-weight:600;font-size:11px}
.wr-key-prev-d.worse{color:#f87171}
.wr-key-prev-d.better{color:#34d399}
.wr-key-prev-d.flat{color:#94a3b8;font-weight:400}
@media (max-width:760px){
  .wr-key-prev{padding-left:0;margin-left:0}
}

/* ================= 周复盘 · AI 经营分析 ================= */
.wr-insight{
  margin-bottom:14px;padding:13px 15px;border-radius:10px;
  background:rgba(56,189,248,.045);
  border:1px solid rgba(56,189,248,.16);
  border-left:3px solid #38bdf8}
.wr-insight-hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.wr-insight-title{font-size:13.5px;font-weight:700;color:#7dd3fc}
.wr-insight-note{font-size:11px;color:#64748b}
.wr-insight-sum{
  font-size:13.5px;font-weight:600;color:#e2e8f0;line-height:1.6;
  padding:7px 11px;margin-bottom:10px;border-radius:7px;
  background:rgba(15,23,42,.55);border-left:2px solid rgba(56,189,248,.5)}
.wr-insight-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wr-insight-item{
  display:flex;align-items:flex-start;gap:9px;
  font-size:12.8px;line-height:1.6;color:#cbd5e1}
.wr-insight-tag{
  flex-shrink:0;min-width:52px;text-align:center;
  font-size:11px;font-weight:600;padding:1px 7px;border-radius:5px;margin-top:1px;
  background:rgba(148,163,184,.14);color:#94a3b8}
.wr-insight-txt{flex:1;min-width:0}
.wr-insight-item.is-ok .wr-insight-tag{background:rgba(52,211,153,.16);color:#34d399}
.wr-insight-item.is-warn .wr-insight-tag{background:rgba(251,191,36,.16);color:#fbbf24}
.wr-insight-item.is-warn .wr-insight-txt{color:#fde68a}
.wr-insight-item.is-bad .wr-insight-tag{background:rgba(248,113,113,.16);color:#f87171}
.wr-insight-item.is-bad .wr-insight-txt{color:#fca5a5}
.wr-insight-item.is-alert{
  padding:4px 8px;margin:0 -8px;border-radius:6px;
  background:rgba(248,113,113,.055)}
.wr-insight-item.is-alert .wr-insight-tag{background:rgba(248,113,113,.2);color:#f87171}
.wr-insight-item.is-alert .wr-insight-txt{color:#cbd5e1}
@media (max-width:760px){
  .wr-insight{padding:11px 12px}
  .wr-insight-tag{min-width:46px;font-size:10.5px}
  .wr-insight-item{font-size:12.2px}
}

/* ================================================================
   周复盘 · 字号统一（账户表格除外）
   规则：正文 14px / 次要说明 13px / 最小标签 12.5px
   目的：原来 10.5~12.5px 的密集小字在 Retina 与投影场景下偏小，
        统一抬一档；账户数据表保持原密度不动。
   ================================================================ */

/* --- 通用说明文字 --- */
.wrwrap .small,
.wrwrap .small.muted{font-size:13px}
.wrwrap .small.muted{line-height:1.65}

/* --- 顶部 KPI 卡片 --- */
.wrwrap .kpi .small.muted{font-size:13px}
.wrwrap .kpis .kpi{min-height:auto}

/* --- 重点关注卡片 --- */
.wr-key-title{font-size:15px}
.wr-key-name{font-size:14px}
.wr-key-val{font-size:23px}
.wr-key-vs{font-size:13px;padding-left:24px;line-height:1.55}
.wr-key-k{font-size:12.5px;width:28px}
.wr-key-v{font-size:13.5px;line-height:1.65}
.wr-key-prev{font-size:12.5px}
.wr-key-prev-k{font-size:12px}
.wr-key-prev-v{font-size:13px}
.wr-key-prev-d{font-size:12.5px}

/* --- 解决方案框 --- */
.wr-sol-k{font-size:13px}
.wr-sol-meta{font-size:12.5px}
.wr-sol-owner{font-size:12.5px}
.wr-sol-ta{font-size:13.5px}
.wr-sol-preview{font-size:13.5px}
.wr-sol-btn{font-size:12.5px}
.wr-sol-save,.wr-sol-cancel{font-size:12.5px}
.wr-sol-msg{font-size:12.5px}

/* --- AI 经营分析 --- */
.wr-insight-title{font-size:14.5px}
.wr-insight-note{font-size:12px}
.wr-insight-sum{font-size:14px;line-height:1.65}
.wr-insight-item{font-size:13.5px;line-height:1.65}
.wr-insight-tag{font-size:12px;min-width:56px}

/* --- 部门问题及解决方案 --- */
.wr-dept-badge{font-size:14.5px}
.wr-dept-sub{font-size:13px}
.wr-dept-k{font-size:13px;width:56px}
.wr-dept-in{font-size:14px}
.wr-dept-ta{font-size:14px;line-height:1.65}
.wr-dept-static{font-size:14px;line-height:1.65}
.wr-dept-no{font-size:12.5px;width:22px;height:22px}
.wr-dept-add,.wr-dept-save{font-size:13px}
.wr-dept-msg{font-size:12.5px}

/* --- 下周重点任务 --- */
.wr-task-op{font-size:14px}
.wr-task-me{font-size:11.5px}
.wr-task-item{font-size:14px;line-height:1.62}
.wr-task-idx{font-size:12px;width:20px;height:20px}
.wr-task-due{font-size:12.5px}
.wr-task-empty{font-size:13.5px}
.wr-task-add{font-size:13px}
.wr-task-in{font-size:14px}
.wr-task-day,.wr-task-day-inline{font-size:12.5px}
.wr-task-ok,.wr-task-cancel{font-size:13px}
.wr-task-edit,.wr-task-del{font-size:16px}

/* --- 板块标签 --- */
.wr-badge{font-size:13.5px}
.wr-sec-hd .small.muted{font-size:13px}

/* --- 移动端同步抬字（不缩回去） --- */
@media (max-width:760px){
  .wr-key-v{font-size:13px}
  .wr-insight-item{font-size:13px}
  .wr-task-item{font-size:13.5px}
  .wr-dept-k{font-size:12.5px}
}

/* 重点补充：仍偏小的细节点位再抬一档 */
.wr-key-prev{font-size:13px;margin-left:24px}
.wr-key-prev-k{font-size:12.5px;padding:1px 7px}
.wr-key-prev-v{font-size:13.5px}
.wr-key-prev-d{font-size:13px}
.wr-key-vs{font-size:13px;color:#a8b6cc}
.wr-insight-note{font-size:12.5px}
.wr-insight-tag{font-size:12.5px;min-width:58px;padding:2px 8px}
.wr-task-me{font-size:12px}
.wr-task-idx{font-size:12.5px}
.wr-task-due{font-size:13px;padding:2px 9px}
.wr-dept-no{font-size:13px}
.wr-key .wr-sol-owner{font-size:12.5px}
.wr-key .wr-sol-k{font-size:13px}

/* ================= 周复盘 · 顶部 KPI 上周对比 ================= */
.wrwrap .kpi-prev{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin-top:5px;font-size:12.5px;color:#7b8aa3;line-height:1.5}
.wrwrap .kpi-chip{
  font-size:12px;font-weight:600;padding:1px 7px;border-radius:5px;
  background:rgba(148,163,184,.13);white-space:nowrap}
.wrwrap .kpi-chip.better{background:rgba(52,211,153,.15);color:#34d399}
.wrwrap .kpi-chip.worse{background:rgba(248,113,113,.15);color:#f87171}
.wrwrap .kpi-chip.flat{background:rgba(148,163,184,.13);color:#94a3b8;font-weight:400}

/* ================= 周复盘 · 品类获客环比 ================= */
.wr-cat{margin-top:14px;padding-top:13px;border-top:1px dashed rgba(148,163,184,.18)}
.wr-cat-hd{font-size:13.5px;font-weight:600;color:#94a3b8;margin-bottom:11px;
  display:flex;align-items:center;gap:9px}
.wr-cat-lgd{font-size:11px;font-weight:500;color:#5c6b82}
.wr-cat-list{display:flex;gap:9px;flex-wrap:wrap}

/* 每张卡：品类名 + 两块指标（新增 / 单位成本），各自带环比标签 */
.wr-cat-item{
  flex:1 1 132px;min-width:124px;max-width:190px;
  padding:10px 12px 11px;border-radius:10px;text-align:left;
  background:rgba(148,163,184,.055);
  border:1px solid rgba(148,163,184,.14)}
.wr-cat-name{font-size:13px;font-weight:700;color:#e2e8f0;margin-bottom:8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wr-cat-item.is-dead{border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06)}
.wr-cat-item.is-dead .wr-cat-name{color:#f87171}

/* 指标块之间用细线分隔，视觉上明确是两件事 */
.wr-cat-blk + .wr-cat-blk{margin-top:9px;padding-top:9px;border-top:1px dashed rgba(148,163,184,.13)}
.wr-cat-k{font-size:11px;color:#64748b;font-weight:500;letter-spacing:.3px;margin-bottom:3px}
.wr-cat-v{display:flex;align-items:baseline;gap:6px;flex-wrap:nowrap}
.wr-cat-v b{font-size:18px;font-weight:700;color:#e2e8f0;line-height:1.2;white-space:nowrap}
.wr-cat-item.is-dead .wr-cat-blk:first-child .wr-cat-v b{color:#f87171}
/* 环比标签：带底色的小胶囊，绿升红降，一眼区分方向 */
.wr-cat-t{font-style:normal;font-size:11px;font-weight:700;padding:1px 5px;border-radius:4px;
  white-space:nowrap;line-height:1.5}
.wr-cat-t.good{color:#34d399;background:rgba(52,211,153,.13)}
.wr-cat-t.bad{color:#f87171;background:rgba(248,113,113,.13)}
.wr-cat-t.flat{color:#94a3b8;background:rgba(148,163,184,.12)}
.wr-cat-p{font-size:10.5px;color:#5c6b82;margin-top:3px;white-space:nowrap}

@media (max-width:1180px){
  .wr-cat-item{flex:1 1 30%;min-width:118px;max-width:none}
}
@media (max-width:760px){
  .wr-cat-item{flex:1 1 46%;min-width:0;padding:9px 10px}
  .wr-cat-v b{font-size:16px}
  .wr-cat-t{font-size:10.5px}
}

/* 品类诊断结论 · 卡片下方 */
.wr-cat-diag{display:flex;gap:7px;margin-top:10px;padding:9px 11px;border-radius:8px;
  background:rgba(148,163,184,.06);border-left:2px solid #475569;font-size:12.5px;line-height:1.65;color:#b6c2d4}
.wr-cat-diag-ic{flex:0 0 auto;font-weight:700;color:#64748b;line-height:1.65}
.wr-cat-diag-txt{flex:1 1 auto;min-width:0}
.wr-cat-diag.is-warn{background:rgba(250,204,21,.07);border-left-color:#facc15;color:#d8d1b4}
.wr-cat-diag.is-warn .wr-cat-diag-ic{color:#facc15}
.wr-cat-diag.is-bad{background:rgba(248,113,113,.07);border-left-color:#f87171;color:#e0c3c3}
.wr-cat-diag.is-bad .wr-cat-diag-ic{color:#f87171}
.wr-cat-diag.is-ok{background:rgba(52,211,153,.06);border-left-color:#34d399;color:#b8d6cb}
.wr-cat-diag.is-ok .wr-cat-diag-ic{color:#34d399}

/* 固定快照提示条 */
.wr-snapbar{margin-top:10px;padding:7px 11px;border-radius:7px;font-size:12px;
  color:#94a3b8;background:rgba(56,189,248,.07);
  border-left:2px solid rgba(56,189,248,.5)}

/* ===== 截图结果提示框（替代不可靠的自动下载） ===== */
.wr-shotbox{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;
  min-width:300px;max-width:min(520px,92vw);
  background:#0f1a2e;border:1px solid rgba(56,189,248,.35);border-radius:12px;
  box-shadow:0 12px 40px rgba(0,0,0,.55);overflow:hidden;
  animation:wrShotIn .18s ease-out}
@keyframes wrShotIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.wr-shotbox-hd{
  display:flex;align-items:center;gap:8px;padding:10px 12px;
  font-size:13px;font-weight:600;color:#e2e8f0;
  background:rgba(56,189,248,.08);border-bottom:1px solid rgba(56,189,248,.18)}
.wr-shotbox-x{
  margin-left:auto;border:0;background:transparent;color:#94a3b8;
  font-size:14px;cursor:pointer;padding:0 4px;line-height:1}
.wr-shotbox-x:hover{color:#e2e8f0}
.wr-shotbox-bd{display:flex;flex-direction:column;gap:6px;padding:12px}
.wr-shotbox-bd a{
  display:block;text-align:center;text-decoration:none;
  font-size:13px;font-weight:600;padding:9px 14px;border-radius:8px;
  background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#04202b}
.wr-shotbox-bd a:hover{filter:brightness(1.08)}

/* ===== 获客目标：固定必填行（纯数字，短输入框，青色主题） ===== */
.wr-task-goal{
  align-items:center;padding:6px 9px;border-radius:8px;gap:8px;
  background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.22)}
.wr-task-goal .wr-task-idx{background:rgba(45,212,191,.18);color:#2dd4bf}
.wr-task-goal-tag{
  flex-shrink:0;font-size:11px;font-weight:700;padding:1px 7px;border-radius:20px;
  background:rgba(45,212,191,.15);color:#5eead4;letter-spacing:.3px}
.wr-task-goal .wr-goal-in{
  flex:0 0 auto;width:76px;min-width:0;text-align:center;
  font-size:13.5px;line-height:1.5;padding:3px 8px;border-radius:6px;
  background:rgba(15,23,42,.75);border:1px solid rgba(45,212,191,.3);
  color:#99f6e4;font-family:inherit;font-variant-numeric:tabular-nums;
  -moz-appearance:textfield}
.wr-task-goal .wr-goal-in::-webkit-outer-spin-button,
.wr-task-goal .wr-goal-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.wr-task-goal .wr-goal-in:focus{outline:none;border-color:rgba(45,212,191,.75);background:rgba(15,23,42,.95)}
.wr-task-goal .wr-goal-in::placeholder{color:#475569}
.wr-goal-num{
  flex:0 0 auto;min-width:44px;text-align:center;
  font-size:14px;font-weight:700;color:#99f6e4;font-variant-numeric:tabular-nums}
.wr-goal-unit{flex-shrink:0;font-size:12px;color:#5eead4;opacity:.75}
.wr-task-goal.is-missing{border-style:dashed;border-color:rgba(148,163,184,.35);background:rgba(148,163,184,.05)}
.wr-task-goal.is-missing .wr-goal-in{border-color:rgba(148,163,184,.35)}
.wr-task-req{
  flex-shrink:0;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:20px;
  background:rgba(248,113,113,.2);color:#fca5a5}
@media (max-width:760px){
  .wr-task-goal{flex-wrap:wrap}
  .wr-task-goal .wr-goal-in{flex:0 0 auto}
}

/* ============================================================================
 * 周复盘 · 输入控件统一加大字号 + 文本域随内容自动增高
 * 背景：运营反馈所有输入框/文本域的字太小看不清
 * 放在最后统一覆盖，避免与上面各处的零散字号打架
 * ========================================================================== */

/* --- 1) 文字加大 --- */
/* 解决方案框 */
.wr-sol-ta{font-size:15px;line-height:1.75;min-height:66px}
.wr-sol-preview{font-size:15px;line-height:1.8}
.wr-sol-k{font-size:14px}
.wr-sol-meta,.wr-sol-owner,.wr-sol-msg{font-size:13.5px}
.wr-sol-btn,.wr-sol-save,.wr-sol-cancel{font-size:13.5px}

/* 部门问题及解决方案 */
.wr-dept-in{font-size:15px;padding:8px 11px}
.wr-dept-ta{font-size:15px;line-height:1.75;padding:9px 11px;min-height:66px}
.wr-dept-static{font-size:15px;line-height:1.8}
.wr-dept-k{font-size:14px}
.wr-dept-sub{font-size:13px}
.wr-dept-add,.wr-dept-save{font-size:13.5px}
.wr-dept-msg{font-size:13px}

/* 部门下周重点工作 */
.wr-nextdept-in{font-size:15px;padding:8px 11px}
.wr-nextdept-ta{font-size:15px;line-height:1.75;padding:9px 11px;min-height:66px}
.wr-nextdept-static{font-size:15px;line-height:1.8}
.wr-nextdept-k{font-size:14px;width:44px}
.wr-nextdept-sub{font-size:13px}
.wr-nextdept-add,.wr-nextdept-save{font-size:13.5px}
.wr-nextdept-msg{font-size:13px}

/* 下周重点任务 */
.wr-task-in{font-size:15px}
.wr-task-in{padding:8px 11px}
.wr-task-txt{font-size:15px;line-height:1.7}
.wr-task-item{font-size:15px;line-height:1.7}
.wr-task-op{font-size:15px}
.wr-task-empty{font-size:14px}
.wr-task-add{font-size:13.5px}
.wr-task-day,.wr-task-day-inline{font-size:13.5px}
.wr-task-ok,.wr-task-cancel{font-size:13.5px}
.wr-task-due{font-size:13.5px;padding:2px 9px}
.wr-task-goal-tag{font-size:12.5px;padding:2px 9px}
.wr-task-req{font-size:12px;padding:2px 8px}
.wr-task-goal .wr-goal-in{font-size:15px}

/* 板块标题与说明 */
.wr-badge{font-size:14.5px}
.wr-sec-hd .small.muted{font-size:13.5px}

/* --- 2) 文本域随内容自动增高 ---
   由 app.js 的 autoGrow() 按 scrollHeight 设置 height，
   这里只兜底：关掉手动拖拽，避免和自动高度打架 */
.wr-autogrow{resize:none;overflow:hidden;min-height:66px}
/* 自增高文本域若同时是 flex 子项，basis 必须 auto：
   basis=0 会把 autoGrow 写好的 height 顶掉，框被压回一行高、内容截断。
   （纵向 flex 下 basis 作用于高度，横向 flex 下作用于宽度，两种情况都不该被压缩） */
textarea.wr-autogrow{flex:0 0 auto !important;width:100%}

/* 只读预览也跟随内容自然展开（本身是块级，不需要定高） */
.wr-sol-preview,.wr-dept-static.pre,.wr-nextdept-static.pre{height:auto}

/* 下拉选择（完成时间）同步加大 */
.wr-task-day,.wr-task-day-inline{font-size:14px;padding:6px 9px}

/* ============================================================================
 * 品类获客环比 · 卡片文字加大
 * 背景：卡片里品类名 13px、指标名 11px、上周对比 10.5px，都偏小
 * 同时放宽卡片最大宽度，避免字变大后被截断成省略号
 * ========================================================================== */
.wr-cat-hd{font-size:15px}
.wr-cat-lgd{font-size:12.5px}

.wr-cat-item{
  flex:1 1 158px;min-width:148px;max-width:230px;
  padding:12px 14px 13px}
.wr-cat-name{font-size:15px;margin-bottom:9px}

.wr-cat-k{font-size:13px;margin-bottom:4px;letter-spacing:.2px}
.wr-cat-v b{font-size:21px}
.wr-cat-t{font-size:12.5px;padding:2px 6px}
.wr-cat-p{font-size:12.5px;margin-top:4px}

.wr-cat-diag{font-size:14px;line-height:1.75;padding:11px 13px}

@media (max-width:1180px){
  /* 字大了，30% 会挤成两行，改两列 */
  .wr-cat-item{flex:1 1 44%;min-width:150px;max-width:none}
}
@media (max-width:760px){
  .wr-cat-item{flex:1 1 100%;min-width:0;padding:11px 12px}
  .wr-cat-name{font-size:14.5px}
  .wr-cat-k{font-size:12.5px}
  .wr-cat-v b{font-size:19px}
  .wr-cat-t{font-size:12px}
  .wr-cat-p{font-size:12px}
  .wr-cat-diag{font-size:13.5px}
}

/* 导出截图时替代 input/textarea 的静态块：
   height:auto 保证长文本不被裁，样式对齐原表单控件 */
.wr-shot-static{
  color:#e2e8f0;
  white-space:pre-wrap;
  word-break:break-word;
  overflow-wrap:anywhere;
  border-style:solid;
}
.wr-shot-static.is-empty{color:#64748b}

/* ===== GEO 复盘：发现的问题与解决方案 ===== */
.geoIssues{margin-top:18px}
.geoIssue{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:16px}
.geoIssue-h{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(248,113,113,.10),rgba(248,113,113,.02))}
.geoIssue-n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;background:rgba(248,113,113,.18);color:#fca5a5}
.geoIssue-t{font-size:18px;font-weight:800;color:#e7eefb;line-height:1.4}
.geoIssue-tag{margin-left:auto;font-size:12.5px;font-weight:800;padding:3px 11px;border-radius:99px;background:rgba(248,113,113,.15);color:#fca5a5;white-space:nowrap}
.geoIssue-b{padding:18px 20px 20px}
.geoIssue-met{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.geoMet{flex:1 1 0;min-width:130px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:11px;padding:13px 16px}
.geoMet-k{font-size:13px;color:var(--muted);margin-bottom:6px}
.geoMet-v{font-size:26px;font-weight:900;line-height:1.15;color:#e7eefb}
.geoMet-v small{font-size:14px;font-weight:700;margin-left:3px}
.geoMet-d{font-size:13px;margin-top:5px;font-weight:700}
.geoMet-d.down{color:#f87171}
.geoMet-d.up{color:#34d399}
.geoMet-d.flat{color:#94a3b8}
.geoMet-s{font-size:12.5px;color:#94a3b8;margin-top:4px;font-weight:600}
.geoMet.is-tgt{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.3)}
.geoMet.is-tgt .geoMet-s{color:#6ee7b7}

.geoCols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:980px){.geoCols{grid-template-columns:1fr}}
.geoCol{border:1px solid var(--line);border-radius:12px;padding:16px 20px 18px;background:rgba(255,255,255,.02)}
.geoCol.hit{border-color:rgba(52,211,153,.38);background:rgba(52,211,153,.055)}
.geoCol-h{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:900;margin-bottom:12px;letter-spacing:.3px}
.geoCol.cause .geoCol-h{color:#fca5a5}
.geoCol.hit .geoCol-h{color:#6ee7b7}
.geoCol p{margin:0 0 11px;font-size:16px;line-height:1.95;color:#c9d4e5}
.geoCol p:last-child{margin-bottom:0}
.geoCol b{color:#fff;font-weight:800}
.geoCol .em{color:#fcd34d;font-weight:800}
.geoCol ul{margin:6px 0 0;padding-left:0;list-style:none}
.geoCol ul li{position:relative;padding-left:24px;margin-bottom:11px;font-size:16px;line-height:1.9;color:#c9d4e5}
.geoCol ul li:last-child{margin-bottom:0}
.geoCol ul li::before{content:'';position:absolute;left:6px;top:12px;width:7px;height:7px;border-radius:50%;background:#34d399}
.geoCol ul li b{color:#fff}

.geoBar{display:flex;height:9px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08);margin-top:12px}
.geoBar i{display:block;height:100%}
.geoBarNote{display:flex;flex-wrap:wrap;gap:14px;margin-top:9px;font-size:13px;color:var(--muted)}
.geoBarNote span{display:flex;align-items:center;gap:6px}
.geoBarNote em{width:9px;height:9px;border-radius:2px;display:inline-block}
.geoIssues{scroll-margin-top:96px}

/* ===== 问题复盘：指标卡 + 进度条（月报专用） ===== */
.q3chg-prob{gap:16px}
.q3prob{padding:0;overflow:hidden;background:rgba(255,255,255,.025)}
.q3prob .q3chg-head{margin:0;border-radius:0;padding:10px 18px;font-size:14.5px;letter-spacing:.08em}
.q3prob-t{font-size:21px;font-weight:900;color:#e8eefc;padding:16px 18px 12px;line-height:1.35}
.q3pmet{display:flex;gap:10px;padding:0 18px 4px;flex-wrap:wrap}
.q3pm{flex:1 1 0;min-width:108px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:rgba(255,255,255,.03)}
.q3pm-k{font-size:13.5px;color:var(--muted);letter-spacing:.06em;margin-bottom:5px}
.q3pm-v{font-size:30px;font-weight:900;line-height:1.1;color:#e8eefc;font-variant-numeric:tabular-nums}
.q3pm-u{font-size:14px;font-weight:600;color:var(--muted);margin-left:3px}
.q3pm-s{font-size:13px;color:var(--muted);margin-top:4px}
.q3pm-r{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.09)}
.q3pm-r .q3pm-v{color:#ff9c9c}
.q3pm-g{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.08)}
.q3pm-g .q3pm-v{color:#6ee7b7}
.q3pm-a{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.09)}
.q3pm-a .q3pm-v{color:#fcd34d}
.q3pbars{padding:14px 18px 6px;display:flex;flex-direction:column;gap:7px}
.q3pb{display:grid;grid-template-columns:84px 1fr 150px;align-items:center;gap:10px}
.q3pb-n{font-size:14.5px;color:#c9d4e4;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q3pb-t{height:7px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.q3pb-t i{display:block;height:100%;border-radius:99px;transition:width .5s ease}
.q3pb-r .q3pb-t i{background:linear-gradient(90deg,#ef4444,#f87171)}
.q3pb-g .q3pb-t i{background:linear-gradient(90deg,#10b981,#34d399)}
.q3pb-a .q3pb-t i{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.q3pb-v{font-size:14.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.q3pb-v b{color:#e8eefc;font-weight:800}
.q3pb-r .q3pb-v b{color:#ff9c9c}
.q3pb-g .q3pb-v b{color:#6ee7b7}
.q3pb-pc{color:#9aa7bd;margin-left:4px}
.q3pnote{font-size:13.5px;color:var(--muted);padding:6px 18px 12px;line-height:1.65}
.q3plist{padding:8px 18px 14px;display:flex;flex-direction:column;gap:9px}
.q3pli{position:relative;padding-left:34px;font-size:15.5px;line-height:1.7;color:#c9d4e4}
.q3plb{position:absolute;left:0;top:2px;width:24px;height:24px;line-height:24px;text-align:center;border-radius:7px;font-size:13.5px;font-weight:900}
.q3plb-c{background:rgba(239,68,68,.18);color:#ff9c9c;border:1px solid rgba(239,68,68,.35)}
.q3plb-s{background:rgba(52,211,153,.15);color:#6ee7b7;border:1px solid rgba(52,211,153,.32)}
.q3plb2{font-size:12.5px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:1px 5px;margin-right:5px}
.q3prob .q3chg-v{margin:0;padding:12px 18px;background:rgba(255,255,255,.03);border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.q3pb-t{position:relative}
.q3pb-mk{position:absolute;top:-3px;bottom:-3px;width:2px;background:rgba(255,255,255,.42);border-radius:2px;z-index:2}
.q3pb-mk::after{content:'';position:absolute;top:-4px;left:-2px;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}

/* ===== 视频素材更新：分配表格（无来源列，机型自适应） ===== */
table.q3wt{margin:0;font-size:13px}
table.q3wt th{padding:8px 8px;font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.04em;background:rgba(255,255,255,.03);white-space:nowrap}
table.q3wt td{padding:9px 8px;border-top:1px solid var(--line);vertical-align:top;line-height:1.6}
table.q3wt tbody tr:hover{background:rgba(255,255,255,.03)}
.q3wt-n{white-space:nowrap;font-size:13.5px}
.q3wt-pc{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.q3wt-m{color:#c9d4e4;font-size:12.5px;line-height:1.68;word-break:break-word}
.q3wt td b{font-variant-numeric:tabular-nums}
.q3wt-m{display:flex;flex-wrap:wrap;gap:4px 5px;padding:8px 8px !important}
.q3mchip{display:inline-block;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.035);font-size:12px;color:#c9d4e4;white-space:nowrap;line-height:1.55}
.q3mchip i{font-style:normal;color:#7dd3fc;font-weight:800;margin-left:3px}

/* ===== 环比对照图（趋势模式，非进度条） ===== */
.q3trend{padding:14px 18px 8px}
.q3trend-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.q3trend-k{font-size:13px;font-weight:800;color:#9aa7bd;letter-spacing:.06em}
.q3trend-lg{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}
.q3trend-lg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:middle}
.q3trend-lg i.up{background:#34d399}
.q3trend-lg i.dn{background:#f87171}
.q3trend-lg i.eq{background:#94a3b8}
.q3trend-rows{display:flex;flex-direction:column;gap:9px}
.q3trend-row{display:grid;grid-template-columns:88px 1fr 82px 92px;align-items:center;gap:12px;padding:5px 0;border-radius:8px}
.q3trend-row.is-now{background:rgba(251,191,36,.055);outline:1px solid rgba(251,191,36,.16)}
.q3trend-n{font-size:14px;font-weight:700;color:#c9d4e4;white-space:nowrap}
.q3trend-now{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:5px;background:rgba(251,191,36,.18);color:#fcd34d;font-size:10.5px;font-weight:800;vertical-align:middle}
.q3trend-track{position:relative;height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:visible}
.q3trend-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px;opacity:.9}
.q3trend-fill.up{background:linear-gradient(90deg,rgba(16,185,129,.35),#34d399)}
.q3trend-fill.dn{background:linear-gradient(90deg,rgba(239,68,68,.32),#f87171)}
.q3trend-fill.eq{background:linear-gradient(90deg,rgba(148,163,184,.3),#94a3b8)}
.q3trend-fill.now{background:linear-gradient(90deg,rgba(245,158,11,.35),#fbbf24)}
.q3trend-dot{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;transform:translate(-50%,-50%);border:2.5px solid #0b1220;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.q3trend-dot.up{background:#34d399}
.q3trend-dot.dn{background:#f87171}
.q3trend-dot.eq{background:#94a3b8}
.q3trend-dot.now{background:#fbbf24}
.q3trend-v{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.q3trend-v b{font-size:16px;font-weight:800;color:#e8eefc}
.q3trend-u{font-size:12px;color:var(--muted);margin-left:2px}
.q3trend-c{text-align:right;white-space:nowrap}
.q3trend-diff{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.q3trend-diff.up{background:rgba(52,211,153,.14);color:#6ee7b7}
.q3trend-diff.dn{background:rgba(248,113,113,.14);color:#ff9c9c}
.q3trend-diff.eq{background:rgba(148,163,184,.14);color:#cbd5e1}
.q3trend-diff.q3trend-base{background:rgba(148,163,184,.1);color:#94a3b8}
.q3trend-note{margin-top:11px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px;color:var(--muted)}
@media(max-width:760px){
  .q3trend-row{grid-template-columns:66px 1fr 66px 76px;gap:7px}
  .q3trend-v b{font-size:14px}
  .q3trend-diff{font-size:11px;padding:2px 6px}
}

/* ============================================================================
 * 月度复盘 · 问题复盘（问题 / 原因 / 解决方案）字号再放大
 * 背景：用户反馈「问题那块的字还是小」，尤其是原因与解决方案两段正文
 * 放在最后统一覆盖，避免与上面各处分档字号打架
 * ========================================================================== */

/* 区块小标题（问题一 / 问题二 …） */
.q3prob .q3chg-head{font-size:16px;padding:12px 20px}

/* 问题标题 */
.q3prob-t{font-size:23px;padding:18px 20px 14px}

/* 指标卡 */
.q3pm-k{font-size:15px}
.q3pm-v{font-size:33px}
.q3pm-u{font-size:15.5px}
.q3pm-s{font-size:14.5px}

/* 进度条（含环比趋势行） */
.q3pb-n{font-size:16px}
.q3pb-v{font-size:16px}
.q3pb-pc{font-size:15px}

/* 条形说明 */
.q3pnote{font-size:15px;line-height:1.75}

/* 原因 / 解决方案 正文 */
.q3pli{font-size:17px;line-height:1.8;padding-left:38px}
.q3plb{width:27px;height:27px;line-height:27px;font-size:15px;border-radius:8px}
.q3plb2{font-size:13.5px;padding:2px 7px}

/* 预计达成 */
.q3prob .q3chg-v{font-size:16.5px;line-height:1.75}

@media(max-width:760px){
  .q3prob-t{font-size:20px}
  .q3pli{font-size:16px;padding-left:34px}
  .q3pnote{font-size:14px}
}

/* ============================================================================
 * 单运营总览 · KPI 卡片一行显示（管理员视角不受影响）
 * 运营视角共 9 张卡片（我的分配进度 / 我的业务员 / 分配客户数 / 开单总数 /
 * 非流量机型开单数 / 合同金额 / 非流量机型金额 / 重复率 / 转化率）
 * 默认 auto-fit 会把第 9 张挤到第二行，这里固定 9 列。
 * ========================================================================== */
.kpis.kpis-9{grid-template-columns:repeat(9,minmax(0,1fr));gap:10px}
.kpis.kpis-9 .kpi{padding:12px 11px;min-width:0}
.kpis.kpis-9 .kpi .t{font-size:11.5px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpis.kpis-9 .kpi .v{font-size:19px;margin-top:4px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpis.kpis-9 .kpi .d{font-size:11px;line-height:1.4;margin-top:3px}
.kpis.kpis-9 .kpi.kpi-hl .v{font-size:19px}

/* 9 列窄卡：允许长文案换行，避免「序时…应达…」被裁掉 */
.kpis.kpis-9 .kpi .d{white-space:normal;word-break:break-word}
.kpis.kpis-9 .kpi .small{font-size:10.5px;line-height:1.5}
.kpis.kpis-9 .kpi .bar{margin-top:6px}
.kpis.kpis-9 .kpi .badge{font-size:10px;padding:1px 5px}

/* 中等屏：先退到 5 列（两行但整齐），不影响管理员 */
@media (max-width:1500px){
  .kpis.kpis-9{grid-template-columns:repeat(5,minmax(0,1fr))}
  .kpis.kpis-9 .kpi .v,.kpis.kpis-9 .kpi.kpi-hl .v{font-size:20px}
}
/* 窄屏：3 列 */
@media (max-width:1080px){
  .kpis.kpis-9{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* 手机：2 列 */
@media (max-width:700px){
  .kpis.kpis-9{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ===== 业务员⇄运营 归属面板 ===== */
.sm-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13.5px;color:#9fb0c9;margin-top:2px}
.sm-legend span{display:inline-flex;align-items:center;gap:6px}
.sm-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 auto}
.sm-dot.sm-p{background:#f5b942;box-shadow:0 0 0 3px rgba(245,185,66,.16)}
.sm-dot.sm-s{background:#5b9bd5;box-shadow:0 0 0 3px rgba(91,155,213,.16)}
.sm-dot.sm-n{background:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.16)}
.sm-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:12.5px;line-height:1.5;margin:2px 4px 2px 0;white-space:nowrap}
.sm-chip.sm-p{background:rgba(245,185,66,.16);color:#f5c96a;border:1px solid rgba(245,185,66,.38);font-weight:600}
.sm-chip.sm-s{background:rgba(91,155,213,.13);color:#8fbde8;border:1px solid rgba(91,155,213,.3)}
.sm-chip.sm-n{background:rgba(248,113,113,.13);color:#f89191;border:1px solid rgba(248,113,113,.32)}
.sm-tbl{width:100%;border-collapse:collapse;font-size:14px}
.sm-tbl th{text-align:left;padding:9px 10px;font-weight:600;color:#9fb0c9;border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;background:#141c2b;z-index:2;font-size:13px}
.sm-tbl td{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}
.sm-tbl tr:hover td{background:rgba(125,211,252,.045)}
.sm-tbl tr.sm-orp td{background:rgba(248,113,113,.05)}
.sm-tbl select,.sm-tbl input{padding:5px 8px;font-size:13.5px;border-radius:7px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045);color:inherit;width:100%;box-sizing:border-box}
.sm-tbl select:focus,.sm-tbl input:focus{outline:none;border-color:rgba(125,211,252,.55);background:rgba(125,211,252,.07)}

/* ===== 口径多选 ===== */
.tg-ck{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:14px;font-size:12.5px;
  background:rgba(91,155,213,.14);color:#9cc4e8;border:1px solid rgba(91,155,213,.3);margin:2px 4px 2px 0;white-space:nowrap}
.tg-ck b{color:#e8f2ff;font-weight:600}
.cate-row{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);margin-bottom:8px;flex-wrap:wrap}
.cate-chk{display:flex;align-items:center;gap:7px;min-width:140px;cursor:pointer;font-size:15px}
.cate-chk input{width:17px;height:17px;cursor:pointer}
.cate-vwrap{display:flex;align-items:center;gap:8px}
.cate-vwrap .f{margin:0;white-space:nowrap}
.cate-v{width:110px;padding:5px 8px;border-radius:7px;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);color:inherit;font-size:14px}
.cate-v:disabled{opacity:.35}
.cate-done{margin-left:auto;white-space:nowrap}
#cateSum{width:110px;padding:5px 8px;border-radius:7px;border:1px solid rgba(125,211,252,.35);
  background:rgba(125,211,252,.08);color:#bfe3ff;font-weight:600;font-size:14px}

/* ===== 已分品类明细（小字紧凑） ===== */
.tg-detail{padding-top:7px !important;padding-bottom:7px !important}
.dt-wrap{display:flex;flex-wrap:wrap;gap:3px 5px;max-width:210px}
.dt-item{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;line-height:1.5;
  padding:1px 5px;border-radius:4px;white-space:nowrap;color:#8b9bb4;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07)}
.dt-item b{font-size:12px;font-weight:600;color:#c9d6e6}
.dt-item.dt-on{color:#9cc4e8;background:rgba(91,155,213,.14);border-color:rgba(91,155,213,.3)}
.dt-item.dt-on b{color:#e3f1ff}

/* ===== 目标进度：搜索 + 品类筛选（WPS 式，就地过滤） ===== */
.tg-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 11px;margin-bottom:10px;
  border-radius:10px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.07)}
.tg-fname{flex:0 0 220px;padding:7px 11px;border-radius:8px;font-size:13.5px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:inherit}
.tg-fname::placeholder{color:#7c8ba1}
.tg-fname:focus{outline:none;border-color:rgba(125,211,252,.55);background:rgba(125,211,252,.07)}
.tg-fcates{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tg-fchip{padding:5px 11px;border-radius:14px;font-size:12.5px;cursor:pointer;white-space:nowrap;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#9fb0c9;
  transition:all .13s ease;font-family:inherit}
.tg-fchip:hover{border-color:rgba(125,211,252,.45);color:#cfe6ff}
.tg-fchip.on{background:rgba(91,155,213,.22);border-color:rgba(125,211,252,.65);color:#dcefff;font-weight:600}
.tg-finfo{font-size:12.5px;color:#8b9bb4;white-space:nowrap}
.tg-finfo.on{color:#9cc4e8}
.tg-finfo b{color:#e3f1ff;font-weight:600}
.tg-fclear{flex:0 0 auto}
.tg-fnote{font-size:12px;color:#8b9bb4;margin:-4px 0 8px 2px}

/* ===== 停分 ===== */
.cate-pause{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;margin-bottom:12px;
  border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:all .15s ease}
.cate-pause.on{background:rgba(240,185,94,.09);border-color:rgba(240,185,94,.45)}
.cp-sw{flex:0 0 auto;padding-top:1px}
.cp-sw input{width:18px;height:18px;cursor:pointer;accent-color:#f0b95e}
.cp-txt{display:flex;flex-direction:column;gap:3px;line-height:1.5}
.cp-txt b{color:#c9d6e6;font-size:14.5px}
.cate-pause.on .cp-txt b{color:#f0b95e}
.cp-txt span{font-size:12px;color:#8b9bb4}
.badge.b-pause{background:rgba(240,185,94,.15);color:#f0b95e;border:1px solid rgba(240,185,94,.35);font-weight:600}

/* ===== 投放结构版本小图标（旧=单元 / 新=OC项目） ===== */
.ac-kind{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:3px;
  font-size:10.5px;font-weight:700;line-height:1.5;vertical-align:1px;cursor:help;
  font-family:inherit;letter-spacing:.5px}
.ac-kind-old{background:rgba(140,140,140,.16);color:#9aa7b8;border:1px solid rgba(140,140,140,.32)}
.ac-kind-new{background:rgba(22,119,255,.16);color:#6aa9ff;border:1px solid rgba(90,150,255,.4)}

/* ===== 账户行三个展开按钮的配色区分 ===== */
/* 旧单元：沿用主色（青绿），保持原有视觉 */
/* 新项目：蓝色系，与旧单元明确区分 */
.btn.ac-oc-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:0}
.btn.ac-oc-btn:hover{filter:brightness(1.08)}
.btn.ac-oc-btn.on-open{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
/* 人群：紫色系低调款 */
.btn.ac-aud-btn{background:rgba(167,139,250,.14);color:#c4b5fd;border:1px solid rgba(167,139,250,.42)}
.btn.ac-aud-btn:hover{background:rgba(167,139,250,.24)}
