
/* ───────────────────────────────────────────────
   DESIGN TOKENS
─────────────────────────────────────────────── */
:root{
  --primary:#b45309;
  --primary-dark:#92400e;
  --primary-light:#fef3c7;
  --primary-mid:#d97706;
  --accent:#0891b2;
  --accent-light:#e0f2fe;
  --success:#059669;
  --success-light:#d1fae5;
  --danger:#dc2626;
  --danger-light:#fee2e2;
  --bg:#fffbeb;
  --card:#ffffff;
  --border:#e2e8f0;
  --text:#1e293b;
  --text-muted:#64748b;
  --text-light:#94a3b8;
  --radius:16px;
  --radius-sm:10px;
  --radius-xs:6px;
  --shadow:0 2px 16px rgba(180,83,9,.09);
  --shadow-lg:0 4px 24px rgba(180,83,9,.14);
  /* bottom safe area for iOS */
  --safe-bottom:env(safe-area-inset-bottom,0px);
}

/* ───────────────────────────────────────────────
   RESET & BASE
─────────────────────────────────────────────── */
*{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{
  font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN',
              'Hiragino Sans',Meiryo,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
}
a{color:inherit;}
button{font-family:inherit;}

/* ───────────────────────────────────────────────
   TOP READING PROGRESS BAR
─────────────────────────────────────────────── */
.progress-bar-top{
  height:4px;
  background:linear-gradient(90deg,var(--primary) 0%,var(--primary-mid) 100%);
  width:0%;
  transition:width .2s linear;
  position:fixed;top:0;left:0;
  z-index:300;
  border-radius:0 2px 2px 0;
}

/* ───────────────────────────────────────────────
   TOP NAV
─────────────────────────────────────────────── */
.top-nav{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  padding:0 16px;
  height:52px;
  display:flex;align-items:center;
  position:sticky;top:0;
  z-index:100;
}
.top-nav-inner{
  max-width:780px;margin:0 auto;width:100%;
  display:flex;justify-content:space-between;align-items:center;
}
.top-nav-logo{
  font-weight:900;font-size:.95rem;
  color:var(--primary-dark);text-decoration:none;
  letter-spacing:-.01em;display:flex;align-items:center;gap:5px;
}
.top-nav-back{
  font-size:.82rem;font-weight:700;
  color:var(--text-muted);text-decoration:none;
  padding:6px 14px;
  border:1.5px solid var(--border);
  border-radius:99px;
  background:var(--card);
  transition:all .15s;
  min-height:36px;display:flex;align-items:center;
}
.top-nav-back:active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);}

/* ───────────────────────────────────────────────
   PAGE LAYOUT
─────────────────────────────────────────────── */
.page-main{
  max-width:780px;margin:0 auto;
  padding:20px 16px;
  /* space for sticky bottom bar */
  padding-bottom:calc(80px + var(--safe-bottom));
}

