:root {
  --bg: #f7f7f5; --panel: #ffffff; --line: #e4e3de; --text: #1d1d1b; --muted: #74736d;
  --accent: #4a4a46; --accent-soft: #ecebe6; --accent-text: #fff;   /* 루트는 포인트 색 없음(10-28): 무채색. 사이트 색은 각 사이트 site.css가 덮는다 */
  --error: #b5473a; --error-soft: #f8e4e1; --warn: #8d5b08; --warn-soft: #f8ecd6; --info: #3d5f8a; --info-soft: #e3ebf5; --ok: #23784f;
  --code: #f1f0ec; --radius: 14px;
  font: 15px/1.6 -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #161615; --panel: #1f1f1d; --line: #33332f; --text: #ecebe6; --muted: #9a9993;
    --accent: #c9c8c2; --accent-soft: #2a2a27; --accent-text: #161615;
    --error: #e07a6a; --error-soft: #3a221e; --warn: #e3a94a; --warn-soft: #3a2f1c; --info: #8fb2e0; --info-soft: #1e2a3a; --ok: #5ccb92; --code: #2a2a27;
  }
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--bg); color: var(--text); }
a { color: var(--accent); }
h1 { font-size: 26px; line-height: 1.3; margin: 0 0 8px; letter-spacing: -.01em; }
h2 { font-size: 17px; margin: 0 0 10px; }
h3 { font-size: 15px; margin: 14px 0 6px; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
/* 사이트 틀 */
.top { display: flex; align-items: center; gap: 12px; max-width: 980px; margin: 0 auto; padding: 14px 16px; }
.brand { font-weight: 800; font-size: 18px; color: var(--text); text-decoration: none; }
.lang { margin-left: auto; font-size: 14px; padding: 10px 4px; }
main { max-width: 980px; margin: 0 auto; padding: 8px 16px 40px; display: flex; flex-direction: column; gap: 18px; }
.lead { margin: 0; font-size: 16px; }
.note { margin: 0; font-size: 14px; color: var(--ok); }
.doc { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; }
.doc p:last-child { margin-bottom: 0; }
.doc ol { margin: 0; padding-left: 22px; }
.doc li { margin: 4px 0; }
footer { max-width: 980px; margin: 0 auto; padding: 20px 16px 40px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
footer a { padding: 8px 0; }
footer p { flex-basis: 100%; margin: 4px 0 0; }
@media (max-width: 600px) { h1 { font-size: 22px; } .doc { padding: 16px; } }
.prose h1 { font-size: 24px; }
.prose h2 { font-size: 18px; margin: 22px 0 8px; }
.prose p { margin: 0 0 12px; }
.prose pre { background: var(--code); border-radius: 10px; padding: 12px 14px; overflow-x: auto; font: 13px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.prose code { background: var(--code); border-radius: 4px; padding: 1px 5px; font: 13px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; overflow-wrap: anywhere; }
.prose pre code { background: none; padding: 0; overflow-wrap: normal; }
.prose a { overflow-wrap: anywhere; }
.prose .table { overflow-x: auto; margin: 0 0 12px; }
.prose table { border-collapse: collapse; font-size: 14px; min-width: 100%; }
.prose th, .prose td { border: 1px solid var(--line); padding: 6px 10px; text-align: left; vertical-align: top; }
.prose th { background: var(--code); font-weight: 600; }
.prose .num { text-align: right; font-variant-numeric: tabular-nums; }
.btn-link { display: inline-block; padding: 10px 18px; border-radius: 12px; background: var(--accent); color: var(--accent-text); font-weight: 600; text-decoration: none; }
/* 사이트 틀: 머리 메뉴 */
.top nav { margin-left: auto; display: flex; gap: 14px; font-size: 14px; }
.top nav a { padding: 10px 2px; }
/* 머리 줄 링크(404 표지 이름·메뉴): 누르는 칸 높이 44px 이상. 칸이 커진 만큼 머리 줄 위아래 여백을 줄여 높이는 그대로 */
.top { padding-top: 4px; padding-bottom: 4px; }
.top .brand, .top nav a { display: inline-flex; align-items: center; min-height: 44px; }
/* 계산기 */
.calc { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
.calc .fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.calc label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 14px; }
.calc select, .calc input { font: inherit; font-size: 16px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); min-height: 44px; width: 100%; }
.calc .money { grid-column: 1 / -1; }
.calc .fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .calc .fields.two .money { grid-column: auto; }
.calc .hint { font-weight: 400; color: var(--muted); font-size: 13px; min-height: 1.2em; }
.result { border-top: 1px solid var(--line); padding-top: 14px; display: flex; flex-direction: column; gap: 10px; }
.result .cap { font-size: 15px; }
.result .cap b { display: block; font-size: 28px; line-height: 1.25; color: var(--accent); font-variant-numeric: tabular-nums; }
.result dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; font-size: 14px; }
.result dt { color: var(--muted); }
.result dd { margin: 0; font-variant-numeric: tabular-nums; }
.result ul { margin: 0; padding-left: 18px; font-size: 14px; }
.result li { margin: 3px 0; }
.result .fraction { margin: 0; font-size: 13px; color: var(--muted); }
.calc [hidden] { display: none; }
.to-jeonse { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--warn-soft); color: var(--warn); font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.to-jeonse button { font: inherit; font-size: 14px; padding: 6px 14px; cursor: pointer; border: 0; }
.guide-list { list-style: none; padding: 0; margin: 0; } .guide-list li { padding: 12px 0; border-top: 1px solid var(--line); } .guide-list p { margin: 4px 0 0; }
/* 표지 두 줄(ROOT_LINKS=1): 줄 전체가 링크(누르는 칸 44px 이상). 글자·줄 사이·선은 .guide-list 그대로, 상자 첫 줄 위 선 없음 */
.guide-list.rows { margin: -12px 0; } .guide-list.rows li { padding: 0; } .guide-list.rows li:first-child { border-top: 0; }
.guide-list.rows a { display: block; min-height: 44px; padding: 12px 0; color: var(--text); text-decoration: none; }
.guide-list.rows .name { color: var(--accent); text-decoration: underline; } .guide-list.rows .small { display: block; margin-top: 4px; }
.out-of-scope, .bad-input { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.basis { font-size: 13px; color: var(--muted); }
.basis p { margin: 0 0 8px; }
.basis ul { margin: 0; padding-left: 18px; }
@media (max-width: 600px) { .calc { padding: 16px; } .calc .fields, .calc .fields.two { grid-template-columns: 1fr; } .top { flex-wrap: wrap; row-gap: 0; } .top nav { gap: 10px; } .result .cap b { font-size: 24px; } }
/* 월급 타이머 — 큰 숫자 하나 */
.timer { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.timer p { margin: 0; }
.t-head { font-weight: 600; color: var(--muted); font-variant-numeric: tabular-nums; }
.timer[data-state="work"] #t-label { color: var(--accent); }
.timer[data-state="empty"] .t-head, .timer:not([data-state="empty"]) .t-empty { display: none; }
.t-big { font-variant-numeric: tabular-nums; line-height: 1.1; }
.t-big span { font-size: 48px; font-weight: 800; color: var(--accent); letter-spacing: -.02em; overflow-wrap: anywhere; }
.t-big small { font-size: 14px; color: var(--muted); font-weight: 600; }
.t-bar { height: 10px; border-radius: 5px; background: var(--line); overflow: hidden; }
.t-bar i { display: block; height: 100%; background: var(--accent); transform-origin: left; transform: scaleX(0); }
.t-sub { font-variant-numeric: tabular-nums; }
.t-list { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 4px 0 0; font-size: 14px; font-variant-numeric: tabular-nums; }
.t-list dt { color: var(--muted); } .t-list dd { margin: 0; }
.t-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.t-actions button, .shared-banner button { font: inherit; font-size: 15px; font-weight: 600; min-height: 44px; padding: 8px 16px; border-radius: 12px; border: 0; background: var(--accent); color: var(--accent-text); cursor: pointer; }
.t-actions button.ghost, .shared-banner button { background: var(--accent-soft); color: var(--accent); }
.t-actions .check { display: flex; align-items: center; gap: 6px; font-size: 14px; min-height: 44px; }
.t-actions .check input { width: 18px; height: 18px; }
.share-link { flex-basis: 100%; font: 13px ui-monospace, SFMono-Regular, Menlo, monospace; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--muted); min-width: 0; }
.t-actions p { flex-basis: 100%; margin: 0; min-height: 1.2em; }
.shared-banner { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--info-soft); color: var(--info); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.settings > summary { cursor: pointer; font-weight: 700; padding: 10px 2px; min-height: 44px; }
.settings .calc { margin-top: 6px; }
.calc .money-in { grid-column: auto; }
.days { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.days legend { font-weight: 600; font-size: 14px; padding: 0; margin-bottom: 6px; }
.calc .days label { flex-direction: row; align-items: center; gap: 6px; font-weight: 400; min-height: 44px; }
.calc .days input { width: 20px; height: 20px; min-height: 0; }
#form-error:empty { display: none; }
@media (max-width: 600px) { .t-big span { font-size: 40px; } .timer { padding: 16px; } }
@media (max-width: 600px) { #salary-form .fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } #salary-form input[type=time] { padding: 10px 8px; } .days { gap: 0 10px; } .calc .days label { gap: 4px; } }
.timer[data-state="empty"] :is(.t-sub, .t-list, .t-actions, .t-bar) { display: none; }
.t-sub .muted { white-space: nowrap; }
#share-note:empty { display: none; }

/* 루트 안내 화면: 한글 낱말 중간에서 줄을 나누지 않는다(두 사이트 10/29 묶음과 같은 규칙) */
body { word-break: keep-all; overflow-wrap: anywhere; }

/* 사이트 머리·바닥(gnav.mjs 짝, rsites-1028). 토큰은 tokens.css 것(--sp-*, --text, --muted, --accent, --line, --panel) — 사이트마다 다른 것은 :root의 accent 셋뿐. 고정하지 않는다(#main 스크롤 규칙과 무관) */
.gnav { background: var(--panel); border-bottom: 1px solid var(--line); }
.gnav-in { max-width: 960px; margin: 0 auto; padding: 0 16px; display: flex; align-items: center; gap: 4px 16px; }
.gnav a { color: var(--text); text-decoration: none; display: inline-flex; align-items: center; min-height: 48px; white-space: nowrap; }
.gnav-brand { gap: 8px; }
.gnav-name { font-weight: 800; font-size: 17px; letter-spacing: -.01em; color: var(--accent); }
.gnav-tag { font-size: 13px; color: var(--muted); }
.gnav nav[data-site-nav] { margin-left: auto; display: flex; gap: 20px; font-size: 15px; }
.gnav nav[data-site-nav] a { color: var(--muted); font-weight: 600; border-bottom: 2px solid transparent; min-width: 44px; justify-content: center; }   /* 누르는 칸 가로도 44 */
.gnav nav[data-site-nav] a[aria-current="page"] { color: var(--text); border-bottom-color: var(--text); }
.gnav a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
/* 넓은 화면(560 이상): 칸 폭이 같으면 짧은 글자('여행') 양옆만 비어 보여서, 글자 폭 + 같은 좌우 16으로 글자 사이를 고르게(32). 현재 칸 밑줄은 글자 폭.
   마지막 칸의 오른쪽 16은 margin-right로 상쇄해 글자 끝을 본문 오른쪽 끝에 맞춘다. 559 아래는 아래 규칙(칸 폭 같음·고르게) 그대로 */
@media (min-width: 560px) {
  .gnav nav[data-site-nav] { gap: 0; margin-right: -16px; }
  .gnav nav[data-site-nav] a { min-width: 0; padding: 0 16px; border-bottom: 0; position: relative; }
  .gnav nav[data-site-nav] a[aria-current="page"]::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 2px; background: var(--text); }
}
/* 바닥 맨 아래 '다른 도구 모음 →' 한 줄(작게, 사이트 바닥 링크와 떨어지게) */
.gfoot .gfoot-all-p { margin: var(--sp-4) 0 0; font-size: 13px; }
.gfoot .gfoot-all { color: var(--muted); display: inline-flex; align-items: center; min-height: 44px; }
/* 휴대폰: 380 이상은 이름(+설명)과 네 칸까지 한 줄(머리 48), 그보다 좁으면 이름 한 줄 + 칸 한 줄(고르게, 줄바꿈·가로 스크롤 없음) */
@media (max-width: 559px) {
  .gnav-in { gap: 0 12px; }
  .gnav-name { font-size: 15px; }
  .gnav-tag { font-size: 12px; }
  .gnav nav[data-site-nav] { gap: 12px; font-size: 14px; }
}
/* 380보다 좁거나, 칸이 다섯 이상(새 칸 가정)이면 559 아래에서 이름 한 줄 + 칸 한 줄 */
@media (max-width: 379px) {
  .gnav-in { flex-wrap: wrap; }
  .gnav .gnav-brand { min-height: 44px; }   /* .gnav a(48)보다 세게 — 두 줄 머리 44 + 44 */
  .gnav nav[data-site-nav] { margin-left: 0; flex-basis: 100%; justify-content: space-between; gap: 0; }
  .gnav nav[data-site-nav] a { min-height: 44px; }
}
@media (max-width: 559px) {
  .gnav-in:has(nav[data-site-nav] a:nth-child(5)) { flex-wrap: wrap; }
  .gnav-in:has(nav[data-site-nav] a:nth-child(5)) .gnav-brand { min-height: 44px; }
  .gnav-in:has(nav[data-site-nav] a:nth-child(5)) nav[data-site-nav] { margin-left: 0; flex-basis: 100%; justify-content: space-between; gap: 0; }
  .gnav-in:has(nav[data-site-nav] a:nth-child(5)) nav[data-site-nav] a { min-height: 44px; }
}
/* 가운뎃점 묶음(ui/nw.mjs bindDots): '·' 앞뒤 한 글자가 한 덩어리 — 줄 첫머리에 '·'가 오지 않게(네 사이트 공통) */
.nw { white-space: nowrap; }

/* 입구·목록 화면(개편 10-28, plan 85cd2a41 토큰표): 회색 바탕 위 흰 카드 묶음, 카드 안 한 줄 목록, 위 타일 6. 이모지·그림자·꽉 찬 큰 버튼 없음 */
:root { --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --r-card: 16px; --r-icon: 10px; }
body { background: var(--bg); }
main.home { max-width: 960px; gap: var(--sp-3); padding-top: var(--sp-6); }   /* 머리 아래 첫 줄까지 32 — 사이트 전체 같은 값(10-28) */
.hero h1 { font-size: 24px; line-height: 1.3; font-weight: 700; letter-spacing: -.02em; margin: 0; }
.hero-sub { margin: var(--sp-1) 0 var(--sp-1); font-size: 13px; color: var(--muted); }
/* 아이콘 칸: 둥근 사각 안 선 아이콘(accent) */
.mk { flex: none; width: 40px; height: 40px; border-radius: var(--r-icon); background: var(--accent-soft); color: var(--accent); display: inline-flex; align-items: center; justify-content: center; }
.mk .ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
/* 타일 6: 390은 2열×3줄, 720 이상은 3열×2줄(6열은 이름이 두 줄로 꺾여 뺌). 칸 높이는 줄마다 같게 */
.tiles li { display: flex; }
.tiles li > a { flex: 1; }
.tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-rows: 1fr; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
.tiles a { display: flex; flex-direction: column; gap: 6px; min-height: 84px; padding: 14px; border-radius: var(--r-card); background: var(--panel); color: var(--text); text-decoration: none; }
/* 아이콘과 이름은 한 줄, 설명은 아래(타일 안 빈 곳 줄이기) */
.tiles .tt { display: flex; align-items: center; gap: 10px; }
.tiles .mk { width: 36px; height: 36px; }
.tiles .mk .ico { width: 24px; height: 24px; }
.tiles .tn { font-weight: 700; font-size: 16px; line-height: 1.3; }
.tiles .td { font-size: 13px; color: var(--muted); line-height: 1.3; }
.tiles .live { font-size: 13px; line-height: 1.3; color: var(--text); font-variant-numeric: tabular-nums; min-height: 1.3em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }   /* 한 줄 고정: 글이 바뀌어도 높이 같음(CLS 0) */
.tiles .live b { font-weight: 600; color: var(--accent); }
.tiles a:hover, .rows a:hover { background: color-mix(in srgb, var(--panel) 92%, var(--accent)); }
@media (min-width: 720px) { .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); } .hero h1 { font-size: 28px; } }
/* 글자 아이콘 칸(자격증 시험): 두세 글자도 칸 안에 */
.mk-t { font-size: 12px; font-weight: 700; letter-spacing: -.02em; width: 64px; }   /* 시험 줄임말(컴활·한능검·전산회계…) — 칸 너비를 같게 */
/* 구역 색조: 아이콘 칸만 */
.t-office .mk { background: var(--info-soft); color: var(--info); }
.t-cert .mk { background: var(--warn-soft); color: var(--warn); }
/* 맨 위 '새로' 띠 */
.newsbar { display: flex; flex-direction: column; gap: 1px; border-radius: var(--r-card); overflow: hidden; background: var(--line); }
.news { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 16px; background: var(--panel); color: var(--text); text-decoration: none; font-size: 15px; }
.news-k { flex: none; font-size: 12px; font-weight: 700; padding: 4px 8px; border-radius: 999px; background: var(--warn-soft); color: var(--warn); }
.news-t { flex: 1; min-width: 0; }
.news .chev { color: var(--muted); font-size: 20px; }
.eyebrow { margin: 0 0 var(--sp-1); font-size: 13px; font-weight: 600; color: var(--accent); }
/* 광고 자리: 연결 전에는 숨김(hidden), 켤 때 문구 '교재 추천 준비 중' */
.ad-slot[hidden] { display: none; }
.ad-slot { display: flex; align-items: center; gap: 8px; margin: var(--sp-1) 20px var(--sp-3); padding: 12px 14px; border: 1px dashed var(--line); border-radius: 10px; font-size: 13px; color: var(--muted); }
.ad-k { font-size: 11px; font-weight: 700; padding: 2px 6px; border: 1px solid var(--line); border-radius: 4px; }
/* 묶음 카드 */
.groups { display: flex; flex-direction: column; gap: var(--sp-3); margin-top: var(--sp-2); }
@media (min-width: 720px) { .groups { display: grid; } }
/* 720 이상은 두 단(카드가 길이가 달라 격자면 빈 곳이 생김 → 단 나눔) */
.gcol { display: contents; }
.groups .o1 { order: 1; } .groups .o2 { order: 2; } .groups .o3 { order: 3; } .groups .o4 { order: 4; } .groups .o5 { order: 5; } .groups .o6 { order: 6; }
/* 720 이상은 두 열: 왼쪽 계산기·사무 도구·English, 오른쪽 자격증·해설(home.json col — 줄 수 9:10으로 열 높이를 맞춤). 휴대폰은 home.json 순서(o1…) 한 열 */
@media (min-width: 720px) { .groups { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } .gcol { display: flex; flex-direction: column; gap: var(--sp-3); } }
.card { background: var(--panel); border-radius: var(--r-card); padding: var(--sp-2) 0; }
.card > h1, .card > p { padding: 0 20px; }
.card > h1 { margin-top: var(--sp-3); font-size: 20px; }
.card-h { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) 20px var(--sp-1); }
.card-h h2 { margin: 0; font-size: 17px; font-weight: 700; }
.card-h .more { font-size: 14px; color: var(--muted); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.rows { list-style: none; margin: 0; padding: 0; }
.rows a { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 10px 20px; color: var(--text); text-decoration: none; }
.rows .rt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.rows .rn { font-size: 16px; font-weight: 600; line-height: 1.35; }
.rows .rd { font-size: 13px; color: var(--muted); line-height: 1.35; }
.chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.chip { font-size: 12px; line-height: 1; padding: 5px 8px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); }
.rows .ext { color: var(--muted); display: inline-flex; vertical-align: -2px; }
.rows .ext .ico { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.rows .chev { color: var(--muted); font-size: 20px; line-height: 1; }
.gfoot { width: calc(100% - 32px); max-width: 928px; margin: var(--sp-5) auto 0; padding: var(--sp-4) 0 40px; border-top: 1px solid var(--line); }   /* 선 = 카드 폭(머리 960 − 안쪽 16×2), 글자 왼쪽 = 로고·h1 */
.gfoot nav { display: flex; flex-wrap: wrap; gap: 0 var(--sp-4); font-size: 14px; }
.gfoot nav a { color: var(--muted); padding: 12px 0; text-decoration: none; }
@media (prefers-color-scheme: dark) { .tiles a, .card, .news { border: 1px solid var(--line); } }
/* 검색 입구(10-28 09:37 '첫 화면은 검색 잘 노출되게만'): 루트 이름 머리(공통 내비 없음), 사이트 넷 소개 문단 카드. 꾸밈 최소 — 아이콘·타일 없음, 링크는 글자 링크 */
.rhead { background: var(--panel); border-bottom: 1px solid var(--line); }
.rhead-in { max-width: 960px; margin: 0 auto; padding: 0 16px; display: flex; align-items: center; min-height: 48px; }
.rhead-brand { font-weight: 800; font-size: 17px; color: var(--text); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
main.entry { max-width: 960px; gap: var(--sp-3); padding-top: var(--sp-6); }
.entry .hero-sub { font-size: 14px; line-height: 1.5; }
.site-sec { padding: var(--sp-3) 20px var(--sp-4); }
.site-sec h2 { margin: 0 0 var(--sp-2); font-size: 19px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.site-sec h2 a { color: var(--text); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.site-sec h2 a::after { content: '›'; margin-left: 6px; color: var(--muted); font-weight: 400; }
.site-k { font-size: 14px; font-weight: 600; color: var(--muted); }
.card.site-sec > p { margin: 0; padding: 0; line-height: 1.7; font-size: 16px; }   /* .card > p의 안쪽 20을 빼고 카드 안쪽(20) 한 번만 */
/* 루트는 포인트 색 없음(색 v1, 10-28): 글자 링크는 글자색 + 밑줄 */
main.entry p a { color: var(--text); text-decoration: underline; text-decoration-color: var(--muted); text-underline-offset: 3px; padding: 2px 0; }
main.entry p a:hover { text-decoration-color: var(--text); }

/* 자격증 구역(/cert/)만의 칸 — 머리·카드·줄·띠는 루트 /assets/site.css(site.css + gnav.css + home.css) 그대로. 값은 그 파일의 토큰(--sp-*, --line, --muted …) */
.cert .crumbs { display: flex; align-items: center; gap: var(--sp-2); font-size: 14px; color: var(--muted); margin-bottom: calc(-1 * var(--sp-2)); }
.cert .crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); }
.cert-body { padding: 0 20px var(--sp-3); }
.cert-body > p { margin: 0 0 var(--sp-3); }
.cert-body ol { margin: 0; padding-left: 22px; }
.cert-body li { margin: var(--sp-1) 0; }
.basis { margin: 0; font-size: 13px; color: var(--muted); }
.basis span { white-space: nowrap; }
.basis .src { white-space: normal; }
.basis a { display: inline-block; padding: var(--sp-1) 0; }
.facts { margin: 0 0 var(--sp-3); }
.facts > div { padding: var(--sp-3) 0; border-top: 1px solid var(--line); }
.facts > div:first-child { border-top: 0; padding-top: 0; }
.facts dt { font-weight: 600; font-size: 14px; color: var(--muted); margin-bottom: var(--sp-1); }
.facts dd { margin: 0; }
.facts dd p { margin: 0 0 var(--sp-1); }
.facts dd p:last-child { margin-bottom: 0; }
/* 상세 '미확인 범위' 목록 · 첫 쪽 갈래 소제목(메뉴 /cert/#갈래가 오는 자리) */
.unv { margin: 0 0 var(--sp-3); padding-left: 20px; }
.unv li { margin: var(--sp-1) 0; }
.cert .rows-h { scroll-margin-top: var(--sp-3); }
/* 시험 소식 상자: 패널 바탕 + 선 테두리 + 본문 글자, 제목 앞 선 아이콘(포인트 색). 이름은 .notice — 공통 site.css .note(초록 안내 줄)와 겹치지 않게 */
.notice { margin: 0 0 var(--sp-3); padding: var(--sp-3); background: var(--panel); border: 1px solid var(--line); border-radius: 10px; color: var(--text); }
.notice b { display: flex; align-items: center; gap: 6px; }
.notice .ico { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; color: var(--accent); }
.notice p { margin: var(--sp-1) 0 0; }
.cert-sec { scroll-margin-top: var(--sp-3); }
.cert-foot p { margin: 0 0 var(--sp-2); font-size: 13px; color: var(--muted); }
.story + .story { margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.story h3 { font-size: 16px; margin: 0 0 var(--sp-2); }
.story p { margin: 0 0 var(--sp-2); }
/* 여행 줄 번호 칸(40 정사각, 루트 아이콘 칸과 같은 크기) · 설명 줄 끝 한 글자가 홀로 넘어가지 않게 */
.mk.mk-n { font-size: 15px; font-weight: 700; }
.rows .rd { text-wrap: pretty; }
.rows-h { margin: var(--sp-2) 20px 0; font-size: 13px; font-weight: 700; color: var(--muted); }
/* 날짜 칩: 좁은 폭에서 날짜(YYYY-MM-DD)가 가운데서 끊기지 않게(320에서 '2026-11-' 줄바꿈) */
.chip .nw { white-space: nowrap; }

/* 포인트 색(cert) */
:root { --accent: #8d5b08; --accent-soft: #f8ecd6; --accent-text: #fff; }
@media (prefers-color-scheme: dark) { :root { --accent: #e3a94a; --accent-soft: #3a2f1c; --accent-text: #241a06; } }
