/* ============================================================
   Mythox — Books (§26 foundation · 2026-06-12)
   100% token-driven (Brand OS) → all 4 palettes + light mode.
   Calm, structured, audit-grade feel.
   ============================================================ */

/* ---------------- HERO ---------------- */
.bk-hero {
  position:relative; overflow:hidden; isolation:isolate;
  padding:30px; border-radius:var(--radius-lg); border:1px solid var(--line);
  background:
    radial-gradient(120% 140% at 92% -20%, var(--gold-soft), transparent 55%),
    linear-gradient(180deg, var(--surface), var(--surface-grad-2));
  margin-bottom:20px;
}
.bk-hero-in { position:relative; z-index:1; }
.bk-hero h1 { font-size:clamp(26px,3.6vw,38px); margin:10px 0 8px; }
.bk-hero .sub { color:var(--muted); max-width:64ch; font-size:14.5px; line-height:1.55; }
.bk-cross-info { color:var(--dim); font-size:12.5px; line-height:1.5; max-width:64ch; margin:8px 0 0; }
.bk-stats { display:flex; flex-wrap:wrap; gap:26px; margin-top:22px; }
.bk-stat { display:flex; flex-direction:column; gap:4px; }
.bk-stat b { font-family:var(--serif); font-size:28px; font-weight:700; line-height:1; color:var(--ivory); letter-spacing:-.02em; }
.bk-stat b.bk-stat-soft { font-size:20px; color:var(--gold); }
.bk-stat span { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }

/* ---------------- ENTITY BAR ---------------- */
.bk-entbar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.bk-pill {
  display:flex; flex-direction:column; gap:2px; text-align:left; cursor:pointer; font-family:inherit;
  padding:10px 16px; border-radius:13px; border:1px solid var(--line); background:var(--surface);
  transition:border-color .15s, transform .15s, background .15s;
}
.bk-pill:hover { border-color:var(--gold-line); transform:translateY(-1px); }
.bk-pill.on { border-color:var(--gold); background:linear-gradient(180deg, var(--gold-soft), transparent 80%), var(--surface); }
.bk-pill-name { font-size:14px; font-weight:700; color:var(--ivory); }
.bk-pill.on .bk-pill-name { color:var(--gold); }
.bk-pill-kind { font-size:10.5px; color:var(--muted); }
.bk-pill.on .bk-pill-kind { color:var(--ivory-soft); opacity:.9; }
.bk-pill-add { justify-content:center; align-items:center; color:var(--muted); font-weight:600; font-size:13px; border-style:dashed; }
.bk-pill-add:hover { color:var(--gold); }

