/* ==========================================================================
   Reyuko — Learning Bookkeeping
   Shared stylesheet for the whole /learning-bookkeeping/ section
   Brand tokens taken from the Reyuko design system (accent #2A6FDB, yellow #FFC107)
   ========================================================================== */

:root{
  --accent:#2A6FDB; --accent-hover:#1D62C4; --accent-light:#EDF4FF;
  --accent-border:rgba(42,111,219,.28); --accent-tint:rgba(42,111,219,.06);
  --yellow:#FFC107; --yellow-bg:#FFF8E1; --yellow-border:rgba(255,193,7,.45);
  --bg:#FFFFFF; --bg-soft:#F4F7FB; --bg-mica:#ECF0F6; --bg-card:#FFFFFF;
  --text:#16243B; --text-2:#4C5C77; --text-3:#7B8AA6;
  --link:#1850B8;
  --stroke:rgba(0,57,140,.12); --stroke-strong:rgba(0,57,140,.22);
  --success:#0F7B0F; --success-bg:#EAF7E9;
  --warning:#9D5D00; --warning-bg:#FFF4CE;
  --danger:#C42B1C; --danger-bg:#FDE7E9;
  --shadow-card:0 1px 2px rgba(16,36,72,.05), 0 8px 24px rgba(16,36,72,.06);
  --r-sm:6px; --r-md:10px; --r-lg:16px;
  --maxw:1180px; --readw:720px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0E1726; --bg-soft:#152033; --bg-mica:#111B2C; --bg-card:#16223A;
    --text:#E8EEF8; --text-2:#AEBED6; --text-3:#7E90AE;
    --link:#7FA5FF; --accent:#4C8BF0; --accent-hover:#6C9FF3;
    --accent-light:rgba(76,139,240,.12); --accent-border:rgba(76,139,240,.35);
    --accent-tint:rgba(76,139,240,.08);
    --yellow-bg:rgba(255,193,7,.10); --yellow-border:rgba(255,193,7,.35);
    --stroke:rgba(150,180,230,.16); --stroke-strong:rgba(150,180,230,.28);
    --success:#5FD05F; --success-bg:rgba(95,208,95,.10);
    --warning:#F2C15B; --warning-bg:rgba(242,193,91,.10);
    --danger:#F08A80; --danger-bg:rgba(240,138,128,.10);
    --shadow-card:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.28);
  }
}
:root[data-theme="dark"]{
  --bg:#0E1726; --bg-soft:#152033; --bg-mica:#111B2C; --bg-card:#16223A;
  --text:#E8EEF8; --text-2:#AEBED6; --text-3:#7E90AE;
  --link:#7FA5FF; --accent:#4C8BF0; --accent-hover:#6C9FF3;
  --accent-light:rgba(76,139,240,.12); --accent-border:rgba(76,139,240,.35);
  --accent-tint:rgba(76,139,240,.08);
  --yellow-bg:rgba(255,193,7,.10); --yellow-border:rgba(255,193,7,.35);
  --stroke:rgba(150,180,230,.16); --stroke-strong:rgba(150,180,230,.28);
  --success:#5FD05F; --success-bg:rgba(95,208,95,.10);
  --warning:#F2C15B; --warning-bg:rgba(242,193,91,.10);
  --danger:#F08A80; --danger-bg:rgba(240,138,128,.10);
  --shadow-card:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.28);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* ---------- Layout shells ---------- */
.lb-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--accent);color:#fff;padding:10px 14px;border-radius:var(--r-sm)}

/* ---------- Site header inside this section ---------- */
header.nav nav.links a.on{color:#fff;font-weight:650;position:relative}
header.nav nav.links a.on::after{
  content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--yellow);border-radius:2px
}
@media(max-width:820px){
  header.nav nav.links{gap:16px}
  header.nav nav.links a:not(.btn-nav):not(.on){display:none}
}
/* the section sets its own reading environment on top of the site stylesheet */
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.7}
footer{margin-top:64px}

/* ---------- Breadcrumbs ---------- */
.crumbs{font-size:13.5px;color:var(--text-3);padding:18px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--text-3)}
.crumbs a:hover{color:var(--accent)}
.crumbs span.sep{opacity:.5}
.crumbs .cur{color:var(--text-2)}

/* ---------- Article layout ---------- */
.lb-article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;padding:8px 0 72px;align-items:start}
@media(max-width:1040px){.lb-article{grid-template-columns:minmax(0,1fr);gap:0}}

