/* 배당수첩 — 아이보리 종이 + 딥 그린, 수첩 감성 단일 라이트 테마 */
:root {
  --dn-paper: #faf6ec;
  --dn-card: #fffdf6;
  --dn-ink: #26312a;
  --dn-soft: #5c6a5f;
  --dn-green: #1e6b42;
  --dn-green-deep: #14522f;
  --dn-leaf: #e3efe2;
  --dn-rule: #e7dfc9;
  --dn-line: #d9d0b8;
  --dn-amber: #b07d2c;
  --dn-radius: 14px;
  --dn-font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont,
    "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", Roboto, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--dn-font);
  background:
    repeating-linear-gradient(0deg, transparent 0 31px, rgba(30, 107, 66, 0.045) 31px 32px),
    var(--dn-paper);
  color: var(--dn-ink);
  line-height: 1.7;
  font-size: 16px;
  word-break: keep-all;
}

img, svg { max-width: 100%; }
a { color: var(--dn-green); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--dn-green-deep); }

.nb-skip {
  position: absolute; left: -999px; top: 0;
  background: var(--dn-green); color: #fff; padding: 0.5rem 1rem; z-index: 50;
}
.nb-skip:focus { left: 0; }

/* ---------- 헤더 ---------- */
.nb-top { border-bottom: 2px solid var(--dn-green); background: var(--dn-card); }
.nb-topline {
  background: var(--dn-green);
  color: #f2f8f0;
  font-size: 0.78rem;
  text-align: center;
  padding: 0.35rem 1rem;
  letter-spacing: 0.02em;
}
.nb-masthead {
  max-width: 960px; margin: 0 auto; padding: 0.85rem 1.25rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
}
.nb-brand {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-weight: 800; font-size: 1.25rem; color: var(--dn-ink); text-decoration: none;
}
.nb-mark { width: 26px; height: 26px; color: var(--dn-green); flex: none; }
.nb-nav { display: flex; gap: 1.1rem; }
.nb-nav a {
  color: var(--dn-soft); text-decoration: none; font-size: 0.95rem; font-weight: 600;
  padding: 0.2rem 0; border-bottom: 2px solid transparent;
}
.nb-nav a:hover { color: var(--dn-green-deep); border-bottom-color: var(--dn-green); }

/* ---------- 본문 시트 ---------- */
.nb-sheet { max-width: 960px; margin: 0 auto; padding: 2.25rem 1.25rem 3.5rem; }
.nb-sheet h1 { font-size: 1.8rem; line-height: 1.35; letter-spacing: -0.01em; }
.nb-sheet h2 { font-size: 1.3rem; margin-top: 2.4rem; margin-bottom: 0.7rem; color: var(--dn-green-deep); }
.nb-sheet h3 { font-size: 1.05rem; margin-top: 1.4rem; margin-bottom: 0.4rem; }
.nb-sheet p { margin: 0.65rem 0; }
.nb-sheet ul, .nb-sheet ol { padding-left: 1.3rem; margin: 0.65rem 0; }
.nb-sheet li { margin: 0.3rem 0; }
.nb-lede { color: var(--dn-soft); font-size: 1.02rem; }

/* ---------- 히어로 ---------- */
.nb-hero {
  background: var(--dn-card);
  border: 1px solid var(--dn-rule);
  border-radius: var(--dn-radius);
  padding: 2.2rem 1.6rem;
  box-shadow: 0 2px 0 var(--dn-line);
}
.nb-hero-kicker {
  display: inline-block; background: var(--dn-leaf); color: var(--dn-green-deep);
  font-size: 0.78rem; font-weight: 700; border-radius: 999px;
  padding: 0.2rem 0.75rem; margin-bottom: 0.9rem; letter-spacing: 0.02em;
}
.nb-hero h1 { margin-bottom: 0.6rem; }
.nb-hero .nb-lede { max-width: 42rem; }

