/* fonts: self-host, lisensi OFL ada di assets/fonts/ */
@font-face{font-family:'Sora';font-style:normal;font-weight:100 400;font-display:swap;src:url(fonts/sora-latin.4c43c9203f.woff2) format('woff2');}
@font-face{font-family:'Courier Prime';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/courier-prime-400-latin.11f68676b8.woff2) format('woff2');}
@font-face{font-family:'Courier Prime';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/courier-prime-700-latin.90a70e6878.woff2) format('woff2');}


/* ============================================================
   GLOBAL
============================================================ */
* { margin:0; padding:0; box-sizing:border-box; }
body { background:#FAFAF8; font-family:'Sora',sans-serif; font-weight:100; }
.page { display:none; min-height:100vh; flex-direction:column; }
.page.active { display:flex; }

/* ============================================================
   SHARED · TOPBAR
============================================================ */
.topbar { display:flex; align-items:center; justify-content:space-between; padding:20px 40px; border-bottom:0.5px solid rgba(124,58,237,0.15); flex-shrink:0; }
.topbar-left { display:flex; align-items:center; gap:24px; }
.topbar-logo { display:flex; align-items:center; gap:10px; cursor:pointer; }
.topbar-name { font-weight:300; font-size:14px; letter-spacing:0.18em; color:#1A1A18; text-transform:uppercase; }
.topbar-sep { width:1px; height:16px; background:rgba(124,58,237,0.2); }
.topbar-back { font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.2em; color:#A78BFA; text-transform:uppercase; cursor:pointer; transition:color 0.2s; }
.topbar-back:hover { color:#7C3AED; }
.topbar-block { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.2em; color:#C4B5FD; }
.topbar-block span { color:#7C3AED; }

/* ============================================================
   SHARED · ANIMATIONS
============================================================ */
@keyframes scanDown { from{top:-2px} to{top:100%} }
@keyframes fadeSlideUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes growLine { from{height:0;opacity:0} to{height:48px;opacity:1} }

/* ============================================================
   PAGE 1 · WELCOME
============================================================ */
#page-welcome { align-items:center; justify-content:center; position:relative; overflow:hidden; }
#hash-canvas { position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:0; }
.scan-line { position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(to right,transparent,rgba(124,58,237,0.2),transparent); animation:scanDown 6s linear infinite; pointer-events:none; z-index:5; }
.welcome-scene { position:relative; z-index:10; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2rem; width:100%; }
.eyebrow { font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.35em; color:#8B5CF6; text-transform:uppercase; margin-bottom:2.5rem; opacity:0; animation:fadeSlideUp 1s 0.3s forwards; }
.logo-mark { margin-bottom:2.5rem; opacity:0; animation:fadeSlideUp 1s 0.5s forwards; }
.main-title { text-align:center; width:100%; }
.title-welcome { display:block; font-weight:300; font-size:clamp(22px,4vw,42px); letter-spacing:0.06em; color:#1A1A18; line-height:1.3; opacity:0; animation:fadeSlideUp 1.1s 0.7s cubic-bezier(0.16,1,0.3,1) forwards; }
.title-brand { display:block; font-weight:400; font-size:clamp(52px,10vw,108px); letter-spacing:-0.02em; color:#0D0D0D; line-height:1; opacity:0; animation:fadeSlideUp 1.1s 1.0s cubic-bezier(0.16,1,0.3,1) forwards; }
.btn-wrapper { margin-top:1.6rem; display:flex; justify-content:center; opacity:0; animation:fadeSlideUp 1s 1.2s forwards; }
.divider-line { width:1px; height:0; background:linear-gradient(to bottom,transparent,#7C3AED,transparent); margin:2rem auto; animation:growLine 1.2s 1.5s forwards; }
.subtitle { font-family:'Courier Prime',monospace; font-size:13px; letter-spacing:0.12em; color:#4C1D95; text-align:center; line-height:1.9; max-width:460px; opacity:0; animation:fadeSlideUp 1s 1.7s forwards; }
.hash-ticker { margin-top:2.5rem; display:flex; flex-direction:column; align-items:center; gap:6px; opacity:0; animation:fadeSlideUp 1s 1.95s forwards; }
.ticker-label { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.3em; color:#7C3AED; text-transform:uppercase; }
.ticker-value { font-family:'Courier Prime',monospace; font-size:11px; color:#6D28D9; letter-spacing:0.08em; transition:color 0.1s; }
.ticker-value.flash { color:#4C1D95; }
.corner-deco { position:absolute; font-family:'Courier Prime',monospace; font-size:9px; color:#C4B5FD; letter-spacing:0.15em; line-height:1.8; opacity:0; animation:fadeIn 1s 2.5s forwards; }
.corner-deco.tl{top:24px;left:28px} .corner-deco.tr{top:24px;right:28px;text-align:right}
.corner-deco.bl{bottom:24px;left:28px} .corner-deco.br{bottom:24px;right:28px;text-align:right}
.corner-accent { color:#7C3AED; }

/* ============================================================
   PAGE 2 · CHAPTER LIST
============================================================ */
.cl-content { max-width:860px; margin:0 auto; width:100%; padding:60px 40px; flex:1; }
.section-label { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.35em; color:#8B5CF6; text-transform:uppercase; margin-bottom:2rem; opacity:0; animation:fadeUp 0.7s 0.1s forwards; }
.page-heading { font-weight:100; font-size:13px; letter-spacing:0.1em; color:#A0A098; margin-bottom:4px; opacity:0; animation:fadeUp 0.7s 0.2s forwards; }
.page-title { font-weight:400; font-size:clamp(36px,6vw,64px); letter-spacing:-0.02em; color:#0D0D0D; line-height:1; margin-bottom:3.5rem; opacity:0; animation:fadeUp 0.8s 0.3s forwards; }
.chapter-list { display:flex; flex-direction:column; opacity:0; animation:fadeUp 0.8s 0.5s forwards; }
.chapter-item { display:flex; align-items:center; justify-content:space-between; padding:24px 0; border-top:0.5px solid rgba(124,58,237,0.12); border-bottom:0.5px solid rgba(124,58,237,0.12); cursor:pointer; }
.chapter-item-left { display:flex; align-items:center; gap:24px; }
.chapter-num { font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.2em; color:#C4B5FD; min-width:28px; }
.chapter-item-label { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.25em; color:#A78BFA; text-transform:uppercase; margin-bottom:5px; }
.chapter-item-title { font-weight:300; font-size:20px; color:#1A1A18; letter-spacing:-0.01em; transition:color 0.2s; }
.chapter-item-desc { font-family:'Courier Prime',monospace; font-size:11px; color:#A0A098; letter-spacing:0.05em; margin-top:4px; }
.chapter-item-right { display:flex; align-items:center; gap:16px; flex-shrink:0; }
/* Perkiraan waktu baca, bukan label status. Nada dibuat tenang: huruf
   kecil, tanpa letter-spacing lebar, warna redup. Ini keterangan, bukan
   penanda yang minta diperhatikan. */
.chapter-status { font-family:'Sora',sans-serif; font-size:11px;
  letter-spacing:0; text-transform:none; color:#7A7A72; font-weight:400;
  white-space:nowrap; }
.chapter-status:empty { display:none; }
.chapter-arrow { font-size:18px; color:#C4B5FD; transition:transform 0.2s,color 0.2s; }
.chapter-item:hover .chapter-item-title { color:#7C3AED; }
.chapter-item:hover .chapter-arrow { transform:translateX(4px); color:#7C3AED; }

/* ============================================================
   PAGE 3 · PROLOGUE · LAYOUT
============================================================ */
#page-prologue { flex-direction:column; height:100vh; }
.prologue-body { display:flex; flex:1; overflow:hidden; }

/* ============================================================
   PAGE 3 · PROLOGUE · SIDEBAR
============================================================ */
.sidebar { width:260px; flex-shrink:0; border-right:0.5px solid rgba(124,58,237,0.15); padding:32px 0; display:flex; flex-direction:column; }
.sidebar-heading { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.3em; color:#C4B5FD; text-transform:uppercase; padding:0 28px; margin-bottom:6px; }
.sidebar-title { font-weight:300; font-size:16px; color:#0D0D0D; padding:0 28px; margin-bottom:28px; letter-spacing:-0.01em; }
.sidebar-item { display:flex; align-items:flex-start; gap:12px; padding:12px 28px; cursor:pointer; transition:background 0.15s; border-left:2px solid transparent; }
.sidebar-item:hover { background:rgba(124,58,237,0.04); }
.sidebar-item.active { border-left:2px solid #7C3AED; background:rgba(124,58,237,0.06); }
.sidebar-item.locked { cursor:not-allowed; opacity:0.35; }
.sb-num { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.15em; color:#A78BFA; min-width:24px; padding-top:2px; }
.sb-label { font-family:'Courier Prime',monospace; font-size:11px; color:#4C1D95; line-height:1.5; }
.sidebar-item.active .sb-label { color:#7C3AED; font-weight:700; }
.sidebar-item.locked .sb-label { color:#52524C; }



/* ============================================================
   PAGE 3 · PROLOGUE · CONTENT AREA
============================================================ */
.prologue-content { flex:1; overflow-y:auto; padding:48px 60px 80px; }
/* Area scroll mengisi sampai tepi kanan layar (scrollbar & scroll mouse di mana saja);
   lebar baca tetap 600px seperti sebelumnya, dibatasi di anak-anaknya. */
.prologue-content > * { max-width:600px; }
.p-eyebrow { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.3em; color:#8B5CF6; text-transform:uppercase; margin-bottom:1rem; }
.p-heading { font-weight:100; font-size:13px; letter-spacing:0.08em; color:#A0A098; margin-bottom:6px; }
.p-title { font-weight:400; font-size:clamp(28px,4vw,48px); letter-spacing:-0.02em; color:#0D0D0D; line-height:1.1; margin-bottom:2.5rem; }
.p-divider { width:40px; height:1px; background:#7C3AED; margin-bottom:2.5rem; }
.p-body { font-family:'Courier Prime',monospace; font-size:15px; line-height:1.95; color:#2A2A28; max-width:600px; }
.p-body p { margin-bottom:1.5rem; }
.p-body p:last-child { margin-bottom:0; }
.p-body strong { font-weight:700; color:#0D0D0D; }
.p-body em { color:#7C3AED; font-style:normal; }
.p-callout { border-left:2px solid #7C3AED; padding:16px 20px; margin:2rem 0; background:rgba(124,58,237,0.04); }
.p-callout p { margin:0; color:#4C1D95; }
.p-nav { display:flex; justify-content:space-between; align-items:center; margin-top:3rem; padding-top:2rem; border-top:0.5px solid rgba(124,58,237,0.12); gap:12px; }
.p-nav-btn { font-family:'Sora',sans-serif; font-weight:300; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; background-color:#1A1A18; color:#FAFAF8; border:none; outline:none; padding:12px 28px; cursor:not-allowed; opacity:0.3; }
.p-nav-prev { direction:ltr; }
.p-nav-btn.p-nav-active { cursor:pointer; opacity:1; }
.p-nav-btn.p-nav-active:hover { background-color:#7C3AED; }
.p-section { display:none; }
.p-section.active { display:block; }

/* ============================================================
   PAGE 3 · PROLOGUE · P.3 SIMULATION (Cantillon Effect)
============================================================ */
.sim-label { font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.3em; color:#8B5CF6; text-transform:uppercase; margin-bottom:1rem; }
.sim-stats-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:1rem; }
.sim-stat { background:#FAFAF8; border-radius:var(--border-radius-md); padding:0.6rem 0.9rem; border:0.5px solid rgba(124,58,237,0.1); }
.sim-stat-label { font-size:11px; color:#52524C; margin-bottom:3px; }
.sim-stat-value { font-size:16px; font-weight:400; color:#0D0D0D; }
.sim-chars { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-bottom:1rem; }
.sim-char { background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:0.6rem 0.4rem; text-align:center; transition:border-color 0.3s; }
.sim-char.receiving { border-color:#3B6D11; }
.sim-char.losing { border-color:#A32D2D; }
.sim-char-icon { font-size:18px; margin-bottom:3px; }
.sim-char-name { font-size:10px; font-weight:500; color:#1A1A18; margin-bottom:2px; }
.sim-char-role { font-size:9px; color:#52524C; margin-bottom:5px; line-height:1.3; }
.sim-char-money { font-size:11px; font-weight:500; color:#1A1A18; margin-bottom:2px; }
.sim-char-powerlabel { font-size:9px; color:#52524C; }
.sim-char-powerlabel span { font-weight:500; }
.sim-bar-bg { height:3px; background:rgba(124,58,237,0.15); border-radius:2px; margin-top:4px; }
.sim-bar { height:3px; border-radius:2px; background:#534AB7; transition:width 0.5s ease, background 0.4s; }
.sim-bar.danger { background:#A32D2D; }
.sim-flow { font-size:9px; padding:1px 5px; border-radius:99px; display:inline-block; margin-top:3px; font-weight:500; opacity:0; transition:opacity 0.3s; }
.sim-flow.show { opacity:1; }
.sim-flow.pos { background:#EAF3DE; color:#3B6D11; }
.sim-flow.neg { background:#FCEBEB; color:#A32D2D; }
.sim-prices-label { font-size:11px; color:#52524C; margin-bottom:6px; }
.sim-prices { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:1rem; }
.sim-price-item { background:#FAFAF8; border-radius:var(--border-radius-md); padding:0.5rem 0.6rem; border:0.5px solid rgba(124,58,237,0.1); }
.sim-price-name { font-size:10px; color:#52524C; }
.sim-price-val { font-size:12px; font-weight:500; color:#1A1A18; transition:color 0.3s; }
.sim-price-val.rising { color:#A32D2D; }
.sim-alert { display:none; background:#FCEBEB; border:0.5px solid #F09595; border-radius:var(--border-radius-md); padding:8px 12px; margin-bottom:1rem; font-size:12px; color:#791F1F; gap:8px; align-items:flex-start; }
.sim-alert.show { display:flex; }
.sim-alert-icon { font-size:16px; flex-shrink:0; }
.sim-alert-title { font-weight:500; margin-bottom:2px; }
.sim-alert-sub { font-size:11px; color:#A32D2D; }
.sim-controls { display:flex; gap:8px; margin-bottom:1rem; }
.sim-btn-print { background:#1A1A18; color:#FAFAF8; border:none; padding:8px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); transition:background 0.2s; }
.sim-btn-print:hover { background:#534AB7; }
.sim-btn-print:disabled { opacity:0.4; cursor:not-allowed; background:#1A1A18; }
.sim-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.3); color:#6D28D9; padding:8px 16px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); transition:background 0.2s; }
.sim-btn-reset:hover { background:rgba(124,58,237,0.06); }
.sim-log-label { font-size:10px; color:#52524C; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:5px; }
.sim-log { display:flex; flex-direction:column; gap:3px; max-height:100px; overflow-y:auto; }
.sim-log-entry { font-size:11px; padding:4px 8px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); color:#3A3A35; line-height:1.5; background:#FAFAF8; }
.sim-log-entry.warn { border-color:#F09595; background:#FCEBEB; color:#791F1F; }
.sim-log-entry strong { color:#1A1A18; }

/* ============================================================
   PAGE 3 · PROLOGUE · P.4 SIMULATION (Double-Spend Problem)
============================================================ */
.ds-tabs { display:flex; gap:6px; margin-bottom:1.25rem; }
.ds-tab { flex:1; padding:9px 8px; font-size:11px; font-family:'Sora',sans-serif; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#52524C; cursor:pointer; border-radius:var(--border-radius-md); transition:all 0.2s; font-weight:400; text-align:center; line-height:1.4; }
.ds-tab.active-cash { background:#3B6D11; color:#fff; border-color:#3B6D11; }
.ds-tab.active-no   { background:#A32D2D; color:#fff; border-color:#A32D2D; }
.ds-tab.active-btc  { background:#534AB7; color:#fff; border-color:#534AB7; }
.ds-desc { font-size:12px; color:#3A3A35; line-height:1.6; margin-bottom:1.25rem; padding:10px 14px; background:#FAFAF8; border-radius:var(--border-radius-md); border-left:2px solid #D4D4C8; }
.ds-desc.cash { border-left-color:#3B6D11; }
.ds-desc.no   { border-left-color:#A32D2D; }
.ds-desc.btc  { border-left-color:#534AB7; }
.ds-stage { display:grid; grid-template-columns:1fr 72px 1fr 72px 1fr; align-items:center; margin-bottom:1.25rem; }
.ds-actor { background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); padding:0.9rem 0.6rem; text-align:center; transition:border-color 0.4s, background 0.4s; }
.ds-actor.success { border-color:#3B6D11; background:#EAF3DE; }
.ds-actor.danger  { border-color:#A32D2D; background:#FCEBEB; }
.ds-actor.blocked { border-color:#534AB7; background:#EEEDFE; }
.ds-actor.neutral { border-color:rgba(124,58,237,0.12); background:#FAFAF8; }
.ds-actor-icon   { font-size:24px; margin-bottom:5px; }
.ds-actor-name   { font-size:11px; font-weight:500; color:#1A1A18; margin-bottom:3px; }
.ds-actor-bal    { font-size:10px; color:#52524C; font-family:'Courier Prime',monospace; margin-bottom:3px; min-height:14px; }
.ds-actor-status { font-size:9px; padding:2px 7px; border-radius:99px; display:inline-block; font-weight:500; opacity:0; transition:opacity 0.3s; min-height:18px; }
.ds-actor-status.show { opacity:1; }
.ds-actor-status.ok   { background:#EAF3DE; color:#3B6D11; }
.ds-actor-status.bad  { background:#FCEBEB; color:#A32D2D; }
.ds-actor-status.info { background:#EEEDFE; color:#534AB7; }
.ds-arrow { display:flex; flex-direction:column; align-items:center; gap:4px; }
.ds-arrow-line { width:100%; height:2px; background:rgba(124,58,237,0.15); position:relative; transition:background 0.4s; }
.ds-arrow-line::after { content:''; position:absolute; right:-1px; top:-4px; border:5px solid transparent; border-left-color:rgba(124,58,237,0.15); border-left-width:8px; transition:border-left-color 0.4s; }
.ds-arrow-line.sent    { background:#3B6D11; }
.ds-arrow-line.sent::after    { border-left-color:#3B6D11; }
.ds-arrow-line.blocked { background:#A32D2D; }
.ds-arrow-line.blocked::after { border-left-color:#A32D2D; }
.ds-arrow-label { font-size:9px; font-family:'Courier Prime',monospace; color:#52524C; text-align:center; transition:color 0.3s; white-space:nowrap; }
.ds-arrow-label.sent    { color:#3B6D11; font-weight:700; }
.ds-arrow-label.blocked { color:#A32D2D; font-weight:700; }
.ds-result { border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; line-height:1.6; margin-bottom:1.25rem; display:none; border:0.5px solid; }
.ds-result.show    { display:block; }
.ds-result.danger  { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.ds-result.safe    { background:#EAF3DE; border-color:#97C459; color:#27500A; }
.ds-result.neutral { background:#EAF3DE; border-color:#97C459; color:#27500A; }
.ds-controls { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:0; }
.ds-btn { padding:8px 18px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.ds-btn-tx1, .ds-btn-tx2 { background:#1A1A18; color:#FAFAF8; }
.ds-btn-tx1:hover, .ds-btn-tx2:hover { background:#534AB7; }
.ds-btn-tx1:disabled, .ds-btn-tx2:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.ds-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.2); color:#6D28D9; cursor:pointer; }
.ds-btn-reset:hover { background:rgba(124,58,237,0.06); }
.ds-log { margin-top:1rem; }
.ds-log-title { font-size:10px; color:#52524C; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:5px; }
.ds-log-entries { display:flex; flex-direction:column; gap:3px; max-height:100px; overflow-y:auto; }
.ds-log-entry { font-size:11px; padding:4px 8px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); color:#3A3A35; line-height:1.5; background:#FAFAF8; }
.ds-log-entry.ok   { border-color:#97C459; background:#EAF3DE; color:#27500A; }
.ds-log-entry.bad  { border-color:#F09595; background:#FCEBEB; color:#791F1F; }
.ds-log-entry.info { border-color:#AFA9EC; background:#EEEDFE; color:#3C3489; }
.p-simulation { margin:2rem 0; padding:1.5rem; background:var(--color-background-secondary); border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); font-weight:300; }

/* ============================================================
   PAGE 3 · PROLOGUE · P.5 SIMULATION (Public-Key Cryptography)
============================================================ */
.pk-steps { display:flex; flex-direction:column; gap:1rem; }
.pk-step { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; transition:border-color 0.3s; }
.pk-step.active  { border-color:#534AB7; }
.pk-step.done    { border-color:#3B6D11; }
.pk-step.invalid { border-color:#A32D2D; }
.pk-step-header { display:flex; align-items:center; gap:12px; padding:12px 16px; background:#F4F4F0; border-bottom:0.5px solid rgba(124,58,237,0.1); }
.pk-step.active .pk-step-header  { background:#EEEDFE; border-bottom-color:#AFA9EC; }
.pk-step.done .pk-step-header    { background:#EAF3DE; border-bottom-color:#97C459; }
.pk-step.invalid .pk-step-header { background:#FCEBEB; border-bottom-color:#F09595; }
.pk-step-num { width:24px; height:24px; border-radius:50%; background:#D4D4C8; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:500; color:#3A3A35; flex-shrink:0; transition:all 0.3s; }
.pk-step.active .pk-step-num  { background:#534AB7; color:#fff; }
.pk-step.done .pk-step-num    { background:#3B6D11; color:#fff; }
.pk-step.invalid .pk-step-num { background:#A32D2D; color:#fff; }
.pk-step-title { font-size:13px; font-weight:500; color:#1A1A18; }
.pk-step-sub   { font-size:11px; color:#52524C; margin-left:auto; }
.pk-step-body  { padding:16px; background:#FAFAF8; }
.pk-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:14px; }
.pk-key-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.pk-key-box { background:#F4F4F0; border-radius:var(--border-radius-md); padding:10px 12px; }
.pk-key-label { font-size:10px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:6px; font-weight:500; }
.pk-key-label.pub  { color:#534AB7; }
.pk-key-label.priv { color:#A32D2D; }
.pk-key-value { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; line-height:1.6; min-height:32px; }
.pk-key-note  { font-size:10px; color:#52524C; margin-top:5px; line-height:1.5; }
.pk-input-row { display:flex; gap:8px; margin-bottom:10px; align-items:flex-start; }
.pk-input { flex:1; padding:8px 10px; font-size:12px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; resize:none; line-height:1.5; }
.pk-input:focus { outline:none; border-color:#534AB7; }
.pk-input:disabled { opacity:0.5; }
.pk-sig-box { background:#F4F4F0; border-radius:var(--border-radius-md); padding:10px 12px; margin-bottom:10px; }
.pk-sig-label { font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:#534AB7; font-weight:500; margin-bottom:6px; }
.pk-sig-value { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; line-height:1.6; min-height:20px; }
.pk-verify-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:12px; }
.pk-verify-item { background:#F4F4F0; border-radius:var(--border-radius-md); padding:8px 10px; }
.pk-verify-item-label { font-size:9px; text-transform:uppercase; letter-spacing:0.1em; color:#52524C; margin-bottom:5px; }
.pk-verify-item-val { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; line-height:1.5; min-height:28px; }
.pk-result { border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; font-weight:500; line-height:1.6; display:none; border:0.5px solid; margin-bottom:10px; }
.pk-result.show    { display:block; }
.pk-result.valid   { background:#EAF3DE; border-color:#97C459; color:#27500A; }
.pk-result.invalid { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.pk-result-sub { font-size:11px; font-weight:400; margin-top:4px; }
.pk-btn { padding:8px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; background:#1A1A18; color:#FAFAF8; }
.pk-btn:hover    { background:#534AB7; }
.pk-btn:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.pk-tamper-note { font-size:11px; color:#3A3A35; margin-top:8px; line-height:1.5; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }

/* ============================================================
   PAGE 3 · PROLOGUE · P.6 TIMELINE (Cypherpunk)
============================================================ */
.tl-items { display:flex; flex-direction:column; gap:0; position:relative; }
.tl-items::before { content:''; position:absolute; left:72px; top:0; bottom:0; width:1px; background:rgba(124,58,237,0.15); }
.tl-item { display:grid; grid-template-columns:72px 1fr; gap:0; cursor:pointer; transition:background 0.15s; border-radius:var(--border-radius-md); padding:2px 0; }
.tl-item:hover { background:rgba(124,58,237,0.04); }
.tl-item.tl-active { background:rgba(124,58,237,0.04); }
.tl-left { display:flex; flex-direction:column; align-items:flex-end; padding-right:20px; padding-top:14px; position:relative; z-index:1; }
.tl-year { font-size:11px; font-weight:500; color:#52524C; white-space:nowrap; }
.tl-dot { width:8px; height:8px; border-radius:50%; background:#D4D4C8; margin-top:6px; transition:all 0.2s; border:1.5px solid #FAFAF8; outline:1px solid #D4D4C8; }
.tl-item:hover .tl-dot, .tl-item.tl-active .tl-dot { background:#534AB7; outline-color:#534AB7; }
.tl-item.tl-milestone .tl-dot { background:#534AB7; outline-color:#534AB7; width:10px; height:10px; }
.tl-item.tl-bitcoin .tl-dot { background:#1A1A18; outline-color:#1A1A18; width:12px; height:12px; }
.tl-right { padding:12px 16px 12px 20px; }
.tl-tag { font-size:9px; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; margin-bottom:4px; color:#C4B5FD; }
.tl-item.tl-milestone .tl-tag { color:#7C3AED; }
.tl-item.tl-bitcoin .tl-tag   { color:#1A1A18; }
.tl-title { font-size:13px; font-weight:500; color:#1A1A18; margin-bottom:4px; }
.tl-detail { font-size:12px; color:#3A3A35; line-height:1.6; display:none; margin-top:6px; padding-top:6px; border-top:0.5px solid rgba(124,58,237,0.12); }
.tl-item.tl-active .tl-detail { display:block; }
.tl-hint { font-size:11px; color:#C4B5FD; text-align:center; margin-top:1rem; }

/* ============================================================
   PAGE 3 · PROLOGUE · P.7 GENESIS BLOCK & QUOTES
============================================================ */
.gb-block { border:0.5px solid rgba(124,58,237,0.2); border-radius:12px; overflow:hidden; margin-bottom:1rem; }
.gb-header { background:#1A1A18; padding:10px 16px; display:flex; align-items:center; justify-content:space-between; }
.gb-header-left { display:flex; align-items:center; gap:10px; }
.gb-badge { font-size:9px; letter-spacing:0.15em; text-transform:uppercase; background:#534AB7; color:#fff; padding:3px 8px; border-radius:4px; font-family:'Sora',sans-serif; }
.gb-block-num { font-size:12px; color:#C4B5FD; font-family:'Courier Prime',monospace; }
.gb-hash-short { font-size:10px; color:#3A3A35; font-family:'Courier Prime',monospace; }
.gb-rows { display:flex; flex-direction:column; }
.gb-row { display:grid; grid-template-columns:140px 1fr; border-bottom:0.5px solid rgba(124,58,237,0.08); transition:background 0.15s; }
.gb-row:last-child { border-bottom:none; }
.gb-row:hover { background:rgba(124,58,237,0.03); }
.gb-row.gb-highlight { background:rgba(124,58,237,0.06); }
.gb-row.gb-highlight:hover { background:rgba(124,58,237,0.09); }
.gb-key { font-family:'Courier Prime',monospace; font-size:10px; color:#52524C; padding:10px 16px; border-right:0.5px solid rgba(124,58,237,0.08); display:flex; align-items:flex-start; padding-top:12px; }
.gb-val { font-family:'Courier Prime',monospace; font-size:11px; color:#2A2A28; padding:10px 16px; line-height:1.6; word-break:break-all; }
.gb-row.gb-highlight .gb-key { color:#7C3AED; }
.gb-row.gb-highlight .gb-val { color:#1A1A18; font-weight:700; }
.gb-satoshi-msg { background:#EEEDFE; border:0.5px solid #AFA9EC; border-radius:8px; padding:12px 16px; margin:0 16px 16px; }
.gb-msg-label { font-family:'Sora',sans-serif; font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:#7C3AED; margin-bottom:6px; }
.gb-msg-text { font-family:'Courier Prime',monospace; font-style:italic; font-size:13px; color:#26215C; line-height:1.6; }
.qt-list { display:flex; flex-direction:column; gap:10px; }
.qt-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:12px; padding:14px 16px; background:#FAFAF8; border-left:3px solid rgba(124,58,237,0.15); transition:border-left-color 0.2s; }
.qt-card:hover { border-left-color:#7C3AED; }
.qt-quote { font-family:'Courier Prime',monospace; font-size:12px; color:#1A1A18; line-height:1.8; font-style:italic; margin-bottom:10px; }
.qt-quote::before { content:'"'; color:#C4B5FD; font-size:18px; line-height:0; vertical-align:-5px; margin-right:2px; }
.qt-quote::after  { content:'"'; color:#C4B5FD; font-size:18px; line-height:0; vertical-align:-5px; margin-left:2px; }
.qt-footer { display:flex; align-items:center; gap:10px; }
.qt-avatar { width:28px; height:28px; border-radius:50%; background:#EEEDFE; display:flex; align-items:center; justify-content:center; font-family:'Sora',sans-serif; font-size:9px; font-weight:500; color:#534AB7; flex-shrink:0; }
.qt-name { font-family:'Sora',sans-serif; font-size:11px; font-weight:500; color:#1A1A18; }
.qt-role { font-family:'Sora',sans-serif; font-size:10px; color:#52524C; }
.qt-year { font-family:'Courier Prime',monospace; font-size:10px; color:#C4B5FD; margin-left:auto; }

/* ============================================================
   PAGE 4 · BAB 1 · Bitcoin dari 10.000 Kaki
============================================================ */
#page-bab1 { flex-direction:column; }

/* ============================================================
   PAGE 4 · BAB 1 · 1.2 SIMULATION (Transaksi Bank vs Bitcoin)
============================================================ */
.tx-tabs { display:flex; gap:8px; margin-bottom:1.25rem; }
.tx-tab { flex:1; padding:10px 8px; font-size:12px; font-family:'Sora',sans-serif; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#52524C; cursor:pointer; border-radius:var(--border-radius-md); transition:all 0.2s; font-weight:400; text-align:center; }
.tx-tab.active-bank { background:#1A1A18; color:#FAFAF8; border-color:#1A1A18; }
.tx-tab.active-btc  { background:#534AB7; color:#FAFAF8; border-color:#534AB7; }
.tx-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid #D4D4C8; }
.tx-desc.bank { border-left-color:#1A1A18; }
.tx-desc.btc  { border-left-color:#534AB7; }
.tx-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:1.25rem; }
.tx-stat { background:#F4F4F0; border-radius:var(--border-radius-md); padding:10px 12px; }
.tx-stat-label { font-size:10px; color:#52524C; margin-bottom:4px; }
.tx-stat-value { font-size:13px; font-weight:500; color:#1A1A18; }
.tx-stat-value.good { color:#3B6D11; }
.tx-stat-value.bad  { color:#A32D2D; }
.tx-scenario { display:none; gap:6px; margin-bottom:1.25rem; }
.tx-scenario.show { display:flex; }
.tx-scenario-btn { flex:1; padding:8px; font-size:11px; font-family:'Sora',sans-serif; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#52524C; cursor:pointer; border-radius:var(--border-radius-md); transition:all 0.2s; }
.tx-scenario-btn.active-normal   { background:#3B6D11; color:#fff; border-color:#3B6D11; }
.tx-scenario-btn.active-blocked  { background:#A32D2D; color:#fff; border-color:#A32D2D; }
.tx-scenario-btn.active-btcblock { background:#534AB7; color:#fff; border-color:#534AB7; }
.tx-flow { display:flex; flex-direction:column; gap:6px; margin-bottom:1.25rem; }
.tx-step { display:grid; grid-template-columns:28px 1fr auto; gap:12px; align-items:center; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:10px 14px; transition:all 0.4s; opacity:0.35; }
.tx-step.active  { opacity:1; border-color:#534AB7; background:rgba(83,74,183,0.04); }
.tx-step.done    { opacity:1; border-color:#3B6D11; background:#EAF3DE; }
.tx-step.blocked { opacity:1; border-color:#A32D2D; background:#FCEBEB; }
.tx-step.frozen  { opacity:0.4; }
.tx-step.waiting { opacity:1; border-color:#C8A020; background:#FFF8E1; }
.tx-step-icon   { font-size:18px; text-align:center; }
.tx-step-info   { flex:1; display:flex; flex-direction:column; }
.tx-step-name   { font-size:12px; font-weight:500; color:#1A1A18; margin-bottom:2px; }
.tx-step-detail { font-size:11px; color:#52524C; line-height:1.4; }
.tx-step-status { font-size:10px; padding:3px 8px; border-radius:99px; font-weight:500; white-space:nowrap; opacity:0; transition:opacity 0.3s; }
.tx-step-status.show    { opacity:1; }
.tx-step-status.ok      { background:#EAF3DE; color:#3B6D11; }
.tx-step-status.pending { background:#FFF8E1; color:#8B6914; }
.tx-step-status.blocked { background:#FCEBEB; color:#A32D2D; }
.tx-step-status.info    { background:#EEEDFE; color:#534AB7; }
.node-grid-wrap { margin-bottom:1.25rem; display:none; }
.node-grid-wrap.show { display:block; }
.node-grid-label { font-size:11px; color:#52524C; margin-bottom:8px; }
.node-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; margin-bottom:10px; }
.node { aspect-ratio:1; border-radius:var(--border-radius-md); border:1.5px solid rgba(124,58,237,0.12); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:14px; transition:all 0.4s; background:#F4F4F0; }
.node.validating { border-color:#534AB7; background:#EEEDFE; }
.node.valid      { border-color:#3B6D11; background:#EAF3DE; }
.node.evil       { border-color:#A32D2D; background:#FCEBEB; }
.node.rejected   { border-color:#A32D2D; background:#FCEBEB; opacity:0.5; }
.node-label { font-size:8px; margin-top:2px; font-weight:500; }
.node.valid .node-label      { color:#3B6D11; }
.node.evil .node-label       { color:#A32D2D; }
.node.rejected .node-label   { color:#A32D2D; }
.node.validating .node-label { color:#534AB7; }
.node-consensus { font-size:12px; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid; display:none; line-height:1.6; }
.node-consensus.show    { display:block; }
.node-consensus.valid   { background:#EAF3DE; border-color:#97C459; color:#27500A; }
.tx-confirm { margin-bottom:1.25rem; display:none; }
.tx-confirm.show { display:block; }
.tx-confirm-label { font-size:11px; color:#52524C; margin-bottom:6px; }
.tx-confirm-track { display:flex; gap:4px; }
.tx-confirm-block { flex:1; height:8px; border-radius:4px; background:rgba(124,58,237,0.12); transition:background 0.4s; }
.tx-confirm-block.confirmed { background:#534AB7; }
.tx-confirm-count { font-size:11px; color:#534AB7; font-weight:500; margin-top:5px; text-align:right; }
.tx-result { border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; line-height:1.6; display:none; border:0.5px solid; margin-bottom:1.25rem; }
.tx-result.show    { display:block; }
.tx-result.success { background:#EAF3DE; border-color:#97C459; color:#27500A; }
.tx-result.fail    { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.tx-controls { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1.5rem; }
.tx-btn { padding:9px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.tx-btn-start { background:#1A1A18; color:#FAFAF8; }
.tx-btn-start:hover { background:#534AB7; }
.tx-btn-start:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.tx-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.2); color:#6D28D9; cursor:pointer; }
.tx-btn-reset:hover { background:rgba(124,58,237,0.06); }
.tx-compare { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.tx-compare-header { display:grid; grid-template-columns:1fr 1fr 1fr; background:#F4F4F0; border-bottom:0.5px solid rgba(124,58,237,0.12); }
.tx-compare-header div { padding:8px 14px; font-size:11px; font-weight:500; color:#52524C; }
.tx-compare-row { display:grid; grid-template-columns:1fr 1fr 1fr; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.tx-compare-row:last-child { border-bottom:none; }
.tx-compare-row div { padding:10px 14px; font-size:11px; color:#1A1A18; line-height:1.5; }
.tx-compare-row div:first-child { color:#52524C; font-size:10px; }
.tx-compare-row div.good { color:#3B6D11; font-weight:500; }
.tx-compare-row div.bad  { color:#A32D2D; }
/* ============================================================
   PAGE 4 · BAB 1 · 1.4 SIMULATION (Blockchain)
============================================================ */
.bc-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); font-family:'Sora',sans-serif; }
.bc-chain { display:flex; flex-direction:column; gap:0; }
.bc-link { display:flex; align-items:center; justify-content:center; padding:4px 0; gap:6px; }
.bc-link-arrow { font-size:14px; color:#D4D4C8; transition:color 0.3s; }
.bc-link.invalid .bc-link-arrow { color:#A32D2D; }
.bc-link-label { font-size:9px; letter-spacing:0.1em; color:#C4B5FD; font-family:'Sora',sans-serif; }
.bc-link.invalid .bc-link-label { color:#A32D2D; }
.bc-block { border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-lg); overflow:hidden; transition:border-color 0.4s; }
.bc-block.valid   { border-color:#3B6D11; }
.bc-block.invalid { border-color:#A32D2D; }
.bc-block-header { display:flex; align-items:center; justify-content:space-between; padding:8px 14px; background:#1A1A18; transition:background 0.4s; }
.bc-block.invalid .bc-block-header { background:#A32D2D; }
.bc-block-num { font-size:11px; color:#C4B5FD; font-family:'Sora',sans-serif; font-weight:300; }
.bc-block-status { font-size:9px; padding:2px 8px; border-radius:99px; font-family:'Sora',sans-serif; font-weight:500; }
.bc-block.valid .bc-block-status   { background:#EAF3DE; color:#3B6D11; }
.bc-block.invalid .bc-block-status { background:#FCEBEB; color:#A32D2D; }
.bc-block-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.bc-field { display:grid; grid-template-columns:110px 1fr; gap:8px; align-items:flex-start; }
.bc-field-label { font-size:9px; color:#52524C; letter-spacing:0.1em; text-transform:uppercase; padding-top:6px; font-family:'Sora',sans-serif; }
.bc-field-value { font-size:10px; color:#1A1A18; line-height:1.5; word-break:break-all; padding:5px 8px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); font-family:'Courier Prime',monospace; transition:background 0.3s, border-color 0.3s; }
.bc-field-value.invalid { background:#FCEBEB; border-color:#F09595; color:#A32D2D; }
.bc-data-input { width:100%; font-size:10px; font-family:'Courier Prime',monospace; padding:5px 8px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; resize:none; line-height:1.5; transition:border-color 0.2s; }
.bc-data-input:focus { outline:none; border-color:#534AB7; }
.bc-data-input:disabled { opacity:0.6; background:#F4F4F0; }
.bc-result { margin-top:1.25rem; border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; line-height:1.6; display:none; border:0.5px solid; font-family:'Sora',sans-serif; }
.bc-result.show    { display:block; }
.bc-result.invalid { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.bc-controls { display:flex; gap:8px; margin-top:1.25rem; }
.bc-btn { padding:8px 18px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.bc-btn-reset { background:#1A1A18; color:#FAFAF8; }
.bc-btn-reset:hover { background:#534AB7; }
.bc-hint { font-size:11px; color:#52524C; margin-top:1rem; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; line-height:1.6; }

/* ============================================================
   PAGE 4 · BAB 1 · 1.4 SIMULATION (Blockchain Attack)
============================================================ */
.atk-desc { font-size:12px; color:#791F1F; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#FCEBEB; border-radius:var(--border-radius-md); border-left:2px solid #A32D2D; }
.atk-chain { display:flex; gap:6px; margin-bottom:1.25rem; overflow-x:auto; padding-bottom:4px; }
.atk-block { flex-shrink:0; width:120px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); overflow:hidden; cursor:pointer; transition:all 0.3s; }
.atk-block:hover { border-color:#534AB7; }
.atk-block.selected    { border-color:#A32D2D; box-shadow:0 0 0 2px rgba(163,45,45,0.2); }
.atk-block.valid       { border-color:#3B6D11; }
.atk-block.invalid     { border-color:#A32D2D; }
.atk-block.compromised { border-color:#A32D2D; background:#FCEBEB; }
.atk-block-head { padding:6px 8px; background:#1A1A18; font-size:10px; color:#C4B5FD; font-weight:300; display:flex; justify-content:space-between; align-items:center; transition:background 0.3s; }
.atk-block.selected .atk-block-head   { background:#A32D2D; }
.atk-block.compromised .atk-block-head { background:#A32D2D; }
.atk-block.valid .atk-block-head      { background:#3B6D11; }
.atk-block-body { padding:6px 8px; font-size:9px; color:#52524C; line-height:1.6; font-family:'Courier Prime',monospace; }
.atk-block-tx { font-size:9px; color:#1A1A18; margin-top:2px; word-break:break-all; }
.atk-panel { border:0.5px solid #A32D2D; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; display:none; }
.atk-panel.show { display:block; }
.atk-panel-head { padding:8px 14px; background:#A32D2D; font-size:11px; color:#fff; font-weight:500; }
.atk-panel-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:10px; }
.atk-panel-label { font-size:10px; color:#52524C; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:4px; }
.atk-panel-orig { font-size:11px; font-family:'Courier Prime',monospace; color:#3A3A35; padding:6px 8px; background:#F4F4F0; border-radius:var(--border-radius-md); line-height:1.5; text-decoration:line-through; }
.atk-panel-input { width:100%; font-size:11px; font-family:'Courier Prime',monospace; padding:6px 8px; border:0.5px solid #F09595; border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; resize:none; line-height:1.5; }
.atk-panel-input:focus { outline:none; border-color:#A32D2D; }
.atk-panel-btn { padding:8px 16px; font-size:11px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; border:none; background:#A32D2D; color:#fff; transition:background 0.2s; align-self:flex-start; }
.atk-panel-btn:hover { background:#791F1F; }
.atk-race { display:none; margin-bottom:1.25rem; }
.atk-race.show { display:block; }
.atk-race-label { font-size:11px; color:#52524C; margin-bottom:8px; }
.atk-race-row { display:flex; flex-direction:column; gap:6px; }
.atk-bar-wrap { display:flex; align-items:center; gap:8px; }
.atk-bar-name { font-size:10px; min-width:100px; color:#52524C; }
.atk-bar-track { flex:1; height:10px; background:rgba(124,58,237,0.1); border-radius:5px; overflow:hidden; }
.atk-bar-fill { height:100%; border-radius:5px; width:0%; transition:width 0.1s linear; }
.atk-bar-fill.attacker { background:#A32D2D; }
.atk-bar-fill.network  { background:#534AB7; }
.atk-bar-pct { font-size:10px; min-width:36px; text-align:right; font-family:'Courier Prime',monospace; color:#52524C; }
.atk-race-status { font-size:11px; padding:6px 10px; border-radius:var(--border-radius-md); margin-top:6px; font-weight:500; display:none; }
.atk-race-status.show { display:block; }
.atk-race-status.fail { background:#FCEBEB; color:#791F1F; }
.atk-result { border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; line-height:1.6; display:none; border:0.5px solid; margin-bottom:1.25rem; }
.atk-result.show { display:block; }
.atk-result.fail { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.atk-controls { display:flex; gap:8px; }
.atk-btn { padding:8px 18px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.atk-btn-reset { background:#1A1A18; color:#FAFAF8; }
.atk-btn-reset:hover { background:#534AB7; }
.atk-hint { font-size:11px; color:#52524C; margin-top:1rem; line-height:1.6; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 4 · BAB 1 · 1.5 SIMULATION (Halving Table)
============================================================ */
.hv-progress-wrap { margin-bottom:1.5rem; }
.hv-progress-label { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.hv-progress-title { font-size:12px; color:#3A3A35; }
.hv-progress-num   { font-size:13px; font-weight:500; color:#534AB7; font-family:'Courier Prime',monospace; }
.hv-progress-track { height:8px; background:rgba(124,58,237,0.1); border-radius:4px; overflow:hidden; }
.hv-progress-fill  { height:100%; border-radius:4px; background:linear-gradient(90deg,#534AB7,#7C3AED); }
.hv-progress-sub   { font-size:10px; color:#52524C; margin-top:4px; text-align:right; }
.hv-table-wrap { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.hv-table { width:100%; border-collapse:collapse; }
.hv-thead { background:#1A1A18; }
.hv-thead th { padding:8px 12px; font-size:10px; font-weight:500; color:#C4B5FD; text-align:left; letter-spacing:0.05em; white-space:nowrap; }
.hv-tbody tr { border-bottom:0.5px solid rgba(124,58,237,0.08); cursor:pointer; transition:background 0.15s; }
.hv-tbody tr:last-child { border-bottom:none; }
.hv-tbody tr:hover   { background:rgba(124,58,237,0.04); }
.hv-tbody tr.active  { background:#EEEDFE; }
.hv-tbody td { padding:9px 12px; font-size:11px; color:#1A1A18; font-family:'Courier Prime',monospace; white-space:nowrap; }
.hv-td-era  { font-family:'Sora',sans-serif; font-weight:500; font-size:11px; }
.hv-supply-bar-wrap  { display:flex; align-items:center; gap:6px; }
.hv-supply-bar-track { width:60px; height:5px; background:rgba(124,58,237,0.1); border-radius:3px; overflow:hidden; }
.hv-supply-bar-fill  { height:100%; background:#534AB7; border-radius:3px; }
.hv-detail { border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-lg); overflow:hidden; display:none; margin-bottom:1rem; }
.hv-detail.show { display:block; }
.hv-detail-head { padding:8px 14px; background:#534AB7; font-size:11px; color:#fff; font-weight:500; font-family:'Sora',sans-serif; }
.hv-detail-body { padding:12px 14px; background:#FAFAF8; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hv-detail-label { font-size:9px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:3px; font-family:'Sora',sans-serif; }
.hv-detail-value { font-size:13px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.hv-detail-note  { font-size:11px; color:#3A3A35; margin-top:8px; line-height:1.6; grid-column:1/-1; font-family:'Sora',sans-serif; }
.hv-hint { font-size:11px; color:#52524C; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); line-height:1.6; }

/* ============================================================
   PAGE 4 · BAB 1 · 1.6 SIMULATION (Bitcoin vs Uang Biasa)
============================================================ */
.cmp-pills { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:1.5rem; }
.cmp-pill { padding:7px 14px; font-size:11px; cursor:pointer; border:0.5px solid rgba(124,58,237,0.2); border-radius:99px; background:transparent; color:#52524C; transition:all 0.2s; font-family:'Sora',sans-serif; }
.cmp-pill:hover  { border-color:#534AB7; color:#534AB7; }
.cmp-pill.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.cmp-card { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; display:none; }
.cmp-card.show { display:block; }
.cmp-card-head { padding:10px 16px; background:#1A1A18; font-size:12px; color:#C4B5FD; font-weight:300; display:flex; align-items:center; gap:8px; }
.cmp-card-icon { font-size:16px; }
.cmp-cols { display:grid; grid-template-columns:1fr 1fr; }
.cmp-col { padding:16px; }
.cmp-col:first-child { border-right:0.5px solid rgba(124,58,237,0.1); }
.cmp-col-head { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; margin-bottom:10px; padding-bottom:8px; border-bottom:0.5px solid rgba(124,58,237,0.1); }
.cmp-col-head.fiat { color:#52524C; }
.cmp-col-head.btc  { color:#534AB7; }
.cmp-col-body { font-size:12px; color:#1A1A18; line-height:1.7; }
.cmp-verdict { padding:10px 16px; background:#EEEDFE; border-top:0.5px solid rgba(124,58,237,0.1); font-size:11px; color:#3C3489; line-height:1.6; }
.cmp-verdict strong { color:#534AB7; }

/* ============================================================
   PAGE 5 · BAB 2 · Wallet dan Private Key
============================================================ */
#page-bab2 { flex-direction:column; }

/* ============================================================
   PAGE 5 · BAB 2 · 2.2 SIMULATION (Private Key & Public Key)
============================================================ */
.kp-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.5rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.kp-keys { display:flex; flex-direction:column; gap:10px; margin-bottom:1.25rem; }
.kp-key-box { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; transition:border-color 0.3s; }
.kp-key-box.priv { border-color:rgba(163,45,45,0.3); }
.kp-key-box.pub  { border-color:rgba(83,74,183,0.3); }
.kp-key-box.priv.active { border-color:#A32D2D; }
.kp-key-box.pub.active  { border-color:#534AB7; }
.kp-key-head { padding:7px 14px; display:flex; align-items:center; justify-content:space-between; background:#1A1A18; }
.kp-key-label { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; }
.kp-key-label.priv { color:#F09595; }
.kp-key-label.pub  { color:#C4B5FD; }
.kp-key-badge { font-size:9px; padding:2px 8px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.kp-key-badge.priv { background:rgba(163,45,45,0.3); color:#F09595; }
.kp-key-badge.pub  { background:rgba(83,74,183,0.3); color:#C4B5FD; }
.kp-key-val { padding:10px 14px; font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; line-height:1.6; word-break:break-all; background:#FAFAF8; min-height:40px; transition:color 0.3s; }
.kp-key-val.ready.priv { color:#A32D2D; }
.kp-key-val.ready.pub  { color:#534AB7; }
.kp-key-val.flickering { color:#C4B5FD; }
.kp-oneway { display:flex; align-items:center; gap:10px; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); opacity:0; transition:opacity 0.4s; flex-wrap:wrap; }
.kp-oneway.show { opacity:1; }
.kp-oneway-item { display:flex; align-items:center; gap:6px; }
.kp-oneway-key  { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.kp-oneway-key.priv { color:#A32D2D; }
.kp-oneway-key.pub  { color:#534AB7; }
.kp-oneway-arrow { font-size:13px; color:#534AB7; }
.kp-oneway-result { font-size:10px; padding:2px 8px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.kp-oneway-result.ok  { background:#EAF3DE; color:#3B6D11; }
.kp-oneway-result.bad { background:#FCEBEB; color:#A32D2D; }
.kp-oneway-sep { color:#D4D4C8; margin:0 4px; }
.kp-tamper { display:none; margin-bottom:1.25rem; }
.kp-tamper.show { display:block; }
.kp-tamper-label { font-size:11px; color:#3A3A35; margin-bottom:6px; line-height:1.5; }
.kp-tamper-input { width:100%; font-size:10px; font-family:'Courier Prime',monospace; padding:8px 10px; border:0.5px solid #F09595; border-radius:var(--border-radius-md); background:#FAFAF8; color:#A32D2D; resize:none; line-height:1.6; }
.kp-tamper-input:focus { outline:none; border-color:#A32D2D; }
.kp-tamper-result { margin-top:8px; font-size:11px; padding:8px 10px; border-radius:var(--border-radius-md); border:0.5px solid; display:none; line-height:1.5; }
.kp-tamper-result.show    { display:block; }
.kp-tamper-result.changed { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.kp-controls { display:flex; gap:8px; flex-wrap:wrap; }
.kp-btn { padding:8px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.kp-btn-gen { background:#1A1A18; color:#FAFAF8; }
.kp-btn-gen:hover { background:#534AB7; }
.kp-btn-gen:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.kp-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.2); color:#6D28D9; cursor:pointer; }
.kp-btn-reset:hover { background:rgba(124,58,237,0.06); }

/* ============================================================
   PAGE 5 · BAB 2 · 2.3 SIMULATION (Key to Address)
============================================================ */
.ka-controls { display:flex; gap:8px; margin-bottom:1.25rem; }
.ka-btn { padding:8px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.ka-btn-gen { background:#1A1A18; color:#FAFAF8; }
.ka-btn-gen:hover { background:#534AB7; }
.ka-btn-gen:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.ka-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.2); color:#6D28D9; cursor:pointer; }
.ka-btn-reset:hover { background:rgba(124,58,237,0.06); }
.ka-node { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.ka-node-head { padding:8px 14px; background:#1A1A18; display:flex; align-items:center; justify-content:space-between; }
.ka-node-label { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; }
.ka-node-label.priv { color:#F09595; }
.ka-node-label.pub  { color:#C4B5FD; }
.ka-node-val { padding:10px 14px; font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; line-height:1.6; word-break:break-all; background:#FAFAF8; min-height:36px; transition:color 0.3s; }
.ka-node-val.priv { color:#A32D2D; }
.ka-node-val.pub  { color:#534AB7; }
.ka-node-badge { font-size:9px; padding:2px 8px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.ka-node-badge.priv { background:rgba(163,45,45,0.3); color:#F09595; }
.ka-node-badge.pub  { background:rgba(83,74,183,0.3); color:#C4B5FD; }
.ka-arrow { display:flex; flex-direction:column; align-items:center; padding:5px 0; }
.ka-arrow-line { width:1px; height:14px; background:rgba(124,58,237,0.2); }
.ka-arrow-tip { width:6px; height:6px; border-right:1px solid rgba(124,58,237,0.3); border-bottom:1px solid rgba(124,58,237,0.3); transform:rotate(45deg); margin-top:-4px; }
.ka-arrow-lbl { font-size:9px; color:#52524C; margin-top:3px; letter-spacing:0.05em; }
.ka-addr-grid { display:flex; flex-direction:column; gap:6px; }
.ka-addr-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; cursor:pointer; transition:border-color 0.2s; }
.ka-addr-card:hover { border-color:#534AB7; }
.ka-addr-card.active { border-color:#534AB7; }
.ka-addr-card-head { padding:8px 12px; background:#F4F4F0; display:flex; align-items:center; justify-content:space-between; }
.ka-addr-card.active .ka-addr-card-head { background:#EEEDFE; }
.ka-addr-left { display:flex; align-items:center; gap:8px; }
.ka-addr-format { font-size:11px; font-weight:500; color:#1A1A18; }
.ka-addr-prefix { font-size:9px; color:#52524C; font-family:'Courier Prime',monospace; }
.ka-badge-wrap { display:flex; gap:4px; }
.ka-badge { font-size:9px; padding:2px 7px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.ka-badge.popular { background:#EAF3DE; color:#3B6D11; }
.ka-badge.modern  { background:#EEEDFE; color:#534AB7; }
.ka-badge.legacy  { background:#F4F4F0; color:#52524C; }
.ka-badge.future  { background:#FFF8E1; color:#8B6914; }
.ka-addr-body { display:none; padding:10px 12px; background:#FAFAF8; }
.ka-addr-card.active .ka-addr-body { display:block; }
.ka-addr-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; word-break:break-all; line-height:1.6; margin-bottom:6px; }
.ka-addr-desc { font-size:11px; color:#3A3A35; line-height:1.6; }
.ka-hint-bottom { font-size:11px; color:#52524C; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); line-height:1.6; margin-top:1rem; display:none; }
.ka-placeholder { font-size:11px; color:#52524C; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); }
/* ============================================================
   PAGE 5 · BAB 2 · 2.4 SIMULATION (Seed Phrase)
============================================================ */
.b02-s24-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.sp-toggle { display:flex; gap:6px; margin-bottom:1.25rem; }
.sp-toggle-btn { padding:7px 16px; font-size:11px; font-family:'Sora',sans-serif; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#52524C; cursor:pointer; border-radius:99px; transition:all 0.2s; }
.sp-toggle-btn.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.sp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:1.25rem; }
.sp-word { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:8px 10px; background:#FAFAF8; display:flex; align-items:center; gap:8px; transition:all 0.3s; }
.sp-word.flickering { border-color:rgba(124,58,237,0.3); background:#EEEDFE; }
.sp-word.done { border-color:rgba(124,58,237,0.25); }
.sp-word-num { font-size:9px; color:#C4B5FD; font-weight:500; min-width:16px; text-align:right; font-family:'Courier Prime',monospace; }
.sp-word-text { font-size:12px; color:#1A1A18; font-family:'Courier Prime',monospace; font-weight:500; min-height:18px; }
.sp-word-text.placeholder { color:#D4D4C8; }
.sp-warning { border:0.5px solid #F09595; border-radius:var(--border-radius-md); padding:10px 14px; background:#FCEBEB; font-size:11px; color:#791F1F; line-height:1.6; margin-bottom:1.25rem; display:none; }
.sp-warning.show { display:block; }
.sp-derive { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; display:none; }
.sp-derive.show { display:block; }
.sp-derive-head { padding:8px 14px; background:#1A1A18; font-size:10px; color:#C4B5FD; letter-spacing:0.1em; text-transform:uppercase; }
.sp-derive-body { padding:10px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.sp-derive-row { display:grid; grid-template-columns:80px 1fr; gap:8px; align-items:center; }
.sp-derive-label { font-size:9px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; font-family:'Sora',sans-serif; }
.sp-derive-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; word-break:break-all; }
.sp-derive-note { font-size:11px; color:#3A3A35; line-height:1.6; margin-top:4px; padding-top:8px; border-top:0.5px solid rgba(124,58,237,0.1); font-family:'Sora',sans-serif; }
.sp-controls { display:flex; gap:8px; flex-wrap:wrap; }
.sp-btn { padding:8px 20px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; transition:all 0.2s; border:none; }
.sp-btn-gen { background:#1A1A18; color:#FAFAF8; }
.sp-btn-gen:hover { background:#534AB7; }
.sp-btn-gen:disabled { opacity:0.35; cursor:not-allowed; background:#1A1A18; }
.sp-btn-reset { background:transparent; border:0.5px solid rgba(124,58,237,0.2); color:#6D28D9; cursor:pointer; }
.sp-btn-reset:hover { background:rgba(124,58,237,0.06); }

/* ============================================================
   PAGE 5 · BAB 2 · 2.5 SIMULATION (Jenis-jenis Wallet)
============================================================ */
.wt-grid { display:flex; flex-direction:column; gap:10px; }
.wt-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; cursor:pointer; transition:border-color 0.2s; }
.wt-card:hover { border-color:#534AB7; }
.wt-card.active { border-color:#534AB7; }
.wt-card-head { padding:12px 16px; background:#F4F4F0; display:flex; align-items:center; justify-content:space-between; transition:background 0.2s; }
.wt-card.active .wt-card-head { background:#EEEDFE; }
.wt-head-left { display:flex; align-items:center; gap:12px; }
.wt-icon { font-size:22px; }
.wt-name { font-size:13px; font-weight:500; color:#1A1A18; }
.wt-type { font-size:10px; color:#52524C; margin-top:2px; }
.wt-badges { display:flex; gap:5px; }
.wt-badge { font-size:9px; padding:3px 8px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.wt-badge.hot  { background:#FFF3E0; color:#E65100; }
.wt-badge.cold { background:#E3F2FD; color:#1565C0; }
.wt-badge.best { background:#EAF3DE; color:#3B6D11; }
.wt-badge.warn { background:#FCEBEB; color:#A32D2D; }
.wt-card-body { display:none; padding:14px 16px; background:#FAFAF8; border-top:0.5px solid rgba(124,58,237,0.08); }
.wt-card.active .wt-card-body { display:block; }
.wt-meters { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.wt-meter-label { font-size:10px; color:#52524C; margin-bottom:5px; font-family:'Sora',sans-serif; }
.wt-meter-track { height:6px; background:rgba(124,58,237,0.1); border-radius:3px; overflow:hidden; }
.wt-meter-fill { height:100%; border-radius:3px; }
.wt-meter-fill.sec { background:#534AB7; }
.wt-meter-fill.con { background:#3B6D11; }
.wt-meter-fill.cst { background:#C8A020; }
.wt-meter-fill.spd { background:#0891B2; }
.wt-meter-val { font-size:10px; color:#1A1A18; font-weight:500; margin-top:4px; font-family:'Courier Prime',monospace; }
.wt-desc { font-size:12px; color:#1A1A18; line-height:1.7; margin-bottom:12px; }
.wt-pros-cons { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.wt-pc-label { font-size:10px; font-weight:500; margin-bottom:6px; font-family:'Sora',sans-serif; }
.wt-pros .wt-pc-label { color:#3B6D11; }
.wt-cons .wt-pc-label { color:#A32D2D; }
.wt-pc-item { font-size:11px; color:#3A3A35; line-height:1.6; padding-left:12px; position:relative; margin-bottom:3px; }
.wt-pc-item::before { content:''; position:absolute; left:0; top:7px; width:5px; height:5px; border-radius:50%; }
.wt-pros .wt-pc-item::before { background:#3B6D11; }
.wt-cons .wt-pc-item::before { background:#A32D2D; }
.wt-usecase { font-size:11px; color:#534AB7; line-height:1.6; padding:8px 12px; background:#EEEDFE; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 5 · BAB 2 · 2.6 SIMULATION (Custodial vs Non-Custodial)
============================================================ */
.b02-s26-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.cv-pills { display:flex; flex-direction:column; gap:8px; margin-bottom:1.5rem; }
.cv-pill { padding:12px 16px; font-size:12px; font-family:'Sora',sans-serif; border:0.5px solid rgba(124,58,237,0.15); background:#FAFAF8; color:#1A1A18; cursor:pointer; border-radius:var(--border-radius-md); transition:all 0.2s; text-align:left; line-height:1.5; }
.cv-pill:hover { border-color:#534AB7; background:#EEEDFE; }
.cv-pill.active { border-color:#A32D2D; background:#FCEBEB; }
.cv-pill-tag { font-size:9px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:3px; }
.cv-pill.active .cv-pill-tag { color:#A32D2D; }
.cv-pill:not(.active) .cv-pill-tag { color:#52524C; }
.cv-pill-title { font-size:12px; font-weight:500; }
.cv-pill-sub { font-size:11px; color:#52524C; margin-top:2px; }
.cv-compare { display:none; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:1.25rem; }
.cv-compare.show { display:grid; }
.cv-side { border-radius:var(--border-radius-lg); overflow:hidden; border:0.5px solid rgba(124,58,237,0.12); }
.cv-side-head { padding:10px 14px; display:flex; align-items:center; gap:8px; }
.cv-side.custodial .cv-side-head { background:#1A1A18; }
.cv-side.noncustodial .cv-side-head { background:#534AB7; }
.cv-side-icon { font-size:18px; }
.cv-side-name { font-size:11px; font-weight:500; color:#fff; }
.cv-side-body { padding:12px 14px; background:#FAFAF8; }
.cv-timeline { display:flex; flex-direction:column; gap:8px; }
.cv-event { display:flex; gap:8px; align-items:flex-start; opacity:0; transform:translateY(6px); transition:all 0.4s ease; }
.cv-event.show { opacity:1; transform:translateY(0); }
.cv-event-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:5px; }
.cv-event-dot.bad  { background:#A32D2D; }
.cv-event-dot.ok   { background:#3B6D11; }
.cv-event-dot.warn { background:#C8A020; }
.cv-event-text { font-size:11px; color:#1A1A18; line-height:1.6; }
.cv-event-text span { font-size:10px; color:#52524C; display:block; }
.cv-verdict { border-radius:var(--border-radius-md); padding:10px 14px; font-size:12px; line-height:1.6; display:none; border:0.5px solid; margin-bottom:1rem; }
.cv-verdict.show { display:block; }
.cv-verdict.danger { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.cv-reset { margin-top:0.5rem; }
.cv-btn { padding:8px 18px; font-size:12px; font-family:'Sora',sans-serif; cursor:pointer; border-radius:var(--border-radius-md); font-weight:500; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#6D28D9; transition:all 0.2s; }
.cv-btn:hover { background:rgba(124,58,237,0.06); }

/* ============================================================
   PAGE 6 · BAB 3 · Anatomi Sebuah Transaksi
============================================================ */
#page-bab3 { flex-direction:column; }

/* ============================================================
   PAGE 6 · BAB 3 · 3.2 SIMULATION (UTXO)
============================================================ */
.b03-s32-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.utxo-send-wrap { margin-bottom:1.25rem; }
.utxo-section-label { font-size:11px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:10px; font-family:'Sora',sans-serif; }
.utxo-send-row { display:flex; align-items:center; gap:12px; }
.utxo-send-row label { font-size:13px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.utxo-send-row input[type=range] { flex:1; accent-color:#534AB7; }
.utxo-send-val { font-size:14px; font-weight:500; color:#1A1A18; min-width:80px; font-family:'Courier Prime',monospace; }
.utxo-coins-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; margin-bottom:1.25rem; }
.utxo-coin { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:10px 12px; cursor:pointer; transition:all 0.2s; background:#FAFAF8; }
.utxo-coin:hover { border-color:#534AB7; }
.utxo-coin.selected { border:1.5px solid #534AB7; background:#EEEDFE; }
.utxo-coin.spent { opacity:0.35; pointer-events:none; }
.utxo-coin-val { font-size:15px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.utxo-coin-label { font-size:11px; color:#3A3A35; margin-top:3px; }
.utxo-coin-age { font-size:10px; color:#52524C; margin-top:2px; }
.utxo-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:1.25rem; }
.utxo-stat { background:#F4F4F0; border-radius:var(--border-radius-md); padding:12px 14px; }
.utxo-stat-label { font-size:11px; color:#52524C; margin-bottom:4px; font-family:'Sora',sans-serif; }
.utxo-stat-val { font-size:15px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.utxo-stat-val.ok   { color:#3B6D11; }
.utxo-stat-val.warn { color:#A32D2D; }
.utxo-btn-row { display:flex; gap:8px; margin-bottom:1.25rem; flex-wrap:wrap; }
.utxo-result { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; display:none; }
.utxo-result.show { display:block; }
.utxo-result-head { padding:8px 14px; background:#1A1A18; font-size:11px; color:#C4B5FD; letter-spacing:0.1em; font-family:'Sora',sans-serif; }
.utxo-result-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.utxo-flow-row { display:flex; align-items:center; gap:8px; font-size:12px; flex-wrap:wrap; }
.utxo-flow-arrow { color:#52524C; }
.utxo-flow-tag { padding:3px 10px; border-radius:99px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.utxo-flow-tag.consumed { background:#FCEBEB; color:#791F1F; }
.utxo-flow-tag.created  { background:#EAF3DE; color:#27500A; }
.utxo-flow-tag.fee      { background:#FAEEDA; color:#633806; }
.utxo-flow-val { font-family:'Courier Prime',monospace; font-size:12px; color:#1A1A18; }
.utxo-flow-sub { font-size:11px; color:#52524C; }
.utxo-hr { border:none; border-top:0.5px solid rgba(124,58,237,0.1); margin:4px 0; }
.utxo-note { font-size:12px; color:#3A3A35; line-height:1.6; padding:10px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); }

/* ============================================================
   PAGE 6 · BAB 3 · 3.3 SIMULATION (Input dan Output)
============================================================ */
.b03-s33-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.tx-preset-row { display:flex; gap:6px; margin-bottom:1.25rem; flex-wrap:wrap; }
.tx-preset-btn { padding:6px 14px; font-size:11px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.2s; font-family:'Sora',sans-serif; }
.tx-preset-btn:hover { border-color:#534AB7; color:#534AB7; }
.tx-preset-btn.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.tx-anatomy { display:grid; grid-template-columns:1fr 40px 1fr; gap:0; margin-bottom:1.25rem; align-items:center; }
.tx-col-label { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:8px; font-family:'Sora',sans-serif; }
.tx-items { display:flex; flex-direction:column; gap:6px; }
.tx-item { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:10px 12px; cursor:pointer; transition:all 0.2s; background:#FAFAF8; }
.tx-item:hover { border-color:#534AB7; }
.tx-item.active { border-color:#534AB7; background:#EEEDFE; }
.tx-item.input-item  { border-left:2px solid #A32D2D; }
.tx-item.output-item { border-left:2px solid #3B6D11; }
.tx-item.change-item { border-left:2px solid #534AB7; }
.tx-item.fee-item    { border-left:2px solid #C8A020; }
.tx-item-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:3px; }
.tx-item-tag { font-size:9px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; }
.tx-item-tag.inp { color:#A32D2D; }
.tx-item-tag.out { color:#3B6D11; }
.tx-item-tag.chg { color:#534AB7; }
.tx-item-tag.fee { color:#C8A020; }
.tx-item-val { font-size:13px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.tx-item-sub { font-size:10px; color:#3A3A35; }
.tx-middle { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.tx-box { background:#1A1A18; border-radius:var(--border-radius-md); padding:8px 6px; text-align:center; }
.tx-box-label { font-size:9px; color:#C4B5FD; letter-spacing:0.1em; writing-mode:vertical-rl; transform:rotate(180deg); font-family:'Sora',sans-serif; }
.tx-detail { border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; display:none; }
.tx-detail.show { display:block; }
.tx-detail-head { padding:8px 14px; background:#534AB7; font-size:11px; color:#fff; font-weight:500; font-family:'Sora',sans-serif; }
.tx-detail-body { padding:12px 14px; background:#FAFAF8; font-size:12px; color:#1A1A18; line-height:1.7; }
.tx-balance { display:flex; align-items:center; gap:8px; font-size:12px; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); flex-wrap:wrap; }
.tx-balance-item { font-family:'Courier Prime',monospace; }
.tx-balance-sep  { color:#52524C; }
.tx-balance-ok   { color:#3B6D11; font-weight:500; font-family:'Courier Prime',monospace; }
.tx-balance-bad  { color:#A32D2D; font-weight:500; font-family:'Courier Prime',monospace; }

/* ============================================================
   PAGE 6 · BAB 3 · 3.4 SIMULATION (Transaction Fee)
============================================================ */
.b03-s34-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.fee-controls { display:flex; flex-direction:column; gap:12px; margin-bottom:1.25rem; }
.fee-ctrl-row { display:grid; grid-template-columns:140px 1fr 60px; align-items:center; gap:12px; }
.fee-ctrl-label { font-size:12px; color:#3A3A35; font-family:'Sora',sans-serif; }
.fee-ctrl-row input[type=range] { accent-color:#534AB7; }
.fee-ctrl-val { font-size:12px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; text-align:right; }
.fee-size-box { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; }
.fee-size-head { padding:8px 14px; background:#1A1A18; font-size:10px; color:#C4B5FD; letter-spacing:0.1em; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.fee-size-total { font-size:13px; font-weight:500; color:#fff; font-family:'Courier Prime',monospace; }
.fee-size-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.fee-size-row { display:flex; justify-content:space-between; align-items:center; font-size:11px; }
.fee-size-name { color:#3A3A35; font-family:'Sora',sans-serif; }
.fee-size-bytes { font-family:'Courier Prime',monospace; color:#1A1A18; font-weight:500; }
.fee-size-bar-row { height:8px; border-radius:4px; overflow:hidden; display:flex; margin-bottom:4px; }
.fee-size-bar { height:100%; transition:flex 0.4s ease; }
.fee-size-bar.overhead { background:#C4B5FD; }
.fee-size-bar.inputs   { background:#A32D2D; }
.fee-size-bar.outputs  { background:#3B6D11; }
.fee-rates { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:1.25rem; }
.fee-rate-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:12px; cursor:pointer; transition:all 0.2s; text-align:center; background:#FAFAF8; }
.fee-rate-card:hover { border-color:#534AB7; }
.fee-rate-card.active { border-color:#534AB7; background:#EEEDFE; }
.fee-rate-label { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:4px; font-family:'Sora',sans-serif; }
.fee-rate-val { font-size:14px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; margin-bottom:4px; }
.fee-rate-time { font-size:11px; color:#534AB7; font-family:'Sora',sans-serif; }
.fee-result { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:1.25rem; }
.fee-stat { background:#F4F4F0; border-radius:var(--border-radius-md); padding:12px 14px; }
.fee-stat-label { font-size:11px; color:#52524C; margin-bottom:4px; font-family:'Sora',sans-serif; }
.fee-stat-val { font-size:15px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.fee-stat-sub { font-size:10px; color:#52524C; margin-top:2px; font-family:'Sora',sans-serif; }
.fee-mempool { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:12px 14px; background:#FAFAF8; }
.fee-mempool-label { font-size:11px; color:#3A3A35; margin-bottom:8px; font-family:'Sora',sans-serif; }
.fee-mempool-bar { height:32px; border-radius:4px; overflow:hidden; display:flex; align-items:stretch; margin-bottom:8px; background:#F4F4F0; }
.fee-mempool-seg { transition:flex 0.4s ease; }
.fee-mempool-seg.high { background:#534AB7; }
.fee-mempool-seg.med  { background:#A58AE8; }
.fee-mempool-seg.low  { background:#C4B5FD; }
.fee-mempool-seg.mine { background:#3B6D11; border:2px solid #1A1A18; min-width:8px; }
.fee-mempool-legend { display:flex; gap:12px; flex-wrap:wrap; }
.fee-mempool-leg-item { display:flex; align-items:center; gap:4px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.fee-mempool-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }

/* ============================================================
   PAGE 6 · BAB 3 · 3.5 SIMULATION (Mempool)
============================================================ */
.b03-s35-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.mp-pills { display:flex; gap:8px; margin-bottom:1.25rem; }
.mp-pill { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.15); background:#FAFAF8; cursor:pointer; transition:all 0.2s; text-align:center; flex:1; }
.mp-pill:hover { border-color:#534AB7; }
.mp-pill.active { border-color:#534AB7; background:#EEEDFE; }
.mp-pill-label { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:3px; font-family:'Sora',sans-serif; }
.mp-pill.active .mp-pill-label { color:#534AB7; }
.mp-pill-val { font-size:13px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.mp-pill-sub { font-size:10px; color:#52524C; margin-top:2px; }
.mp-status { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; margin-bottom:1.25rem; border:0.5px solid rgba(124,58,237,0.15); background:#FAFAF8; min-height:52px; }
.mp-status-step { font-size:10px; color:#52524C; margin-bottom:3px; text-transform:uppercase; letter-spacing:0.1em; font-family:'Sora',sans-serif; }
.mp-stage { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:1.25rem; }
.mp-col { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.mp-col-head { padding:7px 10px; background:#1A1A18; font-size:10px; color:#C4B5FD; letter-spacing:0.1em; text-transform:uppercase; font-family:'Sora',sans-serif; }
.mp-col-body { padding:8px; min-height:160px; max-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:5px; }
.mp-tx { border-radius:var(--border-radius-md); padding:7px 8px; font-size:11px; border:0.5px solid transparent; }
.mp-tx.yours { border-color:#534AB7; background:#EEEDFE; }
.mp-tx.other { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.mp-tx-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:2px; }
.mp-tx-id { font-size:9px; font-family:'Courier Prime',monospace; color:#52524C; }
.mp-tx-fee { font-size:10px; font-weight:500; font-family:'Courier Prime',monospace; }
.mp-tx-fee.y { color:#534AB7; }
.mp-tx-fee.o { color:#52524C; }
.mp-tx-lbl { font-size:9px; color:#3A3A35; font-family:'Sora',sans-serif; }
.mp-block { border:0.5px solid #3B6D11; border-radius:var(--border-radius-md); padding:7px 8px; background:#EAF3DE; margin-bottom:4px; }
.mp-block-head { display:flex; justify-content:space-between; font-size:9px; margin-bottom:2px; }
.mp-block-num { font-weight:500; color:#27500A; font-family:'Courier Prime',monospace; }
.mp-block-conf { color:#3B6D11; font-family:'Sora',sans-serif; }
.mp-block-txs { font-size:9px; color:#3A3A35; font-family:'Sora',sans-serif; }
.mp-conf { margin-bottom:1.25rem; display:none; }
.mp-conf.show { display:block; }
.mp-conf-lbl { font-size:11px; color:#3A3A35; margin-bottom:6px; font-family:'Sora',sans-serif; }
.mp-dots { display:flex; gap:5px; margin-bottom:6px; }
.mp-dot { width:28px; height:28px; border-radius:50%; border:0.5px solid rgba(124,58,237,0.15); background:#F4F4F0; display:flex; align-items:center; justify-content:center; font-size:10px; color:#52524C; font-weight:500; transition:all 0.4s; }
.mp-dot.on   { background:#534AB7; border-color:#534AB7; color:#fff; }
.mp-dot.done { background:#3B6D11; border-color:#3B6D11; color:#fff; }
.mp-conf-note { font-size:11px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.mp-conf-caveat { font-size:11px; color:#52524C; line-height:1.6; margin-top:8px; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.2); font-family:'Sora',sans-serif; }
.mp-btns { display:flex; gap:8px; flex-wrap:wrap; }

/* ============================================================
   PAGE 6 · BAB 3 · 3.6 SIMULATION (Lifecycle Transaksi)
============================================================ */
.b03-s36-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.lc-timeline { display:flex; flex-direction:column; gap:0; margin-bottom:1.5rem; }
.lc-step { display:flex; gap:12px; align-items:flex-start; cursor:pointer; padding:8px 0; }
.lc-step:last-child { padding-bottom:0; }
.lc-left { display:flex; flex-direction:column; align-items:center; width:28px; flex-shrink:0; }
.lc-dot { width:28px; height:28px; border-radius:50%; border:1.5px solid rgba(124,58,237,0.2); background:#F4F4F0; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:500; color:#52524C; transition:all 0.4s; flex-shrink:0; font-family:'Sora',sans-serif; }
.lc-dot.active { border-color:#534AB7; background:#534AB7; color:#fff; }
.lc-dot.done   { border-color:#3B6D11; background:#3B6D11; color:#fff; }
.lc-line { width:1.5px; flex:1; background:rgba(124,58,237,0.1); min-height:20px; margin-top:4px; transition:background 0.4s; }
.lc-line.done { background:#3B6D11; }
.lc-right { flex:1; padding-bottom:16px; }
.lc-step:last-child .lc-right { padding-bottom:0; }
.lc-step-head { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.lc-step-num { font-size:9px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; font-family:'Sora',sans-serif; }
.lc-step-title { font-size:13px; font-weight:500; color:#52524C; transition:color 0.4s; font-family:'Sora',sans-serif; }
.lc-step-title.active { color:#534AB7; }
.lc-step-title.done   { color:#1A1A18; }
.lc-step-body { font-size:12px; color:#3A3A35; line-height:1.7; display:none; margin-top:6px; padding:10px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.25); font-family:'Sora',sans-serif; }
.lc-step-body.show { display:block; }
.lc-step-body.active-body { border-left-color:#534AB7; background:#EEEDFE; color:#1A1A18; }
.lc-controls { display:flex; gap:8px; flex-wrap:wrap; }

/* ============================================================
   PAGE 7 · BAB 4 · Kriptografi Bitcoin
============================================================ */
#page-bab4 { flex-direction:column; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.1 SIMULATION (Hash Playground)
============================================================ */
.b04-s41-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.hp-input-label { font-size:11px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:6px; font-family:'Sora',sans-serif; }
.hp-textarea { width:100%; font-size:13px; font-family:'Sora',sans-serif; padding:10px 12px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; resize:none; line-height:1.6; outline:none; transition:border-color 0.2s; margin-bottom:1.25rem; }
.hp-textarea:focus { border-color:#534AB7; }
.hp-hash-box { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; }
.hp-hash-head { padding:8px 14px; background:#1A1A18; display:flex; align-items:center; justify-content:space-between; }
.hp-hash-label { font-size:10px; color:#C4B5FD; letter-spacing:0.1em; text-transform:uppercase; font-family:'Sora',sans-serif; }
.hp-hash-algo { font-size:10px; color:#534AB7; background:#EEEDFE; padding:2px 8px; border-radius:99px; font-family:'Sora',sans-serif; }
.hp-hash-val { padding:12px 14px; font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; word-break:break-all; line-height:1.8; background:#FAFAF8; min-height:48px; transition:background 0.3s; }
.hp-hash-val.changed { background:#EEEDFE; }
.hp-hash-empty { color:#52524C; }
.hp-meta { display:flex; gap:16px; margin-bottom:1.25rem; flex-wrap:wrap; }
.hp-meta-item { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.hp-meta-val { font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.hp-presets { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1.25rem; align-items:center; }
.hp-preset { padding:6px 12px; font-size:11px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.2s; font-family:'Sora',sans-serif; }
.hp-preset:hover { border-color:#534AB7; color:#534AB7; }
.hp-avalanche { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.hp-av-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.hp-av-body { padding:12px 14px; display:flex; flex-direction:column; gap:10px; background:#FAFAF8; }
.hp-av-row { display:flex; flex-direction:column; gap:4px; }
.hp-av-input { font-size:12px; font-family:'Courier Prime',monospace; color:#1A1A18; padding:6px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.08); }
.hp-av-input span { color:#A32D2D; font-weight:500; }
.hp-av-hash { font-size:10px; font-family:'Courier Prime',monospace; word-break:break-all; line-height:1.6; padding:6px 10px; border-radius:var(--border-radius-md); }
.hp-av-hash.a { color:#534AB7; background:#EEEDFE; }
.hp-av-hash.b { color:#A32D2D; background:#FCEBEB; }
.hp-av-diff { font-size:11px; color:#52524C; margin-top:2px; font-family:'Sora',sans-serif; line-height:1.6; }
.hp-av-diff strong { color:#534AB7; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.1 SIMULATION (Hash Comparison)
============================================================ */
.b04-s41-cmp-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b04-s41-cmp-table { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.b04-s41-cmp-row { display:grid; grid-template-columns:100px 50px 160px 1fr; gap:0; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b04-s41-cmp-row:last-child { border-bottom:none; }
.b04-s41-cmp-row.header { background:#1A1A18; }
.b04-s41-cmp-row.header > div { font-size:9px; color:#C4B5FD; text-transform:uppercase; letter-spacing:0.1em; padding:7px 12px; font-family:'Sora',sans-serif; }
.b04-s41-cmp-row.deprecated { background:#FAFAF8; opacity:0.6; }
.b04-s41-cmp-name { font-size:11px; font-weight:500; color:#1A1A18; padding:10px 12px; font-family:'Courier Prime',monospace; background:#F4F4F0; display:flex; align-items:center; }
.b04-s41-cmp-name.active { color:#534AB7; background:#EEEDFE; }
.b04-s41-cmp-bits { font-size:11px; color:#3A3A35; padding:10px 12px; font-family:'Courier Prime',monospace; display:flex; align-items:center; border-left:0.5px solid rgba(124,58,237,0.08); }
.b04-s41-cmp-use { font-size:10px; color:#3A3A35; padding:10px 12px; font-family:'Sora',sans-serif; display:flex; align-items:center; border-left:0.5px solid rgba(124,58,237,0.08); line-height:1.4; }
.b04-s41-cmp-out { font-size:9px; font-family:'Courier Prime',monospace; color:#534AB7; padding:10px 12px; word-break:break-all; line-height:1.6; border-left:0.5px solid rgba(124,58,237,0.08); }
.b04-s41-cmp-out.b04-s41-cmp-note-cell { font-family:'Sora',sans-serif; font-size:10px; color:#52524C; font-style:italic; }
.b04-s41-cmp-row.deprecated .b04-s41-cmp-out { color:#52524C; }
.b04-s41-cmp-note { font-size:11px; color:#52524C; line-height:1.6; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }
/* ============================================================
   PAGE 7 · BAB 4 · 4.2 SIMULATION (Elliptic Curve)
============================================================ */
.b04-s42-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.ecc-ctrl { display:flex; align-items:center; gap:12px; margin-bottom:1.25rem; }
.ecc-label { font-size:13px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.ecc-ctrl input[type=range] { flex:1; accent-color:#534AB7; }
.ecc-k-val { font-size:14px; font-weight:500; min-width:60px; font-family:'Courier Prime',monospace; color:#1A1A18; }
.ecc-canvas-wrap { width:100%; margin-bottom:1.25rem; }
.ecc-canvas-wrap canvas { width:100%; border-radius:var(--border-radius-lg); display:block; }
.ecc-cards { display:flex; flex-direction:column; gap:8px; margin-bottom:1.25rem; }
.ecc-card { background:#F4F4F0; border-radius:var(--border-radius-md); padding:12px 14px; }
.ecc-card-label { font-size:10px; color:#52524C; margin-bottom:4px; text-transform:uppercase; letter-spacing:0.1em; font-family:'Sora',sans-serif; }
.ecc-card-val { font-size:11px; font-weight:500; font-family:'Courier Prime',monospace; word-break:break-all; line-height:1.6; }
.ecc-card-val.priv  { color:#A32D2D; }
.ecc-card-val.coord { color:#534AB7; }
.ecc-card-val.pub   { color:#534AB7; }
.ecc-card-sub { font-size:11px; color:#3A3A35; margin-top:4px; line-height:1.5; font-family:'Sora',sans-serif; }
.ecc-prefix { background:#EEEDFE; color:#534AB7; border-radius:3px; padding:0 3px; font-weight:500; }
.ecc-note { font-size:12px; color:#3A3A35; line-height:1.7; padding:10px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.2); font-family:'Sora',sans-serif; }
.ecc-caveat { font-size:11px; color:#52524C; line-height:1.6; margin-top:8px; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.15); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.3 SIMULATION (ECDSA)
============================================================ */
.b04-s43-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.ec-steps { display:flex; gap:0; margin-bottom:1.25rem; border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.ec-step-tab { flex:1; padding:10px 8px; text-align:center; cursor:pointer; background:#F4F4F0; transition:all 0.2s; border-right:0.5px solid rgba(124,58,237,0.1); }
.ec-step-tab:last-child { border-right:none; }
.ec-step-tab.active { background:#534AB7; color:#fff; }
.ec-step-tab:not(.active):hover { background:#EEEDFE; }
.ec-step-num { font-size:9px; text-transform:uppercase; letter-spacing:0.1em; opacity:0.7; margin-bottom:2px; font-family:'Sora',sans-serif; }
.ec-step-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.ec-panel { display:none; }
.ec-panel.show { display:block; }
.ec-field { margin-bottom:1rem; }
.ec-field-label { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.1em; margin-bottom:3px; font-family:'Sora',sans-serif; }
.ec-field-desc { font-size:11px; color:#3A3A35; margin-bottom:5px; line-height:1.5; font-family:'Sora',sans-serif; }
.ec-field-val { font-size:11px; font-family:'Courier Prime',monospace; padding:8px 10px; border-radius:var(--border-radius-md); word-break:break-all; line-height:1.6; }
.ec-field-val.priv { background:#FCEBEB; color:#A32D2D; }
.ec-field-val.pub  { background:#EEEDFE; color:#534AB7; }
.ec-field-val.msg  { background:#F4F4F0; color:#1A1A18; }
.ec-field-val.sig  { background:#EEEDFE; color:#534AB7; }
.ec-field-val.nc   { background:#F4F4F0; color:#3A3A35; }
.ec-field-input { width:100%; font-size:12px; font-family:'Sora',sans-serif; padding:8px 10px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; outline:none; resize:none; line-height:1.6; }
.ec-field-input:focus { border-color:#534AB7; }
.ec-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; margin-bottom:1rem; border:0.5px solid; display:none; font-family:'Sora',sans-serif; }
.ec-result.show { display:block; }
.ec-result.ok  { background:#EAF3DE; border-color:#3B6D11; color:#27500A; }
.ec-result.bad { background:#FCEBEB; border-color:#F09595; color:#791F1F; }
.ec-tamper-row { display:flex; gap:8px; margin-bottom:1rem; flex-wrap:wrap; }
.ec-tamper-btn { padding:7px 14px; font-size:11px; font-family:'Sora',sans-serif; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#6D28D9; cursor:pointer; transition:all 0.2s; }
.ec-tamper-btn:hover { background:rgba(124,58,237,0.06); }
.ec-tamper-btn.danger { border-color:#F09595; color:#A32D2D; }
.ec-tamper-btn.danger:hover { background:#FCEBEB; }
.ec-btns { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1rem; }
.ec-note { font-size:11px; color:#3A3A35; line-height:1.6; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); margin-bottom:1rem; font-family:'Sora',sans-serif; }
.ec-warning { font-size:11px; line-height:1.6; padding:10px 12px; border-radius:var(--border-radius-md); border-left:2px solid #F09595; margin-top:0.5rem; background:#FCEBEB; color:#791F1F; font-family:'Sora',sans-serif; }
.ec-warning-sol { display:block; margin-top:6px; padding-top:6px; border-top:0.5px solid rgba(163,45,45,0.2); color:#A32D2D; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.4 SIMULATION (Schnorr)
============================================================ */
/* .sc-grid dipakai di markup tapi tidak pernah didefinisikan di file asli,
   sehingga dua kolom perbandingan menumpuk ke bawah. Untuk simulasi yang
   tujuannya membandingkan, keduanya harus bisa dilihat bersebelahan. */
.sc-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; margin-bottom:1.25rem; }
@media (max-width:640px){ .sc-grid { grid-template-columns:1fr; } }
.b09-lab { margin-top:10px; padding:11px 13px; border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); background:#FAFAF8; display:flex; flex-direction:column; gap:9px; }
.b09-lab-ctrl { display:flex; align-items:center; gap:12px; }
.b09-lab-ctrl label { font-size:12px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.b09-lab-ctrl input[type=range] { flex:1; accent-color:#534AB7; }
.b09-lab-ctrl-val { font-size:13px; font-weight:500; color:#534AB7; min-width:66px; text-align:right; font-family:'Courier Prime',monospace; }
.b09-lab-note { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-lab-note b { color:#534AB7; font-weight:600; }
.b04-fmt { margin-top:1.25rem; border:0.5px solid rgba(124,58,237,0.18); border-radius:var(--border-radius-lg); overflow:hidden; }
.b04-fmt-head { padding:8px 14px; font-size:11px; font-weight:500; background:#534AB7; color:#fff; font-family:'Sora',sans-serif; }
.b04-fmt-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:11px; }
.b04-fmt-q { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif; }
.b04-fmt-cards { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.b04-fmt-card { padding:10px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.15); background:#F4F4F0; display:flex; flex-direction:column; gap:6px; }
.b04-fmt-card.unc { background:#F4F4F0; border-color:rgba(26,26,24,0.12); }
.b04-fmt-card.cmp { background:#EEEDFE; border-color:rgba(83,74,183,0.25); }
.b04-fmt-tag { font-size:10px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; font-family:'Courier Prime',monospace; color:#52524C; }
.b04-fmt-card.cmp .b04-fmt-tag { color:#534AB7; }
.b04-fmt-bytes { display:flex; gap:3px; align-items:stretch; }
.b04-fmt-bytes span { font-size:9px; font-family:'Courier Prime',monospace; padding:5px 3px; border-radius:3px; text-align:center; display:flex; align-items:center; justify-content:center; }
.b04-fmt-pfx { flex:0 0 34px; color:#fff; }
.b04-fmt-pfx.unc { background:#52524C; }
.b04-fmt-pfx.cmp { background:#534AB7; }
.b04-fmt-x { flex:1; background:#C9C6EE; color:#1A1A18; }
.b04-fmt-y { flex:1; background:#E4E2E0; color:#52524C; }
.b04-fmt-size { font-size:17px; font-weight:600; font-family:'Courier Prime',monospace; color:#1A1A18; }
.b04-fmt-card.cmp .b04-fmt-size { color:#534AB7; }
.b04-fmt-sub { font-size:10px; line-height:1.55; color:#52524C; font-family:'Sora',sans-serif; }
.b04-fmt-note { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif; padding-top:9px; border-top:0.5px solid rgba(124,58,237,0.1); }
.b04-fmt-note b { color:#534AB7; font-weight:600; }
@media (max-width:640px){ .b04-fmt-cards { grid-template-columns:1fr; } .b09-lab-ctrl { flex-wrap:wrap; } .b09-lab-ctrl input[type=range] { flex-basis:100%; order:3; } }
.b04-s44-ctrl { display:flex; align-items:center; gap:12px; margin-bottom:1rem; }
.b04-s44-ctrl label { font-size:13px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.b04-s44-ctrl input[type=range] { flex:1; accent-color:#534AB7; }
.b04-s44-ctrl-val { font-size:14px; font-weight:500; color:#1A1A18; min-width:104px; text-align:right; font-family:'Courier Prime',monospace; }
.b04-s44-bars { display:flex; flex-direction:column; gap:9px; margin-bottom:1.25rem; padding:12px 14px; background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); }
.b04-s44-bar-row { display:flex; align-items:center; gap:10px; }
.b04-s44-bar-lbl { font-size:10px; font-family:'Courier Prime',monospace; width:62px; flex-shrink:0; letter-spacing:0.04em; }
.b04-s44-bar-lbl.e { color:#A32D2D; }
.b04-s44-bar-lbl.s { color:#534AB7; }
.b04-s44-bar-track { flex:1; height:16px; background:#F0F0EC; border-radius:var(--border-radius-md); overflow:hidden; }
.b04-s44-bar-fill { height:100%; border-radius:var(--border-radius-md); transition:width 0.25s ease; }
.b04-s44-bar-fill.e { background:#A32D2D; }
.b04-s44-bar-fill.s { background:#534AB7; }
.b04-s44-bar-val { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; width:112px; text-align:right; flex-shrink:0; }
.b04-s44-verdict { margin-top:2px; padding-top:9px; border-top:0.5px solid rgba(124,58,237,0.1); font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b04-s44-verdict b { color:#534AB7; font-weight:600; }
@media (max-width:640px){
  .b04-s44-ctrl { flex-wrap:wrap; }
  .b04-s44-ctrl input[type=range] { flex-basis:100%; order:3; }
  .b04-s44-bar-lbl { width:48px; }
  .b04-s44-bar-val { width:88px; font-size:10px; }
}
.b04-s44-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.sc-col { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.sc-col-head { padding:9px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.sc-col-head.e { background:#1A1A18; color:#F09595; }
.sc-col-head.s { background:#534AB7; color:#fff; }
.sc-col-body { padding:10px; background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.sc-tx { border-radius:var(--border-radius-md); overflow:hidden; border:0.5px solid; }
.sc-tx.e { border-color:rgba(163,45,45,0.2); }
.sc-tx.s { border-color:rgba(83,74,183,0.2); }
.sc-tx-head { padding:5px 10px; font-size:9px; display:flex; justify-content:space-between; align-items:center; }
.sc-tx-head.e { background:#FCEBEB; color:#A32D2D; }
.sc-tx-head.s { background:#EEEDFE; color:#534AB7; }
.sc-tx-head-id { font-family:'Courier Prime',monospace; }
.sc-tx-head-badge { font-size:9px; padding:2px 6px; border-radius:99px; font-weight:500; font-family:'Sora',sans-serif; }
.sc-tx-head-badge.multi { background:#A32D2D; color:#fff; }
.sc-tx-head-badge.single { background:#534AB7; color:#fff; }
.sc-tx-head-badge.unknown { background:#3B6D11; color:#fff; }
.sc-tx-body { padding:7px 10px; background:#FAFAF8; display:flex; flex-direction:column; gap:3px; }
.sc-tx-row { display:flex; justify-content:space-between; font-size:10px; gap:6px; }
.sc-tx-key { color:#52524C; white-space:nowrap; font-family:'Sora',sans-serif; }
.sc-tx-val { font-family:'Courier Prime',monospace; color:#1A1A18; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:140px; }
.sc-tx-val.red { color:#A32D2D; }
.sc-tx-val.purple { color:#534AB7; }
.sc-tx-divider { border:none; border-top:0.5px solid rgba(124,58,237,0.08); margin:2px 0; }
.sc-obs { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.5; font-family:'Sora',sans-serif; }
.sc-obs.bad { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.sc-obs.ok  { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.sc-note { font-size:12px; color:#3A3A35; line-height:1.7; padding:10px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.5 SIMULATION (Merkle Tree)
============================================================ */
.b04-s45-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.mt-canvas-wrap { width:100%; margin-bottom:1.25rem; }
.mt-canvas-wrap canvas { width:100%; display:block; border-radius:var(--border-radius-lg); background:#F4F4F0; cursor:pointer; }
.mt-proof { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; display:none; margin-bottom:1.25rem; }
.mt-proof.show { display:block; }
.mt-proof-head { padding:8px 14px; background:#1A1A18; font-size:10px; color:#C4B5FD; letter-spacing:0.1em; text-transform:uppercase; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.mt-proof-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.mt-proof-row { display:flex; align-items:center; gap:8px; font-size:11px; }
.mt-proof-tag { padding:2px 8px; border-radius:99px; font-size:10px; font-weight:500; white-space:nowrap; font-family:'Sora',sans-serif; }
.mt-proof-tag.target  { background:#EEEDFE; color:#534AB7; }
.mt-proof-tag.sibling { background:#F4F4F0; color:#3A3A35; }
.mt-proof-tag.root    { background:#EAF3DE; color:#27500A; }
.mt-proof-val { font-family:'Courier Prime',monospace; font-size:10px; color:#1A1A18; flex:1; word-break:break-all; }
.mt-proof-note { font-size:11px; color:#3A3A35; margin-top:4px; line-height:1.6; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }
.mt-note { font-size:12px; color:#3A3A35; line-height:1.7; padding:10px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 7 · BAB 4 · 4.6 SIMULATION (System Map)
============================================================ */
.b04-s46-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.csm-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:1.25rem; }
.csm-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); padding:14px 16px; cursor:pointer; transition:all 0.2s; background:#FAFAF8; }
.csm-card:hover { border-color:rgba(124,58,237,0.3); }
.csm-card.active { border-width:1.5px; }
.csm-card.active.purple { border-color:#534AB7; background:#EEEDFE; }
.csm-card.active.teal   { border-color:#0F6E56; background:#E1F5EE; }
.csm-card.active.amber  { border-color:#854F0B; background:#FAEEDA; }
.csm-card.active.green  { border-color:#3B6D11; background:#EAF3DE; }
.csm-card-top { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.csm-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.csm-dot.purple { background:#534AB7; }
.csm-dot.teal   { background:#0F6E56; }
.csm-dot.amber  { background:#854F0B; }
.csm-dot.green  { background:#3B6D11; }
.csm-name { font-size:13px; font-weight:500; color:#1A1A18; }
.csm-tag { font-size:10px; padding:2px 8px; border-radius:99px; margin-left:auto; font-family:'Sora',sans-serif; }
.csm-tag.purple { background:#EEEDFE; color:#534AB7; }
.csm-tag.teal   { background:#E1F5EE; color:#0F6E56; }
.csm-tag.amber  { background:#FAEEDA; color:#854F0B; }
.csm-tag.green  { background:#EAF3DE; color:#3B6D11; }
.csm-card.active .csm-tag.purple { background:#534AB7; color:#fff; }
.csm-card.active .csm-tag.teal   { background:#0F6E56; color:#fff; }
.csm-card.active .csm-tag.amber  { background:#854F0B; color:#fff; }
.csm-card.active .csm-tag.green  { background:#3B6D11; color:#fff; }
.csm-role { font-size:11px; color:#3A3A35; line-height:1.5; font-family:'Sora',sans-serif; }
.csm-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1.25rem; display:none; }
.csm-detail.show { display:block; }
.csm-detail-head { padding:10px 16px; font-size:11px; font-weight:500; display:flex; align-items:center; gap:8px; font-family:'Sora',sans-serif; }
.csm-detail-head.purple { background:#EEEDFE; color:#3C3489; }
.csm-detail-head.teal   { background:#E1F5EE; color:#085041; }
.csm-detail-head.amber  { background:#FAEEDA; color:#633806; }
.csm-detail-head.green  { background:#EAF3DE; color:#27500A; }
.csm-detail-body { padding:14px 16px; background:#FAFAF8; display:flex; flex-direction:column; gap:10px; }
.csm-detail-row { display:flex; gap:10px; align-items:flex-start; }
.csm-detail-label { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.08em; min-width:80px; padding-top:2px; font-family:'Sora',sans-serif; }
.csm-detail-val { font-size:12px; color:#1A1A18; line-height:1.6; flex:1; font-family:'Sora',sans-serif; }
.csm-chain { display:flex; gap:6px; flex-wrap:wrap; }
.csm-chain-item { font-size:11px; padding:3px 10px; border-radius:99px; background:#F4F4F0; color:#3A3A35; border:0.5px solid rgba(124,58,237,0.1); font-family:'Sora',sans-serif; }
.csm-summary { padding:12px 16px; border-radius:var(--border-radius-md); background:#F4F4F0; font-size:12px; color:#3A3A35; line-height:1.7; font-family:'Sora',sans-serif; }

/* ============================================================
   SHARED · RAW DATA PANEL
============================================================ */
.raw-toggle-row { display:flex; align-items:center; gap:10px; margin-top:1rem; flex-wrap:wrap; }
.raw-toggle-btn { display:flex; align-items:center; gap:6px; padding:6px 14px; font-size:11px; font-family:'Sora',sans-serif; font-weight:500; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.3); background:transparent; color:#534AB7; cursor:pointer; transition:all 0.2s; }
.raw-toggle-btn:hover { background:#EEEDFE; }
.raw-toggle-btn.active { background:#1A1A18; color:#C4B5FD; border-color:#1A1A18; }
.raw-toggle-icon { font-size:12px; font-family:'Courier Prime',monospace; font-weight:700; }
.raw-toggle-hint { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; }
.raw-panel { display:none; margin-top:10px; border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.raw-panel.show { display:block; }
.raw-panel-head { padding:8px 14px; background:#1A1A18; font-size:10px; color:#C4B5FD; letter-spacing:0.1em; text-transform:uppercase; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.raw-panel-src { font-size:9px; color:#534AB7; background:#2A2A28; padding:2px 8px; border-radius:99px; font-family:'Courier Prime',monospace; letter-spacing:0; text-transform:none; }
.raw-panel-body { padding:14px; background:#0F0F0E; font-size:11px; font-family:'Courier Prime',monospace; color:#C4B5FD; line-height:1.7; white-space:pre; overflow-x:auto; margin:0; }
.raw-key { color:#7F77DD; }
.raw-str { color:#9FE1CB; }
.raw-num { color:#FAC775; }
.raw-bool { color:#F09595; }
.raw-comment { color:#5F5E5A; font-style:italic; }

/* ============================================================
   RESPONSIVE · MOBILE (max-width: 640px)
============================================================ */
@media (max-width: 640px) {

  /* TOPBAR */
  .topbar { padding:14px 20px; }
  .topbar-name { display:none; }
  .topbar-block { display:none; }

  /* PAGE WELCOME */
  .page-title { font-size:clamp(28px,8vw,48px); }
  .hero-actions { flex-direction:column; gap:12px; }

  /* CHAPTER LIST */
  .chapter-item { padding:18px 20px; }
  .chapter-item-desc { display:none; }

  /* PROLOGUE BODY — stack sidebar di atas content */
  .prologue-body { flex-direction:column; overflow:visible; }

  /* SIDEBAR — horizontal scroll di mobile */
  .sidebar {
    width:100%;
    flex-direction:row;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    padding:10px 0;
    border-right:none;
    border-bottom:0.5px solid rgba(124,58,237,0.15);
    gap:0;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar-heading { display:none; }
  .sidebar-title   { display:none; }
  .sidebar-item {
    flex-direction:column;
    flex-shrink:0;
    padding:8px 14px;
    border-left:none;
    border-bottom:2px solid transparent;
    white-space:nowrap;
    gap:2px;
    min-width:80px;
    text-align:center;
    align-items:center;
  }
  .sidebar-item.active {
    border-left:none;
    border-bottom:2px solid #7C3AED;
  }
  .sb-num   { font-size:9px; }
  .sb-label { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:80px; }

  /* CONTENT AREA */
  .prologue-content { padding:28px 20px 60px; max-width:100%; }
  .p-heading { font-size:12px; }
  .p-title   { font-size:clamp(22px,6vw,32px); }
  .p-body p  { font-size:14px; }
  .p-callout { padding:14px 16px; }
  .p-callout p { font-size:13px; }

  /* NAV BUTTONS */
  .p-nav { flex-direction:column; gap:8px; }
  .p-nav-btn { width:100%; text-align:center; }

  /* SIMULATION GRIDS — 1 kolom */
  .utxo-summary    { grid-template-columns:1fr 1fr; }
  .fee-result      { grid-template-columns:1fr 1fr; }
  .fee-rates       { grid-template-columns:1fr; }
  .fee-ctrl-row    { grid-template-columns:100px 1fr 50px; }
  .sc-grid         { grid-template-columns:1fr; }
  .ecc-cards       { gap:6px; }
  .csm-grid        { grid-template-columns:1fr; }
  .mp-stage        { grid-template-columns:1fr; gap:6px; }
  .ec-steps        { flex-direction:column; }
  .ec-step-tab     { border-right:none; border-bottom:0.5px solid rgba(124,58,237,0.1); }

  /* MERKLE CANVAS */
  #b04-s45-canvas  { height:auto; }

  /* RAW PANEL */
  .raw-panel-body  { font-size:9px; }
  .raw-toggle-hint { display:none; }

  /* CHAPTER LIST */
  .chapter-num  { font-size:24px; }
  .chapter-item-title { font-size:16px; }

}

/* RESPONSIVE · TABLET (641px - 900px) */
@media (min-width:641px) and (max-width:900px) {
  .topbar { padding:16px 28px; }
  .prologue-content { padding:36px 36px 80px; }
  .prologue-content > * { max-width:648px; }
  .sidebar { width:200px; }
  .sidebar-title { font-size:13px; }
  .fee-rates { grid-template-columns:1fr 1fr 1fr; }
  .sc-grid   { grid-template-columns:1fr 1fr; }
  .csm-grid  { grid-template-columns:1fr 1fr; }
}


/* ============================================================
   PAGE 8 · BAB 5 · Mining dan Proof of Work
============================================================ */

/* ============================================================
   PAGE 8 · BAB 5 · 5.1 SIMULATION (Konsensus)
============================================================ */
.b05-s51-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b05-s51-desc.fork { border-left-color:rgba(163,45,45,0.5); }
.cs-tabs { display:flex; gap:8px; margin-bottom:1.25rem; flex-wrap:wrap; }
.cs-tab { padding:7px 16px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.2s; font-family:'Sora',sans-serif; }
.cs-tab:hover { border-color:#534AB7; color:#534AB7; }
.cs-tab.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.cs-tab.cs-fork { border-color:rgba(163,45,45,0.3); color:#A32D2D; }
.cs-tab.cs-fork.active { background:#A32D2D; color:#fff; border-color:#A32D2D; }
.cs-desc { font-size:12px; color:#3A3A35; line-height:1.7; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); margin-bottom:1.25rem; border-left:2px solid rgba(124,58,237,0.3); font-family:'Sora',sans-serif; }
.cs-desc.fork { border-left-color:rgba(163,45,45,0.5); }
#b05-s51-canvas { width:100%; display:block; border-radius:var(--border-radius-lg); background:#F4F4F0; margin-bottom:1.25rem; cursor:default; }
.cs-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.cs-result.ok { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.cs-result.fork { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 8 · BAB 5 · 5.1 FORK SIMULATION (Soft fork vs Hard fork)
============================================================ */
.b05-s51-fork-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b05-s51-fork-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:10px; }
.b05-s51-fork-col  { display:flex; flex-direction:column; gap:8px; }
.b05-s51-fork-head { padding:7px 12px; border-radius:var(--border-radius-md); font-size:12px; font-weight:500; font-family:'Sora',sans-serif; }
.b05-s51-fork-head.soft-head { background:#EEEDFE; color:#3C3489; }
.b05-s51-fork-head.hard-head { background:#FCEBEB; color:#791F1F; }
.b05-s51-fork-c    { width:100%; display:block; border-radius:var(--border-radius-md); }
.b05-s51-fork-note { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; }
.b05-s51-fork-note.soft-note { background:#EEEDFE; color:#3C3489; }
.b05-s51-fork-note.hard-note { background:#FCEBEB; color:#791F1F; }
.b05-s51-fork-legend { display:flex; gap:14px; flex-wrap:wrap; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b05-s51-leg { display:flex; align-items:center; gap:6px; }
.b05-s51-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

/* ============================================================
   PAGE 8 · BAB 5 · 5.2 SIMULATION (Proof of Work)
============================================================ */
.b05-s52-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.pw-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:1rem; }
.pw-label { font-size:12px; color:#3A3A35; min-width:80px; font-family:'Sora',sans-serif; }
.pw-val { font-size:13px; font-weight:500; color:#1A1A18; min-width:60px; font-family:'Sora',sans-serif; }
.pw-input { flex:1; min-width:0; }
.pw-block { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.pw-block-head { padding:8px 14px; background:#F4F4F0; font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.08em; display:flex; justify-content:space-between; font-family:'Sora',sans-serif; }
.pw-block-body { padding:12px 14px; display:flex; flex-direction:column; gap:8px; background:#FAFAF8; }
.pw-field { display:flex; gap:8px; align-items:flex-start; }
.pw-field-key { font-size:11px; color:#52524C; min-width:72px; padding-top:2px; font-family:'Sora',sans-serif; }
.pw-field-val { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; flex:1; }
.pw-nonce { color:#534AB7; font-weight:700; }
.pw-hash-label { font-size:11px; color:#52524C; margin-bottom:6px; font-family:'Sora',sans-serif; }
.pw-hash { font-size:11px; font-family:'Courier Prime',monospace; word-break:break-all; line-height:1.6; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); margin-bottom:1rem; }
.pw-hash .pw-zero { color:#534AB7; font-weight:700; }
.pw-hash .pw-rest { color:#3A3A35; }
.pw-hash.found .pw-zero { color:#3B6D11; }
.pw-hash.found .pw-rest { color:#1A1A18; }
.pw-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:1rem; }
.pw-stat { background:#F4F4F0; border-radius:var(--border-radius-md); padding:10px 12px; }
.pw-stat-label { font-size:11px; color:#52524C; margin-bottom:4px; font-family:'Sora',sans-serif; }
.pw-stat-val { font-size:16px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.pw-btns { display:flex; gap:8px; margin-bottom:1rem; }
.pw-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; display:none; font-family:'Sora',sans-serif; }
.pw-result.show { display:block; }
.pw-result.ok { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.pw-result.running { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 8 · BAB 5 · 5.3 SIMULATION (Mining — Block Anatomy)
============================================================ */
.b05-s53-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.ba-block { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.ba-section-head-sim { padding:7px 14px; font-size:10px; text-transform:uppercase; letter-spacing:0.1em; font-weight:500; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.ba-section-head-sim.header-sim { background:#1A1A18; color:#C4B5FD; }
.ba-section-head-sim.body-sim { background:#F4F4F0; color:#52524C; }
.ba-badge-sim { font-size:9px; padding:2px 8px; border-radius:99px; background:rgba(124,92,252,0.15); color:#7C5CFC; font-family:'Sora',sans-serif; }
.ba-fields-sim { display:flex; flex-direction:column; }
.ba-field-sim { display:flex; align-items:center; border-bottom:0.5px solid rgba(124,58,237,0.08); cursor:pointer; transition:background 0.15s; }
.ba-field-sim:last-child { border-bottom:none; }
.ba-field-sim:hover { background:#F4F4F0; }
.ba-field-sim.active { background:#EEEDFE; }
.ba-field-sim.nonce-sim .ba-field-name-sim { color:#534AB7; }
.ba-field-sim.nonce-sim .ba-field-bytes-sim { color:#534AB7; }
.ba-field-bytes-sim { width:52px; flex-shrink:0; padding:10px 12px; font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; text-align:center; border-right:0.5px solid rgba(124,58,237,0.08); }
.ba-field-name-sim { flex:1; padding:10px 14px; font-size:12px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.ba-field-note-sim { font-size:10px; font-weight:400; color:#52524C; display:block; margin-top:2px; }
.ba-field-arrow-sim { padding:10px 12px; color:#52524C; font-size:12px; transition:transform 0.2s; }
.ba-field-sim.active .ba-field-arrow-sim { transform:rotate(90deg); color:#534AB7; }
.ba-field-sim.active .ba-field-name-sim { color:#534AB7; }
.ba-detail-sim { background:#F4F4F0; border-bottom:0.5px solid rgba(124,58,237,0.08); padding:12px 14px 14px; display:none; flex-direction:column; gap:8px; }
.ba-detail-sim.show { display:flex; }
.ba-detail-val-sim { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; word-break:break-all; padding:8px 10px; background:#FAFAF8; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.15); }
.ba-detail-desc-sim { font-size:12px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.ba-chain-sim { display:flex; align-items:stretch; gap:0; margin-top:6px; }
.ba-chain-block-sim { flex:1; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; min-width:0; }
.ba-chain-block-sim.current-sim { border-color:rgba(124,58,237,0.4); }
.ba-chain-head-sim { padding:4px 8px; font-size:9px; font-weight:500; text-align:center; font-family:'Sora',sans-serif; }
.ba-chain-head-sim.prev-sim { background:#F4F4F0; color:#52524C; }
.ba-chain-head-sim.curr-sim { background:#EEEDFE; color:#534AB7; }
.ba-chain-row-sim { padding:4px 8px; font-size:9px; font-family:'Courier Prime',monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border-top:0.5px solid rgba(124,58,237,0.08); }
.ba-chain-row-sim.hash-sim { color:#3B6D11; }
.ba-chain-row-sim.match-sim { background:#EAF3DE; color:#27500A; font-weight:500; }
.ba-chain-arrow-sim { display:flex; align-items:center; padding:0 8px; color:#52524C; font-size:14px; flex-shrink:0; }
.ba-chain-note-sim { font-size:10px; color:#52524C; text-align:center; margin-top:6px; line-height:1.5; font-family:'Sora',sans-serif; }
.ba-tx-sim { display:flex; flex-direction:column; }
.ba-tx-item-sim { display:flex; align-items:center; gap:10px; padding:9px 14px; border-bottom:0.5px solid rgba(124,58,237,0.08); font-size:11px; }
.ba-tx-item-sim:last-child { border-bottom:none; }
.ba-tx-item-sim.coinbase-sim { background:#EEEDFE; }
.ba-tx-badge-sim { font-size:9px; padding:2px 8px; border-radius:99px; flex-shrink:0; font-family:'Sora',sans-serif; }
.ba-tx-badge-sim.cb-sim { background:#534AB7; color:#fff; }
.ba-tx-badge-sim.tx-sim { background:#F4F4F0; color:#52524C; border:0.5px solid rgba(124,58,237,0.1); }
.ba-tx-hash-sim { font-family:'Courier Prime',monospace; color:#3A3A35; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.ba-tx-fee-sim { font-size:10px; color:#52524C; flex-shrink:0; font-family:'Sora',sans-serif; }
.ba-total-sim { padding:8px 14px; font-size:11px; color:#52524C; background:#F4F4F0; display:flex; justify-content:space-between; font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 8 · BAB 5 · 5.4 SIMULATION (Difficulty Adjustment)
============================================================ */
.b05-lab { margin-top:1.25rem; border:0.5px solid rgba(124,58,237,0.18); border-radius:var(--border-radius-lg); overflow:hidden; }
.b05-lab-head { padding:8px 14px; font-size:11px; font-weight:500; background:#534AB7; color:#fff; font-family:'Sora',sans-serif; }
.b05-lab-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:11px; }
.b05-lab-ctrl { display:flex; align-items:center; gap:12px; }
.b05-lab-ctrl label { font-size:12px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.b05-lab-ctrl input[type=range] { flex:1; accent-color:#534AB7; }
.b05-lab-ctrl-val { font-size:14px; font-weight:500; color:#534AB7; min-width:96px; text-align:right; font-family:'Courier Prime',monospace; }
.b05-lab-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b05-lab-cell { padding:9px 11px; border-radius:var(--border-radius-md); background:#F4F4F0; }
.b05-lab-cell.hi { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b05-lab-cell.warn { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b05-lab-k { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b05-lab-v { font-size:15px; font-weight:600; color:#1A1A18; font-family:'Courier Prime',monospace; }
.b05-lab-v.purp { color:#534AB7; }
.b05-lab-v.amber { color:#854F0B; }
.b05-lab-v.green { color:#0F6E56; }
.b05-lab-note { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif; padding-top:9px; border-top:0.5px solid rgba(124,58,237,0.1); }
.b05-lab-note b { color:#534AB7; font-weight:600; }
.b05-lab-note.warn b { color:#854F0B; }
.b05-lab-track { height:9px; border-radius:99px; background:#F0F0EC; overflow:hidden; }
.b05-lab-fill { height:100%; border-radius:99px; background:#534AB7; transition:width 0.3s ease; }
@media (max-width:640px){
  .b05-lab-grid { grid-template-columns:1fr; }
  .b05-lab-ctrl { flex-wrap:wrap; }
  .b05-lab-ctrl input[type=range] { flex-basis:100%; order:3; }
}
.b05-s54-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b05-s54-svg-wrap { width:100%; overflow-x:auto; }
.c-gray { fill:#F4F4F0; stroke:rgba(124,58,237,0.15); }
.th { font-family:'Sora',sans-serif; font-size:11px; font-weight:500; fill:#1A1A18; }
.ts { font-family:'Sora',sans-serif; font-size:10px; fill:#3A3A35; }

/* ============================================================
   PAGE 8 · BAB 5 · 5.5 SIMULATION (Block Reward & Halving)
============================================================ */
.b05-s55-formula-wrap { width:100%; margin-bottom:1rem; }
.b05-s55-chart-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b05-s55-legend { display:flex; gap:16px; font-size:11px; color:#3A3A35; margin-top:8px; flex-wrap:wrap; font-family:'Sora',sans-serif; }
.b05-s55-leg { display:flex; align-items:center; gap:6px; }
.b05-s55-dot { width:12px; height:12px; display:inline-block; flex-shrink:0; }

/* ============================================================
   PAGE 8 · BAB 5 · 5.6 SIMULATION (Serangan 51%)
============================================================ */
.b05-s56-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1.25rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.at-ctrl-sim { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:1rem; }
.at-label-sim { font-size:12px; color:#3A3A35; min-width:130px; font-family:'Sora',sans-serif; }
.at-val-sim { font-size:13px; font-weight:500; min-width:36px; color:#1A1A18; font-family:'Sora',sans-serif; }
.at-chains-sim { display:flex; flex-direction:column; gap:8px; margin-bottom:1rem; }
.at-chain-row-sim { display:flex; align-items:center; gap:10px; }
.at-chain-label-sim { font-size:11px; min-width:80px; font-weight:500; font-family:'Sora',sans-serif; }
.at-chain-label-sim.honest-sim { color:#534AB7; }
.at-chain-label-sim.attack-sim { color:#A32D2D; }
.at-blocks-sim { display:flex; gap:3px; flex-wrap:nowrap; overflow:hidden; align-items:center; min-height:28px; flex:1; }
.at-block-sim { width:22px; height:22px; border-radius:4px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:8px; font-family:'Courier Prime',monospace; transition:opacity 0.15s,transform 0.15s; }
.at-block-sim.honest-blk { background:#EEEDFE; border:0.5px solid #534AB7; color:#534AB7; }
.at-block-sim.attack-blk { background:#FCEBEB; border:0.5px solid #A32D2D; color:#A32D2D; }
.at-block-sim.shared-blk { background:#F4F4F0; border:0.5px solid #52524C; color:#52524C; }
.at-block-sim.fork-pt { border-width:1.5px; }
.at-block-sim.dying { opacity:0; transform:scale(0.5); }
.at-chain-len-sim { font-size:11px; font-family:'Courier Prime',monospace; min-width:52px; }
.at-chain-len-sim.honest-sim { color:#534AB7; }
.at-chain-len-sim.attack-sim { color:#A32D2D; }
.at-status-sim { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; margin-bottom:1rem; font-family:'Sora',sans-serif; }
.at-status-sim.safe-sim { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.at-status-sim.danger-sim { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.at-status-sim.attacking-sim { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.at-status-sim.forked-sim { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.at-btns-sim { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1rem; }
.at-note-sim { font-size:11px; color:#3A3A35; line-height:1.6; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 9 · BAB 6 · Bitcoin Script dan Opcodes
============================================================ */

/* ============================================================
   PAGE 9 · BAB 6 · 6.1 SIMULATION (Stack Visualizer)
============================================================ */
.b06-s61-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.sv-scripts-sim { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1rem; }
.sv-btn-sim { padding:6px 14px; font-size:12px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.sv-btn-sim:hover { border-color:#534AB7; color:#534AB7; }
.sv-btn-sim.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.sv-display-sim { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-height:44px; margin-bottom:1rem; }
.sv-tok-sim { padding:4px 10px; border-radius:4px; font-size:12px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.1); background:#FAFAF8; color:#3A3A35; white-space:nowrap; }
.sv-tok-sim.data-sim { background:#534AB7; color:#fff; border-color:#534AB7; }
.sv-tok-sim.op-sim { background:#F4F4F0; color:#1A1A18; border-color:rgba(124,58,237,0.2); }
.sv-tok-sim.current-sim { outline:2px solid #FAC775; outline-offset:2px; }
.sv-tok-sim.done-sim { opacity:0.25; }
.sv-main-sim { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:1rem; align-items:start; }
.sv-stack-wrap-sim { display:flex; flex-direction:column; gap:6px; }
.sv-stack-lbl-sim { font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; font-family:'Sora',sans-serif; }
.sv-stack-sim { min-height:180px; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:8px; display:flex; flex-direction:column-reverse; gap:6px; background:#FAFAF8; }
.sv-empty-sim { font-size:12px; color:#52524C; text-align:center; padding:20px 0; font-family:'Sora',sans-serif; }
.sv-info-sim { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:14px; background:#F4F4F0; display:flex; flex-direction:column; gap:8px; }
.sv-info-lbl-sim { font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; font-family:'Sora',sans-serif; }
.sv-info-op-sim { font-size:13px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; word-break:break-all; }
.sv-info-desc-sim { font-size:13px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.sv-result-sim { padding:12px 14px; border-radius:var(--border-radius-md); font-size:13px; font-weight:500; text-align:center; display:none; margin-bottom:1rem; font-family:'Sora',sans-serif; }
.sv-result-sim.show-sim { display:block; }
.sv-result-sim.ok-sim { background:#3B6D11; color:#fff; }
.sv-result-sim.fail-sim { background:#A32D2D; color:#fff; }
.sv-ctrl-sim { display:flex; gap:8px; flex-wrap:wrap; }

/* ============================================================
   PAGE 9 · BAB 6 · 6.2 SIMULATION (Opcode Stack Demo + Kamus)
============================================================ */
.b06-s62-demo-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b06-s62-ref-desc  { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:0; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.od-ops-sim { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1rem; }
.od-op-sim { padding:5px 12px; font-size:11px; font-family:'Courier Prime',monospace; border-radius:6px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.15s; }
.od-op-sim:hover { border-color:#534AB7; color:#534AB7; }
.od-op-sim.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.od-info-sim { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:4px; margin-bottom:1rem; }
.od-info-name-sim { font-size:13px; font-weight:500; font-family:'Courier Prime',monospace; color:#1A1A18; }
.od-info-long-sim { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; }
.od-info-desc-sim { font-size:12px; color:#3A3A35; line-height:1.6; margin-top:2px; font-family:'Sora',sans-serif; }
.od-inputs-sim { display:flex; flex-direction:column; gap:8px; margin-bottom:1rem; }
.od-input-row-sim { display:flex; align-items:center; gap:8px; }
.od-input-lbl-sim { font-size:11px; color:#3A3A35; min-width:100px; font-family:'Sora',sans-serif; }
.od-input-sim { flex:1; padding:6px 10px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); font-size:12px; font-family:'Courier Prime',monospace; background:#FAFAF8; color:#1A1A18; }
.od-stage-sim { display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:center; margin-bottom:1rem; }
.od-stack-wrap-sim { display:flex; flex-direction:column; gap:6px; }
.od-stack-lbl-sim { font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; font-family:'Sora',sans-serif; }
.od-stack-sim { min-height:140px; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:8px; display:flex; flex-direction:column-reverse; gap:5px; background:#FAFAF8; }
.od-arrow-sim { font-size:20px; color:#52524C; text-align:center; }
.od-empty-sim { font-size:11px; color:#52524C; text-align:center; padding:16px 0; font-family:'Sora',sans-serif; }
.od-note-sim { padding:8px 12px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.od-note-sim.ok-sim   { background:#EAF3DE; color:#27500A; }
.od-note-sim.fail-sim { background:#FCEBEB; color:#791F1F; }
.od-note-sim.warn-sim { background:#FAEEDA; color:#633806; }
.or-cats-sim { display:flex; gap:6px; flex-wrap:wrap; margin-top:1rem; }
.or-cat-sim { padding:5px 12px; font-size:11px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.or-cat-sim:hover { border-color:#534AB7; color:#534AB7; }
.or-cat-sim.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.or-table-sim { width:100%; border-collapse:collapse; font-size:12px; }
.or-th-sim { padding:8px 10px; text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; border-bottom:0.5px solid rgba(124,58,237,0.1); font-weight:500; white-space:nowrap; font-family:'Sora',sans-serif; }
.or-td-sim { padding:9px 10px; border-bottom:0.5px solid rgba(124,58,237,0.07); vertical-align:top; }
.or-tr-sim:last-child .or-td-sim { border-bottom:none; }
.or-tr-sim:hover .or-td-sim { background:#F4F4F0; }
.or-name-sim { font-family:'Courier Prime',monospace; font-size:12px; font-weight:500; color:#1A1A18; white-space:nowrap; }
.or-hex-sim  { font-family:'Courier Prime',monospace; font-size:11px; color:#52524C; white-space:nowrap; }
.or-long-sim { font-size:11px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.or-desc-sim { font-size:12px; color:#3A3A35; line-height:1.5; font-family:'Sora',sans-serif; }
.or-reason-sim { font-size:11px; color:#A32D2D; margin-top:3px; line-height:1.4; font-family:'Sora',sans-serif; }
.or-badge-sim { display:inline-block; padding:2px 7px; border-radius:99px; font-size:10px; font-weight:500; white-space:nowrap; font-family:'Sora',sans-serif; }
.or-badge-sim.stack    { background:rgba(83,74,183,0.12); color:#534AB7; }
.or-badge-sim.arith    { background:rgba(59,109,17,0.12); color:#3B6D11; }
.or-badge-sim.crypto   { background:rgba(163,45,45,0.12); color:#A32D2D; }
.or-badge-sim.flow     { background:rgba(133,79,11,0.12); color:#854F0B; }
.or-badge-sim.lock     { background:rgba(20,100,120,0.12); color:#146478; }
.or-badge-sim.bit      { background:rgba(80,80,80,0.12); color:#3A3A35; }
.or-badge-sim.disabled { background:rgba(160,160,152,0.15); color:#52524C; }

/* ============================================================
   PAGE 9 · BAB 6 · 6.3 SIMULATION (P2PKH)
============================================================ */
.b06-s63-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b06-s63-script { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-height:44px; }
.b06-s63-tok { padding:4px 10px; border-radius:4px; font-size:11px; font-family:'Courier Prime',monospace; white-space:nowrap; }
.b06-s63-tok.data-tok { background:#534AB7; color:#fff; }
.b06-s63-tok.op-tok { background:#F4F4F0; color:#1A1A18; border:0.5px solid rgba(124,58,237,0.2); }
.b06-s63-tok.hash-tok { background:#854F0B; color:#FAEEDA; }
.b06-s63-tok.current-tok { outline:2px solid #FAC775; outline-offset:2px; }
.b06-s63-tok.done-tok { opacity:0.25; }
.b06-s63-main { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:1rem; }
.b06-s63-stack-wrap { display:flex; flex-direction:column; gap:6px; }
.b06-s63-stack-lbl { font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; font-family:'Sora',sans-serif; }
.b06-s63-stack { min-height:180px; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:8px; display:flex; flex-direction:column-reverse; gap:5px; background:#FAFAF8; }
.b06-s63-empty { font-size:11px; color:#52524C; text-align:center; padding:20px 0; font-family:'Sora',sans-serif; }
.b06-s63-info { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:12px 14px; background:#F4F4F0; display:flex; flex-direction:column; gap:6px; }
.b06-s63-info-lbl { font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; font-family:'Sora',sans-serif; }
.b06-s63-info-op { font-size:13px; font-weight:500; color:#1A1A18; font-family:'Courier Prime',monospace; }
.b06-s63-info-desc { font-size:12px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.b06-s63-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; font-weight:500; text-align:center; display:none; margin-bottom:1rem; font-family:'Sora',sans-serif; }
.b06-s63-result.show-ok { display:block; background:#3B6D11; color:#fff; }
.b06-s63-result.show-fail { display:block; background:#A32D2D; color:#fff; }
.b06-s63-ctrl { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.b06-s63-raw-btn { font-size:11px; color:#52524C; background:none; border:0.5px solid rgba(124,58,237,0.2); border-radius:99px; padding:3px 10px; cursor:pointer; font-family:'Sora',sans-serif; }
.b06-s63-raw-panel { display:none; margin-top:8px; border-radius:var(--border-radius-md); background:#0F0F0E; padding:12px 14px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; overflow-x:auto; }
.b06-s63-raw-panel.show { display:block; }
.b06-rk { color:#AFA9EC; }
.b06-rs { color:#5DCAA5; }
.b06-rc { color:#888780; }

/* ============================================================
   PAGE 9 · BAB 6 · 6.4 SIMULATION (P2WPKH vs P2PKH)
============================================================ */
.b06-s64-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b06-s64-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.b06-s64-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b06-s64-head { padding:8px 14px; font-size:11px; font-weight:500; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.b06-s64-head.legacy { background:#534AB7; color:#fff; }
.b06-s64-head.segwit { background:#1D9E75; color:#fff; }
.b06-s64-badge { font-size:9px; padding:2px 8px; border-radius:99px; background:rgba(255,255,255,0.2); color:#fff; font-family:'Sora',sans-serif; }
.b06-s64-section { border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b06-s64-section:last-child { border-bottom:none; }
.b06-s64-sh { padding:5px 12px; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; background:#F4F4F0; font-family:'Sora',sans-serif; }
.b06-s64-field { display:flex; align-items:center; padding:6px 12px; border-bottom:0.5px solid rgba(124,58,237,0.06); gap:8px; }
.b06-s64-field:last-child { border-bottom:none; }
.b06-s64-fn { font-size:11px; color:#52524C; min-width:80px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b06-s64-fv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; }
.purple-fv { color:#534AB7; font-weight:500; }
.green-fv  { color:#1D9E75; font-weight:500; }
.dim-fv    { color:#52524C; }
.witness-section { background:rgba(29,158,117,0.04); border-left:2px solid #1D9E75; }
.witness-sh { background:rgba(29,158,117,0.08); color:#0F6E56; }
.b06-s64-empty { padding:10px 12px; font-size:11px; color:#52524C; font-style:italic; text-align:center; font-family:'Sora',sans-serif; }
.b06-s64-stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.b06-s64-stat-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
.b06-s64-stat-title { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b06-s64-bar-wrap { display:flex; flex-direction:column; gap:4px; }
.b06-s64-bar-lbl { font-size:11px; display:flex; justify-content:space-between; font-family:'Sora',sans-serif; }
.b06-s64-bar-bg { background:#F4F4F0; border-radius:99px; height:8px; }
.b06-s64-bar { height:8px; border-radius:99px; }
.b06-s64-benefits { display:flex; flex-direction:column; gap:6px; }
.b06-s64-benefit { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b06-s64-check { color:#1D9E75; flex-shrink:0; }
.b06-s64-raw-btn { font-size:11px; color:#52524C; background:none; border:0.5px solid rgba(124,58,237,0.2); border-radius:99px; padding:3px 10px; cursor:pointer; font-family:'Sora',sans-serif; }
.b06-s64-raw-panel { display:none; margin-top:8px; border-radius:var(--border-radius-md); background:#0F0F0E; padding:12px 14px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; overflow-x:auto; }
.b06-s64-raw-panel.show { display:block; }
.b06-rn { color:#FAC775; }

/* ============================================================
   PAGE 9 · BAB 6 · 6.5 SIMULATION (P2MS vs P2SH)
============================================================ */
.b06-s65-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b06-s65-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b06-s65-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.b06-s65-tab:hover { background:#F4F4F0; }
.b06-s65-tab.active-amber { background:#854F0B; color:#FAEEDA; }
.b06-s65-tab.active-purp  { background:#534AB7; color:#fff; }
.b06-s65-pane { display:none; flex-direction:column; gap:12px; }
.b06-s65-pane.show { display:flex; }
.b06-s65-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b06-s65-head { padding:8px 14px; font-size:11px; font-weight:500; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.b06-s65-head.s65-amber { background:#854F0B; color:#FAEEDA; }
.b06-s65-head.s65-purp  { background:#534AB7; color:#fff; }
.b06-s65-head.s65-green { background:#0F6E56; color:#E1F5EE; }
.b06-s65-badge { font-size:9px; padding:2px 8px; border-radius:99px; background:rgba(0,0,0,0.15); font-family:'Sora',sans-serif; }
.b06-s65-section { border-bottom:0.5px solid rgba(124,58,237,0.07); }
.b06-s65-section:last-child { border-bottom:none; }
.b06-s65-sh { padding:5px 12px; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; background:#F4F4F0; font-family:'Sora',sans-serif; }
.b06-s65-field { display:flex; align-items:flex-start; padding:7px 12px; border-bottom:0.5px solid rgba(124,58,237,0.05); gap:8px; }
.b06-s65-field:last-child { border-bottom:none; }
.b06-s65-fn { font-size:11px; color:#52524C; min-width:88px; flex-shrink:0; font-family:'Sora',sans-serif; padding-top:1px; }
.b06-s65-fv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; word-break:break-word; }
.s65-amber-v { color:#854F0B; font-weight:500; }
.s65-purp-v  { color:#534AB7; font-weight:500; }
.s65-green-v { color:#0F6E56; font-weight:500; }
.s65-dim-v   { color:#52524C; }
.b06-s65-empty { padding:10px 12px; font-size:11px; color:#52524C; font-style:italic; text-align:center; font-family:'Sora',sans-serif; }
.b06-s65-alert { padding:8px 12px; font-size:11px; line-height:1.5; font-family:'Sora',sans-serif; border-radius:var(--border-radius-md); }
.b06-s65-alert.warn-alert { background:#FAEEDA; border-left:2px solid #854F0B; color:#633806; }
.b06-s65-alert.ok-alert   { background:#EAF3DE; border-left:2px solid #3B6D11; color:#27500A; }
.b06-s65-arrow { text-align:center; font-size:11px; color:#52524C; font-family:'Sora',sans-serif; padding:2px 0; }
.b06-s65-raw-btn { font-size:11px; color:#52524C; background:none; border:0.5px solid rgba(124,58,237,0.2); border-radius:99px; padding:3px 10px; cursor:pointer; font-family:'Sora',sans-serif; }
.b06-s65-raw-panel { display:none; margin-top:8px; border-radius:var(--border-radius-md); background:#0F0F0E; padding:12px 14px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; overflow-x:auto; }
.b06-s65-raw-panel.show { display:block; }
.b06-rk { color:#AFA9EC; }
.b06-rs { color:#5DCAA5; }
.b06-rc { color:#888780; }

/* ============================================================
   PAGE 9 · BAB 6 · 6.6 SIMULATION (Taproot P2TR)
============================================================ */
.b06-s66-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b06-s66-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b06-s66-head { padding:8px 14px; font-size:11px; font-weight:500; display:flex; justify-content:space-between; align-items:center; font-family:'Sora',sans-serif; }
.b06-s66-head.s66-dark { background:#1A1A18; color:#C4B5FD; }
.b06-s66-head.s66-purp { background:#534AB7; color:#fff; }
.b06-s66-head.s66-teal { background:#0F6E56; color:#fff; }
.b06-s66-badge { font-size:9px; padding:2px 8px; border-radius:99px; background:rgba(255,255,255,0.2); font-family:'Sora',sans-serif; }
.b06-s66-section { border-bottom:0.5px solid rgba(124,58,237,0.07); }
.b06-s66-section:last-child { border-bottom:none; }
.b06-s66-sh { padding:5px 12px; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; background:#F4F4F0; font-family:'Sora',sans-serif; }
.b06-s66-field { display:flex; align-items:flex-start; padding:7px 12px; border-bottom:0.5px solid rgba(124,58,237,0.05); gap:8px; }
.b06-s66-field:last-child { border-bottom:none; }
.b06-s66-fn { font-size:11px; color:#52524C; min-width:100px; flex-shrink:0; font-family:'Sora',sans-serif; padding-top:1px; }
.b06-s66-fv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; word-break:break-word; }
.s66-purp-v { color:#534AB7; font-weight:500; }
.s66-teal-v { color:#0F6E56; font-weight:500; }
.s66-dim-v  { color:#52524C; }
.b06-s66-divider { display:flex; align-items:center; gap:10px; font-size:11px; color:#52524C; font-family:'Sora',sans-serif; margin:0 0 1rem; }
.b06-s66-divider-line { flex:1; height:0.5px; background:rgba(124,58,237,0.12); }
.b06-s66-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b06-s66-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.b06-s66-tab:hover { background:#F4F4F0; }
.b06-s66-tab.active-purp { background:#534AB7; color:#fff; }
.b06-s66-tab.active-teal { background:#0F6E56; color:#fff; }
.b06-s66-pane { display:none; flex-direction:column; gap:12px; }
.b06-s66-pane.show { display:flex; }
.b06-s66-alert { padding:10px 12px; font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; border-radius:var(--border-radius-md); }
.b06-s66-alert.info-alert { background:#EEEDFE; border-left:2px solid #534AB7; color:#3C3489; }
.b06-s66-alert.ok-alert   { background:#EAF3DE; border-left:2px solid #3B6D11; color:#27500A; }
.b06-s66-mast { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; }
.b06-s66-mast-head { padding:7px 12px; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:#52524C; background:#F4F4F0; font-family:'Sora',sans-serif; display:flex; justify-content:space-between; }
.b06-s66-tree { padding:12px 14px; display:flex; flex-direction:column; gap:10px; align-items:center; }
.b06-s66-tree-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center; }
.b06-s66-node { padding:5px 12px; border-radius:6px; font-size:11px; font-family:'Sora',sans-serif; text-align:center; }
.b06-s66-node.s66-root     { background:#534AB7; color:#fff; }
.b06-s66-node.s66-branch   { background:#F4F4F0; color:#3A3A35; border:0.5px solid rgba(124,58,237,0.15); }
.b06-s66-node.s66-revealed { background:#0F6E56; color:#fff; outline:2px solid #FAC775; outline-offset:2px; }
.b06-s66-node.s66-hidden   { background:#F4F4F0; color:#52524C; border:0.5px solid rgba(0,0,0,0.08); font-style:italic; }
.b06-s66-conn { color:#52524C; font-size:13px; }
.b06-s66-proof { padding:8px 12px; background:rgba(15,110,86,0.08); border:0.5px solid rgba(15,110,86,0.3); border-radius:var(--border-radius-md); font-size:11px; font-family:'Courier Prime',monospace; color:#0F6E56; }
.b06-s66-raw-btn { font-size:11px; color:#52524C; background:none; border:0.5px solid rgba(124,58,237,0.2); border-radius:99px; padding:3px 10px; cursor:pointer; font-family:'Sora',sans-serif; }
.b06-s66-raw-panel { display:none; border-radius:var(--border-radius-md); background:#0F0F0E; padding:12px 14px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; overflow-x:auto; margin-top:8px; }
.b06-s66-raw-panel.show { display:block; }
.b06-trk { color:#AFA9EC; }
.b06-trs { color:#5DCAA5; }
.b06-trc { color:#888780; }

/* ============================================================
   PAGE 10 · BAB 7 · Lightning Network
============================================================ */

/* ============================================================
   PAGE 10 · BAB 7 · 7.1 SIMULATION (Trilemma Skalabilitas)
============================================================ */
.b07-s71-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s71-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1rem; }
.b07-s71-tab { padding:6px 14px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.b07-s71-tab:hover { border-color:#534AB7; color:#534AB7; }
.b07-s71-tab.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.b07-s71-tab.active-green { background:#3B6D11; color:#fff; border-color:#3B6D11; }
.b07-s71-tab.active-red { background:#A32D2D; color:#fff; border-color:#A32D2D; }
#b07-s71-canvas { width:100%; display:block; border-radius:var(--border-radius-lg); background:#F4F4F0; }
.b07-s71-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b07-s71-note.bitcoin   { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b07-s71-note.lightning { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b07-s71-note.others   { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 10 · BAB 7 · 7.2 SIMULATION (Payment Channel)
============================================================ */
.b07-s72-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s72-phases { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:0; align-items:stretch; margin-bottom:1rem; }
.b07-s72-phase { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; cursor:pointer; transition:all 0.2s; }
.b07-s72-phase:hover { border-color:#534AB7; }
.b07-s72-phase.active { border-color:#534AB7; box-shadow:0 0 0 2px rgba(83,74,183,0.12); }
.b07-s72-ph-head { padding:7px 12px; font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:0.08em; display:flex; align-items:center; gap:6px; font-family:'Sora',sans-serif; }
.b07-s72-ph-head.on-chain-open  { background:#534AB7; color:#fff; }
.b07-s72-ph-head.off-chain      { background:#0F6E56; color:#fff; }
.b07-s72-ph-head.on-chain-close { background:#854F0B; color:#FAEEDA; }
.b07-s72-ph-badge { font-size:9px; padding:2px 6px; border-radius:99px; background:rgba(255,255,255,0.2); font-family:'Sora',sans-serif; }
.b07-s72-ph-body { padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.b07-s72-ph-title { font-size:12px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s72-ph-sub { font-size:11px; color:#3A3A35; line-height:1.5; font-family:'Sora',sans-serif; }
.b07-s72-bal { display:flex; flex-direction:column; gap:3px; margin-top:4px; }
.b07-s72-bal-row { display:flex; justify-content:space-between; align-items:center; font-size:11px; }
.b07-s72-bal-name { color:#52524C; font-family:'Sora',sans-serif; }
.b07-s72-bal-val { font-family:'Courier Prime',monospace; font-weight:500; }
.alice-val { color:#534AB7; }
.bob-val   { color:#0F6E56; }
.b07-s72-bar-bg { height:5px; border-radius:99px; background:#F4F4F0; overflow:hidden; }
.b07-s72-bar-fill { height:100%; border-radius:99px; transition:width 0.4s ease; }
.alice-fill { background:#534AB7; }
.bob-fill   { background:#0F6E56; }
.b07-s72-arrow { display:flex; align-items:center; justify-content:center; padding:0 8px; color:#52524C; font-size:16px; flex-shrink:0; }
.b07-s72-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.b07-s72-detail-head { padding:8px 14px; font-size:11px; font-weight:500; background:#F4F4F0; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s72-detail-body { padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.b07-s72-detail-row { display:flex; gap:10px; align-items:flex-start; }
.b07-s72-detail-key { font-size:11px; color:#52524C; min-width:110px; flex-shrink:0; font-family:'Sora',sans-serif; padding-top:1px; }
.b07-s72-detail-val { font-size:11px; color:#1A1A18; font-family:'Courier Prime',monospace; flex:1; word-break:break-all; }
.b07-s72-detail-val.purp  { color:#534AB7; font-weight:500; }
.b07-s72-detail-val.green { color:#0F6E56; font-weight:500; }
.b07-s72-detail-val.amber { color:#854F0B; font-weight:500; }
.b07-s72-txs { display:flex; flex-direction:column; gap:5px; }
.b07-s72-tx { padding:7px 10px; border-radius:var(--border-radius-md); background:#F4F4F0; display:flex; justify-content:space-between; align-items:center; font-size:11px; }
.b07-s72-tx-label { font-weight:500; font-family:'Sora',sans-serif; }
.b07-s72-tx-label.purp  { color:#534AB7; }
.b07-s72-tx-label.green { color:#0F6E56; }
.b07-s72-tx-right { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.b07-s72-tx-amount { font-family:'Courier Prime',monospace; color:#1A1A18; }
.b07-s72-tx-result { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b07-s72-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b07-s72-note.info-note    { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b07-s72-note.success-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b07-s72-note.warning-note { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b07-s72-note.danger-note { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b07-s72-cheat { margin-top:1.25rem; border:0.5px solid rgba(163,45,45,0.22); border-radius:var(--border-radius-lg); overflow:hidden; }
.b07-s72-cheat-head { padding:8px 14px; font-size:11px; font-weight:500; background:#1A1A18; color:#F09595; font-family:'Sora',sans-serif; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.b07-s72-cheat-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:10px; }
.b07-s72-cheat-q { font-size:12px; color:#3A3A35; line-height:1.7; font-family:'Sora',sans-serif; }
.b07-s72-cheat-btns { display:flex; gap:8px; flex-wrap:wrap; }
.b07-s72-btn { appearance:none; border:0.5px solid rgba(124,58,237,0.3); background:#FAFAF8; color:#534AB7; font-family:'Sora',sans-serif; font-size:11px; font-weight:500; padding:7px 13px; border-radius:var(--border-radius-md); cursor:pointer; transition:background 0.15s,color 0.15s; }
.b07-s72-btn:hover { background:#EEEDFE; }
.b07-s72-btn.danger { border-color:rgba(163,45,45,0.35); color:#A32D2D; }
.b07-s72-btn.danger:hover { background:#FCEBEB; }
.b07-s72-steps { display:flex; flex-direction:column; gap:6px; }
.b07-s72-step { display:flex; gap:9px; align-items:flex-start; font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; opacity:0; transform:translateY(3px); transition:opacity 0.3s ease, transform 0.3s ease; }
.b07-s72-step.show { opacity:1; transform:none; }
.b07-s72-step-n { flex-shrink:0; width:17px; height:17px; border-radius:99px; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:700; font-family:'Courier Prime',monospace; }
.b07-s72-step-n.bad { background:#A32D2D; color:#fff; }
.b07-s72-step-n.ok { background:#0F6E56; color:#fff; }
.b07-s72-step-txt { color:#3A3A35; }
.b07-s72-step-txt b { color:#1A1A18; font-weight:600; }
.b07-s72-outcome { display:flex; gap:8px; }
.b07-s72-out { flex:1; padding:9px 11px; border-radius:var(--border-radius-md); text-align:center; }
.b07-s72-out.lose { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b07-s72-out.win { background:#EAF3DE; border:0.5px solid rgba(59,109,17,0.2); }
.b07-s72-out-name { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; margin-bottom:2px; }
.b07-s72-out-val { font-size:15px; font-weight:600; font-family:'Courier Prime',monospace; }
.b07-s72-out.lose .b07-s72-out-val { color:#A32D2D; }
.b07-s72-out.win .b07-s72-out-val { color:#0F6E56; }
.b07-s72-out-tag { font-size:9px; font-family:'Sora',sans-serif; margin-top:2px; }
.b07-s72-out.lose .b07-s72-out-tag { color:#791F1F; }
.b07-s72-out.win .b07-s72-out-tag { color:#27500A; }
@media (max-width:640px){ .b07-s72-outcome { flex-direction:column; } }

/* ============================================================
   PAGE 10 · BAB 7 · 7.3 SIMULATION (HTLC Routing)
============================================================ */
.b07-s73-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s73-steps { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1rem; }
.b07-s73-btn { padding:5px 12px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b07-s73-btn:hover { border-color:#534AB7; color:#534AB7; }
.b07-s73-btn.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.b07-s73-nodes { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:8px; }
.b07-s73-node { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; transition:box-shadow 0.2s; }
.b07-s73-node.hl  { box-shadow:0 0 0 2px rgba(83,74,183,0.2); }
.b07-s73-node.hlg { box-shadow:0 0 0 2px rgba(15,110,86,0.2); }
.b07-s73-nh { padding:7px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b07-s73-nh.a { background:#534AB7; color:#fff; }
.b07-s73-nh.b { background:#854F0B; color:#FAEEDA; }
.b07-s73-nh.c { background:#0F6E56; color:#fff; }
.b07-s73-nb { padding:10px 12px; display:flex; flex-direction:column; gap:5px; }
.b07-s73-bal { font-size:12px; font-family:'Courier Prime',monospace; font-weight:500; }
.b07-s73-bal.p { color:#534AB7; } .b07-s73-bal.m { color:#854F0B; } .b07-s73-bal.g { color:#0F6E56; }
.b07-s73-st { font-size:10px; color:#52524C; line-height:1.5; font-family:'Sora',sans-serif; }
.b07-s73-htlc { padding:4px 8px; border-radius:4px; font-size:10px; font-family:'Courier Prime',monospace; margin-top:2px; }
.b07-s73-htlc.lk { background:#FAEEDA; color:#854F0B; }
.b07-s73-htlc.ul { background:#EAF3DE; color:#27500A; }
.b07-s73-htlc.no { background:#F4F4F0; color:#52524C; }
.b07-s73-arrows { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:1rem; }
.b07-s73-ac { border:0.5px solid rgba(124,58,237,0.1); border-radius:var(--border-radius-md); padding:8px 12px; }
.b07-s73-al { font-size:10px; text-transform:uppercase; letter-spacing:0.06em; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:3px; }
.b07-s73-av { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; }
.b07-s73-av.p { color:#534AB7; } .b07-s73-av.g { color:#0F6E56; } .b07-s73-av.d { color:#52524C; }
.b07-s73-det { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.b07-s73-dh { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s73-db { padding:12px 14px; font-size:12px; color:#3A3A35; line-height:1.7; font-family:'Sora',sans-serif; }
.b07-s73-db b { color:#1A1A18; }
.b07-s73-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b07-s73-note.p { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b07-s73-note.g { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b07-s73-note.m { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 10 · BAB 7 · 7.4 SIMULATION (Channel Close)
============================================================ */
.b07-s74-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s74-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:1rem; }
.b07-s74-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; cursor:pointer; transition:all 0.2s; }
.b07-s74-card:hover { border-color:rgba(124,58,237,0.3); }
.b07-s74-card.sel.coop  { border:1.5px solid #0F6E56; }
.b07-s74-card.sel.force { border:1.5px solid #854F0B; }
.b07-s74-card.sel.pen   { border:1.5px solid #A32D2D; }
.b07-s74-head { padding:8px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; display:flex; justify-content:space-between; align-items:center; }
.b07-s74-head.s74-coop  { background:#0F6E56; color:#fff; }
.b07-s74-head.s74-force { background:#854F0B; color:#FAEEDA; }
.b07-s74-head.s74-pen   { background:#A32D2D; color:#fff; }
.b07-s74-badge { font-size:9px; padding:2px 7px; border-radius:99px; background:rgba(255,255,255,0.2); font-family:'Sora',sans-serif; }
.b07-s74-cbody { padding:10px 12px; display:flex; flex-direction:column; gap:7px; }
.b07-s74-stat { display:flex; flex-direction:column; gap:2px; }
.b07-s74-sl { font-size:10px; color:#52524C; text-transform:uppercase; letter-spacing:0.06em; font-family:'Sora',sans-serif; }
.b07-s74-sv { font-size:11px; font-weight:500; font-family:'Courier Prime',monospace; }
.sv-g { color:#0F6E56; } .sv-m { color:#854F0B; } .sv-r { color:#A32D2D; }
.b07-s74-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.b07-s74-dhead { padding:8px 14px; font-size:11px; font-weight:500; background:#F4F4F0; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s74-dbody { display:flex; flex-direction:column; }
.b07-s74-drow { display:flex; align-items:flex-start; padding:7px 14px; border-bottom:0.5px solid rgba(124,58,237,0.07); gap:10px; }
.b07-s74-drow:last-child { border-bottom:none; }
.b07-s74-dk { font-size:11px; color:#52524C; min-width:120px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b07-s74-dv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; word-break:break-word; color:#1A1A18; }
.b07-s74-dv.g { color:#0F6E56; font-weight:500; }
.b07-s74-dv.m { color:#854F0B; font-weight:500; }
.b07-s74-dv.r { color:#A32D2D; font-weight:500; }
.b07-s74-steps { display:flex; flex-direction:column; gap:6px; padding:10px 14px; }
.b07-s74-step { display:flex; align-items:flex-start; gap:10px; }
.b07-s74-snum { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:500; flex-shrink:0; font-family:'Sora',sans-serif; }
.b07-s74-snum.g { background:#0F6E56; color:#fff; }
.b07-s74-snum.m { background:#854F0B; color:#FAEEDA; }
.b07-s74-snum.r { background:#A32D2D; color:#fff; }
.b07-s74-stext { font-size:11px; color:#3A3A35; line-height:1.5; padding-top:2px; font-family:'Sora',sans-serif; }
.b07-s74-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b07-s74-note.g { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b07-s74-note.m { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b07-s74-note.r { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 10 · BAB 7 · 7.5 SIMULATION (Lightning Invoice)
============================================================ */
.b07-s75-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s75-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b07-s75-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.b07-s75-tab.active { background:#534AB7; color:#fff; }
.b07-s75-pane { display:none; flex-direction:column; gap:10px; }
.b07-s75-pane.show { display:flex; }
.b07-s75-string { padding:12px 14px; background:#0F0F0E; border-radius:var(--border-radius-md); font-size:11px; font-family:'Courier Prime',monospace; line-height:2; word-break:break-all; display:flex; flex-wrap:wrap; }
.b07-s75-seg { padding:2px 0; cursor:pointer; border-radius:2px; transition:all 0.15s; }
.b07-s75-seg:hover { opacity:0.75; }
.b07-s75-seg.active-seg { outline:1.5px solid #FAC775; outline-offset:1px; }
.seg-prefix { color:#AFA9EC; } .seg-amount { color:#5DCAA5; } .seg-ts { color:#FAC775; }
.seg-phash  { color:#F09595; } .seg-nodeid { color:#85B7EB; } .seg-expiry { color:#97C459; } .seg-sig { color:#888780; }
.b07-s75-legend { display:flex; flex-wrap:wrap; gap:6px; }
.b07-s75-leg { display:flex; align-items:center; gap:5px; font-size:11px; color:#3A3A35; cursor:pointer; padding:3px 8px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.12); transition:all 0.15s; font-family:'Sora',sans-serif; }
.b07-s75-leg:hover { border-color:rgba(124,58,237,0.3); }
.b07-s75-leg.active-leg { background:#F4F4F0; border-color:rgba(124,58,237,0.3); }
.b07-s75-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.b07-s75-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; }
.b07-s75-dhead { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s75-dbody { padding:12px 14px; display:flex; flex-direction:column; gap:6px; }
.b07-s75-drow { display:flex; gap:10px; align-items:flex-start; }
.b07-s75-dk { font-size:11px; color:#52524C; min-width:100px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b07-s75-dv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; word-break:break-all; color:#1A1A18; }
.b07-s75-flow { display:flex; flex-direction:column; gap:0; }
.b07-s75-fstep { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b07-s75-fstep:last-child { border-bottom:none; }
.b07-s75-fnum { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:500; flex-shrink:0; font-family:'Sora',sans-serif; }
.b07-s75-fnum.fa { background:#534AB7; color:#fff; }
.b07-s75-fnum.fc { background:#0F6E56; color:#fff; }
.b07-s75-fnum.fb { background:#854F0B; color:#FAEEDA; }
.b07-s75-fcontent { display:flex; flex-direction:column; gap:3px; flex:1; }
.b07-s75-factor { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b07-s75-ftitle { font-size:12px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b07-s75-fdesc { font-size:11px; color:#3A3A35; line-height:1.5; font-family:'Sora',sans-serif; }
.b07-s75-fcode { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; background:#F4F4F0; padding:4px 8px; border-radius:4px; margin-top:2px; word-break:break-all; }

/* ============================================================
   PAGE 10 · BAB 7 · 7.6 SIMULATION (Lightning vs On-chain)
============================================================ */
.b07-s76-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b07-s76-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:1rem; }
.b07-s76-hcell { padding:10px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b07-s76-hcell.s76-label { background:#F4F4F0; color:#52524C; text-transform:uppercase; letter-spacing:0.06em; }
.b07-s76-hcell.s76-ln { background:#534AB7; color:#fff; text-align:center; }
.b07-s76-hcell.s76-oc { background:#1A1A18; color:#C4B5FD; text-align:center; }
.b07-s76-cell { padding:10px 14px; border-top:0.5px solid rgba(124,58,237,0.08); font-size:12px; font-family:'Sora',sans-serif; }
.b07-s76-cell.s76-label { color:#1A1A18; font-weight:500; }
.b07-s76-pill { display:inline-flex; align-items:center; padding:2px 8px; border-radius:99px; font-size:11px; font-weight:500; white-space:nowrap; font-family:'Sora',sans-serif; }
.b07-s76-pill.good { background:#EAF3DE; color:#27500A; }
.b07-s76-pill.mid  { background:#FAEEDA; color:#633806; }
.b07-s76-pill.bad  { background:#FCEBEB; color:#791F1F; }
.b07-s76-sub { font-size:10px; color:#52524C; margin-top:3px; line-height:1.4; font-family:'Sora',sans-serif; }
.b07-s76-use { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:1rem; }
.b07-s76-use-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b07-s76-use-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b07-s76-use-head.s76-ln-head { background:#534AB7; color:#fff; }
.b07-s76-use-head.s76-oc-head { background:#1A1A18; color:#C4B5FD; }
.b07-s76-use-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b07-s76-use-item { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b07-s76-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.b07-s76-dot.s76-dot-ln { background:#534AB7; }
.b07-s76-dot.s76-dot-oc { background:#1A1A18; }
.b07-s76-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 11 · BAB 8 · Node dan Jaringan P2P
============================================================ */

/* ============================================================
   PAGE 11 · BAB 8 · 8.1 SIMULATION (P2P Network)
============================================================ */
.b08-s81-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s81-legend { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:1rem; }
.b08-s81-leg { display:flex; align-items:center; gap:6px; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b08-s81-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
#b08-s81-canvas { width:100%; border-radius:var(--border-radius-lg); background:#F4F4F0; display:block; cursor:pointer; }
.b08-s81-hint { font-size:11px; color:#52524C; text-align:center; font-family:'Sora',sans-serif; margin-top:6px; margin-bottom:1rem; }
.b08-s81-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; display:none; }
.b08-s81-dhead { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#fff; }
.b08-s81-dbody { padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.b08-s81-drow { display:flex; gap:10px; align-items:flex-start; }
.b08-s81-dk { font-size:11px; color:#52524C; min-width:110px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b08-s81-dv { font-size:11px; font-family:'Courier Prime',monospace; flex:1; word-break:break-word; color:#1A1A18; }
.b08-s81-dv.p { color:#534AB7; font-weight:500; }
.b08-s81-dv.g { color:#0F6E56; font-weight:500; }
.b08-s81-dv.m { color:#854F0B; font-weight:500; }
.b08-s81-dv.r { color:#A32D2D; font-weight:500; }

/* ============================================================
   PAGE 11 · BAB 8 · 8.2 SIMULATION (P2P vs Terpusat)
============================================================ */
.b08-s82-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s82-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b08-s82-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; transition:all 0.15s; font-family:'Sora',sans-serif; }
.b08-s82-tab.active-p2p { background:#534AB7; color:#fff; }
.b08-s82-tab.active-cl  { background:#A32D2D; color:#fff; }
.b08-s82-cv { width:100%; border-radius:var(--border-radius-lg); display:block; cursor:crosshair; }
.b08-s82-pane { display:none; flex-direction:column; gap:10px; }
.b08-s82-pane.show { display:flex; }
.b08-s82-hint { font-size:11px; color:#52524C; text-align:center; font-family:'Sora',sans-serif; }
.b08-s82-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b08-s82-stat { font-size:11px; color:#3A3A35; padding:4px 10px; background:#F4F4F0; border-radius:99px; font-family:'Sora',sans-serif; }
.b08-s82-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b08-s82-note.safe-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b08-s82-note.warn-note { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b08-s82-note.dead-note { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 11 · BAB 8 · 8.3 SIMULATION (Propagasi Transaksi)
============================================================ */
.b08-s83-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s83-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b08-s83-btn-primary { padding:7px 16px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; transition:all 0.15s; }
.b08-s83-btn-primary:hover { background:#4338a3; }
.b08-s83-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b08-s83-btn-reset { padding:7px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; }
.b08-s83-stat { font-size:11px; color:#3A3A35; padding:4px 10px; background:#F4F4F0; border-radius:99px; font-family:'Sora',sans-serif; }
.b08-s83-cv { width:100%; border-radius:var(--border-radius-lg); display:block; }
.b08-s83-log { display:flex; flex-direction:column; gap:4px; max-height:120px; overflow-y:auto; padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-size:11px; font-family:'Courier Prime',monospace; margin-top:8px; }
.b08-s83-log-row { display:flex; gap:8px; align-items:baseline; }
.b08-s83-log-t { color:#52524C; flex-shrink:0; min-width:48px; }
.b08-s83-log-m { color:#1A1A18; }
.b08-s83-log-m.ok-log  { color:#0F6E56; }
.b08-s83-log-m.dup-log { color:#854F0B; }
.b08-s83-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; margin-top:8px; }
.b08-s83-note.idle-note    { background:#F4F4F0; color:#3A3A35; }
.b08-s83-note.running-note { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b08-s83-note.done-note    { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 11 · BAB 8 · 8.4 SIMULATION (Propagasi Block)
============================================================ */
.b08-s84-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s84-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b08-s84-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b08-s84-tab.s84-act { background:#534AB7; color:#fff; }
.b08-s84-pane { display:none; flex-direction:column; gap:10px; }
.b08-s84-pane.show { display:flex; }
.b08-s84-compare { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b08-s84-col { display:flex; flex-direction:column; gap:6px; }
.b08-s84-col-head { padding:7px 12px; font-size:11px; font-weight:500; border-radius:var(--border-radius-md); text-align:center; font-family:'Sora',sans-serif; }
.b08-s84-col-head.s84-full    { background:#854F0B; color:#FAEEDA; }
.b08-s84-col-head.s84-compact { background:#0F6E56; color:#fff; }
.b08-s84-cv { width:100%; border-radius:var(--border-radius-md); display:block; }
.b08-s84-col-stat { font-size:10px; font-family:'Courier Prime',monospace; padding:5px 8px; border-radius:4px; background:#F4F4F0; }
.b08-s84-col-stat.s84-full-stat span    { color:#854F0B; font-weight:500; }
.b08-s84-col-stat.s84-compact-stat span { color:#0F6E56; font-weight:500; }
.b08-s84-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b08-s84-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b08-s84-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b08-s84-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; }
.b08-s84-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b08-s84-note.idle-note { background:#F4F4F0; color:#3A3A35; }
.b08-s84-note.run-note  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b08-s84-note.done-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b08-s84-chain-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b08-s84-chain-row { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.b08-s84-block { width:56px; height:38px; border-radius:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:9px; font-weight:500; font-family:'Courier Prime',monospace; flex-shrink:0; text-align:center; line-height:1.3; }
.b08-s84-block.s84-confirmed { background:#534AB7; color:#fff; }
.b08-s84-block.s84-main      { background:#0F6E56; color:#fff; }
.b08-s84-block.s84-orphan    { background:#F4F4F0; color:#52524C; border:0.5px solid rgba(124,58,237,0.12); text-decoration:line-through; }
.b08-s84-arrow { color:#52524C; font-size:12px; flex-shrink:0; }
.b08-s84-chain-tag { font-size:10px; color:#0F6E56; font-family:'Sora',sans-serif; }
.b08-s84-chain-tag.s84-tag-orphan { color:#52524C; }
.b08-s84-orphan-note { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b08-s84-sub-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; margin-top:4px; }

/* ============================================================
   PAGE 11 · BAB 8 · 8.5 SIMULATION (Peer Discovery)
============================================================ */
.b08-s85-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s85-steps { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:1rem; }
.b08-s85-step-btn { padding:5px 14px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b08-s85-step-btn:hover { border-color:#534AB7; color:#534AB7; }
.b08-s85-step-btn.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.b08-s85-cv { width:100%; border-radius:var(--border-radius-lg); display:block; }
.b08-s85-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-top:8px; }
.b08-s85-dhead { padding:8px 14px; font-size:11px; font-weight:500; background:#F4F4F0; color:#1A1A18; font-family:'Sora',sans-serif; }
.b08-s85-dbody { padding:12px 14px; font-size:12px; color:#3A3A35; line-height:1.7; font-family:'Sora',sans-serif; }
.b08-s85-dbody b { color:#1A1A18; }
.b08-s85-dbody code { font-family:'Courier Prime',monospace; font-size:11px; background:#F4F4F0; padding:1px 5px; border-radius:3px; color:#534AB7; }
.b08-s85-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; margin-top:8px; }
.b08-s85-note.p { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b08-s85-note.g { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b08-s85-note.m { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 11 · BAB 8 · 8.6 SIMULATION (Network Health Dashboard)
============================================================ */
.b08-s86-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b08-s86-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b08-s86-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b08-s86-card-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; background:#F4F4F0; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b08-s86-card-body { padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.b08-s86-metric { display:flex; flex-direction:column; gap:2px; }
.b08-s86-metric-val { font-size:26px; font-weight:700; font-family:'Courier Prime',monospace; line-height:1; }
.b08-s86-metric-sub { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.good-val { color:#0F6E56; } .warn-val { color:#854F0B; } .bad-val { color:#A32D2D; }
.b08-s86-inds { display:flex; flex-direction:column; gap:5px; }
.b08-s86-ind { display:flex; align-items:center; gap:8px; }
.b08-s86-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.b08-s86-ind-label { font-size:11px; color:#1A1A18; flex:1; font-family:'Sora',sans-serif; }
.b08-s86-ind-val { font-size:11px; font-family:'Courier Prime',monospace; }
.b08-s86-bars { display:flex; flex-direction:column; gap:5px; }
.b08-s86-bar-row { display:flex; align-items:center; gap:8px; }
.b08-s86-bar-label { font-size:10px; color:#3A3A35; min-width:80px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b08-s86-bar-track { flex:1; height:8px; background:#EEEDFE; border-radius:99px; overflow:hidden; }
.b08-s86-bar-fill { height:100%; border-radius:99px; }
.b08-s86-bar-pct { font-size:10px; color:#52524C; min-width:28px; text-align:right; font-family:'Courier Prime',monospace; }
.b08-s86-donut { width:100%; display:block; }
.b08-s86-footnote { font-size:10px; color:#52524C; line-height:1.5; font-family:'Sora',sans-serif; }
.b08-s86-social { border:0.5px solid rgba(83,74,183,0.2); border-radius:var(--border-radius-lg); background:#EEEDFE; padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.b08-s86-social-head { font-size:11px; font-weight:500; color:#3C3489; font-family:'Sora',sans-serif; }
.b08-s86-social-items { display:flex; flex-direction:column; gap:6px; }
.b08-s86-social-item { display:flex; gap:10px; align-items:flex-start; }
.b08-s86-social-icon { font-size:14px; flex-shrink:0; line-height:1.4; }
.b08-s86-social-text { font-size:11px; color:#3C3489; line-height:1.5; font-family:'Sora',sans-serif; }
.b08-s86-social-text b { color:#1A1A6E; }

/* ============================================================
   PAGE 12 · BAB 9 · Mempool dan Fee Market
============================================================ */

/* ============================================================
   PAGE 12 · BAB 9 · 9.1 SIMULATION (Mempool)
============================================================ */
.b09-s91-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s91-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b09-s91-step-label { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s91-btn-add { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; transition:all 0.15s; }
.b09-s91-btn-add:hover { background:#4338a3; }
.b09-s91-btn-mine { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.3); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b09-s91-btn-mine:hover { background:#EEEDFE; }
.b09-s91-btn-reset { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.12); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; }
.b09-s91-stat { font-size:11px; color:#3A3A35; padding:4px 10px; background:#F4F4F0; border-radius:99px; font-family:'Sora',sans-serif; }
.b09-s91-legend { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.b09-s91-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s91-leg-dot { width:8px; height:8px; border-radius:50%; }
.b09-s91-body { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b09-s91-col { display:flex; flex-direction:column; gap:6px; }
.b09-s91-col-head { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; padding:0 2px; }
.b09-s91-col-sub { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; padding:0 2px; }
.b09-s91-pool { display:flex; flex-direction:column; gap:4px; min-height:200px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); }
.b09-s91-block { display:flex; flex-direction:column; gap:4px; min-height:200px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); }
.b09-s91-empty { font-size:11px; color:#52524C; text-align:center; padding:20px 0; font-family:'Sora',sans-serif; }
.b09-s91-tx { display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:6px; }
.b09-s91-tx.high { background:rgba(15,110,86,0.12); }
.b09-s91-tx.med  { background:rgba(83,74,183,0.08); }
.b09-s91-tx.low  { background:rgba(133,79,11,0.08); }
.b09-s91-tx-num { font-size:10px; color:#52524C; min-width:18px; font-family:'Courier Prime',monospace; }
.b09-s91-tx-bar { width:4px; border-radius:99px; flex-shrink:0; }
.b09-s91-tx-bar.high { background:#0F6E56; height:28px; }
.b09-s91-tx-bar.med  { background:#534AB7; height:22px; }
.b09-s91-tx-bar.low  { background:#854F0B; height:16px; }
.b09-s91-tx-id { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; flex:1; }
.b09-s91-tx-fee { font-size:10px; font-family:'Courier Prime',monospace; font-weight:500; }
.b09-s91-tx-fee.high { color:#0F6E56; }
.b09-s91-tx-fee.med  { color:#534AB7; }
.b09-s91-tx-fee.low  { color:#854F0B; }
.b09-s91-tx-size { font-size:10px; color:#52524C; font-family:'Courier Prime',monospace; }
.b09-s91-cap { display:flex; flex-direction:column; gap:3px; }
.b09-s91-cap-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s91-cap-track { height:6px; background:#EEEDFE; border-radius:99px; overflow:hidden; }
.b09-s91-cap-fill { height:100%; border-radius:99px; transition:width 0.4s ease; background:#534AB7; }
.b09-s91-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s91-note.idle-note { background:#F4F4F0; color:#3A3A35; }
.b09-s91-note.done-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 12 · BAB 9 · 9.2 SIMULATION (Fee Rate Kalkulator)
============================================================ */
.b09-s92-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s92-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b09-s92-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b09-s92-tab.s92-act { background:#534AB7; color:#fff; }
.b09-s92-pane { display:none; flex-direction:column; gap:10px; }
.b09-s92-pane.show { display:flex; }
.b09-s92-inputs { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b09-s92-field { display:flex; flex-direction:column; gap:5px; }
.b09-s92-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b09-s92-label-sub { font-size:10px; color:#52524C; font-weight:400; }
.b09-s92-input { padding:8px 12px; font-size:13px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#F4F4F0; color:#1A1A18; width:100%; }
.b09-s92-input:focus { outline:none; border-color:#534AB7; }
.b09-s92-result { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b09-s92-result-head { padding:10px 14px; display:flex; align-items:baseline; gap:10px; }
.b09-s92-result-val { font-size:32px; font-weight:700; font-family:'Courier Prime',monospace; line-height:1; }
.b09-s92-result-unit { font-size:13px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s92-result-body { padding:10px 14px; display:flex; flex-direction:column; gap:8px; border-top:0.5px solid rgba(124,58,237,0.08); }
.b09-s92-zone-wrap { display:flex; flex-direction:column; gap:4px; }
.b09-s92-zone-bar { height:12px; border-radius:99px; display:flex; overflow:hidden; position:relative; }
.b09-s92-zone-low  { flex:3; background:#FAEEDA; }
.b09-s92-zone-med  { flex:3; background:#EEEDFE; }
.b09-s92-zone-high { flex:4; background:#EAF3DE; }
.b09-s92-zone-marker { position:absolute; top:-2px; width:3px; height:16px; background:#1A1A18; border-radius:99px; transition:left 0.3s ease; }
.b09-s92-zone-labels { display:flex; justify-content:space-between; font-size:9px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s92-zone-legend { display:flex; gap:10px; }
.b09-s92-zone-leg { display:flex; align-items:center; gap:4px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s92-zone-dot { width:8px; height:8px; border-radius:50%; }
.b09-s92-row { display:flex; justify-content:space-between; align-items:center; }
.b09-s92-row-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s92-row-val { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; color:#1A1A18; }
.b09-s92-row-val.good { color:#0F6E56; } .b09-s92-row-val.warn { color:#854F0B; } .b09-s92-row-val.bad { color:#A32D2D; }
.b09-s92-compare { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b09-s92-cmp-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b09-s92-cmp-head { padding:7px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b09-s92-cmp-head.s92-legacy { background:#854F0B; color:#FAEEDA; }
.b09-s92-cmp-head.s92-segwit { background:#0F6E56; color:#fff; }
.b09-s92-cmp-body { padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.b09-s92-cmp-row { display:flex; justify-content:space-between; align-items:center; }
.b09-s92-cmp-label { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s92-cmp-val { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; }
.b09-s92-cmp-val.s92-good { color:#0F6E56; font-weight:500; }
.b09-s92-cmp-val.s92-warn { color:#854F0B; }
.b09-s92-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s92-note.s92-note-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b09-s92-note.s92-note-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b09-s92-note.s92-note-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b09-s92-note.s92-note-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 12 · BAB 9 · 9.3 SIMULATION (RBF dan CPFP)
============================================================ */
.b09-s93-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s93-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b09-s93-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b09-s93-tab.s93-act { background:#534AB7; color:#fff; }
.b09-s93-pane { display:none; flex-direction:column; gap:10px; }
.b09-s93-pane.show { display:flex; }
.b09-s93-hint { font-size:11px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s93-queue { display:flex; flex-direction:column; gap:4px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); }
.b09-s93-tx { display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:6px; transition:all 0.3s; }
.b09-s93-tx.high    { background:rgba(15,110,86,0.12); }
.b09-s93-tx.med     { background:rgba(83,74,183,0.08); }
.b09-s93-tx.low     { background:rgba(133,79,11,0.08); }
.b09-s93-tx.stuck   { background:rgba(163,45,45,0.08); border:0.5px dashed rgba(163,45,45,0.3); }
.b09-s93-tx.new-tx  { background:rgba(15,110,86,0.18); border:0.5px solid rgba(15,110,86,0.4); }
.b09-s93-tx.parent  { background:rgba(133,79,11,0.08); border:0.5px dashed rgba(133,79,11,0.3); }
.b09-s93-tx.package { background:rgba(15,110,86,0.12); border:0.5px solid rgba(15,110,86,0.4); }
.b09-s93-tx-num { font-size:10px; color:#52524C; min-width:18px; font-family:'Courier Prime',monospace; }
.b09-s93-tx-bar { width:4px; border-radius:99px; flex-shrink:0; height:22px; }
.b09-s93-tx-bar.high { background:#0F6E56; } .b09-s93-tx-bar.med { background:#534AB7; }
.b09-s93-tx-bar.low  { background:#854F0B; } .b09-s93-tx-bar.red { background:#A32D2D; }
.b09-s93-tx-id { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; flex:1; }
.b09-s93-tx-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; }
.b09-s93-tx-badge.stuck { background:#FCEBEB; color:#791F1F; }
.b09-s93-tx-badge.new   { background:#EAF3DE; color:#27500A; }
.b09-s93-tx-badge.parent { background:#FAEEDA; color:#633806; }
.b09-s93-tx-badge.pkg   { background:#EAF3DE; color:#27500A; }
.b09-s93-tx-fee { font-size:10px; font-family:'Courier Prime',monospace; font-weight:500; }
.b09-s93-tx-fee.high { color:#0F6E56; } .b09-s93-tx-fee.med { color:#534AB7; }
.b09-s93-tx-fee.low  { color:#854F0B; } .b09-s93-tx-fee.bad { color:#A32D2D; }
.b09-s93-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b09-s93-detail-head { padding:8px 14px; font-size:11px; font-weight:500; background:#F4F4F0; color:#1A1A18; font-family:'Sora',sans-serif; }
.b09-s93-detail-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b09-s93-drow { display:flex; justify-content:space-between; align-items:center; }
.b09-s93-dk { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s93-dv { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; color:#1A1A18; }
.b09-s93-dv.s93-good { color:#0F6E56; } .b09-s93-dv.s93-warn { color:#854F0B; }
.b09-s93-dv.s93-bad  { color:#A32D2D; } .b09-s93-dv.s93-purp { color:#534AB7; }
.b09-s93-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b09-s93-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b09-s93-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b09-s93-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s93-note.s93-note-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b09-s93-note.s93-note-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 12 · BAB 9 · 9.4 SIMULATION (Mempool Congestion)
============================================================ */
.b09-s94-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s94-toggle { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; width:fit-content; }
.b09-s94-tog { padding:7px 16px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.2s; }
.b09-s94-tog.quiet-tog { background:#0F6E56; color:#fff; }
.b09-s94-tog.busy-tog  { background:#A32D2D; color:#fff; }
.b09-s94-subtitle { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s94-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b09-s94-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b09-s94-card-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b09-s94-card-head.quiet-head { background:#0F6E56; color:#fff; }
.b09-s94-card-head.busy-head  { background:#A32D2D; color:#fff; }
.b09-s94-card-body { padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.b09-s94-cv { width:100%; display:block; border-radius:var(--border-radius-md); }
.b09-s94-metric { display:flex; flex-direction:column; gap:2px; }
.b09-s94-metric-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s94-metric-val { font-size:16px; font-weight:700; font-family:'Courier Prime',monospace; }
.b09-s94-metric-val.s94-good { color:#0F6E56; }
.b09-s94-metric-val.s94-bad  { color:#A32D2D; }
.b09-s94-fee-table { display:flex; flex-direction:column; gap:4px; }
.b09-s94-fee-row { display:flex; align-items:center; gap:8px; }
.b09-s94-fee-label { font-size:10px; color:#3A3A35; min-width:90px; font-family:'Sora',sans-serif; }
.b09-s94-fee-bar-wrap { flex:1; height:8px; background:#EEEDFE; border-radius:99px; overflow:hidden; }
.b09-s94-fee-bar { height:100%; border-radius:99px; transition:width 0.6s ease; }
.b09-s94-fee-val { font-size:10px; font-family:'Courier Prime',monospace; min-width:70px; text-align:right; font-weight:500; }
.b09-s94-fee-val.s94-good { color:#0F6E56; }
.b09-s94-fee-val.s94-warn { color:#854F0B; }
.b09-s94-fee-val.s94-bad  { color:#A32D2D; }
.b09-s94-strategy { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b09-s94-strategy-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; background:#F4F4F0; color:#1A1A18; }
.b09-s94-strategy-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b09-s94-strategy-item { display:flex; gap:8px; align-items:flex-start; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s94-strategy-icon { flex-shrink:0; font-size:13px; }
.b09-s94-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s94-note.quiet-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b09-s94-note.busy-note  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 12 · BAB 9 · 9.5 SIMULATION (Fee Estimator)
============================================================ */
.b09-s95-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s95-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b09-s95-group { display:flex; flex-direction:column; gap:8px; }
.b09-s95-group-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b09-s95-group-sub { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-top:-4px; }
.b09-s95-opts { display:flex; flex-direction:column; gap:4px; }
.b09-s95-opt { display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); cursor:pointer; transition:all 0.15s; background:transparent; }
.b09-s95-opt:hover { border-color:#534AB7; }
.b09-s95-opt.sel { border-color:#534AB7; background:#EEEDFE; }
.b09-s95-radio { width:14px; height:14px; border-radius:50%; border:1.5px solid rgba(124,58,237,0.3); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.b09-s95-opt.sel .b09-s95-radio { border-color:#534AB7; background:#534AB7; }
.b09-s95-radio-dot { width:5px; height:5px; border-radius:50%; background:#fff; }
.b09-s95-opt-label { font-size:12px; font-family:'Sora',sans-serif; color:#1A1A18; flex:1; }
.b09-s95-opt-val { font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; }
.b09-s95-result { border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b09-s95-result-head { padding:10px 14px; display:flex; align-items:baseline; gap:10px; border-bottom:0.5px solid rgba(124,58,237,0.1); }
.b09-s95-result-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s95-result-val { font-size:36px; font-weight:700; font-family:'Courier Prime',monospace; line-height:1; }
.b09-s95-result-unit { font-size:13px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s95-result-body { padding:10px 14px; display:flex; flex-direction:column; gap:8px; }
.b09-s95-result-row { display:flex; justify-content:space-between; align-items:center; }
.b09-s95-result-key { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s95-result-v { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; color:#1A1A18; }
.b09-s95-result-v.s95-good { color:#0F6E56; } .b09-s95-result-v.s95-warn { color:#854F0B; } .b09-s95-result-v.s95-bad { color:#A32D2D; }
.b09-s95-queue { display:flex; flex-direction:column; gap:4px; }
.b09-s95-queue-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s95-queue-track { display:flex; gap:3px; flex-wrap:wrap; align-items:center; }
.b09-s95-block { width:22px; height:22px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:500; font-family:'Sora',sans-serif; }
.b09-s95-block.full    { background:#A32D2D; color:#fff; }
.b09-s95-block.your    { background:#0F6E56; color:#fff; }
.b09-s95-block.empty   { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.1); color:#52524C; }
.b09-s95-more { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-left:4px; }
.b09-s95-explain { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.7; font-family:'Sora',sans-serif; }
.b09-s95-explain.s95-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b09-s95-explain.s95-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b09-s95-explain.s95-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 12 · BAB 9 · 9.6 SIMULATION (Fee Market Future)
============================================================ */
.b09-s96-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b09-s96-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b09-s96-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b09-s96-tab.s96-act { background:#534AB7; color:#fff; }
.b09-s96-pane { display:none; flex-direction:column; gap:10px; }
.b09-s96-pane.show { display:flex; }
.b09-s96-cv { width:100%; display:block; border-radius:var(--border-radius-lg); }
.b09-s96-legend { display:flex; gap:12px; flex-wrap:wrap; }
.b09-s96-leg { display:flex; align-items:center; gap:6px; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b09-s96-leg-line { width:20px; height:3px; border-radius:99px; flex-shrink:0; }
.b09-s96-halvings { display:flex; flex-direction:column; gap:4px; }
.b09-s96-halvings-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b09-s96-halving-row { display:flex; gap:4px; flex-wrap:wrap; }
.b09-s96-chip { padding:3px 10px; border-radius:99px; font-size:10px; font-family:'Courier Prime',monospace; background:#F4F4F0; color:#3A3A35; }
.b09-s96-chip.past { background:#EEEDFE; color:#534AB7; }
.b09-s96-chip.next { background:#534AB7; color:#fff; }
.b09-s96-scenarios { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b09-s96-sc-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b09-s96-sc-head { padding:7px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b09-s96-sc-head.s96-opt  { background:#0F6E56; color:#fff; }
.b09-s96-sc-head.s96-pess { background:#A32D2D; color:#fff; }
.b09-s96-sc-body { padding:10px 12px; display:flex; flex-direction:column; gap:5px; font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.5; }
.b09-s96-sc-body b { color:#1A1A18; }
.b09-s96-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b09-s96-note.s96-neutral { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 13 · BAB 10 · UTXO Set dan State Bitcoin
============================================================ */

/* ============================================================
   PAGE 13 · BAB 10 · 10.1 SIMULATION (UTXO Set)
============================================================ */
.b10-s101-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s101-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b10-s101-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b10-s101-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b10-s101-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b10-s101-stat-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.b10-s101-stat { font-size:11px; padding:4px 10px; border-radius:99px; font-family:'Sora',sans-serif; }
.b10-s101-stat.count { background:#EEEDFE; color:#534AB7; }
.b10-s101-stat.size  { background:#EAF3DE; color:#27500A; }
.b10-s101-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b10-s101-grid { display:flex; flex-wrap:wrap; gap:6px; min-height:120px; padding:10px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); }
.b10-s101-utxo { display:flex; flex-direction:column; gap:3px; padding:8px 10px; border-radius:8px; border:0.5px solid rgba(124,58,237,0.15); transition:all 0.4s; font-family:'Courier Prime',monospace; }
.b10-s101-utxo.alive { background:#FAFAF8; }
.b10-s101-utxo.consuming { background:#FCEBEB; border-color:rgba(163,45,45,0.4); opacity:0.5; transform:scale(0.95); }
.b10-s101-utxo.new-utxo { background:#EAF3DE; border-color:rgba(59,109,17,0.4); animation:b10PopIn 0.4s ease; }
@keyframes b10PopIn { from{opacity:0;transform:scale(0.8);} to{opacity:1;transform:scale(1);} }
.b10-s101-utxo-id { font-size:9px; color:#52524C; }
.b10-s101-utxo-val { font-size:13px; font-weight:700; color:#534AB7; }
.b10-s101-utxo-owner { font-size:9px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b10-s101-utxo-badge { font-size:8px; padding:1px 5px; border-radius:99px; width:fit-content; font-family:'Sora',sans-serif; }
.b10-s101-utxo-badge.new { background:#EAF3DE; color:#27500A; }
.b10-s101-tx { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-top:8px; }
.b10-s101-tx-head { padding:8px 14px; font-size:11px; font-weight:500; background:#F4F4F0; color:#1A1A18; font-family:'Sora',sans-serif; }
.b10-s101-tx-body { padding:10px 14px; display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:center; }
.b10-s101-tx-col { display:flex; flex-direction:column; gap:4px; }
.b10-s101-tx-col-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b10-s101-tx-item { padding:5px 8px; border-radius:5px; font-size:10px; font-family:'Courier Prime',monospace; }
.b10-s101-tx-item.inp { background:#FCEBEB; color:#791F1F; }
.b10-s101-tx-item.out { background:#EAF3DE; color:#27500A; }
.b10-s101-tx-item.fee { background:#FAEEDA; color:#633806; }
.b10-s101-tx-arrow { font-size:18px; color:#52524C; text-align:center; }
.b10-s101-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; margin-top:8px; }
.b10-s101-note.idle-note   { background:#F4F4F0; color:#3A3A35; }
.b10-s101-note.active-note { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b10-s101-note.done-note   { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 13 · BAB 10 · 10.2 SIMULATION (UTXO Set Update)
============================================================ */
.b10-s102-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s102-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b10-s102-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b10-s102-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b10-s102-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b10-s102-stats { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.b10-s102-stat { font-size:11px; padding:4px 10px; border-radius:99px; font-family:'Sora',sans-serif; }
.b10-s102-stat.s102-before { background:#EEEDFE; color:#534AB7; }
.b10-s102-stat.s102-delta  { background:#FAEEDA; color:#633806; }
.b10-s102-stat.s102-after  { background:#EAF3DE; color:#27500A; }
.b10-s102-block { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b10-s102-block-head { padding:8px 14px; background:#534AB7; color:#fff; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; display:flex; justify-content:space-between; }
.b10-s102-block-body { padding:8px; display:flex; flex-direction:column; gap:4px; }
.b10-s102-tx { display:flex; align-items:center; gap:6px; padding:6px 8px; border-radius:6px; transition:all 0.3s; }
.b10-s102-tx.idle   { background:#F4F4F0; }
.b10-s102-tx.active { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.3); }
.b10-s102-tx.done   { background:#EAF3DE; border:0.5px solid rgba(59,109,17,0.2); }
.b10-s102-tx-badge { font-size:9px; padding:2px 6px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; }
.b10-s102-tx-badge.coinbase { background:#534AB7; color:#fff; }
.b10-s102-tx-badge.normal   { background:#F4F4F0; color:#3A3A35; }
.b10-s102-tx-badge.done     { background:#EAF3DE; color:#27500A; }
.b10-s102-tx-id  { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; flex:1; }
.b10-s102-tx-ops { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b10-s102-set-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b10-s102-set { display:flex; flex-wrap:wrap; gap:5px; min-height:80px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); margin-bottom:10px; }
.b10-s102-utxo { padding:5px 8px; border-radius:6px; font-size:10px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.12); line-height:1.4; transition:all 0.3s; }
.b10-s102-utxo.alive    { background:#FAFAF8; color:#534AB7; }
.b10-s102-utxo.removing { background:#FCEBEB; color:#791F1F; border-color:rgba(163,45,45,0.3); opacity:0.35; transform:scale(0.88); }
.b10-s102-utxo.new-u    { background:#EAF3DE; color:#27500A; border-color:rgba(59,109,17,0.3); animation:s102Pop 0.35s ease; }
.b10-s102-utxo.cb-u     { background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.3); animation:s102Pop 0.35s ease; }
@keyframes s102Pop { from{opacity:0;transform:scale(0.7);} to{opacity:1;transform:scale(1);} }
.b10-s102-log { display:flex; flex-direction:column; gap:3px; max-height:80px; overflow-y:auto; margin-bottom:10px; }
.b10-s102-log-item { font-size:10px; padding:3px 8px; border-radius:4px; font-family:'Sora',sans-serif; }
.b10-s102-log-item.rm  { background:#FCEBEB; color:#791F1F; }
.b10-s102-log-item.add { background:#EAF3DE; color:#27500A; }
.b10-s102-log-item.cb  { background:#EEEDFE; color:#3C3489; }
.b10-s102-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b10-s102-note.idle-note { background:#F4F4F0; color:#3A3A35; }
.b10-s102-note.run-note  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b10-s102-note.done-note { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 13 · BAB 10 · 10.3 SIMULATION (TX Verification)
============================================================ */
.b10-s103-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s103-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b10-s103-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b10-s103-tab.s103-act { background:#534AB7; color:#fff; }
.b10-s103-pane { display:none; flex-direction:column; gap:10px; }
.b10-s103-pane.show { display:flex; }
.b10-s103-tx-card { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.b10-s103-tx-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; background:#F4F4F0; color:#1A1A18; display:flex; justify-content:space-between; align-items:center; }
.b10-s103-tx-badge { font-size:9px; padding:2px 8px; border-radius:99px; font-family:'Sora',sans-serif; }
.b10-s103-tx-badge.s103-pending { background:#FAEEDA; color:#633806; }
.b10-s103-tx-badge.s103-valid   { background:#EAF3DE; color:#27500A; }
.b10-s103-tx-badge.s103-invalid { background:#FCEBEB; color:#791F1F; }
.b10-s103-tx-body { padding:10px 14px; display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:start; }
.b10-s103-tx-col { display:flex; flex-direction:column; gap:4px; }
.b10-s103-tx-col-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b10-s103-tx-item { padding:5px 8px; border-radius:5px; font-size:10px; font-family:'Courier Prime',monospace; transition:all 0.3s; }
.b10-s103-tx-item.s103-inp          { background:#EEEDFE; color:#534AB7; }
.b10-s103-tx-item.s103-inp-checking { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.3); }
.b10-s103-tx-item.s103-inp-ok       { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.3); }
.b10-s103-tx-item.s103-inp-fail     { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.3); }
.b10-s103-tx-item.s103-out  { background:#F4F4F0; color:#3A3A35; }
.b10-s103-tx-item.s103-fee  { background:#FAEEDA; color:#633806; }
.b10-s103-tx-arrow { font-size:18px; color:#52524C; text-align:center; padding-top:16px; }
.b10-s103-steps { display:flex; flex-direction:column; gap:6px; }
.b10-s103-step { display:flex; gap:10px; align-items:flex-start; padding:8px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; transition:all 0.3s; }
.b10-s103-step.s103-idle   { background:#F4F4F0; }
.b10-s103-step.s103-active { background:#EEEDFE; border-color:rgba(83,74,183,0.3); }
.b10-s103-step.s103-pass   { background:#EAF3DE; border-color:rgba(59,109,17,0.2); }
.b10-s103-step.s103-fail   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b10-s103-step-icon { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; font-family:'Sora',sans-serif; }
.b10-s103-step.s103-idle   .b10-s103-step-icon { background:#E0DED8; color:#3A3A35; }
.b10-s103-step.s103-active .b10-s103-step-icon { background:#534AB7; color:#fff; }
.b10-s103-step.s103-pass   .b10-s103-step-icon { background:#0F6E56; color:#fff; }
.b10-s103-step.s103-fail   .b10-s103-step-icon { background:#A32D2D; color:#fff; }
.b10-s103-step-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; flex:1; }
.b10-s103-step-sub  { font-size:10px; color:#52524C; margin-top:2px; }
.b10-s103-ctx { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; padding:4px 2px; }
.b10-s103-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b10-s103-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b10-s103-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b10-s103-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b10-s103-note.s103-idle { background:#F4F4F0; color:#3A3A35; }
.b10-s103-note.s103-run  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b10-s103-note.s103-pass { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b10-s103-note.s103-fail { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 13 · BAB 10 · 10.4 SIMULATION (UTXO Consolidation)
============================================================ */
.b10-s104-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s104-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b10-s104-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b10-s104-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b10-s104-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b10-s104-stat-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.b10-s104-stat { font-size:11px; padding:4px 10px; border-radius:99px; font-family:'Sora',sans-serif; }
.b10-s104-stat.s104-count { background:#EEEDFE; color:#534AB7; }
.b10-s104-stat.s104-total { background:#EAF3DE; color:#27500A; }
.b10-s104-stat.s104-dust  { background:#FAEEDA; color:#633806; }
.b10-s104-legend { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.b10-s104-leg { display:flex; align-items:center; gap:4px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b10-s104-leg-box { flex-shrink:0; }
.b10-s104-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b10-s104-panel { display:flex; flex-direction:column; gap:6px; }
.b10-s104-panel-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b10-s104-set { display:flex; flex-wrap:wrap; gap:4px; min-height:160px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); align-content:flex-start; }
.b10-s104-utxo { border-radius:5px; border:0.5px solid transparent; transition:all 0.35s; display:flex; align-items:center; justify-content:center; font-size:8px; font-family:'Courier Prime',monospace; font-weight:700; }
.b10-s104-utxo.large  { width:48px; height:48px; background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.25); }
.b10-s104-utxo.medium { width:34px; height:34px; background:#EAF3DE; color:#0F6E56; border-color:rgba(15,110,86,0.25); }
.b10-s104-utxo.small  { width:22px; height:22px; background:#FAEEDA; color:#854F0B; border-color:rgba(133,79,11,0.25); }
.b10-s104-utxo.dust   { width:14px; height:14px; background:#FCEBEB; color:#A32D2D; border-color:rgba(163,45,45,0.2); }
.b10-s104-utxo.consolidating { opacity:0.3; transform:scale(0.75); }
.b10-s104-utxo.merged { background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.4); animation:s104Pop 0.4s ease; }
@keyframes s104Pop { from{opacity:0;transform:scale(0.6);} to{opacity:1;transform:scale(1);} }
.b10-s104-chart-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b10-s104-bars { display:flex; align-items:flex-end; gap:3px; height:120px; padding:0 4px; }
.b10-s104-bar-col { display:flex; flex-direction:column; align-items:center; gap:2px; flex:1; }
.b10-s104-bar-fill { width:100%; border-radius:3px 3px 0 0; transition:all 0.4s ease; }
.b10-s104-bar-label { font-size:8px; color:#52524C; font-family:'Sora',sans-serif; text-align:center; }
.b10-s104-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b10-s104-note.s104-idle { background:#F4F4F0; color:#3A3A35; }
.b10-s104-note.s104-run  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b10-s104-note.s104-done { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 13 · BAB 10 · 10.5 SIMULATION (UTXO Privacy)
============================================================ */
.b10-s105-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s105-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b10-s105-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b10-s105-tab.s105-act { background:#534AB7; color:#fff; }
.b10-s105-pane { display:none; flex-direction:column; gap:10px; }
.b10-s105-pane.show { display:flex; }
.b10-s105-hint { font-size:11px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.b10-s105-graph { position:relative; height:220px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b10-s105-node { position:absolute; display:flex; flex-direction:column; align-items:center; gap:3px; transition:all 0.4s; }
.b10-s105-node-circle { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:600; font-family:'Courier Prime',monospace; border:2px solid transparent; transition:all 0.4s; }
.b10-s105-node-circle.unknown { background:#FAFAF8; color:#3A3A35; border-color:rgba(124,58,237,0.12); }
.b10-s105-node-circle.linked  { background:#FCEBEB; color:#791F1F; border-color:rgba(163,45,45,0.4); }
.b10-s105-node-circle.tx-node { background:#534AB7; color:#fff; border-color:#534AB7; }
.b10-s105-node-label { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; text-align:center; max-width:60px; }
.b10-s105-legend { display:flex; gap:10px; flex-wrap:wrap; }
.b10-s105-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b10-s105-leg-dot { width:10px; height:10px; border-radius:50%; border:1.5px solid transparent; }
.b10-s105-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b10-s105-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b10-s105-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b10-s105-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b10-s105-note.s105-idle { background:#F4F4F0; color:#3A3A35; }
.b10-s105-note.s105-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b10-s105-note.s105-warn { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b10-s105-addr-list { display:flex; flex-direction:column; gap:5px; }
.b10-s105-addr-section-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b10-s105-addr-item { display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; font-size:11px; font-family:'Courier Prime',monospace; transition:all 0.3s; }
.b10-s105-addr-item.s105-reused { background:#FCEBEB; border-color:rgba(163,45,45,0.3); color:#791F1F; }
.b10-s105-addr-item.s105-fresh  { background:#EAF3DE; border-color:rgba(59,109,17,0.2); color:#27500A; }
.b10-s105-addr-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; }
.b10-s105-addr-badge.s105-reused-badge { background:#A32D2D; color:#fff; }
.b10-s105-addr-badge.s105-fresh-badge  { background:#0F6E56; color:#fff; }
.b10-s105-addr-count { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-left:auto; }

/* ============================================================
   PAGE 13 · BAB 10 · 10.6 SIMULATION (Node Types)
============================================================ */
.b10-s106-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b10-s106-cards { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.b10-s106-card { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; cursor:pointer; transition:all 0.2s; }
.b10-s106-card:hover { border-color:rgba(124,58,237,0.3); }
.b10-s106-card.active { border-color:#534AB7; box-shadow:0 0 0 2px rgba(83,74,183,0.1); }
.b10-s106-card-head { padding:10px 14px; display:flex; align-items:center; gap:10px; }
.b10-s106-icon { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.b10-s106-icon.archival-icon { background:#EEEDFE; }
.b10-s106-icon.pruned-icon   { background:#FAEEDA; }
.b10-s106-icon.assume-icon   { background:#EAF3DE; }
.b10-s106-card-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b10-s106-card-sub   { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-top:2px; }
.b10-s106-chevron { margin-left:auto; font-size:12px; color:#52524C; transition:transform 0.2s; }
.b10-s106-card.active .b10-s106-chevron { transform:rotate(90deg); }
.b10-s106-card-body { display:none; padding:0 14px 12px; border-top:0.5px solid rgba(124,58,237,0.08); }
.b10-s106-card.active .b10-s106-card-body { display:block; }
.b10-s106-metrics { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.b10-s106-metric { display:flex; flex-direction:column; gap:3px; }
.b10-s106-metric-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b10-s106-metric-val { font-size:13px; font-weight:600; font-family:'Courier Prime',monospace; }
.b10-s106-metric-val.s106-good { color:#0F6E56; }
.b10-s106-metric-val.s106-warn { color:#854F0B; }
.b10-s106-metric-val.s106-bad  { color:#A32D2D; }
.b10-s106-metric-bar { height:6px; border-radius:99px; margin-top:2px; overflow:hidden; background:#EEEDFE; }
.b10-s106-metric-bar-fill { height:100%; border-radius:99px; }
.b10-s106-caps { margin-top:10px; display:flex; flex-direction:column; gap:4px; }
.b10-s106-caps-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b10-s106-cap { display:flex; align-items:flex-start; gap:6px; font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b10-s106-cap-icon { font-size:12px; width:16px; text-align:center; flex-shrink:0; margin-top:1px; }
.b10-s106-desc-box { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; margin-top:10px; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }
.b10-s106-warn-box { font-size:11px; color:#633806; font-family:'Sora',sans-serif; line-height:1.6; margin-top:8px; padding:8px 10px; background:#FAEEDA; border-radius:var(--border-radius-md); border:0.5px solid rgba(133,79,11,0.2); }
.b10-s106-table-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b10-s106-table { width:100%; border-collapse:collapse; font-size:11px; font-family:'Sora',sans-serif; margin-bottom:10px; }
.b10-s106-table th { padding:6px 8px; text-align:left; font-weight:500; color:#3A3A35; border-bottom:0.5px solid rgba(124,58,237,0.1); font-size:10px; }
.b10-s106-table td { padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
.b10-s106-table tr:last-child td { border-bottom:none; }
.b10-s106-good { color:#0F6E56; font-weight:500; }
.b10-s106-warn { color:#854F0B; font-weight:500; }
.b10-s106-bad  { color:#A32D2D; font-weight:500; }
.b10-s106-callout { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 14 · BAB 11 · Mining: Hardware, Pool, dan Ekonomi
============================================================ */

/* ============================================================
   PAGE 14 · BAB 11 · 11.1 SIMULATION (Then vs Now)
============================================================ */
.b11-s111-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s111-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b11-s111-col { display:flex; flex-direction:column; gap:8px; }
.b11-s111-col-head { padding:10px 14px; border-radius:var(--border-radius-md); text-align:center; }
.b11-s111-col-head.s111-then { background:#52524C; color:#fff; }
.b11-s111-col-head.s111-now  { background:#534AB7; color:#fff; }
.b11-s111-col-head-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; }
.b11-s111-col-head-sub { font-size:10px; opacity:0.85; font-family:'Sora',sans-serif; margin-top:2px; }
.b11-s111-stats { display:flex; flex-direction:column; gap:5px; }
.b11-s111-stat { display:flex; flex-direction:column; gap:2px; padding:8px 10px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); }
.b11-s111-stat-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s111-stat-val { font-size:13px; font-weight:700; font-family:'Courier Prime',monospace; }
.b11-s111-stat-val.s111-then-val { color:#52524C; }
.b11-s111-stat-val.s111-now-val  { color:#534AB7; }
.b11-s111-stat-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.4; }
.b11-s111-caps { display:flex; flex-direction:column; gap:4px; }
.b11-s111-caps-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s111-cap { display:flex; align-items:flex-start; gap:6px; font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b11-s111-cap-icon { flex-shrink:0; font-size:11px; margin-top:1px; }
.b11-s111-compare { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b11-s111-compare-head { padding:8px 14px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; background:#F4F4F0; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b11-s111-compare-body { padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
.b11-s111-bar-row { display:flex; align-items:center; gap:8px; }
.b11-s111-bar-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; min-width:80px; flex-shrink:0; }
.b11-s111-bar-wrap { flex:1; height:18px; background:#F4F4F0; border-radius:4px; overflow:hidden; }
.b11-s111-bar-fill { height:100%; border-radius:4px; display:flex; align-items:center; padding-left:6px; font-size:9px; font-family:'Courier Prime',monospace; color:#fff; font-weight:600; }
.b11-s111-bar-note { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; min-width:70px; text-align:right; }
.b11-s111-factor { padding:8px 12px; border-radius:var(--border-radius-md); background:#EEEDFE; color:#3C3489; font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; text-align:center; }
.b11-s111-factor b { font-family:'Courier Prime',monospace; font-size:13px; }
.b11-s111-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 14 · BAB 11 · 11.2 SIMULATION (Hardware Evolution)
============================================================ */
.b11-s112-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s112-timeline { display:flex; gap:0; position:relative; margin-bottom:14px; }
.b11-s112-timeline::before { content:''; position:absolute; top:20px; left:0; right:0; height:2px; background:rgba(124,58,237,0.12); z-index:0; }
.b11-s112-era { flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; position:relative; z-index:1; padding:0 4px; }
.b11-s112-era-dot { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px; border:2px solid rgba(124,58,237,0.12); transition:all 0.2s; background:#F4F4F0; }
.b11-s112-era.active .b11-s112-era-dot { border-color:#534AB7; background:#EEEDFE; transform:scale(1.1); }
.b11-s112-era-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#52524C; text-align:center; transition:color 0.2s; }
.b11-s112-era.active .b11-s112-era-label { color:#534AB7; }
.b11-s112-era-year { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; text-align:center; }
.b11-s112-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:14px; }
.b11-s112-detail-head { padding:10px 14px; display:flex; align-items:center; gap:10px; }
.b11-s112-detail-icon { font-size:24px; }
.b11-s112-detail-title { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; }
.b11-s112-detail-sub { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-top:2px; }
.b11-s112-detail-body { padding:10px 14px; display:flex; flex-direction:column; gap:10px; border-top:0.5px solid rgba(124,58,237,0.08); }
.b11-s112-metrics { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b11-s112-metric { display:flex; flex-direction:column; gap:2px; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }
.b11-s112-metric-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s112-metric-val { font-size:12px; font-weight:700; font-family:'Courier Prime',monospace; }
.b11-s112-era-desc { font-size:11px; color:#3A3A35; line-height:1.6; font-family:'Sora',sans-serif; }
.b11-s112-chart { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b11-s112-chart-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b11-s112-chart-sub { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s112-bars { display:flex; flex-direction:column; gap:6px; }
.b11-s112-bar-row { display:flex; align-items:center; gap:8px; }
.b11-s112-bar-era { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; min-width:40px; }
.b11-s112-bar-wrap { flex:1; height:20px; background:#F4F4F0; border-radius:4px; overflow:hidden; }
.b11-s112-bar-fill { height:100%; border-radius:4px; display:flex; align-items:center; padding-left:6px; font-size:9px; font-family:'Courier Prime',monospace; color:#fff; font-weight:600; }
.b11-s112-bar-info { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; min-width:80px; text-align:right; }
.b11-s112-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 14 · BAB 11 · 11.3 SIMULATION (Mining Pool vs Solo)
============================================================ */
.b11-s113-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s113-top { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.b11-s113-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b11-s113-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b11-s113-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b11-s113-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b11-s113-col { display:flex; flex-direction:column; gap:8px; }
.b11-s113-col-head { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-weight:500; font-family:'Sora',sans-serif; text-align:center; }
.b11-s113-col-head.s113-solo { background:#854F0B; color:#FAEEDA; }
.b11-s113-col-head.s113-pool { background:#0F6E56; color:#fff; }
.b11-s113-chart-wrap { background:#F4F4F0; border-radius:var(--border-radius-md); padding:8px; border:0.5px solid rgba(124,58,237,0.1); }
.b11-s113-chart-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b11-s113-cv { width:100%; display:block; border-radius:4px; }
.b11-s113-stats { display:flex; flex-direction:column; gap:5px; }
.b11-s113-stat { display:flex; justify-content:space-between; align-items:center; padding:5px 8px; background:#F4F4F0; border-radius:6px; }
.b11-s113-stat-label { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b11-s113-stat-val { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; color:#1A1A18; }
.b11-s113-stat-val.s113-good { color:#0F6E56; }
.b11-s113-stat-val.s113-warn { color:#854F0B; }
.b11-s113-stat-val.s113-bad  { color:#A32D2D; }
.b11-s113-shares { display:flex; flex-wrap:wrap; gap:3px; padding:8px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.1); min-height:60px; align-content:flex-start; margin-bottom:6px; }
.b11-s113-share { width:12px; height:12px; border-radius:2px; transition:all 0.2s; }
.b11-s113-share.normal  { background:rgba(83,74,183,0.25); }
.b11-s113-share.winning { background:#0F6E56; box-shadow:0 0 4px rgba(15,110,86,0.6); }
.b11-s113-share.mine    { background:#534AB7; }
.b11-s113-legend { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.b11-s113-leg { display:flex; align-items:center; gap:4px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b11-s113-leg-box { width:12px; height:12px; border-radius:2px; flex-shrink:0; }
.b11-s113-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b11-s113-note.s113-idle { background:#F4F4F0; color:#3A3A35; }
.b11-s113-note.s113-run  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b11-s113-note.s113-done { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 14 · BAB 11 · 11.4 SIMULATION (Mining Profitability)
============================================================ */
.b11-s114-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s114-preset-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.b11-s114-preset { padding:4px 10px; font-size:10px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.15); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; }
.b11-s114-preset:hover { border-color:#534AB7; color:#534AB7; }
.b11-s114-preset.active { background:#534AB7; color:#fff; border-color:#534AB7; }
.b11-s114-inputs { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b11-s114-field { display:flex; flex-direction:column; gap:5px; }
.b11-s114-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b11-s114-label-sub { font-size:10px; color:#52524C; font-weight:400; }
.b11-s114-input { padding:8px 12px; font-size:13px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-md); background:#F4F4F0; color:#1A1A18; width:100%; }
.b11-s114-input:focus { outline:none; border-color:#534AB7; }
.b11-s114-result { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b11-s114-result-head { padding:10px 14px; display:flex; align-items:center; justify-content:space-between; }
.b11-s114-result-head-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b11-s114-profit-val { font-size:28px; font-weight:700; font-family:'Courier Prime',monospace; }
.b11-s114-profit-val.s114-profit    { color:#0F6E56; }
.b11-s114-profit-val.s114-loss      { color:#A32D2D; }
.b11-s114-profit-val.s114-breakeven { color:#854F0B; }
.b11-s114-result-body { padding:10px 14px; display:flex; flex-direction:column; gap:8px; border-top:0.5px solid rgba(124,58,237,0.08); }
.b11-s114-row { display:flex; justify-content:space-between; align-items:center; }
.b11-s114-row-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b11-s114-row-val { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; color:#1A1A18; }
.b11-s114-row-val.s114-green { color:#0F6E56; }
.b11-s114-row-val.s114-red   { color:#A32D2D; }
.b11-s114-row-val.s114-amber { color:#854F0B; }
.b11-s114-margin-wrap { display:flex; flex-direction:column; gap:4px; }
.b11-s114-margin-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s114-margin-track { height:10px; border-radius:99px; overflow:hidden; background:#EEEDFE; }
.b11-s114-margin-fill { height:100%; border-radius:99px; transition:width 0.4s ease; }
.b11-s114-chart-wrap { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b11-s114-chart-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s114-cv { width:100%; display:block; border-radius:var(--border-radius-md); }
.b11-s114-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b11-s114-note.s114-profit    { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b11-s114-note.s114-loss      { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b11-s114-note.s114-breakeven { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 14 · BAB 11 · 11.5 SIMULATION (Mining Energy)
============================================================ */
.b11-s115-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s115-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b11-s115-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b11-s115-tab.s115-act { background:#534AB7; color:#fff; }
.b11-s115-pane { display:none; flex-direction:column; gap:10px; }
.b11-s115-pane.show { display:flex; }
.b11-s115-cards { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b11-s115-card { padding:10px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); display:flex; flex-direction:column; gap:4px; }
.b11-s115-card-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b11-s115-card-val { font-size:16px; font-weight:700; font-family:'Courier Prime',monospace; }
.b11-s115-card-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.4; }
.b11-s115-donut-wrap { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:center; }
.b11-s115-donut { display:block; width:100%; }
.b11-s115-donut-legend { display:flex; flex-direction:column; gap:6px; }
.b11-s115-donut-leg { display:flex; align-items:center; gap:8px; }
.b11-s115-donut-leg-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b11-s115-donut-leg-label { font-size:11px; color:#1A1A18; font-family:'Sora',sans-serif; flex:1; }
.b11-s115-donut-leg-pct { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; }
.b11-s115-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b11-s115-bars { display:flex; flex-direction:column; gap:8px; }
.b11-s115-bar-row { display:flex; align-items:center; gap:8px; }
.b11-s115-bar-label { font-size:11px; color:#1A1A18; font-family:'Sora',sans-serif; min-width:130px; flex-shrink:0; }
.b11-s115-bar-track { flex:1; height:22px; background:#F4F4F0; border-radius:4px; overflow:hidden; }
.b11-s115-bar-fill { height:100%; border-radius:4px; display:flex; align-items:center; padding-left:8px; font-size:10px; font-family:'Courier Prime',monospace; color:#fff; font-weight:600; }
.b11-s115-bar-note { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; min-width:80px; text-align:right; }
.b11-s115-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b11-s115-note.s115-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b11-s115-note.s115-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b11-s115-disclaimer { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; line-height:1.5; padding:6px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }

/* ============================================================
   PAGE 14 · BAB 11 · 11.6 SIMULATION (Hash Rate Distribution)
============================================================ */
.b11-s116-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b11-s116-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b11-s116-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b11-s116-tab.s116-act { background:#534AB7; color:#fff; }
.b11-s116-pane { display:none; flex-direction:column; gap:10px; }
.b11-s116-pane.show { display:flex; }
.b11-s116-chart-wrap { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:center; }
.b11-s116-cv { display:block; width:100%; }
.b11-s116-legend { display:flex; flex-direction:column; gap:5px; }
.b11-s116-leg { display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:6px; }
.b11-s116-leg-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b11-s116-leg-label { font-size:11px; color:#1A1A18; font-family:'Sora',sans-serif; flex:1; }
.b11-s116-leg-pct { font-size:11px; font-family:'Courier Prime',monospace; font-weight:600; }
.b11-s116-geo-bars { display:flex; flex-direction:column; gap:6px; }
.b11-s116-geo-row { display:flex; align-items:center; gap:8px; }
.b11-s116-geo-flag { font-size:14px; flex-shrink:0; width:22px; text-align:center; }
.b11-s116-geo-label { font-size:11px; color:#1A1A18; font-family:'Sora',sans-serif; min-width:130px; flex-shrink:0; }
.b11-s116-geo-track { flex:1; height:18px; background:#F4F4F0; border-radius:4px; overflow:hidden; }
.b11-s116-geo-fill { height:100%; border-radius:4px; display:flex; align-items:center; padding-left:6px; font-size:9px; font-family:'Courier Prime',monospace; color:#fff; font-weight:600; }
.b11-s116-geo-pct { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; min-width:36px; text-align:right; }
.b11-s116-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b11-s116-note.s116-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b11-s116-note.s116-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b11-s116-disclaimer { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; line-height:1.5; padding:6px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }

/* ============================================================
   PAGE 15 · BAB 12 · Privasi On-chain: CoinJoin dan Teknik Lainnya
============================================================ */

/* ============================================================
   PAGE 15 · BAB 12 · 12.1 SIMULATION (Blockchain Analysis)
============================================================ */
.b12-s121-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s121-heur { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b12-s121-heur-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b12-s121-heur-btns { display:flex; gap:6px; flex-wrap:wrap; }
.b12-s121-heur-btn { padding:6px 12px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.15); background:transparent; color:#3A3A35; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b12-s121-heur-btn.s121-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b12-s121-graph { position:relative; height:240px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; margin-bottom:10px; }
.b12-s121-node { position:absolute; display:flex; flex-direction:column; align-items:center; gap:3px; transition:all 0.35s; }
.b12-s121-node-circle { width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:600; font-family:'Courier Prime',monospace; border:2px solid transparent; transition:all 0.35s; }
.b12-s121-node-circle.addr    { background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.2); }
.b12-s121-node-circle.tx      { background:#534AB7; color:#fff; border-color:#534AB7; }
.b12-s121-node-circle.flagged { background:#FCEBEB; color:#791F1F; border-color:rgba(163,45,45,0.5); }
.b12-s121-node-circle.linked  { background:#FAEEDA; color:#633806; border-color:rgba(133,79,11,0.4); }
.b12-s121-node-label { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; text-align:center; max-width:60px; line-height:1.3; }
.b12-s121-findings { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b12-s121-finding { display:flex; gap:10px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.25); }
.b12-s121-finding-icon { font-size:14px; flex-shrink:0; margin-top:1px; }
.b12-s121-finding-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; flex:1; }
.b12-s121-finding-label { font-weight:500; color:#791F1F; font-size:10px; margin-bottom:2px; }
.b12-s121-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b12-s121-note.s121-idle { background:#F4F4F0; color:#3A3A35; }
.b12-s121-note.s121-warn { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 15 · BAB 12 · 12.2 SIMULATION (CoinJoin)
============================================================ */
.b12-s122-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s122-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b12-s122-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b12-s122-tab.s122-act { background:#534AB7; color:#fff; }
.b12-s122-pane { display:none; flex-direction:column; gap:10px; }
.b12-s122-pane.show { display:flex; }
.b12-s122-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b12-s122-txs { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b12-s122-tx { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s122-tx-head { padding:7px 12px; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b12-s122-tx-head.s122-alice { background:#EEEDFE; color:#534AB7; }
.b12-s122-tx-head.s122-bob   { background:#EAF3DE; color:#0F6E56; }
.b12-s122-tx-body { padding:8px 12px; display:flex; flex-direction:column; gap:4px; }
.b12-s122-tx-row { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.b12-s122-tx-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s122-tx-val { font-size:11px; font-family:'Courier Prime',monospace; font-weight:500; }
.b12-s122-tx-val.s122-inp { color:#534AB7; }
.b12-s122-tx-val.s122-out { color:#0F6E56; }
.b12-s122-tx-val.s122-fee { color:#854F0B; }
.b12-s122-tx-divider { height:0.5px; background:rgba(124,58,237,0.08); margin:2px 0; }
.b12-s122-combined { border:0.5px solid #534AB7; border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s122-combined-head { padding:8px 14px; background:#534AB7; color:#fff; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; display:flex; justify-content:space-between; align-items:center; }
.b12-s122-combined-badge { font-size:9px; padding:2px 8px; border-radius:99px; background:rgba(255,255,255,0.2); font-family:'Sora',sans-serif; }
.b12-s122-combined-body { padding:10px 14px; display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:start; }
.b12-s122-combined-col { display:flex; flex-direction:column; gap:4px; }
.b12-s122-combined-col-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s122-combined-item { padding:5px 8px; border-radius:5px; font-size:10px; font-family:'Courier Prime',monospace; }
.b12-s122-combined-item.s122-inp-a { background:#EEEDFE; color:#534AB7; }
.b12-s122-combined-item.s122-inp-b { background:#EAF3DE; color:#0F6E56; }
.b12-s122-combined-item.s122-out-eq { background:#F4F4F0; color:#3A3A35; }
.b12-s122-combined-arrow { font-size:16px; color:#52524C; text-align:center; padding-top:18px; }
.b12-s122-analysis { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s122-analysis-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b12-s122-analysis-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b12-s122-analysis-row { font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b12-s122-analysis-row.s122-fail { color:#791F1F; }
.b12-s122-analysis-row.s122-pass { color:#27500A; }
.b12-s122-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b12-s122-note.s122-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b12-s122-note.s122-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 15 · BAB 12 · 12.3 SIMULATION (Payjoin)
============================================================ */
.b12-s123-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s123-legend { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.b12-s123-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b12-s123-leg-dot { width:10px; height:10px; border-radius:3px; flex-shrink:0; }
.b12-s123-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b12-s123-col { display:flex; flex-direction:column; gap:8px; }
.b12-s123-col-head { padding:9px 12px; border-radius:var(--border-radius-md); text-align:center; }
.b12-s123-col-head.s123-normal  { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.12); }
.b12-s123-col-head.s123-payjoin { background:#534AB7; color:#fff; }
.b12-s123-col-head-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; }
.b12-s123-col-head-sub { font-size:10px; opacity:0.75; font-family:'Sora',sans-serif; margin-top:2px; }
.b12-s123-tx { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s123-tx-section { padding:8px 12px; }
.b12-s123-tx-section-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:5px; }
.b12-s123-tx-item { padding:5px 8px; border-radius:5px; font-size:10px; font-family:'Courier Prime',monospace; margin-bottom:3px; }
.b12-s123-tx-item.s123-inp-a1  { background:#EEEDFE; color:#534AB7; }
.b12-s123-tx-item.s123-inp-a2  { background:#E8E6FD; color:#3C3489; }
.b12-s123-tx-item.s123-inp-b   { background:#EAF3DE; color:#0F6E56; }
.b12-s123-tx-item.s123-out     { background:#F4F4F0; color:#3A3A35; }
.b12-s123-tx-item.s123-out-change { background:#FAEEDA; color:#854F0B; }
.b12-s123-tx-divider { height:0.5px; background:rgba(124,58,237,0.08); }
.b12-s123-tx-owner { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; padding:3px 12px 6px; font-style:italic; }
.b12-s123-analyst { border:0.5px solid transparent; border-radius:var(--border-radius-md); padding:8px 12px; display:flex; flex-direction:column; gap:4px; }
.b12-s123-analyst.s123-correct { background:#EAF3DE; border-color:rgba(59,109,17,0.2); }
.b12-s123-analyst.s123-wrong   { background:#FCEBEB; border-color:rgba(163,45,45,0.25); }
.b12-s123-analyst-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b12-s123-analyst.s123-correct .b12-s123-analyst-label { color:#27500A; }
.b12-s123-analyst.s123-wrong   .b12-s123-analyst-label { color:#791F1F; }
.b12-s123-analyst-text { font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; color:#1A1A18; }
.b12-s123-btn-wrap { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.b12-s123-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b12-s123-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b12-s123-verdict { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.b12-s123-verdict-card { padding:10px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b12-s123-verdict-card.s123-v-correct { background:#EAF3DE; border-color:rgba(59,109,17,0.2); }
.b12-s123-verdict-card.s123-v-wrong   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b12-s123-verdict-icon { font-size:18px; }
.b12-s123-verdict-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b12-s123-verdict-card.s123-v-correct .b12-s123-verdict-label { color:#27500A; }
.b12-s123-verdict-card.s123-v-wrong   .b12-s123-verdict-label { color:#791F1F; }
.b12-s123-verdict-text { font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; color:#1A1A18; }
.b12-s123-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b12-s123-note.s123-idle { background:#F4F4F0; color:#3A3A35; }
.b12-s123-note.s123-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 15 · BAB 12 · 12.4 SIMULATION (Silent Payments)
============================================================ */
.b12-s124-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s124-static { border:1.5px solid #534AB7; border-radius:var(--border-radius-lg); padding:10px 14px; background:#EEEDFE; margin-bottom:12px; display:flex; flex-direction:column; gap:4px; }
.b12-s124-static-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b12-s124-static-addr { font-size:11px; font-family:'Courier Prime',monospace; color:#3C3489; word-break:break-all; }
.b12-s124-static-sub { font-size:10px; color:#534AB7; font-family:'Sora',sans-serif; opacity:0.8; }
.b12-s124-flow-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b12-s124-senders { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:12px; }
.b12-s124-sender { display:flex; flex-direction:column; gap:6px; align-items:center; }
.b12-s124-sender-box { width:100%; padding:7px 10px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b12-s124-sender-box.s124-alice { background:#EEEDFE; color:#534AB7; border:0.5px solid rgba(83,74,183,0.3); }
.b12-s124-sender-box.s124-bob   { background:#EAF3DE; color:#0F6E56; border:0.5px solid rgba(15,110,86,0.3); }
.b12-s124-sender-box.s124-carol { background:#FAEEDA; color:#854F0B; border:0.5px solid rgba(133,79,11,0.3); }
.b12-s124-sender-arrow { font-size:14px; color:#52524C; text-align:center; }
.b12-s124-sender-result { width:100%; padding:6px 8px; border-radius:var(--border-radius-md); font-size:9px; font-family:'Courier Prime',monospace; text-align:center; opacity:0; transition:all 0.5s; border:0.5px solid transparent; }
.b12-s124-sender-result.s124-alice { background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.2); }
.b12-s124-sender-result.s124-bob   { background:#EAF3DE; color:#0F6E56; border-color:rgba(15,110,86,0.2); }
.b12-s124-sender-result.s124-carol { background:#FAEEDA; color:#854F0B; border-color:rgba(133,79,11,0.2); }
.b12-s124-sender-result.show { opacity:1; }
.b12-s124-sender-result-label { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b12-s124-blockchain { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; opacity:0; transition:all 0.5s; margin-bottom:10px; }
.b12-s124-blockchain.show { opacity:1; }
.b12-s124-blockchain-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b12-s124-blockchain-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b12-s124-chain-item { padding:6px 10px; border-radius:var(--border-radius-md); font-size:10px; font-family:'Courier Prime',monospace; border:0.5px solid rgba(124,58,237,0.1); background:#FAFAF8; opacity:0; transition:all 0.5s; }
.b12-s124-chain-item.show { opacity:1; }
.b12-s124-chain-item-label { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b12-s124-chain-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; background:#F4F4F0; color:#52524C; margin-left:6px; }
.b12-s124-link-note { font-size:10px; color:#791F1F; font-family:'Sora',sans-serif; padding:6px 10px; background:#FCEBEB; border-radius:var(--border-radius-md); border:0.5px solid rgba(163,45,45,0.2); opacity:0; transition:all 0.5s; }
.b12-s124-link-note.show { opacity:1; }
.b12-s124-scan { border:0.5px solid rgba(15,110,86,0.2); border-radius:var(--border-radius-lg); overflow:hidden; opacity:0; transition:all 0.5s; margin-bottom:10px; }
.b12-s124-scan.show { opacity:1; }
.b12-s124-scan-head { padding:8px 14px; background:#EAF3DE; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#0F6E56; }
.b12-s124-scan-body { padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.b12-s124-scan-item { padding:6px 10px; border-radius:var(--border-radius-md); font-size:10px; font-family:'Courier Prime',monospace; background:#F4F4F0; border:0.5px solid rgba(15,110,86,0.2); opacity:0; transition:all 0.4s; }
.b12-s124-scan-item.show { opacity:1; }
.b12-s124-scan-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; background:#0F6E56; color:#fff; margin-left:6px; }
.b12-s124-btn-wrap { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.b12-s124-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b12-s124-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b12-s124-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b12-s124-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b12-s124-note.s124-idle { background:#F4F4F0; color:#3A3A35; }
.b12-s124-note.s124-run  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b12-s124-note.s124-done { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 15 · BAB 12 · 12.5 SIMULATION (Lightning Privacy)
============================================================ */
.b12-s125-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s125-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b12-s125-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b12-s125-tab.s125-act { background:#534AB7; color:#fff; }
.b12-s125-pane { display:none; flex-direction:column; gap:10px; }
.b12-s125-pane.show { display:flex; }
.b12-s125-scenario-label { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b12-s125-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b12-s125-col { display:flex; flex-direction:column; gap:6px; }
.b12-s125-col-head { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; }
.b12-s125-col-head.s125-onchain   { background:#FCEBEB; color:#791F1F; }
.b12-s125-col-head.s125-lightning { background:#EAF3DE; color:#0F6E56; }
.b12-s125-col-head-sub { font-size:9px; font-weight:400; opacity:0.8; margin-top:2px; }
.b12-s125-ledger { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s125-ledger-head { padding:6px 10px; background:#F4F4F0; font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b12-s125-ledger-body { padding:6px 10px; display:flex; flex-direction:column; gap:3px; min-height:120px; }
.b12-s125-tx-row { padding:4px 6px; border-radius:4px; font-size:10px; font-family:'Courier Prime',monospace; opacity:0; transition:all 0.3s; display:flex; align-items:center; gap:6px; }
.b12-s125-tx-row.visible { opacity:1; }
.b12-s125-tx-row.s125-pub     { background:#FCEBEB; color:#791F1F; }
.b12-s125-tx-row.s125-priv    { background:#EAF3DE; color:#0F6E56; }
.b12-s125-tx-row.s125-neutral { background:#F4F4F0; color:#3A3A35; }
.b12-s125-tx-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.b12-s125-tx-dot.s125-pub     { background:#A32D2D; }
.b12-s125-tx-dot.s125-priv    { background:#0F6E56; }
.b12-s125-tx-dot.s125-neutral { background:#52524C; }
.b12-s125-btn-wrap { display:flex; gap:8px; flex-wrap:wrap; }
.b12-s125-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b12-s125-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b12-s125-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b12-s125-summary { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b12-s125-summary-card { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b12-s125-summary-card.s125-bad  { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b12-s125-summary-card.s125-good { background:#EAF3DE; border:0.5px solid rgba(59,109,17,0.2); }
.b12-s125-summary-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b12-s125-summary-card.s125-bad  .b12-s125-summary-label { color:#791F1F; }
.b12-s125-summary-card.s125-good .b12-s125-summary-label { color:#27500A; }
.b12-s125-summary-val { font-size:20px; font-weight:700; font-family:'Courier Prime',monospace; }
.b12-s125-summary-card.s125-bad  .b12-s125-summary-val { color:#A32D2D; }
.b12-s125-summary-card.s125-good .b12-s125-summary-val { color:#0F6E56; }
.b12-s125-summary-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b12-s125-nodes { display:flex; align-items:center; justify-content:space-between; padding:16px 8px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); }
.b12-s125-node { display:flex; flex-direction:column; align-items:center; gap:5px; }
.b12-s125-node-circle { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; border:2px solid transparent; }
.b12-s125-node-circle.s125-sender   { background:#EEEDFE; color:#534AB7; border-color:rgba(83,74,183,0.3); }
.b12-s125-node-circle.s125-relay    { background:#F4F4F0; color:#3A3A35; border-color:rgba(160,160,152,0.3); }
.b12-s125-node-circle.s125-receiver { background:#EAF3DE; color:#0F6E56; border-color:rgba(15,110,86,0.3); }
.b12-s125-node-label { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s125-node-knows { font-size:9px; font-family:'Sora',sans-serif; text-align:center; line-height:1.3; max-width:60px; min-height:28px; }
.b12-s125-node-knows.s125-good { color:#0F6E56; }
.b12-s125-node-knows.s125-warn { color:#854F0B; }
.b12-s125-arrow-wrap { display:flex; align-items:center; flex:1; justify-content:center; }
.b12-s125-arrow-line { height:2px; flex:1; background:rgba(124,58,237,0.15); }
.b12-s125-arrow-head { font-size:12px; color:rgba(124,58,237,0.3); }
.b12-s125-knows-table { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s125-knows-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b12-s125-knows-body { padding:0; }
.b12-s125-knows-row { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; border-bottom:0.5px solid rgba(124,58,237,0.06); padding:6px 14px; gap:4px; font-size:11px; font-family:'Sora',sans-serif; }
.b12-s125-knows-row:last-child { border-bottom:none; }
.b12-s125-knows-row.s125-header { font-size:10px; font-weight:500; color:#52524C; background:#FAFAF8; }
.b12-s125-knows-cell { color:#1A1A18; }
.b12-s125-knows-cell.s125-yes { color:#0F6E56; font-weight:500; }
.b12-s125-knows-cell.s125-no  { color:#A32D2D; font-weight:500; }
.b12-s125-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b12-s125-note.s125-idle { background:#F4F4F0; color:#3A3A35; }
.b12-s125-note.s125-run  { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b12-s125-note.s125-done { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 15 · BAB 12 · 12.6 SIMULATION (Threat Model)
============================================================ */
.b12-s126-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b12-s126-profiles { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.b12-s126-profile { padding:10px 12px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; transition:all 0.2s; background:#F4F4F0; }
.b12-s126-profile:hover { border-color:rgba(124,58,237,0.3); }
.b12-s126-profile.active { border-color:#534AB7; background:#EEEDFE; }
.b12-s126-profile-icon { font-size:20px; margin-bottom:5px; }
.b12-s126-profile-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b12-s126-profile-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:2px; line-height:1.4; }
.b12-s126-detail { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.b12-s126-detail-head { padding:10px 14px; display:flex; align-items:center; gap:10px; }
.b12-s126-detail-icon { font-size:24px; }
.b12-s126-detail-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b12-s126-detail-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:2px; }
.b12-s126-detail-body { padding:10px 14px; border-top:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:10px; }
.b12-s126-threat { display:flex; flex-direction:column; gap:4px; }
.b12-s126-threat-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s126-threat-bar { height:8px; border-radius:99px; overflow:hidden; background:#F4F4F0; }
.b12-s126-threat-fill { height:100%; border-radius:99px; transition:width 0.4s ease; }
.b12-s126-recs { display:flex; flex-direction:column; gap:5px; }
.b12-s126-recs-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s126-rec { display:flex; align-items:flex-start; gap:8px; padding:7px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b12-s126-rec.must   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b12-s126-rec.should { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b12-s126-rec.nice   { background:#EAF3DE; border-color:rgba(59,109,17,0.15); }
.b12-s126-rec-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; margin-top:1px; }
.b12-s126-rec.must   .b12-s126-rec-badge { background:#A32D2D; color:#fff; }
.b12-s126-rec.should .b12-s126-rec-badge { background:#854F0B; color:#fff; }
.b12-s126-rec.nice   .b12-s126-rec-badge { background:#0F6E56; color:#fff; }
.b12-s126-rec-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; flex:1; }
.b12-s126-avoid { display:flex; flex-direction:column; gap:4px; }
.b12-s126-avoid-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b12-s126-avoid-item { display:flex; align-items:flex-start; gap:6px; font-size:11px; font-family:'Sora',sans-serif; color:#791F1F; line-height:1.4; }

/* ============================================================
   PAGE 16 · BAB 13 · Soft Fork: Sejarah, Proses, dan Governance
============================================================ */

/* ============================================================
   PAGE 16 · BAB 13 · 13.1 SIMULATION (Fork Viz)
============================================================ */
.b13-s131-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s131-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b13-s131-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b13-s131-tab.s131-act { background:#534AB7; color:#fff; }
.b13-s131-pane { display:none; flex-direction:column; gap:10px; }
.b13-s131-pane.show { display:flex; }
.b13-s131-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b13-s131-canvas { width:100%; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b13-s131-canvas canvas { display:block; width:100%; }
.b13-s131-legend { display:flex; gap:8px; flex-wrap:wrap; }
.b13-s131-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b13-s131-leg-box { width:13px; height:13px; border-radius:3px; flex-shrink:0; }
.b13-s131-callout { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b13-s131-callout.s131-red { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b13-s131-callout.s131-grn { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b13-s131-nodes { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b13-s131-node-card { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b13-s131-node-card.s131-a { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b13-s131-node-card.s131-b { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b13-s131-node-head { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; }
.b13-s131-node-card.s131-a .b13-s131-node-head { color:#534AB7; }
.b13-s131-node-card.s131-b .b13-s131-node-head { color:#854F0B; }
.b13-s131-node-body { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b13-s131-badge { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; padding:2px 8px; border-radius:99px; display:inline-block; margin-top:2px; }
.b13-s131-badge.s131-split { background:#FCEBEB; color:#791F1F; }
.b13-s131-badge.s131-win   { background:#EAF3DE; color:#27500A; }
.b13-s131-badge.s131-lose  { background:#FAEEDA; color:#633806; }
.b13-s131-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b13-s131-note.s131-warn { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b13-s131-note.s131-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 16 · BAB 13 · 13.2 SIMULATION (BIP Lifecycle)
============================================================ */
.b13-s132-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s132-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b13-s132-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b13-s132-tab.s132-act { background:#534AB7; color:#fff; }
.b13-s132-pane { display:none; flex-direction:column; gap:10px; }
.b13-s132-pane.show { display:flex; }
.b13-s132-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b13-s132-stages { display:flex; align-items:flex-start; gap:0; padding-bottom:4px; }
.b13-s132-stage { display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; min-width:64px; }
.b13-s132-stage-dot { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; border:2px solid transparent; flex-shrink:0; }
.b13-s132-stage-dot.s132-draft   { background:#F4F4F0; border-color:rgba(124,58,237,0.2); }
.b13-s132-stage-dot.s132-discuss { background:#FAEEDA; border-color:rgba(133,79,11,0.3); }
.b13-s132-stage-dot.s132-review  { background:#EEEDFE; border-color:rgba(83,74,183,0.3); }
.b13-s132-stage-dot.s132-final   { background:#EAF3DE; border-color:rgba(15,110,86,0.3); }
.b13-s132-stage-dot.s132-reject  { background:#FCEBEB; border-color:rgba(163,45,45,0.3); }
.b13-s132-stage-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; text-align:center; }
.b13-s132-stage-sub   { font-size:9px; color:#52524C; font-family:'Sora',sans-serif; text-align:center; line-height:1.3; max-width:70px; }
.b13-s132-stage-conn  { flex:1; height:2px; background:rgba(124,58,237,0.15); margin-top:17px; flex-shrink:0; }
.b13-s132-stage-conn.s132-split { background:linear-gradient(to right,rgba(124,58,237,0.15),transparent); }
.b13-s132-bips-label { font-size:11px; font-weight:500; color:#1A1A18; font-family:'Sora',sans-serif; }
.b13-s132-bips { display:flex; flex-direction:column; gap:5px; }
.b13-s132-bip { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; cursor:pointer; transition:all 0.15s; }
.b13-s132-bip:hover { border-color:rgba(124,58,237,0.3); }
.b13-s132-bip.active { border-color:#534AB7; background:#EEEDFE; }
.b13-s132-bip-num  { font-size:12px; font-weight:700; font-family:'Courier Prime',monospace; min-width:54px; flex-shrink:0; }
.b13-s132-bip-info { display:flex; flex-direction:column; gap:1px; flex:1; }
.b13-s132-bip-name { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s132-bip-meta { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b13-s132-bip-status { font-size:9px; padding:2px 7px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; }
.b13-s132-bip-status.s132-final  { background:#EAF3DE; color:#27500A; }
.b13-s132-bip-status.s132-active { background:#EEEDFE; color:#534AB7; }
.b13-s132-detail { border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-s132-detail-head { padding:10px 14px; display:flex; align-items:center; gap:10px; background:#F4F4F0; }
.b13-s132-detail-num   { font-size:18px; font-weight:700; font-family:'Courier Prime',monospace; color:#534AB7; }
.b13-s132-detail-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; flex:1; }
.b13-s132-detail-body  { padding:10px 14px; display:flex; flex-direction:column; gap:8px; }
.b13-s132-detail-row   { display:flex; gap:8px; align-items:baseline; }
.b13-s132-detail-key   { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; min-width:80px; flex-shrink:0; }
.b13-s132-detail-val   { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; flex:1; }
.b13-s132-detail-desc  { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; padding:8px 10px; background:#F4F4F0; border-radius:var(--border-radius-md); }
.b13-s132-types { display:flex; flex-direction:column; gap:8px; }
.b13-s132-type-card { border:0.5px solid transparent; border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-s132-type-head { padding:10px 14px; display:flex; align-items:center; gap:10px; cursor:pointer; }
.b13-s132-type-icon  { font-size:18px; flex-shrink:0; }
.b13-s132-type-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; flex:1; }
.b13-s132-type-badge { font-size:10px; padding:2px 8px; border-radius:99px; font-family:'Sora',sans-serif; flex-shrink:0; }
.b13-s132-type-body { display:none; padding:0 14px 12px; border-top:0.5px solid rgba(0,0,0,0.06); }
.b13-s132-type-body.open { display:block; }
.b13-s132-type-desc { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; margin-top:8px; }
.b13-s132-type-examples { margin-top:8px; display:flex; flex-direction:column; gap:4px; }
.b13-s132-type-ex { font-size:10px; font-family:'Courier Prime',monospace; padding:3px 8px; border-radius:4px; display:inline-block; }
.b13-s132-type-card.s132-standards { border-color:rgba(83,74,183,0.2); }
.b13-s132-type-card.s132-standards .b13-s132-type-head  { background:#EEEDFE; }
.b13-s132-type-card.s132-standards .b13-s132-type-title { color:#534AB7; }
.b13-s132-type-card.s132-standards .b13-s132-type-badge { background:#534AB7; color:#fff; }
.b13-s132-type-card.s132-standards .b13-s132-type-ex    { background:#EEEDFE; color:#534AB7; }
.b13-s132-type-card.s132-info { border-color:rgba(15,110,86,0.2); }
.b13-s132-type-card.s132-info .b13-s132-type-head  { background:#EAF3DE; }
.b13-s132-type-card.s132-info .b13-s132-type-title { color:#0F6E56; }
.b13-s132-type-card.s132-info .b13-s132-type-badge { background:#0F6E56; color:#fff; }
.b13-s132-type-card.s132-info .b13-s132-type-ex    { background:#EAF3DE; color:#0F6E56; }
.b13-s132-type-card.s132-process { border-color:rgba(133,79,11,0.2); }
.b13-s132-type-card.s132-process .b13-s132-type-head  { background:#FAEEDA; }
.b13-s132-type-card.s132-process .b13-s132-type-title { color:#854F0B; }
.b13-s132-type-card.s132-process .b13-s132-type-badge { background:#854F0B; color:#fff; }
.b13-s132-type-card.s132-process .b13-s132-type-ex    { background:#FAEEDA; color:#854F0B; }
.b13-s132-sublayers { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:8px; }
.b13-s132-sublayer { padding:6px 10px; border-radius:var(--border-radius-md); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.15); }
.b13-s132-sublayer-title { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b13-s132-sublayer-desc  { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.4; margin-top:2px; }

/* ============================================================
   PAGE 16 · BAB 13 · 13.3 SIMULATION (Soft Fork Activation)
============================================================ */
/* Bagan ini padat teks. Kalau dibiarkan menyusut mengikuti layar sempit,
   labelnya jatuh di bawah 3px dan tidak terbaca. Jadi diberi lebar minimum
   dan digeser horizontal di dalam wadahnya sendiri. */
.bs-flow { padding:4px 0 2px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.bs-flow svg { width:100%; height:auto; min-width:680px; display:block; }
.bs-flow-hint { font-family:'Courier Prime',monospace; font-size:9px;
  letter-spacing:0.1em; color:#7C6FD6; text-transform:uppercase; padding-top:6px; }

.bs-flow-note { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif;
  padding-top:11px; margin-top:11px; border-top:0.5px solid rgba(124,58,237,0.12); }
.bs-flow-note b { color:#534AB7; font-weight:600; }


/* ============================================================
   C1 SHA-256 dibedah
============================================================ */
.sh-wrap{ display:flex; flex-direction:column; gap:10px; }
.sh-in{ font-family:'Courier Prime',monospace; font-size:13px; background:#FAFAF8;
  border:0.5px solid rgba(124,58,237,0.22); color:#1A1A18; padding:9px 12px;
  border-radius:var(--border-radius-md); width:100%; }
.sh-in:focus{ border-color:#7C3AED; outline:none; }
.sh-bytes{ display:flex; flex-wrap:wrap; gap:2px; font-family:'Courier Prime',monospace;
  font-size:10px; line-height:1; }
.sh-bytes i{ font-style:normal; padding:5px 4px; border-radius:2px; min-width:22px;
  text-align:center; background:#F4F4F0; color:#52524C; }
.sh-bytes i.m{ background:#EEEDFE; color:#534AB7; font-weight:700; }
.sh-bytes i.k{ background:#FAEEDA; color:#854F0B; font-weight:700; }
.sh-bytes i.z{ background:#F4F4F0; color:#A0A098; }
.sh-bytes i.l{ background:#EAF3DE; color:#0F6E56; font-weight:700; }
.sh-legend{ display:flex; flex-wrap:wrap; gap:12px; font-family:'Sora',sans-serif;
  font-size:10px; color:#52524C; }
.sh-legend span b{ display:inline-block; width:9px; height:9px; border-radius:2px;
  margin-right:5px; vertical-align:-1px; }
.sh-ctl{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sh-btn{ appearance:none; font-family:'Sora',sans-serif; font-size:11px; font-weight:500;
  padding:8px 14px; border:0.5px solid rgba(124,58,237,0.3); border-radius:var(--border-radius-md);
  background:#fff; color:#534AB7; cursor:pointer; transition:.15s; }
.sh-btn:hover{ background:#EEEDFE; }
.sh-btn.pri{ background:#534AB7; color:#fff; border-color:#534AB7; }
.sh-btn.pri:hover{ background:#463DA6; }
.sh-slider{ flex:1; min-width:120px; accent-color:#534AB7; }
.sh-round{ font-family:'Courier Prime',monospace; font-size:13px; color:#534AB7;
  font-weight:700; min-width:74px; }
.sh-regs{ display:flex; flex-direction:column; gap:3px; }
.sh-reg{ display:flex; align-items:center; gap:9px; padding:5px 9px; border-radius:3px;
  background:#F4F4F0; font-family:'Courier Prime',monospace; font-size:11px;
  transition:background .25s; }
.sh-reg.new{ background:#EEEDFE; box-shadow:inset 2px 0 0 #534AB7; }
.sh-reg.shift{ background:#FAFAF8; opacity:.72; }
.sh-reg-n{ width:14px; color:#7C6FD6; font-weight:700; }
.sh-reg-v{ flex:1; color:#1A1A18; letter-spacing:0.02em; }
.sh-reg-t{ font-family:'Sora',sans-serif; font-size:9px; color:#52524C; white-space:nowrap; }
.sh-reg.new .sh-reg-t{ color:#534AB7; font-weight:600; }
.sh-words{ display:grid; grid-template-columns:repeat(8,1fr); gap:2px; }
.sh-words i{ font-style:normal; font-family:'Courier Prime',monospace; font-size:8.5px;
  padding:5px 2px; text-align:center; border-radius:2px; background:#F4F4F0;
  color:#52524C; cursor:pointer; transition:.15s; }
.sh-words i.base{ background:#EEEDFE; color:#534AB7; }
.sh-words i.sel{ background:#534AB7; color:#fff; font-weight:700; }
.sh-words i.src{ background:#FAEEDA; color:#854F0B; font-weight:700; }
.sh-meter{ height:22px; background:#F4F4F0; border-radius:3px; overflow:hidden;
  position:relative; border:0.5px solid rgba(124,58,237,0.14); }
.sh-meter i{ display:block; height:100%; background:linear-gradient(90deg,#A32D2D,#854F0B,#0F6E56);
  transition:width .3s ease; }
.sh-meter{ height:16px; }
#lab-c1-avnum b{ font-family:'Courier Prime',monospace; font-size:11px; letter-spacing:0; }
#lab-c1-avnum span{ font-family:'Courier Prime',monospace; font-size:11px; letter-spacing:0; font-weight:700; }
.sh-hash{ font-family:'Courier Prime',monospace; font-size:11px; color:#534AB7;
  word-break:break-all; line-height:1.7; background:#EEEDFE; padding:9px 11px;
  border-radius:var(--border-radius-md); }
.sh-ok{ font-family:'Sora',sans-serif; font-size:10px; color:#0F6E56; }
.sh-note{ font-family:'Sora',sans-serif; font-size:11px; line-height:1.75; color:#3A3A35; }
.sh-note b{ color:#534AB7; font-weight:600; }
.sh-sub{ font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.1em;
  text-transform:uppercase; color:#7C6FD6; }
@media (max-width:640px){
  .sh-words{ grid-template-columns:repeat(4,1fr); }
  .sh-reg-t{ display:none; }
  .sh-ctl{ gap:7px; }
}


/* ============================================================
   C3 tanda tangan dibedah
============================================================ */
.sg-form{ display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }
.sg-f{ display:flex; flex-direction:column; gap:3px; }
.sg-f label{ font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.08em;
  text-transform:uppercase; color:#7C6FD6; }
.sg-f input, .sg-f select{ font-family:'Courier Prime',monospace; font-size:12px;
  background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.22); color:#1A1A18;
  padding:7px 9px; border-radius:var(--border-radius-md); width:100%; }
.sg-steps{ display:flex; flex-direction:column; gap:4px; }
.sg-step{ display:flex; gap:9px; align-items:baseline; padding:6px 10px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:11px; }
.sg-step.key{ background:#EEEDFE; border-left-color:#534AB7; }
.sg-step.bad{ background:#FCEBEB; border-left-color:#A32D2D; }
.sg-step.good{ background:#EAF3DE; border-left-color:#0F6E56; }
.sg-lab{ color:#7C6FD6; min-width:78px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.sg-val{ color:#1A1A18; word-break:break-all; }
.sg-step.key .sg-val{ color:#534AB7; font-weight:700; }
.sg-step.bad .sg-val{ color:#A32D2D; font-weight:700; }
.sg-step.good .sg-val{ color:#0F6E56; font-weight:700; }
.sg-verdict{ display:flex; align-items:center; gap:9px; padding:10px 13px;
  border-radius:var(--border-radius-md); font-family:'Sora',sans-serif;
  font-size:12px; font-weight:600; }
.sg-verdict.ok{ background:#EAF3DE; color:#0F6E56; }
.sg-verdict.no{ background:#FCEBEB; color:#A32D2D; }
.sg-cmp{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.sg-col{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.sg-col h5{ font-family:'Courier Prime',monospace; font-size:10px; letter-spacing:0.1em;
  text-transform:uppercase; color:#534AB7; margin:0 0 7px; font-weight:700; }
.sg-col code{ display:block; font-family:'Courier Prime',monospace; font-size:11px;
  color:#1A1A18; line-height:1.9; }
.sg-col em{ font-style:normal; color:#A32D2D; font-weight:700; }
.sg-col b{ color:#0F6E56; }
@media (max-width:640px){
  .sg-form{ grid-template-columns:1fr; }
  .sg-cmp{ grid-template-columns:1fr; }
  .sg-lab{ min-width:64px; }
}
/* ============================================================
   C2 secp256k1 dibedah dari nol
============================================================ */
.ec-clock{ display:flex; flex-wrap:wrap; gap:3px; }
.ec-clock i{ font-style:normal; font-family:'Courier Prime',monospace; font-size:10px;
  width:26px; height:26px; display:flex; align-items:center; justify-content:center;
  background:#F4F4F0; color:#52524C; border-radius:50%; transition:.2s; }
.ec-clock i.hit{ background:#534AB7; color:#fff; font-weight:700; }
.ec-clock i.pass{ background:#EEEDFE; color:#7C6FD6; }
.ec-grid{ position:relative; width:100%; max-width:400px; aspect-ratio:1; margin:0 auto;
  background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.18); border-radius:var(--border-radius-md); }
.ec-dot{ position:absolute; width:21px; height:21px; margin:-10.5px 0 0 -10.5px; border-radius:50%;
  background:#EEEDFE; border:1px solid rgba(83,74,183,0.28);
  font-family:'Courier Prime',monospace; font-size:8px; color:#534AB7;
  display:flex; align-items:center; justify-content:center; transition:.15s; }
.ec-dot.gen{ background:#FAEEDA; color:#854F0B; border:1.5px solid #854F0B; font-weight:700;
  box-shadow:0 0 0 3px rgba(133,79,11,0.12); }
.ec-dot.prev{ background:#C9C6EE; color:#3A3A35; }
.ec-dot.cur{ background:#534AB7; color:#fff; border-color:#534AB7; font-weight:700;
  box-shadow:0 0 0 4px rgba(83,74,183,0.18); }
.ec-dot.test{ background:#0F6E56; color:#fff; border-color:#0F6E56; font-weight:700; }
.ec-dot.off{ background:#FCEBEB; color:#A32D2D; border:1px dashed rgba(163,45,45,0.5); }
.ec-mid{ position:absolute; left:0; right:0; border-top:1px dashed rgba(124,58,237,0.2); }
.ec-kv{ display:grid; grid-template-columns:150px 1fr; gap:5px 12px;
  font-family:'Courier Prime',monospace; font-size:11.5px; align-items:baseline; margin:0; }
.ec-kv dt{ font-size:9px; color:#7C6FD6; letter-spacing:0.06em; text-transform:uppercase; }
.ec-kv dd{ color:#1A1A18; word-break:break-all; margin:0; }
.ec-kv dd.hl{ color:#534AB7; font-weight:700; }
.ec-kv dd.ok{ color:#0F6E56; font-weight:700; }
.ec-eq{ display:flex; flex-direction:column; gap:4px; }
.ec-eq div{ display:flex; gap:9px; align-items:baseline; padding:6px 10px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:11px; }
.ec-eq div.hot{ background:#EEEDFE; border-left-color:#534AB7; }
.ec-eq .t{ color:#7C6FD6; min-width:118px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.ec-eq .v{ color:#1A1A18; }
.ec-eq div.hot .v{ color:#534AB7; font-weight:700; }
.ec-verdict{ display:flex; align-items:center; gap:9px; padding:10px 13px;
  border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; font-size:12px; font-weight:600; }
.ec-verdict.ok{ background:#EAF3DE; color:#0F6E56; }
.ec-verdict.no{ background:#FCEBEB; color:#A32D2D; }
.ec-bits{ display:flex; flex-wrap:wrap; gap:2px; }
.ec-bits i{ font-style:normal; font-family:'Courier Prime',monospace; font-size:10px;
  padding:3px 6px; border-radius:2px; background:#F4F4F0; color:#52524C; }
.ec-bits i.one{ background:#EEEDFE; color:#534AB7; font-weight:700; }
.ec-trace{ display:flex; flex-direction:column; gap:3px; max-height:170px; overflow-y:auto; }
.ec-trace div{ display:flex; gap:8px; font-family:'Courier Prime',monospace; font-size:10px;
  padding:4px 8px; background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.16); border-radius:2px; }
.ec-trace div.add{ border-left-color:#534AB7; background:#EEEDFE; }
.ec-trace .op{ color:#7C6FD6; min-width:58px; font-weight:700; }
.ec-cmp{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ec-card{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.ec-card.big{ background:#FCEBEB; border-color:rgba(163,45,45,0.22); }
.ec-card-t{ font-family:'Sora',sans-serif; font-size:10px; color:#52524C; margin-bottom:3px; }
.ec-card-v{ font-family:'Courier Prime',monospace; font-size:14px; font-weight:700;
  color:#0F6E56; word-break:break-all; }
.ec-card.big .ec-card-v{ color:#A32D2D; font-size:11px; }
.ec-fmt{ display:flex; flex-direction:column; gap:6px; }
.ec-fmt div{ display:flex; gap:9px; align-items:baseline; flex-wrap:wrap; }
.ec-fmt .t{ font-family:'Sora',sans-serif; font-size:9px; letter-spacing:0.08em;
  text-transform:uppercase; color:#7C6FD6; min-width:104px; }
.ec-fmt code{ font-family:'Courier Prime',monospace; font-size:12px; color:#1A1A18; }
.ec-fmt code b{ background:#FAEEDA; color:#854F0B; padding:1px 4px; border-radius:2px; }
.ec-fmt code i{ font-style:normal; background:#EEEDFE; color:#534AB7; padding:1px 4px; border-radius:2px; }
.ec-fmt code u{ text-decoration:none; background:#EAF3DE; color:#0F6E56; padding:1px 4px; border-radius:2px; }
.ec-fmt em{ font-style:normal; font-family:'Sora',sans-serif; font-size:10px; color:#52524C; }
.ec-two{ display:flex; gap:14px; flex-wrap:wrap; }
.ec-two > label{ flex:1; min-width:150px; display:flex; flex-direction:column; gap:4px; }
@media (max-width:640px){
  .ec-cmp{ grid-template-columns:1fr; }
  .ec-kv{ grid-template-columns:104px 1fr; }
  .ec-eq .t{ min-width:82px; }
  .ec-clock i{ width:22px; height:22px; font-size:9px; }
  .ec-dot{ width:17px; height:17px; margin:-8.5px 0 0 -8.5px; font-size:7px; }
}










/* ============================================================
   Jembatan prosa ke Laboratorium
============================================================ */
.lab-link{ display:flex; gap:11px; align-items:flex-start; margin-top:13px;
  padding:11px 14px; border-radius:var(--border-radius-md);
  background:#EEEDFE; border-left:2px solid #534AB7; }
.lab-link .kode{ font-family:'Courier Prime',monospace; font-size:10px; font-weight:700;
  color:#FFFFFF; background:#534AB7; padding:3px 7px; border-radius:3px;
  flex-shrink:0; letter-spacing:0.06em; }
.lab-link .isi{ font-family:'Sora',sans-serif; font-size:11px; line-height:1.7; color:#3A3A35; }
.lab-link .isi b{ color:#534AB7; font-weight:600; }
.lab-link .isi .hd{ display:block; font-family:'Courier Prime',monospace; font-size:8.5px;
  letter-spacing:0.1em; text-transform:uppercase; color:#7C6FD6; margin-bottom:3px; }
.lab-back{ margin-top:11px; padding:10px 13px; border-radius:var(--border-radius-md);
  background:#FAEEDA; border-left:2px solid #854F0B;
  font-family:'Sora',sans-serif; font-size:10.5px; line-height:1.7; color:#3A3A35; }
@media (max-width:640px){ .lab-link{ flex-direction:column; gap:7px; } }
/* ============================================================
   C7 simpul ganjil & CVE-2012-2459
============================================================ */
.mk-tree{ display:flex; flex-direction:column; gap:7px; }
.mk-lvl{ display:flex; gap:4px; flex-wrap:wrap; align-items:center; }
.mk-lvl .lb{ font-family:'Courier Prime',monospace; font-size:8.5px; color:#7C6FD6;
  min-width:64px; letter-spacing:0.06em; text-transform:uppercase; }
.mk-n{ font-family:'Courier Prime',monospace; font-size:9.5px; padding:5px 7px;
  border-radius:3px; background:#EEEDFE; color:#534AB7; }
.mk-n.dup{ background:#FAEEDA; color:#854F0B; font-weight:700;
  border:1px dashed rgba(133,79,11,0.5); }
.mk-n.root{ background:#EAF3DE; color:#0F6E56; font-weight:700; }
.mk-two{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.mk-box{ padding:12px 14px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.mk-box h6{ margin:0 0 7px; font-family:'Sora',sans-serif; font-size:11px;
  font-weight:700; color:#534AB7; }
.mk-box .list{ font-family:'Courier Prime',monospace; font-size:10px; color:#1A1A18;
  margin-bottom:8px; line-height:1.8; }
.mk-box .rt{ font-family:'Courier Prime',monospace; font-size:10px; color:#0F6E56;
  font-weight:700; word-break:break-all; }
.mk-verd{ padding:11px 14px; border-radius:var(--border-radius-md);
  font-family:'Sora',sans-serif; font-size:12px; font-weight:700; text-align:center; }
.mk-verd.no{ background:#FCEBEB; color:#A32D2D; }
.mk-verd.ok{ background:#EAF3DE; color:#0F6E56; }
.mk-fix{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.mk-fix > div{ padding:12px 14px; border-radius:var(--border-radius-md); }
.mk-fix .a{ background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.22); }
.mk-fix .b{ background:#EAF3DE; border:0.5px solid rgba(59,109,17,0.24); }
.mk-fix h6{ margin:0 0 6px; font-family:'Sora',sans-serif; font-size:11px; font-weight:700; }
.mk-fix .a h6{ color:#A32D2D; } .mk-fix .b h6{ color:#0F6E56; }
.mk-fix p{ margin:0; font-family:'Sora',sans-serif; font-size:10.5px; line-height:1.65; color:#3A3A35; }
@media (max-width:640px){ .mk-two, .mk-fix{ grid-template-columns:1fr; } }
/* ============================================================
   C4 BIP32
============================================================ */
.hd-flow{ display:flex; flex-direction:column; gap:4px; }
.hd-flow div{ display:flex; gap:9px; align-items:baseline; padding:7px 11px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:10px; flex-wrap:wrap; }
.hd-flow div.l{ background:#EEEDFE; border-left-color:#534AB7; }
.hd-flow div.r{ background:#EAF3DE; border-left-color:#0F6E56; }
.hd-flow .t{ color:#7C6FD6; min-width:168px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.hd-flow .v{ color:#1A1A18; word-break:break-all; flex:1; min-width:0; }
.hd-flow div.l .v{ color:#534AB7; font-weight:700; }
.hd-flow div.r .v{ color:#0F6E56; font-weight:700; }
.hd-two{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.hd-col{ padding:12px 14px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.hd-col.h{ background:#EAF3DE; border-color:rgba(59,109,17,0.24); }
.hd-col h6{ margin:0 0 8px; font-family:'Sora',sans-serif; font-size:11.5px; font-weight:700; color:#534AB7; }
.hd-col.h h6{ color:#0F6E56; }
.hd-col dl{ display:grid; grid-template-columns:1fr; gap:6px; margin:0; }
.hd-col dt{ font-family:'Courier Prime',monospace; font-size:8.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:#7C6FD6; }
.hd-col dd{ margin:0; font-family:'Courier Prime',monospace; font-size:10.5px;
  color:#1A1A18; word-break:break-all; }
.hd-col .yes{ color:#0F6E56; font-weight:700; } .hd-col .no{ color:#A32D2D; font-weight:700; }
.hd-atk{ display:flex; flex-direction:column; gap:5px; }
.hd-atk div{ display:flex; gap:9px; align-items:baseline; padding:8px 11px; border-radius:3px;
  font-family:'Courier Prime',monospace; font-size:10px; background:#FAFAF8;
  border-left:2px solid rgba(124,58,237,0.18); flex-wrap:wrap; }
.hd-atk div.bad{ background:#FCEBEB; border-left-color:#A32D2D; }
.hd-atk div.bad .v{ color:#A32D2D; font-weight:700; }
.hd-atk .t{ color:#7C6FD6; min-width:158px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.hd-atk .v{ color:#1A1A18; word-break:break-all; flex:1; min-width:0; }
.hd-verd{ padding:10px 13px; border-radius:var(--border-radius-md);
  font-family:'Sora',sans-serif; font-size:12px; font-weight:700; }
.hd-verd.no{ background:#FCEBEB; color:#A32D2D; }
.hd-verd.ok{ background:#EAF3DE; color:#0F6E56; }
@media (max-width:640px){
  .hd-two{ grid-template-columns:1fr; }
  .hd-flow .t, .hd-atk .t{ min-width:106px; }
}
/* ============================================================
   C6 tweak Taproot
============================================================ */
.tw-flow{ display:flex; flex-direction:column; gap:4px; }
.tw-flow div{ display:flex; gap:9px; align-items:baseline; padding:7px 11px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:11px; flex-wrap:wrap; }
.tw-flow div.hot{ background:#EEEDFE; border-left-color:#534AB7; }
.tw-flow div.out{ background:#EAF3DE; border-left-color:#0F6E56; }
.tw-flow .t{ color:#7C6FD6; min-width:170px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.tw-flow .v{ color:#1A1A18; word-break:break-all; }
.tw-flow div.hot .v{ color:#534AB7; font-weight:700; }
.tw-flow div.out .v{ color:#0F6E56; font-weight:700; }
.tw-two{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tw-box{ padding:12px 14px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; text-align:center; }
.tw-box h6{ margin:0 0 6px; font-family:'Courier Prime',monospace; font-size:9.5px;
  letter-spacing:0.06em; text-transform:uppercase; color:#7C6FD6; font-weight:400; }
.tw-box .p{ font-family:'Courier Prime',monospace; font-size:19px; font-weight:700; color:#534AB7; }
.tw-eq{ text-align:center; font-family:'Sora',sans-serif; font-size:12px; font-weight:700;
  padding:10px; border-radius:var(--border-radius-md); }
.tw-eq.ok{ background:#EAF3DE; color:#0F6E56; }
.tw-eq.no{ background:#FCEBEB; color:#A32D2D; }
.tw-eq.inf{ background:#FAEEDA; color:#854F0B; font-size:11px; font-weight:500; line-height:1.6; }
.tw-path{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tw-card{ padding:12px 14px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.16); }
.tw-card.k{ background:#EAF3DE; border-color:rgba(59,109,17,0.24); }
.tw-card.s{ background:#FAEEDA; border-color:rgba(133,79,11,0.24); }
.tw-card h6{ margin:0 0 7px; font-family:'Sora',sans-serif; font-size:11.5px; font-weight:700; }
.tw-card.k h6{ color:#0F6E56; } .tw-card.s h6{ color:#854F0B; }
.tw-card p{ margin:0 0 5px; font-family:'Sora',sans-serif; font-size:10.5px;
  line-height:1.65; color:#3A3A35; }
.tw-card .sz{ font-family:'Courier Prime',monospace; font-size:14px; font-weight:700; }
.tw-card.k .sz{ color:#0F6E56; } .tw-card.s .sz{ color:#854F0B; }
@media (max-width:640px){
  .tw-two, .tw-path{ grid-template-columns:1fr; }
  .tw-flow .t{ min-width:112px; }
}
/* ============================================================
   C5 BIP39
============================================================ */
.b9-bits{ display:flex; flex-wrap:wrap; gap:2px; font-family:'Courier Prime',monospace; font-size:9.5px; }
.b9-bits i{ font-style:normal; padding:3px 4px; border-radius:2px; background:#F4F4F0; color:#52524C; }
.b9-bits i.ent{ background:#EEEDFE; color:#534AB7; }
.b9-bits i.chk{ background:#FAEEDA; color:#854F0B; font-weight:700; }
.b9-words{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.b9-w{ display:flex; flex-direction:column; gap:2px; padding:8px 10px; border-radius:var(--border-radius-md);
  background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.16); }
.b9-w.mix{ background:#FAEEDA; border-color:rgba(133,79,11,0.24); }
.b9-w.edit{ background:#FCEBEB; border-color:rgba(163,45,45,0.3); }
.b9-w b{ font-family:'Sora',sans-serif; font-size:12px; color:#1A1A18; font-weight:600; }
.b9-w .n{ font-family:'Courier Prime',monospace; font-size:8.5px; color:#7C6FD6; }
.b9-w .bt{ font-family:'Courier Prime',monospace; font-size:8.5px; color:#52524C; letter-spacing:0.04em; }
.b9-w select{ font-family:'Sora',sans-serif; font-size:11px; padding:3px 4px; width:100%;
  border:0.5px solid rgba(124,58,237,0.25); border-radius:3px; background:#fff; color:#1A1A18; }
.b9-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11px; }
.b9-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.b9-tab td{ padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
.b9-tab tr.last td{ background:#FAEEDA; color:#854F0B; font-weight:700; }
@media (max-width:640px){ .b9-words{ grid-template-columns:repeat(2,1fr); } }
/* ============================================================
   F3 encoding nBits
============================================================ */
.nb-word{ display:flex; gap:4px; font-family:'Courier Prime',monospace; font-size:17px;
  font-weight:700; justify-content:center; flex-wrap:wrap; }
.nb-word i{ font-style:normal; padding:8px 10px; border-radius:4px; }
.nb-word i.e{ background:#FAEEDA; color:#854F0B; }
.nb-word i.m{ background:#EEEDFE; color:#534AB7; }
.nb-lbl{ display:flex; gap:4px; justify-content:center; flex-wrap:wrap;
  font-family:'Sora',sans-serif; font-size:8.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:#7C6FD6; }
.nb-lbl span{ text-align:center; }
.nb-target{ font-family:'Courier Prime',monospace; font-size:11px; line-height:1.9;
  word-break:break-all; background:#FAFAF8; border-radius:var(--border-radius-md);
  padding:10px 12px; border:0.5px solid rgba(124,58,237,0.16); }
.nb-target b{ color:#534AB7; background:#EEEDFE; padding:1px 2px; border-radius:2px; }
.nb-target u{ text-decoration:none; color:#A0A098; }
.nb-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11px; }
.nb-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:7px 9px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.nb-tab td{ padding:7px 9px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
.nb-tab td.num{ text-align:right; }
.nb-tab tr:hover td{ background:#FAFAF8; cursor:pointer; }
.nb-tab tr.on td{ background:#EEEDFE; color:#534AB7; font-weight:700; }
.nb-cmp{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.nb-card{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.nb-card.warn{ background:#FCEBEB; border-color:rgba(163,45,45,0.22); }
.nb-card.good{ background:#EAF3DE; border-color:rgba(59,109,17,0.24); }
.nb-card-t{ font-family:'Sora',sans-serif; font-size:9.5px; color:#52524C; margin-bottom:3px; }
.nb-card-v{ font-family:'Courier Prime',monospace; font-size:15px; font-weight:700; color:#534AB7; }
.nb-card.warn .nb-card-v{ color:#A32D2D; }
.nb-card.good .nb-card-v{ color:#0F6E56; }
@media (max-width:640px){
  .nb-cmp{ grid-template-columns:1fr; }
  .nb-word{ font-size:14px; }
}
/* ============================================================
   F2 checksum address
============================================================ */
.ck-flow{ display:flex; flex-direction:column; gap:4px; }
.ck-flow div{ display:flex; gap:9px; align-items:baseline; padding:7px 10px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:10.5px; flex-wrap:wrap; }
.ck-flow div.hot{ background:#EEEDFE; border-left-color:#534AB7; }
.ck-flow div.out{ background:#EAF3DE; border-left-color:#0F6E56; }
.ck-flow .t{ color:#7C6FD6; min-width:132px; flex-shrink:0; font-size:9px;
  letter-spacing:0.06em; text-transform:uppercase; }
.ck-flow .v{ color:#1A1A18; word-break:break-all; flex:1; min-width:0; }
.ck-flow div.hot .v{ color:#534AB7; font-weight:700; }
.ck-flow div.out .v{ color:#0F6E56; font-weight:700; }
.ck-addr{ display:flex; flex-wrap:wrap; gap:2px; font-family:'Courier Prime',monospace; font-size:12px; }
.ck-addr i{ font-style:normal; padding:4px 3px; border-radius:2px; background:#F4F4F0;
  color:#52524C; cursor:pointer; min-width:15px; text-align:center; transition:.12s; }
.ck-addr i:hover{ background:#C9C6EE; }
.ck-addr i.chk{ background:#EEEDFE; color:#534AB7; }
.ck-addr i.hit{ background:#A32D2D; color:#fff; font-weight:700; }
.ck-verd{ display:flex; align-items:center; gap:9px; padding:9px 12px;
  border-radius:var(--border-radius-md); font-family:'Sora',sans-serif; font-size:11.5px; font-weight:600; }
.ck-verd.ok{ background:#EAF3DE; color:#0F6E56; }
.ck-verd.no{ background:#FCEBEB; color:#A32D2D; }
.ck-pair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ck-col{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.ck-col h5{ margin:0 0 8px; font-family:'Sora',sans-serif; font-size:10.5px;
  color:#534AB7; font-weight:700; }
.ck-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11px; }
.ck-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:7px 9px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.ck-tab td{ padding:7px 9px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
@media (max-width:640px){
  .ck-pair{ grid-template-columns:1fr; }
  .ck-flow .t{ min-width:92px; }
  .ck-addr{ font-size:11px; }
}
/* ============================================================
   F1 serialisasi transaksi
============================================================ */
.tx-hex{ display:flex; flex-wrap:wrap; gap:3px; font-family:'Courier Prime',monospace; font-size:11px; }
.tx-hex span{ padding:5px 6px; border-radius:3px; cursor:pointer; transition:.15s;
  background:#F4F4F0; color:#52524C; word-break:break-all; max-width:100%; }
.tx-hex span:hover{ filter:brightness(0.94); }
.tx-hex span.on{ outline:2px solid #534AB7; outline-offset:1px; }
.tx-hex span.c0{ background:#EEEDFE; color:#534AB7; }
.tx-hex span.c1{ background:#FAEEDA; color:#854F0B; }
.tx-hex span.c2{ background:#EAF3DE; color:#0F6E56; }
.tx-hex span.c3{ background:#FCEBEB; color:#A32D2D; }
.tx-hex span.c4{ background:#E4EEF7; color:#255C86; }
.tx-desc{ font-family:'Sora',sans-serif; font-size:11.5px; line-height:1.7; color:#3A3A35;
  background:#FAFAF8; border-left:2px solid #534AB7; border-radius:3px; padding:10px 13px; min-height:44px; }
.tx-desc b{ color:#534AB7; font-family:'Courier Prime',monospace; }
.tx-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11px; }
.tx-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.tx-tab td{ padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.tx-tab tr.on td{ background:#EEEDFE; color:#534AB7; font-weight:700; }
.tx-id{ display:flex; flex-direction:column; gap:4px; }
.tx-id div{ display:flex; gap:9px; align-items:baseline; padding:7px 10px; border-radius:3px;
  background:#FAFAF8; border-left:2px solid rgba(124,58,237,0.2);
  font-family:'Courier Prime',monospace; font-size:10.5px; flex-wrap:wrap; }
.tx-id .t{ color:#7C6FD6; min-width:104px; font-size:9px; letter-spacing:0.06em; text-transform:uppercase; }
.tx-id .v{ color:#1A1A18; word-break:break-all; flex:1; min-width:0; }
.tx-id div.a{ background:#EEEDFE; border-left-color:#534AB7; }
.tx-id div.a .v{ color:#534AB7; font-weight:700; }
.tx-cmp{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tx-box{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.tx-box h5{ margin:0 0 8px; font-family:'Sora',sans-serif; font-size:10.5px; color:#52524C; font-weight:600; }
.tx-box code{ display:block; font-family:'Courier Prime',monospace; font-size:10px;
  color:#1A1A18; word-break:break-all; line-height:1.8; }
.tx-box .lbl{ font-size:8.5px; color:#7C6FD6; letter-spacing:0.06em; text-transform:uppercase; }
.tx-box.bad{ background:#FCEBEB; border-color:rgba(163,45,45,0.22); }
.tx-box.good{ background:#EAF3DE; border-color:rgba(59,109,17,0.24); }
.tx-verd{ font-family:'Sora',sans-serif; font-size:11px; font-weight:700; margin-top:7px; }
.tx-box.bad .tx-verd{ color:#A32D2D; }
.tx-box.good .tx-verd{ color:#0F6E56; }
@media (max-width:640px){
  .tx-cmp{ grid-template-columns:1fr; }
  .tx-id .t{ min-width:78px; }
  .tx-hex{ font-size:10px; }
}
/* ============================================================
   D2 sebaran jenis address
============================================================ */
.ad-bars{ display:flex; flex-direction:column; gap:7px; }
.ad-row{ display:flex; align-items:center; gap:10px; }
.ad-name{ width:132px; flex-shrink:0; font-family:'Courier Prime',monospace; font-size:11px;
  color:#1A1A18; }
.ad-name small{ display:block; font-size:8.5px; color:#7C6FD6; letter-spacing:0.04em; }
.ad-track{ flex:1; height:22px; background:#F4F4F0; border-radius:3px; overflow:hidden; }
.ad-fill{ height:100%; border-radius:3px; transition:width .4s ease; }
.ad-fill.a{ background:#534AB7; } .ad-fill.b{ background:#7C6FD6; }
.ad-fill.c{ background:#A79FE4; } .ad-fill.d{ background:#C9C6EE; }
.ad-fill.e{ background:#854F0B; }
.ad-pct{ width:56px; text-align:right; font-family:'Courier Prime',monospace;
  font-size:12px; font-weight:700; color:#534AB7; flex-shrink:0; }
.ad-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11.5px; }
.ad-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:7px 9px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.ad-tab td{ padding:8px 9px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
.ad-tab td.num{ text-align:right; }
.ad-tab tr.hi td{ background:#EEEDFE; color:#534AB7; font-weight:700; }
.ad-tab tr.warn td{ background:#FAEEDA; color:#854F0B; font-weight:700; }
.ad-stat{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.ad-card{ padding:11px 13px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.ad-card.warn{ background:#FAEEDA; border-color:rgba(133,79,11,0.22); }
.ad-card-t{ font-family:'Sora',sans-serif; font-size:9.5px; color:#52524C; margin-bottom:3px; }
.ad-card-v{ font-family:'Courier Prime',monospace; font-size:15px; font-weight:700; color:#534AB7; }
.ad-card.warn .ad-card-v{ color:#854F0B; }
.ad-snap{ font-family:'Sora',sans-serif; font-size:10.5px; line-height:1.7; color:#52524C;
  background:#F4F4F0; border-radius:var(--border-radius-md); padding:9px 12px;
  border-left:2px solid rgba(124,58,237,0.3); }
@media (max-width:640px){
  .ad-stat{ grid-template-columns:1fr; }
  .ad-name{ width:92px; font-size:10px; }
  .ad-pct{ width:46px; font-size:11px; }
}
/* ============================================================
   D1 halving & DCA
============================================================ */
.dc-in{ font-family:'Courier Prime',monospace; font-size:13px; background:#FAFAF8;
  border:0.5px solid rgba(124,58,237,0.22); color:#1A1A18; padding:8px 11px;
  border-radius:var(--border-radius-md); width:100%; }
.dc-in:focus{ border-color:#7C3AED; outline:none; }
.dc-row{ display:flex; gap:12px; flex-wrap:wrap; }
.dc-row > label{ flex:1; min-width:148px; display:flex; flex-direction:column; gap:4px; }
.dc-row > label > span{ font-family:'Courier Prime',monospace; font-size:9px;
  letter-spacing:0.08em; text-transform:uppercase; color:#7C6FD6; }
.dc-kv{ display:grid; grid-template-columns:190px 1fr; gap:5px 12px; margin:0;
  font-family:'Courier Prime',monospace; font-size:12px; align-items:baseline; }
.dc-kv dt{ font-size:9px; color:#7C6FD6; letter-spacing:0.06em; text-transform:uppercase; }
.dc-kv dd{ margin:0; color:#1A1A18; word-break:break-all; }
.dc-kv dd.hl{ color:#534AB7; font-weight:700; font-size:14px; }
.dc-kv dd.ok{ color:#0F6E56; font-weight:700; }
.dc-tab{ width:100%; border-collapse:collapse; font-family:'Courier Prime',monospace; font-size:11px; }
.dc-tab th{ text-align:left; font-size:9px; letter-spacing:0.06em; text-transform:uppercase;
  color:#7C6FD6; font-weight:400; padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.18); }
.dc-tab td{ padding:6px 8px; border-bottom:0.5px solid rgba(124,58,237,0.08); color:#1A1A18; }
.dc-tab tr.now td{ background:#EEEDFE; font-weight:700; color:#534AB7; }
.dc-tab td.num{ text-align:right; }
.dc-seg{ display:inline-flex; border:0.5px solid rgba(124,58,237,0.28);
  border-radius:var(--border-radius-md); overflow:hidden; }
.dc-seg button{ appearance:none; border:0; background:#FAFAF8; color:#52524C;
  font-family:'Sora',sans-serif; font-size:11px; padding:7px 12px; cursor:pointer; transition:.15s; }
.dc-seg button:hover{ background:#EEEDFE; }
.dc-seg button.on{ background:#534AB7; color:#fff; font-weight:600; }
.dc-bars{ display:flex; align-items:flex-end; gap:3px; height:78px; padding:4px 0; }
.dc-bars i{ flex:1; background:#C9C6EE; border-radius:2px 2px 0 0; position:relative; transition:height .25s; }
.dc-bars i.big{ background:#534AB7; }
.dc-cmp{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px; }
.dc-card{ padding:10px 12px; border-radius:var(--border-radius-md);
  border:0.5px solid rgba(124,58,237,0.16); background:#FAFAF8; }
.dc-card.win{ background:#EAF3DE; border-color:rgba(59,109,17,0.22); }
.dc-card-t{ font-family:'Sora',sans-serif; font-size:9.5px; color:#52524C; margin-bottom:3px; }
.dc-card-v{ font-family:'Courier Prime',monospace; font-size:14px; font-weight:700; color:#1A1A18; }
.dc-card.win .dc-card-v{ color:#0F6E56; }
.dc-disc{ font-family:'Sora',sans-serif; font-size:10.5px; line-height:1.7; color:#854F0B;
  background:#FAEEDA; border-radius:var(--border-radius-md); padding:10px 13px;
  border:0.5px solid rgba(133,79,11,0.2); }
.dc-scroll{ overflow-x:auto; }
@media (max-width:640px){
  .dc-kv{ grid-template-columns:128px 1fr; }
  .dc-cmp{ grid-template-columns:1fr; }
}

/* ============================================================
   LABORATORIUM di layar sempit: strip navigasi dipendekkan dan
   item aktif digulirkan sendiri ke tampilan.
============================================================ */
@media (max-width:900px){
  #page-bab21 .sidebar{ scroll-behavior:smooth; }
  #page-bab21 .sidebar-item{ max-width:186px; }
  #page-bab21 .sb-label{ overflow:hidden; text-overflow:ellipsis;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  /* judul kelompok jadi pemisah tipis, bukan blok yang memakan lebar */
  #page-bab21 .lab-group{ padding:10px 8px 10px 12px; margin:0; font-size:8px;
    letter-spacing:0.12em; border-top:0; border-left:0.5px solid rgba(124,58,237,0.2);
    align-self:center; white-space:nowrap; }
  #page-bab21 .lab-group.first{ border-left:0; padding-left:4px; }
  #page-bab21 .lab-group-d{ display:none; }
  /* Item yang belum dibangun disembunyikan di strip sempit. Di desktop ia
     berguna sebagai peta rencana, tapi di sini ia tidak bisa diklik dan
     memakan lebih dari sepertiga jalan menuju item yang benar-benar ada. */
  /* !important diperlukan karena aturan target sentuh di putaran sebelumnya
     memasang display:flex !important pada semua .sidebar-item di bawah 480px. */
  #page-bab21 .sidebar-item.lab-soon{ display:none !important; }
  #page-bab21 .lab-group:has(+ .lab-group){ display:none !important; }
}
/* ============================================================
   LABORATORIUM: kelompok di sidebar, entri di daftar bab.
============================================================ */
.lab-letter{ display:inline-block; margin-left:8px; padding:1px 6px; border-radius:3px; background:#534AB7; color:#FFFFFF; font-weight:700; letter-spacing:0.06em; font-size:8px; vertical-align:1px; }
.lab-letter::before{ content:''; }
.lab-group{ font-family:'Courier Prime',monospace; font-size:9px; letter-spacing:0.16em;
  text-transform:uppercase; color:#7C6FD6; padding:20px 0 3px; margin-top:8px;
  border-top:0.5px solid rgba(124,58,237,0.14); }
.lab-group.first{ border-top:0; margin-top:0; padding-top:2px; }
.lab-group-d{ font-family:'Sora',sans-serif; font-size:10px; color:#52524C;
  line-height:1.5; padding:0 0 10px; }
.sidebar-item.lab-soon{ opacity:.45; cursor:default; }
.sidebar-item.lab-soon:hover{ background:transparent; }
.lab-badge{ font-family:'Courier Prime',monospace; font-size:8px; letter-spacing:0.08em;
  text-transform:uppercase; color:#854F0B; background:#FAEEDA; border-radius:99px;
  padding:2px 6px; margin-left:6px; white-space:nowrap; display:inline-block; }
/* Entri Laboratorium diblok ungu penuh supaya terbaca sebagai jenis lain,
   bukan bab ke-21. Semua teks di dalamnya dibalik jadi terang. */
.chapter-item.is-lab{ background:#534AB7; border-color:#534AB7;
  padding-left:20px; padding-right:20px; border-radius:var(--border-radius-lg);
  margin:10px 0; transition:background .2s; }
.chapter-item.is-lab:hover{ background:#463DA6; }
.chapter-item.is-lab .chapter-num{ font-size:10px; letter-spacing:0.14em;
  color:#FFFFFF; opacity:.65; }
.chapter-item.is-lab .chapter-item-label{ color:#FFFFFF; opacity:.72; }
.chapter-item.is-lab .chapter-item-title{ color:#FFFFFF; font-weight:400; }
.chapter-item.is-lab:hover .chapter-item-title{ color:#FFFFFF; }
.chapter-item.is-lab .chapter-item-desc{ color:#FFFFFF; opacity:.62; }
.chapter-item.is-lab .chapter-status{ color:#FFFFFF; opacity:.72; }
.chapter-item.is-lab .chapter-arrow{ color:#FFFFFF; }
@media (max-width:360px){
  .chapter-item.is-lab{ padding-left:12px; padding-right:12px; }
}
@media (max-width:900px){
  .lab-group{ padding:12px 10px 2px; margin-top:0; border-top:0; white-space:nowrap; }
  .lab-group-d{ display:none; }
}
.b13-lab { margin-top:1.25rem; border:0.5px solid rgba(124,58,237,0.18); border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-lab-head { padding:8px 14px; font-size:11px; font-weight:500; background:#1A1A18; color:#fff; font-family:'Sora',sans-serif; }
.b13-lab-body { padding:12px 14px; background:#FAFAF8; display:flex; flex-direction:column; gap:11px; }
.b13-lab-ctrl { display:flex; align-items:center; gap:12px; }
.b13-lab-ctrl label { font-size:12px; color:#3A3A35; white-space:nowrap; font-family:'Sora',sans-serif; }
.b13-lab-ctrl input[type=range] { flex:1; accent-color:#534AB7; }
.b13-lab-ctrl-val { font-size:15px; font-weight:600; color:#534AB7; min-width:52px; text-align:right; font-family:'Courier Prime',monospace; }
.b13-lab-scale { display:flex; justify-content:space-between; font-size:9px; color:#52524C; font-family:'Courier Prime',monospace; margin-top:-6px; }
.b13-lab-rows { display:flex; flex-direction:column; gap:6px; }
.b13-lab-row { display:flex; align-items:center; gap:10px; padding:8px 11px; border-radius:var(--border-radius-md); background:#F4F4F0; border-left:3px solid transparent; transition:background 0.2s, border-color 0.2s; }
.b13-lab-row.yes { background:#EAF3DE; border-left-color:#0F6E56; }
.b13-lab-row.no { background:#FCEBEB; border-left-color:#A32D2D; }
.b13-lab-row.wait { background:#FAEEDA; border-left-color:#854F0B; }
.b13-lab-tag { font-size:10px; font-weight:700; font-family:'Courier Prime',monospace; letter-spacing:0.04em; width:78px; flex-shrink:0; color:#1A1A18; }
.b13-lab-out { flex:1; font-size:11px; line-height:1.55; color:#3A3A35; font-family:'Sora',sans-serif; }
.b13-lab-out b { color:#1A1A18; font-weight:600; }
.b13-lab-verdict { font-size:10px; font-weight:700; font-family:'Sora',sans-serif; letter-spacing:0.06em; text-transform:uppercase; width:66px; text-align:right; flex-shrink:0; }
.b13-lab-row.yes .b13-lab-verdict { color:#0F6E56; }
.b13-lab-row.no .b13-lab-verdict { color:#A32D2D; }
.b13-lab-row.wait .b13-lab-verdict { color:#854F0B; }
.b13-lab-note { font-size:11px; line-height:1.7; color:#3A3A35; font-family:'Sora',sans-serif; padding-top:9px; border-top:0.5px solid rgba(124,58,237,0.1); }
.b13-lab-note b { color:#534AB7; font-weight:600; }
@media (max-width:640px){
  .b13-lab-ctrl { flex-wrap:wrap; }
  .b13-lab-ctrl input[type=range] { flex-basis:100%; order:3; }
  .b13-lab-row { flex-wrap:wrap; gap:5px; }
  .b13-lab-tag { width:auto; }
  .b13-lab-verdict { width:auto; text-align:left; margin-left:auto; }
  .b13-lab-out { flex-basis:100%; order:3; }
}
.b13-s133-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s133-cards { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.b13-s133-card { padding:10px 12px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; transition:all 0.18s; background:#F4F4F0; }
.b13-s133-card:hover { border-color:rgba(124,58,237,0.3); }
.b13-s133-card.active { border-color:var(--card-color); background:var(--card-bg); }
.b13-s133-card-tag { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; padding:2px 7px; border-radius:99px; display:inline-block; margin-bottom:5px; }
.b13-s133-card-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s133-card-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:2px; line-height:1.4; }
.b13-s133-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-s133-detail-head { padding:10px 14px; display:flex; align-items:center; gap:10px; }
.b13-s133-detail-icon { font-size:22px; flex-shrink:0; }
.b13-s133-detail-name { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s133-detail-full { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:1px; }
.b13-s133-detail-body { padding:10px 14px; border-top:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:10px; }
.b13-s133-actors { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; }
.b13-s133-actor { padding:7px 10px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b13-s133-actor-role { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; opacity:0.75; }
.b13-s133-actor-action { font-size:10px; font-family:'Sora',sans-serif; line-height:1.4; color:#1A1A18; }
.b13-s133-timeline-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b13-s133-tl-steps { display:flex; align-items:center; gap:0; }
.b13-s133-tl-step { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; }
.b13-s133-tl-dot { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; font-family:'Sora',sans-serif; flex-shrink:0; }
.b13-s133-tl-txt { font-size:9px; font-family:'Sora',sans-serif; text-align:center; line-height:1.3; max-width:64px; color:#3A3A35; }
.b13-s133-tl-conn { flex:1; height:2px; margin-bottom:16px; }
.b13-s133-proscons { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b13-s133-pros, .b13-s133-cons { display:flex; flex-direction:column; gap:4px; }
.b13-s133-pros-label { font-size:10px; font-weight:500; color:#27500A; font-family:'Sora',sans-serif; }
.b13-s133-cons-label { font-size:10px; font-weight:500; color:#791F1F; font-family:'Sora',sans-serif; }
.b13-s133-pros-item, .b13-s133-cons-item { font-size:10px; font-family:'Sora',sans-serif; line-height:1.5; color:#1A1A18; padding-left:10px; position:relative; }
.b13-s133-pros-item::before { content:'✓'; position:absolute; left:0; color:#27500A; font-size:9px; }
.b13-s133-cons-item::before { content:'✗'; position:absolute; left:0; color:#791F1F; font-size:9px; }
.b13-s133-example { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }

/* ============================================================
   PAGE 16 · BAB 13 · 13.4 SIMULATION (SegWit Timeline)
============================================================ */
.b13-s134-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s134-filters { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.b13-s134-filter { padding:5px 12px; font-size:11px; font-weight:500; border-radius:99px; border:0.5px solid transparent; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; background:#F4F4F0; color:#3A3A35; }
.b13-s134-filter.s134-act { color:#fff; }
.b13-s134-filter[data-f="all"].s134-act      { background:#534AB7; border-color:#534AB7; }
.b13-s134-filter[data-f="dev"].s134-act      { background:#0F6E56; border-color:#0F6E56; }
.b13-s134-filter[data-f="miner"].s134-act    { background:#854F0B; border-color:#854F0B; }
.b13-s134-filter[data-f="community"].s134-act{ background:#534AB7; border-color:#534AB7; }
.b13-s134-filter[data-f="result"].s134-act   { background:#1A1A18; border-color:#1A1A18; }
.b13-s134-legend { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.b13-s134-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b13-s134-leg-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b13-s134-timeline { display:flex; flex-direction:column; gap:0; position:relative; }
.b13-s134-timeline::before { content:''; position:absolute; left:70px; top:0; bottom:0; width:1.5px; background:rgba(124,58,237,0.12); z-index:0; }
.b13-s134-event { display:flex; gap:12px; align-items:flex-start; padding:8px 0; transition:opacity 0.2s; }
.b13-s134-event.hidden { display:none; }
.b13-s134-date { min-width:58px; text-align:right; font-size:10px; font-weight:500; font-family:'Courier Prime',monospace; color:#52524C; padding-top:6px; flex-shrink:0; }
.b13-s134-dot-wrap { display:flex; flex-direction:column; align-items:center; z-index:1; flex-shrink:0; }
.b13-s134-dot { width:14px; height:14px; border-radius:50%; border:2px solid #fff; flex-shrink:0; margin-top:4px; }
.b13-s134-dot.s134-dev       { background:#0F6E56; }
.b13-s134-dot.s134-miner     { background:#854F0B; }
.b13-s134-dot.s134-community { background:#534AB7; }
.b13-s134-dot.s134-result    { background:#1A1A18; }
.b13-s134-dot.s134-split     { background:#A32D2D; }
.b13-s134-card { flex:1; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; cursor:pointer; transition:all 0.15s; }
.b13-s134-card:hover { filter:brightness(0.97); }
.b13-s134-event[data-t="dev"]       .b13-s134-card { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b13-s134-event[data-t="miner"]     .b13-s134-card { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b13-s134-event[data-t="community"] .b13-s134-card { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b13-s134-event[data-t="result"]    .b13-s134-card { background:#F4F4F0; border-color:rgba(26,26,24,0.15); }
.b13-s134-event[data-t="split"]     .b13-s134-card { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b13-s134-tag { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; padding:1px 6px; border-radius:99px; display:inline-block; margin-bottom:4px; color:#fff; }
.b13-s134-tag.s134-dev       { background:#0F6E56; }
.b13-s134-tag.s134-miner     { background:#854F0B; }
.b13-s134-tag.s134-community { background:#534AB7; }
.b13-s134-tag.s134-result    { background:#1A1A18; }
.b13-s134-tag.s134-split     { background:#A32D2D; }
.b13-s134-title   { font-size:11px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b13-s134-summary { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:3px; }
.b13-s134-detail  { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; margin-top:6px; padding-top:6px; border-top:0.5px solid rgba(0,0,0,0.08); display:none; }
.b13-s134-card.expanded .b13-s134-detail { display:block; }

/* ============================================================
   PAGE 16 · BAB 13 · 13.5 SIMULATION (Taproot)
============================================================ */
.b13-s135-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s135-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b13-s135-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b13-s135-tab.s135-act { background:#534AB7; color:#fff; }
.b13-s135-pane { display:none; flex-direction:column; gap:10px; }
.b13-s135-pane.show { display:flex; }
.b13-s135-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b13-s135-bips { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b13-s135-bip { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(83,74,183,0.2); background:#EEEDFE; }
.b13-s135-bip-num  { font-size:11px; font-weight:700; font-family:'Courier Prime',monospace; color:#534AB7; margin-bottom:3px; }
.b13-s135-bip-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s135-bip-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }
.b13-s135-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b13-s135-col { display:flex; flex-direction:column; gap:8px; }
.b13-s135-col-head { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; }
.b13-s135-col-head.s135-before { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b13-s135-col-head.s135-after  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b13-s135-col-head-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; }
.b13-s135-col-head.s135-before .b13-s135-col-head-title { color:#791F1F; }
.b13-s135-col-head.s135-after  .b13-s135-col-head-title { color:#0F6E56; }
.b13-s135-col-head-sub { font-size:10px; opacity:0.75; font-family:'Sora',sans-serif; margin-top:2px; }
.b13-s135-feature { border:0.5px solid rgba(124,58,237,0.1); border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-s135-feature-head { padding:7px 12px; font-size:10px; font-weight:500; font-family:'Sora',sans-serif; background:#F4F4F0; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b13-s135-feature-body { padding:8px 12px; font-size:10px; font-family:'Sora',sans-serif; line-height:1.5; color:#3A3A35; }
.b13-s135-feature-body.s135-bad  { color:#791F1F; }
.b13-s135-feature-body.s135-good { color:#27500A; }
.b13-s135-feature-val { font-size:11px; font-weight:500; font-family:'Courier Prime',monospace; margin-bottom:2px; color:#1A1A18; }
.b13-s135-tx { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b13-s135-tx-head { padding:6px 12px; font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s135-tx-head.s135-before { background:#FCEBEB; }
.b13-s135-tx-head.s135-after  { background:#EAF3DE; }
.b13-s135-tx-body { padding:8px 12px; display:flex; flex-direction:column; gap:4px; }
.b13-s135-tx-row { display:flex; justify-content:space-between; gap:8px; font-size:10px; font-family:'Courier Prime',monospace; }
.b13-s135-tx-label { color:#52524C; flex-shrink:0; }
.b13-s135-tx-val { text-align:right; line-height:1.4; }
.b13-s135-tx-val.s135-bad     { color:#791F1F; }
.b13-s135-tx-val.s135-good    { color:#27500A; }
.b13-s135-tx-val.s135-neutral { color:#3A3A35; }
.b13-s135-tx-divider { height:0.5px; background:rgba(124,58,237,0.08); }
.b13-s135-badge { font-size:9px; padding:1px 6px; border-radius:99px; font-family:'Sora',sans-serif; display:inline-block; }
.b13-s135-badge.s135-bad  { background:#FCEBEB; color:#791F1F; }
.b13-s135-badge.s135-good { background:#EAF3DE; color:#27500A; }
.b13-s135-tl { display:flex; flex-direction:column; gap:6px; position:relative; }
.b13-s135-tl::before { content:''; position:absolute; left:18px; top:0; bottom:0; width:1.5px; background:rgba(124,58,237,0.12); }
.b13-s135-tl-event { display:flex; gap:12px; align-items:flex-start; padding:4px 0; }
.b13-s135-tl-dot { width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; font-family:'Sora',sans-serif; flex-shrink:0; border:2px solid #fff; z-index:1; margin-top:2px; color:#fff; }
.b13-s135-tl-content { flex:1; }
.b13-s135-tl-date  { font-size:10px; font-weight:500; font-family:'Courier Prime',monospace; color:#52524C; }
.b13-s135-tl-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b13-s135-tl-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:2px; }
.b13-s135-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b13-s135-note.s135-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b13-s135-note.s135-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }

/* ============================================================
   PAGE 16 · BAB 13 · 13.6 SIMULATION (Governance)
============================================================ */
.b13-s136-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b13-s136-actors { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.b13-s136-actor { padding:10px 12px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; transition:all 0.18s; background:#F4F4F0; display:flex; flex-direction:column; gap:6px; }
.b13-s136-actor:hover { border-color:rgba(124,58,237,0.25); }
.b13-s136-actor.active { border-color:var(--ac); background:var(--ab); }
.b13-s136-actor-top { display:flex; align-items:center; gap:8px; }
.b13-s136-actor-icon { font-size:20px; flex-shrink:0; }
.b13-s136-actor-name { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s136-actor-sub  { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.4; }
.b13-s136-actor-bar-wrap { display:flex; align-items:center; gap:6px; }
.b13-s136-actor-bar-bg   { flex:1; height:5px; border-radius:99px; background:rgba(0,0,0,0.08); overflow:hidden; }
.b13-s136-actor-bar-fill { height:100%; border-radius:99px; }
.b13-s136-actor-bar-label { font-size:9px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; min-width:70px; text-align:right; }
.b13-s136-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b13-s136-detail-head { padding:12px 14px; display:flex; align-items:center; gap:12px; }
.b13-s136-detail-icon { font-size:28px; flex-shrink:0; }
.b13-s136-detail-name { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b13-s136-detail-sub  { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:2px; line-height:1.4; }
.b13-s136-detail-body { padding:12px 14px; border-top:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:10px; }
.b13-s136-powers { display:flex; flex-direction:column; gap:6px; }
.b13-s136-powers-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b13-s136-power-row { display:flex; align-items:center; gap:8px; }
.b13-s136-power-name { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; min-width:120px; flex-shrink:0; }
.b13-s136-power-bg   { flex:1; height:7px; border-radius:99px; background:rgba(0,0,0,0.07); overflow:hidden; }
.b13-s136-power-fill { height:100%; border-radius:99px; }
.b13-s136-power-pct  { font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; min-width:30px; text-align:right; }
.b13-s136-sl { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b13-s136-strength, .b13-s136-limit { display:flex; flex-direction:column; gap:4px; }
.b13-s136-strength-label { font-size:10px; font-weight:500; color:#27500A; font-family:'Sora',sans-serif; }
.b13-s136-limit-label    { font-size:10px; font-weight:500; color:#791F1F;  font-family:'Sora',sans-serif; }
.b13-s136-strength-item, .b13-s136-limit-item { font-size:10px; font-family:'Sora',sans-serif; line-height:1.5; color:#1A1A18; padding-left:10px; position:relative; }
.b13-s136-strength-item::before { content:'✓'; position:absolute; left:0; color:#27500A; font-size:9px; }
.b13-s136-limit-item::before    { content:'✗'; position:absolute; left:0; color:#791F1F; font-size:9px; }
.b13-s136-example { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b13-s136-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 17 · BAB 14 · Insiden dan Kejadian Langka di Bitcoin
============================================================ */

/* ============================================================
   PAGE 17 · BAB 14 · 14.1 SIMULATION (Integer Overflow)
============================================================ */
.b14-s141-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s141-concept { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.b14-s141-concept-card { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b14-s141-concept-card.s141-proto { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s141-concept-card.s141-impl  { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b14-s141-concept-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:3px; }
.b14-s141-concept-card.s141-proto .b14-s141-concept-label { color:#0F6E56; }
.b14-s141-concept-card.s141-impl  .b14-s141-concept-label { color:#534AB7; }
.b14-s141-concept-val  { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; font-weight:500; }
.b14-s141-concept-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }

.b14-s141-bits-wrap { background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); padding:14px; margin-bottom:10px; }
.b14-s141-bits-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b14-s141-bits { display:flex; gap:2px; flex-wrap:wrap; }
.b14-s141-bit { width:16px; height:16px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; font-family:'Courier Prime',monospace; flex-shrink:0; transition:all 0.3s; }
.b14-s141-bit.s141-zero { background:#E8E6FD; color:#52524C; }
.b14-s141-bit.s141-one  { background:#534AB7; color:#fff; }
.b14-s141-bit.s141-overflow { background:#A32D2D; color:#fff; animation:s141pulse 0.6s ease-in-out infinite alternate; }
@keyframes s141pulse { from{opacity:1;} to{opacity:0.5;} }
.b14-s141-bits-val { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; margin-top:8px; }
.b14-s141-steps { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b14-s141-step { padding:10px 14px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; gap:10px; align-items:flex-start; }
.b14-s141-step.s141-normal { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s141-step.s141-bad    { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b14-s141-step.s141-result { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b14-s141-step.s141-fix    { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b14-s141-step-icon    { font-size:18px; flex-shrink:0; margin-top:1px; }
.b14-s141-step-content { flex:1; display:flex; flex-direction:column; gap:3px; }
.b14-s141-step-title   { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b14-s141-step-val     { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; }
.b14-s141-step-desc    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b14-s141-btn-wrap { display:flex; gap:8px; margin-bottom:10px; }
.b14-s141-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b14-s141-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b14-s141-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b14-s141-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b14-s141-note.s141-idle { background:#F4F4F0; color:#3A3A35; }
.b14-s141-note.s141-done { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 17 · BAB 14 · 14.2 SIMULATION (Reorg)
============================================================ */
.b14-s142-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s142-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b14-s142-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b14-s142-tab.s142-act { background:#534AB7; color:#fff; }
.b14-s142-pane { display:none; flex-direction:column; gap:10px; }
.b14-s142-pane.show { display:flex; }
.b14-s142-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b14-s142-canvas { background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b14-s142-status { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b14-s142-status-card { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; flex-direction:column; gap:3px; }
.b14-s142-status-card.s142-main   { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s142-status-card.s142-alt    { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b14-s142-status-card.s142-orphan { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b14-s142-status-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b14-s142-status-card.s142-main   .b14-s142-status-label { color:#0F6E56; }
.b14-s142-status-card.s142-alt    .b14-s142-status-label { color:#534AB7; }
.b14-s142-status-card.s142-orphan .b14-s142-status-label { color:#791F1F; }
.b14-s142-status-val { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; }
.b14-s142-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b14-s142-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b14-s142-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b14-s142-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b14-s142-step-ind { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; }
.b14-s142-table { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b14-s142-table-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b14-s142-table-body { padding:0; }
.b14-s142-table-row { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; padding:7px 14px; border-bottom:0.5px solid rgba(124,58,237,0.06); gap:4px; font-size:11px; font-family:'Sora',sans-serif; }
.b14-s142-table-row:last-child { border-bottom:none; }
.b14-s142-table-row.s142-header { font-size:10px; font-weight:500; color:#52524C; background:#FAFAF8; }
.b14-s142-cell.s142-safe { color:#0F6E56; font-weight:500; }
.b14-s142-cell.s142-warn { color:#854F0B; font-weight:500; }
.b14-s142-cell.s142-risk { color:#A32D2D; font-weight:500; }
.b14-s142-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b14-s142-note.s142-idle { background:#F4F4F0; color:#3A3A35; }
.b14-s142-note.s142-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b14-s142-note.s142-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b14-s142-note.s142-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 17 · BAB 14 · 14.3 SIMULATION (2013 Chain Split)
============================================================ */
.b14-s143-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s143-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b14-s143-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b14-s143-tab.s143-act { background:#534AB7; color:#fff; }
.b14-s143-pane { display:none; flex-direction:column; gap:10px; }
.b14-s143-pane.show { display:flex; }
.b14-s143-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b14-s143-canvas { background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b14-s143-tl { display:flex; flex-direction:column; gap:0; position:relative; }
.b14-s143-tl::before { content:''; position:absolute; left:72px; top:0; bottom:0; width:1.5px; background:rgba(124,58,237,0.12); }
.b14-s143-tl-event { display:flex; gap:12px; align-items:flex-start; padding:7px 0; }
.b14-s143-tl-time { min-width:60px; text-align:right; font-size:10px; font-weight:500; font-family:'Courier Prime',monospace; color:#52524C; padding-top:5px; flex-shrink:0; }
.b14-s143-tl-dot-wrap { display:flex; flex-direction:column; align-items:center; z-index:1; flex-shrink:0; }
.b14-s143-tl-dot { width:14px; height:14px; border-radius:50%; border:2px solid #fff; flex-shrink:0; margin-top:3px; }
.b14-s143-tl-dot.s143-trigger { background:#854F0B; }
.b14-s143-tl-dot.s143-split   { background:#A32D2D; }
.b14-s143-tl-dot.s143-fix     { background:#0F6E56; }
.b14-s143-tl-dot.s143-result  { background:#534AB7; }
.b14-s143-tl-card { flex:1; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b14-s143-tl-card.s143-trigger { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b14-s143-tl-card.s143-split   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b14-s143-tl-card.s143-fix     { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s143-tl-card.s143-result  { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b14-s143-tl-tag { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; padding:1px 6px; border-radius:99px; display:inline-block; margin-bottom:4px; color:#fff; }
.b14-s143-tl-tag.s143-trigger { background:#854F0B; }
.b14-s143-tl-tag.s143-split   { background:#A32D2D; }
.b14-s143-tl-tag.s143-fix     { background:#0F6E56; }
.b14-s143-tl-tag.s143-result  { background:#534AB7; }
.b14-s143-tl-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b14-s143-tl-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:3px; }
.b14-s143-compare { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.b14-s143-compare-col { display:flex; flex-direction:column; gap:6px; }
.b14-s143-compare-head { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; }
.b14-s143-compare-head.s143-v07 { background:#FAEEDA; color:#854F0B; }
.b14-s143-compare-head.s143-v08 { background:#EEEDFE; color:#534AB7; }
.b14-s143-compare-row { padding:6px 10px; border-radius:var(--border-radius-md); font-size:10px; font-family:'Sora',sans-serif; line-height:1.5; border:0.5px solid transparent; }
.b14-s143-compare-row strong { font-weight:500; }
.b14-s143-compare-row.s143-v07      { background:#FAEEDA; border-color:rgba(133,79,11,0.15); color:#1A1A18; }
.b14-s143-compare-row.s143-v08      { background:#EEEDFE; border-color:rgba(83,74,183,0.15); color:#1A1A18; }
.b14-s143-compare-row.s143-conflict { background:#FCEBEB; border-color:rgba(163,45,45,0.2); color:#791F1F; }
.b14-s143-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b14-s143-note.s143-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b14-s143-note.s143-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,19,0.2); }
.b14-s143-note.s143-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 17 · BAB 14 · 14.4 SIMULATION (Selfish Mining)
============================================================ */
.b14-s144-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s144-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b14-s144-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b14-s144-tab.s144-act { background:#534AB7; color:#fff; }
.b14-s144-pane { display:none; flex-direction:column; gap:10px; }
.b14-s144-pane.show { display:flex; }
.b14-s144-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b14-s144-canvas { background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b14-s144-status { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b14-s144-status-card { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; flex-direction:column; gap:3px; }
.b14-s144-status-card.s144-honest  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s144-status-card.s144-selfish { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b14-s144-status-card.s144-result  { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b14-s144-status-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b14-s144-status-card.s144-honest  .b14-s144-status-label { color:#0F6E56; }
.b14-s144-status-card.s144-selfish .b14-s144-status-label { color:#791F1F; }
.b14-s144-status-card.s144-result  .b14-s144-status-label { color:#534AB7; }
.b14-s144-status-val { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; }
.b14-s144-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b14-s144-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b14-s144-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b14-s144-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b14-s144-step-ind { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; }
.b14-s144-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b14-s144-note.s144-idle { background:#F4F4F0; color:#3A3A35; }
.b14-s144-note.s144-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b14-s144-note.s144-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b14-s144-note.s144-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b14-s144-note.s144-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b14-s144-table { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b14-s144-table-head { padding:8px 14px; background:#F4F4F0; font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b14-s144-table-body { padding:0; }
.b14-s144-table-row { display:grid; grid-template-columns:1fr 1fr 1fr; padding:7px 14px; border-bottom:0.5px solid rgba(124,58,237,0.06); gap:4px; font-size:11px; font-family:'Sora',sans-serif; }
.b14-s144-table-row:last-child { border-bottom:none; }
.b14-s144-table-row.s144-header { font-size:10px; font-weight:500; color:#52524C; background:#FAFAF8; }
.b14-s144-cell.s144-safe { color:#0F6E56; font-weight:500; }
.b14-s144-cell.s144-warn { color:#854F0B; font-weight:500; }
.b14-s144-cell.s144-risk { color:#A32D2D; font-weight:500; }
.b14-s144-risks-label { font-size:10px; font-weight:500; color:#791F1F; font-family:'Sora',sans-serif; }
.b14-s144-risks { display:flex; flex-direction:column; gap:5px; }
.b14-s144-risk-item { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; padding:7px 10px; background:#FAEEDA; border-radius:var(--border-radius-md); border:0.5px solid rgba(133,79,11,0.2); }
.b14-s144-risk-item strong { font-weight:500; color:#854F0B; }

/* ============================================================
   PAGE 17 · BAB 14 · 14.5 SIMULATION (Eclipse Attack)
============================================================ */
.b14-s145-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s145-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b14-s145-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b14-s145-tab.s145-act { background:#534AB7; color:#fff; }
.b14-s145-pane { display:none; flex-direction:column; gap:10px; }
.b14-s145-pane.show { display:flex; }
.b14-s145-analogy { padding:10px 14px; background:#EEEDFE; border-radius:var(--border-radius-lg); border:0.5px solid rgba(83,74,183,0.2); }
.b14-s145-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b14-s145-analogy-text { font-size:11px; color:#1A1A18; font-family:'Sora',sans-serif; line-height:1.6; }
.b14-s145-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b14-s145-canvas { background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); overflow:hidden; }
.b14-s145-legend { display:flex; gap:10px; flex-wrap:wrap; }
.b14-s145-leg { display:flex; align-items:center; gap:5px; font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; }
.b14-s145-leg-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.b14-s145-kp { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; border:0.5px solid transparent; }
.b14-s145-kp.s145-safe { background:#EAF3DE; border-color:rgba(15,110,86,0.2); color:#27500A; }
.b14-s145-kp.s145-warn { background:#FAEEDA; border-color:rgba(133,79,11,0.2); color:#633806; }
.b14-s145-impacts { display:flex; flex-direction:column; gap:8px; }
.b14-s145-impact { padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; gap:10px; align-items:flex-start; }
.b14-s145-impact.s145-attack    { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b14-s145-impact.s145-mitigation{ background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b14-s145-impact-icon    { font-size:16px; flex-shrink:0; margin-top:1px; }
.b14-s145-impact-content { flex:1; }
.b14-s145-impact-title   { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b14-s145-impact-desc    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:2px; }
.b14-s145-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b14-s145-note.s145-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b14-s145-note.s145-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 17 · BAB 14 · 14.6 SIMULATION (Battle-tested)
============================================================ */
.b14-s146-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b14-s146-table { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:14px; }
.b14-s146-table-head { display:grid; grid-template-columns:1fr 90px 100px; padding:8px 14px; background:#F4F4F0; font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; border-bottom:0.5px solid rgba(124,58,237,0.08); }
.b14-s146-row { border-bottom:0.5px solid rgba(124,58,237,0.06); cursor:pointer; transition:background 0.15s; }
.b14-s146-row:last-child { border-bottom:none; }
.b14-s146-row:hover { background:rgba(124,58,237,0.02); }
.b14-s146-row-main { display:grid; grid-template-columns:1fr 90px 100px; padding:9px 14px; align-items:center; gap:4px; }
.b14-s146-row-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b14-s146-row-year  { font-size:10px; font-family:'Courier Prime',monospace; color:#52524C; }
.b14-s146-row-badge { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; padding:2px 8px; border-radius:99px; display:inline-block; }
.b14-s146-row-badge.s146-fixed    { background:#EAF3DE; color:#0F6E56; }
.b14-s146-row-badge.s146-theory   { background:#FAEEDA; color:#854F0B; }
.b14-s146-row-badge.s146-mitigated{ background:#EEEDFE; color:#534AB7; }
.b14-s146-row-detail { display:none; padding:0 14px 12px; display:none; flex-direction:column; gap:8px; }
.b14-s146-row-detail.open { display:flex; }
.b14-s146-detail-section { padding:7px 10px; border-radius:var(--border-radius-md); }
.b14-s146-detail-section.s146-what     { background:#F4F4F0; }
.b14-s146-detail-section.s146-response { background:#EAF3DE; }
.b14-s146-detail-section.s146-lesson   { background:#EEEDFE; }
.b14-s146-detail-label { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; margin-bottom:3px; }
.b14-s146-detail-section.s146-what     .b14-s146-detail-label { color:#3A3A35; }
.b14-s146-detail-section.s146-response .b14-s146-detail-label { color:#0F6E56; }
.b14-s146-detail-section.s146-lesson   .b14-s146-detail-label { color:#534AB7; }
.b14-s146-detail-text { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; }
.b14-s146-pillars-label { font-size:10px; font-weight:500; color:#3A3A35; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b14-s146-pillars { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b14-s146-pillar { padding:10px 12px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:5px; }
.b14-s146-pillar-icon  { font-size:20px; }
.b14-s146-pillar-title { font-size:11px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b14-s146-pillar-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }

/* ============================================================
   PAGE 18 · BAB 15 · Waktu di Bitcoin
============================================================ */

/* ============================================================
   PAGE 18 · BAB 15 · 15.1 SIMULATION (Waktu di Bitcoin)
============================================================ */
.b15-s151-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s151-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b15-s151-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b15-s151-tab.s151-act { background:#534AB7; color:#fff; }
.b15-s151-pane { display:none; flex-direction:column; gap:10px; }
.b15-s151-pane.show { display:flex; }
.b15-s151-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b15-s151-chain-track { display:flex; gap:6px; align-items:center; flex-wrap:wrap; min-height:60px; }
.b15-s151-block { width:52px; height:52px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:'Courier Prime',monospace; flex-shrink:0; border:0.5px solid transparent; transition:all 0.3s; }
.b15-s151-block.s151-past { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b15-s151-block.s151-new  { background:#534AB7; border-color:#534AB7; animation:s151pop 0.4s ease-out; }
.b15-s151-block.s151-ref  { background:#EAF3DE; border-color:rgba(15,110,86,0.3); }
@keyframes s151pop { from{transform:scale(0.7);opacity:0;} to{transform:scale(1);opacity:1;} }
.b15-s151-block-num  { font-size:9px; font-weight:700; color:#534AB7; }
.b15-s151-block.s151-new  .b15-s151-block-num { color:#fff; }
.b15-s151-block.s151-ref  .b15-s151-block-num { color:#0F6E56; }
.b15-s151-block-time { font-size:8px; color:#52524C; margin-top:2px; }
.b15-s151-block.s151-new  .b15-s151-block-time { color:rgba(255,255,255,0.7); }
.b15-s151-chain-arrow { color:#52524C; font-size:14px; flex-shrink:0; }
.b15-s151-chain-info { padding:10px 14px; background:#EEEDFE; border-radius:var(--border-radius-md); border:0.5px solid rgba(83,74,183,0.2); }
.b15-s151-info-label { font-size:10px; color:#534AB7; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:3px; }
.b15-s151-info-val   { font-size:13px; font-family:'Courier Prime',monospace; color:#1A1A18; }
.b15-s151-info-desc  { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:4px; line-height:1.5; }
.b15-s151-ctrl { display:flex; gap:8px; flex-wrap:wrap; }
.b15-s151-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b15-s151-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b15-s151-mtp-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b15-s151-mtp-blocks { display:flex; gap:5px; flex-wrap:wrap; }
.b15-s151-mtp-block { display:flex; flex-direction:column; align-items:center; gap:3px; }
.b15-s151-mtp-bar-wrap { width:40px; height:80px; background:#F4F4F0; border-radius:4px; position:relative; overflow:hidden; border:0.5px solid rgba(124,58,237,0.1); }
.b15-s151-mtp-bar { position:absolute; bottom:0; width:100%; border-radius:4px 4px 0 0; transition:height 0.4s; }
.b15-s151-mtp-median-line { position:absolute; width:100%; height:2px; background:#0F6E56; z-index:2; }
.b15-s151-mtp-block-num { font-size:9px; font-family:'Courier Prime',monospace; color:#52524C; }
.b15-s151-mtp-block-ts  { font-size:8px; font-family:'Courier Prime',monospace; color:#3A3A35; }
.b15-s151-mtp-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b15-s151-mtp-ctrl-label { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s151-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; max-width:200px; }
.b15-s151-slider::-webkit-slider-thumb { -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b15-s151-offset { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:60px; }
.b15-s151-mtp-result { padding:10px 14px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:4px; }
.b15-s151-mtp-result.s151-normal { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b15-s151-mtp-result.s151-warn   { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b15-s151-mtp-result-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; color:#0F6E56; }
.b15-s151-mtp-result.s151-warn .b15-s151-mtp-result-label { color:#854F0B; }
.b15-s151-mtp-result-val  { font-size:12px; font-family:'Courier Prime',monospace; color:#1A1A18; }
.b15-s151-mtp-result-desc { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.5; }
.b15-s151-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 18 · BAB 15 · 15.2 SIMULATION (nLockTime Builder)
============================================================ */
.b15-s152-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s152-usecase-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s152-usecase-btns { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.b15-s152-uc-btn { padding:5px 12px; font-size:11px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b15-s152-uc-btn:hover { background:#EEEDFE; }
.b15-s152-uc-btn.s152-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b15-s152-mode-label { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; margin-bottom:3px; }
.b15-s152-mode-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b15-s152-mode { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:12px; }
.b15-s152-mode-btn { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b15-s152-mode-btn.s152-act { background:#534AB7; color:#fff; }
.b15-s152-input-label { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; margin-bottom:4px; }
.b15-s152-input-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b15-s152-ts-wrap { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b15-s152-ts-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; width:100%; }
.b15-s152-ts-slider::-webkit-slider-thumb { -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b15-s152-ts-labels { display:flex; justify-content:space-between; font-size:9px; color:#52524C; font-family:'Sora',sans-serif; }
.b15-s152-ts-display { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; }
.b15-s152-ts-unix { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-top:2px; }
.b15-s152-input-row { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.b15-s152-input { font-size:13px; font-family:'Courier Prime',monospace; padding:8px 12px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#1A1A18; width:180px; outline:none; }
.b15-s152-input:focus { border-color:#534AB7; }
.b15-s152-input-unit { font-size:11px; color:#52524C; font-family:'Sora',sans-serif; }
.b15-s152-meaning { padding:12px 14px; background:#EEEDFE; border-radius:var(--border-radius-lg); border:0.5px solid rgba(83,74,183,0.2); margin-bottom:8px; }
.b15-s152-meaning-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s152-meaning-text { font-size:13px; color:#1A1A18; font-family:'Sora',sans-serif; line-height:1.6; }
.b15-s152-meaning-sub { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:6px; line-height:1.5; }
.b15-s152-hex-wrap { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.08); margin-bottom:8px; }
.b15-s152-hex-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b15-s152-hex-val { font-size:13px; font-family:'Courier Prime',monospace; color:#1A1A18; letter-spacing:0.1em; }
.b15-s152-hex-explain { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:4px; line-height:1.5; }
.b15-s152-seq-wrap { padding:10px 14px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b15-s152-seq-wrap.s152-ok   { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b15-s152-seq-wrap.s152-warn { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b15-s152-seq-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s152-seq-wrap.s152-ok   .b15-s152-seq-label { color:#0F6E56; }
.b15-s152-seq-wrap.s152-warn .b15-s152-seq-label { color:#854F0B; }
.b15-s152-seq-toggle { display:flex; align-items:center; gap:8px; cursor:pointer; }
.b15-s152-seq-track { width:36px; height:20px; border-radius:99px; background:#D0CDFD; position:relative; transition:background 0.2s; flex-shrink:0; }
.b15-s152-seq-track.s152-on { background:#534AB7; }
.b15-s152-seq-thumb { width:16px; height:16px; border-radius:50%; background:#fff; position:absolute; top:2px; left:2px; transition:left 0.2s; box-shadow:0 1px 3px rgba(0,0,0,0.2); }
.b15-s152-seq-track.s152-on .b15-s152-seq-thumb { left:18px; }
.b15-s152-seq-ttext { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s152-seq-desc { font-size:10px; font-family:'Sora',sans-serif; line-height:1.5; margin-top:6px; }
.b15-s152-seq-wrap.s152-ok   .b15-s152-seq-desc { color:#27500A; }
.b15-s152-seq-wrap.s152-warn .b15-s152-seq-desc { color:#633806; }

/* ============================================================
   PAGE 18 · BAB 15 · 15.3 SIMULATION (nSequence Decoder)
============================================================ */
.b15-s153-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s153-preset-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s153-presets { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.b15-s153-preset-btn { padding:5px 12px; font-size:11px; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b15-s153-preset-btn:hover { background:#EEEDFE; }
.b15-s153-preset-btn.s153-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b15-s153-controls { display:flex; flex-direction:column; gap:10px; margin-bottom:10px; }
.b15-s153-ctrl-card { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; }
.b15-s153-ctrl-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b15-s153-ctrl-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.4; margin-bottom:8px; }
.b15-s153-toggle-row { display:flex; align-items:center; gap:10px; cursor:pointer; }
.b15-s153-toggle-track { width:40px; height:22px; border-radius:99px; background:#E0DEDD; position:relative; transition:background 0.2s; flex-shrink:0; }
.b15-s153-toggle-track.s153-on   { background:#534AB7; }
.b15-s153-toggle-track.s153-warn { background:#A32D2D; }
.b15-s153-toggle-thumb { width:18px; height:18px; border-radius:50%; background:#fff; position:absolute; top:2px; left:2px; transition:left 0.2s; box-shadow:0 1px 3px rgba(0,0,0,0.2); }
.b15-s153-toggle-track.s153-on .b15-s153-toggle-thumb   { left:20px; }
.b15-s153-toggle-track.s153-warn .b15-s153-toggle-thumb { left:20px; }
.b15-s153-toggle-label { font-size:12px; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s153-toggle-state { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; font-style:italic; }
.b15-s153-unit-row { display:flex; gap:6px; }
.b15-s153-unit-btn { flex:1; padding:7px 10px; font-size:11px; font-weight:500; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; text-align:center; }
.b15-s153-unit-btn.s153-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b15-s153-unit-btn:disabled { opacity:0.35; cursor:not-allowed; }
.b15-s153-slider-wrap { display:flex; flex-direction:column; gap:6px; }
.b15-s153-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; width:100%; }
.b15-s153-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b15-s153-slider:disabled { opacity:0.35; }
.b15-s153-slider:disabled::-webkit-slider-thumb { background:#52524C; cursor:not-allowed; }
.b15-s153-slider-labels { display:flex; justify-content:space-between; font-size:9px; color:#52524C; font-family:'Sora',sans-serif; }
.b15-s153-slider-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; font-weight:500; margin-top:4px; }
.b15-s153-meaning { padding:12px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; margin-bottom:8px; }
.b15-s153-meaning.s153-active   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b15-s153-meaning.s153-disabled { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b15-s153-meaning.s153-maxval   { background:#F4F4F0; border-color:rgba(160,160,152,0.2); }
.b15-s153-meaning-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:6px; color:#534AB7; }
.b15-s153-meaning.s153-disabled .b15-s153-meaning-label { color:#A32D2D; }
.b15-s153-meaning.s153-maxval   .b15-s153-meaning-label { color:#3A3A35; }
.b15-s153-meaning-text { font-size:13px; font-family:'Sora',sans-serif; line-height:1.6; color:#1A1A18; }
.b15-s153-meaning-sub  { font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; color:#3A3A35; margin-top:6px; }
.b15-s153-hex-row { display:flex; flex-direction:column; gap:4px; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); margin-bottom:8px; }
.b15-s153-hex-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; }
.b15-s153-hex-val { font-size:14px; font-family:'Courier Prime',monospace; color:#1A1A18; letter-spacing:0.12em; }
.b15-s153-hex-bits { display:flex; gap:2px; flex-wrap:nowrap; overflow-x:auto; margin-top:4px; }
.b15-s153-sbit { width:16px; height:16px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:7px; font-weight:700; font-family:'Courier Prime',monospace; flex-shrink:0; }
.b15-s153-sbit.s153-b0 { background:#E8E6FD; color:#52524C; }
.b15-s153-sbit.s153-b1 { background:#534AB7; color:#fff; }
.b15-s153-sbit.s153-special { background:#A32D2D; color:#fff; }
.b15-s153-sbit.s153-unit { background:#854F0B; color:#fff; }
.b15-s153-bit-labels { display:flex; gap:2px; flex-wrap:nowrap; overflow-x:auto; margin-top:2px; }
.b15-s153-bit-lbl { width:16px; font-size:6px; text-align:center; color:#52524C; font-family:'Sora',sans-serif; flex-shrink:0; }
.b15-s153-usecase { padding:8px 12px; background:#EAF3DE; border-radius:var(--border-radius-md); border:0.5px solid rgba(15,110,86,0.2); font-size:11px; font-family:'Sora',sans-serif; color:#27500A; line-height:1.5; }

/* ============================================================
   PAGE 18 · BAB 15 · 15.4 SIMULATION (CLTV Builder)
============================================================ */
.b15-s154-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s154-scenarios { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.b15-s154-scenario-btn { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.15); background:#FAFAF8; cursor:pointer; text-align:left; transition:all 0.15s; display:flex; flex-direction:column; gap:3px; }
.b15-s154-scenario-btn:hover { border-color:rgba(124,58,237,0.3); }
.b15-s154-scenario-btn.s154-act { border-color:#534AB7; background:#EEEDFE; }
.b15-s154-scenario-title { font-size:12px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s154-scenario-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b15-s154-scenario-btn.s154-act .b15-s154-scenario-title { color:#534AB7; }
.b15-s154-tl-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s154-tl-track { position:relative; height:48px; background:#F4F4F0; border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:10px; }
.b15-s154-tl-zone { position:absolute; top:6px; bottom:6px; border-radius:4px; display:flex; align-items:center; padding:0 8px; }
.b15-s154-tl-zone-label { font-size:9px; font-family:'Sora',sans-serif; font-weight:500; white-space:nowrap; }
.b15-s154-tl-now { position:absolute; top:0; bottom:0; width:2px; background:#52524C; z-index:2; }
.b15-s154-tl-now-label { position:absolute; top:2px; font-size:8px; font-family:'Sora',sans-serif; color:#52524C; white-space:nowrap; }
.b15-s154-tl-lock { position:absolute; top:0; bottom:0; width:2px; background:#534AB7; z-index:2; }
.b15-s154-tl-lock-label { position:absolute; top:2px; font-size:8px; font-family:'Sora',sans-serif; color:#534AB7; white-space:nowrap; }
.b15-s154-claimers { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.b15-s154-claimer { padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b15-s154-claimer.s154-alice { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b15-s154-claimer.s154-bob   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b15-s154-claimer-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b15-s154-claimer.s154-alice .b15-s154-claimer-name { color:#0F6E56; }
.b15-s154-claimer.s154-bob   .b15-s154-claimer-name { color:#534AB7; }
.b15-s154-claimer-cond { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; margin-top:3px; line-height:1.4; }
.b15-s154-script-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s154-script-lines { display:flex; flex-direction:column; gap:3px; margin-bottom:10px; }
.b15-s154-script-line { display:flex; gap:8px; align-items:flex-start; padding:6px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b15-s154-script-line.s154-op-time { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b15-s154-script-line.s154-op-cltv { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b15-s154-script-line.s154-op-flow { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b15-s154-script-line.s154-op-sig  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b15-s154-script-line.s154-op-data { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b15-s154-script-code    { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; min-width:200px; flex-shrink:0; }
.b15-s154-script-explain { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b15-s154-script-line.s154-op-cltv .b15-s154-script-explain { color:#534AB7; }
.b15-s154-script-line.s154-op-time .b15-s154-script-explain { color:#854F0B; }
.b15-s154-script-line.s154-op-sig  .b15-s154-script-explain { color:#0F6E56; }
.b15-s154-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 18 · BAB 15 · 15.5 SIMULATION (CSV Lightning)
============================================================ */
.b15-s155-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s155-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b15-s155-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b15-s155-tab.s155-act { background:#534AB7; color:#fff; }
.b15-s155-pane { display:none; flex-direction:column; gap:10px; }
.b15-s155-pane.show { display:flex; }
.b15-s155-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b15-s155-steps { display:flex; flex-direction:column; gap:0; position:relative; }
.b15-s155-steps::before { content:''; position:absolute; left:20px; top:0; bottom:0; width:1.5px; background:rgba(124,58,237,0.12); z-index:0; }
.b15-s155-step { display:flex; gap:12px; align-items:flex-start; padding:8px 0; position:relative; }
.b15-s155-step-dot { width:18px; height:18px; border-radius:50%; border:2px solid #fff; flex-shrink:0; z-index:1; margin-top:3px; display:flex; align-items:center; justify-content:center; font-size:8px; font-weight:700; color:#fff; }
.b15-s155-step-card { flex:1; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; opacity:0.35; transition:all 0.4s; }
.b15-s155-step-card.active { opacity:1; }
.b15-s155-step-card.s155-open { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b15-s155-step-card.s155-tx   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b15-s155-step-card.s155-csv  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b15-s155-step-card.s155-warn { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b15-s155-step-card.s155-ok   { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b15-s155-step-tag   { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; padding:1px 6px; border-radius:99px; display:inline-block; margin-bottom:4px; color:#fff; }
.b15-s155-step-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b15-s155-step-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:3px; }
.b15-s155-window-wrap { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.1); }
.b15-s155-window-label { font-size:10px; font-weight:500; color:#854F0B; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s155-window-bar-bg { height:20px; background:#E8E6FD; border-radius:99px; overflow:hidden; position:relative; }
.b15-s155-window-bar-fill { height:100%; border-radius:99px; transition:width 0.5s; display:flex; align-items:center; padding:0 8px; }
.b15-s155-window-bar-label { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b15-s155-window-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:6px; line-height:1.5; }
.b15-s155-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b15-s155-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b15-s155-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b15-s155-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b15-s155-step-ind { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; }
.b15-s155-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b15-s155-result.s155-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b15-s155-result.s155-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b15-s155-result.s155-info { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b15-s155-result.s155-idle { background:#F4F4F0; color:#3A3A35; }
.b15-s155-script { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); }
.b15-s155-script-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b15-s155-script-lines { display:flex; flex-direction:column; gap:3px; }
.b15-s155-script-line { display:flex; gap:8px; padding:5px 8px; border-radius:var(--border-radius-md); font-size:10px; font-family:'Courier Prime',monospace; }
.b15-s155-script-line.s155-csv { background:#FAEEDA; color:#854F0B; }
.b15-s155-script-line.s155-sig { background:#EAF3DE; color:#0F6E56; }
.b15-s155-script-line.s155-rev { background:#FCEBEB; color:#A32D2D; }
.b15-s155-script-line.s155-neu { background:#EEEDFE; color:#534AB7; }
.b15-s155-script-code { min-width:160px; flex-shrink:0; }
.b15-s155-script-note { font-family:'Sora',sans-serif; font-size:10px; color:#3A3A35; }
.b15-s155-script-line.s155-csv .b15-s155-script-note { color:#854F0B; }
.b15-s155-script-line.s155-sig .b15-s155-script-note { color:#0F6E56; }
.b15-s155-script-line.s155-rev .b15-s155-script-note { color:#A32D2D; }

/* ============================================================
   PAGE 18 · BAB 15 · 15.6 SIMULATION (Use Case Explorer)
============================================================ */
.b15-s156-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b15-s156-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.b15-s156-card { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; transition:all 0.18s; background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.b15-s156-card:hover { border-color:rgba(124,58,237,0.25); }
.b15-s156-card.s156-act { border-color:var(--ac); background:var(--ab); }
.b15-s156-card-icon  { font-size:22px; }
.b15-s156-card-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s156-card-sub   { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b15-s156-card.s156-act .b15-s156-card-title { color:var(--ac); }
.b15-s156-detail { border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-lg); overflow:hidden; }
.b15-s156-detail-head { padding:12px 14px; display:flex; align-items:center; gap:12px; }
.b15-s156-detail-icon  { font-size:28px; flex-shrink:0; }
.b15-s156-detail-title { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b15-s156-detail-sub   { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; margin-top:2px; line-height:1.4; }
.b15-s156-detail-body { padding:12px 14px; border-top:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:10px; }
.b15-s156-plain { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; font-family:'Sora',sans-serif; line-height:1.6; color:#1A1A18; background:#FAFAF8; }
.b15-s156-components-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b15-s156-component-row { display:flex; gap:6px; flex-wrap:wrap; }
.b15-s156-component { padding:3px 10px; border-radius:99px; font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b15-s156-component.s156-nlocktime { background:#FAEEDA; color:#854F0B; }
.b15-s156-component.s156-nsequence { background:#EEEDFE; color:#534AB7; }
.b15-s156-component.s156-cltv      { background:#EAF3DE; color:#0F6E56; }
.b15-s156-component.s156-csv       { background:#FCEBEB; color:#A32D2D; }
.b15-s156-component.s156-multisig  { background:#F4F4F0; color:#1A1A18; }
.b15-s156-flow-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b15-s156-flow-rows { display:flex; flex-direction:column; gap:3px; }
.b15-s156-flow-row { display:flex; gap:8px; align-items:flex-start; padding:6px 10px; border-radius:var(--border-radius-md); }
.b15-s156-flow-row.s156-green  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b15-s156-flow-row.s156-purple { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b15-s156-flow-row.s156-amber  { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b15-s156-flow-row.s156-red    { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b15-s156-flow-who { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; min-width:90px; flex-shrink:0; margin-top:1px; }
.b15-s156-flow-row.s156-green  .b15-s156-flow-who { color:#0F6E56; }
.b15-s156-flow-row.s156-purple .b15-s156-flow-who { color:#534AB7; }
.b15-s156-flow-row.s156-amber  .b15-s156-flow-who { color:#854F0B; }
.b15-s156-flow-row.s156-red    .b15-s156-flow-who { color:#A32D2D; }
.b15-s156-flow-cond { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b15-s156-limit { padding:8px 12px; background:#F4F4F0; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b15-s156-limit strong { color:#1A1A18; font-weight:500; }

/* ============================================================
   PAGE 19 · BAB 16 · Menjalankan Node
============================================================ */

/* ============================================================
   PAGE 19 · BAB 16 · 16.1 SIMULATION (RPC Terminal IBD)
============================================================ */
.b16-s161-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s161-cmds-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s161-cmds { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s161-cmd-btn { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; text-align:left; transition:all 0.15s; }
.b16-s161-cmd-btn:hover { border-color:rgba(124,58,237,0.3); background:#F4F4F0; }
.b16-s161-cmd-btn.s161-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s161-cmd-code { font-size:12px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s161-cmd-desc { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s161-run-btn { padding:8px 18px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#7C3AED; color:#fff; margin-bottom:10px; transition:all 0.15s; }
.b16-s161-run-btn:hover { background:#534AB7; }
.b16-s161-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b16-s161-terminal-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s161-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s161-terminal-title { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; }
.b16-s161-terminal-body { padding:14px; min-height:180px; display:flex; flex-direction:column; gap:2px; }
.b16-s161-prompt { font-size:12px; font-family:'Courier Prime',monospace; color:#52524C; }
.b16-s161-prompt-user { color:#28C840; }
.b16-s161-prompt-cursor { color:#E0DED8; }
.b16-s161-cmd-line { font-size:12px; font-family:'Courier Prime',monospace; color:#E0DED8; }
.b16-s161-output { margin-top:8px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.7; }
.b16-s161-json-line { display:flex; gap:0; }
.b16-s161-jkey { color:#7C9FDB; }
.b16-s161-jstr { color:#A8D08D; }
.b16-s161-jnum { color:#CE9178; }
.b16-s161-jbtrue  { color:#569CD6; }
.b16-s161-jbfalse { color:#F44747; }
.b16-s161-jpunc { color:#3A3A35; }
.b16-s161-jcomment { color:#6A9955; font-style:italic; }
.b16-s161-explain { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b16-s161-explain-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b16-s161-field { display:flex; gap:8px; align-items:flex-start; padding:6px 10px; border-radius:var(--border-radius-md); background:#F4F4F0; }
.b16-s161-field.s161-hl { background:#2A2A28; }
.b16-s161-field-key { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:180px; flex-shrink:0; }
.b16-s161-field.s161-hl .b16-s161-field-key { color:#7C9FDB; }
.b16-s161-field-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b16-s161-field.s161-hl .b16-s161-field-desc { color:#52524C; }
.b16-s161-field-val { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; margin-left:auto; flex-shrink:0; }
.b16-s161-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 19 · BAB 16 · 16.2 SIMULATION (Block Inspector)
============================================================ */
.b16-s162-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s162-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b16-s162-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b16-s162-tab.s162-act { background:#534AB7; color:#fff; }
.b16-s162-pane { display:none; flex-direction:column; gap:10px; }
.b16-s162-pane.show { display:flex; }
.b16-s162-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b16-s162-checklist { display:flex; flex-direction:column; gap:4px; }
.b16-s162-check { display:flex; gap:10px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.08); opacity:0.3; transition:all 0.35s; background:#FAFAF8; }
.b16-s162-check.s162-done { opacity:1; background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b16-s162-check-icon { font-size:16px; flex-shrink:0; margin-top:1px; }
.b16-s162-check-body { flex:1; }
.b16-s162-check-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b16-s162-check-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:2px; }
.b16-s162-check-val   { font-size:10px; font-family:'Courier Prime',monospace; margin-top:4px; color:#0F6E56; display:none; }
.b16-s162-check.s162-done .b16-s162-check-val { display:block; }
.b16-s162-ctrl { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b16-s162-btn-primary { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b16-s162-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b16-s162-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b16-s162-step-ind { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; }
.b16-s162-verdict { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b16-s162-verdict.s162-idle { background:#F4F4F0; color:#3A3A35; }
.b16-s162-verdict.s162-prog { background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }
.b16-s162-verdict.s162-ok   { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b16-s162-cmds-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s162-cmds { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s162-cmd { display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; transition:all 0.15s; }
.b16-s162-cmd:hover { border-color:#534AB7; background:#EEEDFE; }
.b16-s162-cmd.s162-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s162-cmd-code  { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s162-cmd-hint  { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s162-cmd-arrow { font-size:11px; color:#534AB7; flex-shrink:0; }
.b16-s162-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:8px; }
.b16-s162-term-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s162-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s162-term-lbl { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; }
.b16-s162-term-body { padding:14px; min-height:180px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; }
.s162-tgreen { color:#28C840; } .s162-tgray { color:#3A3A35; } .s162-twhite { color:#E0DED8; }
.s162-tblue  { color:#7C9FDB; } .s162-tstr  { color:#A8D08D; } .s162-tnum  { color:#CE9178; }
.s162-tbt   { color:#569CD6; } .s162-tcm   { color:#6A9955; font-style:italic; }
.b16-s162-fe { display:flex; flex-direction:column; gap:3px; margin-bottom:8px; }
.b16-s162-fe-label { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s162-field { display:flex; gap:8px; padding:5px 10px; border-radius:var(--border-radius-md); background:#2A2A28; }
.b16-s162-fk { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:155px; flex-shrink:0; }
.b16-s162-fv { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; min-width:60px; flex-shrink:0; }
.b16-s162-fd { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; line-height:1.4; }
.b16-s162-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 19 · BAB 16 · 16.3 SIMULATION (Chainstate Explorer)
============================================================ */
.b16-s163-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s163-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b16-s163-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b16-s163-tab.s163-act { background:#534AB7; color:#fff; }
.b16-s163-pane { display:none; flex-direction:column; gap:10px; }
.b16-s163-pane.show { display:flex; }
.b16-s163-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b16-s163-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b16-s163-stat { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; }
.b16-s163-stat.s163-purple { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b16-s163-stat.s163-green  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b16-s163-stat.s163-amber  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b16-s163-stat.s163-gray   { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b16-s163-stat-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b16-s163-stat.s163-purple .b16-s163-stat-label { color:#534AB7; }
.b16-s163-stat.s163-green  .b16-s163-stat-label { color:#0F6E56; }
.b16-s163-stat.s163-amber  .b16-s163-stat-label { color:#854F0B; }
.b16-s163-stat.s163-gray   .b16-s163-stat-label { color:#3A3A35; }
.b16-s163-stat-val { font-size:18px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b16-s163-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:3px; line-height:1.4; }
.b16-s163-bar-wrap { padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-lg); }
.b16-s163-bar-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b16-s163-bar-track { height:24px; background:#E8E6FD; border-radius:99px; overflow:hidden; position:relative; }
.b16-s163-bar-fill { height:100%; border-radius:99px; background:#534AB7; display:flex; align-items:center; padding:0 10px; transition:width 0.8s; width:0%; }
.b16-s163-bar-text { font-size:10px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b16-s163-bar-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:6px; line-height:1.5; }
.b16-s163-ldb-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b16-s163-ldb-row { display:grid; grid-template-columns:120px 1fr; gap:8px; align-items:center; padding:6px 10px; border-radius:var(--border-radius-md); background:#FAFAF8; border:0.5px solid rgba(124,58,237,0.08); }
.b16-s163-ldb-key { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; }
.b16-s163-ldb-val { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b16-s163-ldb-note { padding:10px 14px; border-radius:var(--border-radius-md); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); font-size:11px; font-family:'Sora',sans-serif; color:#3C3489; line-height:1.6; }
.b16-s163-cache-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.b16-s163-cache-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b16-s163-cache-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.5; }
.b16-s163-cache-row { display:flex; gap:8px; align-items:center; }
.b16-s163-cache-minmax { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s163-cache-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b16-s163-cache-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b16-s163-cache-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:70px; text-align:right; flex-shrink:0; }
.b16-s163-cache-result { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b16-s163-cache-result.s163-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b16-s163-cache-result.s163-ok   { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b16-s163-cache-result.s163-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(59,109,17,0.2); }
.b16-s163-cmds-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s163-cmds { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s163-cmd { display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; transition:all 0.15s; }
.b16-s163-cmd:hover { border-color:#534AB7; background:#EEEDFE; }
.b16-s163-cmd.s163-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s163-cmd-code  { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s163-cmd-hint  { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s163-cmd-arrow { font-size:11px; color:#534AB7; flex-shrink:0; }
.b16-s163-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:8px; }
.b16-s163-term-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s163-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s163-term-lbl { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; }
.b16-s163-term-body { padding:14px; min-height:180px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; }
.s163-tg{color:#28C840;}.s163-tgy{color:#3A3A35;}.s163-tw{color:#E0DED8;}
.s163-tb{color:#7C9FDB;}.s163-ts{color:#A8D08D;}.s163-tn{color:#CE9178;}
.s163-tbt{color:#569CD6;}.s163-tcm{color:#6A9955;font-style:italic;}
.b16-s163-fe { display:flex; flex-direction:column; gap:3px; margin-bottom:8px; }
.b16-s163-fe-lbl { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s163-field { display:flex; gap:8px; padding:5px 10px; border-radius:var(--border-radius-md); background:#2A2A28; }
.b16-s163-fk { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:150px; flex-shrink:0; }
.b16-s163-fv { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; min-width:70px; flex-shrink:0; }
.b16-s163-fd { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; line-height:1.4; }
.b16-s163-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 19 · BAB 16 · 16.4 SIMULATION (Pruning Visualizer)
============================================================ */
.b16-s164-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s164-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b16-s164-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b16-s164-tab.s164-act { background:#534AB7; color:#fff; }
.b16-s164-pane { display:none; flex-direction:column; gap:10px; }
.b16-s164-pane.show { display:flex; }
.b16-s164-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b16-s164-tl-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s164-tl-track { display:flex; height:36px; border-radius:var(--border-radius-md); overflow:hidden; }
.b16-s164-tl-seg { height:100%; display:flex; align-items:center; justify-content:center; transition:width 0.5s; }
.b16-s164-tl-seg.s164-pruned { background:#F0EEF8; border-right:0.5px solid rgba(124,58,237,0.1); }
.b16-s164-tl-seg.s164-kept   { background:#534AB7; }
.b16-s164-tl-seg.s164-recent { background:#7C3AED; }
.b16-s164-tl-seg-lbl { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; overflow:hidden; }
.b16-s164-tl-seg.s164-pruned .b16-s164-tl-seg-lbl { color:#52524C; }
.b16-s164-tl-markers { display:flex; justify-content:space-between; font-size:9px; font-family:'Sora',sans-serif; color:#52524C; margin-top:4px; }
.b16-s164-legend { display:flex; gap:12px; flex-wrap:wrap; }
.b16-s164-leg { display:flex; align-items:center; gap:6px; font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b16-s164-leg-dot { width:12px; height:12px; border-radius:3px; flex-shrink:0; }
.b16-s164-ctrl-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.b16-s164-ctrl-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b16-s164-ctrl-sub { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.5; }
.b16-s164-ctrl-row { display:flex; gap:8px; align-items:center; }
.b16-s164-ctrl-mm { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s164-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b16-s164-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b16-s164-ctrl-val { font-size:12px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:70px; text-align:right; flex-shrink:0; }
.b16-s164-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b16-s164-stat { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b16-s164-stat.s164-red    { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b16-s164-stat.s164-green  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b16-s164-stat.s164-purple { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b16-s164-stat-lbl { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b16-s164-stat.s164-red    .b16-s164-stat-lbl { color:#A32D2D; }
.b16-s164-stat.s164-green  .b16-s164-stat-lbl { color:#0F6E56; }
.b16-s164-stat.s164-purple .b16-s164-stat-lbl { color:#534AB7; }
.b16-s164-stat-val { font-size:15px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b16-s164-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b16-s164-tradeoffs { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b16-s164-to { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b16-s164-to.s164-good { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b16-s164-to.s164-bad  { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b16-s164-to-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s164-to.s164-good .b16-s164-to-label { color:#0F6E56; }
.b16-s164-to.s164-bad  .b16-s164-to-label { color:#A32D2D; }
.b16-s164-to-item { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; padding-left:12px; position:relative; }
.b16-s164-to-item::before { content:''; position:absolute; left:0; top:6px; width:5px; height:5px; border-radius:50%; }
.b16-s164-to.s164-good .b16-s164-to-item::before { background:#0F6E56; }
.b16-s164-to.s164-bad  .b16-s164-to-item::before { background:#A32D2D; }
.b16-s164-cmds-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s164-cmds { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s164-cmd { display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; transition:all 0.15s; }
.b16-s164-cmd:hover { border-color:#534AB7; background:#EEEDFE; }
.b16-s164-cmd.s164-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s164-cmd.s164-err { border-color:rgba(163,45,45,0.2); background:#FDF5F5; }
.b16-s164-cmd.s164-err:hover { border-color:#A32D2D; background:#FCEBEB; }
.b16-s164-cmd.s164-err.s164-act { border-color:#A32D2D; background:#FCEBEB; }
.b16-s164-cmd-code  { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s164-cmd.s164-err .b16-s164-cmd-code { color:#A32D2D; }
.b16-s164-cmd-hint  { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s164-cmd-badge { font-size:9px; font-weight:600; padding:2px 7px; border-radius:99px; background:#FCEBEB; color:#A32D2D; flex-shrink:0; }
.b16-s164-cmd-arrow { font-size:11px; color:#534AB7; flex-shrink:0; }
.b16-s164-cmd.s164-err .b16-s164-cmd-arrow { color:#A32D2D; }
.b16-s164-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:8px; }
.b16-s164-term-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s164-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s164-term-lbl { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; }
.b16-s164-term-body { padding:14px; min-height:160px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; }
.s164-tg{color:#28C840;}.s164-tgy{color:#3A3A35;}.s164-tw{color:#E0DED8;}
.s164-tb{color:#7C9FDB;}.s164-ts{color:#A8D08D;}.s164-tn{color:#CE9178;}
.s164-tbt{color:#569CD6;}.s164-tbf{color:#F44747;}.s164-tcm{color:#6A9955;font-style:italic;}
.s164-terr{color:#F44747;font-weight:500;}
.b16-s164-fe { display:flex; flex-direction:column; gap:3px; margin-bottom:8px; }
.b16-s164-fe-lbl { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s164-field { display:flex; gap:8px; padding:5px 10px; border-radius:var(--border-radius-md); background:#2A2A28; }
.b16-s164-field.s164-err-field { background:#2D1A1A; }
.b16-s164-fk { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:140px; flex-shrink:0; }
.b16-s164-field.s164-err-field .b16-s164-fk { color:#F44747; }
.b16-s164-fv { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; min-width:70px; flex-shrink:0; }
.b16-s164-fd { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; line-height:1.4; }
.b16-s164-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b16-s164-note.s164-note-normal { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b16-s164-note.s164-note-err { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 19 · BAB 16 · 16.5 SIMULATION (assumevalid & assumeUTXO)
============================================================ */
.b16-s165-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s165-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b16-s165-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b16-s165-tab.s165-act { background:#534AB7; color:#fff; }
.b16-s165-pane { display:none; flex-direction:column; gap:10px; }
.b16-s165-pane.show { display:flex; }
.b16-s165-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b16-s165-modes { display:flex; flex-direction:column; gap:6px; }
.b16-s165-mode-btn { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; background:#FAFAF8; transition:all 0.15s; display:flex; flex-direction:column; gap:3px; }
.b16-s165-mode-btn:hover { border-color:rgba(124,58,237,0.25); }
.b16-s165-mode-btn.s165-act { border-color:var(--mc); background:var(--mb); }
.b16-s165-mode-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b16-s165-mode-btn.s165-act .b16-s165-mode-title { color:var(--mc); }
.b16-s165-mode-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b16-s165-tl-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b16-s165-tl-row { display:flex; align-items:center; gap:10px; }
.b16-s165-tl-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:120px; flex-shrink:0; }
.b16-s165-tl-bar-wrap { flex:1; height:28px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b16-s165-tl-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 10px; }
.b16-s165-tl-bar-txt { font-size:10px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b16-s165-tl-time { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:60px; flex-shrink:0; text-align:right; }
.b16-s165-phases { display:flex; flex-direction:column; gap:4px; }
.b16-s165-phase { display:flex; gap:8px; align-items:flex-start; padding:7px 12px; border-radius:var(--border-radius-md); }
.b16-s165-phase.s165-done { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b16-s165-phase.s165-skip { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b16-s165-phase.s165-bg   { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b16-s165-phase.s165-snap { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b16-s165-phase-icon  { font-size:14px; flex-shrink:0; margin-top:1px; }
.b16-s165-phase-body  { flex:1; }
.b16-s165-phase-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b16-s165-phase-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }
.b16-s165-phase-time  { font-size:10px; font-family:'Courier Prime',monospace; flex-shrink:0; margin-top:2px; }
.b16-s165-phase.s165-done .b16-s165-phase-time { color:#0F6E56; }
.b16-s165-phase.s165-skip .b16-s165-phase-time { color:#854F0B; }
.b16-s165-phase.s165-bg   .b16-s165-phase-time { color:#534AB7; }
.b16-s165-phase.s165-snap .b16-s165-phase-time { color:#3A3A35; }
.b16-s165-trust { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(83,74,183,0.2); background:#EEEDFE; }
.b16-s165-trust-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s165-trust-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b16-s165-cmds-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s165-cmds { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s165-cmd { display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; transition:all 0.15s; }
.b16-s165-cmd:hover { border-color:#534AB7; background:#EEEDFE; }
.b16-s165-cmd.s165-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s165-cmd-code  { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s165-cmd-hint  { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b16-s165-cmd-arrow { font-size:11px; color:#534AB7; flex-shrink:0; }
.b16-s165-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:8px; }
.b16-s165-term-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s165-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s165-term-lbl { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; }
.b16-s165-term-body { padding:14px; min-height:160px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; }
.s165-tg{color:#28C840;}.s165-tgy{color:#3A3A35;}.s165-tw{color:#E0DED8;}
.s165-tb{color:#7C9FDB;}.s165-ts{color:#A8D08D;}.s165-tn{color:#CE9178;}
.s165-tbt{color:#569CD6;}.s165-tcm{color:#6A9955;font-style:italic;}
.b16-s165-fe { display:flex; flex-direction:column; gap:3px; margin-bottom:8px; }
.b16-s165-fe-lbl { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s165-field { display:flex; gap:8px; padding:5px 10px; border-radius:var(--border-radius-md); background:#2A2A28; }
.b16-s165-fk { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:160px; flex-shrink:0; }
.b16-s165-fv { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; min-width:70px; flex-shrink:0; }
.b16-s165-fd { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; line-height:1.4; }
.b16-s165-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 19 · BAB 16 · 16.6 SIMULATION (10 Daily Commands)
============================================================ */
.b16-s166-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b16-s166-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b16-s166-grid { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b16-s166-cmd { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; cursor:pointer; transition:all 0.15s; }
.b16-s166-cmd:hover { border-color:#534AB7; background:#EEEDFE; }
.b16-s166-cmd.s166-act { border-color:#534AB7; background:#EEEDFE; }
.b16-s166-cmd-num { font-size:10px; font-weight:700; font-family:'Sora',sans-serif; color:#52524C; min-width:18px; flex-shrink:0; }
.b16-s166-cmd.s166-act .b16-s166-cmd-num { color:#534AB7; }
.b16-s166-cmd-code { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b16-s166-cmd-when { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; max-width:130px; text-align:right; line-height:1.3; }
.b16-s166-cmd-arrow { font-size:10px; color:#534AB7; flex-shrink:0; }
.b16-s166-terminal { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; margin-bottom:10px; }
.b16-s166-term-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b16-s166-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b16-s166-term-lbl { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; flex:1; }
.b16-s166-term-cmd { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; }
.b16-s166-term-body { padding:14px; min-height:180px; font-size:11px; font-family:'Courier Prime',monospace; line-height:1.8; }
.s166-tg{color:#28C840;}.s166-tgy{color:#3A3A35;}.s166-tw{color:#E0DED8;}
.s166-tb{color:#7C9FDB;}.s166-ts{color:#A8D08D;}.s166-tn{color:#CE9178;}
.s166-tbt{color:#569CD6;}.s166-tbf{color:#F44747;}.s166-tcm{color:#6A9955;font-style:italic;}
.b16-s166-explain { display:flex; flex-direction:column; gap:8px; }
.b16-s166-explain-head { display:flex; gap:10px; align-items:flex-start; padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b16-s166-explain-num { font-size:20px; font-weight:700; font-family:'Sora',sans-serif; color:#534AB7; flex-shrink:0; line-height:1; }
.b16-s166-explain-body { flex:1; }
.b16-s166-explain-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b16-s166-explain-when { font-size:11px; font-family:'Sora',sans-serif; color:#534AB7; margin-top:3px; line-height:1.4; }
.b16-s166-explain-why  { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:4px; line-height:1.5; }
.b16-s166-fe { display:flex; flex-direction:column; gap:3px; }
.b16-s166-fe-lbl { font-size:10px; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b16-s166-field { display:flex; gap:8px; padding:5px 10px; border-radius:var(--border-radius-md); background:#2A2A28; }
.b16-s166-fk { font-size:10px; font-family:'Courier Prime',monospace; color:#7C9FDB; min-width:160px; flex-shrink:0; }
.b16-s166-fv { font-size:10px; font-family:'Courier Prime',monospace; color:#CE9178; min-width:70px; flex-shrink:0; }
.b16-s166-fd { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; line-height:1.4; }

/* ============================================================
   PAGE 20 · BAB 17 · SPV & Light Clients
============================================================ */

/* ============================================================
   PAGE 20 · BAB 17 · 17.1 SIMULATION (SPV vs Full Node)
============================================================ */
.b17-s171-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s171-toggle { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b17-s171-toggle-btn { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b17-s171-toggle-btn.s171-act { background:#534AB7; color:#fff; }
.b17-s171-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.b17-s171-col { display:flex; flex-direction:column; gap:6px; }
.b17-s171-col-head { padding:10px 14px; border-radius:var(--border-radius-lg); display:flex; flex-direction:column; gap:3px; }
.b17-s171-col-head.s171-full { background:#534AB7; }
.b17-s171-col-head.s171-spv  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s171-col-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; }
.b17-s171-col-head.s171-full .b17-s171-col-title { color:#fff; }
.b17-s171-col-head.s171-spv  .b17-s171-col-title { color:#0F6E56; }
.b17-s171-col-sub { font-size:10px; font-family:'Sora',sans-serif; opacity:0.8; }
.b17-s171-col-head.s171-spv .b17-s171-col-sub { color:#27500A; }
.b17-s171-col-head.s171-full .b17-s171-col-sub { color:rgba(255,255,255,0.8); }
.b17-s171-row { display:flex; flex-direction:column; gap:2px; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b17-s171-row.s171-full { background:#EEEDFE; border-color:rgba(83,74,183,0.15); }
.b17-s171-row.s171-spv  { background:#EAF3DE; border-color:rgba(15,110,86,0.15); }
.b17-s171-row-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; color:#52524C; text-transform:uppercase; letter-spacing:0.05em; }
.b17-s171-row-val { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b17-s171-badge { display:inline-block; font-size:9px; padding:1px 6px; border-radius:99px; margin-top:3px; font-family:'Sora',sans-serif; font-weight:500; }
.b17-s171-badge.s171-full { background:#534AB7; color:#fff; }
.b17-s171-badge.s171-spv  { background:#0F6E56; color:#fff; }
.b17-s171-cando-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b17-s171-cando-wrap { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:10px; }
.b17-s171-cando { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b17-s171-cando.s171-can  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b17-s171-cando.s171-cant { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b17-s171-cando-title { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b17-s171-cando.s171-can  .b17-s171-cando-title { color:#0F6E56; }
.b17-s171-cando.s171-cant .b17-s171-cando-title { color:#A32D2D; }
.b17-s171-cando-item { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; padding-left:12px; position:relative; }
.b17-s171-cando-item::before { content:''; position:absolute; left:0; top:6px; width:5px; height:5px; border-radius:50%; }
.b17-s171-cando.s171-can  .b17-s171-cando-item::before { background:#0F6E56; }
.b17-s171-cando.s171-cant .b17-s171-cando-item::before { background:#A32D2D; }
.b17-s171-net-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b17-s171-net-diagram { padding:14px; background:#F4F4F0; border-radius:var(--border-radius-lg); display:flex; align-items:center; gap:0; margin-bottom:6px; }
.b17-s171-net-node { display:flex; flex-direction:column; align-items:center; gap:6px; flex-shrink:0; }
.b17-s171-net-icon { width:48px; height:48px; border-radius:var(--border-radius-md); display:flex; align-items:center; justify-content:center; font-size:22px; }
.b17-s171-net-icon.s171-ni-full { background:#534AB7; }
.b17-s171-net-icon.s171-ni-spv  { background:#EAF3DE; border:1.5px solid rgba(15,110,86,0.3); }
.b17-s171-net-icon.s171-ni-peer { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.15); }
.b17-s171-net-name { font-size:9px; font-family:'Sora',sans-serif; color:#3A3A35; text-align:center; }
.b17-s171-net-arrow { flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:0 6px; }
.b17-s171-net-arrow-line { height:2px; background:linear-gradient(90deg,rgba(83,74,183,0.3),rgba(83,74,183,0.7)); border-radius:1px; width:100%; }
.b17-s171-net-arrow-label { font-size:8px; font-family:'Sora',sans-serif; color:#534AB7; white-space:nowrap; }
.b17-s171-net-arrow-label.s171-down { color:#3A3A35; }
.b17-s171-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 20 · BAB 17 · 17.2 SIMULATION (Merkle Proof Visualizer)
============================================================ */
.b17-s172-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s172-tx-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b17-s172-tx-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:4px; margin-bottom:10px; }
.b17-s172-tx-btn { padding:6px 4px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.15); background:#FAFAF8; cursor:pointer; text-align:center; transition:all 0.2s; }
.b17-s172-tx-btn:hover { border-color:#534AB7; background:#EEEDFE; }
.b17-s172-tx-btn.s172-target { border-color:#534AB7; background:#534AB7; }
.b17-s172-tx-btn.s172-proof  { border-color:#854F0B; background:#FAEEDA; }
.b17-s172-tx-btn.s172-other  { opacity:0.4; }
.b17-s172-tx-num { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s172-tx-btn.s172-target .b17-s172-tx-num { color:#fff; }
.b17-s172-tx-btn.s172-proof  .b17-s172-tx-num { color:#854F0B; }
.b17-s172-tx-btn.s172-other  .b17-s172-tx-num { color:#52524C; }
.b17-s172-tx-hash { font-size:7px; font-family:'Courier Prime',monospace; color:#52524C; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.b17-s172-tx-btn.s172-target .b17-s172-tx-hash { color:rgba(255,255,255,0.7); }
.b17-s172-tx-btn.s172-proof  .b17-s172-tx-hash { color:#854F0B; }
.b17-s172-tree-wrap { overflow-x:auto; margin-bottom:10px; }
.b17-s172-steps-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b17-s172-steps { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.b17-s172-step { display:flex; gap:8px; align-items:flex-start; padding:6px 10px; border-radius:var(--border-radius-md); }
.b17-s172-step.s172-target { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b17-s172-step.s172-proof  { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s172-step.s172-root   { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s172-step-icon { font-size:14px; flex-shrink:0; }
.b17-s172-step-body { flex:1; }
.b17-s172-step-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s172-step-hash  { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; margin-top:2px; }
.b17-s172-step-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; line-height:1.4; }
.b17-s172-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-bottom:10px; }
.b17-s172-stat { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:2px; }
.b17-s172-stat.s172-purple { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b17-s172-stat.s172-green  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s172-stat.s172-amber  { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s172-stat-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s172-stat.s172-purple .b17-s172-stat-label { color:#534AB7; }
.b17-s172-stat.s172-green  .b17-s172-stat-label { color:#0F6E56; }
.b17-s172-stat.s172-amber  .b17-s172-stat-label { color:#854F0B; }
.b17-s172-stat-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s172-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b17-s172-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 20 · BAB 17 · 17.3 SIMULATION (Bloom Filter)
============================================================ */
.b17-s173-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s173-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b17-s173-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b17-s173-tab.s173-act { background:#534AB7; color:#fff; }
.b17-s173-pane { display:none; flex-direction:column; gap:10px; }
.b17-s173-pane.show { display:flex; }
.b17-s173-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b17-s173-array-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b17-s173-array { display:flex; gap:3px; flex-wrap:wrap; }
.b17-s173-bit { width:22px; height:22px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; font-family:'Courier Prime',monospace; transition:all 0.3s; border:0.5px solid transparent; cursor:default; }
.b17-s173-bit.s173-off { background:#F4F4F0; color:#52524C; border-color:rgba(124,58,237,0.08); }
.b17-s173-bit.s173-on  { background:#534AB7; color:#fff; border-color:#534AB7; }
.b17-s173-bit.s173-hit { background:#A32D2D; color:#fff; border-color:#A32D2D; }
.b17-s173-bit-idx { font-size:7px; display:block; text-align:center; color:#52524C; font-family:'Sora',sans-serif; margin-top:1px; }
.b17-s173-section-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b17-s173-add-wrap { display:flex; gap:8px; align-items:center; }
.b17-s173-select { font-size:12px; font-family:'Courier Prime',monospace; padding:6px 10px; border:0.5px solid rgba(124,58,237,0.2); border-radius:var(--border-radius-md); background:#FAFAF8; color:#534AB7; flex:1; outline:none; }
.b17-s173-add-btn { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; flex-shrink:0; }
.b17-s173-query-btn { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#0F6E56; color:#fff; flex-shrink:0; }
.b17-s173-addrs { display:flex; flex-direction:column; gap:4px; }
.b17-s173-empty { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; font-style:italic; padding:6px 0; }
.b17-s173-addr { display:flex; gap:8px; align-items:center; padding:6px 10px; border-radius:var(--border-radius-md); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; }
.b17-s173-addr-text { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; flex:1; }
.b17-s173-addr-bits { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b17-s173-addr-btn { padding:3px 10px; font-size:10px; border-radius:99px; border:0.5px solid rgba(163,45,45,0.3); background:transparent; color:#A32D2D; cursor:pointer; font-family:'Sora',sans-serif; }
.b17-s173-result { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; }
.b17-s173-result.s173-idle { background:#F4F4F0; color:#3A3A35; }
.b17-s173-result.s173-yes  { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s173-result.s173-no   { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b17-s173-result.s173-fp   { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s173-priv-steps { display:flex; flex-direction:column; gap:6px; }
.b17-s173-priv-step { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b17-s173-priv-step.s173-spy  { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b17-s173-priv-step.s173-info { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b17-s173-priv-step.s173-warn { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b17-s173-priv-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s173-priv-step.s173-spy  .b17-s173-priv-label { color:#A32D2D; }
.b17-s173-priv-step.s173-info .b17-s173-priv-label { color:#534AB7; }
.b17-s173-priv-step.s173-warn .b17-s173-priv-label { color:#854F0B; }
.b17-s173-priv-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; }
.b17-s173-priv-sub  { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; margin-top:3px; }
.b17-s173-bar-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b17-s173-bars { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b17-s173-bar-row { display:flex; align-items:center; gap:8px; }
.b17-s173-bar-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:110px; flex-shrink:0; }
.b17-s173-bar-track { flex:1; height:20px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b17-s173-bar-fill { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; }
.b17-s173-bar-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b17-s173-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }

/* ============================================================
   PAGE 20 · BAB 17 · 17.4 SIMULATION (BIP 157/158)
============================================================ */
.b17-s174-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s174-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b17-s174-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b17-s174-tab.s174-act { background:#534AB7; color:#fff; }
.b17-s174-pane { display:none; flex-direction:column; gap:10px; }
.b17-s174-pane.show { display:flex; }
.b17-s174-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b17-s174-flows { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b17-s174-flow { display:flex; flex-direction:column; gap:6px; }
.b17-s174-flow-head { padding:8px 12px; border-radius:var(--border-radius-lg); display:flex; flex-direction:column; gap:2px; }
.b17-s174-flow-head.s174-bip37  { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b17-s174-flow-head.s174-bip158 { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s174-flow-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; }
.b17-s174-flow-head.s174-bip37  .b17-s174-flow-title { color:#A32D2D; }
.b17-s174-flow-head.s174-bip158 .b17-s174-flow-title { color:#0F6E56; }
.b17-s174-flow-sub { font-size:10px; font-family:'Sora',sans-serif; }
.b17-s174-flow-head.s174-bip37  .b17-s174-flow-sub { color:#791F1F; }
.b17-s174-flow-head.s174-bip158 .b17-s174-flow-sub { color:#27500A; }
.b17-s174-flow-step { display:flex; gap:8px; align-items:flex-start; padding:7px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b17-s174-flow-step.s174-client { background:#EEEDFE; border-color:rgba(83,74,183,0.15); }
.b17-s174-flow-step.s174-node   { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b17-s174-flow-step.s174-warn   { background:#FCEBEB; border-color:rgba(163,45,45,0.15); }
.b17-s174-flow-step.s174-good   { background:#EAF3DE; border-color:rgba(15,110,86,0.15); }
.b17-s174-flow-who { font-size:9px; font-weight:600; font-family:'Sora',sans-serif; min-width:42px; flex-shrink:0; margin-top:1px; }
.b17-s174-flow-step.s174-client .b17-s174-flow-who { color:#534AB7; }
.b17-s174-flow-step.s174-node   .b17-s174-flow-who { color:#3A3A35; }
.b17-s174-flow-step.s174-warn   .b17-s174-flow-who { color:#A32D2D; }
.b17-s174-flow-step.s174-good   .b17-s174-flow-who { color:#0F6E56; }
.b17-s174-flow-text { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b17-s174-flow-arrow { text-align:center; font-size:12px; color:#52524C; }
.b17-s174-privacy-wrap { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b17-s174-privacy { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b17-s174-privacy.s174-bad  { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b17-s174-privacy.s174-good { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b17-s174-privacy-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b17-s174-privacy.s174-bad  .b17-s174-privacy-label { color:#A32D2D; }
.b17-s174-privacy.s174-good .b17-s174-privacy-label { color:#0F6E56; }
.b17-s174-privacy-item { display:flex; gap:6px; align-items:flex-start; font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b17-s174-privacy-icon { flex-shrink:0; }
.b17-s174-bw-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b17-s174-bw-rows { display:flex; flex-direction:column; gap:6px; }
.b17-s174-bw-row { display:flex; align-items:center; gap:8px; }
.b17-s174-bw-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:150px; flex-shrink:0; }
.b17-s174-bw-track { flex:1; height:20px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b17-s174-bw-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; }
.b17-s174-bw-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b17-s174-bw-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:60px; text-align:right; flex-shrink:0; }
.b17-s174-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s174-gcs-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b17-s174-gcs-block { padding:10px 14px; background:#FAFAF8; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); display:flex; flex-direction:column; gap:8px; }
.b17-s174-gcs-block-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b17-s174-gcs-outputs { display:flex; gap:4px; flex-wrap:wrap; }
.b17-s174-gcs-output { padding:3px 8px; border-radius:99px; background:#EEEDFE; font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; }
.b17-s174-gcs-arrow { font-size:11px; color:#52524C; text-align:center; }
.b17-s174-gcs-filter { padding:8px 12px; background:#EAF3DE; border-radius:var(--border-radius-md); border:0.5px solid rgba(15,110,86,0.2); }
.b17-s174-gcs-filter-label { font-size:9px; font-weight:500; color:#0F6E56; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b17-s174-gcs-filter-val  { font-size:11px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; }
.b17-s174-gcs-filter-size { font-size:10px; font-family:'Sora',sans-serif; color:#0F6E56; margin-top:3px; }
.b17-s174-gcs-check-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b17-s174-gcs-btns { display:flex; gap:6px; flex-wrap:wrap; }
.b17-s174-gcs-btn { padding:4px 12px; border-radius:99px; font-size:10px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b17-s174-gcs-btn:hover { background:#EEEDFE; }
.b17-s174-gcs-btn.s174-match { background:#534AB7; color:#fff; border-color:#534AB7; }
.b17-s174-gcs-result { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b17-s174-gcs-result.s174-gcs-yes { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s174-gcs-result.s174-gcs-no  { background:#F4F4F0; color:#3A3A35; }
.b17-s174-gcs-result.s174-gcs-fp  { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s174-gcs-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; background:#EEEDFE; color:#3C3489; border:0.5px solid rgba(83,74,183,0.2); }

/* ============================================================
   PAGE 20 · BAB 17 · 17.5 SIMULATION (Attack Scenarios)
============================================================ */
.b17-s175-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s175-scenarios { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b17-s175-scenario { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; background:#FAFAF8; transition:all 0.15s; display:flex; gap:10px; align-items:flex-start; }
.b17-s175-scenario:hover { border-color:rgba(124,58,237,0.25); }
.b17-s175-scenario.s175-act.s175-red   { border-color:#A32D2D; background:#FCEBEB; }
.b17-s175-scenario.s175-act.s175-amber { border-color:#854F0B; background:#FAEEDA; }
.b17-s175-scenario.s175-act.s175-green { border-color:#0F6E56; background:#EAF3DE; }
.b17-s175-scenario-icon { font-size:18px; flex-shrink:0; margin-top:1px; }
.b17-s175-scenario-body { flex:1; }
.b17-s175-scenario-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s175-scenario.s175-act.s175-red   .b17-s175-scenario-title { color:#A32D2D; }
.b17-s175-scenario.s175-act.s175-amber .b17-s175-scenario-title { color:#854F0B; }
.b17-s175-scenario.s175-act.s175-green .b17-s175-scenario-title { color:#0F6E56; }
.b17-s175-scenario-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; line-height:1.4; }
.b17-s175-detail { display:flex; flex-direction:column; gap:10px; margin-bottom:10px; }
.b17-s175-detail-head { padding:12px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; }
.b17-s175-detail-head.s175-red   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b17-s175-detail-head.s175-amber { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b17-s175-detail-head.s175-green { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b17-s175-detail-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:6px; }
.b17-s175-detail-head.s175-red   .b17-s175-detail-label { color:#A32D2D; }
.b17-s175-detail-head.s175-amber .b17-s175-detail-label { color:#854F0B; }
.b17-s175-detail-head.s175-green .b17-s175-detail-label { color:#0F6E56; }
.b17-s175-detail-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; margin-bottom:4px; }
.b17-s175-detail-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b17-s175-metrics { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b17-s175-metric { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b17-s175-metric.s175-mred   { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b17-s175-metric.s175-mamber { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s175-metric.s175-mgreen { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s175-metric-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s175-metric.s175-mred   .b17-s175-metric-label { color:#A32D2D; }
.b17-s175-metric.s175-mamber .b17-s175-metric-label { color:#854F0B; }
.b17-s175-metric.s175-mgreen .b17-s175-metric-label { color:#0F6E56; }
.b17-s175-metric-val { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s175-metric-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.3; }
.b17-s175-cando-wrap { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b17-s175-cando { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b17-s175-cando.s175-can  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b17-s175-cando.s175-cant { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b17-s175-cando-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s175-cando.s175-can  .b17-s175-cando-label { color:#0F6E56; }
.b17-s175-cando.s175-cant .b17-s175-cando-label { color:#A32D2D; }
.b17-s175-cando-item { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; padding-left:12px; position:relative; }
.b17-s175-cando-item::before { content:''; position:absolute; left:0; top:6px; width:5px; height:5px; border-radius:50%; }
.b17-s175-cando.s175-can  .b17-s175-cando-item::before { background:#0F6E56; }
.b17-s175-cando.s175-cant .b17-s175-cando-item::before { background:#A32D2D; }
.b17-s175-mitigations { display:flex; flex-direction:column; gap:4px; }
.b17-s175-mit-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b17-s175-mit { display:flex; gap:8px; align-items:flex-start; padding:7px 10px; border-radius:var(--border-radius-md); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.15); }
.b17-s175-mit-icon { font-size:13px; flex-shrink:0; }
.b17-s175-mit-text { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b17-s175-conf-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.b17-s175-conf-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b17-s175-conf-row { display:flex; gap:8px; align-items:center; }
.b17-s175-conf-mm { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b17-s175-conf-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b17-s175-conf-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b17-s175-conf-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:100px; text-align:right; flex-shrink:0; }
.b17-s175-conf-result { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b17-s175-conf-result.s175-conf-safe { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b17-s175-conf-result.s175-conf-ok   { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s175-conf-result.s175-conf-warn { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 20 · BAB 17 · 17.6 SIMULATION (Light Client Explorer)
============================================================ */
.b17-s176-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b17-s176-wallets { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.b17-s176-wallet { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; background:#FAFAF8; transition:all 0.15s; display:flex; gap:10px; align-items:center; }
.b17-s176-wallet:hover { border-color:rgba(124,58,237,0.25); background:#F4F4F0; }
.b17-s176-wallet.s176-act { background:var(--wb); border-color:var(--wc); }
.b17-s176-wallet-icon { font-size:22px; flex-shrink:0; }
.b17-s176-wallet-body { flex:1; }
.b17-s176-wallet-name { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s176-wallet.s176-act .b17-s176-wallet-name { color:var(--wc); }
.b17-s176-wallet-model { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; }
.b17-s176-badges { display:flex; gap:4px; margin-left:auto; flex-shrink:0; }
.b17-s176-badge { padding:2px 8px; border-radius:99px; font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b17-s176-badge.s176-priv-high  { background:#EAF3DE; color:#0F6E56; }
.b17-s176-badge.s176-priv-med   { background:#FAEEDA; color:#854F0B; }
.b17-s176-badge.s176-priv-low   { background:#FCEBEB; color:#A32D2D; }
.b17-s176-badge.s176-trust-zero { background:#EEEDFE; color:#534AB7; }
.b17-s176-badge.s176-trust-low  { background:#EAF3DE; color:#0F6E56; }
.b17-s176-badge.s176-trust-med  { background:#FAEEDA; color:#854F0B; }
.b17-s176-badge.s176-trust-high { background:#FCEBEB; color:#A32D2D; }
.b17-s176-detail { display:flex; flex-direction:column; gap:10px; }
.b17-s176-detail-head { padding:12px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; gap:12px; align-items:flex-start; }
.b17-s176-detail-icon { font-size:28px; flex-shrink:0; }
.b17-s176-detail-body { flex:1; }
.b17-s176-detail-name { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b17-s176-detail-subtitle { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; }
.b17-s176-detail-badges { display:flex; gap:4px; margin-top:6px; flex-wrap:wrap; }
.b17-s176-detail-desc { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); }
.b17-s176-specs { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.b17-s176-spec { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:2px; }
.b17-s176-spec.s176-good { background:#EAF3DE; }
.b17-s176-spec.s176-ok   { background:#FAEEDA; }
.b17-s176-spec.s176-warn { background:#FCEBEB; }
.b17-s176-spec.s176-info { background:#EEEDFE; }
.b17-s176-spec-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; color:#52524C; text-transform:uppercase; letter-spacing:0.04em; }
.b17-s176-spec-val { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b17-s176-forwho { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(83,74,183,0.15); background:#EEEDFE; display:flex; flex-direction:column; gap:6px; }
.b17-s176-forwho-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b17-s176-forwho-item { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; padding-left:12px; position:relative; }
.b17-s176-forwho-item::before { content:''; position:absolute; left:0; top:6px; width:5px; height:5px; border-radius:50%; background:#534AB7; }
.b17-s176-tradeoff { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b17-s176-tradeoff-label { font-size:10px; font-weight:500; color:#854F0B; font-family:'Sora',sans-serif; margin-bottom:4px; }

/* ============================================================
   PAGE 21 · BAB 18 · Wire Protocol & Block Propagation
============================================================ */

/* ============================================================
   PAGE 21 · BAB 18 · 18.1 SIMULATION (Wire Message Inspector)
============================================================ */
.b18-s181-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s181-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s181-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s181-tab.s181-act { background:#534AB7; color:#fff; }
.b18-s181-pane { display:none; flex-direction:column; gap:10px; }
.b18-s181-pane.show { display:flex; }
.b18-s181-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s181-msg-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s181-msgs { display:flex; gap:6px; flex-wrap:wrap; }
.b18-s181-msg-btn { padding:5px 12px; border-radius:99px; font-size:11px; font-weight:500; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Courier Prime',monospace; transition:all 0.15s; }
.b18-s181-msg-btn:hover { background:#EEEDFE; }
.b18-s181-msg-btn.s181-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b18-s181-hex-wrap { background:#1A1A18; border-radius:var(--border-radius-lg); overflow:hidden; }
.b18-s181-hex-bar { padding:8px 14px; background:#2A2A28; display:flex; align-items:center; gap:8px; }
.b18-s181-hex-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.b18-s181-hex-title { font-size:11px; font-family:'Sora',sans-serif; color:#3A3A35; margin-left:4px; flex:1; }
.b18-s181-hex-cmd { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; }
.b18-s181-hex-body { padding:14px; font-size:11px; font-family:'Courier Prime',monospace; line-height:2; overflow-x:auto; }
.b18-s181-hex-row { display:flex; gap:8px; align-items:baseline; margin-bottom:2px; }
.b18-s181-hex-offset { color:#3A3A35; min-width:42px; font-size:10px; }
.b18-s181-hex-bytes { display:flex; gap:4px; flex-wrap:wrap; flex:1; }
.b18-s181-byte { padding:1px 4px; border-radius:3px; font-size:11px; cursor:default; transition:opacity 0.15s; }
.b18-s181-byte:hover { opacity:0.8; }
.b18-s181-byte.s181-magic   { background:#534AB7; color:#fff; }
.b18-s181-byte.s181-command { background:#854F0B; color:#fff; }
.b18-s181-byte.s181-length  { background:#0F6E56; color:#fff; }
.b18-s181-byte.s181-check   { background:#A32D2D; color:#fff; }
.b18-s181-byte.s181-payload { background:#2A2A28; color:#A8D08D; border:0.5px solid rgba(168,208,141,0.2); }
.b18-s181-byte.s181-null    { background:#1A1A18; color:#4A4A48; }
.b18-s181-legend { display:flex; gap:8px; flex-wrap:wrap; }
.b18-s181-leg { display:flex; align-items:center; gap:5px; font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b18-s181-leg-dot { width:12px; height:12px; border-radius:3px; flex-shrink:0; }
.b18-s181-fields { display:flex; flex-direction:column; gap:4px; }
.b18-s181-field { border-radius:var(--border-radius-md); border:0.5px solid transparent; overflow:hidden; }
.b18-s181-field.s181-magic   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b18-s181-field.s181-command { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s181-field.s181-length  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s181-field.s181-check   { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b18-s181-field.s181-payload { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b18-s181-field-top { display:flex; gap:10px; align-items:flex-start; padding:7px 12px; }
.b18-s181-field-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; min-width:80px; flex-shrink:0; }
.b18-s181-field.s181-magic   .b18-s181-field-name { color:#534AB7; }
.b18-s181-field.s181-command .b18-s181-field-name { color:#854F0B; }
.b18-s181-field.s181-length  .b18-s181-field-name { color:#0F6E56; }
.b18-s181-field.s181-check   .b18-s181-field-name { color:#A32D2D; }
.b18-s181-field.s181-payload .b18-s181-field-name { color:#3A3A35; }
.b18-s181-field-bytes { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; min-width:160px; flex-shrink:0; }
.b18-s181-field-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b18-s181-field-analogy { font-size:10px; font-family:'Sora',sans-serif; color:#534AB7; line-height:1.4; padding:4px 12px 7px 92px; font-style:italic; }
.b18-s181-flags { display:flex; flex-direction:column; gap:4px; }
.b18-s181-flags-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b18-s181-flag { display:flex; gap:8px; align-items:center; padding:5px 10px; border-radius:var(--border-radius-md); }
.b18-s181-flag.s181-on  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s181-flag.s181-off { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); opacity:0.5; }
.b18-s181-flag-bit { font-size:10px; font-family:'Courier Prime',monospace; min-width:60px; flex-shrink:0; }
.b18-s181-flag.s181-on  .b18-s181-flag-bit { color:#0F6E56; }
.b18-s181-flag.s181-off .b18-s181-flag-bit { color:#52524C; }
.b18-s181-flag-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; min-width:130px; flex-shrink:0; color:#1A1A18; }
.b18-s181-flag-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b18-s181-net { padding:14px; background:#F4F4F0; border-radius:var(--border-radius-lg); }
.b18-s181-net-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:10px; }
.b18-s181-net-note { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; margin-top:8px; }

/* ============================================================
   PAGE 21 · BAB 18 · 18.2 SIMULATION (Handshake & Message Flow)
============================================================ */
.b18-s182-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s182-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s182-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s182-tab.s182-act { background:#534AB7; color:#fff; }
.b18-s182-pane { display:none; flex-direction:column; gap:10px; }
.b18-s182-pane.show { display:flex; }
.b18-s182-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s182-actors { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s182-actor { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; }
.b18-s182-actor.s182-left  { background:#EEEDFE; color:#534AB7; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s182-actor.s182-right { background:#F4F4F0; color:#3A3A35; border:0.5px solid rgba(124,58,237,0.08); }
.b18-s182-actor-sub { font-size:9px; font-weight:400; margin-top:2px; opacity:0.8; }
.b18-s182-timeline { display:flex; flex-direction:column; gap:4px; }
.b18-s182-step { display:grid; grid-template-columns:1fr 60px 1fr; gap:0; align-items:center; opacity:0.25; transition:opacity 0.3s; }
.b18-s182-step.s182-done   { opacity:1; }
.b18-s182-step.s182-active { opacity:1; }
.b18-s182-step-left  { padding:6px 8px; text-align:right; }
.b18-s182-step-right { padding:6px 8px; }
.b18-s182-step-mid { display:flex; flex-direction:column; align-items:center; gap:2px; position:relative; }
.b18-s182-step-dot { width:10px; height:10px; border-radius:50%; border:2px solid rgba(124,58,237,0.2); background:#FAFAF8; z-index:1; transition:all 0.3s; }
.b18-s182-step.s182-done   .b18-s182-step-dot { background:#534AB7; border-color:#534AB7; }
.b18-s182-step.s182-active .b18-s182-step-dot { background:#7C3AED; border-color:#7C3AED; box-shadow:0 0 0 3px rgba(124,58,237,0.2); }
.b18-s182-arrow { font-size:16px; color:#534AB7; }
.b18-s182-msg-tag { display:inline-block; padding:2px 8px; border-radius:99px; font-size:10px; font-weight:600; font-family:'Courier Prime',monospace; }
.b18-s182-msg-tag.s182-t-handshake { background:#EEEDFE; color:#534AB7; }
.b18-s182-msg-tag.s182-t-tx        { background:#EAF3DE; color:#0F6E56; }
.b18-s182-msg-tag.s182-t-block     { background:#FAEEDA; color:#854F0B; }
.b18-s182-detail { padding:12px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:6px; min-height:80px; transition:all 0.3s; }
.b18-s182-detail.s182-d-handshake { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b18-s182-detail.s182-d-tx        { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s182-detail.s182-d-block     { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s182-detail.s182-d-idle      { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b18-s182-detail-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s182-detail.s182-d-handshake .b18-s182-detail-label { color:#534AB7; }
.b18-s182-detail.s182-d-tx        .b18-s182-detail-label { color:#0F6E56; }
.b18-s182-detail.s182-d-block     .b18-s182-detail-label { color:#854F0B; }
.b18-s182-detail.s182-d-idle      .b18-s182-detail-label { color:#3A3A35; }
.b18-s182-detail-title { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s182-detail-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b18-s182-detail-bytes   { font-size:10px; font-family:'Courier Prime',monospace; color:#3A3A35; margin-top:2px; }
.b18-s182-detail-analogy { font-size:10px; font-family:'Sora',sans-serif; color:#534AB7; font-style:italic; margin-top:2px; }
.b18-s182-ctrl { display:flex; gap:8px; align-items:center; }
.b18-s182-btn-primary { padding:6px 16px; font-size:12px; font-weight:500; border-radius:99px; border:none; cursor:pointer; font-family:'Sora',sans-serif; background:#534AB7; color:#fff; }
.b18-s182-btn-primary:disabled { background:#52524C; cursor:not-allowed; }
.b18-s182-btn-sec { padding:6px 14px; font-size:12px; font-weight:500; border-radius:99px; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; }
.b18-s182-step-ind { font-size:11px; font-family:'Sora',sans-serif; color:#52524C; }
.b18-s182-refs { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.b18-s182-ref { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:4px; }
.b18-s182-ref.s182-r-h { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.15); }
.b18-s182-ref.s182-r-t { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.15); }
.b18-s182-ref.s182-r-b { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.15); }
.b18-s182-ref.s182-r-g { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b18-s182-ref-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s182-ref.s182-r-h .b18-s182-ref-label { color:#534AB7; }
.b18-s182-ref.s182-r-t .b18-s182-ref-label { color:#0F6E56; }
.b18-s182-ref.s182-r-b .b18-s182-ref-label { color:#854F0B; }
.b18-s182-ref.s182-r-g .b18-s182-ref-label { color:#3A3A35; }
.b18-s182-ref-msg { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b18-s182-ref-msg code { font-family:'Courier Prime',monospace; font-size:10px; background:rgba(124,58,237,0.08); padding:0 4px; border-radius:2px; }

/* ============================================================
   PAGE 21 · BAB 18 · 18.3 SIMULATION (Block Sync Visualizer)
============================================================ */
.b18-s183-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s183-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s183-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s183-tab.s183-act { background:#534AB7; color:#fff; }
.b18-s183-pane { display:none; flex-direction:column; gap:10px; }
.b18-s183-pane.show { display:flex; }
.b18-s183-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s183-strats { display:flex; flex-direction:column; gap:6px; }
.b18-s183-strat { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; background:#FAFAF8; transition:all 0.15s; display:flex; gap:10px; align-items:flex-start; }
.b18-s183-strat:hover { border-color:rgba(124,58,237,0.25); }
.b18-s183-strat.s183-act.s183-red   { border-color:#A32D2D; background:#FCEBEB; }
.b18-s183-strat.s183-act.s183-green { border-color:#0F6E56; background:#EAF3DE; }
.b18-s183-strat-icon { font-size:20px; flex-shrink:0; }
.b18-s183-strat-body { flex:1; }
.b18-s183-strat-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s183-strat.s183-act.s183-red   .b18-s183-strat-title { color:#A32D2D; }
.b18-s183-strat.s183-act.s183-green .b18-s183-strat-title { color:#0F6E56; }
.b18-s183-strat-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; line-height:1.4; }
.b18-s183-phases { display:flex; flex-direction:column; gap:4px; }
.b18-s183-phase { display:flex; gap:10px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b18-s183-phase.s183-ph-good { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s183-phase.s183-ph-bad  { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b18-s183-phase.s183-ph-info { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b18-s183-phase.s183-ph-warn { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s183-phase-num { font-size:12px; font-weight:700; font-family:'Sora',sans-serif; flex-shrink:0; margin-top:1px; }
.b18-s183-phase.s183-ph-good .b18-s183-phase-num { color:#0F6E56; }
.b18-s183-phase.s183-ph-bad  .b18-s183-phase-num { color:#A32D2D; }
.b18-s183-phase.s183-ph-info .b18-s183-phase-num { color:#534AB7; }
.b18-s183-phase.s183-ph-warn .b18-s183-phase-num { color:#854F0B; }
.b18-s183-phase-body { flex:1; }
.b18-s183-phase-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s183-phase-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }
.b18-s183-phase-msg   { font-size:10px; font-family:'Courier Prime',monospace; margin-top:3px; }
.b18-s183-phase.s183-ph-good .b18-s183-phase-msg { color:#0F6E56; }
.b18-s183-phase.s183-ph-bad  .b18-s183-phase-msg { color:#A32D2D; }
.b18-s183-phase.s183-ph-info .b18-s183-phase-msg { color:#534AB7; }
.b18-s183-phase-time { font-size:10px; font-family:'Courier Prime',monospace; flex-shrink:0; margin-top:2px; }
.b18-s183-phase.s183-ph-good .b18-s183-phase-time { color:#0F6E56; }
.b18-s183-phase.s183-ph-bad  .b18-s183-phase-time { color:#A32D2D; }
.b18-s183-compare-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s183-compare-rows { display:flex; flex-direction:column; gap:6px; }
.b18-s183-compare-row { display:flex; align-items:center; gap:8px; }
.b18-s183-compare-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:130px; flex-shrink:0; }
.b18-s183-compare-bar-wrap { flex:1; height:20px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b18-s183-compare-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; }
.b18-s183-compare-bar-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b18-s183-compare-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:70px; text-align:right; flex-shrink:0; }
.b18-s183-locator-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s183-locator-chain { display:flex; gap:3px; flex-wrap:wrap; align-items:center; padding:10px; background:#F4F4F0; border-radius:var(--border-radius-lg); }
.b18-s183-block { display:flex; flex-direction:column; align-items:center; gap:2px; }
.b18-s183-block-rect { width:28px; height:20px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-size:8px; font-family:'Courier Prime',monospace; }
.b18-s183-block-rect.s183-b-normal  { background:#E8E6F0; color:#52524C; border:0.5px solid rgba(124,58,237,0.1); }
.b18-s183-block-rect.s183-b-locator { background:#534AB7; color:#fff; }
.b18-s183-block-rect.s183-b-tip     { background:#7C3AED; color:#fff; }
.b18-s183-block-ht { font-size:7px; font-family:'Sora',sans-serif; color:#52524C; text-align:center; }
.b18-s183-block-arrow { font-size:10px; color:#52524C; align-self:center; margin-bottom:12px; }
.b18-s183-locator-cards { display:flex; flex-direction:column; gap:6px; }
.b18-s183-lcard { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b18-s183-lcard.s183-lcard-purple { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b18-s183-lcard.s183-lcard-green  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s183-lcard.s183-lcard-amber  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s183-lcard-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s183-lcard.s183-lcard-purple .b18-s183-lcard-label { color:#534AB7; }
.b18-s183-lcard.s183-lcard-green  .b18-s183-lcard-label { color:#0F6E56; }
.b18-s183-lcard.s183-lcard-amber  .b18-s183-lcard-label { color:#854F0B; }
.b18-s183-lcard-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.5; }
.b18-s183-lcard-text code { font-family:'Courier Prime',monospace; font-size:10px; background:rgba(124,58,237,0.08); padding:0 4px; border-radius:2px; }
.b18-s183-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }

/* ============================================================
   PAGE 21 · BAB 18 · 18.4 SIMULATION (Compact Block Simulator)
============================================================ */
.b18-s184-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s184-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s184-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s184-tab.s184-act { background:#534AB7; color:#fff; }
.b18-s184-pane { display:none; flex-direction:column; gap:10px; }
.b18-s184-pane.show { display:flex; }
.b18-s184-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s184-analogy { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s184-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b18-s184-analogy-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b18-s184-slider-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.b18-s184-slider-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b18-s184-slider-sub   { font-size:10px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.5; }
.b18-s184-slider-row   { display:flex; gap:8px; align-items:center; }
.b18-s184-slider-mm    { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b18-s184-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b18-s184-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b18-s184-slider-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:110px; text-align:right; flex-shrink:0; }
.b18-s184-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b18-s184-stat { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b18-s184-stat.s184-purple { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s184-stat.s184-green  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s184-stat.s184-amber  { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b18-s184-stat-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s184-stat.s184-purple .b18-s184-stat-label { color:#534AB7; }
.b18-s184-stat.s184-green  .b18-s184-stat-label { color:#0F6E56; }
.b18-s184-stat.s184-amber  .b18-s184-stat-label { color:#854F0B; }
.b18-s184-stat-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s184-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b18-s184-bw-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s184-bw-rows { display:flex; flex-direction:column; gap:6px; }
.b18-s184-bw-row { display:flex; align-items:center; gap:8px; }
.b18-s184-bw-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:150px; flex-shrink:0; }
.b18-s184-bw-wrap { flex:1; height:24px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b18-s184-bw-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 10px; transition:width 0.5s; }
.b18-s184-bw-txt { font-size:10px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b18-s184-bw-val { font-size:11px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:70px; text-align:right; flex-shrink:0; }
.b18-s184-breakdown-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s184-breakdown-rows { display:flex; flex-direction:column; gap:3px; }
.b18-s184-bdr { display:flex; gap:8px; align-items:flex-start; padding:6px 10px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b18-s184-bdr.br-header  { background:#EEEDFE; border-color:rgba(83,74,183,0.15); }
.b18-s184-bdr.br-shortid { background:#EAF3DE; border-color:rgba(15,110,86,0.15); }
.b18-s184-bdr.br-prefill { background:#FAEEDA; border-color:rgba(133,79,11,0.15); }
.b18-s184-bdr.br-missing { background:#FCEBEB; border-color:rgba(163,45,45,0.15); }
.b18-s184-bdr.br-total   { background:#F4F4F0; border-color:rgba(124,58,237,0.1); }
.b18-s184-bdr-name { font-size:10px; font-family:'Sora',sans-serif; min-width:170px; flex-shrink:0; }
.b18-s184-bdr.br-header  .b18-s184-bdr-name { color:#534AB7; }
.b18-s184-bdr.br-shortid .b18-s184-bdr-name { color:#0F6E56; }
.b18-s184-bdr.br-prefill .b18-s184-bdr-name { color:#854F0B; }
.b18-s184-bdr.br-missing .b18-s184-bdr-name { color:#A32D2D; }
.b18-s184-bdr.br-total   .b18-s184-bdr-name { color:#3A3A35; font-weight:500; }
.b18-s184-bdr-val  { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; min-width:90px; flex-shrink:0; }
.b18-s184-bdr-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b18-s184-modes { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s184-mode { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:5px; }
.b18-s184-mode.s184-m-high { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s184-mode.s184-m-low  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s184-mode-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s184-mode.s184-m-high .b18-s184-mode-label { color:#0F6E56; }
.b18-s184-mode.s184-m-low  .b18-s184-mode-label { color:#854F0B; }
.b18-s184-mode-title  { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s184-mode-desc   { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b18-s184-mode-item   { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; padding-left:10px; position:relative; }
.b18-s184-mode-item::before { content:''; position:absolute; left:0; top:5px; width:4px; height:4px; border-radius:50%; }
.b18-s184-mode.s184-m-high .b18-s184-mode-item::before { background:#0F6E56; }
.b18-s184-mode.s184-m-low  .b18-s184-mode-item::before { background:#854F0B; }
.b18-s184-mode-analogy { font-size:10px; font-family:'Sora',sans-serif; font-style:italic; color:#534AB7; border-top:0.5px solid rgba(124,58,237,0.15); padding-top:5px; margin-top:2px; }
.b18-s184-flow-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b18-s184-flow-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b18-s184-flows { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s184-flow { padding:8px 12px; border-radius:var(--border-radius-md); }
.b18-s184-flow.s184-flow-high { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s184-flow.s184-flow-low  { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b18-s184-flow-title { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b18-s184-flow.s184-flow-high .b18-s184-flow-title { color:#0F6E56; }
.b18-s184-flow.s184-flow-low  .b18-s184-flow-title { color:#854F0B; }
.b18-s184-flow-msgs { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; line-height:1.8; }
.b18-s184-flow-msgs code { font-family:'Courier Prime',monospace; font-size:10px; background:rgba(124,58,237,0.08); padding:0 3px; border-radius:2px; }

/* ============================================================
   PAGE 21 · BAB 18 · 18.5 SIMULATION (Erlay Visualizer)
============================================================ */
.b18-s185-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s185-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s185-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s185-tab.s185-act { background:#534AB7; color:#fff; }
.b18-s185-pane { display:none; flex-direction:column; gap:10px; }
.b18-s185-pane.show { display:flex; }
.b18-s185-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s185-analogy { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s185-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b18-s185-analogy-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b18-s185-nets { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s185-net-wrap { display:flex; flex-direction:column; gap:6px; }
.b18-s185-net-head { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; }
.b18-s185-net-head.s185-h-flood { background:#FCEBEB; color:#A32D2D; border:0.5px solid rgba(163,45,45,0.2); }
.b18-s185-net-head.s185-h-erlay { background:#EAF3DE; color:#0F6E56; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s185-net-stat { display:flex; gap:4px; flex-wrap:wrap; justify-content:center; }
.b18-s185-badge { padding:3px 8px; border-radius:99px; font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s185-badge.s185-b-red   { background:#FCEBEB; color:#A32D2D; }
.b18-s185-badge.s185-b-green { background:#EAF3DE; color:#0F6E56; }
.b18-s185-badge.s185-b-amber { background:#FAEEDA; color:#854F0B; }
.b18-s185-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b18-s185-stat { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b18-s185-stat.s185-s-red    { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b18-s185-stat.s185-s-green  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s185-stat.s185-s-purple { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s185-stat-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s185-stat.s185-s-red    .b18-s185-stat-label { color:#A32D2D; }
.b18-s185-stat.s185-s-green  .b18-s185-stat-label { color:#0F6E56; }
.b18-s185-stat.s185-s-purple .b18-s185-stat-label { color:#534AB7; }
.b18-s185-stat-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s185-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b18-s185-bw-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s185-bw-rows { display:flex; flex-direction:column; gap:6px; }
.b18-s185-bw-row { display:flex; align-items:center; gap:8px; }
.b18-s185-bw-name { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:130px; flex-shrink:0; }
.b18-s185-bw-track { flex:1; height:22px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b18-s185-bw-fill { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 10px; }
.b18-s185-bw-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b18-s185-bw-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:50px; text-align:right; flex-shrink:0; }
.b18-s185-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:12px; line-height:1.6; font-family:'Sora',sans-serif; background:#F4F4F0; color:#3A3A35; }
.b18-s185-steps-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s185-steps { display:flex; flex-direction:column; gap:4px; }
.b18-s185-step { display:flex; gap:10px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b18-s185-step.s185-step-erlay  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s185-step.s185-step-sketch { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b18-s185-step-num { font-size:13px; font-weight:700; font-family:'Sora',sans-serif; flex-shrink:0; }
.b18-s185-step.s185-step-erlay  .b18-s185-step-num { color:#0F6E56; }
.b18-s185-step.s185-step-sketch .b18-s185-step-num { color:#534AB7; }
.b18-s185-step-body { flex:1; }
.b18-s185-step-title   { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s185-step-desc    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }
.b18-s185-step-analogy { font-size:10px; font-family:'Sora',sans-serif; color:#534AB7; font-style:italic; margin-top:3px; }
.b18-s185-impact { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); display:flex; flex-direction:column; gap:4px; }
.b18-s185-impact-label { font-size:10px; font-weight:500; color:#0F6E56; font-family:'Sora',sans-serif; }
.b18-s185-impact-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b18-s185-status { padding:10px 14px; border-radius:var(--border-radius-md); background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); display:flex; flex-direction:column; gap:4px; }
.b18-s185-status-label { font-size:10px; font-weight:500; color:#854F0B; font-family:'Sora',sans-serif; }
.b18-s185-status-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }

/* ============================================================
   PAGE 21 · BAB 18 · 18.6 SIMULATION (Dandelion Visualizer)
============================================================ */
.b18-s186-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b18-s186-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b18-s186-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b18-s186-tab.s186-act { background:#534AB7; color:#fff; }
.b18-s186-pane { display:none; flex-direction:column; gap:10px; }
.b18-s186-pane.show { display:flex; }
.b18-s186-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b18-s186-analogy { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s186-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b18-s186-analogy-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b18-s186-nets { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s186-net-wrap { display:flex; flex-direction:column; gap:6px; }
.b18-s186-net-head { padding:8px 12px; border-radius:var(--border-radius-md); text-align:center; font-size:11px; font-weight:600; font-family:'Sora',sans-serif; }
.b18-s186-net-head.s186-h-flood { background:#FCEBEB; color:#A32D2D; border:0.5px solid rgba(163,45,45,0.2); }
.b18-s186-net-head.s186-h-dan   { background:#EAF3DE; color:#0F6E56; border:0.5px solid rgba(15,110,86,0.2); }
.b18-s186-badge-row { display:flex; gap:4px; flex-wrap:wrap; justify-content:center; }
.b18-s186-badge { padding:3px 8px; border-radius:99px; font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s186-badge.s186-b-red    { background:#FCEBEB; color:#A32D2D; }
.b18-s186-badge.s186-b-green  { background:#EAF3DE; color:#0F6E56; }
.b18-s186-badge.s186-b-amber  { background:#FAEEDA; color:#854F0B; }
.b18-s186-badge.s186-b-purple { background:#EEEDFE; color:#534AB7; }
.b18-s186-privacy-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b18-s186-privacy-rows  { display:flex; flex-direction:column; gap:6px; }
.b18-s186-privacy-row   { display:flex; align-items:center; gap:8px; }
.b18-s186-privacy-name  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:160px; flex-shrink:0; }
.b18-s186-privacy-track { flex:1; height:22px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b18-s186-privacy-fill  { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 10px; }
.b18-s186-privacy-txt   { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b18-s186-privacy-val   { font-size:10px; font-family:'Courier Prime',monospace; min-width:50px; text-align:right; flex-shrink:0; }
.b18-s186-status { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; line-height:1.6; font-family:'Sora',sans-serif; }
.b18-s186-status.s186-st-warn { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b18-s186-status.s186-st-info { background:#EEEDFE; color:#1A1A18; border:0.5px solid rgba(83,74,183,0.2); }
.b18-s186-status-label { font-size:10px; font-weight:500; margin-bottom:4px; }
.b18-s186-status.s186-st-warn .b18-s186-status-label { color:#854F0B; }
.b18-s186-status.s186-st-info .b18-s186-status-label { color:#534AB7; }
.b18-s186-phase-cards { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b18-s186-phase { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:5px; }
.b18-s186-phase.s186-ph-stem  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b18-s186-phase.s186-ph-fluff { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b18-s186-phase-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b18-s186-phase.s186-ph-stem  .b18-s186-phase-label { color:#0F6E56; }
.b18-s186-phase.s186-ph-fluff .b18-s186-phase-label { color:#854F0B; }
.b18-s186-phase-title  { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b18-s186-phase-desc   { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b18-s186-phase-item   { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; padding-left:10px; position:relative; }
.b18-s186-phase-item::before { content:''; position:absolute; left:0; top:5px; width:4px; height:4px; border-radius:50%; }
.b18-s186-phase.s186-ph-stem  .b18-s186-phase-item::before { background:#0F6E56; }
.b18-s186-phase.s186-ph-fluff .b18-s186-phase-item::before { background:#854F0B; }
.b18-s186-phase-analogy { font-size:10px; font-family:'Sora',sans-serif; font-style:italic; color:#534AB7; border-top:0.5px solid rgba(124,58,237,0.15); padding-top:5px; margin-top:2px; }
.b18-s186-flow-wrap  { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b18-s186-flow-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:8px; }

/* ============================================================
   PAGE 22 · BAB 19 · Mining Economics & Incentive Design
============================================================ */

/* ============================================================
   PAGE 22 · BAB 19 · 19.1 SIMULATION (Revenue Visualizer)
============================================================ */
.b19-s191-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s191-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s191-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s191-tab.s191-act { background:#534AB7; color:#fff; }
.b19-s191-pane { display:none; flex-direction:column; gap:10px; }
.b19-s191-pane.show { display:flex; }
.b19-s191-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s191-era-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s191-eras { display:flex; gap:6px; flex-wrap:wrap; }
.b19-s191-era-btn { padding:5px 12px; border-radius:99px; font-size:11px; font-weight:500; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s191-era-btn:hover { background:#EEEDFE; }
.b19-s191-era-btn.s191-era-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b19-s191-cards { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b19-s191-card { padding:10px 12px; border-radius:var(--border-radius-lg); display:flex; flex-direction:column; gap:4px; }
.b19-s191-card.s191-c-reward { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s191-card.s191-c-fee    { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s191-card.s191-c-total  { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b19-s191-card-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s191-card.s191-c-reward .b19-s191-card-label { color:#534AB7; }
.b19-s191-card.s191-c-fee    .b19-s191-card-label { color:#0F6E56; }
.b19-s191-card.s191-c-total  .b19-s191-card-label { color:#3A3A35; }
.b19-s191-card-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s191-card-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.3; }
.b19-s191-bar-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s191-bar-track { height:32px; background:#F4F4F0; border-radius:99px; overflow:hidden; display:flex; }
.b19-s191-bar-reward { height:100%; display:flex; align-items:center; padding:0 10px; background:#534AB7; transition:width 0.5s; }
.b19-s191-bar-fee    { height:100%; display:flex; align-items:center; padding:0 10px; background:#0F6E56; transition:width 0.5s; }
.b19-s191-bar-txt { font-size:10px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s191-tl-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s191-tl-row { display:flex; align-items:center; gap:8px; padding:5px 0; }
.b19-s191-tl-era { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:55px; flex-shrink:0; }
.b19-s191-tl-track { flex:1; height:18px; background:#F4F4F0; border-radius:99px; overflow:hidden; display:flex; }
.b19-s191-tl-r { height:100%; background:#534AB7; display:flex; align-items:center; padding:0 6px; transition:width 0.4s; }
.b19-s191-tl-f { height:100%; background:#0F6E56; display:flex; align-items:center; padding:0 6px; transition:width 0.4s; }
.b19-s191-tl-txt { font-size:8px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s191-tl-val { font-size:9px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:60px; text-align:right; flex-shrink:0; }
.b19-s191-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.6; background:#F4F4F0; color:#3A3A35; }
.b19-s191-cb-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b19-s191-cb-rows { display:flex; flex-direction:column; gap:4px; }
.b19-s191-cb-row { display:flex; gap:8px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; }
.b19-s191-cb-row.s191-r-header { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s191-cb-row.s191-r-input  { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b19-s191-cb-row.s191-r-reward { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s191-cb-row.s191-r-fee    { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s191-cb-row.s191-r-mature { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b19-s191-cb-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; min-width:130px; flex-shrink:0; }
.b19-s191-cb-row.s191-r-header .b19-s191-cb-name { color:#534AB7; }
.b19-s191-cb-row.s191-r-input  .b19-s191-cb-name { color:#3A3A35; }
.b19-s191-cb-row.s191-r-reward .b19-s191-cb-name { color:#0F6E56; }
.b19-s191-cb-row.s191-r-fee    .b19-s191-cb-name { color:#854F0B; }
.b19-s191-cb-row.s191-r-mature .b19-s191-cb-name { color:#A32D2D; }
.b19-s191-cb-val { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; min-width:130px; flex-shrink:0; }
.b19-s191-cb-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; }
.b19-s191-cb-analogy { font-size:10px; font-family:'Sora',sans-serif; color:#534AB7; font-style:italic; margin-top:3px; }
.b19-s191-verify-card { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); display:flex; flex-direction:column; gap:4px; }
.b19-s191-verify-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b19-s191-verify-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }


/* ============================================================
   PAGE 22 · BAB 19 · 19.2 SIMULATION (Difficulty Adjustment)
============================================================ */
.b19-s192-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s192-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s192-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s192-tab.s192-act { background:#534AB7; color:#fff; }
.b19-s192-pane { display:none; flex-direction:column; gap:10px; }
.b19-s192-pane.show { display:flex; }
.b19-s192-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s192-scenarios { display:flex; flex-direction:column; gap:6px; }
.b19-s192-scenario { padding:10px 14px; border-radius:var(--border-radius-lg); border:1.5px solid transparent; cursor:pointer; background:#FAFAF8; transition:all 0.15s; display:flex; gap:10px; align-items:flex-start; }
.b19-s192-scenario:hover { border-color:rgba(124,58,237,0.25); }
.b19-s192-scenario.s192-act.s192-sc-up   { border-color:#0F6E56; background:#EAF3DE; }
.b19-s192-scenario.s192-act.s192-sc-down { border-color:#A32D2D; background:#FCEBEB; }
.b19-s192-scenario.s192-act.s192-sc-same { border-color:#534AB7; background:#EEEDFE; }
.b19-s192-sc-icon { font-size:20px; flex-shrink:0; }
.b19-s192-sc-body { flex:1; }
.b19-s192-sc-title { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s192-scenario.s192-act.s192-sc-up   .b19-s192-sc-title { color:#0F6E56; }
.b19-s192-scenario.s192-act.s192-sc-down .b19-s192-sc-title { color:#A32D2D; }
.b19-s192-scenario.s192-act.s192-sc-same .b19-s192-sc-title { color:#534AB7; }
.b19-s192-sc-desc { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:2px; line-height:1.4; }
.b19-s192-results { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b19-s192-result { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b19-s192-result.s192-r-before { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.2); }
.b19-s192-result.s192-r-adjust { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s192-result.s192-r-after  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s192-result-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s192-result.s192-r-before .b19-s192-result-label { color:#854F0B; }
.b19-s192-result.s192-r-adjust .b19-s192-result-label { color:#534AB7; }
.b19-s192-result.s192-r-after  .b19-s192-result-label { color:#0F6E56; }
.b19-s192-result-val { font-size:15px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s192-result-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b19-s192-calc-label  { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s192-chart-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s192-calc-step { display:flex; gap:10px; align-items:flex-start; padding:8px 12px; border-radius:var(--border-radius-md); border:0.5px solid transparent; margin-bottom:4px; }
.b19-s192-calc-step.s192-cs-input  { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b19-s192-calc-step.s192-cs-actual { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s192-calc-step.s192-cs-ratio  { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s192-calc-step.s192-cs-result { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s192-calc-step.s192-cs-result.s192-warn { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b19-s192-calc-step.s192-cs-cap    { background:#FAEEDA; border-color:rgba(133,79,11,0.15); }
.b19-s192-step-num { font-size:11px; font-weight:700; font-family:'Sora',sans-serif; flex-shrink:0; min-width:20px; }
.b19-s192-calc-step.s192-cs-input  .b19-s192-step-num { color:#3A3A35; }
.b19-s192-calc-step.s192-cs-actual .b19-s192-step-num { color:#854F0B; }
.b19-s192-calc-step.s192-cs-ratio  .b19-s192-step-num { color:#534AB7; }
.b19-s192-calc-step.s192-cs-result .b19-s192-step-num { color:#0F6E56; }
.b19-s192-calc-step.s192-cs-result.s192-warn .b19-s192-step-num { color:#A32D2D; }
.b19-s192-calc-step.s192-cs-cap    .b19-s192-step-num { color:#854F0B; }
.b19-s192-step-body { flex:1; }
.b19-s192-step-title { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s192-step-val   { font-size:13px; font-weight:600; font-family:'Courier Prime',monospace; color:#1A1A18; margin-top:2px; }
.b19-s192-step-desc  { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.4; margin-top:2px; }
.b19-s192-chart-row  { display:flex; align-items:center; gap:8px; padding:3px 0; }
.b19-s192-chart-epoch{ font-size:9px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:65px; flex-shrink:0; }
.b19-s192-chart-track{ flex:1; height:20px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s192-chart-bar  { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; transition:width 0.5s; }
.b19-s192-chart-bar-txt { font-size:8px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s192-chart-val  { font-size:9px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:55px; text-align:right; flex-shrink:0; }
.b19-s192-formula { padding:12px 14px; border-radius:var(--border-radius-lg); background:#1A1A18; font-family:'Courier Prime',monospace; font-size:12px; line-height:2; }
.b19-s192-f-comment { color:#3A3A35; font-size:10px; }
.b19-s192-f-var     { color:#A8D08D; }
.b19-s192-f-op      { color:#534AB7; }
.b19-s192-f-num     { color:#FAEEDA; }
.b19-s192-f-result  { color:#0F6E56; font-weight:600; }
.b19-s192-f-cap     { color:#F59E0B; font-size:10px; }
.b19-s192-info-cards { display:flex; flex-direction:column; gap:6px; }
.b19-s192-info-card  { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b19-s192-info-card.s192-ic-green  { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s192-info-card.s192-ic-purple { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s192-info-card.s192-ic-amber  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s192-ic-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s192-info-card.s192-ic-green  .b19-s192-ic-label { color:#0F6E56; }
.b19-s192-info-card.s192-ic-purple .b19-s192-ic-label { color:#534AB7; }
.b19-s192-info-card.s192-ic-amber  .b19-s192-ic-label { color:#854F0B; }
.b19-s192-ic-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }

/* ============================================================
   PAGE 22 · BAB 19 · 19.3 SIMULATION (Halving & Security Budget)
============================================================ */
.b19-s193-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s193-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s193-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s193-tab.s193-act { background:#534AB7; color:#fff; }
.b19-s193-pane { display:none; flex-direction:column; gap:10px; }
.b19-s193-pane.show { display:flex; }
.b19-s193-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s193-tl-row { display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:var(--border-radius-md); margin-bottom:3px; }
.b19-s193-tl-row.s193-tl-past    { background:#F4F4F0; }
.b19-s193-tl-row.s193-tl-current { background:#EEEDFE; }
.b19-s193-tl-row.s193-tl-future  { background:#FAFAF8; opacity:0.65; }
.b19-s193-tl-era { font-size:10px; font-family:'Sora',sans-serif; min-width:100px; flex-shrink:0; }
.b19-s193-tl-row.s193-tl-past    .b19-s193-tl-era { color:#3A3A35; }
.b19-s193-tl-row.s193-tl-current .b19-s193-tl-era { color:#534AB7; font-weight:600; }
.b19-s193-tl-row.s193-tl-future  .b19-s193-tl-era { color:#52524C; }
.b19-s193-tl-reward { font-size:11px; font-family:'Courier Prime',monospace; min-width:85px; flex-shrink:0; }
.b19-s193-tl-row.s193-tl-past    .b19-s193-tl-reward { color:#1A1A18; }
.b19-s193-tl-row.s193-tl-current .b19-s193-tl-reward { color:#534AB7; font-weight:600; }
.b19-s193-tl-row.s193-tl-future  .b19-s193-tl-reward { color:#52524C; }
.b19-s193-tl-bar-wrap { flex:1; height:14px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s193-tl-bar { height:100%; border-radius:99px; }
.b19-s193-calc-wrap { display:flex; flex-direction:column; gap:8px; }
.b19-s193-calc-row { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.b19-s193-calc-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b19-s193-slider-row { display:flex; gap:8px; align-items:center; }
.b19-s193-mm { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; min-width:40px; }
.b19-s193-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b19-s193-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b19-s193-slider-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:90px; text-align:right; flex-shrink:0; }
.b19-s193-results { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b19-s193-result { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b19-s193-result.s193-r-reward { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s193-result.s193-r-fee    { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s193-result.s193-r-total  { background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.1); }
.b19-s193-result-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s193-result.s193-r-reward .b19-s193-result-label { color:#534AB7; }
.b19-s193-result.s193-r-fee    .b19-s193-result-label { color:#0F6E56; }
.b19-s193-result.s193-r-total  .b19-s193-result-label { color:#3A3A35; }
.b19-s193-result-val { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s193-result-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b19-s193-prop-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s193-prop-track { height:28px; background:#F4F4F0; border-radius:99px; overflow:hidden; display:flex; }
.b19-s193-prop-reward { height:100%; display:flex; align-items:center; padding:0 10px; background:#534AB7; transition:width 0.4s; }
.b19-s193-prop-fee    { height:100%; display:flex; align-items:center; padding:0 10px; background:#0F6E56; transition:width 0.4s; }
.b19-s193-prop-txt { font-size:10px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s193-open-card { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:8px; }
.b19-s193-open-label { font-size:10px; font-weight:500; color:#3A3A35; font-family:'Sora',sans-serif; }
.b19-s193-open-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s193-views { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.b19-s193-view { padding:8px 10px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:4px; }
.b19-s193-view.s193-v-a { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.15); }
.b19-s193-view.s193-v-b { background:#FAEEDA; border:0.5px solid rgba(133,79,11,0.15); }
.b19-s193-view-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s193-view.s193-v-a .b19-s193-view-label { color:#0F6E56; }
.b19-s193-view.s193-v-b .b19-s193-view-label { color:#854F0B; }
.b19-s193-view-text { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; }
.b19-s193-info-cards { display:flex; flex-direction:column; gap:6px; }
.b19-s193-info-card { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b19-s193-info-card.s193-ic-purple { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s193-info-card.s193-ic-gray   { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b19-s193-ic-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s193-info-card.s193-ic-purple .b19-s193-ic-label { color:#534AB7; }
.b19-s193-info-card.s193-ic-gray   .b19-s193-ic-label { color:#3A3A35; }
.b19-s193-ic-text { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s193-horizon-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }

/* ============================================================
   PAGE 22 · BAB 19 · 19.4 SIMULATION (Mining Pool Visualizer)
============================================================ */
.b19-s194-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s194-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s194-tab { flex:1; padding:8px 12px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s194-tab.s194-act { background:#534AB7; color:#fff; }
.b19-s194-pane { display:none; flex-direction:column; gap:10px; }
.b19-s194-pane.show { display:flex; }
.b19-s194-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s194-analogy { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s194-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b19-s194-analogy-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s194-slider-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:6px; }
.b19-s194-slider-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b19-s194-slider-row { display:flex; gap:8px; align-items:center; }
.b19-s194-mm { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b19-s194-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b19-s194-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b19-s194-slider-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:160px; text-align:right; flex-shrink:0; }
.b19-s194-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b19-s194-stat { padding:10px 12px; border-radius:var(--border-radius-lg); display:flex; flex-direction:column; gap:4px; }
.b19-s194-stat.s194-s-solo { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b19-s194-stat.s194-s-pool { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s194-stat-label { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s194-stat.s194-s-solo .b19-s194-stat-label { color:#A32D2D; }
.b19-s194-stat.s194-s-pool .b19-s194-stat-label { color:#0F6E56; }
.b19-s194-stat-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s194-stat-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.3; }
.b19-s194-tl-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s194-tl-heads { display:flex; gap:8px; margin-bottom:4px; }
.b19-s194-tl-week-lbl { min-width:60px; flex-shrink:0; }
.b19-s194-tl-head { flex:1; font-size:9px; font-weight:500; font-family:'Sora',sans-serif; text-align:center; }
.b19-s194-tl-head.h-solo { color:#A32D2D; }
.b19-s194-tl-head.h-pool { color:#0F6E56; }
.b19-s194-tl-row { display:flex; align-items:center; gap:8px; margin-bottom:3px; }
.b19-s194-tl-week { font-size:9px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:60px; flex-shrink:0; }
.b19-s194-tl-solo-wrap { flex:1; height:18px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s194-tl-solo-bar  { height:100%; border-radius:99px; background:#A32D2D; }
.b19-s194-tl-pool-wrap { flex:1; height:18px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s194-tl-pool-bar  { height:100%; border-radius:99px; background:#0F6E56; }
.b19-s194-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.6; background:#F4F4F0; color:#3A3A35; }
.b19-s194-schemes { display:flex; flex-direction:column; gap:8px; }
.b19-s194-scheme { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:5px; }
.b19-s194-scheme.s194-sc-pps   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s194-scheme.s194-sc-pplns { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s194-scheme.s194-sc-fpps  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s194-scheme-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s194-scheme.s194-sc-pps   .b19-s194-scheme-label { color:#534AB7; }
.b19-s194-scheme.s194-sc-pplns .b19-s194-scheme-label { color:#0F6E56; }
.b19-s194-scheme.s194-sc-fpps  .b19-s194-scheme-label { color:#854F0B; }
.b19-s194-scheme-title   { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s194-scheme-desc    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b19-s194-scheme-item    { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; padding-left:10px; position:relative; }
.b19-s194-scheme-item::before { content:''; position:absolute; left:0; top:5px; width:4px; height:4px; border-radius:50%; }
.b19-s194-scheme.s194-sc-pps   .b19-s194-scheme-item::before { background:#534AB7; }
.b19-s194-scheme.s194-sc-pplns .b19-s194-scheme-item::before { background:#0F6E56; }
.b19-s194-scheme.s194-sc-fpps  .b19-s194-scheme-item::before { background:#854F0B; }
.b19-s194-scheme-analogy { font-size:10px; font-family:'Sora',sans-serif; font-style:italic; color:#534AB7; border-top:0.5px solid rgba(124,58,237,0.15); padding-top:5px; margin-top:2px; }
.b19-s194-example-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); }
.b19-s194-example-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin-bottom:8px; }
.b19-s194-example-rows { display:flex; flex-direction:column; gap:4px; }
.b19-s194-example-row { display:flex; gap:8px; align-items:center; padding:6px 10px; border-radius:var(--border-radius-md); }
.b19-s194-ex-name { font-size:10px; font-family:'Sora',sans-serif; min-width:55px; flex-shrink:0; }
.b19-s194-ex-val  { font-size:11px; font-family:'Courier Prime',monospace; min-width:110px; flex-shrink:0; }
.b19-s194-ex-note { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; flex:1; line-height:1.4; }

/* ============================================================
   PAGE 22 · BAB 19 · 19.5 SIMULATION (Selfish Mining Visualizer)
============================================================ */
.b19-s195-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s195-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s195-tab { flex:1; padding:7px 8px; font-size:11px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s195-tab.s195-act { background:#534AB7; color:#fff; }
.b19-s195-pane { display:none; flex-direction:column; gap:10px; }
.b19-s195-pane.show { display:flex; }
.b19-s195-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s195-step-btns { display:flex; gap:6px; flex-wrap:wrap; }
.b19-s195-step-btn { padding:5px 12px; border-radius:99px; font-size:11px; font-weight:500; border:0.5px solid rgba(124,58,237,0.2); background:transparent; color:#534AB7; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s195-step-btn:hover { background:#EEEDFE; }
.b19-s195-step-btn.s195-act { background:#534AB7; color:#fff; border-color:#534AB7; }
.b19-s195-chain-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s195-chain { display:flex; flex-direction:column; gap:4px; margin-bottom:6px; }
.b19-s195-chain-name { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s195-chain-name.s195-cn-network { color:#3A3A35; }
.b19-s195-chain-name.s195-cn-selfish { color:#534AB7; }
.b19-s195-blocks { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.b19-s195-block { width:38px; height:28px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:8px; font-family:'Courier Prime',monospace; font-weight:600; flex-shrink:0; }
.b19-s195-block.s195-b-public  { background:#EAF3DE; color:#0F6E56; border:0.5px solid rgba(15,110,86,0.3); }
.b19-s195-block.s195-b-hidden  { background:#EEEDFE; color:#534AB7; border:1.5px dashed rgba(83,74,183,0.5); }
.b19-s195-block.s195-b-orphan  { background:#FCEBEB; color:#A32D2D; border:0.5px solid rgba(163,45,45,0.3); opacity:0.6; text-decoration:line-through; }
.b19-s195-block.s195-b-network { background:#F4F4F0; color:#3A3A35; border:0.5px solid rgba(124,58,237,0.1); }
.b19-s195-block.s195-b-win     { background:#534AB7; color:#fff; }
.b19-s195-block-arrow { font-size:12px; color:#52524C; align-self:center; }
.b19-s195-detail { padding:12px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:6px; min-height:70px; }
.b19-s195-detail.s195-d-idle    { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b19-s195-detail.s195-d-selfish { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s195-detail.s195-d-result  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s195-detail-label  { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s195-detail.s195-d-idle    .b19-s195-detail-label { color:#3A3A35; }
.b19-s195-detail.s195-d-selfish .b19-s195-detail-label { color:#534AB7; }
.b19-s195-detail.s195-d-result  .b19-s195-detail-label { color:#854F0B; }
.b19-s195-detail-title   { font-size:13px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s195-detail-text    { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s195-detail-analogy { font-size:10px; font-family:'Sora',sans-serif; color:#534AB7; font-style:italic; margin-top:2px; }
.b19-s195-slider-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid rgba(124,58,237,0.12); background:#FAFAF8; display:flex; flex-direction:column; gap:8px; }
.b19-s195-slider-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; }
.b19-s195-slider-row { display:flex; gap:8px; align-items:center; }
.b19-s195-mm { font-size:10px; font-family:'Sora',sans-serif; color:#52524C; flex-shrink:0; }
.b19-s195-slider { -webkit-appearance:none; height:4px; border-radius:99px; background:#E8E6FD; outline:none; flex:1; }
.b19-s195-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#534AB7; cursor:pointer; }
.b19-s195-slider-val { font-size:13px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:60px; text-align:right; flex-shrink:0; }
.b19-s195-rev-cards { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b19-s195-rev-card { padding:10px 12px; border-radius:var(--border-radius-lg); display:flex; flex-direction:column; gap:4px; }
.b19-s195-rev-card.s195-rc-honest  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s195-rev-card.s195-rc-selfish { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s195-rev-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s195-rev-card.s195-rc-honest  .b19-s195-rev-label { color:#0F6E56; }
.b19-s195-rev-card.s195-rc-selfish .b19-s195-rev-label { color:#534AB7; }
.b19-s195-rev-val { font-size:16px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s195-rev-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b19-s195-verdict { padding:10px 14px; border-radius:var(--border-radius-lg); font-size:11px; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s195-verdict.s195-v-safe   { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s195-verdict.s195-v-warn   { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b19-s195-verdict.s195-v-danger { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }
.b19-s195-verdict-label { font-size:10px; font-weight:500; margin-bottom:4px; }
.b19-s195-verdict.s195-v-safe   .b19-s195-verdict-label { color:#0F6E56; }
.b19-s195-verdict.s195-v-warn   .b19-s195-verdict-label { color:#854F0B; }
.b19-s195-verdict.s195-v-danger .b19-s195-verdict-label { color:#A32D2D; }
.b19-s195-cms { display:flex; flex-direction:column; gap:6px; }
.b19-s195-cm { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; }
.b19-s195-cm.s195-cm-propagation { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s195-cm.s195-cm-awareness   { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b19-s195-cm.s195-cm-reputation  { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s195-cm.s195-cm-variance    { background:#F4F4F0; border-color:rgba(124,58,237,0.08); }
.b19-s195-cm-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s195-cm.s195-cm-propagation .b19-s195-cm-label { color:#0F6E56; }
.b19-s195-cm.s195-cm-awareness   .b19-s195-cm-label { color:#534AB7; }
.b19-s195-cm.s195-cm-reputation  .b19-s195-cm-label { color:#854F0B; }
.b19-s195-cm.s195-cm-variance    .b19-s195-cm-label { color:#3A3A35; }
.b19-s195-cm-title   { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s195-cm-text    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; line-height:1.5; }
.b19-s195-cm-analogy { font-size:10px; font-family:'Sora',sans-serif; font-style:italic; color:#534AB7; margin-top:2px; }
.b19-s195-prop-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:8px; }
.b19-s195-prop-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s195-prop-slider-row { display:flex; gap:8px; align-items:center; }
.b19-s195-prop-result { padding:8px 12px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.5; }
.b19-s195-prop-result.s195-pr-good { background:#EAF3DE; color:#27500A; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s195-prop-result.s195-pr-mid  { background:#FAEEDA; color:#633806; border:0.5px solid rgba(133,79,11,0.2); }
.b19-s195-prop-result.s195-pr-bad  { background:#FCEBEB; color:#791F1F; border:0.5px solid rgba(163,45,45,0.2); }

/* ============================================================
   PAGE 22 · BAB 19 · 19.6 SIMULATION (Mining Ecosystem)
============================================================ */
.b19-s196-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b19-s196-tabs { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; margin-bottom:1rem; }
.b19-s196-tab { flex:1; padding:7px 8px; font-size:11px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s196-tab.s196-act { background:#534AB7; color:#fff; }
.b19-s196-pane { display:none; flex-direction:column; gap:10px; }
.b19-s196-pane.show { display:flex; }
.b19-s196-hint { font-size:11px; color:#3A3A35; font-family:'Sora',sans-serif; line-height:1.6; }
.b19-s196-analogy { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s196-analogy-label { font-size:10px; font-weight:500; color:#534AB7; font-family:'Sora',sans-serif; margin-bottom:4px; }
.b19-s196-analogy-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s196-asic-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s196-asic-row { display:flex; align-items:center; gap:8px; padding:3px 0; }
.b19-s196-asic-gen { font-size:9px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:135px; flex-shrink:0; }
.b19-s196-asic-track { flex:1; height:22px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s196-asic-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; transition:width 0.4s; }
.b19-s196-asic-bar-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s196-asic-val { font-size:9px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:75px; text-align:right; flex-shrink:0; }
.b19-s196-asic-cards { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.b19-s196-asic-card { padding:8px 12px; border-radius:var(--border-radius-md); display:flex; flex-direction:column; gap:3px; }
.b19-s196-asic-card.s196-ac-old  { background:#FCEBEB; border:0.5px solid rgba(163,45,45,0.2); }
.b19-s196-asic-card.s196-ac-now  { background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); }
.b19-s196-asic-card.s196-ac-info { background:#EEEDFE; border:0.5px solid rgba(83,74,183,0.2); }
.b19-s196-ac-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s196-asic-card.s196-ac-old  .b19-s196-ac-label { color:#A32D2D; }
.b19-s196-asic-card.s196-ac-now  .b19-s196-ac-label { color:#0F6E56; }
.b19-s196-asic-card.s196-ac-info .b19-s196-ac-label { color:#534AB7; }
.b19-s196-ac-val { font-size:14px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s196-ac-sub { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; }
.b19-s196-geo-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; flex-shrink:0; }
.b19-s196-geo-toggle { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.12); border-radius:var(--border-radius-md); overflow:hidden; }
.b19-s196-geo-btn { padding:6px 12px; font-size:10px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b19-s196-geo-btn.s196-geo-act { background:#534AB7; color:#fff; }
.b19-s196-geo-row { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.b19-s196-geo-country { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; min-width:130px; flex-shrink:0; }
.b19-s196-geo-track { flex:1; height:20px; background:#F4F4F0; border-radius:99px; overflow:hidden; }
.b19-s196-geo-bar { height:100%; border-radius:99px; display:flex; align-items:center; padding:0 8px; transition:width 0.5s; }
.b19-s196-geo-bar-txt { font-size:9px; font-family:'Sora',sans-serif; color:#fff; white-space:nowrap; }
.b19-s196-geo-val { font-size:10px; font-family:'Courier Prime',monospace; color:#534AB7; min-width:40px; text-align:right; flex-shrink:0; }
.b19-s196-geo-note { padding:10px 14px; border-radius:var(--border-radius-md); font-size:11px; font-family:'Sora',sans-serif; line-height:1.6; background:#F4F4F0; color:#3A3A35; }
.b19-s196-geo-card { padding:10px 14px; border-radius:var(--border-radius-lg); background:#EAF3DE; border:0.5px solid rgba(15,110,86,0.2); display:flex; flex-direction:column; gap:4px; }
.b19-s196-geo-card-label { font-size:10px; font-weight:500; color:#0F6E56; font-family:'Sora',sans-serif; }
.b19-s196-geo-card-text  { font-size:11px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.6; }
.b19-s196-stratum-cards { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b19-s196-stratum-card { padding:10px 14px; border-radius:var(--border-radius-lg); border:0.5px solid transparent; display:flex; flex-direction:column; gap:5px; }
.b19-s196-stratum-card.s196-sc-v1 { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b19-s196-stratum-card.s196-sc-v2 { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b19-s196-stratum-label { font-size:9px; font-weight:500; font-family:'Sora',sans-serif; }
.b19-s196-stratum-card.s196-sc-v1 .b19-s196-stratum-label { color:#854F0B; }
.b19-s196-stratum-card.s196-sc-v2 .b19-s196-stratum-label { color:#0F6E56; }
.b19-s196-stratum-title   { font-size:12px; font-weight:600; font-family:'Sora',sans-serif; color:#1A1A18; }
.b19-s196-stratum-item    { font-size:10px; font-family:'Sora',sans-serif; color:#1A1A18; line-height:1.4; padding-left:10px; position:relative; }
.b19-s196-stratum-item::before { content:''; position:absolute; left:0; top:5px; width:4px; height:4px; border-radius:50%; }
.b19-s196-stratum-card.s196-sc-v1 .b19-s196-stratum-item::before { background:#854F0B; }
.b19-s196-stratum-card.s196-sc-v2 .b19-s196-stratum-item::before { background:#0F6E56; }
.b19-s196-stratum-analogy { font-size:10px; font-family:'Sora',sans-serif; font-style:italic; color:#534AB7; border-top:0.5px solid rgba(124,58,237,0.15); padding-top:5px; margin-top:2px; }
.b19-s196-flow-wrap { padding:10px 14px; border-radius:var(--border-radius-lg); background:#F4F4F0; border:0.5px solid rgba(124,58,237,0.08); display:flex; flex-direction:column; gap:8px; }
.b19-s196-flow-label { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; }
.b19-s196-flow-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.b19-s196-flow-col { display:flex; flex-direction:column; gap:3px; }
.b19-s196-flow-title { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; margin-bottom:2px; }
.b19-s196-flow-col.s196-fc-v1 .b19-s196-flow-title { color:#854F0B; }
.b19-s196-flow-col.s196-fc-v2 .b19-s196-flow-title { color:#0F6E56; }
.b19-s196-flow-step { padding:4px 8px; border-radius:3px; font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; line-height:1.7; }
.b19-s196-flow-col.s196-fc-v1 .b19-s196-flow-step { background:#FAEEDA; }
.b19-s196-flow-col.s196-fc-v2 .b19-s196-flow-step { background:#EAF3DE; }
.b19-s196-flow-step.s196-highlight { font-weight:600; }
.b19-s196-flow-col.s196-fc-v1 .b19-s196-flow-step.s196-highlight { background:#854F0B; color:#fff; }
.b19-s196-flow-col.s196-fc-v2 .b19-s196-flow-step.s196-highlight { background:#0F6E56; color:#fff; }

/* ============================================================
   PAGE 23 · BAB 20 · Rangkuman
============================================================ */

/* ============================================================
   PAGE 24 · BAB 21 · Simulasi Atas Semuanya
============================================================ */

/* ============================================================
   PAGE 24 · BAB 21 · 21.1 Crypto Flow Simulator
============================================================ */
.b21-s211-desc { font-size:12px; color:#3A3A35; line-height:1.7; margin-bottom:1rem; padding:10px 14px; background:#F4F4F0; border-radius:var(--border-radius-md); border-left:2px solid rgba(124,58,237,0.3); }
.b21-s211-wrap { display:flex; flex-direction:column; gap:10px; }
.b21-s211-top  { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.b21-s211-addr-btns { display:flex; gap:0; border:0.5px solid rgba(124,58,237,0.15); border-radius:var(--border-radius-md); overflow:hidden; }
.b21-s211-addr-btn  { padding:6px 14px; font-size:12px; font-weight:500; background:transparent; color:#3A3A35; border:none; cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b21-s211-addr-btn.s211-act { background:#534AB7; color:#fff; }
.b21-s211-gen-btn { padding:6px 16px; font-size:12px; font-weight:500; background:transparent; color:#534AB7; border:0.5px solid rgba(83,74,183,0.3); border-radius:var(--border-radius-md); cursor:pointer; font-family:'Sora',sans-serif; transition:all 0.15s; }
.b21-s211-gen-btn:hover { background:#EEEDFE; }
.b21-s211-flow { display:flex; flex-direction:column; gap:0; }
.b21-s211-card { padding:10px 14px; border-radius:var(--border-radius-md); border:0.5px solid transparent; display:flex; flex-direction:column; gap:4px; cursor:default; }
.b21-s211-card.s211-rand  { background:#EEEDFE; border-color:rgba(83,74,183,0.2); }
.b21-s211-card.s211-priv  { background:#F4F4F0; border-color:rgba(83,74,183,0.12); }
.b21-s211-card.s211-pub   { background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b21-s211-card.s211-comp  { background:#EAF3DE; border-color:rgba(15,110,86,0.12); }
.b21-s211-card.s211-sha   { background:#FAEEDA; border-color:rgba(133,79,11,0.2); }
.b21-s211-card.s211-ripe  { background:#FAEEDA; border-color:rgba(133,79,11,0.12); }
.b21-s211-card.s211-vers  { background:#FCEBEB; border-color:rgba(163,45,45,0.15); }
.b21-s211-card.s211-check { background:#FCEBEB; border-color:rgba(163,45,45,0.2); }
.b21-s211-card.s211-enc   { background:#E6F1FB; border-color:rgba(24,95,165,0.2); }
.b21-s211-card.s211-addr  { background:#534AB7; border-color:#534AB7; }
.b21-s211-card.s211-sign  { background:#F4F4F0; border-color:rgba(83,74,183,0.12); }
.b21-s211-card.s211-verify{ background:#EAF3DE; border-color:rgba(15,110,86,0.2); }
.b21-s211-card-top  { display:flex; gap:8px; align-items:flex-start; }
.b21-s211-num  { font-size:10px; font-weight:500; font-family:'Sora',sans-serif; min-width:22px; flex-shrink:0; padding-top:1px; }
.b21-s211-card.s211-rand  .b21-s211-num, .b21-s211-card.s211-priv .b21-s211-num { color:#534AB7; }
.b21-s211-card.s211-pub   .b21-s211-num, .b21-s211-card.s211-comp .b21-s211-num { color:#0F6E56; }
.b21-s211-card.s211-sha   .b21-s211-num, .b21-s211-card.s211-ripe .b21-s211-num { color:#854F0B; }
.b21-s211-card.s211-vers  .b21-s211-num, .b21-s211-card.s211-check .b21-s211-num{ color:#A32D2D; }
.b21-s211-card.s211-enc   .b21-s211-num { color:#185FA5; }
.b21-s211-card.s211-addr  .b21-s211-num { color:rgba(255,255,255,0.7); }
.b21-s211-card.s211-sign  .b21-s211-num, .b21-s211-card.s211-verify .b21-s211-num { color:#534AB7; }
.b21-s211-body  { flex:1; }
.b21-s211-label { font-size:11px; font-weight:500; font-family:'Sora',sans-serif; color:#1A1A18; }
.b21-s211-card.s211-addr .b21-s211-label { color:#fff; }
.b21-s211-op    { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:1px; }
.b21-s211-card.s211-addr .b21-s211-op { color:rgba(255,255,255,0.75); }
.b21-s211-hex   { font-size:10px; font-family:'Courier Prime',monospace; color:#1A1A18; word-break:break-all; margin-top:4px; line-height:1.5; white-space:pre-wrap; }
.b21-s211-card.s211-addr .b21-s211-hex { color:#fff; font-size:11px; font-weight:500; }
.b21-s211-desc-txt { font-size:10px; font-family:'Sora',sans-serif; color:#3A3A35; margin-top:4px; line-height:1.5; border-top:0.5px solid rgba(124,58,237,0.1); padding-top:4px; }
.b21-s211-card.s211-addr .b21-s211-desc-txt   { color:rgba(255,255,255,0.8); border-color:rgba(255,255,255,0.2); }
.b21-s211-card.s211-pub  .b21-s211-desc-txt,
.b21-s211-card.s211-comp .b21-s211-desc-txt,
.b21-s211-card.s211-verify .b21-s211-desc-txt { border-color:rgba(15,110,86,0.12); }
.b21-s211-card.s211-sha  .b21-s211-desc-txt,
.b21-s211-card.s211-ripe .b21-s211-desc-txt   { border-color:rgba(133,79,11,0.12); }
.b21-s211-card.s211-vers .b21-s211-desc-txt,
.b21-s211-card.s211-check .b21-s211-desc-txt  { border-color:rgba(163,45,45,0.12); }
.b21-s211-card.s211-enc  .b21-s211-desc-txt   { border-color:rgba(24,95,165,0.12); }
.b21-s211-arrow     { display:flex; align-items:center; justify-content:center; height:18px; color:#52524C; font-size:13px; }
.b21-s211-sign-lbl  { font-size:10px; font-weight:500; color:#52524C; font-family:'Sora',sans-serif; margin:6px 0 2px; }


/* ============================================================
   PAGE 24 · BAB 21 · 21.2 TX Builder, Script Inspector, Stack Executor
============================================================ */
.b21-s212-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s212-tabs{display:flex;gap:0;border:0.5px solid rgba(124,58,237,0.12);border-radius:var(--border-radius-md);overflow:hidden;margin-bottom:1rem;}
.b21-s212-tab{flex:1;padding:7px 6px;font-size:10px;font-weight:500;background:transparent;color:#3A3A35;border:none;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s212-tab.s212-act{background:#534AB7;color:#fff;}
.b21-s212-pane{display:none;flex-direction:column;gap:8px;}
.b21-s212-pane.show{display:flex;}
.b21-s212-hint{font-size:11px;color:#3A3A35;font-family:'Sora',sans-serif;line-height:1.6;}
.b21-s212-type-btns{display:flex;gap:5px;flex-wrap:wrap;}
.b21-s212-type-btn{padding:4px 10px;border-radius:99px;font-size:10px;font-weight:500;border:0.5px solid rgba(124,58,237,0.2);background:transparent;color:#534AB7;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s212-type-btn:hover{background:#EEEDFE;}
.b21-s212-type-btn.act{background:#534AB7;color:#fff;border-color:#534AB7;}
.b21-s212-ab-layout{display:grid;grid-template-columns:1fr 58px 1fr;gap:0;align-items:start;}
.b21-s212-party{display:flex;flex-direction:column;gap:6px;}
.b21-s212-party-hdr{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--border-radius-md);}
.b21-s212-party-hdr.s212-alice{background:#EEEDFE;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s212-party-hdr.s212-bob  {background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s212-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;font-family:'Sora',sans-serif;flex-shrink:0;}
.b21-s212-avatar.s212-alice{background:#534AB7;color:#fff;}
.b21-s212-avatar.s212-bob  {background:#0F6E56;color:#fff;}
.b21-s212-name{font-size:12px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s212-addr{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;}
.b21-s212-utxo{padding:8px 12px;border-radius:var(--border-radius-md);border:0.5px solid transparent;display:flex;flex-direction:column;gap:3px;transition:all 0.4s;}
.b21-s212-utxo.s212-alice-in {background:#F4F4F0;border-color:rgba(83,74,183,0.12);}
.b21-s212-utxo.s212-alice-in.spent{opacity:0.3;text-decoration:line-through;}
.b21-s212-utxo.s212-bob-out  {background:#EAF3DE;border-color:rgba(15,110,86,0.2);opacity:0;transform:translateY(4px);transition:all 0.5s;}
.b21-s212-utxo.s212-bob-out.received{opacity:1;transform:translateY(0);}
.b21-s212-utxo.s212-change-out{background:#EEEDFE;border-color:rgba(83,74,183,0.15);opacity:0;transform:translateY(4px);transition:all 0.5s 0.1s;}
.b21-s212-utxo.s212-change-out.received{opacity:1;transform:translateY(0);}
.b21-s212-utxo-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.b21-s212-utxo-lbl.s212-purple{color:#534AB7;}
.b21-s212-utxo-lbl.s212-green {color:#0F6E56;}
.b21-s212-utxo-val{font-size:14px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s212-utxo-script{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;line-height:1.4;}
.b21-s212-utxo-note{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;font-style:italic;}
.b21-s212-middle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding-top:40px;}
.b21-s212-tx-box{background:#534AB7;color:#fff;border-radius:var(--border-radius-md);padding:6px 8px;font-size:9px;font-family:'Sora',sans-serif;text-align:center;line-height:1.4;}
.b21-s212-arrow{font-size:16px;color:#534AB7;}
.b21-s212-send-btn{padding:7px 10px;font-size:10px;font-weight:500;background:#534AB7;color:#fff;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;width:100%;margin-top:4px;transition:all 0.15s;}
.b21-s212-send-btn:hover{background:#3C3489;}
.b21-s212-send-btn:disabled{background:#52524C;cursor:default;}
.b21-s212-reset-btn{padding:5px 10px;font-size:10px;background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;width:100%;transition:all 0.15s;}
.b21-s212-miner{padding:8px 12px;border-radius:var(--border-radius-md);background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);display:flex;gap:8px;align-items:center;opacity:0;transition:all 0.5s 0.2s;}
.b21-s212-miner.show{opacity:1;}
.b21-s212-miner-avatar{width:28px;height:28px;border-radius:50%;background:#854F0B;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;font-family:'Sora',sans-serif;flex-shrink:0;}
.b21-s212-miner-body{flex:1;}
.b21-s212-miner-name{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#854F0B;}
.b21-s212-miner-val{font-size:12px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s212-miner-note{font-size:9px;font-family:'Sora',sans-serif;color:#854F0B;}
.b21-s212-si-btns{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:4px;}
.b21-s212-si-btn{padding:4px 10px;border-radius:99px;font-size:10px;font-weight:500;border:0.5px solid rgba(124,58,237,0.2);background:transparent;color:#534AB7;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s212-si-btn:hover{background:#EEEDFE;}
.b21-s212-si-btn.act{background:#534AB7;color:#fff;border-color:#534AB7;}
.b21-s212-si-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin:4px 0 2px;}
.b21-s212-oprow{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-bottom:4px;}
.b21-s212-op{padding:4px 8px;border-radius:4px;font-size:10px;font-family:'Courier Prime',monospace;font-weight:600;cursor:pointer;transition:all 0.12s;flex-shrink:0;}
.b21-s212-op:hover{opacity:0.8;transform:translateY(-1px);}
.b21-s212-op.oc-op  {background:#534AB7;color:#fff;}
.b21-s212-op.oc-data{background:#E6F1FB;color:#185FA5;border:0.5px solid rgba(24,95,165,0.2);}
.b21-s212-op.oc-hash{background:#FAEEDA;color:#854F0B;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s212-op.oc-sig {background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s212-op.oc-ver {background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s212-op.selected{box-shadow:0 0 0 2px #534AB7;}
.b21-s212-si-detail{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);min-height:56px;}
.b21-s212-si-detail-name{font-size:12px;font-weight:500;font-family:'Courier Prime',monospace;color:#534AB7;}
.b21-s212-si-detail-hex {font-size:10px;font-family:'Courier Prime',monospace;color:#3A3A35;}
.b21-s212-si-detail-desc{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.6;margin-top:2px;}
.b21-s212-si-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;padding:6px 10px;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s212-si-arr{font-size:10px;color:#52524C;padding:2px 0;}
.b21-s212-exec-ctrl{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.b21-s212-exec-btn{padding:5px 14px;font-size:11px;font-weight:500;background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s212-exec-btn:hover{background:#EEEDFE;}
.b21-s212-exec-btn.s212-primary{background:#534AB7;color:#fff;}
.b21-s212-exec-btn.s212-primary:hover{background:#3C3489;}
.b21-s212-step-lbl{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s212-exec-layout{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.b21-s212-col-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:3px;}
.b21-s212-exec-op{padding:4px 8px;border-radius:3px;font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;background:#F4F4F0;margin-bottom:2px;transition:all 0.2s;}
.b21-s212-exec-op.cur {background:#534AB7;color:#fff;font-weight:600;}
.b21-s212-exec-op.done{opacity:0.35;}
.b21-s212-stack{display:flex;flex-direction:column-reverse;gap:3px;min-height:100px;padding:8px;background:#F4F4F0;border-radius:var(--border-radius-md);border:0.5px solid rgba(124,58,237,0.08);}
.b21-s212-stack-item{padding:4px 8px;border-radius:3px;font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;background:#fff;border:0.5px solid rgba(124,58,237,0.15);}
.b21-s212-stack-empty{font-size:10px;font-family:'Sora',sans-serif;color:#52524C;font-style:italic;padding:4px;}
.b21-s212-exec-result{padding:8px 12px;border-radius:var(--border-radius-md);font-size:11px;font-family:'Sora',sans-serif;line-height:1.5;}
.b21-s212-exec-result.s212-ok  {background:#EAF3DE;color:#27500A;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s212-exec-result.s212-idle{background:#F4F4F0;color:#3A3A35;border:0.5px solid rgba(124,58,237,0.08);}

/* ============================================================
   PAGE 24 · BAB 21 · 21.3 Opcodes Explorer
============================================================ */
.b21-s213-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s213-layout{display:grid;grid-template-columns:190px 1fr;gap:10px;align-items:start;}
.b21-s213-left{display:flex;flex-direction:column;gap:4px;max-height:600px;overflow-y:auto;}
.b21-s213-cat-lbl{font-size:9px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;padding:6px 0 2px;border-top:0.5px solid rgba(124,58,237,0.08);margin-top:4px;}
.b21-s213-cat-lbl:first-child{border-top:none;margin-top:0;}
.b21-s213-op-btn{padding:5px 8px;border-radius:var(--border-radius-md);font-size:10px;font-family:'Courier Prime',monospace;font-weight:600;background:#F4F4F0;border:0.5px solid transparent;cursor:pointer;text-align:left;transition:all 0.12s;color:#1A1A18;display:flex;align-items:center;gap:4px;width:100%;}
.b21-s213-op-btn:hover{background:#EEEDFE;}
.b21-s213-op-btn.act{background:#534AB7;color:#fff;}
.b21-s213-op-btn.s213-disabled{opacity:0.55;}
.b21-s213-op-hex{font-size:8px;opacity:0.55;margin-left:auto;flex-shrink:0;}
.b21-s213-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.b21-s213-dot.active   {background:#0F6E56;}
.b21-s213-dot.disabled {background:#A32D2D;}
.b21-s213-dot.tapscript{background:#185FA5;}
.b21-s213-right{display:flex;flex-direction:column;gap:8px;}
.b21-s213-empty{padding:20px;text-align:center;font-size:11px;font-family:'Sora',sans-serif;color:#52524C;background:#F4F4F0;border-radius:var(--border-radius-lg);}
.b21-s213-hdr{padding:12px 14px;border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:4px;}
.b21-s213-hdr.h-active  {background:#534AB7;}
.b21-s213-hdr.h-disabled{background:#A32D2D;}
.b21-s213-hdr.h-tapscript{background:#185FA5;}
.b21-s213-hdr-name{font-size:15px;font-weight:600;font-family:'Courier Prime',monospace;color:#fff;}
.b21-s213-hdr-hex{font-size:10px;font-family:'Courier Prime',monospace;color:rgba(255,255,255,0.7);}
.b21-s213-hdr-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.b21-s213-badge{padding:3px 8px;border-radius:99px;font-size:9px;font-weight:500;font-family:'Sora',sans-serif;background:rgba(255,255,255,0.2);color:#fff;}
.b21-s213-status-card{padding:10px 14px;border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:4px;}
.b21-s213-status-card.sc-active  {background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s213-status-card.sc-disabled{background:#FCEBEB;border:0.5px solid rgba(163,45,45,0.2);}
.b21-s213-status-card.sc-tapscript{background:#E6F1FB;border:0.5px solid rgba(24,95,165,0.2);}
.b21-s213-status-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;}
.b21-s213-status-card.sc-active   .b21-s213-status-lbl{color:#0F6E56;}
.b21-s213-status-card.sc-disabled  .b21-s213-status-lbl{color:#A32D2D;}
.b21-s213-status-card.sc-tapscript .b21-s213-status-lbl{color:#185FA5;}
.b21-s213-status-text{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}
.b21-s213-impact{font-size:10px;font-family:'Sora',sans-serif;margin-top:3px;padding:4px 8px;border-radius:var(--border-radius-md);}
.b21-s213-impact.imp-safe{background:#EAF3DE;color:#27500A;}
.b21-s213-stack-wrap{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:6px;}
.b21-s213-stack-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s213-stack-row{display:flex;gap:8px;align-items:center;}
.b21-s213-stack-col{display:flex;flex-direction:column-reverse;gap:3px;min-width:80px;}
.b21-s213-stack-col-lbl{font-size:9px;font-family:'Sora',sans-serif;color:#52524C;text-align:center;margin-top:4px;}
.b21-s213-stack-item{padding:3px 8px;border-radius:3px;font-size:9px;font-family:'Courier Prime',monospace;text-align:center;}
.b21-s213-stack-item.si-in {background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s213-stack-item.si-out{background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s213-stack-item.si-pop{background:#FCEBEB;color:#A32D2D;border:0.5px solid rgba(163,45,45,0.2);opacity:0.5;text-decoration:line-through;}
.b21-s213-stack-arrow{font-size:16px;color:#52524C;padding:0 4px;}
.b21-s213-desc-card{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.6;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-lg);}
.b21-s213-addr-wrap{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:6px;}
.b21-s213-addr-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s213-addr-row{display:flex;gap:6px;align-items:flex-start;}
.b21-s213-addr-tag{padding:2px 8px;border-radius:99px;font-size:9px;font-weight:500;font-family:'Sora',sans-serif;min-width:70px;text-align:center;flex-shrink:0;}
.b21-s213-addr-tag.t-p2pk  {background:#F4F4F0;color:#3A3A35;border:0.5px solid rgba(124,58,237,0.1);}
.b21-s213-addr-tag.t-p2pkh {background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s213-addr-tag.t-p2sh  {background:#FAEEDA;color:#854F0B;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s213-addr-tag.t-p2wpkh{background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s213-addr-tag.t-p2wsh {background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.15);}
.b21-s213-addr-tag.t-p2tr  {background:#E6F1FB;color:#185FA5;border:0.5px solid rgba(24,95,165,0.2);}
.b21-s213-addr-tag.t-htlc  {background:#FCEBEB;color:#A32D2D;border:0.5px solid rgba(163,45,45,0.2);}
.b21-s213-addr-note{font-size:10px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.4;flex:1;}
.b21-s213-examples{padding:10px 14px;border-radius:var(--border-radius-lg);background:#1A1A18;display:flex;flex-direction:column;gap:6px;}
.b21-s213-ex-lbl{font-size:10px;font-weight:500;color:#3A3A35;font-family:'Sora',sans-serif;}
.b21-s213-script-line{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-bottom:1px;}
.b21-s213-op-token{font-size:10px;font-family:'Courier Prime',monospace;padding:2px 6px;border-radius:3px;}
.b21-s213-op-token.hi    {background:#534AB7;color:#fff;font-weight:600;}
.b21-s213-op-token.normal{color:#A8D08D;}
.b21-s213-op-token.data  {color:#FAEEDA;}
.b21-s213-ex-name{font-size:9px;font-family:'Sora',sans-serif;color:#5A5A52;margin-top:1px;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.4 Block Explorer
============================================================ */
.b21-s214-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s214-tabs{display:flex;gap:0;border:0.5px solid rgba(124,58,237,0.12);border-radius:var(--border-radius-md);overflow:hidden;margin-bottom:1rem;}
.b21-s214-tab{flex:1;padding:7px 6px;font-size:10px;font-weight:500;background:transparent;color:#3A3A35;border:none;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s214-tab.s214-act{background:#534AB7;color:#fff;}
.b21-s214-pane{display:none;flex-direction:column;gap:8px;}
.b21-s214-pane.show{display:flex;}
.b21-s214-pane-hint{font-size:11px;color:#3A3A35;font-family:'Sora',sans-serif;line-height:1.6;}
.b21-s214-block-card{padding:12px 14px;background:#1A1A18;border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:8px;}
.b21-s214-block-top{display:flex;gap:10px;align-items:center;}
.b21-s214-block-num{font-size:20px;font-weight:700;font-family:'Sora',sans-serif;color:#fff;}
.b21-s214-block-meta{display:flex;flex-direction:column;gap:2px;}
.b21-s214-block-time{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s214-block-sub{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s214-stats{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;}
.b21-s214-stat{padding:6px 10px;border-radius:var(--border-radius-md);}
.b21-s214-stat.s214-st-tx {background:#EEEDFE;}
.b21-s214-stat.s214-st-fee{background:#FAEEDA;}
.b21-s214-stat.s214-st-rew{background:#EAF3DE;}
.b21-s214-stat.s214-st-sz {background:#F4F4F0;}
.b21-s214-stat-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.s214-st-tx  .b21-s214-stat-lbl{color:#534AB7;}
.s214-st-fee .b21-s214-stat-lbl{color:#854F0B;}
.s214-st-rew .b21-s214-stat-lbl{color:#0F6E56;}
.s214-st-sz  .b21-s214-stat-lbl{color:#3A3A35;}
.b21-s214-stat-val{font-size:13px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s214-overview-note{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.7;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s214-field{padding:8px 12px;border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:3px;cursor:pointer;transition:all 0.15s;border:0.5px solid transparent;margin-bottom:4px;}
.b21-s214-field:hover{filter:brightness(0.97);}
.b21-s214-field.selected{box-shadow:0 0 0 2px #534AB7;}
.b21-s214-field.f-version {background:#F4F4F0;border-color:rgba(124,58,237,0.08);}
.b21-s214-field.f-prevhash{background:#EEEDFE;border-color:rgba(83,74,183,0.15);}
.b21-s214-field.f-merkle  {background:#EAF3DE;border-color:rgba(15,110,86,0.2);}
.b21-s214-field.f-time    {background:#FAEEDA;border-color:rgba(133,79,11,0.15);}
.b21-s214-field.f-bits    {background:#FCEBEB;border-color:rgba(163,45,45,0.15);}
.b21-s214-field.f-nonce   {background:#E6F1FB;border-color:rgba(24,95,165,0.2);}
.b21-s214-field-row{display:flex;gap:8px;align-items:baseline;}
.b21-s214-field-name{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;flex-shrink:0;}
.f-version  .b21-s214-field-name{color:#534AB7;}
.f-prevhash .b21-s214-field-name{color:#534AB7;}
.f-merkle   .b21-s214-field-name{color:#0F6E56;}
.f-time     .b21-s214-field-name{color:#854F0B;}
.f-bits     .b21-s214-field-name{color:#A32D2D;}
.f-nonce    .b21-s214-field-name{color:#185FA5;}
.b21-s214-field-val{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;word-break:break-all;flex:1;}
.b21-s214-field-size{font-size:9px;font-family:'Sora',sans-serif;color:#52524C;flex-shrink:0;}
.b21-s214-field-desc{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.5;padding-top:4px;border-top:0.5px solid rgba(124,58,237,0.08);}
.f-merkle .b21-s214-field-desc{border-color:rgba(15,110,86,0.1);}
.f-time   .b21-s214-field-desc{border-color:rgba(133,79,11,0.1);}
.f-bits   .b21-s214-field-desc{border-color:rgba(163,45,45,0.1);}
.f-nonce  .b21-s214-field-desc{border-color:rgba(24,95,165,0.1);}
.b21-s214-field-hint{font-size:9px;font-family:'Sora',sans-serif;color:#52524C;font-style:italic;}
.b21-s214-header-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;padding:6px 10px;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s214-merkle-tree{display:flex;flex-direction:column;gap:0;align-items:center;margin-bottom:6px;}
.b21-s214-merkle-level{display:flex;gap:6px;justify-content:center;}
.b21-s214-merkle-node{padding:4px 8px;border-radius:4px;font-size:9px;font-family:'Courier Prime',monospace;cursor:pointer;transition:all 0.15s;text-align:center;}
.b21-s214-merkle-node.mn-root  {background:#534AB7;color:#fff;font-weight:600;padding:5px 14px;}
.b21-s214-merkle-node.mn-branch{background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s214-merkle-node.mn-leaf  {background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s214-merkle-node.mn-coin  {background:#FAEEDA;color:#854F0B;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s214-merkle-node.selected {box-shadow:0 0 0 2px #534AB7;}
.b21-s214-merkle-conn{width:100%;height:14px;display:flex;justify-content:center;margin:0;}
.b21-s214-merkle-detail{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:4px;}
.b21-s214-merkle-hint-inner{font-size:10px;font-family:'Sora',sans-serif;color:#52524C;}
.b21-s214-merkle-detail-name{font-size:11px;font-weight:500;font-family:'Courier Prime',monospace;color:#534AB7;}
.b21-s214-merkle-detail-val{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;word-break:break-all;}
.b21-s214-merkle-detail-desc{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}
.b21-s214-merkle-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;padding:6px 10px;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s214-tx-card{padding:10px 12px;border-radius:var(--border-radius-md);cursor:pointer;transition:all 0.15s;border:0.5px solid transparent;margin-bottom:4px;}
.b21-s214-tx-card:hover{filter:brightness(0.97);}
.b21-s214-tx-card.tc-coinbase{background:#FAEEDA;border-color:rgba(133,79,11,0.2);}
.b21-s214-tx-card.tc-normal  {background:#F4F4F0;border-color:rgba(124,58,237,0.08);}
.b21-s214-tx-card.selected   {box-shadow:0 0 0 2px #534AB7;}
.b21-s214-tx-top{display:flex;gap:8px;align-items:center;}
.b21-s214-tx-badge{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;padding:2px 6px;border-radius:99px;}
.tc-coinbase .b21-s214-tx-badge{background:#854F0B;color:#fff;}
.tc-normal   .b21-s214-tx-badge{background:#534AB7;color:#fff;}
.b21-s214-tx-txid{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.b21-s214-tx-val{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;flex-shrink:0;}
.b21-s214-tx-meta{display:flex;gap:10px;margin-top:4px;}
.b21-s214-tx-meta-item{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s214-tx-detail{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:6px;}
.b21-s214-tx-detail-row{display:flex;gap:8px;}
.b21-s214-tx-detail-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#52524C;min-width:80px;}
.b21-s214-tx-detail-val{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;word-break:break-all;flex:1;}
.b21-s214-tx-detail-desc{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}

.b21-s213-status-pill{font-size:8px;font-weight:500;font-family:'Sora',sans-serif;padding:1px 5px;border-radius:99px;margin-left:auto;flex-shrink:0;}
.b21-s213-pill-active   {background:#EAF3DE;color:#0F6E56;}
.b21-s213-pill-disabled {background:#FCEBEB;color:#A32D2D;}
.b21-s213-pill-tapscript{background:#E6F1FB;color:#185FA5;}
.b21-s213-op-btn.act .b21-s213-status-pill{background:rgba(255,255,255,0.2);color:#fff;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.2 Tab 4 — Full TX Flow
============================================================ */
.b21-s212-tf-arrow{display:flex;justify-content:center;height:16px;color:#52524C;font-size:12px;}
.b21-s212-tf-card{padding:10px 14px;border-radius:var(--border-radius-md);border:0.5px solid transparent;display:flex;gap:10px;cursor:pointer;transition:all 0.15s;margin-bottom:0;}
.b21-s212-tf-card:hover{filter:brightness(0.97);}
.b21-s212-tf-card.tf-sel{box-shadow:0 0 0 2px #534AB7;}
.b21-s212-tf-card.c-utxo  {background:#F4F4F0;border-color:rgba(124,58,237,0.08);}
.b21-s212-tf-card.c-build {background:#EEEDFE;border-color:rgba(83,74,183,0.15);}
.b21-s212-tf-card.c-lock  {background:#EAF3DE;border-color:rgba(15,110,86,0.2);}
.b21-s212-tf-card.c-sign  {background:#FAEEDA;border-color:rgba(133,79,11,0.2);}
.b21-s212-tf-card.c-verify{background:#FCEBEB;border-color:rgba(163,45,45,0.15);}
.b21-s212-tf-card.c-done  {background:#EAF3DE;border-color:rgba(15,110,86,0.3);}
.b21-s212-tf-num{font-size:11px;font-weight:600;font-family:'Sora',sans-serif;min-width:22px;flex-shrink:0;padding-top:1px;}
.c-utxo   .b21-s212-tf-num{color:#3A3A35;}
.c-build  .b21-s212-tf-num{color:#534AB7;}
.c-lock   .b21-s212-tf-num{color:#0F6E56;}
.c-sign   .b21-s212-tf-num{color:#854F0B;}
.c-verify .b21-s212-tf-num{color:#A32D2D;}
.c-done   .b21-s212-tf-num{color:#0F6E56;}
.b21-s212-tf-body{flex:1;}
.b21-s212-tf-label{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s212-tf-sub{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;margin-top:1px;}
.b21-s212-tf-code{font-size:9px;font-family:'Courier Prime',monospace;color:#1A1A18;margin-top:5px;white-space:pre-wrap;line-height:1.5;background:rgba(0,0,0,0.04);padding:6px 8px;border-radius:4px;}
.b21-s212-tf-det{padding:10px 14px;display:flex;flex-direction:column;gap:6px;border-radius:0 0 var(--border-radius-md) var(--border-radius-md);}
.b21-s212-tf-det.c-utxo  {background:#EBEBE7;border:0.5px solid rgba(124,58,237,0.08);border-top:none;}
.b21-s212-tf-det.c-build {background:#E0DEF0;border:0.5px solid rgba(83,74,183,0.15);border-top:none;}
.b21-s212-tf-det.c-lock  {background:#D8E9CC;border:0.5px solid rgba(15,110,86,0.2);border-top:none;}
.b21-s212-tf-det.c-sign  {background:#EADFCC;border:0.5px solid rgba(133,79,11,0.2);border-top:none;}
.b21-s212-tf-det.c-verify{background:#EDD8D8;border:0.5px solid rgba(163,45,45,0.15);border-top:none;}
.b21-s212-tf-det.c-done  {background:#D8E9CC;border:0.5px solid rgba(15,110,86,0.3);border-top:none;}
.b21-s212-tf-det-row{display:flex;gap:8px;}
.b21-s212-tf-det-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#3A3A35;min-width:88px;flex-shrink:0;}
.b21-s212-tf-det-val{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;word-break:break-all;flex:1;}
.b21-s212-tf-det-desc{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}
.b21-s212-tf-opcodes{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px;}
.b21-s212-tf-op{padding:3px 7px;border-radius:3px;font-size:9px;font-family:'Courier Prime',monospace;font-weight:600;}
.b21-s212-tf-op.oc-op  {background:#534AB7;color:#fff;}
.b21-s212-tf-op.oc-data{background:#E6F1FB;color:#185FA5;border:0.5px solid rgba(24,95,165,0.2);}
.b21-s212-tf-op.oc-hash{background:#FAEEDA;color:#854F0B;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s212-tf-op.oc-sig {background:#EAF3DE;color:#0F6E56;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s212-tf-op.oc-ver {background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s212-tf-op.oc-imp {background:#F4F4F0;color:#3A3A35;border:0.5px solid rgba(124,58,237,0.1);font-style:italic;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.5 Mining Nonce Hunt
============================================================ */
.b21-s215-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s215-diff-wrap{display:flex;flex-direction:column;gap:5px;}
.b21-s215-diff-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s215-diff-btns{display:flex;gap:6px;flex-wrap:wrap;}
.b21-s215-diff-btn{padding:5px 14px;border-radius:99px;font-size:11px;font-weight:500;border:0.5px solid rgba(124,58,237,0.2);background:transparent;color:#534AB7;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s215-diff-btn:hover{background:#EEEDFE;}
.b21-s215-diff-btn.s215-act{background:#534AB7;color:#fff;border-color:#534AB7;}
.b21-s215-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.b21-s215-stat{padding:8px 10px;border-radius:var(--border-radius-md);}
.b21-s215-stat.s215-st-nonce{background:#E6F1FB;border:0.5px solid rgba(24,95,165,0.2);}
.b21-s215-stat.s215-st-hash {background:#EEEDFE;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s215-stat.s215-st-diff {background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s215-stat-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.s215-st-nonce .b21-s215-stat-lbl{color:#185FA5;}
.s215-st-hash  .b21-s215-stat-lbl{color:#534AB7;}
.s215-st-diff  .b21-s215-stat-lbl{color:#854F0B;}
.b21-s215-stat-val{font-size:14px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s215-stat-sub{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s215-header{padding:10px 14px;border-radius:var(--border-radius-lg);background:#1A1A18;display:flex;flex-direction:column;gap:6px;}
.b21-s215-header-lbl{font-size:10px;font-weight:500;color:#3A3A35;font-family:'Sora',sans-serif;}
.b21-s215-header-fields{display:grid;grid-template-columns:1fr 1fr;gap:4px;}
.b21-s215-hf{display:flex;flex-direction:column;gap:1px;}
.b21-s215-hf-name{font-size:9px;font-family:'Sora',sans-serif;color:#5A5A52;}
.b21-s215-hf-val{font-size:10px;font-family:'Courier Prime',monospace;color:#A8D08D;word-break:break-all;}
.b21-s215-nonce-yellow{color:#FFD580;}
.b21-s215-header-raw{font-size:9px;font-family:'Courier Prime',monospace;color:#5A5A52;margin-top:4px;word-break:break-all;line-height:1.4;}
.b21-s215-hash-section{display:flex;flex-direction:column;gap:4px;}
.b21-s215-hash-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s215-hash-box{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:4px;}
.b21-s215-hash-val{font-size:11px;font-family:'Courier Prime',monospace;word-break:break-all;line-height:1.6;}
.b21-s215-hc-match{color:#0F6E56;font-weight:600;}
.b21-s215-hc-fail {color:#A32D2D;}
.b21-s215-hc-rest {color:#3A3A35;}
.b21-s215-hash-meta{display:flex;gap:8px;align-items:center;margin-top:2px;}
.b21-s215-target-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s215-target-val{font-size:10px;font-family:'Courier Prime',monospace;color:#534AB7;}
.b21-s215-target-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s215-ctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.b21-s215-btn{padding:7px 18px;font-size:12px;font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s215-btn.s215-primary  {background:#534AB7;color:#fff;}
.b21-s215-btn.s215-primary:hover{background:#3C3489;}
.b21-s215-btn.s215-primary:disabled{background:#52524C;cursor:default;}
.b21-s215-btn.s215-secondary{background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);}
.b21-s215-btn.s215-secondary:hover{background:#EEEDFE;}
.b21-s215-timer-wrap{display:flex;flex-direction:column;gap:1px;}
.b21-s215-timer-lbl{font-size:9px;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s215-timer-val{font-size:14px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s215-result{padding:10px 14px;border-radius:var(--border-radius-lg);font-size:11px;font-family:'Sora',sans-serif;line-height:1.5;transition:all 0.3s;}
.b21-s215-result.s215-idle  {background:#F4F4F0;color:#3A3A35;border:0.5px solid rgba(124,58,237,0.08);}
.b21-s215-result.s215-mining{background:#EEEDFE;color:#534AB7;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s215-result.s215-found {background:#EAF3DE;color:#27500A;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s215-explainer{display:flex;flex-direction:column;gap:6px;}
.b21-s215-exp-row{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s215-exp-num{font-size:11px;font-weight:600;font-family:'Sora',sans-serif;color:#534AB7;min-width:20px;flex-shrink:0;}
.b21-s215-exp-text{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.6 Mempool Simulator
============================================================ */
.b21-s216-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s216-stats{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;margin-bottom:8px;}
.b21-s216-stat{padding:8px 10px;border-radius:var(--border-radius-md);}
.b21-s216-stat.s216-ms-count{background:#EEEDFE;border:0.5px solid rgba(83,74,183,0.2);}
.b21-s216-stat.s216-ms-size {background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s216-stat.s216-ms-min  {background:#FCEBEB;border:0.5px solid rgba(163,45,45,0.2);}
.b21-s216-stat.s216-ms-next {background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s216-stat-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.s216-ms-count .b21-s216-stat-lbl{color:#534AB7;}
.s216-ms-size  .b21-s216-stat-lbl{color:#854F0B;}
.s216-ms-min   .b21-s216-stat-lbl{color:#A32D2D;}
.s216-ms-next  .b21-s216-stat-lbl{color:#0F6E56;}
.b21-s216-stat-val{font-size:14px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s216-stat-sub{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s216-ctrl{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.b21-s216-btn{padding:6px 14px;font-size:11px;font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s216-btn.s216-primary  {background:#534AB7;color:#fff;}
.b21-s216-btn.s216-primary:hover{background:#3C3489;}
.b21-s216-btn.s216-secondary{background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);}
.b21-s216-btn.s216-secondary:hover{background:#EEEDFE;}
.b21-s216-btn.s216-danger   {background:transparent;color:#A32D2D;border:0.5px solid rgba(163,45,45,0.3);}
.b21-s216-btn.s216-danger:hover{background:#FCEBEB;}
.b21-s216-fee-input{display:flex;gap:6px;align-items:center;}
.b21-s216-fee-lbl{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s216-fee-sel{font-size:11px;font-family:'Sora',sans-serif;border:0.5px solid rgba(124,58,237,0.2);border-radius:var(--border-radius-md);padding:5px 8px;background:transparent;color:#534AB7;cursor:pointer;}
.b21-s216-layout{display:grid;grid-template-columns:1fr 210px;gap:10px;align-items:start;}
.b21-s216-pool-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:3px;}
.b21-s216-pool-header{display:grid;grid-template-columns:1fr 60px 60px 60px;gap:4px;padding:4px 8px;}
.b21-s216-pool-hcell{font-size:9px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s216-pool-rows{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto;}
.b21-s216-tx-row{display:grid;grid-template-columns:1fr 60px 60px 60px;gap:4px;padding:6px 8px;border-radius:var(--border-radius-md);cursor:pointer;transition:all 0.2s;}
.b21-s216-tx-row.s216-fee-high{background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s216-tx-row.s216-fee-med {background:#EEEDFE;border:0.5px solid rgba(83,74,183,0.15);}
.b21-s216-tx-row.s216-fee-low {background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.15);}
.b21-s216-tx-row.s216-fee-dust{background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);}
.b21-s216-tx-row.s216-selected{box-shadow:0 0 0 2px #534AB7;}
.b21-s216-tx-cell{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.b21-s216-tx-cell.s216-fee-val{font-weight:600;}
.s216-fee-high .b21-s216-tx-cell.s216-fee-val{color:#0F6E56;}
.s216-fee-med  .b21-s216-tx-cell.s216-fee-val{color:#534AB7;}
.s216-fee-low  .b21-s216-tx-cell.s216-fee-val{color:#854F0B;}
.s216-fee-dust .b21-s216-tx-cell.s216-fee-val{color:#52524C;}
.b21-s216-tx-cell.s216-type{font-size:9px;font-family:'Sora',sans-serif;}
.b21-s216-pool-empty{padding:20px;text-align:center;font-size:11px;font-family:'Sora',sans-serif;color:#52524C;background:#F4F4F0;border-radius:var(--border-radius-md);}
.b21-s216-chart-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:3px;}
.b21-s216-chart-row{display:flex;gap:6px;align-items:center;margin-bottom:3px;}
.b21-s216-chart-fee-lbl{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;min-width:40px;text-align:right;}
.b21-s216-chart-bar-wrap{flex:1;background:#F4F4F0;border-radius:2px;height:12px;overflow:hidden;}
.b21-s216-chart-bar{height:100%;border-radius:2px;transition:width 0.3s;}
.b21-s216-chart-bar.bar-high{background:#0F6E56;}
.b21-s216-chart-bar.bar-med {background:#534AB7;}
.b21-s216-chart-bar.bar-low {background:#854F0B;}
.b21-s216-chart-bar.bar-dust{background:#52524C;}
.b21-s216-chart-cnt{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;min-width:16px;}
.b21-s216-detail{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:4px;}
.b21-s216-detail-title{font-size:10px;font-weight:500;color:#534AB7;font-family:'Sora',sans-serif;}
.b21-s216-detail-row{display:flex;gap:8px;}
.b21-s216-detail-lbl{font-size:9px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;min-width:70px;}
.b21-s216-detail-val{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;word-break:break-all;flex:1;}
.b21-s216-detail-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.5;}
.b21-s216-side-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:3px;}
.b21-s216-block-box{padding:8px 10px;border-radius:var(--border-radius-md);background:#1A1A18;display:flex;flex-direction:column;gap:3px;min-height:80px;}
.b21-s216-block-num{font-size:11px;font-weight:600;font-family:'Sora',sans-serif;color:#fff;}
.b21-s216-block-meta{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s216-block-tx{font-size:9px;font-family:'Courier Prime',monospace;color:#A8D08D;padding:1px 0;}
.b21-s216-block-empty{font-size:10px;font-family:'Sora',sans-serif;color:#5A5A52;font-style:italic;}
.b21-s216-log{display:flex;flex-direction:column;gap:2px;max-height:80px;overflow-y:auto;}
.b21-s216-log-item{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;padding:2px 0;border-bottom:0.5px solid rgba(124,58,237,0.05);}
.b21-s216-log-item.log-in   {color:#0F6E56;}
.b21-s216-log-item.log-block{color:#534AB7;}
.b21-s216-log-item.log-drop {color:#A32D2D;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.7 HD Wallet & Derivation Tree
============================================================ */
.b21-s217-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:8px;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s217-sim-warning{padding:6px 12px;border-radius:var(--border-radius-md);background:#FCEBEB;border:0.5px solid rgba(163,45,45,0.3);font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#A32D2D;margin-bottom:8px;}
.b21-s217-seed-box{padding:10px 14px;border-radius:var(--border-radius-lg);background:#1A1A18;display:flex;flex-direction:column;gap:5px;margin-bottom:6px;}
.b21-s217-seed-phrase{font-size:11px;font-family:'Courier Prime',monospace;color:#FFD580;line-height:1.6;word-break:break-word;}
.b21-s217-seed-sub{font-size:9px;font-family:'Courier Prime',monospace;color:#5A5A52;}
.b21-s217-seed-hex{font-size:9px;font-family:'Courier Prime',monospace;color:#A8D08D;word-break:break-all;}
.b21-s217-gen-btn{padding:6px 16px;font-size:11px;font-weight:500;background:#534AB7;color:#fff;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;margin-bottom:8px;}
.b21-s217-gen-btn:hover{background:#3C3489;}
.b21-s217-sec-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:5px;}
.b21-s217-std-btns{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px;}
.b21-s217-std-btn{padding:4px 12px;border-radius:99px;font-size:10px;font-weight:500;border:0.5px solid rgba(124,58,237,0.2);background:transparent;color:#534AB7;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s217-std-btn:hover{background:#EEEDFE;}
.b21-s217-std-btn.act{background:#534AB7;color:#fff;border-color:#534AB7;}
.b21-s217-path-wrap{padding:10px 14px;border-radius:var(--border-radius-lg);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;flex-direction:column;gap:6px;margin-bottom:8px;}
.b21-s217-path-display{display:flex;gap:4px;align-items:center;flex-wrap:wrap;}
.b21-s217-path-seg{padding:4px 10px;border-radius:4px;font-size:11px;font-family:'Courier Prime',monospace;font-weight:600;cursor:pointer;transition:all 0.12s;}
.b21-s217-path-seg:hover{opacity:0.8;}
.b21-s217-path-seg.ps-m    {background:#1A1A18;color:#fff;}
.b21-s217-path-seg.ps-purp {background:#534AB7;color:#fff;}
.b21-s217-path-seg.ps-coin {background:#185FA5;color:#fff;}
.b21-s217-path-seg.ps-acc  {background:#0F6E56;color:#fff;}
.b21-s217-path-seg.ps-chain{background:#854F0B;color:#fff;}
.b21-s217-path-seg.ps-idx  {background:#A32D2D;color:#fff;}
.b21-s217-path-seg.selected{box-shadow:0 0 0 3px rgba(83,74,183,0.4);}
.b21-s217-path-sep{font-size:14px;color:#52524C;}
.b21-s217-path-detail{padding:8px 10px;border-radius:var(--border-radius-md);background:#fff;border:0.5px solid rgba(124,58,237,0.1);display:flex;flex-direction:column;gap:3px;}
.b21-s217-path-detail-name{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#534AB7;}
.b21-s217-path-detail-desc{font-size:10px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}
.b21-s217-path-detail-hint{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;font-style:italic;}
.b21-s217-tree-row{display:flex;gap:6px;align-items:flex-start;margin-bottom:4px;}
.b21-s217-tree-indent{display:flex;flex-direction:row;}
.b21-s217-tree-spacer{width:18px;flex-shrink:0;}
.b21-s217-tree-corner{width:18px;height:28px;border-left:1.5px solid rgba(124,58,237,0.15);border-bottom:1.5px solid rgba(124,58,237,0.15);border-radius:0 0 0 4px;flex-shrink:0;}
.b21-s217-tree-card{flex:1;padding:8px 12px;border-radius:var(--border-radius-md);border:0.5px solid transparent;}
.b21-s217-tree-card.n-seed  {background:#1A1A18;}
.b21-s217-tree-card.n-master{background:#EEEDFE;border-color:rgba(83,74,183,0.2);}
.b21-s217-tree-card.n-purp  {background:#E6F1FB;border-color:rgba(24,95,165,0.2);}
.b21-s217-tree-card.n-coin  {background:#E6F1FB;border-color:rgba(24,95,165,0.12);}
.b21-s217-tree-card.n-acc   {background:#EAF3DE;border-color:rgba(15,110,86,0.2);}
.b21-s217-tree-card.n-chain {background:#FAEEDA;border-color:rgba(133,79,11,0.15);}
.b21-s217-tree-card.n-addr  {background:#F4F4F0;border-color:rgba(124,58,237,0.08);}
.b21-s217-tree-top{display:flex;align-items:center;margin-bottom:3px;}
.b21-s217-tree-path{font-size:10px;font-weight:600;font-family:'Courier Prime',monospace;}
.n-seed  .b21-s217-tree-path{color:#FFD580;}
.n-master .b21-s217-tree-path{color:#534AB7;}
.n-purp  .b21-s217-tree-path,.n-coin .b21-s217-tree-path{color:#185FA5;}
.n-acc   .b21-s217-tree-path{color:#0F6E56;}
.n-chain .b21-s217-tree-path{color:#854F0B;}
.n-addr  .b21-s217-tree-path{color:#3A3A35;}
.b21-s217-tree-label{font-size:10px;font-family:'Sora',sans-serif;font-weight:500;margin-left:6px;}
.n-seed  .b21-s217-tree-label{color:#A8D08D;}
.n-master .b21-s217-tree-label{color:#534AB7;}
.n-purp  .b21-s217-tree-label,.n-coin .b21-s217-tree-label{color:#185FA5;}
.n-acc   .b21-s217-tree-label{color:#0F6E56;}
.n-chain .b21-s217-tree-label{color:#854F0B;}
.n-addr  .b21-s217-tree-label{color:#3A3A35;}
.b21-s217-tree-process{font-size:9px;font-family:'Courier Prime',monospace;color:#52524C;margin-bottom:2px;font-style:italic;}
.n-seed .b21-s217-tree-process{color:#5A5A52;}
.b21-s217-tree-val{font-size:9px;font-family:'Courier Prime',monospace;word-break:break-all;margin-bottom:3px;}
.n-seed  .b21-s217-tree-val{color:#A8D08D;}
.n-master .b21-s217-tree-val{color:#534AB7;}
.n-purp  .b21-s217-tree-val,.n-coin .b21-s217-tree-val{color:#185FA5;}
.n-acc   .b21-s217-tree-val{color:#0F6E56;}
.n-chain .b21-s217-tree-val{color:#854F0B;}
.n-addr  .b21-s217-tree-val{color:#0F6E56;font-size:10px;font-weight:500;}
.b21-s217-tree-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.5;padding-top:4px;border-top:0.5px solid rgba(124,58,237,0.08);}
.n-seed  .b21-s217-tree-note{color:#5A5A52;border-color:rgba(255,255,255,0.06);}
.n-master .b21-s217-tree-note{border-color:rgba(83,74,183,0.12);}
.n-purp  .b21-s217-tree-note,.n-coin .b21-s217-tree-note{border-color:rgba(24,95,165,0.1);}
.n-acc   .b21-s217-tree-note{border-color:rgba(15,110,86,0.12);}
.n-chain .b21-s217-tree-note{border-color:rgba(133,79,11,0.1);}
.b21-s217-addr-header{display:grid;grid-template-columns:1fr 1fr 70px;gap:6px;padding:4px 10px;margin-top:4px;}
.b21-s217-addr-hcell{font-size:9px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s217-addr-row{display:grid;grid-template-columns:1fr 1fr 70px;gap:6px;padding:7px 10px;border-radius:var(--border-radius-md);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);margin-bottom:3px;}
.b21-s217-addr-cell{font-size:10px;font-family:'Courier Prime',monospace;color:#1A1A18;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.b21-s217-addr-cell.addr-path{color:#534AB7;font-weight:600;font-size:9px;}
.b21-s217-addr-cell.addr-str {color:#0F6E56;}
.b21-s217-addr-cell.addr-fmt {color:#3A3A35;font-size:9px;}

/* ============================================================
   PAGE 24 · BAB 21 · 21.8 Schnorr vs ECDSA
============================================================ */
.b21-s218-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s218-tabs{display:flex;gap:0;border:0.5px solid rgba(124,58,237,0.12);border-radius:var(--border-radius-md);overflow:hidden;margin-bottom:1rem;}
.b21-s218-tab{flex:1;padding:7px 6px;font-size:10px;font-weight:500;background:transparent;color:#3A3A35;border:none;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s218-tab.s218-act{background:#534AB7;color:#fff;}
.b21-s218-pane{display:none;flex-direction:column;gap:8px;}
.b21-s218-pane.show{display:flex;}
.b21-s218-flow-hint{font-size:11px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.6;}
.b21-s218-ctrl{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.b21-s218-btn{padding:6px 14px;font-size:11px;font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s218-btn.s218-primary{background:#534AB7;color:#fff;}
.b21-s218-btn.s218-primary:hover{background:#3C3489;}
.b21-s218-btn.s218-primary:disabled{background:#52524C;cursor:default;}
.b21-s218-btn.s218-secondary{background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);}
.b21-s218-btn.s218-secondary:hover{background:#EEEDFE;}
.b21-s218-step-info{font-size:11px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s218-dual{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.b21-s218-col{display:flex;flex-direction:column;gap:0;}
.b21-s218-col-hdr{padding:8px 12px;border-radius:var(--border-radius-md) var(--border-radius-md) 0 0;text-align:center;font-size:11px;font-weight:600;font-family:'Sora',sans-serif;}
.b21-s218-col-hdr.s218-ec{background:#854F0B;color:#fff;}
.b21-s218-col-hdr.s218-sc{background:#0F6E56;color:#fff;}
.b21-s218-col-hdr-sub{font-size:9px;font-weight:400;opacity:0.85;}
.b21-s218-steps{display:flex;flex-direction:column;gap:0;border:0.5px solid rgba(124,58,237,0.08);border-top:none;border-radius:0 0 var(--border-radius-md) var(--border-radius-md);overflow:hidden;}
.b21-s218-step{padding:8px 10px;border-bottom:0.5px solid rgba(124,58,237,0.06);display:flex;flex-direction:column;gap:3px;opacity:0.3;transition:all 0.3s;}
.b21-s218-step.active{opacity:1;}
.b21-s218-step.done{opacity:0.65;}
.b21-s218-step.s218-ec-step.active{background:#FAEEDA;}
.b21-s218-step.s218-ec-step.done  {background:#FDF5EC;}
.b21-s218-step.s218-sc-step.active{background:#EAF3DE;}
.b21-s218-step.s218-sc-step.done  {background:#F0F7EA;}
.b21-s218-step:last-child{border-bottom:none;}
.b21-s218-step-top{display:flex;gap:6px;align-items:center;}
.b21-s218-step-num{font-size:9px;font-weight:600;font-family:'Sora',sans-serif;min-width:16px;flex-shrink:0;}
.s218-ec-step .b21-s218-step-num{color:#854F0B;}
.s218-sc-step .b21-s218-step-num{color:#0F6E56;}
.b21-s218-step-title{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;flex:1;}
.b21-s218-badge{font-size:8px;font-weight:500;font-family:'Sora',sans-serif;padding:1px 5px;border-radius:99px;flex-shrink:0;}
.b21-s218-badge.extra    {background:#FCEBEB;color:#A32D2D;}
.b21-s218-badge.advantage{background:#EAF3DE;color:#0F6E56;}
.b21-s218-step-formula{font-size:9px;font-family:'Courier Prime',monospace;background:rgba(0,0,0,0.05);padding:3px 6px;border-radius:3px;color:#1A1A18;white-space:pre-wrap;}
.b21-s218-step-io{display:flex;flex-direction:column;gap:2px;}
.b21-s218-step-io-row{display:flex;gap:4px;align-items:baseline;}
.b21-s218-step-io-lbl{font-size:8px;font-weight:500;font-family:'Sora',sans-serif;color:#52524C;min-width:32px;flex-shrink:0;}
.b21-s218-step-io-val{font-size:8px;font-family:'Courier Prime',monospace;color:#534AB7;word-break:break-all;}
.b21-s218-step-io-val.out-ec{color:#854F0B;}
.b21-s218-step-io-val.out-sc{color:#0F6E56;}
.b21-s218-step-desc{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.4;}
.b21-s218-out-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:4px;}
.b21-s218-out-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.b21-s218-out-box{padding:10px 12px;border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:4px;}
.b21-s218-out-box.s218-ec-out{background:#1A1A18;border:0.5px solid rgba(133,79,11,0.3);}
.b21-s218-out-box.s218-sc-out{background:#1A1A18;border:0.5px solid rgba(15,110,86,0.3);}
.b21-s218-out-lbl2{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;}
.s218-ec-out .b21-s218-out-lbl2{color:#854F0B;}
.s218-sc-out .b21-s218-out-lbl2{color:#0F6E56;}
.b21-s218-out-val{font-size:9px;font-family:'Courier Prime',monospace;word-break:break-all;}
.s218-ec-out .b21-s218-out-val{color:#FFD580;}
.s218-sc-out .b21-s218-out-val{color:#A8D08D;}
.b21-s218-out-sz{font-size:9px;font-family:'Sora',sans-serif;padding:2px 6px;border-radius:99px;width:fit-content;}
.s218-ec-out .b21-s218-out-sz{background:rgba(133,79,11,0.2);color:#FAEEDA;}
.s218-sc-out .b21-s218-out-sz{background:rgba(15,110,86,0.2);color:#A8D08D;}
.b21-s218-out-note{font-size:9px;font-family:'Sora',sans-serif;color:#5A5A52;line-height:1.4;}
.b21-s218-result-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
.b21-s218-res-box{padding:8px 12px;border-radius:var(--border-radius-md);}
.b21-s218-res-box.ec-res{background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s218-res-box.sc-res{background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s218-res-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.ec-res .b21-s218-res-lbl{color:#854F0B;}
.sc-res .b21-s218-res-lbl{color:#0F6E56;}
.b21-s218-res-val{font-size:13px;font-weight:600;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s218-res-sub{font-size:9px;font-family:'Sora',sans-serif;color:#3A3A35;}
/* 3-TX Aggregation */
.b21-s218-txs{display:flex;flex-direction:column;gap:4px;}
.b21-s218-tx{padding:7px 12px;border-radius:var(--border-radius-md);background:#F4F4F0;border:0.5px solid rgba(124,58,237,0.08);display:flex;gap:10px;align-items:center;transition:all 0.3s;opacity:0.4;}
.b21-s218-tx.active{opacity:1;background:#EEEDFE;border-color:rgba(83,74,183,0.2);}
.b21-s218-tx-num{font-size:11px;font-weight:600;font-family:'Sora',sans-serif;color:#534AB7;min-width:28px;}
.b21-s218-tx-info{flex:1;}
.b21-s218-tx-title{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s218-tx-hash{font-size:9px;font-family:'Courier Prime',monospace;color:#534AB7;}
.b21-s218-ag-dual{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.b21-s218-ag-col{display:flex;flex-direction:column;gap:4px;}
.b21-s218-ag-hdr{padding:7px 12px;border-radius:var(--border-radius-md);text-align:center;font-size:10px;font-weight:600;font-family:'Sora',sans-serif;}
.b21-s218-ag-hdr.s218-ec{background:#854F0B;color:#fff;}
.b21-s218-ag-hdr.s218-sc{background:#0F6E56;color:#fff;}
.b21-s218-ag-boxes{display:flex;flex-direction:column;gap:4px;}
.b21-s218-ag-box{padding:7px 10px;border-radius:var(--border-radius-md);display:flex;flex-direction:column;gap:2px;transition:all 0.4s;}
.b21-s218-ag-box.s218-ec-box{background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s218-ag-box.s218-sc-box{background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s218-ag-box.s218-pending{opacity:0.3;}
.b21-s218-ag-box.s218-done{opacity:1;}
.b21-s218-ag-box-top{display:flex;gap:6px;align-items:center;}
.b21-s218-ag-box-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;flex:1;}
.s218-ec-box .b21-s218-ag-box-lbl{color:#854F0B;}
.s218-sc-box .b21-s218-ag-box-lbl{color:#0F6E56;}
.b21-s218-ag-box-sz{font-size:8px;font-family:'Sora',sans-serif;padding:1px 5px;border-radius:99px;}
.s218-ec-box .b21-s218-ag-box-sz{background:rgba(133,79,11,0.15);color:#854F0B;}
.s218-sc-box .b21-s218-ag-box-sz{background:rgba(15,110,86,0.15);color:#0F6E56;}
.b21-s218-ag-box-val{font-size:8px;font-family:'Courier Prime',monospace;word-break:break-all;color:#3A3A35;}
.b21-s218-ag-box-val.filled-ec{color:#854F0B;}
.b21-s218-ag-box-val.filled-sc{color:#0F6E56;}
.b21-s218-agg-arrow{text-align:center;font-size:16px;color:#0F6E56;padding:3px 0;}
.b21-s218-agg-final{padding:10px 12px;border-radius:var(--border-radius-md);background:#0F6E56;display:flex;flex-direction:column;gap:3px;}
.b21-s218-agg-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:rgba(255,255,255,0.8);}
.b21-s218-agg-val{font-size:9px;font-family:'Courier Prime',monospace;color:#fff;word-break:break-all;}
.b21-s218-agg-note{font-size:9px;font-family:'Sora',sans-serif;color:rgba(255,255,255,0.7);line-height:1.4;}
.b21-s218-totals-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
.b21-s218-total{padding:10px 14px;border-radius:var(--border-radius-md);}
.b21-s218-total.s218-ec-total{background:#FAEEDA;border:0.5px solid rgba(133,79,11,0.2);}
.b21-s218-total.s218-sc-total{background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.2);}
.b21-s218-total-lbl{font-size:9px;font-weight:500;font-family:'Sora',sans-serif;}
.s218-ec-total .b21-s218-total-lbl{color:#854F0B;}
.s218-sc-total .b21-s218-total-lbl{color:#0F6E56;}
.b21-s218-total-val{font-size:16px;font-weight:700;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s218-total-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.4;margin-top:4px;}
.b21-s218-privacy{padding:10px 14px;border-radius:var(--border-radius-lg);background:#1A1A18;display:flex;flex-direction:column;gap:4px;margin-top:4px;}
.b21-s218-privacy-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s218-obs-ec{font-size:9px;font-family:'Courier Prime',monospace;color:#FFD580;line-height:1.5;white-space:pre-wrap;}
.b21-s218-obs-sc{font-size:9px;font-family:'Courier Prime',monospace;color:#A8D08D;line-height:1.5;white-space:pre-wrap;}


/* ============================================================
   PAGE 24 · BAB 21 · 21.9 Lightning Network TX Flow
============================================================ */
.b21-s219-desc{font-size:12px;color:#3A3A35;line-height:1.7;margin-bottom:1rem;padding:10px 14px;background:#F4F4F0;border-radius:var(--border-radius-md);border-left:2px solid rgba(124,58,237,0.3);}
.b21-s219-mode-btns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.b21-s219-mode-btn{padding:5px 14px;border-radius:99px;font-size:11px;font-weight:500;border:0.5px solid rgba(124,58,237,0.2);background:transparent;color:#534AB7;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s219-mode-btn:hover{background:#EEEDFE;}
.b21-s219-mode-btn.act{background:#534AB7;color:#fff;border-color:#534AB7;}
.b21-s219-ctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.b21-s219-btn{padding:6px 14px;font-size:11px;font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.15s;}
.b21-s219-btn.s219-primary{background:#534AB7;color:#fff;}
.b21-s219-btn.s219-primary:hover{background:#3C3489;}
.b21-s219-btn.s219-primary:disabled{background:#52524C;cursor:default;}
.b21-s219-btn.s219-secondary{background:transparent;color:#534AB7;border:0.5px solid rgba(83,74,183,0.3);}
.b21-s219-btn.s219-secondary:hover{background:#EEEDFE;}
.b21-s219-step-info{font-size:11px;font-family:'Sora',sans-serif;color:#3A3A35;}
.b21-s219-network{position:relative;height:180px;background:#F4F4F0;border-radius:var(--border-radius-lg);border:0.5px solid rgba(124,58,237,0.08);overflow:hidden;margin-bottom:8px;}
.b21-s219-network svg{width:100%;height:100%;}
.b21-s219-sec-lbl{font-size:10px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;margin-bottom:4px;}
.b21-s219-ch-row{display:flex;gap:8px;align-items:center;margin-bottom:4px;}
.b21-s219-ch-lbl{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;min-width:120px;flex-shrink:0;}
.b21-s219-ch-bar-wrap{flex:1;height:14px;border-radius:99px;background:#E8E8E4;overflow:hidden;position:relative;}
.b21-s219-ch-bar-l{height:100%;background:#534AB7;border-radius:99px 0 0 99px;transition:width 0.5s;}
.b21-s219-ch-bar-r{position:absolute;right:0;top:0;height:100%;background:#EAF3DE;border-radius:0 99px 99px 0;border:0.5px solid rgba(15,110,86,0.2);transition:width 0.5s;}
.b21-s219-ch-vals{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;min-width:80px;text-align:right;}
.b21-s219-htlc-wrap{margin-bottom:8px;}
.b21-s219-htlc-header{display:grid;grid-template-columns:100px 1fr 1fr 80px;gap:6px;padding:3px 10px;}
.b21-s219-htlc-hcell{font-size:9px;font-weight:500;color:#52524C;font-family:'Sora',sans-serif;}
.b21-s219-htlc-row{display:grid;grid-template-columns:100px 1fr 1fr 80px;gap:6px;padding:6px 10px;border-radius:var(--border-radius-md);border:0.5px solid rgba(124,58,237,0.08);background:#F4F4F0;margin-bottom:3px;transition:all 0.3s;opacity:0.35;}
.b21-s219-htlc-row.active{opacity:1;background:#EEEDFE;border-color:rgba(83,74,183,0.2);}
.b21-s219-htlc-row.settled{opacity:1;background:#EAF3DE;border-color:rgba(15,110,86,0.2);}
.b21-s219-htlc-row.failed{opacity:1;background:#FCEBEB;border-color:rgba(163,45,45,0.2);}
.b21-s219-htlc-hop{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s219-htlc-cell{font-size:9px;font-family:'Courier Prime',monospace;color:#3A3A35;}
.b21-s219-step-card{padding:8px 12px;border-radius:var(--border-radius-md);border:0.5px solid rgba(124,58,237,0.08);display:flex;gap:10px;align-items:flex-start;transition:all 0.3s;opacity:0.3;background:#F4F4F0;margin-bottom:4px;}
.b21-s219-step-card.active{opacity:1;border-color:rgba(83,74,183,0.3);background:#EEEDFE;}
.b21-s219-step-card.done{opacity:0.7;}
.b21-s219-step-card.done.s219-lock{background:#FAEEDA;border-color:rgba(133,79,11,0.15);}
.b21-s219-step-card.done.s219-settle{background:#EAF3DE;border-color:rgba(15,110,86,0.15);}
.b21-s219-step-card.done.s219-fail{background:#FCEBEB;border-color:rgba(163,45,45,0.15);}
.b21-s219-step-card.active.s219-lock{background:#FAEEDA;border-color:rgba(133,79,11,0.25);}
.b21-s219-step-card.active.s219-settle{background:#EAF3DE;border-color:rgba(15,110,86,0.25);}
.b21-s219-step-card.active.s219-fail{background:#FCEBEB;border-color:rgba(163,45,45,0.25);}
.b21-s219-step-num{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#534AB7;min-width:24px;flex-shrink:0;}
.b21-s219-step-body{flex:1;}
.b21-s219-step-title{font-size:11px;font-weight:500;font-family:'Sora',sans-serif;color:#1A1A18;}
.b21-s219-step-dir{font-size:10px;font-family:'Sora',sans-serif;color:#534AB7;margin-top:1px;}
.s219-lock   .b21-s219-step-dir{color:#854F0B;}
.s219-settle .b21-s219-step-dir{color:#0F6E56;}
.s219-fail   .b21-s219-step-dir{color:#A32D2D;}
.b21-s219-step-desc{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.5;margin-top:3px;}
.b21-s219-step-code{font-size:9px;font-family:'Courier Prime',monospace;background:rgba(0,0,0,0.04);padding:4px 7px;border-radius:3px;margin-top:3px;color:#1A1A18;white-space:pre-wrap;}
.b21-s219-result{padding:10px 14px;border-radius:var(--border-radius-lg);display:none;flex-direction:column;gap:4px;margin-top:4px;}
.b21-s219-result.show{display:flex;}
.b21-s219-result.s219-success{background:#EAF3DE;border:0.5px solid rgba(15,110,86,0.3);}
.b21-s219-result.s219-retry  {background:#EEEDFE;border:0.5px solid rgba(83,74,183,0.3);}
.b21-s219-result-lbl{font-size:10px;font-weight:500;font-family:'Sora',sans-serif;}
.s219-success .b21-s219-result-lbl{color:#0F6E56;}
.s219-retry   .b21-s219-result-lbl{color:#534AB7;}
.b21-s219-result-val{font-size:11px;font-family:'Sora',sans-serif;color:#1A1A18;line-height:1.5;}
.b21-s219-result-note{font-size:10px;font-family:'Sora',sans-serif;color:#3A3A35;line-height:1.4;}

.apx-topbar{display:flex;align-items:center;padding:0 48px;height:56px;border-bottom:0.5px solid rgba(124,58,237,0.12);background:#FAFAF8;position:sticky;top:0;z-index:10;}
.apx-topbar-left{display:flex;align-items:center;gap:16px;}
.apx-logo{display:flex;align-items:center;gap:10px;cursor:pointer;}
.apx-logo-text{font-family:'Courier Prime',monospace;font-size:12px;font-weight:600;letter-spacing:0.15em;color:#1A1A18;}
.apx-topbar-sep{width:0.5px;height:20px;background:rgba(124,58,237,0.2);}
.apx-back-btn{font-family:'Courier Prime',monospace;font-size:9px;letter-spacing:0.2em;color:#A78BFA;cursor:pointer;transition:color 0.2s;}
.apx-back-btn:hover{color:#7C3AED;}
.apx-body{max-width:640px;margin:0 auto;padding:48px 24px 80px;}
.apx-nav-top{display:flex;align-items:center;gap:8px;margin-bottom:40px;flex-wrap:wrap;}
.apx-tab-sep{font-size:12px;color:#D0D0C8;}
.apx-tab-btn{padding:5px 12px;background:#1A1A18;color:#fff;font-size:11px;font-weight:500;font-family:'Sora',sans-serif;border:none;border-radius:0;cursor:pointer;letter-spacing:0.02em;transition:background 0.15s;}
.apx-tab-btn:hover,.apx-tab-btn.apx-act{background:#534AB7;}
.apx-section{display:none;}
.apx-section.apx-active{display:block;}
.apx-section-eyebrow{font-family:'Courier Prime',monospace;font-size:9px;letter-spacing:0.25em;color:#A78BFA;text-transform:uppercase;margin-bottom:8px;}
.apx-section-title{font-size:32px;font-weight:300;color:#1A1A18;letter-spacing:-0.02em;margin-bottom:16px;}
.apx-divider{width:32px;height:2px;background:#7C3AED;margin-bottom:32px;}
.apx-ref-group{margin-bottom:32px;}
.apx-ref-group-label{font-family:'Courier Prime',monospace;font-size:9px;letter-spacing:0.2em;color:#A0A098;text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:0.5px solid rgba(124,58,237,0.1);}
.apx-ref-item{margin-bottom:16px;padding-left:12px;border-left:2px solid rgba(124,58,237,0.15);}
.apx-ref-title{font-size:14px;font-weight:500;color:#1A1A18;line-height:1.4;margin-bottom:3px;}
.apx-ref-meta{font-size:12px;font-family:'Courier Prime',monospace;color:#7A7A72;}
.apx-ref-link{color:#534AB7;text-decoration:none;}
.apx-ref-link:hover{text-decoration:underline;}
.apx-prose p{font-size:15px;line-height:1.8;color:#1A1A18;margin-bottom:20px;font-weight:400;}
.apx-about-sig{margin-top:2.5rem;padding-top:1.5rem;border-top:0.5px solid rgba(124,58,237,0.1);display:flex;flex-direction:column;gap:6px;}
.apx-about-name{font-size:15px;font-weight:500;color:#1A1A18;font-family:'Sora',sans-serif;}
.apx-about-link{font-size:12px;font-family:'Courier Prime',monospace;color:#534AB7;text-decoration:none;}
.apx-about-link:hover{text-decoration:underline;}
.apx-about-pgp{font-size:11px;font-family:'Courier Prime',monospace;color:#7A7A72;letter-spacing:0.05em;}
.apx-signature{font-style:italic;font-weight:500;color:#1A1A18;margin-top:2rem !important;}
.apx-nav-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:0.5px solid rgba(124,58,237,0.1);}
.apx-chapter-divider{display:flex;align-items:center;gap:12px;padding:20px 0 12px;}
.apx-chapter-div-line{flex:1;height:0.5px;background:rgba(124,58,237,0.15);}
.apx-chapter-div-label{font-family:'Courier Prime',monospace;font-size:9px;letter-spacing:0.2em;color:#A0A098;white-space:nowrap;}
.apx-chapter-btns{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:20px;justify-content:center;}
.apx-chapter-btn{padding:5px 12px;background:#1A1A18;color:#fff;font-size:11px;font-weight:500;font-family:'Sora',sans-serif;border:none;border-radius:0;cursor:pointer;letter-spacing:0.02em;transition:background 0.15s;}
.apx-chapter-btn:hover{background:#534AB7;}