.art-head{padding:14px 0 26px;border-bottom:1px solid var(--stroke);margin-bottom:32px}
.kicker{
  display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:14px
}
.kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--yellow);display:inline-block}
h1{font-size:clamp(28px,4.2vw,42px);line-height:1.18;letter-spacing:-.02em;margin:0 0 16px;font-weight:800}
.standfirst{font-size:19px;line-height:1.65;color:var(--text-2);margin:0 0 18px;max-width:64ch}
.art-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--text-3)}
.art-meta b{color:var(--text-2);font-weight:600}

.prose{max-width:var(--readw)}
.prose>*{max-width:100%}
.prose h2{
  font-size:clamp(22px,2.6vw,28px);line-height:1.3;letter-spacing:-.015em;font-weight:750;
  margin:48px 0 14px;scroll-margin-top:24px
}
.prose h3{font-size:20px;line-height:1.4;font-weight:700;margin:32px 0 10px;scroll-margin-top:24px}
.prose h4{font-size:17px;font-weight:700;margin:24px 0 8px;color:var(--text)}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}
.prose li{margin:0 0 9px}
.prose li>ul,.prose li>ol{margin-top:9px}
.prose strong{font-weight:670;color:var(--text)}
.prose hr{border:0;border-top:1px solid var(--stroke);margin:40px 0}
.prose blockquote{
  margin:24px 0;padding:4px 0 4px 20px;border-left:3px solid var(--accent-border);
  color:var(--text-2);font-style:normal
}
.prose code{
  font-family:var(--mono);font-size:.88em;background:var(--bg-soft);
  border:1px solid var(--stroke);padding:1px 5px;border-radius:4px
}
.prose a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;
  text-decoration-color:var(--accent-border)}
.prose a:hover{text-decoration-color:var(--accent)}

/* ---------- Tables ---------- */
.table-scroll{overflow-x:auto;margin:0 0 24px;border:1px solid var(--stroke);border-radius:var(--r-md);background:var(--bg-card)}
.prose table{border-collapse:collapse;width:100%;font-size:15px;min-width:460px}
.prose th,.prose td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--stroke);vertical-align:top}
.prose thead th{
  background:var(--bg-soft);font-weight:670;font-size:13px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--text-2);white-space:nowrap
}
.prose tbody tr:last-child td{border-bottom:0}
.prose td.num,.prose th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- Callout boxes ---------- */
.box{
  border:1px solid var(--stroke);border-radius:var(--r-md);padding:20px 22px;margin:28px 0;
  background:var(--bg-card);box-shadow:var(--shadow-card)
}
.box>:first-child{margin-top:0}
.box>:last-child{margin-bottom:0}
.box .box-t{
  display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:750;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:12px
}
.box .box-t svg{width:16px;height:16px;flex:none}

.box.reyuko{background:var(--accent-light);border-color:var(--accent-border)}
.box.reyuko .box-t{color:var(--accent)}
.box.key{background:var(--yellow-bg);border-color:var(--yellow-border)}
.box.key .box-t{color:var(--warning)}
.box.note .box-t{color:var(--text-3)}
.box.warn{background:var(--danger-bg);border-color:rgba(196,43,28,.25)}
.box.warn .box-t{color:var(--danger)}
.box.example{background:var(--bg-soft)}
.box.example .box-t{color:var(--text-2)}
.box.country{background:var(--bg-soft);border-left:3px solid var(--accent)}
.box.country .box-t{color:var(--accent)}

/* ---------- Journal entry block ---------- */
.journal{margin:26px 0;border:1px solid var(--stroke);border-radius:var(--r-md);overflow-x:auto;background:var(--bg-card)}
.journal .j-cap+table,.journal>table{width:100%}
.journal .j-cap{
  padding:10px 16px;background:var(--bg-soft);border-bottom:1px solid var(--stroke);
  font-size:13px;font-weight:670;color:var(--text-2)
}
.journal table{margin:0;min-width:420px;font-variant-numeric:tabular-nums}
.journal .cr td:first-child{padding-left:38px;color:var(--text-2)}

/* ---------- FAQ ---------- */
.faq{margin:52px 0 0;border-top:1px solid var(--stroke);padding-top:8px}
.faq h2{margin-top:32px}
.faq details{
  border-bottom:1px solid var(--stroke);padding:2px 0
}
.faq summary{
  cursor:pointer;list-style:none;padding:16px 32px 16px 0;position:relative;
  font-weight:650;font-size:17px;line-height:1.45;color:var(--text)
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:6px;top:24px;width:9px;height:9px;
  border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);
  transform:rotate(45deg);transition:transform .18s ease
}
.faq details[open] summary::after{transform:rotate(-135deg);top:27px}
.faq summary:hover{color:var(--accent)}
.faq .ans{padding:0 8px 18px 0;color:var(--text-2)}
.faq .ans>:first-child{margin-top:0}
.faq .ans>:last-child{margin-bottom:0}

