:root {
  --bg:#F5F6F8; --panel:#FFFFFF; --panel2:#F8F9FB; --panel3:#F2F3F5; --line2:#F0F1F3; --tx2:#4E5969; --tx3:#86909C; --red:#D54941; --red-w:#FDECEC; --red-soft:#EE9F98; --ok:#1F9254; --ok-w:#E8F5EE; --ok-soft:#A8CDB8; --amber:#A86A06; --amber-w:#FDF3E5; --mute-bar:#C4C9D1; --bar:#C4C9D1; --bar-lt:#EEF0F3; --fs-big:32px; --fs-num:20px; --fs-h:17px; --fs-body:13px; --fs-tbl:13px; --fs-aux:12px; --num:var(--sans); --card:#FFFFFF; --line:#E5E6EB; --line-soft:#F0F1F3; --th:#F8F9FB;
  --ink:#1F2329; --ink2:#4E5969; --ink3:#86909C;
  --brand:#111114; --tab-bg:#EDF0FE; --tab-bd:#C9D2F8; --tab-ink:#1E3FDF;
  --neg:#D54941; --neg-bg:#FDECEC; --warn:#D88A0B; --warn-bg:#FDF3E5; --pos:#1F9254; --pos-bg:#E8F5EE;
  /* 数据色：主数据蓝（单系列、进度）· 强调红（这条发现说的那个对象）· 背景灰（其余对象）。已过 dataviz 校验 */
  --d-main:#2F6BD4; --d-main-wash:rgba(47,107,212,.10); --d-hl:#D54941; --d-ctx:#C4C9D1; --d-track:#EEF0F3; --d-grid:#EEF0F3;
  /* 热力：问题深浅，单一红色系由浅到深 */
  --h1:#FDF1F0; --h2:#FADAD7; --h3:#F5BDB8; --h4:#EE9F98; --h5:#E5817A;
  --sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Microsoft YaHei", Arial, sans-serif;
  --side:220px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:clip; background:var(--bg); color:var(--ink); font:13px/1.55 var(--sans); -webkit-font-smoothing:antialiased; }
button { font:inherit; color:inherit; }
a { color:inherit; }
.num { font-family:var(--num); font-variant-numeric:tabular-nums; }
.neg { color:var(--red); } .pos { color:inherit; } .v4 .pos { color:var(--ok); }
.amber { color:var(--amber); }
.muted { color:var(--tx3); }

