
:root{
  --bg:#F4F5F3; --surface:#FFFFFF; --surface-2:#ECEEE9; --line:#DBDFD7; --line-soft:#E7E9E3;
  --ink:#14181A; --muted:#59615D; --faint:#8B938E;
  --brand:#175C43; --brand-soft:#DEEBE4; --brand-ink:#0E3D2C;
  --up:#D6302B; --dn:#2158C9;
  --gold:#A5811F; --silver:#7F8890; --bronze:#9C6535;
  --r:10px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#101311; --surface:#181C1A; --surface-2:#222724; --line:#2E3431; --line-soft:#252A27;
    --ink:#E9EDEA; --muted:#98A19C; --faint:#68716C;
    --brand:#4FBE93; --brand-soft:#163025; --brand-ink:#9EE3C6;
    --up:#F2645C; --dn:#6D9BF5;
    --gold:#D3AC4E; --silver:#9AA3AB; --bronze:#C08A5C;
  }
}
:root[data-theme="dark"]{
  --bg:#101311; --surface:#181C1A; --surface-2:#222724; --line:#2E3431; --line-soft:#252A27;
  --ink:#E9EDEA; --muted:#98A19C; --faint:#68716C;
  --brand:#4FBE93; --brand-soft:#163025; --brand-ink:#9EE3C6;
  --up:#F2645C; --dn:#6D9BF5;
  --gold:#D3AC4E; --silver:#9AA3AB; --bronze:#C08A5C;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",
    "맑은 고딕",system-ui,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;line-height:1.25;text-wrap:balance;letter-spacing:-.02em}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.wrap{max-width:820px;margin:0 auto;padding:0 18px}

/* 숫자·라벨은 모노. 이 사이트의 성격을 정하는 유일한 웹폰트. */
.mono,.n,.v,.rk,.ytick,.xtick,.vlab,.code,.mv,.ry,td.n,.tile .v{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums}

/* 헤더 */
.site{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10}
.bar{display:flex;align-items:center;gap:14px;height:58px}
.logo{font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:17px;letter-spacing:-.03em;
  display:flex;align-items:center;gap:7px;flex:none}
.logo .tick{width:11px;height:11px;background:var(--brand);border-radius:2px;
  box-shadow:0 -5px 0 -2px var(--brand),0 5px 0 -2px var(--brand)}
.menu{display:flex;gap:15px;font-size:14px;color:var(--muted);font-weight:500}
.menu a:hover{color:var(--brand)}
.find{margin-left:auto;position:relative;flex:1;max-width:230px}
.find input{width:100%;height:36px;border-radius:8px;border:1px solid var(--line);
  background:var(--bg);padding:0 12px;font:inherit;font-size:14px;color:inherit}
.find input:focus{border-color:var(--brand);outline:none}
#qr{position:absolute;top:42px;left:0;right:0;background:var(--surface);border:1px solid var(--line);
  border-radius:8px;list-style:none;margin:0;padding:4px;max-height:320px;overflow:auto;
  box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:20}
#qr li a{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:6px;font-size:14px}
#qr li a:hover,#qr li a:focus{background:var(--surface-2)}
#qr .c{color:var(--faint);font-size:12.5px}

main.wrap{padding-top:22px;padding-bottom:48px}
.crumb{font-size:12.5px;color:var(--faint);margin-bottom:14px;display:flex;gap:6px;flex-wrap:wrap}
.crumb a:hover{color:var(--brand)}
.warn{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--up);
  border-radius:8px;padding:10px 14px;font-size:13.5px;color:var(--muted);margin-bottom:18px}
.warn strong{color:var(--up)}
.warn code{font-family:"IBM Plex Mono",monospace;font-size:12.5px;background:var(--bg);
  padding:1px 5px;border-radius:4px}

/* 홈 */
.hero{padding:14px 0 26px}
.hero h1{font-size:38px;letter-spacing:-.035em}
.hero p{color:var(--muted);max-width:46ch;margin:14px 0 0}
.hero b{color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}
.panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:16px}
.panel h2{font-size:15px;margin-bottom:10px}
.mini{list-style:none;margin:0;padding:0;counter-reset:m}
.mini li{counter-increment:m;border-bottom:1px solid var(--line-soft)}
.mini li:last-child{border-bottom:0}
.mini a{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:14px}
.mini a::before{content:counter(m);width:17px;color:var(--faint);font-size:12px;
  font-family:"IBM Plex Mono",monospace;flex:none}