/* ---------- 카드 그리드 ---------- */
.nb-grid { display: grid; grid-template-columns: 1fr; gap: 0.9rem; margin-top: 1rem; }
.nb-card {
  background: var(--dn-card);
  border: 1px solid var(--dn-rule);
  border-radius: var(--dn-radius);
  padding: 1.1rem 1.2rem;
  box-shadow: 0 2px 0 var(--dn-line);
}
.nb-card h3 { margin-top: 0; }
.nb-card p { font-size: 0.93rem; color: var(--dn-soft); }
.nb-badge {
  display: inline-block; font-size: 0.72rem; font-weight: 700;
  color: var(--dn-amber); background: #f6ecd8; border-radius: 999px;
  padding: 0.1rem 0.6rem; margin-left: 0.4rem; vertical-align: middle;
}

/* ---------- 표 ---------- */
.nb-tablewrap { overflow-x: auto; margin: 1rem 0; }
table.nb-table { border-collapse: collapse; width: 100%; background: var(--dn-card); font-size: 0.93rem; }
.nb-table th, .nb-table td { border: 1px solid var(--dn-rule); padding: 0.55rem 0.7rem; text-align: left; }
.nb-table th { background: var(--dn-leaf); color: var(--dn-green-deep); }

/* ---------- 공지/고지 박스 ---------- */
.nb-notice {
  background: var(--dn-leaf); border-left: 4px solid var(--dn-green);
  border-radius: 0 var(--dn-radius) var(--dn-radius) 0;
  padding: 0.85rem 1.1rem; margin: 1.2rem 0; font-size: 0.93rem;
}

/* ---------- 코드/공식 ---------- */
code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: #f1ecdc; border-radius: 6px; padding: 0.1rem 0.4rem; font-size: 0.9em;
}
pre {
  background: #f1ecdc; border: 1px solid var(--dn-rule); border-radius: var(--dn-radius);
  padding: 0.9rem 1.1rem; overflow-x: auto; margin: 0.8rem 0;
}
pre code { background: none; padding: 0; }

/* ---------- FAQ ---------- */
.nb-faq { margin-top: 2.6rem; }
.nb-qa {
  background: var(--dn-card); border: 1px solid var(--dn-rule);
  border-radius: var(--dn-radius); padding: 0.9rem 1.2rem; margin: 0.7rem 0;
}
.nb-q { margin: 0; font-size: 1rem; color: var(--dn-green-deep); }
.nb-q::before { content: "Q. "; color: var(--dn-amber); }
.nb-a { margin-top: 0.4rem; }
.nb-a p { margin: 0; font-size: 0.95rem; }

/* ---------- 임베드 스니펫 박스 ---------- */
.nb-snippet {
  background: var(--dn-card); border: 1px dashed var(--dn-green);
  border-radius: var(--dn-radius); padding: 1rem 1.2rem; margin: 1.2rem 0;
}
.nb-snippet pre { margin-top: 0.6rem; }
button[data-copyme] {
  font-family: inherit; font-size: 0.85rem; font-weight: 700;
  background: var(--dn-green); color: #fff; border: 0; border-radius: 8px;
  padding: 0.45rem 1rem; cursor: pointer;
}
button[data-copyme]:hover { background: var(--dn-green-deep); }
button[data-copyme].nb-copied { background: var(--dn-amber); }

/* ---------- 임베드(card) 뷰 ---------- */
.notebar {
  border-top: 1px solid var(--dn-rule); background: var(--dn-leaf);
  padding: 0.5rem 1rem; font-size: 0.82rem; text-align: right;
}
.notebar a { color: var(--dn-green-deep); font-weight: 700; text-decoration: none; }
.notebar a:hover { text-decoration: underline; }
html.card-view .nb-top,
html.card-view .nb-foot,
html.card-view .nb-skip { display: none; }
html.card-view body { background: var(--dn-card); }
html.card-view .nb-sheet { padding: 1rem 1rem 1.5rem; }