/* ---------- 外框 ---------- */
.nav { position:sticky; top:0; z-index:20; background:var(--ink); color:#c9cfcb; }
.nav-in { max-width:1320px; margin:0 auto; padding:0 32px; height:50px; display:flex; align-items:center; gap:28px; }
.brand { display:flex; align-items:center; gap:8px; color:#fff; font-weight:600; letter-spacing:.06em; }
.brand i { width:24px; height:24px; border-radius:6px; background:#fff; color:var(--ink); display:grid; place-items:center; font-style:normal; font-size:12px; letter-spacing:0; }
.nav-links { display:flex; gap:4px; }
.nav-links a, .nav-links span { padding:6px 14px; border-radius:6px; font-size:14px; text-decoration:none; }
.nav-links span { cursor:default; color:#7f8782; }
.nav-links a:hover { color:#fff; }
.nav-links a.on { background:#2b302e; color:#fff; font-weight:600; }
.nav .sp { flex:1; }
.who { font-size:12.5px; display:flex; align-items:center; gap:8px; }
.who b { color:#fff; font-weight:500; }
.seg.dark { background:#2b302e; }
.seg.dark button { color:#c9cfcb; }
.seg.dark button.on { background:#f3f4f2; color:var(--ink); }
/* 红牌、黄牌：小号文字标记，不用色块，免得和数据红抢视线 */
.lv { display:inline-block; font-size:var(--fs-aux); font-weight:600; line-height:1.4; }
.lv::after { content:"牌"; }
.lv.red { color:var(--red); }
.lv.yellow { color:var(--amber); }

.scopebar { background:var(--panel); border-bottom:1px solid var(--line); }
.scopebar-in { max-width:1320px; margin:0 auto; padding:12px 32px 11px; display:flex; align-items:center; gap:16px; }
.crumbs { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.crumb { border:0; background:transparent; padding:4px 8px; border-radius:6px; cursor:pointer; font-size:13px; color:var(--tx2); }
.crumb:hover { background:var(--panel3); color:var(--ink); }
.crumb.on { color:var(--ink); font-weight:600; cursor:default; background:transparent; }
.crumb small { font-weight:400; color:var(--tx3); margin-left:4px; font-size:12px; }
.crumbs .sep { color:#c3c9c4; }
.scopebar .sp { flex:1; }
.lens { font-size:12px; color:var(--tx2); background:var(--panel2); border:1px solid var(--line); border-radius:999px; padding:3px 10px; }
.day { font-size:12.5px; color:var(--tx2); }

.demo { max-width:1320px; margin:0 auto; padding:10px 32px 0; font-size:12px; color:var(--amber); }
.demo span { background:var(--amber-w); padding:3px 9px; border-radius:6px; }

.page { max-width:1320px; margin:0 auto; padding:14px 32px 56px; }
.sec { margin-top:22px; }
.sec-h { display:flex; align-items:baseline; gap:10px; margin:0 0 9px; }
.sec-h h2 { margin:0; font-size:16px; font-weight:600; }
.sec-h .cnt { font-size:13px; color:var(--tx2); }
.sec-h .sp { flex:1; }
.sec-h .aside { font-size:var(--fs-aux); color:var(--tx3); }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:12px; }
.tscroll { overflow-x:auto; }

/* ---------- 目标 ---------- */
.goals { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.goal { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 20px 14px; display:grid; grid-template-columns:200px minmax(0,1fr); column-gap:28px; align-items:center; }
.goal .gl { font-size:13px; color:var(--tx2); margin-bottom:4px; }
.goal .gl small { color:var(--tx3); display:block; }
.goal .gv { font-size:var(--fs-big); font-weight:600; line-height:1.1; letter-spacing:-.01em; }
.goal .gv small { font-size:15px; font-weight:500; }
.goal .gf { font-size:var(--fs-aux); color:var(--tx2); margin-top:4px; }
.goal .gp { font-size:13px; margin-top:6px; font-weight:600; }
.goal .gp span { font-weight:400; color:var(--tx3); }
.goal .strip { min-width:0; }
.goal .strip-cap { font-size:var(--fs-aux); color:var(--tx3); margin-top:2px; }
.goal .strip-cap b { color:var(--red); font-weight:600; }
.goal svg .hit { cursor:pointer; }
.goal svg text { font-family:var(--num); } .goal svg .lbl { font-family:var(--sans); }

/* ---------- 总判断 ---------- */
.verdict { margin-top:24px; padding:0 2px; }
.verdict h1 { margin:0; font-size:23px; line-height:1.45; font-weight:600; letter-spacing:.005em; max-width:1120px; text-wrap:balance; }
.verdict p { margin:6px 0 0; font-size:13px; color:var(--tx2); }

.empty { padding:14px 18px; font-size:13px; color:var(--tx2); }

/* ---------- 今天的异常 ---------- */
.case { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:28px; padding:22px 24px; border-bottom:1px solid var(--line2); align-items:start; }
.case:last-of-type { border-bottom:0; }
.case .hero { display:flex; align-items:baseline; flex-wrap:wrap; column-gap:12px; row-gap:2px; margin-bottom:8px; }
.case .hero .scope-tag { font-size:var(--fs-aux); color:var(--tx2); border:1px solid var(--line); border-radius:999px; padding:0 8px; line-height:20px; align-self:center; }
.case .hero .big { font-size:var(--fs-big); font-weight:600; line-height:1.1; letter-spacing:-.015em; }
.case .hero .big small { font-size:16px; font-weight:500; margin-left:2px; }
.case .hero .sowhat { font-size:13px; color:var(--tx2); }
.case .hero .sowhat b { color:var(--ink); font-weight:600; }
.case h3 { text-wrap:balance; margin:0 0 6px; font-size:var(--fs-h); line-height:1.45; font-weight:600; }
.case .facts { margin:0 0 14px; font-size:13px; color:var(--tx2); line-height:1.65; }
.causes-h { font-size:var(--fs-aux); color:var(--tx3); margin-bottom:6px; letter-spacing:.02em; }
.cause { display:grid; grid-template-columns:minmax(0,1fr); gap:3px; padding:8px 0 9px; border-top:1px dashed var(--line); }
.cause:first-of-type { border-top:0; padding-top:2px; }
.cause .ct { font-size:var(--fs-body); line-height:1.6; }
.cause .ct b { font-weight:600; }
.cause .meta { display:flex; flex-wrap:wrap; gap:6px; font-size:var(--fs-aux); }
.chip { border-radius:4px; padding:0 6px; line-height:19px; border:1px solid var(--line); color:var(--tx2); background:var(--panel); }
.chip.layer::before { content:"问题归属 · "; color:var(--tx3); }
.chip.follow::before { content:"跟进 · "; color:var(--tx3); }
.chip.follow.gap { color:var(--amber); border-color:#e8d8b8; }
.case .more { margin-top:10px; font-size:var(--fs-aux); }
.case .more a, .linkish { color:var(--ink); text-decoration:none; border-bottom:1px solid #c3c9c4; cursor:pointer; }
.case .more a.disabled { color:var(--tx3); border-bottom-style:dotted; cursor:not-allowed; }
.proof { min-width:0; }
.proof { padding-top:4px; }
.proof .pt { font-size:13px; color:var(--tx2); margin-bottom:10px; display:flex; gap:8px; align-items:baseline; }
.proof .pt b { color:var(--ink); font-weight:600; }
.proof .pt .sp { flex:1; }
.proof .pc { font-size:var(--fs-aux); color:var(--tx3); margin-top:6px; line-height:1.5; }
.proof svg text { font-family:var(--num); }
.proof svg .lbl { font-family:var(--sans); }
.proof .hit { cursor:pointer; }
.seen { padding:12px 24px 14px; font-size:13px; color:var(--tx2); background:var(--panel2); border-top:1px solid var(--line2); border-radius:0 0 12px 12px; }
.seen b { color:var(--ink); font-weight:600; margin-right:6px; }
.seen .row { padding:2px 0; }
.auto-note { padding:12px 24px 0; font-size:var(--fs-aux); color:var(--amber); }

/* ---------- 下级 ---------- */
table.kids { width:100%; border-collapse:collapse; }
.kids th { text-align:left; font-size:var(--fs-aux); font-weight:500; color:var(--tx3); padding:9px 14px 7px; border-bottom:1px solid var(--line); white-space:nowrap; }
.kids th.r, .kids td.r { text-align:right; }
.kids td { padding:9px 14px; border-bottom:1px solid var(--line2); font-size:var(--fs-tbl); vertical-align:middle; }
.kids tbody tr { cursor:pointer; }
.kids tbody tr:hover td { background:var(--panel2); }
.kids tbody tr:last-child td { border-bottom:0; }
.kids td.nm b { font-weight:600; }
.kids td.nm small { color:var(--tx3); margin-left:6px; font-size:12px; }
.kids .barcell { width:200px; }
.kids .go { color:var(--tx3); width:24px; text-align:right; }
.kids .flag { font-size:12px; white-space:nowrap; }
.kids .flag .lv { margin-right:6px; }
.kids-more { padding:9px 14px; border-top:1px solid var(--line2); font-size:13px; }
.kids-more button { border:0; background:transparent; cursor:pointer; padding:0; color:var(--ink); border-bottom:1px solid #c3c9c4; }
.div { position:relative; height:6px; background:var(--panel3); border-radius:3px; }
.div::after { content:""; position:absolute; left:50%; top:-2px; bottom:-2px; width:1px; background:#b9c0bb; }
.div i { position:absolute; top:0; bottom:0; border-radius:3px; }
.pace { position:relative; height:8px; background:var(--panel3); border-radius:4px; }
.pace i { position:absolute; left:0; top:0; bottom:0; border-radius:4px; background:var(--bar); }
.pace i.behind { background:var(--bar); }
.pace u { position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--ink); }

/* ---------- 经营数据（v4） ---------- */
.v4 { padding:14px 16px 12px; }
.v4 .head { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.v4 .head h2 { margin:0; font-size:16px; font-weight:600; }
.v4 .head .date { font-size:12px; color:var(--tx2); }
.v4 .head .sp { flex:1; }
.seg { display:inline-flex; background:var(--panel3); border-radius:8px; padding:2px; gap:2px; }
.seg button { border:0; background:transparent; font-size:12px; color:var(--tx2); padding:2px 9px; border-radius:6px; cursor:pointer; }
.seg button.on { background:var(--panel); color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.tabs { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; margin-bottom:10px; }
.tab { min-width:0; border:1px solid var(--line); border-radius:10px; padding:8px 10px 7px; cursor:pointer; background:var(--panel2); text-align:left; }
.tab.on { background:var(--panel); border-color:var(--ink); box-shadow:inset 0 2px 0 var(--ink); }
.tab .t1 { display:flex; align-items:center; gap:6px; }
.tab .pn { font-weight:600; font-size:12.5px; }
.tab .flag { margin-left:auto; font-size:var(--fs-aux); }
.flag.low { color:var(--red); } .flag.high { color:var(--ok); }
.tab .v { font-size:var(--fs-num); font-weight:600; line-height:1.25; margin:1px 0 3px; }
.tab .v small { font-size:var(--fs-aux); font-weight:400; color:var(--tx3); }
.cmp3 { display:grid; grid-template-columns:repeat(3, 1fr); gap:4px; }
.cmp3 div { white-space:nowrap; font-size:11px; color:var(--tx3); line-height:1.3; }
.cmp3 b { display:block; font-size:13px; font-weight:500; color:var(--ink); }
.read { font-size:var(--fs-body); line-height:1.7; padding:8px 12px; background:var(--panel2); border-radius:10px; margin-bottom:10px; }
.read .m { border-bottom:1px dashed currentColor; cursor:pointer; }
.read small { color:var(--tx3); font-size:var(--fs-aux); margin-left:6px; }
.v4 .body { display:grid; grid-template-columns:minmax(0, 1fr) 290px; gap:14px; }
.ctl { display:flex; align-items:baseline; gap:10px; margin:0 0 2px; flex-wrap:wrap; }
.ctl b { font-size:13px; }
.ctl .lg { font-size:var(--fs-aux); color:var(--tx3); display:flex; gap:12px; }
.ctl .lg i { display:inline-block; width:10px; height:10px; border-radius:2px; vertical-align:-1px; margin-right:4px; }
.ctl .lg i.d { width:16px; height:0; border-top:2px dashed #5b6460; border-radius:0; vertical-align:3px; }
.v4 svg text { font-family:var(--num); }
.v4 .side { border-left:1px solid var(--line); padding-left:12px; }
.v4 .side h4 { margin:0; font-size:13px; font-weight:600; }
.v4 .side .ps { font-size:var(--fs-aux); color:var(--tx3); margin-bottom:6px; }
.wf .r { display:grid; grid-template-columns:66px 62px 1fr 54px; align-items:center; column-gap:6px; padding:4px 6px; border-radius:6px; }
.wf .r.pick { cursor:pointer; }
.wf .r.pick:hover { background:var(--panel2); }
.wf .r.on { background:#f1f3ef; box-shadow:inset 3px 0 0 var(--ink); }
.wf .k { font-size:12px; color:var(--tx2); line-height:1.25; }
.wf .k small { display:block; font-size:11px; color:var(--tx3); }
.wf .r.lead .k { color:var(--ink); font-weight:600; }
.wf .p, .wf .a { font-size:12px; }
.wf .a { text-align:right; }
.wf .tot { display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--tx2); padding:5px 6px; border-radius:6px; }
.wf .tot.top { border-bottom:1px solid var(--line2); }
.wf .tot.end { border-top:1px solid var(--line2); }
.wf .sub { border-top:1px dashed var(--line); }
.wf .byp { display:flex; justify-content:space-between; font-size:12px; color:var(--tx2); padding:3px 6px; }
.wf .note { margin:10px 6px 0; line-height:1.6; font-size:var(--fs-aux); color:var(--tx3); }
.kidstrip { display:grid; gap:6px; align-items:stretch; margin-top:10px; padding-top:9px; border-top:1px solid var(--line); }
.kidstrip .ah { font-size:var(--fs-aux); color:var(--tx3); line-height:1.4; }
.kidstrip .ah b { display:block; font-size:12px; color:var(--ink); font-weight:600; }
.kc { border-radius:8px; padding:5px 7px; background:var(--panel2); cursor:pointer; border:0; text-align:left; min-width:0; }
.kc:hover { background:var(--panel3); }
.kc .n { font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kc .d { font-size:12px; }
.kc .s { font-size:11px; color:var(--tx3); }
.v4 .foot { margin-top:8px; font-size:var(--fs-aux); color:var(--tx3); }
.v4 .body.plain { grid-template-columns:minmax(0, 1fr); }
.v4 .body.plain .side, .v4 .kidstrip.off { display:none; }
.dtl { border:1px solid var(--line); background:var(--panel); border-radius:8px; font-size:12px; padding:3px 10px; cursor:pointer; color:var(--tx2); }
.dtl[aria-pressed="true"] { border-color:var(--ink); color:var(--ink); font-weight:600; }

/* ---------- 片区子页签与区经理队列 ---------- */
.subtabs { display:flex; gap:4px; margin:2px 0 14px; }
.subtabs a { padding:6px 14px; border-radius:8px; font-size:13px; color:var(--tx2); text-decoration:none; border:1px solid transparent; }
.subtabs a:hover { background:var(--panel3); }
.subtabs a.on { background:var(--panel); border-color:var(--line); color:var(--ink); font-weight:600; }
.qwrap { display:grid; grid-template-columns:330px minmax(0, 1fr); gap:18px; align-items:start; }
.qlist { position:sticky; top:62px; max-height:calc(100vh - 74px); overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:12px; }
.qg { border-bottom:1px solid var(--line); }
.qg:last-child { border-bottom:0; }
.qgh { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:center; background:var(--panel2); padding:8px 14px; font-size:var(--fs-aux); color:var(--tx2); border-bottom:1px solid var(--line2); }
.qgh b { color:var(--ink); }
details.qg > summary { list-style:none; cursor:pointer; }
details.qg > summary::-webkit-details-marker { display:none; }
details.qg > summary span::after { content:" ▾"; color:var(--tx3); }
.qnew .qgh { background:var(--amber-w); color:var(--amber); }
.qnote { padding:6px 14px 2px; font-size:var(--fs-aux); color:var(--tx3); }
.qi { display:block; width:100%; text-align:left; border:0; border-bottom:1px solid var(--line2); background:transparent; padding:9px 14px 10px; cursor:pointer; }
.qi:last-child { border-bottom:0; }
.qi:hover { background:var(--panel2); }
.qi.on { background:#eef1ec; box-shadow:inset 3px 0 0 var(--ink); }
.qi .r1 { display:flex; align-items:center; gap:6px; min-width:0; }
.qi .nm { font-weight:600; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qi .ct { color:var(--tx3); font-size:var(--fs-aux); white-space:nowrap; }
.qi .dl { margin-left:auto; font-size:12px; }
.qi .r2 { font-size:13px; margin-top:3px; line-height:1.5; }
.qi .r3 { font-size:var(--fs-aux); color:var(--tx3); margin-top:1px; }
.qmore { display:block; width:100%; border:0; background:transparent; padding:8px 14px; font-size:12.5px; text-align:left; cursor:pointer; color:var(--ink); text-decoration:underline; text-decoration-color:#c3c9c4; }
.qmain { min-width:0; }
.qhead { display:flex; align-items:baseline; gap:10px; padding:2px 2px 10px; border-bottom:1px solid var(--line); }
.qhead b { font-size:17px; }
.qhead span { color:var(--tx2); font-size:12.5px; }
.qhead a { margin-left:auto; font-size:12.5px; }
.qmain .verdict { margin-top:16px; }
.qmain .verdict h1 { font-size:20px; }
.qmain .case { grid-template-columns:minmax(0, 1fr); gap:16px; }
.qmain .case .proof { max-width:620px; }
.qempty { padding:12px 14px; font-size:var(--fs-aux); color:var(--tx3); line-height:1.6; }
.escbox { margin-top:14px; padding:14px 18px; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--ink); border-radius:10px; }
.escbox .ek { font-size:var(--fs-aux); color:var(--tx3); }
.escbox .ev { font-size:var(--fs-body); font-weight:600; margin:4px 0 6px; line-height:1.55; }
.escbox .em { font-size:var(--fs-aux); color:var(--tx2); }

/* ---------- 设计说明 ---------- */
.notes { position:relative; flex-shrink:0; z-index:30; }
.notes > button { height:34px; border:1px solid var(--line); background:#fff; border-radius:6px; padding:0 12px; font-size:12.5px; cursor:pointer; box-shadow:none; }
.notes .box { position:absolute; right:0; top:calc(100% + 10px); width:440px; max-height:70vh; overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 18px; box-shadow:0 12px 32px rgba(22,26,25,.14); font-size:12.5px; line-height:1.65; }
.notes .box h3 { margin:0 0 6px; font-size:14px; }
.notes .box h4 { margin:12px 0 4px; font-size:12.5px; }
.notes .box p, .notes .box li { color:var(--tx2); margin:0 0 4px; }
.notes .box ul { margin:0; padding-left:18px; }

/* ---------- R3 本人首页与今日待办 ---------- */
.home { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:24px; align-items:start; }
.home > .goals, .home > .sec { grid-column:1 / -1; }
.home > *, .home-main, .home .case > *, .goals > *, .v4 .body > * { min-width:0; }
.home > .sec, .home-main > .verdict { margin-top:0; }
.home-main .sec-h { flex-wrap:wrap; }
.home-main .sec-h .aside { flex-basis:100%; }
.chip.follow { cursor:pointer; font-size:var(--fs-aux); }
.chip.follow:hover { text-decoration:underline; }
.rail { position:sticky; top:66px; max-height:calc(100vh - 82px); overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:12px; }
.rail-head { display:flex; align-items:center; justify-content:space-between; padding:14px; gap:10px; }
.rail-head h2 { font-size:15px; font-weight:600; margin:0; }
.rail-head > span { font-size:12px; color:var(--tx3); }
.rail-item { position:relative; border-bottom:1px solid var(--line2); }
.rail-item:last-child { border-bottom:0; }
.rail-item .qi { border:0; }
.rail-item > a.qi { display:block; color:inherit; text-decoration:none; }
.rail-item > a.qi .rail-go { display:block; margin:9px 0 0; }
.rail-item .qi .r3 { padding-right:96px; }
.rail-item:hover { background:var(--panel2); }
.rail-go { position:absolute; right:14px; bottom:10px; font-size:12px; }
.rail-foot { position:sticky; bottom:0; padding:12px 14px; border-top:1px solid var(--line); background:var(--panel); font-size:13px; }
.rail-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.rail-foot a { white-space:nowrap; }

/* ---------- 共用门店抬头 ---------- */
.store-head { display:flex; align-items:center; gap:16px; margin-bottom:14px; padding:2px 2px 12px; }
.store-heading { min-width:0; flex:1; }
.store-head .store-heading > b { font-size:17px; font-weight:600; }
.store-meta { font-size:13px; color:var(--tx3); margin-top:3px; }
.store-status { font-size:12px; margin-top:4px; }
.record-button { position:relative; border:1px solid var(--line); background:var(--panel); border-radius:7px; padding:6px 10px; font-size:13px; cursor:pointer; flex-shrink:0; }
.record-button:hover { background:var(--panel3); }
.record-button.has-alert::after { content:""; position:absolute; top:-3px; right:-3px; width:6px; height:6px; border-radius:50%; background:var(--red); }
.qmain .goals { grid-template-columns:repeat(2,minmax(0,1fr)); }
.qmain .goal { grid-template-columns:minmax(0,1fr); row-gap:8px; }
.escbox { margin-bottom:14px; }

/* ---------- 判断依据 / 跟进记录抽屉 ---------- */
.drawer { position:fixed; top:50px; right:0; bottom:0; width:480px; max-width:100vw; z-index:25; background:var(--panel); border-left:1px solid var(--line); box-shadow:-12px 0 32px rgba(22,26,25,.10); transform:translateX(100%); transition:transform .18s ease-out, visibility 0s linear .18s; display:flex; flex-direction:column; visibility:hidden; }
.drawer.open { transform:translateX(0); visibility:visible; transition:transform .18s ease-out; }
.drawer-head { padding:16px 20px 0; border-bottom:1px solid var(--line); flex-shrink:0; }
.drawer-title { display:flex; align-items:flex-start; gap:12px; }
.drawer-title > div { flex:1; min-width:0; }
.drawer-title b { font-size:16px; font-weight:600; }
.drawer-title small { display:block; font-size:12px; color:var(--tx3); margin-top:2px; }
.drawer-close { width:28px; height:28px; padding:0; border:0; border-radius:5px; background:transparent; font-size:24px; line-height:1; cursor:pointer; }
.drawer-close:hover { background:var(--panel3); }
.drawer-tabs { display:flex; gap:24px; margin-top:12px; }
.drawer-tabs button { border:0; border-bottom:2px solid transparent; padding:9px 0 10px; color:var(--tx2); background:transparent; font-size:14px; cursor:pointer; }
.drawer-tabs button.on { color:var(--ink); font-weight:600; border-bottom-color:var(--ink); }
.drawer-tabs button:disabled { color:var(--tx3); cursor:default; }
.drawer-body { overflow:auto; padding:16px 20px 96px; min-height:0; flex:1; overscroll-behavior:contain; }
.drawer-actions { position:absolute; left:0; right:0; bottom:0; padding:12px 20px; border-top:1px solid var(--line); background:var(--panel); display:flex; gap:8px; }
.drawer-actions button { font-size:13px; height:32px; padding:0 12px; border-radius:6px; border:1px solid var(--line); background:var(--panel); cursor:not-allowed; color:var(--tx2); }
.drawer-actions .primary { background:var(--ink); color:#fff; border-color:var(--ink); }
.drawer-actions button:disabled { opacity:.45; }
.case-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.case-tabs button { text-align:left; font-size:12px; padding:5px 8px; border:1px solid var(--line); border-radius:6px; background:var(--panel2); color:var(--tx2); cursor:pointer; max-width:100%; }
.case-tabs button.on { border-color:var(--ink); color:var(--ink); background:var(--panel); font-weight:600; }
.evidence-summary { font-size:13px; color:var(--tx2); }
.evidence-summary .scope-tag { font-size:12px; margin-right:10px; }
.evidence-summary > b { font-size:20px; font-weight:600; }
.evidence-summary small { font-size:13px; margin-left:3px; }
.evidence-summary > div { margin-top:4px; }
.evidence-summary h3 { font-size:15px; color:var(--ink); font-weight:600; margin:8px 0 0; }
.drawer-section { margin-top:22px; }
.drawer-section h3 { font-size:14px; font-weight:600; margin:0 0 9px; }
.drawer-section ol, .drawer-section ul { padding-left:20px; margin:0; font-size:13px; color:var(--tx2); }
.drawer-section li { margin-bottom:9px; line-height:1.65; }
.evidence-table { width:100%; border-collapse:collapse; font-size:13px; }
.evidence-table th { font-size:12px; color:var(--tx3); font-weight:400; text-align:left; padding:8px 7px; border-bottom:1px solid var(--line); }
.evidence-table td { padding:8px 7px; border-bottom:1px solid var(--line2); vertical-align:top; }
.evidence-table .r { text-align:right; }
.evidence-table .num { white-space:nowrap; }
.evidence-table .selected-day { font-weight:600; background:var(--panel2); }
.record-state { background:var(--panel2); border-radius:10px; padding:12px 14px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; margin:0 0 16px; }
.record-state dt { font-size:12px; color:var(--tx3); margin-bottom:3px; }
.record-state dd { font-size:14px; margin:0; }
.record-filter { margin-bottom:20px; }
.record-filter button { padding:5px 9px; }
.record-timeline { list-style:none; margin:0 0 0 4px; padding:0 0 0 19px; border-left:2px solid var(--line); }
.record-timeline li { position:relative; padding:0 0 24px; }
.record-timeline li:last-child { padding-bottom:0; }
.record-timeline li::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--ink); position:absolute; left:-24px; top:6px; border:1px solid var(--ink); }
.record-timeline li.system::before { background:var(--tx3); border-color:var(--tx3); }
.record-timeline li.escalation::before { background:var(--panel); }
.timeline-meta { display:flex; gap:10px; font-size:12px; color:var(--tx3); }
.record-timeline h3 { font-size:14px; font-weight:600; margin:4px 0; }
.record-timeline p { font-size:13px; color:var(--tx2); margin:0 0 5px; }
.record-timeline small { font-size:12px; color:var(--tx3); }
.notes { z-index:24; }

/* ---------- R4 公司首页与总经理事项 ---------- */
.demo-tag { display:inline-block; font-size:12px; font-weight:400; color:var(--tx3); border:1px solid var(--line); border-radius:4px; padding:0 4px; vertical-align:middle; white-space:nowrap; }
.gm-goals { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gm-goals .goal { display:flex; flex-wrap:wrap; align-content:flex-start; align-items:center; gap:12px 28px; }
.gm-goals .goal > div:first-child { flex:0 1 200px; max-width:100%; }
.gm-goals .strip { flex:1 1 240px; max-width:100%; }
.gm-goals svg { max-width:100%; }
.gm-cost-note { font-size:12px; color:var(--tx2); line-height:1.8; }
.gm-focus .nm { white-space:normal; overflow:visible; }
.gm-focus .r2 { color:var(--tx3); font-size:12px; }
.gm-lines > .sec-h { flex-wrap:wrap; }
.gm-lines > .panel > .kids { min-width:1060px; table-layout:fixed; }
.gm-lines > .panel > .kids th:nth-child(1) { width:7%; }
.gm-lines > .panel > .kids th:nth-child(2) { width:10%; }
.gm-lines > .panel > .kids th:nth-child(3) { width:12%; }
.gm-lines > .panel > .kids th:nth-child(4) { width:30%; }
.gm-lines > .panel > .kids th:nth-child(5) { width:14%; }
.gm-lines > .panel > .kids th:nth-child(6) { width:11%; }
.gm-lines > .panel > .kids th:nth-child(7) { width:16%; }
.gm-lines .kids tbody tr { cursor:default; }
.gm-lines .kids tr[data-href], #gm-delivery-row { cursor:pointer; }
.gm-lines .kids td { vertical-align:top; }
.gm-expand { display:block; padding:0; margin-top:6px; border:0; border-bottom:1px solid #c3c9c4; background:transparent; text-align:left; }
#gm-delivery-groups[hidden] { display:none; }
.gm-groups { background:var(--panel2); }
.gm-footnote { font-size:12px; color:var(--tx3); margin:8px 2px 0; }
.gm-business { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:16px; }
.gm-business > section { min-width:0; }
.gm-business h3 { font-size:14px; font-weight:600; margin:0 0 10px; }
.gm-business h3 small { font-size:12px; color:var(--tx3); font-weight:400; }
.gm-business p { font-size:12px; }
.gm-table-note { font-size:12px; color:var(--tx3); margin-bottom:4px; }
.gm-pnl td, .gm-pnl th { padding:7px 5px; }
.gm-pnl td:first-child { min-width:62px; }
.gm-detail { min-width:0; }
.gm-detail h1 { font-size:17px; font-weight:600; line-height:1.5; margin:0 0 6px; }
.gm-detail-meta { font-size:12px; color:var(--tx3); }
.gm-detail .drawer-section h3 { font-size:13px; color:var(--tx3); font-weight:400; }
.gm-queue-detail { padding:22px 24px 0; }
.gm-steps > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:10px 0; border-bottom:1px solid var(--line2); }
.gm-steps p { font-size:13px; color:var(--tx2); margin:0; line-height:1.65; }
.gm-actions { display:flex; gap:8px; padding:16px 0; margin-top:22px; border-top:1px solid var(--line); }
.gm-actions button { height:32px; padding:0 12px; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--tx2); opacity:.45; cursor:not-allowed; }
.drawer .gm-detail > header { display:none; }
.drawer .gm-detail > .drawer-section:first-of-type { margin-top:0; }

/* ---------- R5 营运全区：今日发现 / 追问链 / 行动 ---------- */
.od-home > *, .cmd > *, .od-card-top > *, .od-query header > * { min-width:0; }
.od-goals { grid-template-columns:repeat(3,minmax(0,1fr)); }
.od-goals .goal { grid-template-columns:minmax(0,1fr); gap:10px; align-content:start; }
.od-goals svg { max-width:100%; height:auto; }
.od-team-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:8px 0 12px; }
.od-team-numbers b { display:block; font-size:20px; font-weight:600; }
.od-team-numbers span { font-size:12px; color:var(--tx3); }
.od-team > a { justify-self:start; font-size:13px; }
.od-summary { margin:22px 0 20px; }
.od-summary h1 { font-size:20px; font-weight:600; line-height:1.5; margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.od-summary p { font-size:13px; color:var(--tx3); margin:6px 0 0; }
.cmd { display:grid; grid-template-columns:300px minmax(0,1fr) 300px; gap:20px; align-items:start; }
.cmd > .qlist { top:66px; max-height:calc(100vh - 82px); }
.od-list .qi.on { background:var(--panel2); box-shadow:inset 3px 0 0 var(--ink); }
.od-kind { display:inline-block; font-size:12px; line-height:1.5; padding:0 5px; border:1px solid var(--line); color:var(--tx3); border-radius:4px; white-space:nowrap; }
.od-list-finding .r1 { justify-content:space-between; }
.od-list-finding .r1 b { font-size:14px; font-weight:600; }
.od-list-finding .r2 { font-size:14px; font-weight:600; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin-top:6px; }
.od-list-finding .r3 { margin-top:5px; }
.od-toolbar { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.od-tabs { display:flex; gap:20px; flex-shrink:0; }
.od-tabs button { background:transparent; border:0; border-bottom:2px solid transparent; padding:7px 0; font-size:14px; color:var(--tx2); cursor:pointer; }
.od-tabs button.on { border-color:var(--ink); color:var(--ink); font-weight:600; }
#od-question { width:320px; max-width:100%; margin-left:auto; }
#od-question input { width:100%; min-width:0; padding:9px 10px; border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--ink); font:13px var(--sans); }
#od-question input:focus { outline:1px solid var(--ink); }
#od-suggestions { color:var(--tx3); font-size:12px; padding:8px 0 0; }
#od-suggestions button { border:0; border-bottom:1px solid var(--line); background:transparent; cursor:pointer; padding:3px 0; margin:3px 8px 0 0; text-align:left; }
.od-demo-note { font-size:12px; color:var(--tx3); margin:8px 0 12px; }
#od-message { font-size:12px; color:var(--tx3); margin:0 0 10px; }
#od-message:empty { display:none; }
.od-finding { padding:20px 24px; }
.od-card-top { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:var(--tx3); }
.od-card-actions { display:flex; gap:8px; margin-left:auto; align-items:center; flex-shrink:0; }
.od-card-actions button { border:0; border-radius:4px; background:transparent; color:var(--tx3); font-size:12px; padding:3px; cursor:pointer; }
.od-card-actions button:hover { background:var(--panel3); color:var(--ink); }
.od-card-actions button:disabled { opacity:.5; cursor:not-allowed; }
.od-card-actions .od-remove, .od-card-actions .od-unpin { font-size:20px; line-height:1; }
.od-finding h3 { font-size:18px; font-weight:600; margin:12px 0 10px; line-height:1.5; }
.od-big { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; margin-bottom:16px; }
.od-big b { font-size:28px; font-weight:600; line-height:1.2; }
.od-big small { font-size:15px; font-weight:400; margin-left:3px; }
.od-big > span { font-size:13px; color:var(--tx3); }
.od-chart { min-width:0; overflow-x:auto; }
.od-chart > svg { display:block; }
.od-facts { list-style:none; padding:0; margin:16px 0 0; font-size:14px; color:var(--tx2); }
.od-facts li { padding-left:13px; position:relative; margin-top:7px; }
.od-facts li::before { content:""; position:absolute; left:0; top:.65em; width:4px; height:4px; background:var(--tx3); border-radius:50%; }
.od-view { display:flex; align-items:baseline; gap:8px; margin-top:14px; font-size:13px; color:var(--tx3); }
.od-view p { margin:0; }
.od-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }
.od-chips button { border:1px solid var(--line); background:var(--panel); font-size:13px; padding:4px 12px; border-radius:999px; cursor:pointer; text-align:left; }
.od-chips button:hover { border-color:var(--ink); }
.od-chips button.done { background:var(--panel3); color:var(--tx2); }
.od-query { margin-top:12px; padding:16px 20px; border:1px solid var(--line2); border-left:2px solid var(--line); border-radius:0 8px 8px 0; background:var(--panel); scroll-margin-top:66px; }
.od-query header { display:flex; gap:8px; align-items:flex-start; margin-bottom:12px; flex-wrap:wrap; }
.od-query h3 { font-size:14px; font-weight:600; margin:0; flex:1 1 160px; }
.od-query h3 span { font-weight:400; color:var(--tx3); }
.od-unit { font-size:12px; color:var(--tx3); text-align:right; margin-bottom:5px; }
.od-query-fact { font-size:13px; color:var(--tx2); margin:12px 0 0; }
.od-store-strip { margin-top:10px; }
.od-store-strip > a { font-size:12px; }
.od-refresh { font-size:12px; color:var(--tx3); margin:0 0 10px; }
.od-pin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
.od-pin-grid > div { min-width:0; }
.od-pin-grid .od-finding { padding:16px; }
.od-pin-grid .od-query { margin-top:0; padding:16px; }
.od-pin-grid .od-view { flex-wrap:wrap; }
.od-action { padding:18px; }
.od-action h2 { font-size:15px; font-weight:600; margin:0 0 18px; }
.od-action dl { margin:0; }
.od-action dl > div { margin-bottom:16px; }
.od-action dt { font-size:12px; color:var(--tx3); margin-bottom:4px; }
.od-action dd { margin:0; font-size:14px; }
.od-action-buttons { display:flex; gap:8px; flex-wrap:wrap; margin:18px 0; }
.od-action-buttons button { padding:5px 9px; font-size:13px; border:1px solid var(--line); background:var(--panel); border-radius:6px; cursor:pointer; }
.od-action-buttons button:disabled { opacity:.45; cursor:not-allowed; }
.od-store-links { border-top:1px solid var(--line); margin-top:18px; padding-top:5px; }
.od-store-links > div { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; font-size:12px; }
.od-esc-links { display:flex; gap:18px; margin:14px 0; }
#od-ranking { scroll-margin-top:66px; }
@media (max-width:1180px) {
  .cmd { grid-template-columns:minmax(0,1fr); }
  .cmd > .qlist { position:static; max-height:none; }
  .od-list-items { display:flex; overflow-x:auto; }
  .od-list-items > .qi { flex:0 0 280px; border-bottom:0; border-right:1px solid var(--line2); }
  .od-list .qgh { position:static; }
}
@media (max-width:760px) {
  .od-goals, .od-pin-grid { grid-template-columns:minmax(0,1fr); }
  .od-list-items { display:block; }
  .od-list-items > .qi { border-right:0; border-bottom:1px solid var(--line2); }
  .od-finding { padding:16px; }
  .od-query { padding:14px 16px; }
  #od-question { width:100%; }
}

@media (max-width: 1180px) {
  .home { grid-template-columns:minmax(0,1fr); }
  .rail { position:static; max-height:none; }
  .kids .barcell { width:150px; }
  .gm-goals, .gm-business { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .nav-in, .scopebar-in, .page, .demo { padding-left:16px; padding-right:16px; }
  .nav-links { display:none; }
  .scopebar-in { flex-wrap:wrap; row-gap:2px; padding-top:8px; padding-bottom:8px; }
  .lens { display:none; }
  .who > span { display:none; }
  .qwrap { grid-template-columns:1fr; }
  .qlist { position:static; max-height:46vh; }
  .day { white-space:nowrap; }
  .goals { grid-template-columns:1fr; }
  .goal { grid-template-columns:1fr; row-gap:10px; }
  .verdict h1 { font-size:19px; }
  .case { grid-template-columns:1fr; gap:14px; padding:16px; }
  .kids .hide-s { display:none; }
  .tabs { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .tab .t1 { flex-wrap:wrap; }
  .tab .flag { margin-left:0; }
  .kids .barcell { display:none; }
  .kids .flag { white-space:normal; }
  .kids td, .kids th { padding-left:10px; padding-right:10px; }
  .kidstrip { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
  .kidstrip .ah { grid-column:1 / -1; }
  .v4 .body { grid-template-columns:1fr; }
  .v4 .side { border-left:0; padding-left:0; border-top:1px solid var(--line); padding-top:10px; }
  .notes .box { width:calc(100vw - 40px); }
}

@media (max-width:760px) {
  .nav-in { gap:8px; }
  .gm-goals, .gm-business { grid-template-columns:minmax(0,1fr); }
  .gm-queue-detail { padding:16px 16px 0; }
  .gm-steps > div { grid-template-columns:minmax(0,1fr); gap:6px; }
  .home .case, .qmain .goals { grid-template-columns:minmax(0,1fr); }
  .v4 .head { flex-wrap:wrap; }
  .store-head { flex-wrap:wrap; }
  .drawer-head { padding-left:16px; padding-right:16px; }
  .drawer-body { padding-left:16px; padding-right:16px; }
  .drawer-actions { padding-left:16px; padding-right:16px; }
  .record-state { gap:12px; }
}

/* R6 公网外壳与组件 */
/* ---------- 外壳：左侧深色栏 + 白顶栏（照公网） ---------- */
body { display:grid; grid-template-columns:var(--side) minmax(0, 1fr); }
#side { background:#16181d; color:#cdd2da; z-index:5; }
.side-in { position:sticky; top:0; height:100vh; padding:0 10px; display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:10px; height:56px; padding:0 8px; color:#fff; font-size:15px; font-weight:600; letter-spacing:.5px; }
.brand i { width:22px; height:22px; border-radius:6px; background:var(--brand); display:grid; place-items:center; font-style:normal; font-size:12px; }
.nav-label { padding:14px 8px 6px; font-size:11px; letter-spacing:1.2px; color:#7d838e; }
.nav-item { display:flex; align-items:center; gap:10px; width:100%; margin:1px 0; border:0; background:transparent; color:#cdd2da; text-align:left; font-size:13px; border-radius:8px; padding:8px 12px; cursor:pointer; }
.nav-item:hover { background:rgba(255,255,255,.06); }
.nav-item.on { background:rgba(255,255,255,.08); box-shadow:inset 2px 0 0 0 var(--brand); color:#fff; font-weight:600; }
.nav-item .cnt { margin-left:auto; font-size:11px; color:#fff; background:var(--brand); border-radius:9px; padding:0 6px; line-height:18px; font-weight:500; }
.nav-item.muted { color:#969da8; }
.nav-area { display:flex; align-items:center; gap:8px; padding:6px 12px; font-size:12px; color:#aab0ba; border-radius:8px; cursor:pointer; }
.nav-area:hover { background:rgba(255,255,255,.05); }
#sideAreas .nav-area.on { background:rgba(255,255,255,.08); color:#fff; }
.nav-area b { font-weight:400; flex:1; }
.nav-area small { font-size:11px; color:#868c97; font-variant-numeric:tabular-nums; }
.nav-dot { width:7px; height:7px; border-radius:50%; background:#5a606b; flex:none; }
.nav-dot.bad { background:#E5817A; }
.side-foot { margin-top:auto; padding:12px 8px 16px; font-size:11px; color:#7d838e; line-height:1.6; }

.main { min-width:0; min-height:100vh; }
#top { position:sticky; top:0; z-index:4; height:56px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:16px; padding:0 28px; }
#top h1 { margin:0; font-size:16px; font-weight:600; }
#top .crumb { color:var(--ink3); font-size:13px; }
#top .sp { flex:1; }
.seg { display:inline-flex; border:1px solid var(--line); border-radius:6px; overflow:hidden; height:30px; }
.seg button { border:0; background:#fff; padding:0 12px; font-size:12px; color:var(--ink2); cursor:pointer; }
.seg button + button { border-left:1px solid var(--line); }
.seg button.on { background:var(--tab-bg); color:var(--tab-ink); font-weight:500; box-shadow:inset 0 0 0 1px var(--tab-bd); }
.btn { height:34px; border-radius:6px; border:1px solid var(--line); background:#fff; padding:0 14px; font-size:13px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.btn:hover { border-color:#C9CDD4; }
.btn.primary { background:var(--brand); border-color:var(--brand); color:#fff; }
.btn.primary:hover { background:#2A2A30; }
.who { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink2); }
.who i { width:28px; height:28px; border-radius:50%; background:#E8EAEE; display:grid; place-items:center; font-style:normal; font-size:12px; color:var(--ink2); }
.datepill { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 10px; border:1px solid var(--line); border-radius:6px; font-size:12px; color:var(--ink2); background:#fff; }
.datepill b { color:var(--ink); font-weight:500; }

/* 图表 */
svg { display:block; overflow:visible; }
:is(.home-b,.analysis-page,.work-trend) svg text { font-family:var(--sans); font-size:11px; fill:var(--ink3); }
:is(.home-b,.analysis-page,.work-trend) svg text.lab-ink { fill:var(--ink2); }
:is(.home-b,.analysis-page,.work-trend) svg text.lab-strong { fill:var(--ink); font-weight:600; }
:is(.home-b,.analysis-page,.work-trend) .hit { fill:transparent; cursor:default; }
.mark { transition:opacity .15s; }
[data-tip-v]:hover .mark, .mark[data-tip-v]:hover { opacity:.78; }
.draw-line { stroke-dasharray:var(--len); stroke-dashoffset:var(--len); animation:draw 1.1s cubic-bezier(.2,.7,.2,1) .15s forwards; }
.grow { transform-box:fill-box; transform-origin:var(--origin, bottom); animation:grow .7s cubic-bezier(.2,.7,.2,1) both; }
.fade { animation:fade .6s ease-out both; }
@keyframes draw { to { stroke-dashoffset:0; } }
@keyframes grow { from { transform:scaleY(0); } }
@keyframes growx { from { transform:scaleX(0); } }
@keyframes fade { from { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .draw-line, .grow, .fade, .growx { animation:none !important; stroke-dashoffset:0; } }

/* 提示框：数在前、名在后 */
#tip { position:fixed; z-index:50; pointer-events:none; background:#fff; border:1px solid var(--line); border-radius:8px; padding:7px 10px; box-shadow:0 6px 20px rgba(31,35,41,.10); font-size:12px; line-height:1.5; max-width:280px; opacity:0; transition:opacity .1s; }
#tip.on { opacity:1; }
#tip b { display:block; font-size:13px; font-weight:600; color:var(--ink); }
#tip span { color:var(--ink2); }

/* 提示条：样稿里未做的跳转 */
#toast { position:fixed; left:50%; bottom:28px; transform:translate(-50%, 12px); background:#1F2329; color:#fff; font-size:13px; padding:10px 16px; border-radius:8px; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:60; }
#toast.on { opacity:1; transform:translate(-50%, 0); }

/* 热力格 */
.heat td.h { position:relative; }
.h0 { background:transparent; } .h1 { background:var(--h1); } .h2 { background:var(--h2); } .h3 { background:var(--h3); } .h4 { background:var(--h4); } .h5 { background:var(--h5); }
.heat-legend { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--ink3); }
.heat-legend i { width:18px; height:10px; border-radius:2px; display:inline-block; }
/* R6: 公网组件覆盖，保留其他视角的 DOM 结构。 */
body { display:grid; grid-template-columns:220px minmax(0,1fr); font:13px/1.6 var(--sans); }
b,strong { font-weight:600; }
a { text-decoration:none; }
button { min-height:34px; border:1px solid var(--line); border-radius:6px; background:#fff; padding:0 12px; cursor:pointer; }
button:disabled { opacity:.45; cursor:default; }
button.primary { background:#111114; border-color:#111114; color:#fff; }
.num { font-family:var(--sans); font-variant-numeric:normal; }
td.num,td.r,th.r,.tab-num { font-variant-numeric:tabular-nums; }
#side { min-width:0; } .side-in { min-height:650px; }
#side .nav-item { min-height:36px; } #side a { text-decoration:none; }
.main { min-width:0; }
#top { gap:12px; padding:0 24px; }
#top h1 { flex:none; }
#top .crumbs { flex-wrap:nowrap; overflow:hidden; min-width:0; gap:5px; }
#top .crumb { padding:0; min-height:0; border:0; background:transparent; border-radius:0; white-space:nowrap; font-size:13px; color:var(--tx3); }
#top .crumb.on { color:var(--tx2); font-weight:400; }
#top .crumb small { font-size:12px; }
#top .datepill,#top .seg,#top .who { flex-shrink:0; }
.demo { max-width:none; margin:0; padding:7px 24px 0; color:#86909C; }
.demo span { background:none; padding:0; border:0; }
.page { max-width:none; margin:0; padding:16px 24px 48px; min-width:0; }
.seg { gap:0; padding:0; background:#fff; height:34px; }
.seg button { border-radius:0; min-height:32px; background:#fff; }
.seg button.on { background:#EDF0FE; color:#1E3FDF; font-weight:500; box-shadow:inset 0 0 0 1px #C9D2F8; }
.panel,.goal,.qlist,.case,.rail,.escbox { border-radius:12px; box-shadow:none; }
.case .more a,.linkish { border-bottom:0; text-decoration:none; color:var(--tx2); font-size:12px; }
.linkish:hover { color:var(--ink); }
.view { color:#4E5969; font-size:12px; text-decoration:none; cursor:pointer; white-space:nowrap; border:0; background:none; padding:0; min-height:0; }
.view:hover { color:#1F2329; }
.tag,.kind,.scope-tag,.case .hero .scope-tag,.demo-tag,.od-kind { display:inline-flex; align-items:center; height:20px; padding:0 7px; border-radius:4px; border:0; font-size:11px; background:#F2F3F5; color:#4E5969; }
.kind.k-集中,.kind.k-异常,.tag.red { background:#FDECEC; color:#B93A33; }
.kind.k-持续,.kind.k-趋势,.tag.amber { background:#FDF3E5; color:#A86A06; }
.kind.k-拆环 { background:#EDF0FE; color:#1E3FDF; }
.tag.green { background:#E8F5EE; color:#1F9254; }
.lv { border:0; border-radius:4px; padding:0 5px; height:20px; background:var(--panel3); }
.lv.red { background:var(--red-w); } .lv.yellow { background:var(--amber-w); }
thead th { background:#F8F9FB; color:#4E5969; font-size:12px; font-weight:500; }
tbody td { font-size:13px; }
.qwrap { grid-template-columns:320px minmax(0,1fr); gap:16px; }
.qlist { background:#fff; top:72px; max-height:calc(100vh - 100px); }
.qgh { font-size:13px; font-weight:600; background:#fff; }
.qgh b { color:#86909C; }
.qi { padding:12px; border:0; border-radius:0; min-height:0; }
.qi.on,.od-list .qi.on { background:#F8F9FB; box-shadow:inset 3px 0 0 #1E3FDF; }
.qmain { min-width:0; }
.drawer { top:56px; height:calc(100vh - 56px); }
.drawer-tabs,.case-tabs { display:flex; gap:0; border:1px solid #E5E6EB; border-radius:6px; overflow:hidden; }
.drawer-tabs button,.case-tabs button { border:0; border-radius:0; padding:0 12px; min-height:34px; font-size:13px; }
.drawer-tabs button.on,.case-tabs button.on { background:#EDF0FE; color:#1E3FDF; box-shadow:inset 0 0 0 1px #C9D2F8; font-weight:500; }
.notes > button { border-radius:6px; box-shadow:none; }
.work-item-head { display:flex; align-items:flex-start; gap:8px; }
.work-item-head b { font-size:14px; font-weight:600; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.work-item-head > span { white-space:nowrap; font-size:12px; }
.work-item .r3 { white-space:normal; font-size:12px; color:#86909C; line-height:1.6; margin-top:5px; }
.work-heading h1 { margin:0 0 6px; font-size:20px; font-weight:600; }
.work-heading p { margin:0 0 16px; color:#4E5969; }
.work-summary,.work-trend { padding:16px; margin-bottom:16px; }
.work-summary dl { display:grid; grid-template-columns:2fr 2fr 1fr 1fr; gap:16px; margin:0; }
.work-summary dt { font-size:12px; color:#86909C; margin-bottom:5px; }
.work-summary dd { margin:0; font-size:14px; }
.work-actions { display:flex; gap:8px; flex-wrap:wrap; padding-top:12px; }
.work-trend h2 { margin:0; font-size:14px; font-weight:600; }
.work-trend p { margin:4px 0 12px; font-size:12px; }
.store-data-head p { margin:4px 0; color:#4E5969; }
#storeDataStrips { margin:12px 0 20px; }
.analysis-page { padding-top:12px; }
.an-toolbar { display:flex; align-items:center; gap:16px; height:34px; margin-bottom:10px; }
.an-toolbar .sp { flex:1; }
.an-toolbar select { height:34px; border:1px solid var(--line); border-radius:6px; padding:0 10px; background:#fff; color:var(--tx2); }
.an-finding { background:#fff; padding:12px 16px; border-radius:12px; margin-bottom:10px; }
.an-find-title { display:flex; align-items:center; gap:10px; }
.an-find-title h2 { margin:0; font-size:15px; font-weight:600; }
.an-finding ul { margin:5px 0; padding-left:17px; color:#4E5969; font-size:12px; line-height:1.6; }
.an-ai { margin:4px 0; font-size:12px; color:#86909C; }
.an-ai > span { color:#4E5969; }
.an-follow { display:flex; gap:8px; align-items:center; font-size:12px; color:#4E5969; }
.an-follow .view { margin-left:auto; }
.an-selectors { display:grid; gap:5px; }
.an-controls { display:flex; align-items:center; gap:12px; }
.an-controls > span { width:28px; flex:none; font-size:12px; color:#86909C; }
.an-controls .seg { height:30px; }
.an-controls .seg button { min-height:28px; }
.an-original-controls { opacity:.55; }
.an-path { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:10px 0; min-height:34px; }
.an-path > div { display:flex; align-items:center; gap:6px; min-width:0; }
.an-path > div:first-child { flex-wrap:wrap; }
.an-path > div:first-child button { min-height:0; padding:0; border:0; background:none; font-size:12px; }
.an-path button.on { font-weight:600; }
.an-recs button { font-size:12px; padding:0 8px; }
.an-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:start; }
.an-main { height:460px; min-width:0; background:#fff; border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; }
.an-main header { display:flex; align-items:center; gap:12px; min-height:34px; }
.an-main header h2 { margin:0; flex:1; min-width:0; font-size:14px; font-weight:600; }
.an-main header .seg { flex:none; }
.an-main header .seg button { padding:0 9px; }
.an-main header > .muted { font-size:11px; max-width:215px; }
#anSummary { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; padding:9px 0; }
#anSummary:empty { display:none; }
#anSummary b { font-size:20px; font-weight:600; }
#anSummary span { font-size:12px; color:#86909C; }
#anSummary .an-funnel-note { flex-basis:100%; margin:0; font-size:12px; color:#86909C; line-height:1.5; }
.an-chart { min-height:0; flex:1; overflow:auto; animation:anFade .15s ease-out; }
.an-chart svg { overflow:visible; }
.an-main footer { padding-top:8px; color:#86909C; font-size:11px; }
#anSelection { font-size:12px; padding-top:4px; }
#anSelection:empty { display:none; }
#anSelection button { margin-left:8px; }
.an-related { height:460px; overflow:auto; background:#fff; border-radius:12px; padding:12px; }
.an-related h2 { margin:0 0 6px; font-size:14px; font-weight:600; }
.an-related h3 { margin:12px 0 6px; font-size:12px; font-weight:500; color:#4E5969; }
.an-metric { display:grid; grid-template-columns:70px 1fr 90px; gap:2px 6px; align-items:center; width:100%; border:0; padding:6px 8px; text-align:left; background:#fff; border-radius:6px; }
.an-metric.on { background:#F8F9FB; }
.an-metric > b { font-size:12px; font-weight:500; text-align:right; }
.an-metric > small { grid-column:1 / 3; color:#86909C; font-size:11px; }
.an-metric > div { grid-column:3; grid-row:1 / 3; min-width:0; width:90px; }
.an-owner { border-top:1px solid #F0F1F3; padding-top:10px; margin-top:12px; color:#4E5969; font-size:12px; }
.an-table { width:100%; border-collapse:collapse; }
.an-table th { padding:8px; background:#F8F9FB; color:#4E5969; font-size:12px; font-weight:500; text-align:right; white-space:nowrap; }
.an-table td { padding:8px; font-size:13px; border-bottom:1px solid #F0F1F3; text-align:right; font-variant-numeric:tabular-nums; }
.an-table th:first-child,.an-table td:first-child { text-align:left; }
.an-table th button { padding:0; border:0; background:none; min-height:22px; font-size:12px; }
.an-table tbody tr { cursor:pointer; }
.an-table tbody tr:hover { outline:1px solid #C9D2F8; }
.an-heat td,.an-heat th { padding:12px 10px; }
.an-funnel-group { margin-bottom:8px; }
.an-funnel-group > button { min-height:26px; padding:0; border:0; font-weight:600; }
@keyframes anFade { from {opacity:0;} to {opacity:1;} }
@media(prefers-reduced-motion:reduce) { .an-chart { animation:none; } }
@media(max-width:1180px) { #top .who { display:none; } #top .datepill { display:none; } #top .crumb small { display:none; } .an-grid { grid-template-columns:minmax(0,1fr) 280px; } .an-recs { flex-wrap:wrap; } }

/* 旧图表保留节点、坐标与交互，颜色映射到公网令牌。 */
#side { border:0; padding:0; }
#side .brand i { color:#fff; }
.chip { height:20px; display:inline-flex; align-items:center; border:0; border-radius:4px; background:#F2F3F5; }
.chip.follow.gap { background:#FDF3E5; color:#A86A06; border:0; }
.qmore { text-decoration:none; }
.kids-more button,.gm-expand { border:1px solid #E5E6EB; border-radius:6px; padding:0 12px; background:#fff; min-height:34px; text-decoration:none; }
.record-button,.dtl { height:34px; padding:0 12px; border-radius:6px; }
.drawer-actions button,.gm-actions button { height:34px; }
.drawer-actions button.primary { background:#111114; border-color:#111114; color:#fff; }
.v4 .tabs { border:1px solid #E5E6EB; border-radius:6px; overflow:hidden; gap:0; }
.v4 .tab { background:#fff; border:0; border-radius:0; box-shadow:none; }
.v4 .tab + .tab { border-left:1px solid #E5E6EB; }
.v4 .tab.on,.dtl[aria-pressed="true"] { background:#EDF0FE; color:#1E3FDF; box-shadow:inset 0 0 0 1px #C9D2F8; border-color:#C9D2F8; }
.v4 .wf .r.on { background:#EDF0FE; box-shadow:inset 3px 0 0 #1E3FDF; }
.v4 .read .m { display:inline-flex; align-items:center; min-height:34px; padding:0 8px; border:1px solid #E5E6EB; border-radius:6px; background:#fff; }
svg [fill="#161a19"] { fill:var(--ink); }
svg [stroke="#161a19"] { stroke:var(--ink); }
svg [fill="#545c58"] { fill:var(--tx2); }
svg [stroke="#545c58"] { stroke:var(--tx2); }
svg [fill="#8b928e"] { fill:var(--tx3); }
svg [stroke="#8b928e"] { stroke:var(--tx3); }
svg [fill="#eef0ec"] { fill:var(--line2); }
svg [stroke="#eef0ec"] { stroke:var(--line2); }
svg [fill="#d6dbd5"] { fill:var(--line); }
svg [stroke="#d6dbd5"] { stroke:var(--line); }
svg [fill="#c8432f"] { fill:var(--red); }
svg [stroke="#c8432f"] { stroke:var(--red); }
svg [fill="#e3a497"] { fill:var(--red-soft); }
svg [stroke="#e3a497"] { stroke:var(--red-soft); }
svg [fill="#aab2ac"] { fill:var(--bar); }
svg [stroke="#aab2ac"] { stroke:var(--bar); }
svg [fill="#dde1dc"] { fill:var(--bar-lt); }
svg [stroke="#dde1dc"] { stroke:var(--bar-lt); }
svg [fill="#3f8a66"] { fill:var(--ok); }
svg [stroke="#3f8a66"] { stroke:var(--ok); }
svg [fill="#a8cdb8"] { fill:var(--ok-soft); }
svg [stroke="#a8cdb8"] { stroke:var(--ok-soft); }
svg [fill="#f3f4f2"] { fill:var(--bg); }
svg [stroke="#f3f4f2"] { stroke:var(--bg); }
svg [fill="#f6f7f4"] { fill:var(--panel2); }
svg [stroke="#f6f7f4"] { stroke:var(--panel2); }
svg [fill="#5b6460"] { fill:var(--tx2); }
svg [stroke="#5b6460"] { stroke:var(--tx2); }
svg [fill="#c9cfc9"] { fill:var(--mute-bar); }
svg [stroke="#c9cfc9"] { stroke:var(--mute-bar); }
svg [fill="#cfd5cf"] { fill:var(--line); }
svg [stroke="#cfd5cf"] { stroke:var(--line); }
svg [fill="#6f7873"] { fill:var(--tx2); }
svg [stroke="#6f7873"] { stroke:var(--tx2); }

/* R9：门店工作队列与组内导航，沿用样稿规则。 */
.store-queue .qhd { display:flex; align-items:baseline; gap:8px; padding:12px 16px 8px; }
.store-queue .qhd b { font-size:15px; font-weight:600; }
.store-queue .qhd span { font-size:12px; color:var(--ink3); }
.store-queue .qg { border-top:1px solid var(--line-soft); }
.store-queue .qg > summary, .store-queue .qgh { display:flex; align-items:baseline; gap:8px; padding:10px 16px 6px; font-size:13px; font-weight:600; cursor:pointer; list-style:none; }
.store-queue .qg > summary::-webkit-details-marker { display:none; }
.store-queue .qg > summary b { font-weight:500; color:var(--ink3); }
.store-queue .qg > summary::after { content:'▾'; margin-left:auto; color:var(--ink3); font-weight:400; }
.store-queue .qg:not([open]) > summary::after { content:'▸'; }
.store-queue .qg.cur .qgh { color:#A86A06; }
.store-queue .qi { display:block; padding:8px 16px 8px 13px; border-left:3px solid transparent; color:inherit; text-decoration:none; }
.store-queue .qi:hover { background:#FAFBFC; }
.store-queue .qi.on { background:var(--th); border-left-color:var(--tab-ink); }
.store-queue .qi .r1 { display:flex; align-items:center; gap:6px; }
.store-queue .qi .nm { flex:1; font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.store-queue .qi .dl { font-size:12px; }
.store-queue .qi .r2 { margin-top:2px; font-size:12px; color:var(--ink3); line-height:1.45; }
.store-queue .qprog { display:flex; align-items:center; gap:10px; padding:0 16px 8px; font-size:12px; color:var(--ink2); }
.store-queue .qprog b { color:var(--ink); }
.store-queue .qprog i { position:relative; flex:1; height:5px; border-radius:3px; background:var(--d-track); overflow:hidden; }
.store-queue .qprog s { position:absolute; inset:0 auto 0 0; background:var(--pos); }
.store-queue .qrule { margin:0 16px 10px; padding:6px 10px; border-radius:6px; background:var(--th); font-size:11px; line-height:1.6; color:var(--ink3); }
.store-queue .qnote { padding:0 16px 6px; font-size:11px; line-height:1.5; color:var(--ink3); }
.store-queue .qg.qnew > summary { color:#B93A33; }
.store-queue .qi .no { display:grid; place-items:center; flex:none; width:18px; height:18px; border-radius:50%; background:var(--th); font-size:11px; color:var(--ink2); font-variant-numeric:tabular-nums; }
.store-queue .qi.on .no { background:var(--tab-ink); color:#fff; }
.store-queue .qi .kn { flex:none; font-size:12px; color:var(--ink2); white-space:nowrap; }
.store-queue .qi .r3 { margin-top:1px; font-size:11px; color:var(--ink3); }
.store-queue .qi .ok, .wbar .ok { color:var(--pos); font-weight:500; }
.store-queue .qi.done .nm { color:var(--ink3); font-weight:500; }
.wbar { display:flex; align-items:center; gap:12px; padding:10px 16px; font-size:13px; color:var(--ink2); }
.wbar b { color:var(--ink); }
.wbar .sp { flex:1; }
.wbar .btn { text-decoration:none; color:var(--ink); }
.wbar .btn.primary { color:#fff; }
.store-queue .qgh { position:static; justify-content:flex-start; border:0; background:none; }
.store-queue .qg { border-bottom:0; }
.store-queue details.qg > summary span::after { content:none; }
.store-queue .qi { padding:8px 16px 8px 13px; box-shadow:none; }
.store-queue .qi.on { box-shadow:none; }
.store-queue .qi .nm { min-width:0; }
.store-queue .qi .kn.neg { color:var(--neg); }
.store-queue .qnew > summary { color:#B93A33; }
.store-queue .qnote { margin:0; }
.wbar { margin-bottom:14px; min-width:0; background:var(--panel); border:1px solid var(--line); border-radius:12px; }
.wbar .btn { display:inline-flex; align-items:center; height:30px; padding:0 10px; border:1px solid var(--line); border-radius:6px; font-size:12px; white-space:nowrap; }
.wbar .btn.primary { background:var(--brand); border-color:var(--brand); }

/* R21：粘性待办只在简报两栏段落内，排名与数据在该段之后。 */
.home { display:block; }
.home > * + * { margin-top:16px; }
.home-band { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:16px; align-items:start; position:relative; }
.home-band > * { min-width:0; }
.home-band .rail { align-self:start; max-height:calc(100vh - 82px); overflow:auto; }
@media(max-width:1000px) { .home-band { grid-template-columns:minmax(0,1fr); } .home-band .rail { position:static; max-height:none; } }

/* R25：窄屏保持四入口可达，给事项表单和历史条件留足宽度。 */
@media(max-width:760px) {
  body { display:block; }
  .side-in { position:static; height:auto; min-height:0; padding:0 12px 10px; }
  #side .brand { height:42px; }
  #navLinks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; }
  #side .nav-item { padding:8px 4px; justify-content:center; gap:4px; font-size:12px; white-space:nowrap; }
  #side .nav-item .cnt { margin-left:0; padding:0 4px; }
  #sideAreas { max-height:132px; overflow:auto; }
  .side-foot { display:none; }
  #top { position:relative; height:auto; min-height:56px; padding:10px 16px; flex-wrap:wrap; gap:8px; }
  #top .sp { display:none; }
  #top h1 { flex:1 1 100%; }
  #top .crumbs { flex:1 1 100%; flex-wrap:wrap; }
  #top select { min-width:0; max-width:100%; }
  .demo { padding:10px 16px 0; }
  .page { padding:16px 16px 40px; }
  .qwrap { grid-template-columns:minmax(0,1fr); }
  .qlist { position:static; max-height:46vh; }
  .drawer { top:0; height:100dvh; max-width:100vw; }
}

/* R21：相关数据随内容展开，下一层列表完整可见。 */
.an-related { height:auto; max-height:none; overflow:visible; align-self:start; padding:16px 20px; }
