/* =========================================================
   Ritoaly module — embeddable sidebar + content viewer
   Scoped under .rty-app. Uses --fktlm-* tokens from shell.css
   when present (the module is always rendered inside .fktlm-wrap),
   with local fallbacks so [ritoaly] alone still works.
   ========================================================= */

.rty-app{
  --rty-ink:      var(--fktlm-ink, #1f2a44);
  --rty-ink-soft: var(--fktlm-ink-soft, #4a5773);
  --rty-paper:    var(--fktlm-paper, #faf6ec);
  --rty-card:     var(--fktlm-card, #ffffff);
  --rty-gold:     var(--fktlm-gold, #a9812e);
  --rty-gold-soft:var(--fktlm-gold-soft, #e7d9b0);
  --rty-line:     var(--fktlm-line, #dfd6bd);
  --rty-shadow:   var(--fktlm-shadow, 0 2px 10px rgba(31,42,68,0.08));
  --rty-radius:   var(--fktlm-radius, 10px);
  --rty-text-scale: 1;

  position: relative;
  display: flex;
  height: min(78vh, 760px);
  min-height: 460px;
  background: var(--rty-paper);
  border-radius: var(--rty-radius);
  box-shadow: var(--rty-shadow);
  overflow: hidden;
  font-family: "EB Garamond","Cormorant Garamond",Georgia,serif;
}

.rty-app *, .rty-app *::before, .rty-app *::after{ box-sizing: border-box; }

.rty-app ::-webkit-scrollbar{ width: 9px; }
.rty-app ::-webkit-scrollbar-track{ background: transparent; }
.rty-app .rty-sidebar::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.2); border-radius: 6px; }
.rty-app .rty-content::-webkit-scrollbar-thumb{ background: var(--rty-line); border-radius: 6px; }

/* ---------- Sidebar ---------- */
.rty-sidebar{
  width: 300px;
  min-width: 300px;
  background:
    radial-gradient(circle at 15% 20%, rgba(169,129,46,0.35), transparent 45%),
    linear-gradient(160deg, #1f2a44 0%, #2c3a5e 100%);
  color: var(--rty-paper);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.rty-brand{ padding: 24px 22px 18px; position: relative; flex: none; }
.rty-brand::after{
  content:""; position:absolute; left:22px; right:22px; bottom:0; height:3px;
  background: linear-gradient(90deg, var(--rty-gold), transparent 80%); opacity:.7;
}
.rty-brand .amg-cross{ width:20px; height:20px; margin:0 0 14px; position:relative; }
.rty-brand .amg-cross::before,
.rty-brand .amg-cross::after{ content:""; position:absolute; background: var(--rty-gold); }
.rty-brand .amg-cross::before{ left:50%; top:0; width:3px; height:20px; transform:translateX(-50%); }
.rty-brand .amg-cross::after{ top:32%; left:0; width:20px; height:3px; }

.rty-eyebrow{
  font-family:"Montserrat",sans-serif; letter-spacing:.2em; text-transform:uppercase;
  font-size:.64rem; color: var(--rty-gold-soft); margin-bottom:8px;
}
.rty-brand h1{
  font-family:"Cormorant Garamond",serif; font-size:1.6rem; letter-spacing:.02em;
  margin:0 0 3px; color: var(--rty-paper); font-weight:600;
}
.rty-brand p{
  margin:0; font-family:"Cormorant Garamond",serif; font-style:italic;
  color: var(--rty-gold-soft); font-size:.84rem;
}

.rty-search-wrap{ padding:14px 22px; border-bottom:1px solid rgba(255,255,255,.1); flex: none; }
.rty-search-box{
  width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,.16);
  border-radius:999px; color:var(--rty-paper); padding:8px 14px;
  font-family:"Montserrat",sans-serif; font-size:.78rem; outline:none;
}
.rty-search-box::placeholder{ color:#b9bfd6; }
.rty-search-box:focus{ border-color: var(--rty-gold); }

.rty-tree{ flex:1; overflow-y:auto; padding:8px 8px 20px; font-family:"Montserrat",sans-serif; }

.rty-tome{ margin-bottom:2px; }
.rty-tome > .rty-tome-head{
  display:flex; align-items:center; gap:10px; padding:10px 12px; cursor:pointer;
  border-radius:8px; transition:background .15s ease;
}
.rty-tome > .rty-tome-head:hover{ background:rgba(231,217,176,.1); }
.rty-tome-head.rty-active{ background:rgba(231,217,176,.14); box-shadow: inset 3px 0 0 var(--rty-gold); }
.rty-tome-head.rty-active .rty-label{ color: var(--rty-gold-soft); }
.rty-tome-head .rty-letter{
  width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.05);
  border:2px solid var(--rty-gold); display:flex; align-items:center; justify-content:center;
  font-family:"Cormorant Garamond",serif; font-size:.78rem; font-weight:700;
  color: var(--rty-gold-soft); flex-shrink:0;
}
.rty-tome-head .rty-label{
  font-family:"Cormorant Garamond",serif; font-size:1rem; color: var(--rty-paper);
  line-height:1.25;
}
.rty-tome-head .rty-chev{ margin-left:auto; color: var(--rty-gold-soft); font-size:.64rem; opacity:.7; transition:transform .2s ease; flex-shrink:0; }
.rty-tome.rty-open > .rty-tome-head .rty-chev{ transform: rotate(90deg); opacity:1; }

.rty-leaves{
  list-style:none; margin:2px 0 6px; padding:0 0 0 16px;
  border-left:1px solid rgba(255,255,255,.12); margin-left:23px; display:none;
}
.rty-tome.rty-open > .rty-leaves{ display:block; }
.rty-leaf{
  padding:7px 12px; cursor:pointer; font-size:.8rem; color:#c9cee0;
  border-radius:0 8px 8px 0; line-height:1.3; display:flex; gap:8px;
}
.rty-leaf .rty-id-tag{ font-family:"Cormorant Garamond",serif; font-weight:700; color: var(--rty-gold-soft); font-size:.74rem; flex-shrink:0; }
.rty-leaf:hover{ background:rgba(231,217,176,.08); color: var(--rty-paper); }
.rty-leaf.rty-active{ background:rgba(231,217,176,.14); color: var(--rty-gold-soft); box-shadow: inset 3px 0 0 var(--rty-gold); }
.rty-leaf.rty-sub{ padding-left:24px; font-size:.77rem; }

.rty-branch{ margin-bottom:1px; }
.rty-branch-head{
  display:flex; align-items:center; gap:8px; padding:7px 12px; cursor:pointer;
  font-size:.8rem; color:#c9cee0; border-radius:0 8px 8px 0; line-height:1.3;
}
.rty-branch-head .rty-id-tag{ font-family:"Cormorant Garamond",serif; font-weight:700; color: var(--rty-gold-soft); font-size:.74rem; flex-shrink:0; }
.rty-branch-head .rty-branch-label{ flex:1; }
.rty-branch-head .rty-chev{ font-size:.58rem; color: var(--rty-gold-soft); opacity:.6; transition:transform .2s ease; flex-shrink:0; }
.rty-branch.rty-open > .rty-branch-head .rty-chev{ transform: rotate(90deg); opacity:1; }
.rty-branch-head:hover{ background:rgba(231,217,176,.08); color: var(--rty-paper); }
.rty-branch-head.rty-sub{ padding-left:24px; font-size:.76rem; }
.rty-branch-kids{
  list-style:none; margin:2px 0 4px; padding:0 0 0 16px;
  border-left:1px solid rgba(255,255,255,.12); margin-left:23px; display:none;
}
.rty-branch.rty-open > .rty-branch-kids{ display:block; }
.rty-hidden{ display:none !important; }

/* ---------- Content ---------- */
.rty-content{ flex:1; overflow-y:auto; background: var(--rty-paper); }
.rty-page{ max-width:720px; margin:0 auto; padding:30px 24px 60px; min-height:100%; }

.rty-page-hero{
  background:
    radial-gradient(circle at 15% 20%, rgba(169,129,46,0.35), transparent 45%),
    linear-gradient(160deg, #1f2a44 0%, #2c3a5e 100%);
  color: var(--rty-paper); padding:26px 28px 22px; border-radius: var(--rty-radius);
  box-shadow: var(--rty-shadow); margin-bottom:22px; position:relative; overflow:hidden;
}
.rty-page-hero::after{
  content:""; position:absolute; left:28px; bottom:0; width:80px; height:3px;
  background: linear-gradient(90deg, transparent, var(--rty-gold), transparent);
}
.rty-page-hero .amg-cross{ width:22px; height:22px; margin-bottom:14px; position:relative; }
.rty-page-hero .amg-cross::before,
.rty-page-hero .amg-cross::after{ content:""; position:absolute; background: var(--rty-gold); }
.rty-page-hero .amg-cross::before{ left:50%; top:0; width:3px; height:22px; transform:translateX(-50%); }
.rty-page-hero .amg-cross::after{ top:32%; left:0; width:22px; height:3px; }

.rty-crumbs{ font-family:"Montserrat",sans-serif; letter-spacing:.12em; text-transform:uppercase; font-size:.64rem; color: var(--rty-gold-soft); margin-bottom:8px; }
.rty-crumbs .rty-sep{ margin:0 .5em; opacity:.6; }
.rty-doc-title{ font-family:"Cormorant Garamond",serif; font-weight:600; font-size:1.7rem; line-height:1.2; color: var(--rty-paper); margin:0 0 10px; }
.rty-doc-id{
  display:inline-block; font-family:"Montserrat",sans-serif; font-size:.64rem; letter-spacing:.12em;
  text-transform:uppercase; color: var(--rty-ink); background: var(--rty-gold-soft); padding:3px 11px; border-radius:999px;
}

.rty-body-text{ font-size:calc(1.02rem * var(--rty-text-scale)); line-height:1.75; color: var(--rty-ink); font-style:italic; }
.rty-body-text p{ margin:0 0 1em; }
.rty-body-text p:last-child{ margin-bottom:0; }
.rty-body-text p.rty-lead::first-letter{
  font-family:"Cormorant Garamond",serif; font-size:2.5rem; font-weight:700; color: var(--rty-gold);
  float:left; line-height:.75; padding:.07em .08em 0 0;
}
.rty-rubric{ color:#7a2e2e; font-style:italic; }

.rty-speaker-tag{
  display:inline-block; font-family:"Montserrat",sans-serif; font-size:.62rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; padding:3px 10px; border-radius:999px; margin:0 7px 4px 0; white-space:nowrap;
}
.rty-speaker-pastora{ background: var(--rty-ink); color: var(--rty-gold-soft); }
.rty-speaker-fiangonana{ background: var(--rty-gold-soft); color: var(--rty-ink); }

.rty-section{ background: var(--rty-card); margin:0 0 18px; padding:22px 26px; border-radius: var(--rty-radius); box-shadow: var(--rty-shadow); }
.rty-section-title{ display:flex; align-items:center; gap:12px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--rty-line); }
.rty-section-title.rty-no-border{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.rty-section-number{
  flex:none; width:32px; height:32px; border-radius:50%; background: var(--rty-ink); border:2px solid var(--rty-gold);
  color: var(--rty-gold-soft); display:flex; align-items:center; justify-content:center;
  font-family:"Cormorant Garamond",serif; font-weight:700; font-size:.95rem;
}
.rty-section-name{ font-family:"Cormorant Garamond",serif; font-size:1.15rem; font-weight:600; color: var(--rty-ink); }

.rty-welcome .rty-page-hero{ padding:34px 30px 30px; }
.rty-welcome .rty-page-hero h2{ font-family:"Cormorant Garamond",serif; font-size:1.9rem; font-weight:600; color: var(--rty-paper); margin:0 0 4px; }
.rty-welcome .rty-page-hero h3{ font-family:"Cormorant Garamond",serif; font-style:italic; font-weight:400; font-size:.95rem; color: var(--rty-gold-soft); margin:0; }
.rty-welcome .rty-section p{ font-size:.98rem; color: var(--rty-ink-soft); line-height:1.7; margin:0 0 10px; }
.rty-welcome .rty-section p:last-child{ margin-bottom:0; }
.rty-hint{ margin-top:14px; font-family:"Montserrat",sans-serif; font-size:.74rem; letter-spacing:.04em; color: var(--rty-gold); }

.rty-toc-index{ display:flex; flex-wrap:wrap; gap:8px; }
.rty-toc-index span{
  font-family:"Montserrat",sans-serif; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase;
  color: var(--rty-ink); border:1px solid var(--rty-line); padding:5px 12px; border-radius:999px; background: var(--rty-paper);
}

/* ---------- Mobile toggle + text-size control (scoped, absolute not fixed) ---------- */
.rty-menu-toggle{
  display:none; position:absolute; top:10px; left:10px; z-index:25;
  width:38px; height:38px; border-radius:50%; background: var(--rty-ink); border:1px solid var(--rty-gold);
  color: var(--rty-gold-soft); align-items:center; justify-content:center; cursor:pointer; font-size:1rem;
  box-shadow: var(--rty-shadow);
}
.rty-text-size-ctrl{ position:absolute; top:10px; right:12px; z-index:25; display:flex; gap:5px; }
.rty-text-size-ctrl button{
  width:30px; height:30px; border-radius:50%; background: var(--rty-ink); border:1px solid var(--rty-gold);
  color: var(--rty-gold-soft); display:flex; align-items:center; justify-content:center; cursor:pointer;
  font-size:1rem; font-family:"EB Garamond",serif; line-height:1; box-shadow: var(--rty-shadow);
}
.rty-text-size-ctrl button:hover{ background: var(--rty-gold); color: var(--rty-ink); }

@media (max-width: 720px){
  .rty-app{ height: min(82vh, 640px); }
  .rty-menu-toggle{ display:flex; }
  .rty-sidebar{
    position:absolute; left:0; top:0; bottom:0; z-index:20;
    transform:translateX(-100%); transition:transform .25s ease;
    width:84%; max-width:300px; box-shadow:8px 0 20px rgba(0,0,0,.18);
  }
  .rty-sidebar.rty-show{ transform:translateX(0); }
  .rty-page{ padding:56px 14px 50px; }
  .rty-page-hero{ padding:22px 18px 18px; }
  .rty-doc-title{ font-size:1.35rem; }
  .rty-section{ padding:18px 16px; }
}

@media print{
  .rty-app{ height:auto; display:block; box-shadow:none; }
  .rty-sidebar, .rty-menu-toggle, .rty-text-size-ctrl{ display:none !important; }
  .rty-content{ overflow:visible; }
}

/* ---------- Fallback placeholder (missing/invalid data file) ---------- */
.rty-wrap{ padding:4px 2px 20px; }
.rty-placeholder{
  background: var(--fktlm-card, #fff); border:1px dashed var(--fktlm-gold, #a9812e);
  border-radius: var(--fktlm-radius, 10px); padding:40px 26px; text-align:center;
  max-width:560px; margin:24px auto;
}
.rty-placeholder .amg-cross{ width:22px; height:22px; margin:0 auto 14px; position:relative; }
.rty-placeholder .amg-cross::before,
.rty-placeholder .amg-cross::after{ content:""; position:absolute; background: var(--fktlm-gold, #a9812e); }
.rty-placeholder .amg-cross::before{ left:50%; top:0; width:3px; height:22px; transform:translateX(-50%); }
.rty-placeholder .amg-cross::after{ top:32%; left:0; width:22px; height:3px; }
.rty-placeholder h3{ font-family:"Cormorant Garamond",serif; font-size:1.3rem; margin:0 0 8px; color: var(--fktlm-ink, #1f2a44); }
.rty-placeholder p{ font-size:.9rem; color: var(--fktlm-ink-soft, #4a5773); margin:0; }
