/* 팔자 공용 셸 (2026-09-02) — 사주(index)·궁합(compat)·집중(focus)이 같은 헤더·폼·동의·결과 모양을 쓴다.
   페이지를 오갈 때 위쪽이 바뀌면 허접해 보인다(CEO). 토큰과 폼 규칙은 index.html 과 같은 값. */
@font-face{font-family:'Noto Serif KR Sub';src:url('/fonts/noto-serif-kr-600.woff2') format('woff2');
    font-weight:600;font-style:normal;font-display:swap;
    size-adjust:100%;ascent-override:88%;descent-override:22%}
@font-face{font-family:'Noto Serif KR Sub';src:url('/fonts/noto-serif-kr-700.woff2') format('woff2');
    font-weight:700;font-style:normal;font-display:swap;
    size-adjust:100%;ascent-override:88%;descent-override:22%}
:root{
  color-scheme:dark;
  --display:'Noto Serif KR Sub','Noto Serif KR',AppleMyungjo,'Songti SC',Batang,serif;
  --body:-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --ground:#141719; --plate:#1B1F21; --plate-2:#171A1C; --surface:var(--plate);
  --line:#2B3033; --line-2:#3A4144;
  --ink:#F4F1EA; --sub:#9AA3A5; --faint:#829194;
  --el-water:#6FAFBB; --el-fire:#C17C74; --el-earth:#A38C40; --el-wood:#639B5B; --el-metal:#928A9E;
  --accent:var(--el-water); --brand:#E06A57;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--sub);font-family:var(--body);font-size:15px;line-height:1.8;-webkit-text-size-adjust:100%}
a{color:var(--accent);text-decoration:none}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.sub{color:var(--sub)}
.hidden{display:none}
/* 컬럼 — index .page 와 같은 660px */
.page{max-width:660px;margin:0 auto;padding:56px 20px 96px}
/* 헤더 — index 첫 화면과 동일 */
.hero{text-align:center;margin-bottom:40px}
.hero .brand{margin-top:0;font-size:11px;letter-spacing:.25em;color:var(--faint)}
.hero h1{font-family:var(--display);font-size:44px;margin:14px 0 2px;letter-spacing:.02em;color:var(--ink);font-weight:700}
.hero .palja{font-size:12px;letter-spacing:.3em;color:var(--brand);margin-bottom:14px}
.hero .tag{font-size:14px;max-width:38ch;margin:0 auto;color:var(--sub)}
.hero .pos{font-size:11px;letter-spacing:.08em;color:var(--faint);margin:12px auto 0}
/* 상품 칩 */
.chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:0 0 16px}
.chips a{font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--faint);white-space:nowrap}
.chips a.on{background:var(--accent);border-color:var(--accent);color:var(--ground);font-weight:700}
.chips a small{opacity:.75;margin-left:4px;font-size:10px}
.chips a .ss{font-size:9px;color:var(--brand);margin-left:4px;letter-spacing:.1em}
/* 폼 — index 와 같은 규칙(각진 입력·브랜드색 토글·먹색 버튼) */
.form{max-width:420px;margin:0 auto}
.form h2{font-family:var(--display);font-size:20px;color:var(--ink);margin:0 0 4px;font-weight:700}
.form .lede{color:var(--faint);font-size:14px;margin:0 0 18px}
label{display:block;font-size:13px;color:var(--sub);margin:18px 0 6px}
.who{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--faint);margin:26px 0 4px}
.who.me{color:var(--accent)}
input,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);font-size:15px;font-family:inherit}
input::placeholder{color:var(--faint)}
input[type=number]{-moz-appearance:textfield}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.row{display:flex;gap:8px}
.seg{display:flex;gap:8px}
.seg button{flex:1;padding:10px;border:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--sub);font-size:14px;cursor:pointer}
.seg button.on{background:var(--brand);color:var(--ground);border-color:var(--brand)}
.hint{font-size:12px;color:var(--faint);margin-top:6px}
.go{width:100%;margin-top:20px;padding:14px;border:none;border-radius:0;background:var(--ink);color:var(--ground);font-size:16px;font-weight:700;cursor:pointer}
.go:disabled{background:rgba(180,190,192,.22);color:var(--faint);cursor:not-allowed}
/* 동의 — 생년월일·성별은 개인정보다. 목적·항목·보유·거부권 네 가지를 밝힌다. index 와 동일. */
.agree{display:flex;align-items:flex-start;gap:9px;margin-top:22px;cursor:pointer;font-size:13.5px;color:var(--sub);line-height:1.55}
.agree input{flex:0 0 auto;width:17px;height:17px;margin:1px 0 0;accent-color:var(--accent);cursor:pointer}
.agree-more{background:none;border:none;padding:0 0 1px;margin-left:2px;color:var(--accent);font-size:12.5px;cursor:pointer;text-decoration:underline}
.agree-box{margin:10px 0 0 26px;display:grid;gap:7px;font-size:12.5px;line-height:1.65;color:var(--faint)}
.agree-box[hidden]{display:none}  /* display:grid 가 hidden 을 눌러 상세가 늘 펼쳐져 있었다 (2026-09-07) */
.agree-box b{color:var(--sub);font-weight:700;margin-right:6px}
/* 결과 — compat 의 모양 유지(세 페이지 결과부는 이미 같은 언어) */
#out{margin-top:8px}
.price{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.06em;text-align:center;margin:0 0 6px}
.vname{font-family:var(--display);font-size:27px;font-weight:700;color:var(--ink);text-align:center;margin:26px 0 10px;letter-spacing:.01em}
.vhead{font-size:16px;color:var(--sub);text-align:center;line-height:1.7;margin:0 auto 4px;max-width:420px}
.pair-viz{display:flex;align-items:center;justify-content:center;gap:8px;margin:26px 0 22px}
.node{width:74px;height:74px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid;background:var(--plate)}
.node .el{font-family:var(--display);font-size:22px;font-weight:700;line-height:1}
.node .who{font-size:10px;font-family:var(--mono);color:var(--faint);margin:3px 0 0;letter-spacing:.08em}
.arrow{display:flex;flex-direction:column;align-items:center;color:var(--faint);min-width:64px}
.arrow .glyph{font-size:20px;line-height:1}
.arrow .lab{font-size:11px;font-family:var(--mono);margin-top:2px;letter-spacing:.06em}
.paywall{margin:26px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.paywall .cs{margin:0 0 26px}
.paywall .cs-t{font-family:var(--display);font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.02em;margin:0 0 8px}
.paywall .cs-tag{font-family:var(--body);font-size:12px;color:var(--faint);font-weight:400;margin-left:4px}
.paywall .cs-p{margin:0;line-height:1.85;color:var(--sub)}
.paywall .cs-ad{border-left:2px solid var(--accent);padding-left:14px}
.paywall .cs-ad .cs-p{color:var(--ink)}
.img{margin:18px auto 0;max-width:420px;text-align:center;font-size:15px;line-height:1.75;color:var(--ink);border-top:1px solid var(--line);padding-top:16px}
.err{color:var(--el-fire);text-align:center;margin-top:20px}
.cliff{margin:26px 0 4px;padding:18px 16px;background:var(--plate);border:1px solid var(--line);line-height:1.85;color:var(--ink);font-size:15px}
.toc{margin:24px 0 6px}
.toc-h{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;margin:0 0 12px}
.toc-i{display:flex;gap:12px;padding:11px 0;border-top:1px solid var(--line);align-items:baseline}
.toc-i:last-child{border-bottom:1px solid var(--line)}
.toc-n{font-family:var(--mono);font-size:12px;color:var(--accent);flex:0 0 18px;text-align:right}
.toc-x{font-size:13.5px;line-height:1.5;color:var(--faint)}
.toc-x b{color:var(--sub);font-weight:600}
.unlock{display:block;width:100%;margin:22px 0 8px;background:var(--ink);border:0;border-radius:0;color:var(--ground);font-family:var(--display);font-size:17px;font-weight:700;padding:15px 0;cursor:pointer;letter-spacing:.02em}
.unlock-note{text-align:center;font-size:12px;color:var(--faint);margin:0}
.save{display:block;width:100%;margin:26px 0 8px;background:var(--plate);border:1px solid var(--line-2);border-radius:0;color:var(--ink);font-family:var(--display);font-size:15px;font-weight:700;padding:13px 0;cursor:pointer}
.save-note{text-align:center;font-size:12px;color:var(--faint);margin:0 0 10px;line-height:1.6}
.again{display:block;text-align:center;margin-top:34px;font-size:13px;font-family:var(--mono);color:var(--faint)}
.season{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--brand);border:1px solid var(--brand);padding:2px 6px;margin-left:8px;vertical-align:middle}