/* ───────────────────────────────────────────────
   PAGE HEADER
─────────────────────────────────────────────── */
.page-header{
  background:var(--card);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:20px;
  box-shadow:var(--shadow);
  border-left:5px solid var(--primary);
  position:relative;
  overflow:hidden;
}
.page-header::before{
  content:'';
  position:absolute;top:0;right:0;
  width:80px;height:80px;
  background:radial-gradient(circle at top right,var(--primary-light),transparent 70%);
  pointer-events:none;
}
.page-meta-row{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.cat-badge{
  font-size:.72rem;font-weight:700;
  padding:4px 12px;border-radius:99px;
  background:var(--primary-light);color:var(--primary-dark);
  letter-spacing:.02em;
}
.cat-badge.cat-intro {background:#e0f2fe;color:#0369a1;}
.cat-badge.cat-trans  {background:#d1fae5;color:#047857;}
.cat-badge.cat-closing{background:#ede9fe;color:#5b21b6;}
.cat-badge.cat-exam   {background:#fee2e2;color:#b91c1c;}
.time-badge{
  font-size:.72rem;font-weight:700;
  padding:4px 12px;border-radius:99px;
  background:#f1f5f9;color:var(--text-muted);
}
.page-title{
  font-size:1.55rem;font-weight:900;
  color:var(--primary-dark);
  line-height:1.25;
  margin-bottom:6px;
  letter-spacing:-.02em;
}
.page-desc{
  font-size:.9rem;color:var(--text-muted);
  margin-bottom:14px;line-height:1.6;
}
.page-stats{display:flex;gap:18px;flex-wrap:wrap;}
.stat-item{display:flex;align-items:center;gap:6px;}
.stat-label{font-size:.72rem;color:var(--text-muted);font-weight:700;}
.stat-stars{font-size:.88rem;letter-spacing:2px;}
.stat-stars.imp {color:var(--primary);}
.stat-stars.freq{color:var(--accent);}

/* ───────────────────────────────────────────────
   CONCLUSION BOX
─────────────────────────────────────────────── */
.conclusion-box{
  background:var(--success-light);
  border:2px solid var(--success);
  border-radius:var(--radius);
  padding:16px 18px;
  margin-bottom:16px;
  font-size:.95rem;font-weight:700;
  color:#064e3b;line-height:1.65;
  position:relative;
  padding-left:48px;
}
.conclusion-box::before{
  content:'✅';
  position:absolute;left:14px;top:50%;
  transform:translateY(-50%);
  font-size:1.2rem;
}

/* ───────────────────────────────────────────────
   SECTION CARD
─────────────────────────────────────────────── */
.section-card{
  background:var(--card);
  border-radius:var(--radius);
  padding:18px;
  margin-bottom:14px;
  box-shadow:var(--shadow);
}
.section-card h3{
  font-size:.98rem;font-weight:800;
  color:var(--primary-dark);
  margin-bottom:12px;
  padding-bottom:8px;
  border-bottom:2px solid var(--primary-light);
  display:flex;align-items:center;gap:6px;
}
.section-card p{
  font-size:.9rem;color:var(--text);
  line-height:1.8;margin-bottom:8px;
}
.section-card p:last-child{margin-bottom:0;}
.section-card ul,.section-card ol{
  padding-left:1.3em;font-size:.9rem;
}
.section-card li{margin-bottom:7px;line-height:1.7;}
.section-card strong{color:var(--primary-dark);}

/* ───────────────────────────────────────────────
   JOURNAL (仕訳表) — MOBILE OPTIMIZED
─────────────────────────────────────────────── */
.journal-box{
  background:var(--card);
  border-radius:var(--radius);
  padding:14px;
  margin-bottom:14px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.journal-label{
  font-size:.72rem;font-weight:800;
  color:var(--text-muted);
  letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:10px;
  padding-left:2px;
}

/* Desktop: 4-column table */
.journal-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.journal-table thead tr{background:var(--primary-light);}
.journal-table th{
  padding:8px 10px;text-align:center;
  font-weight:700;color:var(--primary-dark);
  border:1px solid #fcd34d;font-size:.78rem;
}
.journal-table td{
  padding:10px;
  border:1px solid var(--border);
  vertical-align:middle;
}
.j-debit {font-weight:800;color:#1d4ed8;}
.j-credit{font-weight:800;color:#dc2626;}
.j-amt   {text-align:right;font-weight:700;color:var(--text);white-space:nowrap;font-size:.85rem;}

/* Mobile: card-style journal layout */
@media(max-width:480px){
  .journal-table thead{display:none;}
  .journal-table tbody tr{
    display:grid;
    grid-template-columns:1fr auto 1fr auto;
    border:1.5px solid var(--border);
    border-radius:var(--radius-sm);
    margin-bottom:6px;
    overflow:hidden;
  }
  .journal-table td{
    border:none;
    border-right:1px solid var(--border);
    padding:10px 8px;
  }
  .journal-table td:last-child{border-right:none;}
  .j-debit{background:#eff6ff;}
  .j-credit{background:#fff1f2;}
  .j-amt{font-size:.82rem;text-align:right;background:transparent;}
}

/* ───────────────────────────────────────────────
   T-ACCOUNT
─────────────────────────────────────────────── */
.t-account{
  background:var(--card);border-radius:var(--radius);
  padding:16px;margin-bottom:14px;box-shadow:var(--shadow);
}
.t-name{
  text-align:center;font-weight:900;font-size:.95rem;
  color:var(--primary-dark);
  border-bottom:3px solid var(--primary);
  padding-bottom:8px;margin-bottom:10px;
}
.t-body{display:flex;}
.t-side{flex:1;padding:8px 10px;}
.t-side:first-child{border-right:2px solid var(--primary);}
.t-header{
  font-size:.72rem;font-weight:800;color:var(--text-muted);
  text-align:center;margin-bottom:8px;
  text-transform:uppercase;letter-spacing:.05em;
}
.t-row{
  font-size:.84rem;padding:6px 8px;
  border-radius:var(--radius-xs);margin-bottom:4px;
  background:#f8fafc;line-height:1.5;
}

/* ───────────────────────────────────────────────
   EQUATION BOX
─────────────────────────────────────────────── */
.equation-box{
  display:flex;align-items:center;
  justify-content:center;gap:8px;flex-wrap:wrap;
  padding:16px;
  background:var(--primary-light);
  border-radius:var(--radius);
  margin-bottom:14px;
  border:2px solid #fcd34d;
}
.eq-item{
  font-size:.95rem;font-weight:900;color:var(--primary-dark);
  background:#fff;padding:8px 14px;
  border-radius:var(--radius-sm);
  border:2px solid var(--primary-mid);
  min-width:80px;text-align:center;
  box-shadow:0 1px 4px rgba(180,83,9,.1);
}
.eq-op{font-size:1.3rem;font-weight:900;color:var(--primary);}

/* ───────────────────────────────────────────────
   FLOW BOX
─────────────────────────────────────────────── */
.flow-box{
  display:flex;flex-direction:column;align-items:center;
  gap:0;margin-bottom:14px;
  background:var(--card);
  border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow);
}
.flow-node{
  background:var(--primary-light);
  border:2px solid var(--primary-mid);
  border-radius:var(--radius-sm);
  padding:10px 20px;
  font-size:.88rem;font-weight:700;
  color:var(--primary-dark);
  min-width:200px;text-align:center;
  width:100%;max-width:360px;
}
.flow-arrow{font-size:1.2rem;color:var(--primary);line-height:2;}

/* ───────────────────────────────────────────────
   CALLOUT
─────────────────────────────────────────────── */
.callout{
  display:flex;gap:12px;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  margin-bottom:14px;
  font-size:.88rem;line-height:1.7;
}
.callout-icon{font-size:1.3rem;flex-shrink:0;}
.callout strong{display:block;font-weight:800;margin-bottom:3px;font-size:.9rem;}
.callout p{margin:0;color:var(--text);}
.callout-exam {background:#fff7ed;border-left:4px solid var(--primary);}
.callout-warn {background:var(--danger-light);border-left:4px solid var(--danger);}
.callout-tip  {background:var(--accent-light);border-left:4px solid var(--accent);}
.callout-point{background:var(--primary-light);border-left:4px solid var(--primary-dark);}

/* ───────────────────────────────────────────────
   QUIZ
─────────────────────────────────────────────── */
.quiz-section{
  background:var(--card);
  border-radius:var(--radius);
  padding:18px;margin-bottom:14px;
  box-shadow:var(--shadow);
  border-top:4px solid var(--accent);
}
.quiz-section h3{
  font-size:1rem;font-weight:900;
  color:var(--text);margin-bottom:16px;
}
.quiz-item{margin-bottom:20px;}
.quiz-item:last-child{margin-bottom:0;}
.quiz-q{
  font-size:.92rem;font-weight:700;
  color:var(--text);margin-bottom:12px;
  line-height:1.7;
  padding:12px;
  background:#f8fafc;
  border-radius:var(--radius-sm);
  border-left:3px solid var(--accent);
}
.quiz-choices{display:flex;flex-direction:column;gap:8px;}
.quiz-btn{
  width:100%;text-align:left;
  padding:13px 16px;
  border:1.5px solid var(--border);
  border-radius:var(--radius-sm);
  font-size:.88rem;
  background:var(--card);
  cursor:pointer;
  transition:border-color .1s,background .1s;
  font-family:inherit;color:var(--text);
  min-height:48px;/* touch target */
  -webkit-tap-highlight-color:transparent;
  line-height:1.5;
}
.quiz-btn:active:not(:disabled){
  background:var(--primary-light);
  border-color:var(--primary);
}
.quiz-btn.correct{
  background:var(--success-light);
  border-color:var(--success);
  color:#064e3b;font-weight:700;
}
.quiz-btn.wrong{
  background:var(--danger-light);
  border-color:var(--danger);
  color:#7f1d1d;
}
.quiz-btn:disabled{cursor:default;opacity:.85;}
.quiz-result{
  font-size:.85rem;font-weight:700;
  margin-top:10px;padding:10px 14px;
  border-radius:var(--radius-sm);
  line-height:1.6;
}
.quiz-result.ok{background:var(--success-light);color:#064e3b;}
.quiz-result.ng{background:var(--danger-light);color:#7f1d1d;}

/* ───────────────────────────────────────────────
   DONE BUTTON (inline + sticky bar version)
─────────────────────────────────────────────── */
.done-section{padding:24px 0 8px;}
.done-btn{
  width:100%;padding:16px;
  border-radius:var(--radius);
  border:none;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-mid) 100%);
  color:#fff;font-size:1rem;font-weight:900;
  cursor:pointer;
  transition:opacity .15s,transform .1s;
  font-family:inherit;
  -webkit-tap-highlight-color:transparent;
  letter-spacing:.01em;
  box-shadow:0 3px 12px rgba(180,83,9,.3);
}
.done-btn:active{transform:scale(.98);opacity:.9;}
.done-btn.done{
  background:linear-gradient(135deg,var(--success) 0%,#34d399 100%);
  box-shadow:0 3px 12px rgba(5,150,105,.25);
}

/* ───────────────────────────────────────────────
   PAGE NAV (prev / next)
─────────────────────────────────────────────── */
.page-nav{
  display:flex;justify-content:space-between;
  align-items:stretch;gap:10px;
  margin-top:12px;
}
.nav-btn{
  padding:12px 16px;
  border-radius:var(--radius-sm);
  border:1.5px solid var(--border);
  background:var(--card);
  color:var(--text-muted);
  text-decoration:none;
  font-size:.84rem;font-weight:700;
  transition:all .12s;
  flex:1;min-height:48px;
  display:flex;align-items:center;
  -webkit-tap-highlight-color:transparent;
}
.prev-btn{justify-content:flex-start;}
.next-btn{justify-content:flex-end;}
.nav-btn:active{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}

/* ───────────────────────────────────────────────
   STICKY BOTTOM BAR (injected by JS)
─────────────────────────────────────────────── */
.bottom-bar{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--border);
  padding:8px 12px calc(8px + var(--safe-bottom));
  display:flex;align-items:center;gap:8px;
  z-index:90;
  box-shadow:0 -2px 16px rgba(0,0,0,.07);
}
.bb-nav{
  flex:0 0 44px;height:44px;
  border-radius:var(--radius-sm);
  border:1.5px solid var(--border);
  background:var(--card);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  font-size:1.1rem;color:var(--text-muted);
  transition:all .12s;
  -webkit-tap-highlight-color:transparent;
  flex-shrink:0;
}
.bb-nav:active{border-color:var(--primary);color:var(--primary);}
.bb-nav.bb-disabled{opacity:.3;pointer-events:none;}
.bb-done{
  flex:1;height:44px;
  border-radius:var(--radius-sm);
  border:none;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-mid) 100%);
  color:#fff;font-size:.88rem;font-weight:800;
  cursor:pointer;font-family:inherit;
  transition:opacity .12s,transform .1s;
  -webkit-tap-highlight-color:transparent;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(180,83,9,.3);
}
.bb-done:active{transform:scale(.97);opacity:.9;}
.bb-done.done{
  background:linear-gradient(135deg,var(--success) 0%,#34d399 100%);
  box-shadow:0 2px 8px rgba(5,150,105,.25);
}

/* ───────────────────────────────────────────────
   INDEX HERO
─────────────────────────────────────────────── */
.index-hero{
  background:linear-gradient(135deg,var(--primary-dark) 0%,#c05621 50%,var(--primary-mid) 100%);
  color:#fff;
  padding:32px 20px 28px;
  text-align:center;
  position:relative;overflow:hidden;
}
.index-hero::before{
  content:'📒';
  position:absolute;right:-10px;bottom:-20px;
  font-size:120px;opacity:.07;
  pointer-events:none;
}
.index-hero h1{font-size:1.5rem;font-weight:900;margin-bottom:6px;letter-spacing:-.02em;}
.index-hero p{font-size:.88rem;opacity:.88;line-height:1.6;}
.index-main{max-width:780px;margin:0 auto;padding:20px 16px 60px;}

/* ───────────────────────────────────────────────
   PROGRESS CARD (index)
─────────────────────────────────────────────── */
.progress-card{
  background:var(--card);
  border-radius:var(--radius);
  padding:20px;margin-bottom:20px;
  box-shadow:var(--shadow-lg);
  border-top:4px solid var(--primary);
}
.progress-card h2{
  font-size:.95rem;font-weight:900;
  color:var(--primary-dark);margin-bottom:16px;
}
.prog-bar-wrap{
  background:#f1f5f9;border-radius:99px;
  height:12px;overflow:hidden;margin-bottom:14px;
}
.prog-bar{
  height:100%;
  background:linear-gradient(90deg,var(--primary) 0%,var(--primary-mid) 100%);
  border-radius:99px;
  transition:width .6s cubic-bezier(.4,0,.2,1);
}
.prog-stats{display:flex;gap:0;}
.prog-stat{
  flex:1;text-align:center;
  padding:8px 4px;
  border-right:1px solid var(--border);
}
.prog-stat:last-child{border-right:none;}
.prog-stat .num{
  font-size:1.6rem;font-weight:900;
  color:var(--primary-dark);display:block;
  line-height:1.2;
}
.prog-stat .lbl{
  font-size:.7rem;color:var(--text-muted);
  font-weight:700;margin-top:2px;display:block;
}
.prog-pct .num{color:var(--success);}

/* ───────────────────────────────────────────────
   FILTER ROW (horizontal scroll on mobile)
─────────────────────────────────────────────── */
.filter-row{
  display:flex;gap:8px;
  margin-bottom:18px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:2px;
}
.filter-row::-webkit-scrollbar{display:none;}
.filter-btn{
  flex-shrink:0;
  padding:8px 18px;
  border-radius:99px;
  border:1.5px solid var(--border);
  background:var(--card);
  font-size:.8rem;font-weight:700;
  cursor:pointer;font-family:inherit;
  color:var(--text-muted);
  transition:all .12s;
  white-space:nowrap;
  min-height:38px;
  -webkit-tap-highlight-color:transparent;
}
.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.filter-btn:active:not(.active){background:var(--primary-light);border-color:var(--primary);}

/* ───────────────────────────────────────────────
   SECTION HEADER (index)
─────────────────────────────────────────────── */
.section-header{
  font-size:.8rem;font-weight:900;
  color:var(--text-muted);
  letter-spacing:.08em;text-transform:uppercase;
  padding:8px 0 10px;
  border-bottom:2px solid var(--primary-light);
  margin-bottom:10px;margin-top:24px;
  display:flex;align-items:center;gap:8px;
}

/* ───────────────────────────────────────────────
   TOPIC CARD (index)
─────────────────────────────────────────────── */
.topic-grid{display:flex;flex-direction:column;gap:8px;}
.topic-card{
  background:var(--card);
  border-radius:var(--radius);
  padding:14px 16px;
  box-shadow:var(--shadow);
  display:flex;align-items:center;gap:12px;
  text-decoration:none;color:inherit;
  transition:transform .12s,box-shadow .12s,border-color .12s;
  border:1.5px solid transparent;
  -webkit-tap-highlight-color:transparent;
  min-height:64px;
}
.topic-card:active{
  transform:scale(.99);
  border-color:var(--primary);
  background:var(--primary-light);
}
.topic-card.done{
  border-color:var(--success);
  background:linear-gradient(to right,var(--success-light),#fff);
}
.topic-num{
  font-size:.7rem;font-weight:900;
  color:var(--text-light);min-width:22px;
  text-align:center;flex-shrink:0;
}
.topic-info{flex:1;min-width:0;}
.topic-title{
  font-size:.92rem;font-weight:800;
  color:var(--text);margin-bottom:2px;
  line-height:1.3;
}
.topic-desc{
  font-size:.74rem;color:var(--text-muted);
  white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;line-height:1.4;
}
.topic-right{
  display:flex;flex-direction:column;
  align-items:flex-end;gap:2px;flex-shrink:0;
}
.topic-time{font-size:.7rem;color:var(--text-muted);font-weight:700;}
.topic-stars{font-size:.7rem;color:var(--primary);letter-spacing:1px;}
.topic-check{
  font-size:1.2rem;flex-shrink:0;
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:#f1f5f9;
  font-size:.85rem;font-weight:800;color:var(--text-muted);
}
.topic-card.done .topic-check{
  background:var(--success);color:#fff;
}

/* ───────────────────────────────────────────────
   TABLE UTILITIES
─────────────────────────────────────────────── */
.data-table{
  width:100%;border-collapse:collapse;
  font-size:.84rem;margin-top:8px;
  overflow-x:auto;display:block;
}
.data-table th{
  background:var(--primary-light);padding:9px 10px;
  font-weight:800;color:var(--primary-dark);
  border:1px solid #fcd34d;text-align:center;
  white-space:nowrap;
}
.data-table td{
  padding:9px 10px;border:1px solid var(--border);
  vertical-align:middle;text-align:center;
  white-space:nowrap;
}
.data-table tr:nth-child(even) td{background:#f8fafc;}
.debit-col {color:#1d4ed8;font-weight:800;}
.credit-col{color:#dc2626;font-weight:800;}

/* ───────────────────────────────────────────────
   HIGHLIGHT UTILITIES
─────────────────────────────────────────────── */
.hl     {background:var(--primary-light);padding:2px 6px;border-radius:4px;font-weight:700;color:var(--primary-dark);}
.hl-blue{background:#dbeafe;padding:2px 6px;border-radius:4px;font-weight:700;color:#1d4ed8;}
.hl-red {background:#fee2e2;padding:2px 6px;border-radius:4px;font-weight:700;color:#b91c1c;}

/* ───────────────────────────────────────────────
   RULE GRID
─────────────────────────────────────────────── */
.rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.rule-box{border-radius:var(--radius-sm);padding:14px;text-align:center;}
.rule-box.left {background:#dbeafe;border:1.5px solid #93c5fd;}
.rule-box.right{background:#fee2e2;border:1.5px solid #fca5a5;}
.rule-box .rule-title{font-size:.78rem;font-weight:800;margin-bottom:5px;}
.rule-box .rule-body {font-size:.84rem;line-height:1.6;}
.rule-box.left  .rule-title{color:#1d4ed8;}
.rule-box.right .rule-title{color:#b91c1c;}

/* ───────────────────────────────────────────────
   WORKSHEET TABLE
─────────────────────────────────────────────── */
.ws-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:14px;
  /* scroll hint */
  background:linear-gradient(to right,var(--card) 30%,transparent) left center/20px 100% no-repeat,
             linear-gradient(to left, var(--card) 30%,transparent) right center/20px 100% no-repeat,
             linear-gradient(to right,rgba(180,83,9,.1),rgba(180,83,9,.05)) left center/100% no-repeat;
  background-attachment:local,local,scroll;
}
.ws-table{width:100%;border-collapse:collapse;font-size:.75rem;}
.ws-table th,.ws-table td{
  border:1px solid var(--border);padding:6px 8px;
  text-align:right;white-space:nowrap;
}
.ws-table th{
  background:var(--primary-light);font-weight:800;
  color:var(--primary-dark);text-align:center;
}
.ws-table td:first-child{text-align:left;font-weight:700;}

/* ───────────────────────────────────────────────
   FOOTER
─────────────────────────────────────────────── */
.site-footer{
  padding:36px 0 24px;
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.7);
}
.footer-inner{
  max-width:780px;margin:0 auto;padding:0 16px;
  display:flex;flex-direction:column;
  align-items:center;gap:12px;
  color:var(--text-muted);font-size:.75rem;
}
.footer-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
.footer-links a{color:var(--text-muted);text-decoration:none;font-weight:700;}
.footer-links a:active{color:var(--primary);}

/* ───────────────────────────────────────────────
   DIAGRAM: MONEY FLOW
─────────────────────────────────────────────── */
.mf-box{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow);}
.mf-title{font-size:.72rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;}
.mf-row{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.mf-node{
  border-radius:var(--radius-sm);padding:10px 14px;
  font-size:.82rem;font-weight:700;text-align:center;
  min-width:90px;flex-shrink:0;line-height:1.4;
}
.mf-amber{background:var(--primary-light);border:2px solid var(--primary-mid);color:var(--primary-dark);}
.mf-blue {background:#dbeafe;border:2px solid #93c5fd;color:#1d4ed8;}
.mf-red  {background:#fee2e2;border:2px solid #fca5a5;color:#b91c1c;}
.mf-green{background:var(--success-light);border:2px solid #6ee7b7;color:#047857;}
.mf-gray {background:#f1f5f9;border:2px solid var(--border);color:var(--text-muted);}
.mf-arrow-wrap{display:flex;flex-direction:column;align-items:center;gap:1px;flex-shrink:0;}
.mf-arrow-line{width:36px;height:2px;background:var(--primary-mid);}
.mf-arrow-label{font-size:.62rem;font-weight:800;color:var(--primary);white-space:nowrap;}
.mf-arrowhead{font-size:.75rem;color:var(--primary-mid);margin-top:-4px;}

/* ───────────────────────────────────────────────
   DIAGRAM: TIMELINE
─────────────────────────────────────────────── */
.timeline-box{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow);}
.tl-label{font-size:.74rem;font-weight:800;color:var(--text-muted);margin-bottom:10px;}
.tl-row{display:flex;gap:0;}
.tl-seg{flex:1;text-align:center;font-size:.7rem;font-weight:700;padding:10px 4px;line-height:1.3;}
.tl-seg:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.tl-seg:last-child {border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.tl-current{background:var(--primary-light);color:var(--primary-dark);border:2px solid var(--primary-mid);}
.tl-next   {background:#f1f5f9;color:var(--text-muted);border:2px solid var(--border);}
.tl-paid   {background:#dbeafe;color:#1d4ed8;border:2px solid #93c5fd;}

/* ───────────────────────────────────────────────
   DIAGRAM: WRONG / CORRECT COMPARE
─────────────────────────────────────────────── */
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.compare-box{border-radius:var(--radius-sm);padding:12px 14px;}
.compare-box.wrong  {background:#fee2e2;border:1.5px solid #fca5a5;}
.compare-box.correct{background:var(--success-light);border:1.5px solid #6ee7b7;}
.compare-label{font-size:.74rem;font-weight:800;margin-bottom:6px;}
.compare-box.wrong   .compare-label{color:#b91c1c;}
.compare-box.correct .compare-label{color:#047857;}
.compare-box p{font-size:.8rem;margin:0;line-height:1.6;}
@media(max-width:400px){.compare-grid{grid-template-columns:1fr;}}

/* ───────────────────────────────────────────────
   DIAGRAM: DEPRECIATION BAR
─────────────────────────────────────────────── */
.dep-chart-box{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow);}
.dep-chart-title{font-size:.78rem;font-weight:800;color:var(--primary-dark);margin-bottom:14px;}
.dep-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.dep-label{font-size:.72rem;font-weight:700;color:var(--text-muted);min-width:38px;text-align:right;flex-shrink:0;}
.dep-bar-wrap{flex:1;background:#f1f5f9;border-radius:99px;height:22px;overflow:hidden;}
.dep-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-mid));border-radius:99px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;min-width:50px;}
.dep-bar-val{font-size:.66rem;font-weight:900;color:#fff;white-space:nowrap;}
.dep-note{font-size:.78rem;color:var(--text-muted);margin-top:10px;font-weight:600;}

/* ───────────────────────────────────────────────
   DIAGRAM: SALARY BREAKDOWN
─────────────────────────────────────────────── */
.salary-break-box{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow);}
.sb-title{font-size:.78rem;font-weight:800;color:var(--primary-dark);margin-bottom:10px;}
.sb-bar-wrap{display:flex;height:48px;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:10px;}
.sb-seg{display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;line-height:1.2;text-align:center;padding:2px;}
.sb-net   {background:#059669;color:#fff;}
.sb-tax   {background:#d97706;color:#fff;}
.sb-social{background:#7c3aed;color:#fff;}
.sb-legend{font-size:.72rem;color:var(--text-muted);display:flex;gap:12px;flex-wrap:wrap;}
.sb-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:3px;vertical-align:middle;}
.sb-dot.sb-net   {background:#059669;}
.sb-dot.sb-tax   {background:#d97706;}
.sb-dot.sb-social{background:#7c3aed;}

/* ───────────────────────────────────────────────
   DIAGRAM: STEP FLOW (horizontal)
─────────────────────────────────────────────── */
.step-flow{
  display:flex;align-items:stretch;gap:0;
  margin-bottom:14px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  background:var(--card);
  border-radius:var(--radius);
  padding:14px;
  box-shadow:var(--shadow);
}
.step-flow::-webkit-scrollbar{display:none;}
.step-node{
  flex:0 0 auto;
  background:var(--primary-light);
  border:2px solid var(--primary-mid);
  border-radius:var(--radius-sm);
  padding:12px 14px;text-align:center;
  min-width:90px;max-width:110px;
}
.step-node .step-num{font-size:.62rem;font-weight:900;color:var(--primary);display:block;margin-bottom:4px;}
.step-node .step-text{font-size:.8rem;font-weight:800;color:var(--text);line-height:1.3;}
.step-node .step-sub{font-size:.66rem;color:var(--text-muted);margin-top:4px;line-height:1.3;}
.step-arrow{display:flex;align-items:center;padding:0 6px;color:var(--primary);font-size:1rem;flex-shrink:0;}

/* ───────────────────────────────────────────────
   DIAGRAM: BALANCE EQ
─────────────────────────────────────────────── */
.bal-eq{display:flex;gap:8px;align-items:stretch;margin-bottom:14px;flex-wrap:wrap;}
.bal-box{flex:1;border-radius:var(--radius-sm);padding:14px 10px;text-align:center;min-width:80px;}
.bal-box.asset    {background:#dbeafe;border:2px solid #93c5fd;}
.bal-box.liability{background:#fee2e2;border:2px solid #fca5a5;}
.bal-box.equity   {background:var(--success-light);border:2px solid #6ee7b7;}
.bal-box .bal-label{font-size:.7rem;font-weight:800;display:block;margin-bottom:4px;}
.bal-box .bal-value{font-size:1rem;font-weight:900;}
.bal-box.asset     .bal-label{color:#1d4ed8;}
.bal-box.liability .bal-label{color:#b91c1c;}
.bal-box.equity    .bal-label{color:#047857;}
.bal-op{display:flex;align-items:center;font-size:1.2rem;font-weight:900;color:var(--primary);}

/* ───────────────────────────────────────────────
   RESPONSIVE BREAKPOINTS
─────────────────────────────────────────────── */
@media(min-width:600px){
  .page-title{font-size:1.8rem;}
  .rule-grid{grid-template-columns:1fr 1fr;}
  .compare-grid{grid-template-columns:1fr 1fr;}
  .bottom-bar{display:none;} /* use inline nav on desktop */
  .page-main{padding-bottom:40px;}
  .step-node{min-width:100px;max-width:none;}
}
@media(max-width:599px){
  /* hide inline page-nav and done-section on mobile
     (replaced by sticky bottom bar) */
  .done-section{display:none;}
  .page-nav{display:none;}
}
