/* 沐桐知学 · 组件专属样式 mt-components.css（依赖 mt-tokens.css） */
figure.exhibit{margin:0}
.mt-section>.blk+.blk{margin-top:12px}
.mt-section+.mt-section{margin-top:28px}
.up{color:var(--green)} .down{color:var(--red)}

/* 封面 */
.cover{border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line)}
.cover-top{background:var(--ink);padding:22px 20px 0;position:relative}
.cover-top .row{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.cover-top .brand{color:#fff;font-weight:700;font-size:15px}
.cover-top .type{letter-spacing:4px;color:var(--gold-soft);margin-top:4px;font-size:12px}
.cover-top .date{color:#B9C0D0}
.cover-line{margin-top:14px}
.cover-body{padding:22px 20px;display:flex;flex-direction:column;gap:18px}
.cover-name{font-family:var(--serif);font-size:36px;font-weight:700;color:var(--ink);line-height:1.15}
.cover-sub{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);margin-top:6px}
.cover-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.cover-info>div{padding:12px 0} .cover-info .k{font-size:12px;color:var(--muted)} .cover-info .v{font-size:15px;font-weight:500;color:var(--ink)}
.core{background:var(--gold-bg);border-radius:var(--r-md);padding:16px 18px}
.core .k{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:2px;margin-bottom:6px}
.core .v{font-family:var(--serif);font-size:18px;line-height:1.6;color:var(--ink);font-weight:600}
.cover-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:13px;color:var(--muted)}
.cover-foot b{color:var(--ink);font-weight:500} .cover-foot .r{text-align:right} .cover-foot .d{font-size:17px;color:var(--ink);font-weight:700;margin-top:4px}
@media (min-width:640px){.cover-top{padding:40px 48px 0}.cover-body{padding:36px 48px}.cover-name{font-size:48px}.cover-sub{font-size:22px}.cover-info{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* 摘要 */
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px}
.kpi .k{font-size:12px;color:var(--muted)} .kpi .v{font-size:26px;font-weight:700;color:var(--ink);line-height:1.25}
.kpi .v small{font-size:13px;font-weight:700;margin-left:4px} .kpi-na{font-size:14px;color:var(--faint);font-weight:500}
.kpi.dark{background:var(--ink);border-color:var(--ink)} .kpi.dark .k{color:var(--gold-soft)} .kpi.dark .v{color:#fff}
.sum-card{border-top:4px solid var(--ink)} .sum-gold{border-top-color:var(--gold-2)} .sum-green{border-top-color:var(--green)} .sum-red{border-top-color:#C0392B}

/* 诊断 */
.four{display:grid;border-radius:var(--r-lg);overflow:hidden;background:var(--ink)}
.four .row{display:grid;grid-template-columns:1fr;gap:4px;padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.four .row:last-child{border-bottom:none;background:#26335A}
.four .k{font-size:12px;letter-spacing:2px;color:var(--gold-soft);font-weight:700}
.four .v{font-family:var(--serif);font-size:16px;line-height:1.6;color:#fff;font-weight:600}
@media (min-width:560px){.four .row{grid-template-columns:88px 1fr;gap:14px;align-items:baseline}}
.judg .j{padding:11px 0;border-bottom:1px solid #EDEAE2} .judg .j:last-child{border-bottom:none;padding-bottom:0} .judg .j:first-child{padding-top:0}
.judg .t{font-weight:700;color:var(--ink);display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.judg .b{font-size:14px;margin-top:4px} .judg .ev{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.red-flag{background:var(--red-bg);color:var(--red);border-radius:var(--r-md);padding:12px 14px;font-size:14px;margin-bottom:10px}

/* 路径 */
.tier{border-radius:var(--r-lg);padding:13px 15px;border:1px solid var(--line);background:#fff}
.tier .top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:nowrap}
.tier .nm{font-size:16px;font-weight:700;color:var(--ink);min-width:0}
.tier .why{font-size:14px;margin-top:6px}
.tier.main{border:2px solid var(--ink)} .tier.alt{border-left:4px solid var(--gold-2)} .tier.no{background:var(--grey-bg);border-style:dashed} .tier.no .nm{color:var(--muted)}
.dims{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}
.dim{text-align:center;font-size:11px;color:var(--muted)}
.dbar{height:34px;background:var(--grey-bg);border-radius:6px;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:4px}
.dbar i{display:block;width:100%;background:var(--ink-3)} .dbar i.lo{background:var(--amber)}
.ladder{display:grid;gap:8px}
.rung{display:grid;grid-template-columns:54px 1fr;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:#fff}
.rung .lv{display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:16px}
.rung.c .lv{background:#C0392B} .rung.w .lv{background:var(--ink)} .rung.b .lv{background:var(--green)}
.rung .bd{padding:9px 12px;font-size:14px} .rung .bd .s{font-weight:700;color:var(--ink)}
.gauge{height:14px;border-radius:7px;background:var(--grey-bg);overflow:hidden} .gauge i{display:block;height:100%;background:linear-gradient(90deg,var(--ink-3),var(--ink))}
.tl{position:relative;padding-left:22px} .tl:before{content:'';position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line-2)}
.st{position:relative;padding:0 0 12px} .st:last-child{padding-bottom:0}
.st .dot{position:absolute;left:-22px;top:4px;width:16px;height:16px;border-radius:8px;background:#fff;border:3px solid var(--ink-3)}
.st.now .dot{background:var(--gold-2);border-color:var(--gold-2);box-shadow:0 0 0 4px var(--gold-bg)}
.st .nm{font-weight:700;color:var(--ink);display:flex;gap:8px;align-items:center;flex-wrap:wrap} .st .x{font-size:14px;margin-top:2px} .st .sw{font-size:12px;color:var(--amber);margin-top:2px}

/* 提分 */
.task{background:var(--gold-bg);border-radius:var(--r-lg);padding:15px 16px}
.task .t{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--ink);line-height:1.5}
.spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
@media (min-width:640px){.spec{grid-template-columns:repeat(4,minmax(0,1fr))}}
.spec>div{background:#fff;border-radius:var(--r-sm);padding:8px 11px}
.spec .k{font-size:11px;color:var(--gold);font-weight:700;letter-spacing:1px} .spec .v{font-size:14px;color:var(--ink);font-weight:500;margin-top:2px}
.fs{border-radius:var(--r-lg);padding:13px 15px;background:#fff;border:1px solid var(--line)} .fs.p1{border:2px solid var(--ink)}
.fs .nm{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gapbar{height:14px;background:var(--grey-bg);border-radius:7px;margin-top:10px;position:relative;overflow:hidden}
.gapbar span{position:absolute;left:0;top:0;bottom:0;background:var(--ink)} .gapbar i{position:absolute;top:0;bottom:0;width:3px;background:var(--gold-2)}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.phx{background:var(--grey-bg);border-radius:var(--r-sm);padding:9px 11px;font-size:13px}
.phx .w{font-size:11px;color:var(--muted)} .phx .t{font-weight:700;color:var(--ink);font-size:14px} .phx .o{font-size:11px;color:var(--muted);margin-top:4px}
.sess{display:flex;height:46px;border-radius:10px;overflow:hidden}
.sess span{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;padding:0 4px;text-align:center;line-height:1.3}
.sess .light{background:#D5DAE5;color:var(--ink)} .sess .dark{background:var(--ink);color:#fff} .sess .gold{background:var(--gold-soft);color:var(--ink)}
.cap{display:grid;gap:4px;margin-top:8px;font-size:13px} .cap div{display:flex;gap:8px} .cap b{color:var(--ink)}
.book th{background:var(--ink)!important;color:#fff!important} .book td{height:50px}

/* 家庭 */
.q{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:13px 15px;display:grid;grid-template-columns:32px 1fr;gap:12px}
.q .n{width:32px;height:32px;border-radius:16px;background:var(--ink);color:#fff;font-family:var(--serif);font-weight:700;display:flex;align-items:center;justify-content:center}
.q .k{font-size:13px;color:var(--muted)} .q .v{font-size:15px;color:var(--ink);line-height:1.6;margin-top:2px}
.quote{font-family:var(--serif);font-size:16px;color:var(--ink);text-align:center;padding:12px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.scale6{position:relative;display:grid;grid-template-columns:15fr 8fr 7fr;height:10px;border-radius:5px;overflow:visible;margin:6px 0 4px}
.scale6 i:nth-child(1){background:#E9B8AF;border-radius:5px 0 0 5px} .scale6 i:nth-child(2){background:#EDD3A2} .scale6 i:nth-child(3){background:#A9D3BC;border-radius:0 5px 5px 0}
.scale6 span{position:absolute;top:-4px;width:3px;height:18px;background:var(--ink);border-radius:2px}
.tier-box{border-radius:var(--r-md);padding:11px 14px;margin-top:12px;font-size:14px}
.tier-box.hi{background:var(--green-bg)} .tier-box.mid{background:var(--amber-bg)} .tier-box.lo{background:var(--red-bg)}
.tier-box b{display:block;margin-bottom:2px} .tier-box.hi b{color:var(--green)} .tier-box.mid b{color:var(--amber)} .tier-box.lo b{color:var(--red)}
.map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:640px){.map{grid-template-columns:repeat(4,minmax(0,1fr))}}
.map>div{background:var(--grey-bg);border-radius:var(--r-sm);padding:9px 12px} .map .k{font-size:12px;color:var(--muted)} .map .v{font-size:15px;font-weight:700;color:var(--ink)}
.mk{width:13px;height:13px;border-radius:7px;display:inline-block;vertical-align:-1px} .mk.r{background:var(--ink)} .mk.a{border:2px solid var(--ink)}
.review .ln{display:grid;gap:6px;margin-top:10px} .review label{font-size:14px;font-weight:700;color:var(--ink)} .review .key label{color:var(--gold)}
.review textarea{font:inherit;font-size:15px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:9px 11px;min-height:44px;resize:vertical;width:100%}
.review .uline{border-bottom:1px solid #999;height:22px}
.buy{display:grid;gap:8px}
.buy label{display:flex;gap:10px;align-items:center;font-size:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;cursor:pointer;min-height:44px}
.buy input{width:18px;height:18px;accent-color:var(--ink)}
.buy-p{display:flex;gap:10px;align-items:center;font-size:14px} .buy-p .box{width:14px;height:14px;border:1.5px solid var(--ink);border-radius:3px;flex-shrink:0}
.verdict{margin-top:8px;font-size:14px;font-weight:700}
.trap{border-left:3px solid #C0392B;background:#fff;border-radius:0 var(--r-sm) var(--r-sm) 0;padding:9px 12px}
.trap .t{font-weight:700;color:#C0392B;font-size:14px} .trap .x{font-size:14px;margin-top:2px}

/* 附录 */
.stage{display:grid;grid-template-columns:1fr;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff}
@media (min-width:560px){.stage{grid-template-columns:120px 1fr}}
.stage .l{background:var(--ink);color:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.stage .l .no{font-size:11px;color:var(--gold-soft)} .stage .l .nm{font-size:16px;font-weight:700} .stage .l .tr{font-size:12px;line-height:1.5;color:#C9D0DE}
.stage .r{padding:10px 14px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.55}
.stage .who{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px} .stage .who b{display:block;font-size:12px;color:var(--gold)}
.stage .stop{background:var(--red-bg);color:var(--red);border-radius:6px;padding:5px 10px;font-size:12px}
.rk{padding:12px 14px} .rk .t{font-size:15px;font-weight:700;color:var(--ink)} .rk .l{display:flex;gap:8px;font-size:13px;margin-top:4px} .rk .l b{flex-shrink:0} .rk .sig b{color:var(--amber)} .rk .act b{color:var(--green)}
.svc{display:grid;gap:8px}
@media (min-width:640px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sv{display:grid;grid-template-columns:40px 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px}
.sv .c{width:40px;height:40px;border-radius:8px;background:var(--grey-bg);color:var(--ink);font-weight:700;display:flex;align-items:center;justify-content:center}
.sv.on{border:2px solid var(--gold-2)} .sv.on .c{background:var(--gold-2);color:#fff} .sv .n{font-weight:700;color:var(--ink)}
.sg{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:480px){.sg{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
body.print-target .sg{grid-template-columns:repeat(3,minmax(0,1fr))}
.sg .v{overflow-wrap:anywhere} .sg .k{font-size:12px;color:var(--muted)} .sg .v{font-size:15px;font-weight:700;color:var(--ink)}
.legal{font-size:12px;line-height:1.8;color:var(--muted);margin:0} .legal b{color:var(--ink)}

/* ---------- 打印目标（A4 物理页内）尺寸收敛 ---------- */
body.print-target .cover{border:none;border-radius:0;height:297mm;display:flex;flex-direction:column}
body.print-target .cover-top{height:118mm;padding:22mm 20mm 0}
body.print-target .cover-line{position:absolute;left:20mm;right:20mm;bottom:0}
body.print-target .cover-body{flex-grow:1;padding:16mm 20mm 18mm;gap:9mm}
body.print-target .cover-name{font-size:40pt} body.print-target .cover-sub{font-size:18pt}
body.print-target .cover-info{grid-template-columns:repeat(4,minmax(0,1fr))}
body.print-target .cover-foot{margin-top:auto}
body.print-target .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
body.print-target .spec{grid-template-columns:repeat(4,minmax(0,1fr))}
body.print-target .stage{grid-template-columns:28mm 1fr}
body.print-target .svc{grid-template-columns:repeat(2,minmax(0,1fr))}
body.print-target .map{grid-template-columns:repeat(4,minmax(0,1fr))}
body.print-target .four .row{grid-template-columns:22mm 1fr;gap:4mm}
body.print-target .four .v{font-size:12pt}
body.print-target .action-title{font-size:13.5pt}
body.print-target .exhibit .ex-title{font-size:11.5pt}
body.print-target .mt-title{font-size:18pt} body.print-target .mt-no{font-size:22pt}
body.print-target .q .v{font-size:10.5pt}
body.print-target .task .t{font-size:13pt}

/* 章节级收紧（分页引擎按章节逐级加 .tight1/2/3，只影响该章） */
body.print-target .sheet-body>.blk.tight1{margin-top:-2px}
body.print-target .blk.tight1 .prose .pv{line-height:1.6}
body.print-target .blk.tight1 .card,body.print-target .blk.tight1 .exhibit{padding:9px 12px}
body.print-target .sheet-body>.blk.tight2{margin-top:-4px}
body.print-target .blk.tight2 .prose .pv{font-size:10pt;line-height:1.56}
body.print-target .blk.tight2 .card,body.print-target .blk.tight2 .exhibit{padding:8px 11px}
body.print-target .blk.tight2 .exhibit svg{max-height:58mm}
body.print-target .sheet-body>.blk.tight3{margin-top:-5px}
body.print-target .blk.tight3 .prose .pv{font-size:9.5pt;line-height:1.52}
body.print-target .blk.tight3 .prose{padding:3px 0}
body.print-target .blk.tight3 .card,body.print-target .blk.tight3 .exhibit{padding:7px 10px}
body.print-target .blk.tight3 .exhibit svg{max-height:50mm}

/* =========================================================
   打印目标 · 研报高密度语法（命题 1）
   - 门禁卡在纸面压缩为一行（原因已汇总到“待补资料”表）
   - 正文改为段首小标题（run-in），释放左侧标签栏宽度
   - 竖排时间轴改横排；阶段卡压缩
   ========================================================= */
body.print-target .locked{padding:6px 10px;gap:8px;align-items:center;border-width:1px;border-radius:8px;background:#FAF8F3}
body.print-target .locked .ic{width:20px;height:20px;border:none;background:none}
body.print-target .locked .ic svg{width:14px;height:14px}
body.print-target .locked .x{display:none}
body.print-target .locked>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.print-target .locked .t{font-size:10pt}
body.print-target .locked .need{margin-top:0}
body.print-target .locked .chip{font-size:8pt;padding:1px 7px}
body.print-target .card>.locked{margin-top:2px}
body.print-target .prose{display:block;padding:5px 0;border-top:none}
body.print-target .prose .pk{display:inline;font-size:9pt;margin-right:4px}
body.print-target .prose .pk:after{content:'｜';color:var(--line-2);margin-left:4px}
body.print-target .prose .pv{display:inline}
body.print-target .tl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding-left:0}
body.print-target .tl:before{display:none}
body.print-target .st{padding:8px 0 0;border-top:3px solid var(--ink-3)}
body.print-target .st.now{border-top-color:var(--gold-2)}
body.print-target .st .dot{display:none}
body.print-target .st .nm{font-size:10pt;flex-direction:column;align-items:flex-start;gap:0}
body.print-target .st .x,body.print-target .st .sw{font-size:9pt;line-height:1.5}
body.print-target .stage .r{padding:7px 12px;gap:4px}
body.print-target .stage .l{padding:8px 10px}
body.print-target .four .row{padding:8px 14px}
body.print-target .kpi .v{font-size:18pt}
body.print-target .kpi{padding:8px 12px}
body.print-target .judg .j{padding:7px 0}
body.print-target .q{padding:9px 12px}
body.print-target .tier{padding:9px 12px}

/* ---------- 打印目标 · 重块紧凑版式（按实测块高逐项压缩） ---------- */
body.print-target table.mt th,body.print-target table.mt td{padding:4px 8px;font-size:9.5pt}
body.print-target .judg .j{display:grid;grid-template-columns:1fr auto;column-gap:10px;padding:5px 0}
body.print-target .judg .t{grid-column:1/2;font-size:10.5pt}
body.print-target .judg .t .chip{display:none}
body.print-target .judg .b{grid-column:1/2;margin-top:0;font-size:9.5pt}
body.print-target .judg .ev{grid-column:2/3;grid-row:1/3;margin:0;flex-direction:column;align-items:flex-end;gap:3px}
body.print-target .judg .ev .chip{font-size:8pt;padding:1px 7px}
body.print-target .phx{padding:6px 9px;font-size:9pt} body.print-target .phx .t{font-size:10pt}
body.print-target .gantt .gc{height:16px} body.print-target .gantt{gap:4px}
body.print-target .stage{grid-template-columns:30mm 1fr}
body.print-target .stage .l{padding:6px 9px;gap:2px} body.print-target .stage .l .nm{font-size:11pt} body.print-target .stage .l .tr{font-size:8.5pt}
body.print-target .stage .r{padding:5px 10px;gap:3px;font-size:9pt;line-height:1.45}
body.print-target .stage .stop{padding:2px 8px;font-size:8.5pt}
body.print-target .exhibit .stack>*+*{margin-top:6px}
body.print-target .svc{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
body.print-target .sv{grid-template-columns:26px 1fr;gap:7px;padding:6px 8px;font-size:9pt}
body.print-target .sv .c{width:26px;height:26px;font-size:10pt}
body.print-target .sv .n{font-size:10pt}
body.print-target .rk{padding:7px 10px} body.print-target .rk .t{font-size:10.5pt} body.print-target .rk .l{font-size:9pt;margin-top:2px}
body.print-target .buy{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
body.print-target .buy-p{font-size:9.5pt}
body.print-target .trap{padding:5px 10px} body.print-target .trap .t,body.print-target .trap .x{font-size:9.5pt}
body.print-target .card .stack>*+*{margin-top:5px}
body.print-target .review .ln{margin-top:6px;grid-template-columns:auto 1fr;align-items:end;gap:10px}
body.print-target .review label{font-size:10pt}
body.print-target .book td{height:34px}
body.print-target .q3{gap:8px} body.print-target .q .k{font-size:9pt}
body.print-target .tier .why{font-size:10pt;margin-top:3px}
body.print-target .h3{font-size:11pt;margin-bottom:5px}
body.print-target .sum-card{padding:10px 12px}

@media (min-width:640px){.kpis4{grid-template-columns:repeat(4,minmax(0,1fr))}}
body.print-target .kpis4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* =========================================================
   高保真语义卡片扩展（事实门禁、研判卡、行动清单、时间轴、四方责任、风控对比）
   ========================================================= */
.fact-card { border-left: 4px solid var(--gold) !important; }
.judgment-card { border-left: 4px solid var(--ink) !important; }
.action-card { border-left: 4px solid var(--green) !important; }
.timeline-card { border-left: 4px solid var(--blue) !important; }
.role-card { border-left: 4px solid var(--muted) !important; }
.risk-card { border-left: 4px solid var(--red) !important; background: #FFFAF9; }

.card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #F1EFEA;
  padding-bottom: 6px;
  margin-bottom: 8px;
  flex-wrap: wrap;
  gap: 6px;
}
.card-meta { font-size: 11px; color: var(--muted); margin-left: auto; }

.fact-bullets { list-style: none; padding: 0; margin: 0 0 8px; }
.fact-bullets li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: #333;
}
.fact-bullets li::before {
  content: '▪';
  position: absolute;
  left: 2px;
  color: var(--gold);
  font-size: 13px;
}
.locked {
  display: flex;
  gap: 10px;
  background: var(--grey-bg);
  border: 1px dashed var(--line-2);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin-top: 8px;
  align-items: flex-start;
}
.locked-icon { font-size: 18px; line-height: 1; flex-shrink: 0; }
.locked-title { font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.locked-desc { font-size: 11.5px; color: var(--muted); margin-bottom: 5px; }
.locked-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 5px; }
.locked-reasons { font-size: 11.5px; color: #64748B; line-height: 1.4; }
.missing-desc { margin-bottom: 2px; }

.judg-box { display: flex; flex-direction: column; gap: 8px; }
.j-row { padding: 8px 0; border-bottom: 1px solid #EDEAE2; }
.j-row:last-child { border-bottom: none; padding-bottom: 0; }
.j-top { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-bottom: 4px; }
.j-title { font-size: 13.5px; font-weight: 800; color: var(--ink); white-space: nowrap; }
.j-tags { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.j-body { font-size: 12.5px; color: #475569; line-height: 1.5; margin-top: 2px; }

.action-list { display: flex; flex-direction: column; gap: 6px; }
.action-item {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  background: #FAF9F6;
  border: 1px solid #EFECE6;
  border-radius: var(--r-sm);
  padding: 8px 10px;
}
.action-num {
  font-family: var(--serif);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: var(--green);
  padding: 1px 6px;
  border-radius: 4px;
}
.action-main { flex: 1; }
.action-t { font-size: 13px; color: var(--ink); margin-bottom: 2px; }
.action-desc { font-size: 12px; color: #4B5563; line-height: 1.4; }

.st-head { display: flex; gap: 6px; align-items: center; margin-bottom: 2px; }
.st-name { font-size: 12.5px; font-weight: 700; color: var(--ink); }
.st-desc { font-size: 12px; color: #4B5563; line-height: 1.4; }

.role-grid { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 640px) {
  body:not(.shell-phone) .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.role-item { background: #FAF9F6; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 8px 10px; }
.role-tag { font-size: 11.5px; font-weight: 700; margin-bottom: 3px; }
.role-stu .role-tag { color: var(--ink); }
.role-parent .role-tag { color: var(--amber); }
.role-teacher .role-tag { color: var(--green); }
.role-planner .role-tag { color: var(--blue); }
.role-content { font-size: 12px; color: #374151; line-height: 1.4; }

.risk-split-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 640px) {
  body:not(.shell-phone) .risk-split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.risk-pane { border-radius: var(--r-sm); padding: 8px 10px; }
.risk-left { background: #FEF2F2; border: 1px solid #FEE2E2; }
.risk-right { background: #EFF6FF; border: 1px solid #DBEAFE; }
.risk-pane-title { font-size: 12px; font-weight: 700; margin-bottom: 4px; line-height: 1.4; }
.risk-left .risk-pane-title { color: var(--red); }
.risk-right .risk-pane-title { color: var(--blue); }
.risk-pane-body { font-size: 12px; color: #374151; line-height: 1.4; }

/* 打印目标专属紧凑调整 */
body.print-target .card { padding: 7px 10px; margin-bottom: 4px; }
body.print-target .card-head { padding-bottom: 3px; margin-bottom: 4px; }
body.print-target .fact-bullets li { font-size: 9.5pt; line-height: 1.35; margin-bottom: 2px; }
body.print-target .locked { padding: 5px 8px; margin-top: 4px; font-size: 9pt; }
body.print-target .locked-title { font-size: 9.5pt; margin-bottom: 1px; }
body.print-target .locked-desc { font-size: 8.5pt; margin-bottom: 2px; }
body.print-target .locked-reasons { font-size: 8.5pt; line-height: 1.25; }
body.print-target .j-row { padding: 4px 0; }
body.print-target .j-title { font-size: 9.5pt; }
body.print-target .j-body { font-size: 9pt; line-height: 1.32; }
body.print-target .action-item { padding: 4px 7px; gap: 5px; }
body.print-target .action-t { font-size: 9.5pt; }
body.print-target .action-desc { font-size: 8.5pt; line-height: 1.3; }
body.print-target .st-name { font-size: 9.5pt; }
body.print-target .st-desc { font-size: 8.5pt; line-height: 1.3; }
body.print-target .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 5px; }
body.print-target .role-item { padding: 4px 7px; }
body.print-target .role-tag { font-size: 9pt; }
body.print-target .role-content { font-size: 8.5pt; line-height: 1.3; }
body.print-target .risk-split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 5px; }
body.print-target .risk-pane { padding: 4px 7px; }
body.print-target .risk-pane-title { font-size: 9pt; margin-bottom: 2px; }
body.print-target .risk-pane-body { font-size: 8.5pt; line-height: 1.3; }