/* ---------- 푸터 ---------- */
.nb-foot {
  border-top: 2px solid var(--dn-green); background: var(--dn-card);
  padding: 2rem 1.25rem 2.4rem; margin-top: 2rem;
}
.nb-foot-grid {
  max-width: 960px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr; gap: 1.4rem;
}
.nb-foot-col { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.9rem; }
.nb-foot-col a { color: var(--dn-soft); text-decoration: none; }
.nb-foot-col a:hover { color: var(--dn-green-deep); text-decoration: underline; }
.nb-foot-brand { font-weight: 800; color: var(--dn-green-deep); }
.nb-foot-head { font-weight: 700; font-size: 0.82rem; color: var(--dn-soft); letter-spacing: 0.04em; }
.nb-foot-note, .nb-foot-copy {
  max-width: 960px; margin: 1.2rem auto 0; font-size: 0.8rem; color: var(--dn-soft);
}
.nb-foot-copy { margin-top: 0.5rem; }

/* ---------- 반응형 ---------- */
@media (min-width: 640px) {
  .nb-sheet h1 { font-size: 2.1rem; }
  .nb-grid { grid-template-columns: repeat(2, 1fr); }
  .nb-foot-grid { grid-template-columns: 2fr 1fr 1fr; }
}
@media (min-width: 900px) {
  .nb-grid { grid-template-columns: repeat(3, 1fr); }
  .nb-hero { padding: 2.8rem 2.4rem; }
}


/* ---- farm calc/guide helpers ---- */
.farm-calc{border:1px solid #ccc;border-radius:10px;padding:1rem 1.1rem;margin:1.2rem 0;background:#fafafa}
.farm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.85rem 1rem}
.farm-calc label{display:block;font-size:.78rem;font-weight:700;margin-bottom:.3rem}
.farm-calc input,.farm-calc select{width:100%;font:inherit;padding:.45rem .55rem;border:1px solid #bbb;border-radius:6px}
.farm-out{margin-top:.9rem;padding:.85rem 1rem;background:#fff;border:1px solid #ddd;border-radius:8px}
.farm-note{font-size:.9rem;color:#555;margin-top:.5rem}
.farm-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin:1.2rem 0}
.farm-card{border:1px solid #ddd;border-radius:10px;padding:1rem;background:#fff}
.farm-card h3{margin:.2rem 0 .4rem;font-size:1.05rem}
.farm-card p{margin:0;font-size:.92rem;color:#444}
.guide-body p{margin:0 0 .85rem;line-height:1.65}
.guide-body h2{margin:1.6rem 0 .7rem}


/* ---- ledger continuation (unique related UI) ---- */
.dn-ledger { margin: 2rem 0 1rem; padding: 1rem 0 0; border-top: 2px solid #2a2a28; }
.dn-ledger-h { font-size: 1.15rem; margin: 0 0 0.85rem; letter-spacing: -0.01em; }
.dn-row { display: grid; grid-template-columns: 7.5rem 1fr; gap: 0.6rem 1rem; padding: 0.45rem 0; border-bottom: 1px solid #e6e2d8; align-items: baseline; }
.dn-left { font-size: 0.78rem; font-weight: 700; color: #666; letter-spacing: 0.02em; }
.dn-right { font-size: 0.95rem; line-height: 1.55; }
.dn-howto { margin: 1.5rem 0; }
.dn-howto h2 { margin: 0 0 0.75rem; }
.dn-toc { margin: 1.1rem 0 0; font-size: 0.92rem; }
@media (max-width: 520px) {
  .dn-row { grid-template-columns: 1fr; gap: 0.15rem; }
}

/* entity see-also — plain, matches guide-body */
.see-also{margin:2rem 0 1rem;padding:1rem 0 0;border-top:1px solid rgba(127,127,127,.25)}
.see-also h2{font-size:1.15rem;margin:0 0 .75rem}
.see-also p{margin:0 0 .55rem;line-height:1.55}
