/* ================================================================
   Aylık kitabımız — A5 (148×210 mm) sayfalar. Ekranda kâğıt yığını (genişliğe --kb-zoom ile sığar),
   yazdırmada/PDF'te her .kb-page bir sayfa. Kitap her temada açık renk kâğıttır.
   ================================================================ */
.kb-body .particles-container { display: none; }
.kb-main { max-width: 760px; margin: 0 auto; padding: calc(var(--nav-height) + 16px) 12px 90px; }
.kb-bar { position: sticky; top: calc(var(--nav-height) + 8px); z-index: 5; display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 99px; background: var(--bg-card); box-shadow: var(--shadow-md); border: 1px solid var(--border-light); }
.kb-back { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--text-primary); font-size: 1.1rem; }
.kb-pick { flex: 1; display: flex; align-items: center; gap: 6px; min-width: 0; }
.kb-pick select { flex: 1; min-width: 0; font: 600 1rem var(--font-body); color: var(--text-primary); background: transparent; border: none; padding: 6px 4px; }
.kb-pdf { border-radius: 99px; white-space: nowrap; }
.kb-tip { margin: 10px 8px 18px; font-size: 0.8rem; color: var(--text-muted); text-align: center; }
.kb-loading { text-align: center; padding: 80px 0; color: var(--text-muted); }

.kb-book { zoom: var(--kb-zoom, 1); display: flex; flex-direction: column; align-items: center; gap: 22px; }
.kb-book section { padding: 0; }                /* style.css'teki genel section boşluğu kitaba girmesin */

/* ---- Sayfa (kâğıt) ---- */
.kb-page {
  --ink: #2F2427; --soft: #6C5B58; --mute: #A08E89; --gold: #B8956A; --line: #EAD8CB; --paper: #FFFCF8;
  --h: #8E7BB8; --s: #5A8A6A;
  position: relative; width: 148mm; height: 210mm; flex: none; overflow: hidden; background: var(--paper); color: var(--ink);
  box-shadow: 0 10px 30px rgba(60, 35, 25, 0.16); border-radius: 2px;
  font-family: var(--font-body); font-size: 9.6pt; line-height: 1.55;
}
.kb-in { position: absolute; inset: 13mm 13mm 15mm; overflow: hidden; display: flex; flex-direction: column; }
.kb-foot { position: absolute; left: 13mm; right: 13mm; bottom: 7mm; display: flex; justify-content: space-between;
  font-size: 7pt; letter-spacing: 0.06em; color: var(--mute); border-top: 0.5px solid var(--line); padding-top: 2mm; }