/* ── 집중 리포트 시각 요소 (2026-09-06) — 전부 계산된 숫자로 그린다 ── */
.paywall .cs-p + .cs-p{margin-top:12px}
.paywall .cs-n{font-size:11px;color:var(--faint);margin-right:8px;letter-spacing:.06em}
.paywall .cs-close{border-top:1px solid var(--line);padding-top:22px}
.paywall .cs-close .cs-p{color:var(--ink)}
.vz{margin:6px 0 16px;padding:14px 12px 10px;background:var(--plate);border:1px solid var(--line)}
.vz-cap{margin:10px 0 0;font-size:11px;line-height:1.55;color:var(--faint);letter-spacing:.02em}
/* 오행 막대 */
.vzb{display:grid;grid-template-columns:34px 1fr 22px;align-items:center;gap:10px;margin:0 0 9px}
.vzb-k{font-size:12px;color:var(--sub)}
.vzb-t{height:7px;background:rgba(255,255,255,.06);overflow:hidden}
.vzb-t i{display:block;height:100%;background:var(--line-2)}
.vzb.hi .vzb-t i{background:var(--accent)}
.vzb.hi .vzb-k,.vzb.hi .vzb-n{color:var(--ink);font-weight:700}
.vzb-n{font-size:12px;color:var(--sub);text-align:right}
.vzb.zero .vzb-k,.vzb.zero .vzb-n{color:var(--faint)}
/* 연도 타임라인 — 과거 10 + 앞 12 = 22칸 */
.vzt-row{display:flex;gap:3px;align-items:flex-end}
.vzt{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px}
.vzt i{display:block;width:100%;background:var(--line-2);height:14px;opacity:.55}
.vzt.flat i{height:22px}.vzt.up i{height:36px}.vzt.dn i{height:10px}
.vzt.hit i{background:var(--accent);opacity:1}
.vzt.past i{opacity:.35}.vzt.past.hit i{opacity:.7}
.vzt b{font-size:9px;font-weight:400;color:var(--faint);letter-spacing:0;white-space:nowrap}
.vzt.hit b{color:var(--sub)}
.vzt.now b{color:var(--ink);font-weight:700;font-size:10px}
.vzt.now{position:relative}
.vzt.now::after{content:'';position:absolute;bottom:-4px;left:20%;right:20%;height:2px;background:var(--brand)}
/* 열두 달 그리드 — 4행(일·돈·인연·몸) × 12열 */
.vzm-grid{display:grid;grid-template-columns:30px repeat(12,1fr);gap:4px 2px;align-items:center}
.vzm-head{font-size:10px;color:var(--faint);text-align:center}
.vzm-lab{font-size:11px;color:var(--sub)}
.vzm-c{display:flex;justify-content:center;align-items:center;height:22px;background:rgba(255,255,255,.03)}
.vzm-c i{display:block;width:6px;height:6px;border-radius:50%;background:transparent}
.vzm-c.good i{background:var(--accent);width:9px;height:9px}
.vzm-c.bad i{background:var(--el-fire);width:9px;height:9px}

.vzm-grid.vzm-12{grid-template-columns:34px repeat(12,1fr)}
.vzm-12 .vzm-head{font-size:9px}

/* 법정 푸터 — 전자상거래법 사업자정보 표시 의무. PG 심사 요건상 결제 페이지에도 상시 노출된다.
   ⛔ 리포트로 넘어갈 때 같이 사라지는 자리(#form 안)에 두지 말 것. */
.site-foot{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);text-align:center;line-height:1.9}
.site-foot .foot-links{font-family:var(--mono);font-size:12px;letter-spacing:.04em}
.site-foot .foot-links a{color:var(--sub);text-decoration:none}
.site-foot .foot-links span{color:var(--line-2);margin:0 6px}
.site-foot .foot-biz{font-size:11px;line-height:1.8;color:var(--faint);margin-top:8px}
