:root{
  --navy:#123d4c;--navy-dk:#0b2a35;--teal:#16938a;--teal-lt:#1fb3a6;
  --term:#0a0d12;--term-2:#121722;--term-line:#1e2635;
  --paper:#ffffff;--soft:#f3f5f6;--card:#fafbfb;
  --ink:#11151a;--fg:#1d2126;--dim:#646c75;--line:#d9dee2;--rule:#11151a;
  --up:#d92b2b;--down:#1a5fd0;--flat:#8a939c;
  --up-t:#ff6b6b;--down-t:#6aa8ff;
  --gold:#8a6a00;--gold-bg:#fdf6de;--gold-line:#e6d79f;
  --sans:"Inter","Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",-apple-system,sans-serif;
  --mono:"JetBrains Mono","SF Mono",Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--fg);font-family:var(--sans);
     line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.wrap{max-width:1680px;margin:0 auto;padding:0 40px}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--flat)}

/* ── 제호 ── */
.util{background:var(--navy-dk);color:#b7cdd4}
.util .wrap{max-width:1680px;margin:0 auto;display:flex;justify-content:space-between;
            gap:14px;font-size:11.5px;padding:6px 40px}
.util .mono{font-family:var(--mono);font-size:10.5px}
.mast{background:var(--navy);color:#fff}
.mast .wrap{max-width:1680px;margin:0 auto;display:flex;align-items:flex-end;
            gap:20px;padding:15px 40px 13px}
/* 제호 — 로고 그림. 글자 제호를 대신한다 */
.title{line-height:0;display:block;flex:none}
.title img{display:block;height:66px;width:auto}
@media(max-width:1180px){.title img{height:56px}}
@media(max-width:700px){.title img{height:44px}}
.mast .desc{border-left:1px solid rgba(255,255,255,.24);padding-left:20px;
            font-size:12.5px;color:#cadde3;line-height:1.7}
.mast .desc b{display:block;color:#fff;font-size:13.5px;font-weight:700}
.mast .edition{margin-left:auto;text-align:right;font-size:15px;color:#cadde3;
               line-height:1.5}
.mast .edition b{display:block;font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;
                 color:var(--teal-lt);font-weight:700;margin-bottom:4px}
nav.sec{background:var(--navy);border-bottom:4px solid var(--navy-dk)}
nav.sec .wrap{display:flex;overflow-x:auto}
nav.sec a{padding:9px 15px 10px;font-size:14.5px;font-weight:700;color:#c6dae0;
          white-space:nowrap;border-bottom:3px solid transparent}
nav.sec a:first-child{padding-left:0}
/* 발행 시각 — 메뉴와 같은 줄 오른쪽 끝 */
nav.sec .navpub{margin-left:auto;align-self:center;font-family:var(--mono);
    font-size:12px;color:#b7cdd4;white-space:nowrap;padding-left:18px}
@media(max-width:900px){nav.sec .navpub{display:none}}
nav.sec a:hover{color:#fff}
nav.sec a.on{color:#fff;border-bottom-color:var(--teal-lt)}
nav.sec a.split{margin-left:auto;padding-left:15px;border-left:1px solid rgba(255,255,255,.2);color:#d9c79a}

/* ── 터미널 ── */
.term{background:#000;color:#e8e8e8;border-bottom:3px solid #1c1c1c;font-size:15px}
.tape{position:relative;display:flex;align-items:center;height:42px;max-width:1680px;margin:0 auto;
      border-bottom:1px solid #1c1c1c;overflow:hidden;background:#000}
.tape .live{display:flex;align-items:center;gap:7px;color:#ff3b3b;font-size:12px;
            font-family:var(--mono);font-weight:700;letter-spacing:1px;
            padding:0 16px 0 40px;flex:none;z-index:2;background:#000;
            box-shadow:12px 0 14px -6px #000}
.tape .twrap{flex:1;min-width:0;overflow:hidden}
.tape .track{display:flex;width:max-content;animation:marquee 66s linear infinite}
.tape:hover .track{animation-play-state:paused}
.tape .lane{display:flex}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tape .track{animation:none}.tape{overflow-x:auto}}
.tape .tk{display:flex;align-items:baseline;gap:9px;padding:0 17px;white-space:nowrap;
          border-right:1px solid #1c1c1c}
.tape .lb{color:#c0c0c0;font-size:12px;font-weight:700;letter-spacing:.6px}
.tape .vl{font-family:var(--mono);font-weight:700;font-size:17px;color:#fff;letter-spacing:-.3px}
.tape .up,.tape .down,.tape .flat{font-family:var(--mono);font-size:12px;font-weight:700}
.dot{width:7px;height:7px;border-radius:50%;background:#ff3b3b;
     box-shadow:0 0 8px #ff3b3b;animation:blink 2s infinite}
@keyframes blink{50%{opacity:.3}}
.term .up{color:#ff3b3b}.term .down{color:#1aff66}.term .flat{color:#a8a8a8}

.tgrid{max-width:1680px;margin:0 auto;display:grid;
       grid-template-columns:minmax(300px,1fr) minmax(280px,.88fr) minmax(400px,1.42fr) minmax(300px,1fr);
       gap:0;padding:14px 40px 16px;align-items:stretch}
.pan{min-width:0;padding:0 24px}
.pan:first-child{padding-left:0}
.pan:last-child{padding-right:0}
.pan+.pan{border-left:1px solid #1c1c1c}
.tgrid .ph{font-family:var(--mono);font-size:11px;letter-spacing:1px;color:#e8c078;
           font-weight:700;margin-bottom:10px;display:flex;gap:9px;align-items:baseline}
.tgrid .ph span{color:#a8a8a8;letter-spacing:.3px;font-size:11px;font-weight:400}
.tgrid .foot{margin-top:9px;font-size:11px;color:#a8a8a8}

/* 지수 — 2열 */
.igrid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.ir{display:flex;align-items:baseline;gap:8px;padding:5px 0;min-width:0}
.ir .nm{color:#c0c0c0;font-size:12px;font-weight:700;letter-spacing:.4px;
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ir .pv{margin-left:auto;font-family:var(--mono);font-size:15px;font-weight:700;
        color:#fff;letter-spacing:-.3px;white-space:nowrap}
.ir .up,.ir .down,.ir .flat{font-family:var(--mono);font-size:11.5px;font-weight:700;
     min-width:56px;text-align:right}
.ir .as{font-family:var(--mono);font-size:10px;color:#a8a8a8;min-width:34px;text-align:right}

/* 원자재 펄스 */
.big{margin-bottom:12px}
.big .row{display:flex;align-items:baseline;padding:4px 0}
.big .row span{font-size:12.5px;color:#c0c0c0;font-weight:700;letter-spacing:.4px}
.big .row b{margin-left:auto;font-family:var(--mono);font-size:23px;font-weight:700;line-height:1.15}
.big .u b{color:#ff3b3b}.big .d b{color:#1aff66}
.big .f b{color:#e8e8e8}.big .t b{color:#fff}
.movers{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.mh{font-family:var(--mono);font-size:11px;font-weight:700;margin-bottom:6px;letter-spacing:.4px}
.movers ul{list-style:none;margin:0;padding:0}
.movers li{display:flex;gap:8px;align-items:baseline;padding:3px 0;font-size:12px;min-width:0}
.movers li span{color:#e8e8e8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.movers li b{margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:700}

/* 오늘의 등락 */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.cellx{display:flex;align-items:baseline;gap:7px;padding:4px 8px;background:#141414;
       border:1px solid #1c1c1c;min-width:0}
.cellx b{flex:1;min-width:0;font-size:12px;font-weight:700;color:#fff;
         overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.2px}
.cellx span{flex:none;font-family:var(--mono);font-size:11.5px;color:#fff;font-weight:700}
.cellx.u1{background:#3d1214}.cellx.u2{background:#68171a}.cellx.u3{background:#9c1f23}
.cellx.d1{background:#0f2647}.cellx.d2{background:#153567}.cellx.d3{background:#1a4694}
.sub2{margin-top:9px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.ph2{grid-column:1/-1;font-family:var(--mono);font-size:11px;letter-spacing:1px;
     color:#e8c078;font-weight:700;margin-bottom:4px}
.sr{display:flex;align-items:baseline;gap:8px;padding:2px 0;font-size:11.5px;min-width:0}
.sr .lb{color:#e8e8e8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr .n{margin-left:auto;font-family:var(--mono);font-size:10px;color:#a8a8a8}
.sr .up,.sr .down,.sr .flat,.sr .mono{font-family:var(--mono);font-size:11.5px;font-weight:700;
    min-width:56px;text-align:right;color:#e8e8e8}
.sr .mono i{font-style:normal}
.legend{margin-top:7px;font-size:10.5px;color:#a8a8a8}

@media(max-width:1480px){.tgrid{grid-template-columns:1fr 1fr}}
@media(max-width:1200px){.tgrid{grid-template-columns:1fr 1fr}
  .pan:nth-child(3){grid-column:1/-1;border-left:0;padding:14px 0 0;margin-top:12px;
                    border-top:1px solid #1c1c1c}}
@media(max-width:820px){.tgrid{grid-template-columns:1fr}
  .pan+.pan{border-left:0;border-top:1px solid #1c1c1c;padding:12px 0 0;margin-top:10px}
  .grid{grid-template-columns:repeat(2,1fr)}}

main{padding:22px 0 10px}

/* ── 1면 3단 ── */
.front3{display:grid;grid-template-columns:minmax(270px,21%) minmax(0,1fr) minmax(350px,27%);
        gap:0 30px;padding-bottom:22px;border-bottom:3px solid var(--rule)}
.colL{border-right:1px solid var(--line);padding-right:30px}
/* 섹션 지면의 추가 묶음 */
.secmore{margin-top:30px;padding-top:22px;border-top:3px solid var(--rule)}
.secmore .lh{margin-bottom:14px}
.secmore .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0 26px}
@media(max-width:900px){.secmore .cards{grid-template-columns:1fr}}
.colR{border-left:1px solid var(--line);padding-left:30px}
.lh{font-size:14.5px;letter-spacing:-.3px;color:var(--ink);font-weight:800;
    padding-bottom:8px;margin-bottom:11px;border-bottom:2px solid var(--rule)}
.latest{list-style:none;margin:0 0 18px;padding:0}
.latest li{border-bottom:1px solid var(--line)}
.latest li.none{padding:8px 0;font-size:12.5px;color:var(--dim)}
.latest a{display:block;padding:7px 0}
.latest .s{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:700;
           letter-spacing:.06em;color:#fff;background:var(--navy);padding:1px 5px;margin-bottom:4px}
.latest b{display:block;font-size:16px;font-weight:700;line-height:1.44;letter-spacing:-.4px}
.latest .d{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
            font-size:14.5px;color:var(--dim);line-height:1.6;margin:4px 0 5px}
.latest .t{font-family:var(--mono);font-size:10px;color:var(--dim)}
.card .sm{font-size:14.5px;color:#3a4048;line-height:1.6;margin:0 0 7px;font-weight:500}
.card .ex{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
          font-size:14.5px;color:var(--dim);line-height:1.68;margin:0 0 8px;
          padding-top:8px;border-top:1px solid var(--line)}
.colR .readon{margin-top:0;border-top:0;padding-top:0}
.colR .card{padding-bottom:15px;margin-bottom:15px}
.latest a:hover b{color:var(--navy-lt,#1a6b85)}

.brief{border:1px solid var(--line);background:var(--card)}
.brief .bh{font-family:var(--mono);font-size:10px;letter-spacing:.12em;font-weight:700;
           color:#fff;background:var(--navy);padding:6px 10px}
.bl{display:flex;align-items:baseline;gap:8px;padding:7px 11px;border-bottom:1px solid var(--line);
    font-size:13px}
.bl:last-child{border-bottom:0}
.bl span{color:var(--dim)}
.bl .v{margin-left:auto;font-family:var(--mono);font-weight:700;font-size:12.5px;color:var(--ink)}
.bl .up,.bl .down,.bl .flat{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:700}
.bl .v+.up,.bl .v+.down,.bl .v+.flat{margin-left:8px}

.kick{font-size:14.5px;font-weight:800;letter-spacing:-.3px;
      color:var(--navy);margin-bottom:11px}
.lead h1{font-size:42px;line-height:1.14;letter-spacing:-2.1px;margin:0 0 14px;font-weight:900;color:var(--ink)}
.lead .sf{font-size:17.5px;color:#3a4048;line-height:1.62;margin:0 0 15px}
.by{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--dim);flex-wrap:wrap;margin-top:13px}
.bn{font-weight:800;color:var(--ink);font-size:13px}
.aitag{font-family:var(--mono);font-size:9.5px;font-weight:700;color:#fff;background:var(--navy);padding:3px 7px}
.gd{font-family:var(--mono);font-size:9.5px;font-weight:700;background:var(--teal);color:#fff;padding:3px 7px}
/* 갈래 배지 — 분석은 붉은 테두리, 집중분석은 붉은 바탕 */
.edition .pub{display:block;margin-top:2px;font-family:var(--mono);font-size:10px;
               font-weight:400;color:var(--sub);letter-spacing:0}
.kd{display:inline-block;font-size:10px;font-weight:700;padding:2px 6px;margin-right:6px;
    border:1.5px solid #d42a2a;color:#d42a2a;letter-spacing:-.2px;vertical-align:middle}
.kd.ft{background:#d42a2a;border-color:#d42a2a;color:#fff;font-weight:800;letter-spacing:.04em}
.kd.sb{border-color:#d42a2a;color:#d42a2a;font-weight:800}
.kd.an{background:#d42a2a;color:#fff;font-weight:800}
figure.art{margin:24px 0;padding:0}
figure.art svg{display:block;width:100%;height:auto;background:#fff;border:1px solid var(--line)}
figure.art figcaption{margin-top:8px;font-size:13px;color:var(--sub);line-height:1.6}
.kd.dt{border-color:#b08a2e;color:#8a6a00}
.list li .kd,.latest .kd{font-size:9.5px;padding:1px 5px}
.srcbox{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--teal);
        padding:10px 13px;font-size:12px;color:#49505a;line-height:1.66}
.srcbox b{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--navy);margin-right:5px}
.srcbox.big{margin:0 0 22px}
.srcbox ul{margin:4px 0 0;padding-left:16px}
.srcbox li{font-family:var(--mono);font-size:10.5px;word-break:break-all}
.disc{background:#fff7e8;border:1px solid #e8d6a8;color:#7a5c00;padding:10px 13px;
      margin:0 0 22px;font-size:12.5px;line-height:1.6}
.disc b{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;margin-right:6px}

/* 1면 톱기사 본문 */
.lead-bd{font-size:16.5px;line-height:1.8;margin-top:18px}
.lead-bd p{margin:0 0 17px}
.lead-bd h2{font-size:19px;margin:26px 0 10px;padding:0 0 0 11px;border-left:4px solid var(--teal);font-weight:800}
.lead-bd table{width:100%;min-width:100%;border-collapse:collapse;margin:0;font-size:14px}
.lead-bd th,.lead-bd td{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left}
.lead-bd thead th{background:var(--navy);color:#fff;border-bottom:0;font-family:var(--mono);
                  font-size:11px;letter-spacing:.05em;white-space:nowrap}
.lead-bd tbody tr:nth-child(even){background:var(--card)}
.lead-bd .chart{margin:0 0 20px}
.readon{display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:8px 0 0;
        border-top:1px solid var(--line);width:100%;
        font-size:13.5px;font-weight:700;color:var(--navy);font-family:var(--sans)}
.readon i{font-style:normal}
.readon em{margin-left:auto;font-style:normal;font-weight:400;font-size:11.5px;
           color:var(--dim);font-family:var(--mono)}
.readon:hover{color:var(--teal)}
.readon.sm{font-size:12.5px;margin-top:2px}
.lead .dek{font-size:17px;color:#3a4048;line-height:1.6;margin:0 0 12px}

/* 중앙단 2보·3보 */
.mids{margin-top:26px;padding-top:22px;border-top:3px solid var(--rule);
      display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.mid+.mid{border-left:1px solid var(--line);padding-left:26px}
.mid h2{font-size:22px;line-height:1.32;letter-spacing:-.8px;margin:8px 0 8px;font-weight:850}
.mid .sf{font-size:14px;color:var(--dim);line-height:1.6;margin:0 0 10px}
.mid-bd{font-size:14.5px;line-height:1.7;color:#3a4048}
.mid-bd p{margin:0 0 12px}

.card{padding:0 0 11px;margin-bottom:11px;border-bottom:1px solid var(--line)}
.card:last-child{border-bottom:0;margin-bottom:0}
.k{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;
   color:#fff;background:var(--navy);padding:2px 6px;margin-bottom:8px}
.k.pr{background:var(--gold-bg);color:var(--gold);border:1px solid var(--gold-line)}
.card h3{font-size:19px;line-height:1.38;margin:0 0 6px;letter-spacing:-.55px;font-weight:800}
.card p{margin:0;font-size:14.5px;color:var(--dim);line-height:1.6}
.card .m{font-family:var(--mono);font-size:10px;color:var(--dim);margin-top:7px}

.desks{display:grid;grid-template-columns:repeat(4,1fr);gap:0 22px;padding-top:18px}
.desks .d{padding-bottom:18px}
.desks .d:not(:nth-child(4n+1)){border-left:1px solid var(--line);padding-left:22px}
.desks .d:nth-child(n+5){border-top:1px solid var(--line);padding-top:18px}
.desks h2{font-size:15.5px;margin:0 0 3px;font-weight:900;letter-spacing:-.5px;
          padding-left:9px;border-left:4px solid var(--teal)}
.desks .sub{font-size:10.5px;color:var(--dim);margin:0 0 8px;padding:0 0 7px 13px;border-bottom:2px solid var(--rule)}
.desks article{padding:7px 0;border-bottom:1px solid var(--line)}
.desks h4{font-size:14.5px;margin:0 0 3px;line-height:1.4;font-weight:700;letter-spacing:-.35px}
.desks .m{font-family:var(--mono);font-size:10px;color:var(--dim)}
.desks .empty{font-size:12.5px;color:var(--dim);margin:0}

.press{border-top:3px double var(--rule);margin-top:6px;padding-top:18px}
.press .note{font-size:12.5px;color:var(--gold);background:var(--gold-bg);
             border:1px solid var(--gold-line);padding:10px 13px;margin-bottom:14px}
.press .list{display:grid;grid-template-columns:repeat(4,1fr);gap:0 22px}
.press article+article{border-left:1px solid var(--line);padding-left:24px}
.press h4{font-size:15.5px;margin:0 0 5px;line-height:1.42;font-weight:700}
.press p{margin:0;font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.pr-notice{background:var(--gold-bg);border:1px solid var(--gold-line);color:var(--gold);
           padding:13px 15px;margin:0 0 22px;font-size:14px;line-height:1.6}
.pr-notice strong{display:block;margin-bottom:3px}

.pt{font-size:36px;font-weight:900;letter-spacing:-1.7px;margin:4px 0 4px}
.pd{color:var(--dim);font-size:13.5px;margin:0 0 20px;padding-bottom:12px;border-bottom:3px solid var(--rule)}
.cards{max-width:820px}

/* ── 기사 ── */
.article{max-width:780px;margin:0 auto}
.article header{padding-bottom:18px;margin-bottom:22px;border-bottom:3px solid var(--rule)}
.article h1{font-size:37px;line-height:1.2;letter-spacing:-1.8px;margin:9px 0 12px;font-weight:900;color:var(--ink)}
.article .sub{font-size:17px;color:#3a4048;margin:0;line-height:1.64}
.bd{font-size:17px;line-height:1.84}
.bd h2{font-size:21px;margin:34px 0 12px;letter-spacing:-.6px;font-weight:800;
       padding:0 0 0 12px;border-left:5px solid var(--teal)}
.bd h3{font-size:18px;margin:26px 0 10px;font-weight:750}
.bd p{margin:0 0 19px}
.bd ul,.bd ol{margin:0 0 19px;padding-left:22px}
.bd li{margin-bottom:8px}
/* 인용 — 남의 말임이 한눈에 보여야 한다 */
.bd blockquote,.lead-bd blockquote{margin:20px 0;padding:15px 18px;background:#f4f6f8;
    border-left:4px solid var(--navy);color:var(--ink);font-size:16px;line-height:1.75}
.bd blockquote p,.lead-bd blockquote p{margin:0 0 9px}
.bd blockquote p:last-child,.lead-bd blockquote p:last-child{margin:0;font-size:13px;
    color:var(--sub);font-family:var(--mono)}
.bd code{background:var(--soft);padding:2px 6px;font-family:var(--mono);font-size:.86em}
.bd table{width:100%;min-width:100%;border-collapse:collapse;margin:0;font-size:15px}
.tw{overflow-x:auto;margin:0 0 24px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.lead-bd .tw{margin:0 0 18px}
.bd tr:last-child td,.lead-bd tr:last-child td{border-bottom:0}
/* 숫자 칸은 제 내용만큼만 차지한다. 남는 폭은 글이 든 칸이 나눠 갖는다.
   판별은 마크다운의 `---:` 가 남긴 인라인 text-align:right 다. */
.bd td[style*="right"],.bd th[style*="right"],
.lead-bd td[style*="right"],.lead-bd th[style*="right"]{
    font-family:var(--mono);white-space:nowrap;width:1%}
.bd td[style*="right"],.bd th[style*="right"]{font-size:13.5px}
.lead-bd td[style*="right"],.lead-bd th[style*="right"]{font-size:13px}
.bd th,.bd td{border-bottom:1px solid var(--line);padding:9px 12px;text-align:left}
.bd thead th{background:var(--navy);color:#fff;border-bottom:0;font-weight:700;white-space:nowrap;
             font-family:var(--mono);font-size:11.5px;letter-spacing:.05em}
.bd tbody tr:nth-child(even){background:var(--card)}

/* ── 차트 ── */
.chart{margin:0 0 26px;border:1px solid var(--line);background:var(--card);padding:12px 14px 6px}
.chart figcaption{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:6px;
                  font-size:12.5px;color:var(--dim)}
.chart figcaption b{font-size:14px;color:var(--ink);font-weight:800}
.chart .unit{font-family:var(--mono);font-size:10.5px}
.chart .chg{font-family:var(--mono);font-size:12px;font-weight:700}
.chart .chg.up{color:var(--up)}.chart .chg.down{color:var(--down)}
.chart .rangelabel{margin-left:auto;font-family:var(--mono);font-size:10px}
.chart svg{width:100%;height:auto;display:block}
.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart .cx{font-family:var(--mono);font-size:9px;fill:var(--dim);text-anchor:middle}
.chart .cy{font-family:var(--mono);font-size:9px;fill:var(--dim);text-anchor:end;dominant-baseline:middle}
.chart.missing{padding:14px;font-size:12.5px;color:var(--dim);font-family:var(--mono)}

.tags{margin:30px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.tags span{display:inline-block;background:var(--soft);padding:3px 10px;margin:0 6px 6px 0;
           font-size:12px;color:var(--dim)}
.more{margin-top:36px;padding-top:18px;border-top:3px solid var(--rule)}
.more h2{font-size:13px;margin:0 0 10px;color:var(--dim);font-weight:700;
         font-family:var(--mono);letter-spacing:.1em}
.more article{padding:9px 0;border-bottom:1px solid var(--line)}
.more h4{font-size:16px;margin:0;font-weight:700;line-height:1.4}

footer{background:var(--navy);color:#c6dae0;margin-top:36px;padding:20px 0 24px;
       font-size:12.5px;line-height:1.9}
footer b{color:#fff;font-weight:650}
footer .fm{line-height:0;margin-bottom:11px}
footer .fm img{display:block;height:42px;width:auto}
@media(max-width:700px){footer .fm img{height:34px}}
/* 편집국 — 발행 시각 옆 */
footer .g .room{margin-left:12px;color:var(--teal-lt);font-weight:700;white-space:nowrap}
footer .g .room:hover{color:#fff;text-decoration:underline}
footer .g{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
          gap:3px 22px;margin-bottom:11px;font-size:12.5px;line-height:1.55}
/* 발행 시각은 한 줄로 둔다. 「18초」만 떨어지면 읽기가 나쁘다 */
footer .g .wide{grid-column:span 2;white-space:nowrap}
@media(max-width:640px){footer .g .wide{grid-column:auto;white-space:normal}}
footer .ai{padding-top:9px;margin-top:8px;font-size:12px;line-height:1.6;border-top:1px solid rgba(255,255,255,.18);color:#bcd2d9}
footer .cp{margin-top:9px;font-size:11.5px;color:#a6c0c9}

@media(max-width:980px){
  .tgrid{grid-template-columns:1fr;gap:16px 0}
  .heat .grid{grid-template-columns:repeat(2,1fr)}
  .front,.desks,.press .list{grid-template-columns:1fr}
  .desks .d:nth-child(n){border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:16px}
  .press article+article{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
  .title strong{font-size:46px;letter-spacing:-2.4px}
  .mast .wrap{flex-direction:column;align-items:flex-start;gap:9px}
  .title{flex:none}
  .lead h1{font-size:29px}.article h1{font-size:27px}.pt{font-size:27px}
  .mast .desc,.mast .edition{display:none}
  .bd{font-size:16.5px}
}

/* 원화 환산 가격표 */
.ktab{margin-top:8px;max-height:214px;overflow-y:auto;border-top:1px solid #1c1c1c}
.ktab::-webkit-scrollbar{width:6px}
.ktab::-webkit-scrollbar-thumb{background:#2a2a2a}
.ktab table{width:100%;border-collapse:collapse}
.ktab th{position:sticky;top:0;background:#0a0a0a;font-family:var(--mono);font-size:9.5px;
         font-weight:700;letter-spacing:.06em;color:#c0c0c0;text-align:right;padding:5px 4px;
         border-bottom:1px solid #1c1c1c;white-space:nowrap}
.ktab th:first-child{text-align:left}
.ktab td{font-size:11.5px;color:#e8e8e8;padding:3px 4px;text-align:right;white-space:nowrap;
         border-bottom:1px solid #141414}
.ktab td:first-child{text-align:left;color:#a8a8a8;max-width:120px;overflow:hidden;
                     text-overflow:ellipsis}
.ktab td.won{font-family:var(--mono)}
.ktab td.up{color:#ff3b3b}
.ktab td.down{color:#1aff66}
.ktab td.flat{color:#9a9a9a}
.ktab td.un{font-family:var(--mono);font-size:9.5px;color:#7a7a7a;text-align:left}
.ktab th:nth-child(2){text-align:left}
.ktab tr.sec td{color:#e8c078;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;
                background:#0d0d0d;padding-top:6px}

/* 분야별 등록 기사 */

/* 데이터를 읽는 법 */
footer .rg{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.18)}
footer .rg summary{cursor:pointer;font-size:12.5px;font-weight:700;color:#fff;list-style:none}
footer .rg summary::-webkit-details-marker{display:none}
footer .rg summary::before{content:"＋ ";color:var(--teal-lt,#1fb3a6)}
footer .rg[open] summary::before{content:"− "}
footer .rg ul{margin:11px 0 0;padding-left:0;list-style:none;
              display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px 26px}
footer .rg li{font-size:12px;line-height:1.72;color:#bcd2d9}
footer .rg li b{display:block;color:#fff}

/* ── 지표판 축소형 (기사 지면) ── */
.term.compact{padding:0 0 0}
/* 띠는 지면 맨 위에 한 줄로 붙는다. 높이를 줄여 지표판을 밀어내지 않게 한다 */
.term.compact .tape{height:34px;margin-bottom:12px}
.term.compact .tape .live{padding:0 14px 0 24px;font-size:11px}
.term.compact .tape .vl{font-size:15px}
.term.compact .tape .tk{padding:0 15px}
.term.compact .ph{max-width:1680px;margin:0 auto 9px;padding:0 24px;
    font-family:var(--mono);font-size:11px;letter-spacing:1px;color:#e8c078;font-weight:700}
.term.compact .ph span{color:#a8a8a8;letter-spacing:.3px;font-weight:400}
.cbgrid{max-width:1680px;margin:0 auto;padding:0 24px;display:grid;
    grid-template-columns:repeat(6,1fr);gap:2px;background:#000;border:1px solid #000}
.cbgrid .cb{padding:7px 11px;display:flex;align-items:baseline;
    gap:7px;white-space:nowrap;overflow:hidden;border-left:3px solid transparent}
/* 바탕색이 묶음을 뜻한다 — .cbgrid 를 앞에 둬야 특이도가 밀리지 않는다 */
.cbgrid .g-fx{background:#113036;border-left-color:#2fd9c9}
.cbgrid .g-kr{background:#331a28;border-left-color:#ff6fae}
.cbgrid .g-cn{background:#3a191c;border-left-color:#ff5a5a}
.cbgrid .g-as{background:#17331f;border-left-color:#59d47c}
.cbgrid .g-we{background:#16233f;border-left-color:#6fa3ff}
.cbgrid .g-cm{background:#372d16;border-left-color:#ffd27a}
.cblg .g-fx{border-left-color:#2fd9c9}
.cblg .g-kr{border-left-color:#ff6fae}
.cblg .g-cn{border-left-color:#ff5a5a}
.cblg .g-as{border-left-color:#59d47c}
.cblg .g-we{border-left-color:#6fa3ff}
.cblg .g-cm{border-left-color:#ffd27a}
.cblg{max-width:1680px;margin:8px auto 0;padding:0 24px;display:flex;flex-wrap:wrap;gap:0 6px}
.cblg .lg{font-family:var(--mono);font-size:10px;color:#9aa6b2;padding:2px 9px;
    border-left:3px solid transparent}
.cbgrid .n{color:#9aa6b2;font-size:11px;font-weight:700;letter-spacing:.2px;
    flex:none;min-width:52px}
.cbgrid .v{font-family:var(--mono);font-size:14px;font-weight:700;color:#fff;
    margin-left:auto}
.cbgrid .up,.cbgrid .down,.cbgrid .flat{font-family:var(--mono);font-size:11.5px;
    font-weight:700;flex:none;min-width:54px;text-align:right}
.cbgrid .n i{font-style:normal;font-family:var(--mono);font-size:9px;color:#5b6672;
    margin-left:4px;font-weight:400}
@media(max-width:1400px){.cbgrid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1000px){.cbgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.cbgrid{grid-template-columns:repeat(2,1fr)}}
.tmore{margin-top:10px;border-top:1px solid #1c222b;padding:9px 16px;text-align:center}
.tmore a{font-family:var(--mono);font-size:11.5px;font-weight:700;color:#8fd5ce;
         letter-spacing:.03em}
.tmore a i{font-style:normal;margin-left:5px}
.tmore a:hover{color:#fff}

/* ── 시세 지면 ── */
.msec{margin-top:34px;padding-top:22px;border-top:3px solid var(--rule)}
.msec h2{font-size:20px;font-weight:800;letter-spacing:-.5px;margin:0 0 4px}
.msec h2 span{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--sub);
              margin-left:8px;letter-spacing:0}
.mcharts{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 26px;margin-top:18px}
.mch{margin:0;border:1px solid var(--line);padding:12px 14px 8px;background:#fff}
.mch figcaption{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.mch figcaption span{font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--sub)}
.mch svg{display:block;width:100%;height:auto}
@media(max-width:900px){.mcharts{grid-template-columns:1fr}}

/* 표에서 뽑은 막대그래프 */
.tbar{margin:-6px 0 22px;padding:14px 16px 8px;border:1px solid var(--line);
      border-top:0;background:#fbfcfd}
.tbar svg{display:block;width:100%;height:auto}
@media(max-width:640px){.tbar{padding:10px 10px 6px}}

/* 지면 삽화 */

/* 지면 맨 위 추이 띠 */
.spks{max-width:1680px;margin:10px auto 0;padding:0 24px;display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:#000;border:1px solid #000}
.spkh{grid-column:1/-1;background:#0d1116;padding:5px 11px;font-family:var(--mono);
      font-size:10px;font-weight:700;letter-spacing:.1em;color:#e8c078}
.spk{background:#0d1116;padding:5px 11px;display:flex;align-items:center;gap:9px}
.spk .sn{font-size:11px;font-weight:700;color:#9aa6b2;flex:none;min-width:52px;
         white-space:nowrap}
.spk svg{flex:1 1 0;min-width:0;width:100%;height:26px}
.spk .sv{font-family:var(--mono);font-size:11.5px;font-weight:700;flex:none;
         min-width:52px;text-align:right}
@media(max-width:1000px){.spks{grid-template-columns:repeat(2,1fr)}}

/* 분야별 등록 기사 — 편집국과 같은 표를 1면 「주요 기사」 밑에 둔다 */
.covbox{margin-top:18px;padding-top:12px;border-top:2px solid var(--ink)}
table.cov{width:100%;border-collapse:collapse;margin:0}
table.cov td{padding:4px 0;font-size:13px;border-bottom:1px solid var(--line)}
table.cov td:nth-child(2),table.cov td:nth-child(3){text-align:right;
    font-family:var(--mono);font-size:12.5px;white-space:nowrap;width:1%}
table.cov td:nth-child(3){color:var(--dim)}
table.cov tr.tt td{font-weight:800;border-bottom:0;border-top:2px solid var(--ink)}
.covn{margin:8px 0 0;font-size:12px;color:var(--dim);line-height:1.6}

/* ── 독자·정책 ── */
.pollist{list-style:none;margin:22px 0 0;padding:0;display:grid;
         grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;
         background:var(--line);border:1px solid var(--line)}
.pollist li{background:var(--paper)}
.pollist a{display:block;padding:15px 17px}
.pollist a:hover{background:var(--soft)}
.pollist b{display:block;font-size:16px;font-weight:800;color:var(--ink);margin-bottom:4px}
.pollist span{display:block;font-size:13px;color:var(--sub,#646c75);line-height:1.6}
.polbd{max-width:840px}
.polmore{max-width:840px;margin:32px 0 0;padding-top:14px;border-top:2px solid var(--ink);
         font-size:13px;color:var(--dim)}
.polmore b{margin-right:12px;color:var(--ink)}
.polmore a{margin-right:14px;color:var(--navy);font-weight:600;white-space:nowrap}
.polmore a:hover{color:var(--teal)}
footer .pol{margin-top:10px;padding-top:10px;font-size:12px;
            border-top:1px solid rgba(255,255,255,.18)}
footer .pol b{margin-right:12px}
footer .pol a{margin-right:14px;color:#cadde3;white-space:nowrap}
footer .pol a:hover{color:#fff;text-decoration:underline}

/* ── 좁은 화면 ──
   1면은 세 칸으로 짰다. 칸마다 최소 폭이 있어 좁은 화면에서는 그대로 두면
   지면이 옆으로 밀려 가로 스크롤이 생긴다. 폭에 따라 칸을 접는다. */
@media(max-width:1180px){
  .front3{grid-template-columns:minmax(0,1fr) minmax(300px,32%)}
  .colL{grid-column:1/-1;order:3;border-right:0;padding-right:0;
        border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
  .colC{order:1}
  .colR{order:2}
}
@media(max-width:860px){
  .front3{grid-template-columns:minmax(0,1fr);gap:0}
  .colR{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
}
@media(max-width:700px){
  .wrap{padding:0 16px}
  .util .wrap,.mast .wrap{padding-left:16px;padding-right:16px}
  .title strong{font-size:42px;letter-spacing:-2px}
  .mast .wrap{flex-wrap:wrap;gap:12px}
  .mast .desc{border-left:0;padding-left:0}
  .mast .edition{margin-left:0;text-align:left}
  .tgrid{padding-left:16px;padding-right:16px}
  .spks{padding-left:16px;padding-right:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .pan{padding-left:0;padding-right:0}
  .pan+.pan{border-left:0;border-top:1px solid #1c1c1c;padding-top:14px;margin-top:14px}
}

/* ── 사진 ──
   AI 가 만든 이미지에는 딱지를 그림 위에 박는다. 표시 없이 나가면
   독자가 누가 찍은 사진으로 읽는다. */
figure.art.photo .pw{position:relative;line-height:0}
figure.art.photo img{display:block;width:100%;height:auto;border:1px solid var(--line)}
figure.art.photo .aitag{position:absolute;left:0;bottom:0;
    font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;
    color:#fff;background:rgba(11,42,53,.92);padding:5px 10px;line-height:1.2}
figure.art.photo figcaption{margin-top:8px;font-size:13px;color:var(--sub);line-height:1.6}

/* ── 좁은 화면의 표 ──
   화면에 억지로 맞추면 글이 든 칸이 한 글자 폭까지 눌린다. 표를 제 내용만큼
   넓게 두고 표 상자 안에서 옆으로 밀어 보게 한다. 기사마다 손댈 일이 아니다. */
@media(max-width:760px),(hover:none){
  .bd table,.lead-bd table{width:max-content;min-width:100%}
  .bd td:not([style*="right"]),.bd th:not([style*="right"]),
  .lead-bd td:not([style*="right"]),.lead-bd th:not([style*="right"]){
      min-width:8.5em;max-width:17em;white-space:normal}
  .bd td[style*="right"],.bd th[style*="right"],
  .lead-bd td[style*="right"],.lead-bd th[style*="right"]{width:auto}
  .bd th,.bd td{padding:8px 10px}
  .tw{position:relative}
  .tw::after{content:"옆으로 밀어 보십시오";position:sticky;left:0;display:block;
      padding:5px 10px 7px;font-size:11px;color:var(--dim);
      font-family:var(--mono);white-space:nowrap}
}

/* ── 좁은 화면의 지표판 ──
   1면은 시세를 보러 오는 자리이니 그대로 둔다. 섹션이나 기사를 눌러 들어간
   자리에서는 읽으러 온 것이므로 칸을 접고 기사를 먼저 보인다. */
@media(max-width:760px),(hover:none){
  .term.compact.slim .ph,
  .term.compact.slim .cbgrid,
  .term.compact.slim .cblg,
  .term.compact.slim .spks{display:none}
  .term.compact.slim .tape{margin-bottom:0}
  .term.compact.slim .tmore{margin-top:0;border-top:0;padding:11px 16px}
  .term.compact.slim .tmore a{font-size:12.5px}
}

/* ── 특집 지면 ── */
.flist{max-width:900px;margin:24px 0 0}
.fitem{padding:0 0 30px;margin-bottom:30px;border-bottom:2px solid var(--ink)}
.fitem:last-child{border-bottom:0;margin-bottom:0}
.fitem .fd{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--dim);
           margin-bottom:9px}
.fitem h2{font-size:30px;line-height:1.3;letter-spacing:-1.1px;margin:8px 0 10px;
          font-weight:900}
.fitem h2 a:hover{color:var(--navy)}
.fitem .sf{font-size:16px;color:#3a4048;line-height:1.65;margin:0 0 12px}
.fitem .ex{font-size:15px;color:var(--dim);line-height:1.75;margin:0 0 12px;
           padding-top:12px;border-top:1px solid var(--line)}
.fside{margin-top:18px;padding:15px 17px;background:var(--card);border:1px solid var(--line)}
.fside .lh{font-size:13px;margin-bottom:8px;padding-bottom:6px}
.fside .latest{margin:0}
@media(max-width:700px){.fitem h2{font-size:24px;letter-spacing:-.8px}}
