/* 성분노트 v2 — 참고서(레퍼런스) 톤: 잉크색 글자, 가는 괘선, 명조 제목, 고정폭 숫자.
   카드 그림자·파스텔 그라데이션을 걷어내고 정보 위계를 글자 크기·굵기·괘선으로 만든다.
   지금은 body.v2(새 홈 미리보기)에만 적용 */
body.v2{
  --paper:#f7f7f5; --surface:#ffffff; --ink:#16181d; --text:#2e323a; --muted:#6c707a; --faint:#9a9da5;
  --rule:#e3e3df; --rule-strong:#1f2229; --accent:#5b4cc4; --accent-soft:#efedf8; --ok:#2f7a5f; --warn:#9a5b12;
  --serif:"Noto Serif KR","Nanum Myeongjo","AppleMyungjo",serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --text-heading:var(--ink); --text-body:var(--text); --text-muted:var(--muted);
  background:var(--paper); color:var(--text);
}
body.v2 a{color:var(--accent)}

/* 머리글 */
body.v2 header{max-width:1120px;min-height:68px;padding:14px 28px;border-bottom:0;gap:26px;position:relative}
body.v2 header::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:1px;background:var(--rule)}
body.v2 .brand{gap:9px}
body.v2 .brand-symbol{grid-template-columns:10px 10px;gap:2px}
body.v2 .brand-symbol i{height:10px;background:var(--ink)}
body.v2 .brand-symbol i:nth-child(2),body.v2 .brand-symbol i:nth-child(3){background:#aaa6c9}
body.v2 .brand b{font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:-.4px;color:var(--ink)}
body.v2 .brand b span{font-family:SUIT,"Apple SD Gothic Neo",system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--muted);margin-top:5px}
body.v2 .brand-mark{display:block;width:30px;height:30px;flex:0 0 30px}
body.v2 .brand-mark svg{display:block;width:100%;height:100%}
body.v2 nav{gap:2px}
body.v2 nav a,body.v2 nav button{background:none;border:0;border-radius:0;padding:8px 11px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}
body.v2 nav a:hover,body.v2 nav button:hover{background:none;color:var(--ink)}
body.v2 nav button.on{background:none;color:var(--ink);border-bottom-color:var(--accent)}
body.v2 header>.secondary,body.v2 .saved-button{min-height:34px;padding:6px 12px;border-radius:8px;border:1px solid var(--rule);background:var(--surface);color:var(--text);font-size:13px;font-weight:500;box-shadow:none}

body.v2 main{max-width:1120px}
body.v2 main:not([class]){padding:0 28px 72px}
body.v2 .eyebrow,body.v2 .v2-eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}

