/* ============================================================
   FinSanad Help — shared design system
   Warm paper + FinSanad navy/gold. Light & dark via tokens.
   ============================================================ */

:root{
  --paper:#f7f4ee; --surface:#ffffff; --surface-2:#fbf9f3;
  --ink:#16263c; --ink-soft:#51617a; --ink-faint:#7a8798;
  --border:#e7dfd0; --border-strong:#d8cdb8;
  --brand:#1e3a5f; --brand-2:#2d5a8c;
  --gold:#c8890f; --gold-bright:#e0a419; --gold-soft:#fbf0d5;
  --good:#17835a; --good-soft:#e3f2ea;
  --warn:#c8402f; --warn-soft:#fbe7e3;
  --info:#2568a3; --info-soft:#e6eff7;
  --shadow:0 1px 2px rgba(22,38,60,.06), 0 6px 22px rgba(22,38,60,.07);
  --radius:14px; --radius-sm:9px;
  --sans:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --serif:Georgia,'Times New Roman',serif;
  --mono:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0e1826; --surface:#15243a; --surface-2:#1a2c44;
    --ink:#e8eef6; --ink-soft:#a6b6ca; --ink-faint:#7f8fa4;
    --border:#26374f; --border-strong:#33475f;
    --brand:#84b4e8; --brand-2:#9cc4ee;
    --gold:#f0bb4d; --gold-bright:#f4c766; --gold-soft:#39301a;
    --good:#40c78c; --good-soft:#12301f;
    --warn:#f37a72; --warn-soft:#331817;
    --info:#7fb7e8; --info-soft:#122a3f;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 26px rgba(0,0,0,.35);
  }
}
:root[data-theme="light"]{
  --paper:#f7f4ee; --surface:#ffffff; --surface-2:#fbf9f3;
  --ink:#16263c; --ink-soft:#51617a; --ink-faint:#7a8798;
  --border:#e7dfd0; --border-strong:#d8cdb8;
  --brand:#1e3a5f; --brand-2:#2d5a8c;
  --gold:#c8890f; --gold-bright:#e0a419; --gold-soft:#fbf0d5;
  --good:#17835a; --good-soft:#e3f2ea; --warn:#c8402f; --warn-soft:#fbe7e3;
  --info:#2568a3; --info-soft:#e6eff7;
  --shadow:0 1px 2px rgba(22,38,60,.06), 0 6px 22px rgba(22,38,60,.07);
}
:root[data-theme="dark"]{
  --paper:#0e1826; --surface:#15243a; --surface-2:#1a2c44;
  --ink:#e8eef6; --ink-soft:#a6b6ca; --ink-faint:#7f8fa4;
  --border:#26374f; --border-strong:#33475f;
  --brand:#84b4e8; --brand-2:#9cc4ee;
  --gold:#f0bb4d; --gold-bright:#f4c766; --gold-soft:#39301a;
  --good:#40c78c; --good-soft:#12301f; --warn:#f37a72; --warn-soft:#331817;
  --info:#7fb7e8; --info-soft:#122a3f;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 26px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.68;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Layout shell ---------- */
.layout{display:flex; min-height:100vh; align-items:flex-start}
.sidebar{
  width:270px; flex:0 0 270px; position:sticky; top:0; height:100vh;
  background:linear-gradient(170deg,var(--brand) 0%, #16304f 60%, #12253c 100%);
  color:#eef3f9; padding:26px 18px; overflow-y:auto;
}
:root[data-theme="dark"] .sidebar,
:root:not([data-theme]) .sidebar{}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .sidebar{background:linear-gradient(170deg,#12243b,#0e1a2b)}}
:root[data-theme="dark"] .sidebar{background:linear-gradient(170deg,#12243b,#0e1a2b)}
.brand{display:flex; align-items:center; gap:10px; font-size:21px; font-weight:800;
  letter-spacing:.2px; margin-bottom:4px; color:#fff; text-decoration:none}
.brand .coin{color:var(--gold-bright)}
.brand-sub{font-size:12.5px; color:#9fb4cd; margin:0 0 24px 34px; letter-spacing:.3px}
.nav-group{font-size:11px; text-transform:uppercase; letter-spacing:1px;
  color:#8ea6c2; margin:22px 8px 8px}
.nav a{
  display:flex; align-items:center; gap:11px; padding:10px 13px; margin-bottom:3px;
  border-radius:9px; color:#dbe6f2; text-decoration:none; font-size:14.5px;
  transition:background .15s,color .15s;
}
.nav a .ic{width:20px; text-align:center; opacity:.9}
.nav a:hover{background:rgba(255,255,255,.07); color:#fff}
.nav a.active{background:var(--gold-bright); color:#1a2f4a; font-weight:700}
.nav a.active .ic{opacity:1}
.side-foot{margin-top:26px; padding-top:16px; border-top:1px solid rgba(255,255,255,.12);
  font-size:12.5px; color:#8ea6c2; line-height:1.6}

.content{flex:1 1 auto; min-width:0; padding:0 0 80px}
.wrap{max-width:820px; padding:0 34px}
.topbar{
  position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:14px;
  padding:14px 34px; background:color-mix(in srgb,var(--paper) 86%, transparent);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--border);
}
.topbar .crumb{font-size:14px; color:var(--ink-soft)}
.topbar .crumb b{color:var(--ink)}
.spacer{flex:1}
.menu-btn,.theme-btn{
  display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  border:1px solid var(--border); background:var(--surface); color:var(--ink);
  border-radius:10px; cursor:pointer; font-size:17px; box-shadow:var(--shadow);
}
.menu-btn{display:none}

/* ---------- Hero ---------- */
.hero{padding:40px 0 8px}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:1.4px; color:var(--gold);
  background:var(--gold-soft); padding:6px 12px; border-radius:999px; margin-bottom:18px}
h1{font-size:clamp(30px,5vw,42px); line-height:1.12; margin:.1em 0 .35em;
  letter-spacing:-.5px; font-weight:800; text-wrap:balance; color:var(--ink)}
.lede{font-size:20px; line-height:1.55; color:var(--ink-soft); margin:0 0 6px; max-width:64ch}

h2{font-size:26px; letter-spacing:-.3px; font-weight:800; margin:52px 0 6px;
  padding-top:14px; text-wrap:balance}
h2 .num{color:var(--gold); font-variant-numeric:tabular-nums; margin-right:10px}
h3{font-size:19px; font-weight:700; margin:30px 0 6px; color:var(--ink)}
p{margin:14px 0; max-width:68ch}
a{color:var(--brand-2)}
:root[data-theme="dark"] a,
@media (prefers-color-scheme:dark){a{color:var(--brand)}}
strong{color:var(--ink)}
.section-rule{height:1px; background:var(--border); border:0; margin:8px 0 0}

/* ---------- Plain-words analogy block ---------- */
.plain{
  position:relative; background:var(--surface); border:1px solid var(--border);
  border-left:5px solid var(--gold-bright); border-radius:var(--radius);
  padding:22px 24px 22px 26px; margin:24px 0; box-shadow:var(--shadow);
}
.plain .tag{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800;
  text-transform:uppercase; letter-spacing:1.2px; color:var(--gold); margin-bottom:8px}
.plain p{font-family:var(--serif); font-size:19.5px; line-height:1.62; color:var(--ink);
  margin:0; max-width:64ch}

/* ---------- Callouts ---------- */
.callout{border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:15px 18px; margin:18px 0; display:flex; gap:13px; background:var(--surface-2)}
.callout .ci{font-size:19px; line-height:1.5; flex:0 0 auto}
.callout .cb{min-width:0}
.callout p{margin:0; max-width:none}
.callout .h{font-weight:700; display:block; margin-bottom:2px}
.callout.tip{background:var(--info-soft); border-color:color-mix(in srgb,var(--info) 30%,transparent)}
.callout.tip .h{color:var(--info)}
.callout.do{background:var(--good-soft); border-color:color-mix(in srgb,var(--good) 30%,transparent)}
.callout.do .h{color:var(--good)}
.callout.warn{background:var(--warn-soft); border-color:color-mix(in srgb,var(--warn) 32%,transparent)}
.callout.warn .h{color:var(--warn)}
.callout.rule{background:var(--gold-soft); border-color:color-mix(in srgb,var(--gold) 34%,transparent)}
.callout.rule .h{color:var(--gold)}

/* ---------- Steps ---------- */
.steps{list-style:none; counter-reset:s; padding:0; margin:20px 0}
.steps li{counter-increment:s; position:relative; padding:4px 0 16px 52px; margin:0}
.steps li::before{content:counter(s); position:absolute; left:0; top:0;
  width:34px; height:34px; border-radius:50%; background:var(--brand); color:#fff;
  font-weight:800; font-size:15px; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow)}
:root[data-theme="dark"] .steps li::before{background:var(--brand-2); color:#0e1826}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .steps li::before{background:var(--brand-2); color:#0e1826}}
.steps li::after{content:""; position:absolute; left:17px; top:36px; bottom:2px; width:2px;
  background:var(--border)}
.steps li:last-child::after{display:none}
.steps li b{color:var(--ink)}

/* ---------- Field table ---------- */
.tablewrap{overflow-x:auto; margin:20px 0; border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow)}
table.fields{border-collapse:collapse; width:100%; font-size:15px; background:var(--surface)}
table.fields th,table.fields td{padding:12px 15px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--border)}
table.fields thead th{background:var(--surface-2); font-size:12px; text-transform:uppercase;
  letter-spacing:.6px; color:var(--ink-soft); font-weight:700; white-space:nowrap}
table.fields tbody tr:last-child td{border-bottom:0}
table.fields tbody tr:hover{background:var(--surface-2)}
table.fields td:first-child{font-weight:700; color:var(--ink); white-space:nowrap}
.req{display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.5px;
  padding:2px 7px; border-radius:999px; text-transform:uppercase}
.req.yes{background:var(--warn-soft); color:var(--warn)}
.req.no{background:var(--surface-2); color:var(--ink-faint); border:1px solid var(--border)}
code,.kbd{font-family:var(--mono); font-size:.9em; background:var(--surface-2);
  border:1px solid var(--border); border-radius:5px; padding:1px 6px; color:var(--ink)}
.num-col{font-variant-numeric:tabular-nums}

/* ---------- Type badges ---------- */
.badge{display:inline-block; font-size:12px; font-weight:700; padding:3px 10px;
  border-radius:999px; letter-spacing:.3px}
.badge.asset{background:var(--info-soft); color:var(--info)}
.badge.liab,.badge.expense{background:var(--warn-soft); color:var(--warn)}
.badge.equity,.badge.revenue{background:var(--good-soft); color:var(--good)}

/* ---------- Ledger example table ---------- */
.ledger{border-collapse:collapse; width:100%; font-size:15.5px; background:var(--surface);
  font-variant-numeric:tabular-nums}
.ledger th,.ledger td{padding:11px 14px; border-bottom:1px solid var(--border)}
.ledger th{background:var(--surface-2); text-align:left; font-size:13px; color:var(--ink-soft)}
.ledger td.n{text-align:right}
.ledger tr.total td{font-weight:800; border-top:2px solid var(--border-strong); background:var(--surface-2)}
.ledger tr.total td.ok{color:var(--good)}

/* ---------- Home cards ---------- */
.hgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:18px; margin:28px 0}
.hcard{display:block; text-decoration:none; color:inherit; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius); padding:22px;
  box-shadow:var(--shadow); transition:transform .15s, border-color .15s}
.hcard:hover{transform:translateY(-3px); border-color:var(--gold-bright)}
.hcard .ic{font-size:26px; display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:12px; background:var(--gold-soft); margin-bottom:14px}
.hcard .step-tag{font-size:11.5px; font-weight:700; color:var(--gold); letter-spacing:.5px;
  text-transform:uppercase}
.hcard h3{margin:2px 0 6px; font-size:19px}
.hcard p{margin:0; font-size:14.5px; color:var(--ink-soft); max-width:none}
.pathline{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:18px 0 0;
  font-size:14.5px; color:var(--ink-soft)}
.pathline .pill{background:var(--surface); border:1px solid var(--border); border-radius:999px;
  padding:5px 13px; font-weight:600; color:var(--ink)}
.pathline .arr{color:var(--gold)}

/* ---------- Page footer nav ---------- */
.pagenav{display:flex; gap:14px; margin:56px 0 0; flex-wrap:wrap}
.pagenav a{flex:1 1 220px; text-decoration:none; color:inherit; background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px; box-shadow:var(--shadow);
  transition:border-color .15s}
.pagenav a:hover{border-color:var(--gold-bright)}
.pagenav .dir{font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:var(--ink-faint)}
.pagenav .t{font-weight:700; color:var(--ink); font-size:16px; margin-top:2px}
.pagenav a.next{text-align:right}

.foot{margin-top:60px; padding:22px 34px; border-top:1px solid var(--border);
  color:var(--ink-faint); font-size:13.5px}

/* ---------- Responsive ---------- */
.scrim{display:none}
@media (max-width:860px){
  .menu-btn{display:inline-flex}
  .sidebar{position:fixed; z-index:60; left:0; top:0; transform:translateX(-100%);
    transition:transform .22s ease; box-shadow:0 0 40px rgba(0,0,0,.4)}
  .layout.open .sidebar{transform:translateX(0)}
  .layout.open .scrim{display:block; position:fixed; inset:0; z-index:50;
    background:rgba(8,15,25,.5)}
  .wrap,.topbar{padding-left:20px; padding-right:20px}
  body{font-size:16.5px}
}