/* ---------------- ENTITY PANEL ---------------- */
.bk-panel { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); padding:24px; }
.bk-ent-head { display:flex; flex-direction:column; gap:16px; margin-bottom:18px; }
.bk-ent-name {
  font-family:var(--serif); font-size:clamp(20px,2.6vw,26px); font-weight:700; color:var(--ivory);
  background:transparent; border:none; border-bottom:1px solid transparent; outline:none; padding:2px 0; transition:border-color .15s;
}
.bk-ent-name:focus { border-bottom-color:var(--gold-line); }
.bk-ent-fields { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-end; }
.bk-field { display:flex; flex-direction:column; gap:6px; }
.bk-field > span { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.bk-field select, .bk-field input {
  font-family:inherit; font-size:13.5px; color:var(--ivory); background:var(--surface-2);
  border:1px solid var(--line); border-radius:9px; padding:9px 11px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.bk-field select { cursor:pointer; min-width:200px; }
.bk-field select:focus, .bk-field input:focus { border-color:var(--gold-2); box-shadow:0 0 0 3px var(--gold-soft); }
.bk-filing { font-size:13.5px; color:var(--gold); font-family:var(--mono); padding:9px 0; }

/* ---------------- FOUNDATION BANNER ---------------- */
.bk-banner {
  display:flex; gap:12px; align-items:flex-start; padding:13px 16px; margin-bottom:22px;
  border:1px solid var(--gold-line); border-radius:12px; background:var(--gold-soft); font-size:13px; color:var(--ivory); line-height:1.5;
}
.bk-banner-ic { color:var(--gold); font-size:16px; flex-shrink:0; line-height:1.3; }
.bk-banner b { color:var(--gold-ink); }

/* ---------------- CHART OF ACCOUNTS ---------------- */
.bk-coa-head { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:14px; }
.bk-coa-head h3 { font-size:17px; margin:0; }
.bk-dim { color:var(--dim); font-size:12px; }
.bk-class { margin-bottom:18px; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.bk-class-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; background:var(--surface-2); }
.bk-class-title { display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:14px; font-weight:700; color:var(--ivory); }
.bk-class-hint { font-size:11.5px; font-weight:400; color:var(--muted); }
.bk-class-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.bk-dot-asset { background:var(--green); }
.bk-dot-liability { background:var(--red); }
.bk-dot-equity { background:var(--gold); }
.bk-dot-income { background:var(--blue, var(--accent)); }
.bk-dot-expense { background:var(--muted); }
.bk-add-acc {
  font-family:inherit; font-size:12px; font-weight:600; color:var(--gold-ink); background:var(--gold);
  border:1px solid var(--gold); border-radius:8px; padding:5px 11px; cursor:pointer; transition:filter .15s; flex-shrink:0;
}
.bk-add-acc:hover { filter:brightness(1.05); }

.bk-acc { display:flex; align-items:center; gap:10px; padding:8px 14px; border-top:1px solid var(--line); }
.bk-acc:first-of-type { border-top:none; }
.bk-acc-code {
  width:74px; flex-shrink:0; font-family:var(--mono); font-size:12.5px; color:var(--muted);
  background:var(--surface-2); border:1px solid var(--line); border-radius:7px; padding:7px 9px; outline:none; transition:border-color .15s;
}
.bk-acc-name {
  flex:1; min-width:0; font-family:inherit; font-size:13.5px; color:var(--ivory);
  background:transparent; border:1px solid transparent; border-radius:7px; padding:7px 9px; outline:none; transition:border-color .15s, background .15s;
}
.bk-acc-name:hover { background:var(--surface-2); }
.bk-acc-code:focus, .bk-acc-name:focus { border-color:var(--gold-2); background:var(--surface-2); }
.bk-1099, .bk-1099-spacer { flex:0 0 auto; width:46px; }
.bk-1099 {
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.02em; height:26px;
  color:var(--muted); background:transparent; border:1px solid var(--line); border-radius:7px; cursor:pointer; transition:all .15s;
}
.bk-1099:hover { border-color:var(--gold-line); color:var(--ivory); }
.bk-1099.on { color:var(--gold-ink); background:var(--gold); border-color:var(--gold); }
.bk-acc-del {
  flex:0 0 auto; width:26px; height:26px; border:none; background:transparent; cursor:pointer;
  color:var(--muted); font-size:19px; line-height:1; border-radius:7px; opacity:.45; transition:opacity .15s, color .15s, background .15s;
}
.bk-acc:hover .bk-acc-del { opacity:.7; }
.bk-acc-del:hover { color:var(--red); background:color-mix(in srgb, var(--red) 12%, transparent); opacity:1; }
.bk-acc-empty { padding:11px 14px; font-size:12.5px; color:var(--dim); }

/* ---------------- ENTITY ACTIONS + FOOT ---------------- */
.bk-ent-actions { margin-top:8px; }
.bk-del-ent {
  font-family:inherit; font-size:13px; font-weight:600; color:var(--red); cursor:pointer;
  background:transparent; border:1px solid color-mix(in srgb, var(--red) 34%, transparent); border-radius:10px; padding:9px 16px; transition:background .15s;
}
.bk-del-ent:hover { background:color-mix(in srgb, var(--red) 12%, transparent); }

.bk-empty { text-align:center; padding:46px 20px; color:var(--muted); border:1px dashed var(--line-2); border-radius:var(--radius-lg); }
.bk-empty-ic { font-size:30px; opacity:.4; margin-bottom:10px; }
.bk-empty .bk-add-acc { margin-top:14px; }

.bk-foot { margin-top:22px; padding:18px 20px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.bk-foot p { font-size:13px; color:var(--muted); line-height:1.6; margin:0 0 10px; }
.bk-foot p:last-child { margin-bottom:0; }
.bk-foot b { color:var(--ivory); }
.bk-disclaimer { font-size:12px; color:var(--dim); border-top:1px solid var(--line); padding-top:10px; }

@media (max-width:640px) {
  .bk-stats { gap:18px; }
  .bk-stat b { font-size:23px; }
  .bk-panel { padding:18px 14px; }
  .bk-field select { min-width:160px; }
  .bk-class-hint { display:none; }
}

/* ============================================================
   §26 posting pass — sub-nav · ledger · rules · P&L
   ============================================================ */

/* sub-nav inside the entity panel */
.bk-subnav { display:flex; gap:4px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.bk-subtab {
  font-family:inherit; font-size:13.5px; font-weight:600; color:var(--muted);
  background:transparent; border:none; border-bottom:2px solid transparent; padding:9px 14px 11px; cursor:pointer;
  margin-bottom:-1px; transition:color .15s, border-color .15s;
}
.bk-subtab:hover { color:var(--ivory); }
.bk-subtab.on { color:var(--gold); border-bottom-color:var(--gold); }
.bk-subcount { font-family:var(--mono); font-size:11px; opacity:.7; }

/* ---- LEDGER ---- */
.bk-txn-form { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.bk-txn-form input, .bk-txn-form select {
  font-family:inherit; font-size:13.5px; color:var(--ivory); background:var(--surface-2);
  border:1px solid var(--line); border-radius:9px; padding:9px 11px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.bk-txn-form input:focus, .bk-txn-form select:focus { border-color:var(--gold-2); box-shadow:0 0 0 3px var(--gold-soft); }
.bk-txn-date { width:148px; flex:0 0 auto; font-family:var(--mono); }
.bk-txn-payee { flex:1 1 200px; min-width:140px; }
.bk-txn-amt { width:110px; flex:0 0 auto; text-align:right; font-family:var(--mono); }
.bk-txn-acc { flex:1 1 200px; min-width:160px; cursor:pointer; }
.bk-txn-add {
  flex:0 0 auto; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--gold-ink); background:var(--gold);
  border:1px solid var(--gold); border-radius:9px; padding:9px 18px; cursor:pointer; transition:filter .15s;
}
.bk-txn-add:hover { filter:brightness(1.05); }
.bk-learn { display:flex; align-items:center; gap:8px; margin:10px 2px 0; font-size:12.5px; color:var(--muted); cursor:pointer; }
.bk-learn input { accent-color:var(--gold); }

.bk-ledger-listhead { margin-top:22px; margin-bottom:10px; }
.bk-acc-empty-box { border:1px dashed var(--line-2); border-radius:12px; text-align:center; padding:22px; }
.bk-txn-list { display:flex; flex-direction:column; }
.bk-txn {
  display:grid; grid-template-columns:96px 1fr minmax(120px,1.3fr) 110px 28px; gap:12px; align-items:center;
  padding:11px 6px; border-top:1px solid var(--line);
}
.bk-txn:first-child { border-top:none; }
.bk-txn-d { font-family:var(--mono); font-size:12px; color:var(--muted); }
.bk-txn-p { font-size:13.5px; color:var(--ivory); min-width:0; display:flex; flex-direction:column; gap:2px; }
.bk-txn-memo { font-size:11px; color:var(--dim); }
.bk-txn-acc-lbl { font-size:12.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bk-txn-acc-lbl.bk-uncat { color:var(--red); }
.bk-txn-amt-v { font-family:var(--mono); font-size:13.5px; font-weight:600; text-align:right; }
.bk-txn-amt-v.pos { color:var(--green); }
.bk-txn-amt-v.neg { color:var(--red); }
.bk-txn-amt-v.oth { color:var(--muted); }
@media (max-width:640px){ .bk-txn { grid-template-columns:1fr auto 28px; } .bk-txn-d, .bk-txn-acc-lbl { grid-column:1 / -1; } }

/* ---- rules ---- */
.bk-rules { margin-top:14px; }
.bk-rules-toggle {
  font-family:inherit; font-size:12.5px; font-weight:600; color:var(--muted);
  background:transparent; border:none; cursor:pointer; padding:6px 0; transition:color .15s;
}
.bk-rules-toggle:hover { color:var(--ivory); }
.bk-rules.open .bk-rules-body { padding:12px 14px; margin-top:8px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.bk-rules-body > p { margin:0 0 10px; font-size:12.5px; }
.bk-rule { display:flex; align-items:center; gap:10px; padding:6px 0; font-size:13px; }
.bk-rule-m { color:var(--ivory); font-weight:600; }
.bk-rule-arrow { color:var(--dim); }
.bk-rule-a { color:var(--muted); flex:1; }
.bk-rule-add { display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.bk-rule-add input, .bk-rule-add select {
  font-family:inherit; font-size:13px; color:var(--ivory); background:var(--surface);
  border:1px solid var(--line); border-radius:8px; padding:8px 10px; outline:none;
}
.bk-rule-add input { flex:1 1 160px; }
.bk-rule-add select { flex:1 1 160px; cursor:pointer; }
.bk-rule-add button {
  font-family:inherit; font-size:12.5px; font-weight:600; color:var(--ivory); background:var(--surface-3);
  border:1px solid var(--line); border-radius:8px; padding:8px 14px; cursor:pointer; transition:background .15s, color .15s;
}
.bk-rule-add button:hover { background:var(--gold); color:var(--gold-ink); border-color:var(--gold); }

/* ---- P&L ---- */
.bk-pnl-top { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.bk-pnl-top h3 { font-size:18px; margin:0; }
.bk-pnl-years { display:flex; gap:5px; flex-wrap:wrap; }
.bk-yr {
  font-family:var(--mono); font-size:12px; color:var(--muted); background:transparent;
  border:1px solid var(--line); border-radius:8px; padding:5px 11px; cursor:pointer; transition:all .15s;
}
.bk-yr:hover { color:var(--ivory); border-color:var(--gold-line); }
.bk-yr.on { color:var(--gold-ink); background:var(--gold); border-color:var(--gold); }
.bk-pnl-cap { font-size:12.5px; color:var(--dim); margin-bottom:16px; }
.bk-pnl-flag {
  display:block; width:100%; text-align:left; font-family:inherit; font-size:12.5px; color:var(--red); cursor:pointer;
  background:color-mix(in srgb, var(--red) 9%, transparent); border:1px solid color-mix(in srgb, var(--red) 28%, transparent);
  border-radius:10px; padding:10px 13px; margin-bottom:16px; transition:background .15s;
}
.bk-pnl-flag:hover { background:color-mix(in srgb, var(--red) 15%, transparent); }
.bk-pnl-sec { margin-bottom:18px; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.bk-pnl-sec-head {
  display:flex; align-items:center; gap:9px; padding:10px 16px; background:var(--surface-2);
  font-size:13px; font-weight:700; color:var(--ivory); text-transform:uppercase; letter-spacing:.05em;
}
.bk-pnl-line { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 16px; border-top:1px solid var(--line); font-size:13.5px; color:var(--ivory); }
.bk-pnl-line:first-of-type { border-top:none; }
.bk-pnl-amt { font-family:var(--mono); font-size:13.5px; }
.bk-pnl-sub { font-weight:700; background:var(--surface-2); border-top:1px solid var(--line-2); }
.bk-pnl-amt.pos { color:var(--green); }
.bk-pnl-amt.neg { color:var(--red); }
.bk-pnl-empty { padding:14px 16px; font-size:12.5px; color:var(--dim); }
.bk-pnl-net {
  display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 18px;
  border-radius:14px; border:1px solid var(--gold-line); background:var(--gold-soft);
  font-family:var(--serif); font-size:20px; font-weight:700; color:var(--ivory);
}
.bk-pnl-net span:last-child { font-family:var(--mono); }
.bk-pnl-net.pos span:last-child { color:var(--green); }
.bk-pnl-net.neg span:last-child { color:var(--red); }
.bk-pnl-note { margin-top:12px; font-size:12px; }

/* ---------- Bank feed (sub-pass 3) ---------- */
.bk-bank { display:flex; flex-direction:column; gap:16px; }
.bk-bank-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.bk-bank-head h3 { margin:0 0 2px; }
.bk-sync {
  font-family:inherit; font-size:12px; font-weight:600; color:var(--gold-ink); background:var(--gold);
  border:1px solid var(--gold); border-radius:8px; padding:7px 13px; cursor:pointer; transition:filter .15s; white-space:nowrap; flex-shrink:0;
}
.bk-sync:hover { filter:brightness(1.05); }
.bk-sync[disabled] { opacity:.55; cursor:default; }
.bk-banner-warn { border-color:var(--red); }

.bk-map { border:1px solid var(--line); border-radius:var(--radius-lg,12px); padding:14px 16px; background:var(--surface-2); }
.bk-map-title { font-weight:600; color:var(--ivory); margin-bottom:8px; }
.bk-map-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 0; border-top:1px solid var(--line); }
.bk-map-row:first-of-type { border-top:none; }
.bk-map-acct { font-size:13px; color:var(--ivory); }
.bk-map-pick { display:flex; align-items:center; gap:8px; }
.bk-map-pick span { font-size:12px; color:var(--muted); white-space:nowrap; }
.bk-map-pick select, .bk-inbox-acc {
  font-family:inherit; font-size:12.5px; color:var(--ivory); background:var(--surface-2);
  border:1px solid var(--line); border-radius:7px; padding:6px 9px; cursor:pointer; outline:none;
}
.bk-map-pick select:focus, .bk-inbox-acc:focus { border-color:var(--gold-2); box-shadow:0 0 0 3px var(--gold-soft); }

.bk-inbox { display:flex; flex-direction:column; gap:10px; }
.bk-inbox-bulk { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.bk-approve-all {
  font-family:inherit; font-size:12px; font-weight:600; color:var(--gold-ink); background:var(--gold);
  border:1px solid var(--gold); border-radius:8px; padding:6px 12px; cursor:pointer; transition:filter .15s;
}
.bk-approve-all:hover { filter:brightness(1.05); }
.bk-inbox-list { display:flex; flex-direction:column; gap:10px; }
.bk-inbox-card { border:1px solid var(--line); border-radius:var(--radius-lg,12px); padding:12px 14px; background:var(--surface); display:flex; flex-direction:column; gap:10px; }
.bk-inbox-card.dup { border-color:var(--gold-line); }
.bk-inbox-main { display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:12px; }
.bk-inbox-date { font-family:var(--mono); font-size:12px; color:var(--muted); }
.bk-inbox-payee { font-size:13.5px; font-weight:600; color:var(--ivory); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.bk-inbox-dir { font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:.04em; background:var(--surface-3); }
.bk-inbox-dir.pos { color:var(--green); }
.bk-inbox-dir.neg { color:var(--muted); }
.bk-inbox-amt { font-family:var(--mono); font-size:13.5px; font-weight:700; text-align:right; }
.bk-inbox-amt.pos { color:var(--green); }
.bk-inbox-amt.neg { color:var(--ivory); }
.bk-dup { font-size:12.5px; color:var(--gold-ink); background:var(--gold-soft); border-radius:8px; padding:8px 10px; }
.bk-inbox-file { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.bk-inbox-acc { min-width:220px; }
.bk-inbox-learn { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); }
.bk-inbox-actions { display:flex; gap:8px; flex-wrap:wrap; }
.bk-inbox-actions button {
  font-family:inherit; font-size:12.5px; font-weight:600; border-radius:8px; padding:6px 12px; cursor:pointer; transition:filter .15s;
  color:var(--ivory); background:var(--surface-2); border:1px solid var(--line);
}
.bk-inbox-actions button:hover { filter:brightness(1.08); }
.bk-ap { color:var(--gold-ink) !important; background:var(--gold) !important; border-color:var(--gold) !important; }
.bk-ap[disabled] { opacity:.45; cursor:not-allowed; filter:none; }
.bk-mg { color:var(--gold-ink) !important; background:var(--gold-soft) !important; border-color:var(--gold-line) !important; }
@media (max-width:640px){ .bk-inbox-main { grid-template-columns:1fr auto; } .bk-inbox-date { grid-column:1 / -1; } }

/* ---------- delete-business type-to-confirm dialog ---------- */
.bk-confirm-ov { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.62); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.bk-confirm { width:min(440px,100%); background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:22px 22px 18px; box-shadow:0 24px 64px rgba(0,0,0,.5); }
.bk-confirm h3 { margin:0 0 8px; font-size:18px; color:var(--ivory); }
.bk-confirm p { margin:0 0 15px; font-size:13.5px; line-height:1.55; color:var(--muted); }
.bk-confirm p b { color:var(--ivory); }
.bk-confirm-lbl { display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
.bk-confirm-lbl b { color:var(--red); letter-spacing:.06em; }
.bk-confirm-input { width:100%; box-sizing:border-box; font-family:var(--mono); font-size:14px; letter-spacing:.04em; color:var(--ivory); background:var(--surface-2); border:1px solid var(--line); border-radius:8px; padding:9px 11px; outline:none; transition:border-color .15s, box-shadow .15s; }
.bk-confirm-input:focus { border-color:var(--red); box-shadow:0 0 0 3px color-mix(in srgb, var(--red) 22%, transparent); }
.bk-confirm-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.bk-confirm-actions button { font-family:inherit; font-size:13px; font-weight:600; border-radius:8px; padding:8px 15px; cursor:pointer; transition:filter .15s; }
.bk-confirm-cancel { background:var(--surface-2); color:var(--ivory); border:1px solid var(--line); }
.bk-confirm-cancel:hover { filter:brightness(1.1); }
.bk-confirm-del { background:var(--red); border:1px solid var(--red); color:#fff; }
.bk-confirm-del:hover { filter:brightness(1.06); }
.bk-confirm-del[disabled] { opacity:.4; cursor:not-allowed; filter:none; }