/* ---------- Key takeaways ---------- */
.takeaways{background:var(--bg-soft);border:1px solid var(--stroke);border-radius:var(--r-md);padding:22px 24px;margin:0 0 34px}
.takeaways h2{font-size:14px !important;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px !important;color:var(--text-2)}
.takeaways ul{margin:0;padding-left:20px}
.takeaways li{margin-bottom:8px}
.takeaways li:last-child{margin-bottom:0}

/* ---------- In-article CTA ---------- */
.cta-band{
  margin:52px 0 0;border-radius:var(--r-lg);padding:30px 32px;
  background:linear-gradient(135deg,#0B3E80,#1D62C4);color:#fff;box-shadow:var(--shadow-card)
}
.cta-band h2{margin:0 0 10px;font-size:23px;line-height:1.3;color:#fff;font-weight:750}
.cta-band p{margin:0 0 20px;color:rgba(255,255,255,.86);font-size:16px;max-width:56ch}
.cta-band .btn{
  display:inline-block;background:var(--yellow);color:#16243B;font-weight:700;font-size:15px;
  padding:11px 22px;border-radius:var(--r-sm)
}
.cta-band .btn:hover{background:#E6AC00;text-decoration:none}
.cta-band .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);margin-left:10px}
.cta-band .btn.ghost:hover{background:rgba(255,255,255,.1)}
@media(max-width:560px){.cta-band .btn.ghost{margin:10px 0 0;display:block;text-align:center}}

/* ---------- Sidebar ---------- */
.lb-side{position:sticky;top:24px;font-size:14.5px}
@media(max-width:1040px){.lb-side{position:static;margin:44px 0 0;border-top:1px solid var(--stroke);padding-top:28px}}
.side-block{margin-bottom:30px}
.side-block h3{
  font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);
  font-weight:700;margin:0 0 12px
}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--stroke)}
.toc li{margin:0}
.toc a{display:block;padding:6px 0 6px 14px;color:var(--text-2);margin-left:-2px;border-left:2px solid transparent;line-height:1.45}
.toc a:hover{color:var(--accent);text-decoration:none;border-left-color:var(--accent-border)}
.toc a.on{color:var(--accent);font-weight:600;border-left-color:var(--accent)}
.toc .lvl3 a{padding-left:26px;font-size:13.5px;color:var(--text-3)}

.side-list{list-style:none;margin:0;padding:0}
.side-list li{margin:0 0 9px;line-height:1.45}
.side-list a{color:var(--text-2)}
.side-list a:hover{color:var(--accent);text-decoration:none}
.side-list a.on{color:var(--accent);font-weight:650}
.side-card{
  background:var(--bg-soft);border:1px solid var(--stroke);border-radius:var(--r-md);padding:18px 18px 20px
}
.side-card h4{margin:0 0 8px;font-size:16px;font-weight:700}
.side-card p{margin:0 0 14px;font-size:14px;color:var(--text-2);line-height:1.55}
.side-card .btn{
  display:block;text-align:center;background:var(--accent);color:#fff;font-weight:650;
  font-size:14px;padding:9px 14px;border-radius:var(--r-sm)
}
.side-card .btn:hover{background:var(--accent-hover);text-decoration:none}

/* ---------- Prev / next ---------- */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:44px 0 0;padding-top:28px;border-top:1px solid var(--stroke)}
@media(max-width:640px){.pager{grid-template-columns:1fr}}
.pager a{
  display:block;border:1px solid var(--stroke);border-radius:var(--r-md);padding:16px 18px;
  background:var(--bg-card);transition:border-color .15s ease,transform .15s ease
}
.pager a:hover{border-color:var(--accent-border);text-decoration:none;transform:translateY(-1px)}
.pager .lbl{display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;font-weight:650}
.pager .ttl{color:var(--text);font-weight:650;line-height:1.4;font-size:15.5px}
.pager .nx{text-align:right}