/* 첫 화면 */
body.v2 .v2-hero{padding:64px 0 26px;max-width:760px}
body.v2 .v2-eyebrow{margin:0 0 18px;display:flex;align-items:center;gap:12px}
body.v2 .v2-eyebrow::after{content:"";width:48px;height:1px;background:var(--rule-strong)}
body.v2 .v2-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,4.4vw,46px);line-height:1.28;letter-spacing:-.025em;color:var(--ink);margin:0;text-wrap:balance}
body.v2 .v2-lede{font-size:16.5px;line-height:1.75;color:var(--text);margin:18px 0 0;max-width:58ch}
body.v2 .v2-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:18px 0 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
body.v2 .v2-meta a{margin-left:4px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
body.v2 .live-dot{width:6px;height:6px;box-shadow:none;background:var(--faint)}
body.v2 .live-dot.connected{background:var(--ok);box-shadow:none}

body.v2 .search-panel{max-width:none;margin:0;padding:0;background:none;border:0;box-shadow:none;border-radius:0}
body.v2 .searchrow{gap:0;background:var(--surface);border:1px solid #cfcfca;border-radius:12px;padding:6px 6px 6px 18px;transition:border-color .15s,box-shadow .15s}
body.v2 .searchrow:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #5b4cc41f}
body.v2 .search-icon{width:20px;height:20px;color:var(--muted);margin-right:12px}
body.v2 .searchrow input{height:52px;font-size:19px;letter-spacing:-.2px;color:var(--ink)}
body.v2 .searchrow input::placeholder{color:var(--faint);font-size:17px;letter-spacing:0}
body.v2 .searchrow .primary{min-width:92px;min-height:52px;border-radius:8px;background:var(--accent);box-shadow:none;font-size:15px}
body.v2 .searchrow .primary:hover{background:#4a3cad}
body.v2 .searchrow .primary span{font-size:15px;margin-left:8px}
body.v2 .suggestions{top:calc(100% + 6px);left:0;right:0;border-color:var(--rule);border-radius:10px;box-shadow:0 18px 40px #16181d1f}
body.v2 .suggestion:hover,body.v2 .suggestion.selected{background:var(--accent-soft)}
body.v2 .chips{margin-top:14px;padding-top:0;border-top:0;gap:4px 16px}
body.v2 .chips .muted{display:inline;font-size:12.5px;color:var(--faint);margin-right:2px}
body.v2 .chips a,body.v2 .chips button{background:none;padding:0;border-radius:0;font-size:14px;color:var(--text);text-decoration:underline;text-decoration-color:#c9c9c4;text-underline-offset:4px}
body.v2 .chips a:hover{color:var(--accent);text-decoration-color:currentColor}
body.v2 .v2-search-aside{display:flex;flex-wrap:wrap;gap:6px 18px;margin:22px 0 0;font-size:13.5px}
body.v2 .v2-search-aside a,body.v2 .v2-search-aside .text-button{color:var(--muted);font-size:13.5px;padding:0;text-decoration:none}
body.v2 .v2-search-aside a::after,body.v2 .v2-search-aside .text-button::after{content:" →";color:var(--faint)}
body.v2 .v2-search-aside a:hover,body.v2 .v2-search-aside .text-button:hover{color:var(--ink)}

/* 지표 두 단 */
body.v2 .v2-index{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;margin-top:56px;padding-top:22px;border-top:1px solid var(--rule-strong)}
body.v2 .v2-index .surface{background:none;border:0;border-radius:0;box-shadow:none;padding:0;min-width:0}
body.v2 .v2-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:10px}
body.v2 .v2-index h2,body.v2 .industry-section h2,body.v2 .recent-research-section h2{border-bottom:0;padding-bottom:0}
body.v2 .v2-head h2{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.02em;color:var(--ink);margin:0}
body.v2 .v2-note{font-size:12.5px;color:var(--muted);background:none;padding:0;font-variant-numeric:tabular-nums}

body.v2 #ranking{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
body.v2 .rankrow{padding:0;border-bottom:1px solid var(--rule)}
body.v2 .rankrow a{display:flex;align-items:baseline;gap:12px;padding:11px 0;min-width:0;text-decoration:none;color:var(--ink)}
body.v2 .rankrow a:hover span{color:var(--accent)}
body.v2 .rankrow b{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--faint);width:auto;flex:0 0 auto}
body.v2 .rankrow:first-child b{color:var(--faint)}
body.v2 .rankrow span{font-size:15px;font-weight:600;min-width:0;overflow-wrap:anywhere}
body.v2 .rankrow small{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--muted)}
body.v2 .rankrow>.rank-arrow{display:none}
body.v2 .ranking-empty{grid-column:1/-1;text-align:left;padding:14px 0;color:var(--muted)}
body.v2 .ranking-empty span{display:none}

/* 데이터 원장(요약) */
body.v2 .ledger-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:6px 0 14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
body.v2 .ledger-stats div{padding:14px 0 12px 14px;border-left:1px solid var(--rule)}
body.v2 .ledger-stats div:first-child{padding-left:0;border-left:0}
body.v2 .ledger-stats dt{font-size:12px;color:var(--muted);margin:0 0 4px}
body.v2 .ledger-stats dd{margin:0;font-family:var(--mono);font-size:22px;font-weight:500;letter-spacing:-.5px;color:var(--ink);font-variant-numeric:tabular-nums}
body.v2 .ledger-stats dd small{font-family:var(--f-body,inherit);font-size:13px;color:var(--muted);margin-left:2px;letter-spacing:0}
body.v2 .ledger-groups{list-style:none;margin:0;padding:0}
body.v2 .ledger-groups li{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px dashed var(--rule);font-size:14px}
body.v2 .ledger-groups .lg-name{flex:1;min-width:0;color:var(--text)}
body.v2 .ledger-groups .lg-meta{font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
body.v2 .ledger-groups .dh-flag{font-size:11px}
body.v2 .v2-more{display:inline-block;margin-top:14px;font-size:13.5px;color:var(--ink);text-decoration:underline;text-underline-offset:4px}

/* 저장 줄 */
body.v2 .saved-strip{margin-top:40px;border-radius:10px;background:var(--surface);border-color:var(--rule)}

/* 업계 브리핑 */
body.v2 .industry-section{margin-top:72px;padding-top:22px;border-top:1px solid var(--rule-strong)}
body.v2 .sectionhead{margin:0 0 6px}
body.v2 .sectionhead h2{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.02em;color:var(--ink);margin:6px 0 0}
body.v2 .section-desc{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
body.v2 .text-button{color:var(--muted)}
body.v2 .text-button:hover{color:var(--ink)}
body.v2 .newsgrid{gap:0 28px}
body.v2 .newscard{background:none;border:0;border-top:1px solid var(--rule);border-radius:0;padding:16px 0 18px;min-height:0;transition:none}
body.v2 .newscard:hover{transform:none;border-color:var(--rule)}
body.v2 .newscard .tag{background:none;padding:0;border-radius:0;font-size:12px;font-weight:600;color:var(--accent)}
body.v2 .newscard h3{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.45;margin:8px 0 8px}
body.v2 .newscard p{font-size:13.5px;line-height:1.65;color:var(--text);margin:0 0 12px}
body.v2 .newscard small{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
body.v2 .newscard img{border-radius:6px;filter:saturate(.85)}
body.v2 .community-banner{background:none;border:0;border-top:1px solid var(--rule);border-radius:0;padding:22px 0;margin-top:30px}
body.v2 .community-banner h3{font-family:var(--serif);font-weight:500;font-size:17px;line-height:1.6;color:var(--ink);margin-top:8px}
body.v2 .community-banner .secondary{border-color:var(--rule);color:var(--text);background:var(--surface)}
body.v2 .recent-research-section{margin-top:40px}

/* 다른 탭 공통 정리 */
body.v2 .hero,body.v2 .briefcover{background:var(--surface);border:1px solid var(--rule);border-radius:12px}
body.v2 .hero h1,body.v2 .hero h2,body.v2 .briefcover h1,body.v2 .briefcover h2{font-family:var(--serif);font-weight:600;color:var(--ink)}
body.v2 .card,body.v2 .detail-surface{border-color:var(--rule);border-radius:12px;box-shadow:none}
body.v2 .primary{background:var(--accent);box-shadow:none}
body.v2 .primary:hover{background:#4a3cad}
body.v2 .tag{background:var(--accent-soft);color:var(--accent)}

body.v2 footer{max-width:1120px;border-top:1px solid var(--rule);padding:26px 28px 40px}
body.v2 .footer-brand{font-family:var(--serif);font-weight:600;color:var(--ink)}

body.v2 .brand,body.v2 .brand b,body.v2 header>.secondary,body.v2 .saved-button{white-space:nowrap;flex-shrink:0}
body.v2 nav{min-width:0;overflow-x:auto;scrollbar-width:none}
body.v2 nav::-webkit-scrollbar{display:none}
@media (max-width:1100px){
  body.v2 header{flex-wrap:wrap;row-gap:6px;padding-bottom:0}
  body.v2 .brand{margin-right:auto}
  body.v2 nav{order:3;width:100%;justify-content:flex-start}
}
@media (max-width:820px){
  body.v2 .v2-index{grid-template-columns:1fr;gap:44px}
}
@media (max-width:740px){
  body.v2 header{padding:12px 16px 0}
  body.v2 header::after{left:0;right:0}
  body.v2 nav{order:3;width:100%;gap:0;margin:0 -4px}
  body.v2 nav a,body.v2 nav button{padding:10px 9px;font-size:13.5px}
  body.v2 main:not([class]){padding:0 16px 56px}
  body.v2 .v2-hero{padding:38px 0 20px}
  body.v2 .v2-lede{font-size:15px}
  body.v2 .searchrow{padding:4px 4px 4px 14px}
  body.v2 .searchrow input{height:46px;font-size:16px}
  body.v2 .searchrow .primary{min-width:64px;min-height:46px;padding:0 12px}
  body.v2 .searchrow .primary span{display:none}
  body.v2 .chips .muted{display:none}
  body.v2 #ranking{grid-template-columns:1fr}
  body.v2 .rankrow:nth-child(n+7){display:none}
  body.v2 .ledger-stats dd{font-size:18px}
  body.v2 .newsgrid{grid-template-columns:1fr}
  body.v2 footer{padding:22px 16px 34px}
}
@media (prefers-reduced-motion:reduce){body.v2 .searchrow{transition:none}}

/* 최근 업데이트 목록 */
body.v2 .v2-fresh{display:inline-flex;align-items:center;gap:6px}
body.v2 .v2-fresh.fresh::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}
body.v2 .v2-fresh.fresh{color:var(--ok);font-weight:600}
body.v2 .upd-list{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid var(--rule)}
body.v2 .upd-list li{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule)}
body.v2 .upd-list time{font-family:var(--mono);font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
body.v2 .upd-list li:first-child time{color:var(--ink);font-weight:500}
body.v2 .upd-list p{margin:0;font-size:14px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
body.v2 .upd-list p a{color:var(--ink);text-decoration:none}
body.v2 .upd-list p a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
body.v2 .upd-tag{display:inline-block;margin-right:7px;font-size:11.5px;font-weight:600;color:var(--accent)}
body.v2 .upd-list small{display:block;margin-top:2px;font-size:12.5px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
body.v2 .upd-list em{font-style:normal;font-size:11.5px;color:var(--faint);white-space:nowrap}
body.v2 .upd-flag{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
@media (max-width:740px){body.v2 .upd-list li{grid-template-columns:38px minmax(0,1fr)}body.v2 .upd-list em{display:none}}

/* 다른 화면(성분 페이지·처방 점검·목록)에도 같은 톤 */
body.v2 .ingredient-heading h1,body.v2 .ix .ix-head h1,body.v2 .cl h1{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;color:var(--ink)}
body.v2 .ingredient-card h2{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;color:var(--ink);border-bottom-width:1px;border-bottom-color:var(--rule-strong)}
body.v2 .ingredient-card{border-color:var(--rule);box-shadow:none}
body.v2 .ingredient-breadcrumb a{color:var(--muted)}
body.v2 .secondary{border-color:var(--rule);color:var(--text)}
body.v2 .secondary:hover{background:#fbfbfa;border-color:#cfcfca}
body.v2 .check-header{max-width:1120px}
body.v2 h1{font-family:var(--serif);font-weight:600;letter-spacing:-.02em}
body.v2 header{justify-content:flex-start}
body.v2 header>nav{margin-right:auto}
body.v2 .ingredient-heading{background:var(--surface);border-color:var(--rule);box-shadow:none}
