:root{
  --ink:#1f2a44; --gold:#a8834a; --paper:#fbf7ef; --line:#e6dccb; --muted:#6b6a66;
  --el-목:#4f8a5b; --el-화:#c8553d; --el-토:#c29a2a; --el-금:#8d969f; --el-수:#2f4f7f;
}
*{box-sizing:border-box}
body{margin:0;background:#ece8e1;font-family:'Noto Sans KR',sans-serif;color:var(--ink)}

/* ---------- 입력 화면 ---------- */
.app{max-width:760px;margin:0 auto;padding:24px 16px 8px}
.topbar h1{font-family:'Noto Serif KR',serif;font-size:26px;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 16px;font-size:14px}
.card{background:#fff;border-radius:14px;padding:18px 18px 10px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.card h2{font-size:16px;margin:0 0 12px;color:var(--gold)}
label{display:block;font-size:13px;color:#444;margin-bottom:10px}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;font:inherit;font-size:15px;border:1px solid #d9d3c7;border-radius:9px;background:#fff}
textarea{resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex;align-items:center;gap:8px;font-size:14px}
.check input{width:auto;margin:0}
.hint{font-size:12px;color:var(--muted);margin:2px 0 10px}
.adv summary{cursor:pointer;font-size:13px;color:var(--muted);margin-bottom:8px}
.btns{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.btns.main{margin:4px 0 8px}
button{font:inherit;font-size:15px;padding:12px 20px;border:0;border-radius:10px;background:var(--gold);color:#fff;cursor:pointer;font-weight:700}
button.dark{background:var(--ink)}
button.ghost{background:#f3ede2;color:var(--ink);font-weight:500;font-size:14px;padding:9px 14px}
button:disabled{opacity:.4;cursor:default}
.warn{color:#b3412e;font-size:13px;white-space:pre-line}

/* ---------- 리포트 (A4) ---------- */
#report{padding:10px 0 40px}
.page{width:210mm;height:297mm;margin:0 auto 18px;background:var(--paper);position:relative;overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.12);padding:22mm 20mm 20mm;font-family:'Noto Sans KR',sans-serif}
.page::before{content:"";position:absolute;inset:9mm;border:1px solid var(--line);pointer-events:none}
.page::after{content:"";position:absolute;inset:10.5mm;border:.5px solid var(--line);pointer-events:none}
.pghead{display:flex;justify-content:space-between;font-size:10.5pt;color:var(--gold);letter-spacing:.08em;margin-bottom:10mm}
.pgnum{position:absolute;bottom:13mm;left:0;right:0;text-align:center;font-size:9pt;color:#a9a191;letter-spacing:.2em}
.ptitle{font-family:'Noto Serif KR',serif;font-weight:900;font-size:26pt;margin:0 0 2mm}
.pkicker{font-size:10.5pt;color:var(--gold);letter-spacing:.15em;margin-bottom:3mm}
.lead{font-family:'Noto Serif KR',serif;font-size:14pt;color:var(--ink);margin:6mm 0 8mm;line-height:1.6}
.body p{font-size:12pt;line-height:1.95;margin:0 0 5mm;color:#2c2c2c;word-break:keep-all}
.tip{margin-top:8mm;padding:6mm 7mm;background:#fff;border-left:3px solid var(--gold);font-size:12pt;line-height:1.7;word-break:keep-all}
.tip b{color:var(--gold);display:block;font-size:10pt;letter-spacing:.12em;margin-bottom:1mm}
.ornament{text-align:center;color:var(--gold);letter-spacing:.6em;margin:6mm 0}

/* 표지 */
.cover{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:30mm}
.cover .shop{font-size:12pt;letter-spacing:.35em;color:var(--gold)}
.cover .who{font-family:'Noto Serif KR',serif;font-size:30pt;font-weight:900;margin:16mm 0 3mm}
.cover .what{font-family:'Noto Serif KR',serif;font-size:15pt;color:var(--muted)}
.eight{display:grid;grid-template-columns:repeat(4,30mm);gap:4mm;margin:18mm 0 10mm}
.eight .col{text-align:center}
.eight .lab{font-size:9.5pt;color:var(--muted);margin-bottom:2mm}
.eight .ch{font-family:'Noto Serif KR',serif;font-weight:700;font-size:30pt;line-height:1;height:24mm;display:flex;align-items:center;justify-content:center;border-radius:4mm;margin-bottom:3mm;color:#fff}
.eight .ko{font-size:9pt;opacity:.9;display:block;margin-top:1mm}
.meta{font-size:11pt;color:#555;line-height:1.9}
.disclaim{position:absolute;bottom:22mm;left:20mm;right:20mm;font-size:9pt;color:#a29a8a;text-align:center}

/* 한눈에 */
.me{display:flex;gap:7mm;align-items:center;background:#fff;border-radius:4mm;padding:6mm;margin-bottom:7mm}
.me .big{width:28mm;height:28mm;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-family:'Noto Serif KR',serif;font-weight:900;font-size:26pt;flex:none}
.me .big small{font-size:9pt;font-weight:400;font-family:'Noto Sans KR'}
.me h3{margin:0 0 1.5mm;font-family:'Noto Serif KR',serif;font-size:16pt}
.me p{margin:0;font-size:11pt;line-height:1.7;color:#444}
table.chart{width:100%;border-collapse:collapse;margin-bottom:7mm;background:#fff;font-size:10.5pt;text-align:center}
table.chart th,table.chart td{border:1px solid var(--line);padding:2.2mm 1mm}
table.chart th{background:#f4eee3;font-weight:500;color:#666;font-size:9.5pt}
table.chart .hz{font-family:'Noto Serif KR',serif;font-size:17pt;font-weight:700}
table.chart .god{font-size:9pt;color:var(--muted)}
.h4{font-family:'Noto Serif KR',serif;font-size:13pt;font-weight:700;margin:0 0 3mm}
.bars{background:#fff;border-radius:4mm;padding:5mm 6mm;margin-bottom:7mm}
.bar{display:flex;align-items:center;gap:3mm;margin:2mm 0;font-size:10.5pt}
.bar .nm{width:12mm}
.bar .track{flex:1;height:5mm;background:#f1ece2;border-radius:3mm;overflow:hidden}
.bar .fill{height:100%;border-radius:3mm}
.bar .ct{width:10mm;text-align:right;color:#666}
.lucky{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm}
.lucky div{background:#fff;border-radius:4mm;padding:4mm;text-align:center}
.lucky b{display:block;font-size:9pt;color:var(--gold);letter-spacing:.1em;margin-bottom:1.5mm}
.lucky span{font-family:'Noto Serif KR',serif;font-size:13pt;font-weight:700}
.miss{font-size:11pt;line-height:1.8;color:#3a3a3a;margin:0 0 6mm;word-break:keep-all}

/* 일과 재물 (한 쪽 두 칸) */
.half .lead{margin:3mm 0 4mm;font-size:13pt}
.half .body p{font-size:11.2pt;line-height:1.8;margin-bottom:3mm}
.half .tip{margin-top:3mm;padding:4mm 6mm;font-size:11pt}
.half + .half{margin-top:8mm;padding-top:7mm;border-top:1px dashed var(--line)}

/* 올해 운 */
.ybadge{display:inline-flex;gap:3mm;align-items:center;background:var(--ink);color:#fff;border-radius:20mm;padding:2mm 6mm;font-size:11pt;margin-bottom:4mm}
.ybadge b{font-family:'Noto Serif KR',serif;font-size:14pt;color:#f0d9a8}

/* 질문 */
.qbox{background:#fff;border-radius:4mm;padding:6mm 7mm;margin:4mm 0 7mm;font-family:'Noto Serif KR',serif;font-size:14pt;line-height:1.6}
.qbox::before{content:"Q.";color:var(--gold);font-weight:900;margin-right:2mm}
.answer p{font-size:12pt;line-height:1.95;margin:0 0 4mm;word-break:keep-all;white-space:pre-line}
.empty{color:#aaa;font-style:italic}

@page{size:A4;margin:0}
@media print{
  body{background:none}
  .no-print{display:none!important}
  #report{padding:0}
  .page{margin:0;box-shadow:none;page-break-after:always;break-after:page}
  .page:last-child{page-break-after:auto;break-after:auto}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media screen and (max-width:820px){
  .page{zoom:.46}
  .row{grid-template-columns:1fr}
}

/* 강약·계절 추가 단락 */
.extra{margin-top:5mm;padding:4.5mm 6mm;background:rgba(255,255,255,.65);border-radius:3mm;border:1px solid var(--line)}
.extra .xlab{font-size:9.5pt;color:var(--gold);letter-spacing:.1em;font-weight:700;margin-bottom:1.5mm}
.extra p{font-size:11.2pt;line-height:1.85;margin:0 0 2mm;color:#333;word-break:keep-all}
@media print{.no-pdf{display:none}}

/* 관심사 쪽 */
.intr{margin-top:6mm;display:grid;gap:4.5mm}
.iitem{background:#fff;border-radius:3mm;padding:4.5mm 6mm;border-left:3px solid var(--gold)}
.ititle{font-family:'Noto Serif KR',serif;font-size:13pt;font-weight:700;margin-bottom:1.5mm}
.iitem p{font-size:11pt;line-height:1.8;margin:0;color:#333;word-break:keep-all}
.iitem .iyear{margin-top:2mm;font-size:10.2pt;color:#6b5a3a}
.iyear b{color:var(--gold);margin-right:1.5mm}