/* ---------- Related ---------- */
.related{margin:44px 0 0}
.related h2{font-size:20px;margin:0 0 16px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.rel-grid a{
  border:1px solid var(--stroke);border-radius:var(--r-md);padding:15px 17px;background:var(--bg-card);
  color:var(--text);font-weight:600;font-size:15px;line-height:1.45
}
.rel-grid a:hover{border-color:var(--accent-border);text-decoration:none;color:var(--accent)}
.rel-grid a span{display:block;font-weight:500;font-size:13px;color:var(--text-3);margin-top:5px}

/* ---------- Hub / index pages ---------- */
.hero{
  padding:60px 0 52px;border-bottom:1px solid var(--stroke);
  background:radial-gradient(1100px 420px at 12% -10%,var(--accent-tint),transparent 70%)
}
.hero h1{max-width:19ch;color:var(--text)}
.hero .standfirst{font-size:20px;max-width:70ch}
.hero-stats{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:26px;font-size:14px;color:var(--text-2)}
.hero-stats b{display:block;font-size:26px;font-weight:800;color:var(--text);line-height:1.2}

.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin:36px 0 0}
.mod-card{
  border:1px solid var(--stroke);border-radius:var(--r-lg);padding:24px 24px 22px;background:var(--bg-card);
  box-shadow:var(--shadow-card);display:flex;flex-direction:column;transition:border-color .15s,transform .15s
}
.mod-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}
.mod-card .num{
  font-size:12px;font-weight:750;letter-spacing:.1em;color:var(--accent);margin-bottom:10px;
  text-transform:uppercase
}
.mod-card h3{margin:0 0 8px;font-size:20px;line-height:1.3;font-weight:750}
.mod-card h3 a{color:var(--text)}
.mod-card h3 a:hover{color:var(--accent);text-decoration:none}
.mod-card p{margin:0 0 16px;color:var(--text-2);font-size:15px;line-height:1.6}
.mod-card .cnt{margin-top:auto;font-size:13px;color:var(--text-3);border-top:1px solid var(--stroke);padding-top:13px}

.art-list{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--stroke)}
.art-list li{border-bottom:1px solid var(--stroke)}
.art-list a{display:flex;gap:16px;align-items:baseline;padding:16px 4px;color:var(--text)}
.art-list a:hover{text-decoration:none;background:var(--accent-tint)}
.art-list .n{font-size:13px;color:var(--text-3);font-variant-numeric:tabular-nums;min-width:26px;font-weight:650}
.art-list .t{font-weight:640;font-size:16.5px;line-height:1.45}
.art-list .d{display:block;font-weight:400;font-size:14px;color:var(--text-3);margin-top:4px;line-height:1.5}

.section-lead{max-width:70ch;font-size:17px;color:var(--text-2)}
.h2-plain{font-size:24px;font-weight:750;margin:52px 0 6px;letter-spacing:-.01em}

/* ---------- Print ---------- */
@media print{
  header.nav,footer,.lb-side,.pager,.cta-band,.crumbs{display:none}
  .lb-article{grid-template-columns:1fr}
  body{font-size:12pt;color:#000;background:#fff}
  .box{break-inside:avoid}
}

/* ---------- Formula block ---------- */
.formula{
  margin:26px 0;padding:20px 24px;border:1px solid var(--accent-border);border-radius:var(--r-md);
  background:var(--accent-tint);text-align:center
}
.formula .f-main{font-size:clamp(18px,2.4vw,23px);font-weight:750;letter-spacing:-.01em;color:var(--text);line-height:1.45}
.formula .f-note{margin:10px 0 0;font-size:14.5px;color:var(--text-2)}
.formula p{margin:0}
.formula p+p{margin-top:9px;font-size:14.5px;color:var(--text-2)}

/* ---------- Inline reveal (exercise answers) ---------- */
.prose details{
  border:1px solid var(--stroke);border-radius:var(--r-md);background:var(--bg-soft);
  padding:0 18px;margin:22px 0
}
.prose details>summary{
  cursor:pointer;list-style:none;padding:14px 26px 14px 0;font-weight:650;color:var(--accent);position:relative
}
.prose details>summary::-webkit-details-marker{display:none}
.prose details>summary::after{
  content:"";position:absolute;right:2px;top:20px;width:8px;height:8px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)
}
.prose details[open]>summary::after{transform:rotate(-135deg);top:23px}
.prose details[open]>summary{border-bottom:1px solid var(--stroke)}
.prose details>*:not(summary){margin-top:16px}
.prose details>*:last-child{margin-bottom:16px}

/* ---------- Small screens: keep the header on one line ---------- */
@media(max-width:620px){
  .lb-top .wrap{gap:10px;height:56px}
  .lb-brand small{display:none}
  .lb-cta{padding:7px 13px;font-size:13.5px;white-space:nowrap}
  .crumbs{font-size:12.5px}
  .lb-article{padding-bottom:48px}
  .cta-band{padding:24px 22px}
  .box{padding:18px 18px}
  footer{margin-top:40px}
}

/* Long "answer in one line" panels read as a statement, not a formula */
.formula.statement{text-align:left}
.formula.statement .f-main{font-size:17.5px;font-weight:600;line-height:1.6}
.formula.statement .f-note{margin-top:12px}

/* Journal entries stay readable on a phone */
.journal table{min-width:300px}
@media(max-width:620px){
  .journal table{font-size:14px}
  .journal th,.journal td{padding:9px 10px}
  .journal .cr td:first-child{padding-left:24px}
  .prose table{min-width:340px}
}