.kb-page h1, .kb-page h2, .kb-page h3 { font-family: var(--font-display); color: var(--ink); font-weight: 600; line-height: 1.1; margin: 0; }
.kb-eye { font-size: 7.5pt; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.kb-lead { color: var(--soft); font-size: 10pt; margin: 0 0 4mm; }
.kb-lead b, .kb-page b { color: var(--ink); font-weight: 600; }
.kb-soft { color: var(--soft); }
.kb-date { font-size: 7.5pt; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.kb-head { display: flex; align-items: baseline; justify-content: space-between; gap: 4mm; border-bottom: 1px solid var(--line); padding-bottom: 2mm; margin-bottom: 4mm; flex: none; }
.kb-head h2 { font-size: 22pt; }
.kb-head span { font-size: 8pt; color: var(--mute); }
.kb-run { font-size: 7.5pt; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); margin: 0 0 3mm; flex: none; }
.kb-title { font-size: 19pt; margin-top: 3mm !important; }
.kb-by { font-size: 8pt; color: var(--mute); margin: 1mm 0 4mm; }
.kb-flow { min-height: 0; }

/* Kırpılmayan fotoğraf: bulanık zemin + tamamı */
.kb-ph { position: relative; overflow: hidden; margin: 0; background: #EFE4D8; border-radius: 3px; flex: none; }
.kb-ph img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.kb-ph .bg { object-fit: cover; filter: blur(14px) saturate(1.1); transform: scale(1.15); opacity: 0.75; }
.kb-ph .fg { object-fit: contain; }
.kb-ph figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 4mm 2.5mm 1.5mm; font-size: 7pt; color: #fff;
  background: linear-gradient(transparent, rgba(0,0,0,0.55)); }
.kb-wide { height: 62mm; }
.kb-inline { height: 60mm; margin: 2mm 0 4mm; }
.kb-inline.kb-fl, .kb-inline.kb-fr { width: 47% !important; height: 58mm; margin-top: 1mm; }
.kb-inline.kb-fl { float: left; margin-right: 4mm; }
.kb-inline.kb-fr { float: right; margin-left: 4mm; }

/* ---- Kapak ---- */
.kb-cover .kb-in { inset: 0; }
.kb-cover-ph { position: absolute; inset: 0; border-radius: 0; }
.kb-cover-ph::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,14,12,0.05) 35%, rgba(20,14,12,0.78)); }
.kb-cover-txt { position: absolute; left: 13mm; right: 13mm; bottom: 15mm; color: #fff; }
.kb-cover-txt .kb-eye { color: #F2DDB8; }
.kb-cover h1 { color: #fff; font-size: 54pt; font-weight: 500; margin: 1mm 0 2mm; letter-spacing: -0.01em; }
.kb-cover h1 small { display: block; font-size: 17pt; font-weight: 400; letter-spacing: 0.3em; opacity: 0.85; margin-top: 1mm; }
.kb-cover p { font-family: var(--font-display); font-size: 17pt; margin: 0; }
.kb-cover em { color: #F2DDB8; }
.kb-page.kb-cover:not(:has(.kb-cover-ph)) { background: linear-gradient(160deg, #F5EBE1, #E9D6C4); }
.kb-page.kb-cover:not(:has(.kb-cover-ph)) .kb-cover-txt { color: var(--ink); }
.kb-page.kb-cover:not(:has(.kb-cover-ph)) h1 { color: var(--ink); }
.kb-page.kb-cover:not(:has(.kb-cover-ph)) em, .kb-page.kb-cover:not(:has(.kb-cover-ph)) .kb-eye { color: var(--gold); }

/* ---- Bu ay ---- */
.kb-stats h2 { font-size: 24pt; margin: 1.5mm 0 3mm; }
.kb-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2mm; margin: 1mm 0 5mm; }
.kb-nums div { background: #F7EEE5; border-radius: 3px; padding: 2.5mm 1.5mm; text-align: center; }
.kb-nums strong { display: block; font-family: var(--font-display); font-size: 17pt; line-height: 1; color: var(--ink); }
.kb-nums span { font-size: 6.8pt; color: var(--soft); }
.kb-nums div:first-child { background: var(--ink); }
.kb-nums div:first-child strong, .kb-nums div:first-child span { color: #FFF4E6; }
.kb-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1.2mm; }
.kb-cal b { font-size: 6.5pt; text-align: center; color: var(--mute); font-weight: 600; letter-spacing: 0.05em; }
.kb-cal span { aspect-ratio: 1 / 0.92; border-radius: 3px; background: #FAF3EC; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 8.5pt; line-height: 1.1; }
.kb-cal span em { font-style: normal; font-size: 6.5pt; color: var(--mute); }
.kb-cal span.on { background: #F1E1CF; box-shadow: inset 0 0 0 0.6px var(--gold); }
.kb-cal span.on em { color: var(--ink); font-weight: 700; }
.kb-cal span.off { opacity: 0.35; }
.kb-cal span.fut { opacity: 0.55; background: transparent; box-shadow: inset 0 0 0 0.5px var(--line); }
.kb-legend { font-size: 7pt; color: var(--mute); text-align: center; margin: 3mm 0 0; }

/* ---- İlkler ---- */
.kb-first { display: grid; grid-template-columns: 1fr; gap: 3mm; padding: 3mm 0; border-bottom: 0.5px solid var(--line); break-inside: avoid; }
.kb-first.has-ph { grid-template-columns: 40mm 1fr; }
.kb-first-ph { height: 46mm; }
.kb-first h3 { font-size: 14pt; margin: 0.5mm 0 1mm; }
.kb-first p { margin: 0 0 1mm; font-size: 9pt; }

/* ---- Yazı / gezi metni ---- */
.kb-page .prose { font-size: 9.6pt; line-height: 1.62; color: var(--soft); }
.kb-page .prose p { margin-bottom: 0.9em; }
.kb-page .prose h2 { font-size: 14pt; margin: 1em 0 0.4em; }
.kb-page .prose h3 { font-size: 12pt; margin: 0.9em 0 0.3em; }
.kb-page .prose .lead { font-size: 10.5pt; color: var(--ink); }
.kb-page .prose blockquote { border-left: 2px solid var(--gold); padding-left: 3mm; margin: 0 0 0.9em; font-style: italic; }
.kb-page .prose figure.kb-ph:not(.kb-fl):not(.kb-fr) { width: 100% !important; float: none; }

/* ---- Gezi ---- */
.kb-facts { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5mm 4mm; padding: 0; margin: 0 0 4mm; font-size: 8.5pt; color: var(--soft); }
.kb-facts li { display: flex; gap: 2mm; }
.kb-facts span { width: 4mm; text-align: center; color: var(--gold); }
.kb-route { margin: 0 0 4mm; background: #FAF3EC; border-radius: 3px; padding: 2mm 3mm 3mm; }
.kb-route svg { display: block; width: 100%; height: auto; max-height: 44mm; }
.kb-route ol { margin: 1mm 0 0 4mm; padding: 0; font-size: 7.5pt; color: var(--soft); columns: 2; column-gap: 6mm; }
.kb-route ol li { list-style: decimal; break-inside: avoid; }
.kb-route ol em { color: var(--mute); }
.kb-favs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; }
.kb-favs div { border: 0.6px solid var(--line); border-radius: 3px; padding: 2mm; }
.kb-favs span { display: block; font-size: 6.5pt; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.5mm; }
.kb-favs b { font-family: var(--font-display); font-size: 10.5pt; font-weight: 600; line-height: 1.2; display: block; }

/* ---- Fotoğraf ızgarası (2 × 3) ---- */
.kb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5mm; align-content: start; }
.kb-cell { height: 54mm; }

/* ---- Mekânlar / sözler / sorular ---- */
.kb-block { margin-bottom: 5mm; }
.kb-places { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2mm 4mm; }
.kb-places li { display: flex; gap: 2mm; align-items: flex-start; font-size: 8.5pt; }
.kb-places b { display: block; font-weight: 600; }
.kb-places em { font-style: normal; font-size: 7.5pt; color: var(--mute); }
.kb-quote { margin: 0 0 3mm; padding: 2.5mm 4mm; border-left: 2.5px solid var(--gold); background: #FAF3EC; border-radius: 0 3px 3px 0; break-inside: avoid; }
.kb-quote.hande { border-color: var(--h); } .kb-quote.sefa { border-color: var(--s); }
.kb-quote p { font-family: var(--font-display); font-size: 13pt; font-style: italic; color: var(--ink); margin: 0; line-height: 1.25; }
.kb-quote cite { display: block; font-style: normal; font-size: 7.5pt; color: var(--mute); margin-top: 1mm; }
.kb-qa { margin-bottom: 3mm; break-inside: avoid; } .kb-qa b { display: block; } .kb-qa p { margin: 0.5mm 0 0; color: var(--soft); }

/* ---- Kapanış ---- */
.kb-end .kb-in { justify-content: center; }
.kb-end h2 { font-size: 22pt; margin: 2mm 0 5mm; }
.kb-coming { list-style: none; padding: 0; margin: 0 0 8mm; }
.kb-coming li { padding: 2.5mm 0; border-bottom: 0.5px solid var(--line); font-size: 10pt; }
.kb-sign { font-family: var(--font-display); font-size: 17pt; text-align: center; margin-top: auto !important; color: var(--ink); }
.kb-sign em { color: var(--gold); }
.kb-sign span { font-size: 11pt; letter-spacing: 0.2em; color: var(--mute); }

/* ---- Yazdırma / PDF ---- */
@page { size: 148mm 210mm; margin: 0; }
@media print {
  html, body { background: #fff !important; }
  .nav, .tabbar, .kb-bar, .kb-tip, .footer, .login-screen, .particles-container { display: none !important; }
  .kb-main { padding: 0; max-width: none; }
  .kb-book { zoom: 1; gap: 0; display: block; }
  .kb-page { box-shadow: none; border-radius: 0; break-after: page; page-break-after: always; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .kb-page:last-child { break-after: auto; page-break-after: auto; }
}