.mini .mn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini .mv{color:var(--brand);font-weight:600;font-size:13.5px}
.more{display:inline-block;margin-top:11px;font-size:13px;color:var(--brand);font-weight:600}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:12px}
.c{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:15px}
.c h3{font-size:14px;color:var(--brand);margin-bottom:6px}
.c p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.65}

/* 종목 헤더 */
.stock-h{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px}
.stock-h h1{font-size:30px}
.sub{margin:5px 0 0;color:var(--muted);font-size:13.5px}
.code{background:var(--surface-2);padding:2px 7px;border-radius:5px;font-size:12.5px;color:var(--muted)}

/* 지표 타일 — 이 페이지에서 제일 먼저 읽혀야 하는 것 */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);
  border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden;margin-bottom:22px}
.tile{background:var(--surface);padding:14px 15px}
.tile .k{font-size:11.5px;color:var(--faint);letter-spacing:.03em;font-weight:600}
.tile .v{font-size:25px;font-weight:600;letter-spacing:-.02em;margin:3px 0 1px;line-height:1.15}
.tile .v small{font-size:13px;color:var(--muted);font-weight:500;margin-left:1px}
.tile .s{font-size:11.5px;color:var(--muted)}

/* 차트 */
.chart{margin:0 0 22px}
.chart figcaption{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.chart figcaption span{color:var(--faint);font-weight:500}
.chart-box{position:relative;background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r);padding:12px 8px 4px}
.chart svg{display:block;width:100%;height:auto}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .bar{fill:var(--brand);transition:fill .12s}
.chart .bar:hover,.chart .bar:focus{fill:var(--brand-ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chart .bar:hover{fill:var(--brand-ink)}}
.chart .ytick{fill:var(--faint);font-size:10.5px;text-anchor:end}
.chart .xtick{fill:var(--muted);font-size:11px;text-anchor:middle}
.chart .vlab{fill:var(--ink);font-size:11.5px;font-weight:600;text-anchor:middle}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);
  padding:6px 10px;border-radius:7px;font-size:12.5px;font-weight:600;white-space:nowrap;
  transform:translate(-50%,-125%);z-index:5;
  font-family:"IBM Plex Mono",monospace}

/* 표 */
section{margin-bottom:26px}
section>h2{font-size:17px;margin-bottom:11px}
.tw{overflow-x:auto;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r)}
table.data{width:100%;border-collapse:collapse;font-size:14px;min-width:420px}
table.data caption{text-align:left;padding:11px 15px 0;font-size:12.5px;color:var(--faint)}
table.data th,table.data td{padding:10px 15px;border-bottom:1px solid var(--line-soft);text-align:left}
table.data thead th{font-size:11.5px;color:var(--faint);font-weight:600;letter-spacing:.03em;
  border-bottom:1px solid var(--line);white-space:nowrap}
table.data tbody tr:last-child th,table.data tbody tr:last-child td{border-bottom:0}
table.data td.n,table.data th.n,table.data thead th:not(:nth-child(1)):not(:nth-child(2)){text-align:right}
table.data tbody th{font-weight:600}
.up{color:var(--up);font-weight:600} .dn{color:var(--dn);font-weight:600} .fl{color:var(--faint)}
table.rank tbody tr:hover{background:var(--surface-2)}
table.rank .rk{width:44px;color:var(--faint);font-weight:600;font-size:13px}
table.rank tr.t1 .rk{color:var(--gold)} table.rank tr.t2 .rk{color:var(--silver)}
table.rank tr.t3 .rk{color:var(--bronze)}
table.rank tbody th small{display:block;font-size:11.5px;color:var(--faint);font-weight:500;
  font-family:"IBM Plex Mono",monospace}
table.rank tbody th a:hover{color:var(--brand)}
.lead{color:var(--muted);font-size:14.5px;margin:6px 0 18px;max-width:60ch}
h1+.lead{margin-top:10px}

.note-split{margin:10px 2px 0;font-size:12.5px;color:var(--muted);line-height:1.65}
.note-split b{color:var(--ink)}

/* Q&A */
.qa dl{margin:0;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);
  padding:6px 16px}
.qa dt{font-weight:600;font-size:14.5px;margin-top:14px}
.qa dd{margin:5px 0 14px;color:var(--muted);font-size:14px}
.qa dd b{color:var(--ink)}

/* 관련 종목 */
.rels{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px}
.rel{background:var(--surface);border:1px solid var(--line-soft);border-radius:9px;padding:11px 13px;
  display:flex;flex-direction:column;gap:2px}
