@font-face { font-family: "Pretendard"; font-weight: 100 900; src: url("PretendardVariable.woff2") format("woff2"); }
@font-face { font-family: "Report Sans Tabular"; font-weight: 100 900; src: url("ReportSansTabular.woff2") format("woff2"); }
/* 데일리 리포트 스타일. 치수는 A4(210 x 297mm) 기준이다.
   글꼴(Pretendard)은 make_report.py 가 파일을 읽어 이 앞에 붙인다. */

:root {
  --ink: #111318;
  --ink-soft: #2a2e35;  /* 본문 글자: 10-23 회색이 안 읽힌다는 의견으로 진하게 */
  --muted: #6b7079;
  --line: #cfd3d9;
  --hairline: #e6e7ea;
  --accent: #14306b;
  --up: #c62f2f;        /* 상승: 빨강 */
  --down: #1c5cab;      /* 하락: 파랑 */
  --low: #2a78d6;       /* 과매도 */
  --high: #e34948;      /* 과열 */
  --neutral: #8a8e96;
  --low-tint: #eef4fc;
  --high-tint: #fcefee;
}

@page { size: A4; margin: 0; }
* { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Pretendard", "Noto Sans KR", "Noto Sans CJK KR", "Malgun Gothic", sans-serif;
  font-size: 10pt;
  line-height: 1.5;
  color: var(--ink);
  word-break: keep-all;
}
/* 숫자를 세로로 맞춰야 하는 곳에는 숫자 너비가 모두 같은 글꼴을 쓴다. */
table, .card dd, .chart-card .meta, .chart text, .page-foot {
  font-family: "Report Sans Tabular", "Pretendard", "Noto Sans KR", "Noto Sans CJK KR", "Malgun Gothic", sans-serif;
}
.page { position: relative; width: 210mm; height: 296.8mm; padding: 14mm 14mm 0; overflow: hidden; background: #fff; break-after: page; }
.page:last-child { break-after: auto; }
.up { color: var(--up); }
.down { color: var(--down); }

.page-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5mm; padding-bottom: 2.5mm; border-bottom: .3mm solid var(--ink); }
.page-head h1 { margin: 0; font-size: 16pt; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.page-head span { font-size: 8.5pt; color: var(--muted); }
.page-foot { position: absolute; left: 14mm; right: 14mm; bottom: 8mm; display: flex; justify-content: space-between; font-size: 8pt; color: var(--muted); }

/* ---------- 상태 표시 ---------- */
.chip { display: inline-block; padding: 0 2.2mm; border-radius: 3mm; font-size: 8pt; font-weight: 700; line-height: 1.7; background: #eceef1; color: var(--ink-soft); }
.chip.low { background: var(--down); color: #fff; }
.chip.high { background: var(--up); color: #fff; }

/* 백분위 눈금 (0~100) */
.strip { position: relative; height: 3.6mm; margin: 0 2mm; }
.strip::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: .25mm; background: var(--line); }
.strip .zone { position: absolute; top: 14%; bottom: 14%; width: 5%; }
.strip .zone.low { left: 0; background: #b7d3f6; }
.strip .zone.high { right: 0; background: #f3c1c1; }
.strip .dot { position: absolute; top: 50%; width: 3.3mm; height: 3.3mm; border: .5mm solid #fff; border-radius: 50%; transform: translate(-50%, -50%); background: var(--neutral); }
.strip .dot.low { background: var(--low); }
.strip .dot.high { background: var(--high); }
tr.low .strip .dot { border-color: var(--low-tint); }
tr.high .strip .dot { border-color: var(--high-tint); }

/* ---------- 등급 ---------- */
.grade { display: inline-block; padding: 0 2.2mm; border-radius: 1.2mm; font-size: 8.5pt; font-weight: 700; line-height: 1.75; white-space: nowrap; }
.grade.strong { background: var(--up); color: #fff; }
.grade.buy { background: var(--high-tint); color: var(--up); box-shadow: inset 0 0 0 .25mm #f0c4c1; }
.grade.watch { background: #eceef1; color: var(--ink-soft); }
.grade-boxes { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 3mm; }
.grade-boxes.two { grid-template-columns: 1fr 1fr; column-gap: 5mm; }
.grade.trend { background: #e3f3ec; color: #0d6e52; box-shadow: inset 0 0 0 .25mm #b9e0cf; }
.grade-box.trend { border-color: #b9e0cf; }
.grade-box { padding: 3mm 3.5mm 2.2mm; border: .25mm solid var(--hairline); border-radius: 2.2mm; }
.grade-box.strong { border-color: #ecb3b0; }
.grade-box .top { display: flex; justify-content: space-between; align-items: center; }
.grade-box .count { font-size: 15pt; font-weight: 700; line-height: 1.2; }
.grade-box .rule-text { margin-top: 1.5mm; font-size: 8.5pt; font-weight: 600; color: var(--ink-soft); line-height: 1.4; }
.grade-box .past { margin-bottom: 1.5mm; padding-bottom: 1.5mm; border-bottom: .2mm solid var(--line); font-size: 8pt; color: var(--muted); line-height: 1.5; }
.grade-box p { margin: 0 0 .8mm; font-size: 9pt; line-height: 1.5; }
.grade-box p b { margin-right: 1mm; font-size: 8pt; font-weight: 600; color: var(--muted); }
.caution { margin: 3mm 0 0; padding: 2mm 3.5mm; border-left: .8mm solid #e0a100; background: #fff8e6; font-size: 9pt; line-height: 1.55; }
ul.limits { margin: 2.5mm 0 0; padding-left: 4.5mm; font-size: 8.5pt; color: var(--ink-soft); line-height: 1.6; }
h2.view { margin: 0 0 2mm; font-size: 14pt; font-weight: 700; color: var(--accent); line-height: 1.3; }
.sub .grade { vertical-align: 1px; }

/* ---------- 종목 상세 ---------- */
.detail-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1mm; }
.detail-head h2 { margin: 0; font-size: 16pt; font-weight: 700; line-height: 1.3; }
.detail-head h2 .grade { vertical-align: 3px; margin-left: 1.5mm; }
.detail-head span { font-size: 8.5pt; color: var(--muted); }
.detail-grid { display: grid; grid-template-columns: 46% 1fr; column-gap: 7mm; margin: 3mm 0 2mm; align-items: start; }
h3.detail { margin: 0 0 1.5mm; font-size: 10.5pt; font-weight: 700; line-height: 1.4; }
h3.detail small { margin-left: 2mm; font-size: 8pt; font-weight: 400; color: var(--muted); }
ul.facts { margin: 0; padding-left: 4.5mm; font-size: 8.8pt; line-height: 1.55; color: var(--ink); }
ul.facts li { margin-bottom: 1mm; }
ul.facts b { color: var(--ink); font-weight: 600; }
.data tr.now td { background: #fff8e6; font-weight: 700; }
.data tr.support td:first-child { color: var(--low); font-weight: 600; }
.data tr.resist td:first-child { color: var(--high); font-weight: 600; }
ul.facts li.muted { margin-top: 2mm; color: var(--muted); font-size: 8.3pt; }
.data tr.buy td:first-child { color: var(--up); font-weight: 600; }
.data tr.sell td:first-child { color: var(--down); font-weight: 600; }
.data tr.stop td { background: #f6f7f9; }
.data tr.stop td:first-child { font-weight: 700; }
.steps { display: grid; grid-template-columns: repeat(5, 1fr); column-gap: 2mm; margin-top: 1.5mm; }
.steps .step { padding: 1.6mm 2mm; border-top: .6mm solid var(--neutral); background: #f6f7f9; font-size: 8pt; line-height: 1.4; }
.steps .step b { display: block; font-size: 8.5pt; }
.steps .step .price { display: block; font-size: 10pt; font-weight: 700; color: var(--ink); }
.steps .step small { display: block; margin-top: .5mm; color: var(--muted); font-size: 7.3pt; }
.steps .buy { border-top-color: var(--up); } .steps .buy b { color: var(--up); }
.steps .sell { border-top-color: var(--down); } .steps .sell b { color: var(--down); }
.steps .stop { border-top-color: var(--ink); }
.data td small { color: var(--muted); font-size: 7.5pt; }
.strategy { margin: 2.5mm 0 0; padding: 2mm 3.5mm; background: #f6f7f9; border-radius: 1.5mm; font-size: 8.8pt; line-height: 1.6; }

/* ---------- 첫 쪽: 요약 ---------- */
.masthead { margin-bottom: 4.5mm; padding-bottom: 3.5mm; border-bottom: .3mm solid var(--ink); }
.overline { font-size: 8pt; font-weight: 700; letter-spacing: .16em; color: var(--accent); line-height: 1.4; }
.masthead h1 { margin: 1mm 0 1.5mm; font-size: 24pt; font-weight: 800; letter-spacing: -.02em; line-height: 1.25; }
.masthead h1 span { margin-left: 2.5mm; font-size: 11pt; font-weight: 500; letter-spacing: 0; color: var(--muted); }
.masthead p { margin: 0; font-size: 11.5pt; font-weight: 500; color: var(--ink-soft); line-height: 1.4; }

.block { margin-bottom: 5.5mm; }
.block-head { display: flex; align-items: baseline; gap: 3mm; margin-bottom: 2.5mm; }
.block-head h2 { margin: 0; font-size: 12.5pt; font-weight: 700; line-height: 1.3; }
.block-head span { font-size: 8.5pt; color: var(--muted); }

.cards { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 3.5mm; }
.card { padding: 3.2mm 4mm 2.8mm; border: .25mm solid var(--hairline); border-radius: 2.2mm; }
.card.low { background: var(--low-tint); border-color: #cddff7; }
.card.high { background: var(--high-tint); border-color: #f4d0cd; }
.card .top { display: flex; justify-content: space-between; align-items: center; }
.card .name { font-size: 10pt; font-weight: 600; color: var(--ink-soft); }
.card .value { font-size: 18pt; font-weight: 700; letter-spacing: -.02em; line-height: 1.4; }
.card .delta { font-size: 10pt; font-weight: 600; line-height: 1.3; }
.card dl { display: grid; grid-template-columns: 1fr auto; row-gap: .5mm; margin: 2.2mm 0 0; padding-top: 2mm; border-top: .2mm solid var(--line); font-size: 8.5pt; line-height: 1.4; }
.card .trend { margin-top: 1.6mm; padding-top: 1.4mm; border-top: .2mm solid var(--line); font-size: 8.5pt; font-weight: 600; color: var(--ink-soft); line-height: 1.4; }
.card dt { color: var(--muted); }
.card dd { margin: 0; text-align: right; font-weight: 600; }

.stats { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 3.5mm; margin-top: 3mm; }
.stat { padding: 0 4mm; }
.stat .label { font-size: 8.5pt; color: var(--muted); line-height: 1.4; }
.stat .value { font-size: 12pt; font-weight: 700; line-height: 1.4; }
.stat .value small { margin-left: 1.5mm; font-size: 8.5pt; font-weight: 400; color: var(--muted); }

.two-col { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8mm; align-items: start; }
.rank { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 9pt; }
.rank th { padding: 0 1.2mm 1.2mm; font-size: 8.5pt; font-weight: 600; color: var(--muted); text-align: right; line-height: 1.3; border-bottom: .25mm solid var(--line); }
.rank th:first-child, .rank th.t { text-align: left; }
.rank td { padding: .15mm 1.2mm; text-align: right; border-bottom: .2mm solid var(--hairline); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rank td:first-child, .rank td.t { text-align: left; }
.rank td.t { color: var(--ink-soft); }
.rank td.b { font-weight: 700; }
.rank tr.low td { background: var(--low-tint); }
.rank tr.high td { background: var(--high-tint); }
.rank small { margin-left: 1mm; font-size: 7.5pt; color: var(--muted); }

/* ---------- 본문 쪽 ---------- */
.intro { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 3mm; }
.intro p { margin: 0; font-size: 11pt; font-weight: 600; line-height: 1.4; }
.sub { margin: 0 0 2mm; font-size: 12pt; font-weight: 700; line-height: 1.4; }
.sub small { margin-left: 2.5mm; font-size: 8.5pt; font-weight: 400; color: var(--muted); }
.gap { height: 6mm; }

.data { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 9pt; }
.data th { padding: 1.2mm 1.4mm; font-size: 8pt; font-weight: 600; color: var(--muted); text-align: right; vertical-align: bottom; line-height: 1.25; border-bottom: .3mm solid var(--ink); }
.data td { padding: 1mm 1.4mm; text-align: right; border-bottom: .2mm solid var(--hairline); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.data .t { text-align: left; }
.data td.b { font-weight: 700; }
.data td.wrap { white-space: normal; }
.data td.t { white-space: normal; overflow-wrap: anywhere; }
.data td { text-overflow: clip; overflow: visible; }
.rank td { text-overflow: clip; }
.data td.g { font-weight: 600; }
.data th.h { font-size: 9.5pt; color: var(--ink); }
.data th.h .chip { margin-left: 1mm; }
.data tr.cut td { border-bottom-color: var(--line); }
.data tr.grp td { padding-top: 1.3mm; font-weight: 700; background: #f3f4f6; border-bottom-color: var(--line); }
/* 칸 색: 파랑은 과매도 기준, 빨강은 과열 기준, 초록은 반전 신호가 켜진 것 */
.data td.lo { background: var(--low-tint); font-weight: 600; }
.data td.hi { background: var(--high-tint); font-weight: 600; }
.data td.ok { background: #e6f4e7; font-weight: 600; }
.rule { display: inline-block; margin-left: 1.5mm; padding: 0 1.6mm; border-radius: 1mm; font-size: 7.5pt; font-weight: 700; line-height: 1.6; vertical-align: 1px; }
.rule.buy { background: var(--high-tint); color: var(--up); }
.rule.sell { background: var(--low-tint); color: var(--down); }
.howto { margin: 0 0 5mm; padding-left: 3mm; border-left: .6mm solid var(--line); font-size: 9pt; color: var(--ink-soft); line-height: 1.6; }
.howto b { color: var(--ink); font-weight: 600; }
.wave-grid { display: grid; grid-template-columns: 58% 1fr; column-gap: 8mm; align-items: start; margin-top: 3mm; }
.view-slot { margin-top: 5mm; padding: 2.5mm 4mm; border: .25mm dashed var(--line); border-radius: 2mm; font-size: 9pt; color: var(--muted); line-height: 1.6; }
.view-slot.filled { border-style: solid; color: var(--ink); }
.view-slot b { display: block; }
.data tr.low td { background: var(--low-tint); }
.data tr.high td { background: var(--high-tint); }
.data small { margin-left: 1.2mm; font-size: 7.5pt; font-weight: 400; color: var(--muted); }
.scale { display: flex; justify-content: space-between; padding: 0 1.2mm; font-weight: 400; }
.foot-note { margin-top: 1.2mm; font-size: 8pt; color: var(--muted); line-height: 1.4; }
.empty { padding: 3mm 1.4mm; font-size: 9.5pt; color: var(--muted); border-top: .3mm solid var(--ink); border-bottom: .2mm solid var(--hairline); }

.legend { display: flex; flex-wrap: wrap; column-gap: 4mm; font-size: 8pt; color: var(--ink-soft); line-height: 1.5; }
.legend i.line { display: inline-block; width: 4.5mm; height: .55mm; margin-right: 1.2mm; border-radius: .3mm; vertical-align: middle; }
.legend i.box { display: inline-block; width: 3mm; height: 2.2mm; margin-right: 1.2mm; border: .2mm solid; vertical-align: middle; }

.chart-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8mm; }
.chart-card { padding-top: 1.5mm; border-top: .3mm solid var(--ink); }
.chart-card h3 { display: flex; justify-content: space-between; align-items: baseline; margin: 0; font-size: 10.5pt; font-weight: 700; line-height: 1.35; }
.chart-card h3 small { font-size: 8.5pt; font-weight: 500; color: var(--muted); }
.chart-card .meta { margin: 0 0 1mm; font-size: 8pt; color: var(--ink-soft); line-height: 1.5; }
.chart { display: block; }

.notes { font-size: 9.5pt; color: var(--ink-soft); line-height: 1.9; }
.notes b { display: block; margin: 4mm 0 1mm; font-size: 11pt; color: var(--ink); }
.notes code { font-family: inherit; font-weight: 600; }
.notes ul { margin: 0; padding-left: 4.5mm; }

ul.facts.two { columns: 2; column-gap: 8mm; }
ul.facts.two li { break-inside: avoid; }
.board-grid { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 5mm; row-gap: 3mm; }
.board-grid .chart-card h3 { font-size: 9.5pt; }
.chip.deep { background: var(--low); color: #fff; }
.chip.dip { background: var(--low-tint); color: var(--low); }
small.tag { margin-left: 1.5mm; padding: 0 1.2mm; border-radius: 1mm; background: #eef0f3; color: var(--ink-soft); font-size: 7.3pt; font-weight: 600; }
.regime { margin: 2.5mm 0 0; padding: 2mm 3.5mm; background: #f6f7f9; border-radius: 1.5mm; font-size: 8.8pt; line-height: 1.6; color: var(--ink); }
.regime b { color: var(--ink); margin-right: 1.5mm; }

/* ---------- 관심 종목 상세 (10-22) ---------- */
h3.detail.spaced { margin-top: 3.5mm; }
ul.facts.spaced { margin-top: 2mm; }
.detail-grid.watch { grid-template-columns: 1fr 1fr; margin: 2mm 0 0; }
h4.point { margin: 2mm 0 1mm; font-size: 9pt; font-weight: 700; }
h4.point small { margin-left: 2mm; font-size: 7.6pt; font-weight: 400; color: var(--muted); }
table.kv { width: 100%; border-collapse: collapse; font-size: 8.4pt; line-height: 1.4; }
table.kv th { width: 19%; padding: 0.7mm 2mm 0.7mm 0; text-align: left; vertical-align: top; font-weight: 600; color: var(--muted); white-space: nowrap; }
table.kv td { padding: 0.7mm 0; color: var(--ink); border-bottom: 1px solid #eef0f3; }
table.kv tr:last-child td { border-bottom: 0; }
table.kv .down { color: var(--down); }
table.kv .warn { color: #c77700; }
table.fin { font-size: 8.4pt; }
table.fin td { padding: 0.6mm 1.4mm; }
table.fin th { padding: 0.8mm 1.4mm; }
table.fin .sub, ul.facts .sub { font-size: 7.4pt; color: var(--muted); font-weight: 400; }

/* 관심 종목 2쪽 기업 분석 (10-22) */
.detail-head h2 .sub-title { margin-left: 2mm; font-size: 11pt; font-weight: 500; color: var(--muted); }
.metrics { display: grid; grid-template-columns: repeat(5, 1fr); margin: 1mm 0 3mm; border-bottom: .2mm solid #e3e6eb; }  /* 10-26: 위쪽 굵은 줄 삭제(머리 줄과 겹침) */
.metrics div { padding: 2mm 2mm 2mm 0; }
.metrics small { display: block; font-size: 7.6pt; color: var(--muted); }
.metrics b { font-size: 11pt; font-weight: 700; color: var(--ink); }
.mix-bar { display: flex; height: 4mm; margin: 1mm 0 1.5mm; border-radius: .8mm; overflow: hidden; }
.mix-bar span { display: block; height: 100%; }
ul.mix-keys { margin: 0; padding: 0; list-style: none; font-size: 8.2pt; line-height: 1.6; color: var(--ink-soft); }
ul.mix-keys li { display: inline-block; margin-right: 3mm; }
ul.mix-keys i { display: inline-block; width: 2.4mm; height: 2.4mm; margin-right: 1mm; border-radius: .4mm; vertical-align: -.2mm; }
.vc { display: grid; grid-template-columns: 1fr 6mm 1fr 6mm 1fr; align-items: stretch; margin: 1mm 0 1mm; }
.vc-box { padding: 2mm 2.5mm; border: .25mm solid #cfd5de; border-radius: 1.2mm; font-size: 8.6pt; line-height: 1.45; color: var(--ink); background: #fafbfc; }
.vc-box small { display: block; margin-bottom: .6mm; font-size: 7.6pt; font-weight: 600; color: var(--muted); }
.vc-box.me { border-color: var(--ink); background: #fff8e6; }
.vc-box.me small { color: var(--ink); }
.vc-arrow { display: flex; align-items: center; justify-content: center; font-size: 12pt; color: var(--muted); }

.reason { margin: 0 0 3mm; padding: 2mm 3mm 1.5mm; background: #fff8e6; border-left: .8mm solid #e0a400; }
.reason h3 { margin: 0 0 .8mm; font-size: 10pt; font-weight: 700; }
.reason table.kv th { width: 16%; }
.reason table.kv td { border-bottom-color: #f3e6c4; }
table.kv.customers th { width: 34%; color: var(--ink); white-space: normal; }
.data tr.est td { color: var(--down); font-style: italic; }
table.kv .share { margin-left: 1.5mm; font-size: 8.2pt; font-weight: 700; color: var(--down); }
.detail-grid.broker > div { padding: 1.5mm 2.5mm; border-left: .6mm solid #cfd5de; background: #fafbfc; }
p.broker-head { margin: 0; font-size: 8.8pt; color: var(--ink); }
p.broker-title { margin: .3mm 0 .8mm; font-size: 8pt; color: var(--muted); }
.detail-grid.broker ul.facts { font-size: 8.4pt; line-height: 1.45; }
.plan-strip { display: grid; grid-template-columns: 1.4fr 1.4fr 1fr 1fr; margin: 0 0 1.5mm; border-top: .3mm solid var(--ink); border-bottom: .2mm solid #e3e6eb; }
.plan-strip div { padding: 1.5mm 2mm 1.5mm 0; font-size: 9pt; color: var(--ink); }
.plan-strip small { display: block; font-size: 7.6pt; color: var(--muted); }
.plan-strip .down { color: var(--down); }
.plan-strip .warn { color: #c77700; }
p.plan-rule { margin: 1mm 0 0; font-size: 8.4pt; line-height: 1.5; color: var(--ink); }

/* 1쪽 시장 신호 카드 (10-23) */
.cards.market { grid-template-columns: 1.3fr 1.3fr 1fr 1fr; }
.card.signal .top .name { font-size: 10pt; color: var(--ink); }
.card.signal .top .name b { margin-left: 1mm; font-weight: 700; }
.card.signal .delta { display: inline; font-size: 8.5pt; }
.card.signal .phase { font-size: 8.8pt; font-weight: 700; }
.card.signal .exposure { margin: 2mm 0 0; padding: 1.6mm 0 1.2mm; border-radius: 1.5mm; text-align: center; }
.card.signal .exposure b { display: block; font-size: 17pt; line-height: 1.2; }
.card.signal .exposure small { font-size: 7.6pt; color: var(--ink); }
.card.signal dt small { color: var(--muted); font-size: 7pt; }
.card.signal .warn { color: #c77700; }
.card.signal.ok .phase, .card.signal.ok .exposure b { color: #1a8a4a; }
.card.signal.ok .exposure { background: #e6f5ec; border: .25mm solid #b7e2c7; }
.card.signal.warn .phase, .card.signal.warn .exposure b { color: #c77700; }
.card.signal.warn .exposure { background: #fff5e0; border: .25mm solid #f0d49a; }
.card.signal.bad .phase, .card.signal.bad .exposure b { color: #d23b3b; }
.card.signal.bad .exposure { background: #fdeaea; border: .25mm solid #f2b9b6; }
.signal-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 4mm; }
.card.signal .top { padding-bottom: 1.5mm; border-bottom: .2mm solid var(--line); }
.sig-body { display: grid; grid-template-columns: 30% 1fr; column-gap: 4mm; align-items: start; margin-top: 2mm; }
.sig-body .exposure { margin: 0 !important; padding: 3mm 0 2.5mm !important; }
.sig-body dl { margin: 0; padding: 0; border: 0; row-gap: .3mm; }
.regime small { color: var(--muted); font-size: 8pt; }
.card.signal .exposure b { font-size: 15pt; white-space: nowrap; }
.sig-body { grid-template-columns: 32% 1fr; }
.regime .alert { color: #d23b3b; font-weight: 700; }
.reason.one { padding: 2.2mm 3mm; font-size: 9pt; line-height: 1.5; color: var(--ink); }
.reason.one .label { margin-right: 2.5mm; font-size: 9.5pt; }
.data tr.need td { background: #f6f7f9; font-weight: 600; }
.data tr.need td small { font-weight: 400; color: var(--muted); font-size: 7pt; }
.dupont-minis { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 4mm; }
.dupont-minis > div { border-top: .25mm solid var(--line); padding-top: 1mm; }
.data td.sub-c { color: var(--muted); font-size: 7.8pt; }
.data tr.verdict td { padding-top: .6mm; padding-bottom: 1.2mm; font-size: 8.4pt; color: var(--ink); border-bottom: .3mm solid #d9dde3; }
.data tr.verdict b.up { color: #d23b3b; } .data tr.verdict b.down { color: #2a64b8; }

/* 10-26 관심 이유 칸·재무 분석 */
.reason.box { padding: 2mm 3mm 1.6mm; }
.reason.box h3 { margin: 0 0 1.2mm; font-size: 10pt; }
.reason.box h3 small { margin-left: 2mm; font-size: 7.6pt; font-weight: 400; color: var(--muted); }
.reason-cells { display: grid; grid-template-columns: repeat(6, 1fr); border-bottom: .2mm solid #f0dfb3; padding-bottom: 1.2mm; }
.reason-cells small { display: block; font-size: 7.4pt; color: var(--muted); }
.reason-cells b { font-size: 9.6pt; } .reason-cells b small { display: inline; font-weight: 400; font-size: 7.6pt; }
ul.reason-sum { margin-top: 1.4mm; font-size: 8.6pt; line-height: 1.5; }
.dual-legend { display: flex; flex-wrap: wrap; gap: 1.5mm 4mm; margin: .5mm 0 0 10mm; font-size: 7.8pt; color: var(--ink); }
.dual-legend i { display: inline-block; width: 2.6mm; height: 2.6mm; margin-right: 1mm; vertical-align: -.3mm; border-radius: .4mm; }
.dual-legend i.ln { width: 4mm; height: 0; border-top: .6mm solid; border-radius: 0; vertical-align: .6mm; background: none !important; }
.dual-legend i.ln.dash { border-top-style: dashed; }
p.fin-now { margin: .5mm 0 1mm; font-size: 8.4pt; color: var(--ink); }
p.fin-fund { margin: 1.2mm 0 0; font-size: 8pt; line-height: 1.45; color: var(--ink); }
.chip, .grade { white-space: nowrap; }