.rel:hover{border-color:var(--brand)}
.rn{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ry{font-size:13px;color:var(--brand);font-weight:600}

/* 가이드 */
.gcards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.gcard{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);
  padding:15px;display:block}
.gcard:hover{border-color:var(--brand)}
.gcard h3{font-size:14.5px;margin-bottom:6px}
.gcard p{margin:0;font-size:13px;color:var(--muted);line-height:1.6}
.prose{margin-bottom:22px}
.prose h2{font-size:19px;margin-bottom:12px;letter-spacing:-.025em}
.prose p{margin:0 0 13px;max-width:64ch;color:var(--ink);line-height:1.78;font-size:15.5px}
.prose p:last-child{margin-bottom:0}
.prose b{font-weight:600}

/* 계산기 */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 26px}
.calc-in,.calc-out{background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r);padding:16px}
.calc-in{display:flex;flex-direction:column;gap:14px}
.calc-in.one{justify-content:center}
.f{display:flex;flex-direction:column;gap:6px;position:relative}
.f label{font-size:12.5px;font-weight:600;color:var(--muted)}
.f label span{color:var(--faint);font-weight:500}
.f input{height:44px;border-radius:8px;border:1px solid var(--line);background:var(--bg);
  padding:0 13px;font:inherit;color:inherit;width:100%;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.f-stock input{font-family:inherit}
.f input:focus{border-color:var(--brand);outline:none}
.f .hint{margin:0;font-size:11.5px;color:var(--faint)}
#csr{position:absolute;top:72px;left:0;right:0;background:var(--surface);
  border:1px solid var(--line);border-radius:8px;list-style:none;margin:0;padding:4px;
  max-height:220px;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.14);z-index:20}
#csr li button{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;
  border-radius:6px;font-size:14px;width:100%;border:0;background:none;color:inherit;
  cursor:pointer;font-family:inherit;text-align:left}
#csr li button:hover,#csr li button:focus{background:var(--surface-2)}
#csr .c{color:var(--faint);font-size:12.5px;font-family:"IBM Plex Mono",monospace}
.calc-out{display:flex;flex-direction:column;justify-content:center;gap:14px}
.big .k{font-size:12px;color:var(--faint);font-weight:600}
.big .k span{color:var(--brand)}
.big .v{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--brand);
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.big .v small{font-size:16px;font-weight:600;margin-left:2px}
.brk{margin:0;border-top:1px solid var(--line-soft);padding-top:12px;
  display:flex;flex-direction:column;gap:8px}
.brk>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.brk>div[hidden]{display:none}  /* display:flex 가 [hidden] 을 이겨서 명시 필요 */
.brk dt{font-size:13px;color:var(--muted)}
.brk dt span{color:var(--faint);font-size:11.5px}
.brk dd{margin:0;font-size:13.5px;font-weight:600}
.note{margin:0;padding-top:11px;border-top:1px solid var(--line-soft);
  font-size:12.5px;color:var(--muted);line-height:1.65}
.qa-dl{margin:0;background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r);padding:6px 16px}
.qa-dl dt{font-weight:600;font-size:14.5px;margin-top:14px}
.qa-dl dd{margin:5px 0 14px;color:var(--muted);font-size:14px}
.qa-dl dd a{color:var(--brand);font-weight:600;text-decoration:underline;
  text-underline-offset:2px}

/* 광고 */
.ad{border:1px dashed var(--line);border-radius:var(--r);background:var(--surface-2);
  min-height:100px;display:grid;place-items:center;color:var(--faint);font-size:12px;
  margin:22px 0;letter-spacing:.04em}
.ad span{display:block;text-align:center}

/* 푸터 */
.site-f{border-top:1px solid var(--line);background:var(--surface);padding:22px 0 34px;
  font-size:12.5px;color:var(--muted)}
.site-f p{margin:0 0 6px}
.site-f .src,.site-f .dis{color:var(--faint);line-height:1.7}

@media (max-width:720px){
  .hero h1{font-size:29px}
  .two,.cards{grid-template-columns:1fr}
  .gcards{grid-template-columns:1fr}
  .tiles{grid-template-columns:1fr 1fr}
  .stock-h h1{font-size:24px}
  .menu{display:none}
  .hide-s{display:none}
  .calc{grid-template-columns:1fr}
  /* 열을 숨겼으니 최소폭을 풀어 준다 — 안 그러면 정작 중요한 수치 열이
     가로 스크롤 밖으로 밀려난다. */
  table.data{min-width:0;font-size:13.5px}
  table.data th,table.data td{padding:10px}
  table.rank .rk{width:30px}
  .bar{gap:10px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
