/* ============================================================================
 * ZeroBook — Premium Design System (Phase B)
 * Single source of truth for the visual language. Loaded AFTER tabler.min.css
 * (served from /assets/css/theme.css). Purely visual — no behaviour changes.
 * Fonts are self-hosted (see /assets/fonts, vendored via `npm run sync:theme`).
 * ========================================================================== */

/* ---- Self-hosted fonts (no CDN at runtime) ---- */
@font-face { font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/inter-400.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/inter-500.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/inter-600.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/inter-700.woff2') format('woff2'); }
@font-face { font-family:'Spectral'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/spectral-500.woff2') format('woff2'); }
@font-face { font-family:'Spectral'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/spectral-600.woff2') format('woff2'); }
@font-face { font-family:'Spectral'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/spectral-700.woff2') format('woff2'); }

/* ---- Design tokens: LIGHT ---- */
:root {
    --evergreen:#0B6E4F;  --evergreen-600:#0A5E44;  --evergreen-tint:#E6F2EC;
    --evergreen-rgb:11,110,79;
    --ink:#14231E;  --muted:#5F726A;  --faint:#8B9A92;
    --canvas:#F6F7F5;  --surface:#FFFFFF;  --surface-2:#FBFCFB;
    --line:#E4E7E3;  --line-strong:#D3D9D4;
    --rust:#B03A2E;  --amber:#B7791F;  --indigo:#3B5BA5;  --sky:#2E7D9A;
    --radius-card:14px;  --radius-control:10px;
    --shadow-sm:0 1px 2px rgba(20,35,30,.04), 0 1px 3px rgba(20,35,30,.06);
    --font-ui:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    --font-display:'Spectral', Georgia, 'Times New Roman', serif;
}

/* ---- Design tokens: DARK (under Tabler's data-bs-theme="dark") ---- */
[data-bs-theme="dark"] {
    --evergreen:#1E9D74;  --evergreen-600:#1E9D74;  --evergreen-tint:#16261F;
    --evergreen-rgb:30,157,116;
    --ink:#E8EEE9;  --muted:#93A69C;  --faint:#6E8177;
    --canvas:#0E1512;  --surface:#151E1A;  --surface-2:#111813;
    --line:#24322C;  --line-strong:#2E3E37;
}

/* ---- Re-map Tabler / Bootstrap variables to our tokens ----
 * so all stock components inherit the new look automatically. */
:root, [data-bs-theme="light"], [data-bs-theme="dark"] {
    --tblr-primary:var(--evergreen);
    --tblr-primary-rgb:var(--evergreen-rgb);
    --bs-primary:var(--evergreen);
    --bs-primary-rgb:var(--evergreen-rgb);
    --tblr-link-color:var(--evergreen);
    --tblr-link-hover-color:var(--evergreen-600);

    --tblr-body-bg:var(--canvas);
    --tblr-body-color:var(--ink);
    --bs-body-bg:var(--canvas);
    --bs-body-color:var(--ink);

    --tblr-bg-surface:var(--surface);
    --tblr-bg-surface-secondary:var(--surface-2);
    --tblr-card-bg:var(--surface);

    --tblr-border-color:var(--line);
    --tblr-border-color-translucent:var(--line);
    --bs-border-color:var(--line);

    --tblr-secondary:var(--muted);
    --tblr-muted:var(--muted);
    --tblr-secondary-color:var(--muted);

    --tblr-font-sans-serif:var(--font-ui);
    --bs-font-sans-serif:var(--font-ui);

    --tblr-border-radius:var(--radius-control);
    --tblr-border-radius-sm:8px;
    --tblr-border-radius-lg:var(--radius-card);
    --bs-border-radius:var(--radius-control);
}

/* ---- Base ---- */
html, body {
    font-family:var(--font-ui);
    background:var(--canvas);
    color:var(--ink);
    letter-spacing:-0.005em;
}
/* CRITICAL: align every figure in columns */
body, .table, input, .card, .zb-kbd, td, th, .badge, .form-control, .h1, .h2, .h3, h1, h2, h3 {
    font-variant-numeric:tabular-nums;
    font-feature-settings:"tnum" 1;
}

/* ---- Display / serif utilities ---- */
.serif, .display, .page-title, .card-title.serif, .zb-figure {
    font-family:var(--font-display) !important;
    letter-spacing:0;
}
.page-title { font-weight:600; color:var(--ink); }
.page-pretitle { color:var(--faint); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
.zb-figure { font-weight:600; font-variant-numeric:tabular-nums; }

/* ---- Buttons ---- */
.btn { border-radius:var(--radius-control); font-weight:500; }
.btn-primary {
    background:var(--evergreen); border-color:var(--evergreen); color:#fff;
    box-shadow:var(--shadow-sm);
}
.btn-primary:hover, .btn-primary:focus { background:var(--evergreen-600); border-color:var(--evergreen-600); color:#fff; }
.btn-outline-primary { color:var(--evergreen); border-color:var(--line-strong); }
.btn-outline-primary:hover { background:var(--evergreen); border-color:var(--evergreen); color:#fff; }
.btn-link { color:var(--evergreen); }
.btn-ghost-secondary, .btn-ghost-danger { border-radius:var(--radius-control); }

/* ---- Cards ---- */
.card {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-sm);
}
.card-header { background:transparent; border-bottom:1px solid var(--line); }
.card-footer { background:var(--surface-2); border-top:1px solid var(--line); }
.card-title { color:var(--ink); font-weight:600; }

/* ---- Forms (10px radius, our borders, evergreen focus) ---- */
.form-control, .form-select {
    border-radius:var(--radius-control);
    border-color:var(--line-strong);
    background-color:var(--surface);
    color:var(--ink);
}
.form-control::placeholder { color:var(--faint); }
.form-control:focus, .form-select:focus {
    border-color:var(--evergreen);
    box-shadow:0 0 0 3px rgba(var(--evergreen-rgb), .18);
}
.form-label { color:var(--muted); font-weight:500; }
.input-group-text { background:var(--surface-2); border-color:var(--line-strong); color:var(--muted); }

/* Convention #6 — number inputs keep spinner removal */
input[type="number"] { -moz-appearance:textfield; appearance:textfield; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
/* Convention #7 — select keeps a visible dropdown arrow (evergreen-ish chevron) */
select.form-select {
    -webkit-appearance:auto; -moz-appearance:auto; appearance:auto;
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235F726A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat:no-repeat; background-position:right .75rem center; background-size:16px 12px;
    padding-right:2.25rem;
}
[data-bs-theme="dark"] select.form-select {
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2393A69C' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

/* ---- Tables ---- */
.table { --tblr-table-bg:transparent; color:var(--ink); }
.table > thead > tr > th {
    color:var(--muted); font-weight:600; font-size:.78rem;
    text-transform:uppercase; letter-spacing:.04em;
    border-bottom:1px solid var(--line-strong); background:var(--surface-2);
}
.table > tbody > tr > td { border-top:1px solid var(--line); }
.table tfoot tr { border-top:2px solid var(--line-strong); }

/* ---- Badges ---- */
.badge { border-radius:8px; font-weight:600; }

/* ---- Alerts ---- */
.alert { border-radius:var(--radius-control); border:1px solid var(--line); }

/* ---- Dropdown menus ---- */
.dropdown-menu {
    border-radius:var(--radius-control); border:1px solid var(--line);
    box-shadow:0 8px 24px rgba(20,35,30,.10); background:var(--surface);
}
.dropdown-item { color:var(--ink); }
.dropdown-item:hover, .dropdown-item.active { background:var(--evergreen-tint); color:var(--evergreen-600); }

/* ---- Modals ---- */
.modal-content { border-radius:var(--radius-card); border:1px solid var(--line); background:var(--surface); }

/* ============================================================================
 * App shell (custom classes used by layouts/app.blade.php)
 * ========================================================================== */
.zb-shell { min-height:100vh; background:var(--canvas); }

/* Sidebar */
.zb-sidebar {
    position:fixed; top:0; left:0; bottom:0; width:250px; z-index:1035;
    background:var(--surface); border-right:1px solid var(--line);
    display:flex; flex-direction:column; overflow-y:auto;
}
.zb-brand { display:flex; align-items:center; gap:.7rem; padding:1.25rem 1.35rem 1.1rem; }
.zb-brand-word { font-family:var(--font-display); font-weight:600; font-size:1.28rem; color:var(--ink); letter-spacing:-.01em; }
.zb-nav { padding:.35rem .75rem 1rem; }
.zb-nav-group-label {
    color:var(--faint); font-size:.66rem; font-weight:600; text-transform:uppercase;
    letter-spacing:.09em; padding:.9rem .6rem .35rem;
}
.zb-nav-link {
    display:flex; align-items:center; gap:.7rem;
    padding:.5rem .6rem; margin:1px 0; border-radius:9px;
    color:var(--muted); font-weight:500; font-size:.86rem; text-decoration:none; cursor:pointer;
    transition:background .12s, color .12s;
}
.zb-nav-link .ti { font-size:1.05rem; color:var(--faint); }
.zb-nav-link:hover { background:var(--surface-2); color:var(--ink); }
.zb-nav-link.active { background:var(--evergreen-tint); color:var(--evergreen-600); font-weight:600; }
.zb-nav-link.active .ti { color:var(--evergreen); }
.zb-nav-sub { padding-left:1.9rem; }
.zb-nav-sub .zb-nav-link { padding:.35rem .6rem; font-size:.84rem; }
.zb-nav-badge {
    margin-left:auto; background:var(--rust); color:#fff; font-size:.66rem; font-weight:700;
    line-height:1; padding:.2rem .4rem; border-radius:20px; min-width:1.1rem; text-align:center;
}

/* Topbar */
.zb-topbar {
    position:sticky; top:0; z-index:1030;
    height:60px; display:flex; align-items:center; gap:.75rem;
    padding:0 1.25rem; background:var(--surface); border-bottom:1px solid var(--line);
}
.zb-content { margin-left:250px; }
@media (max-width:992px){ .zb-sidebar{ transform:translateX(-100%); transition:transform .2s; } .zb-sidebar.open{ transform:none; } .zb-content{ margin-left:0; } }

/* Company selector — bordered pill with a small tinted initials square */
.zb-company {
    display:flex; align-items:center; gap:.55rem; padding:.35rem .65rem;
    border:1px solid var(--line-strong); border-radius:10px;
    font-weight:600; font-size:.82rem; color:var(--ink); background:var(--surface);
}
.zb-company:hover { background:var(--surface-2); }
.zb-cobadge {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:6px; flex:0 0 auto;
    background:var(--evergreen-tint); color:var(--evergreen-600); font-weight:700; font-size:.68rem;
}
[data-bs-theme="dark"] .zb-cobadge { color:var(--evergreen); }
/* larger solid variant for the user avatar in the menu */
.zb-cobadge.zb-cobadge-lg { width:32px; height:32px; border-radius:8px; background:var(--ink); color:var(--surface); font-size:.78rem; }

/* Global search field (visual only this phase) */
.zb-search {
    display:flex; align-items:center; gap:.55rem; flex:1 1 auto; max-width:420px;
    background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius-control);
    padding:.45rem .7rem; color:var(--faint); font-size:.84rem;
}
.zb-search input { border:0; background:transparent; outline:none; flex:1; color:var(--ink); font-size:.84rem; }
.zb-search input::placeholder { color:var(--faint); }
.zb-search .zb-kbd { margin-left:auto; }

/* Icon buttons in the topbar */
.zb-icon-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:9px;
    background:transparent; border:1px solid transparent; color:var(--muted); cursor:pointer;
}
.zb-icon-btn:hover { background:var(--surface-2); border-color:var(--line); color:var(--ink); }
.zb-icon-btn .ti { font-size:1.15rem; }

/* Theme-toggle icon swap */
.icon-to-light { display:none; }
[data-bs-theme="dark"] .icon-to-light { display:inline-flex; }
[data-bs-theme="dark"] .icon-to-dark { display:none; }

/* ---- Accessibility: keep a VISIBLE focus ring (Phase A) — now evergreen ---- */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible,
.form-control:focus-visible, .form-select:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
.zb-nav-link:focus-visible, .zb-icon-btn:focus-visible {
    outline:2px solid var(--evergreen) !important;
    outline-offset:1px;
}

/* ---- Phase A hint bar / kbd / toast retinted to the system ---- */
.zb-kbd {
    background:var(--surface-2); color:var(--muted);
    border:1px solid var(--line-strong); border-bottom-width:2px; border-radius:6px;
}
.zb-hintbar { background:var(--ink); color:#cfd8e3; border-top:1px solid rgba(0,0,0,.2); }
[data-bs-theme="dark"] .zb-hintbar { background:#0a110e; }
.zb-hintbar .zb-kbd { background:rgba(255,255,255,.08); color:#eef3ee; border-color:rgba(255,255,255,.15); }
.zb-toast { background:var(--ink); color:#fff; }

/* ============================================================================
 * Density & rhythm — match the reference mockup (compact 14px / 1.5,
 * 20px card insets, tight table rows). This is what makes it feel "premium"
 * rather than the roomy Tabler defaults.
 * ========================================================================== */
html, body { font-size:14px; line-height:1.5; }

/* Page rhythm: title block sits close to the content (reference ≈ 22px gap) */
.page-header { padding-top:1.4rem; padding-bottom:0; margin-bottom:0; border-bottom:0; }
.page-body   { margin-top:1.25rem; margin-bottom:2.25rem; }
.page-title  { font-size:1.7rem; line-height:1.15; letter-spacing:-.015em; }
.page-header .text-secondary, .page-header .text-muted { font-size:.9rem; }

/* Cards: one lever (Tabler card padding) drives body + card-table insets to 20px */
.card { --tblr-card-padding:1.25rem; }
.card-body   { padding:1.2rem 1.25rem; }
.card-header, .card-footer { padding:.85rem 1.25rem; min-height:auto; }
.card-title  { font-size:.95rem; font-weight:600; }

/* Tables: compact rows, aligned figures, quiet separators (reference ≈ 12px 20px) */
.table {
    font-size:.9rem;
    --tblr-table-cell-padding-y:.62rem;
    --tblr-table-cell-padding-x:1rem;
}
.table > thead > tr > th { padding-top:.55rem; padding-bottom:.55rem; line-height:1.2; font-size:.72rem; }
.card-table > :not(caption) > * > * { padding-top:.62rem; padding-bottom:.62rem; }
.table-vcenter > tbody > tr > td { vertical-align:middle; }

/* Controls sized to the reference (btn 9/15, input 9/12) */
.btn        { padding:.52rem .9rem; font-size:.9rem; }
.btn-sm     { padding:.32rem .62rem; font-size:.8rem; }
.form-control, .form-select { padding:.5rem .75rem; font-size:.9rem; }
.form-label { font-size:.78rem; margin-bottom:.35rem; }

/* Constrain very wide pages like the mockup (≈1280px) */
.page-header > .container-xl, .page-body > .container-xl { max-width:1280px; }

/* ============================================================================
 * Report statements (Balance Sheet / P&L) — premium, compact hierarchy
 * matching the design mockup: tight group rows, indented sub-rows,
 * evergreen-tint total bar, small coloured side labels.
 * ========================================================================== */
.zb-report .card-header { padding:.8rem 1.25rem; background:transparent; border-bottom:1px solid var(--line); }
.zb-report-side { font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; margin:0; }
.zb-report-side.liab   { color:var(--amber); }
.zb-report-side.asset  { color:var(--indigo); }
.zb-report-side.income { color:var(--evergreen-600); }
.zb-report-side.expense{ color:var(--rust); }
[data-bs-theme="dark"] .zb-report-side.income { color:var(--evergreen); }

.zb-grp { border-bottom:1px solid var(--line); }
.zb-grp:last-child { border-bottom:0; }
.zb-grp-head {
    display:flex; align-items:center; gap:.7rem; padding:.7rem 1.25rem;
    font-weight:600; font-size:.86rem; color:var(--ink); cursor:pointer;
    -webkit-user-select:none; user-select:none; transition:background .12s;
}
.zb-grp-head:hover { background:var(--surface-2); }
.zb-chev { color:var(--faint); font-size:1rem; transition:transform .15s; flex:0 0 auto; }
.zb-grp-head.open .zb-chev { transform:rotate(90deg); }
.zb-grp-total { margin-left:auto; font-weight:600; font-variant-numeric:tabular-nums; }
.zb-grp-body { background:var(--surface-2); }
.zb-sub {
    display:flex; align-items:center; padding:.5rem 1.25rem .5rem 2.9rem;
    font-size:.84rem; color:var(--muted); border-top:1px solid var(--line);
    text-decoration:none; transition:color .12s;
}
.zb-sub:hover { color:var(--ink); background:var(--surface); }
.zb-sub-name { font-weight:500; }
.zb-sub-val { margin-left:auto; font-weight:600; font-variant-numeric:tabular-nums; color:var(--ink); white-space:nowrap; }
.zb-sub-val .ti { color:var(--faint); margin-left:.35rem; font-size:.9rem; }
.zb-sub-empty { padding:.5rem 1.25rem .5rem 2.9rem; font-size:.8rem; color:var(--faint); border-top:1px solid var(--line); }

/* Recursive drill-down (depth ≥ 3): a LEAF top-level group is a navigate link
   styled like a header; a nested BRANCH (sub-group with children) is a small,
   expandable sub-row with a rotating chevron. Leaf sub-rows keep the .zb-sub look. */
a.zb-grp-head { text-decoration:none; }
.zb-chev-leaf { color:var(--faint); font-size:1rem; flex:0 0 auto; }
.zb-sub-branch { cursor:pointer; -webkit-user-select:none; user-select:none; }
.zb-sub-branch .zb-chev { margin-right:.4rem; font-size:.95rem; }
.zb-sub-branch.open .zb-chev { transform:rotate(90deg); }

.zb-report-total {
    display:flex; align-items:center; padding:.95rem 1.25rem;
    background:var(--evergreen-tint); border-top:1px solid var(--line);
}
.zb-report-total .lab { font-weight:600; font-size:.86rem; color:var(--evergreen-600); }
.zb-report-total .val { margin-left:auto; font-family:var(--font-display); font-weight:700; font-size:1.2rem; color:var(--evergreen-600); font-variant-numeric:tabular-nums; }
[data-bs-theme="dark"] .zb-report-total .lab, [data-bs-theme="dark"] .zb-report-total .val { color:var(--evergreen); }

/* status pill (Balanced / Mismatch) */
.zb-pill { display:inline-flex; align-items:center; gap:.35rem; font-size:.75rem; font-weight:600; padding:.22rem .6rem; border-radius:20px; }
.zb-pill.ok  { color:var(--evergreen-600); background:var(--evergreen-tint); }
[data-bs-theme="dark"] .zb-pill.ok { color:var(--evergreen); }
.zb-pill.bad { color:var(--rust); background:color-mix(in oklab, var(--rust) 12%, transparent); }

/* Trial Balance footer band */
.zb-tb-foot { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; padding:.95rem 1.25rem; background:var(--evergreen-tint); border-top:1px solid var(--line); }
.zb-tb-foot .bt { display:flex; align-items:baseline; gap:.5rem; }
.zb-tb-foot .bt .l { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--evergreen-600); }
.zb-tb-foot .bt .n { font-family:var(--font-display); font-weight:700; font-size:1.15rem; font-variant-numeric:tabular-nums; color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-tb-foot .bt .l, [data-bs-theme="dark"] .zb-tb-foot .bt .n { color:var(--evergreen); }
.zb-tb-foot.bad { background:color-mix(in oklab, var(--rust) 10%, transparent); }
.zb-tb-foot.bad .bt .l, .zb-tb-foot.bad .bt .n { color:var(--rust); }

/* Trial Balance total row — totals sit UNDER their Debit / Credit columns. */
.zb-tb-total td { background:var(--evergreen-tint); border-top:1px solid var(--line); padding:.85rem 1rem; }
.zb-tb-total td.l { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--evergreen-600); }
.zb-tb-total td.n { font-family:var(--font-display); font-weight:700; font-size:1.15rem; font-variant-numeric:tabular-nums; color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-tb-total td.l, [data-bs-theme="dark"] .zb-tb-total td.n { color:var(--evergreen); }
.zb-tb-total.bad td { background:color-mix(in oklab, var(--rust) 10%, transparent); }
.zb-tb-total.bad td.l, .zb-tb-total.bad td.n { color:var(--rust); }

/* P&L net-result band */
.zb-net { display:flex; align-items:center; justify-content:center; gap:.6rem; margin-top:1rem;
    padding:.95rem 1.25rem; border-radius:var(--radius-card); border:1px solid transparent;
    font-family:var(--font-display); font-weight:700; font-size:1.35rem; font-variant-numeric:tabular-nums; }
.zb-net .lab { font-family:var(--font-ui); font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.zb-net.profit { background:var(--evergreen-tint); color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-net.profit { color:var(--evergreen); }
.zb-net.loss { background:color-mix(in oklab, var(--rust) 10%, transparent); color:var(--rust); }

/* ============================================================================
 * Voucher entry (livewire/voucher-form.blade.php) — pill tabs, unified Dr/Cr
 * grid, signature balance beam, contextual side panel. Purely presentational;
 * bound to the existing Livewire engine (debits/credits arrays + computed totals).
 * ========================================================================== */
.zb-venter { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:1.15rem; align-items:start; }
@media (max-width:992px){ .zb-venter { grid-template-columns:1fr; } }

/* voucher-type pill tabs */
.zb-vtabs { display:flex; gap:.4rem; flex-wrap:wrap; padding:.9rem 1.1rem; border-bottom:1px solid var(--line); }
.zb-vtab {
    display:inline-flex; align-items:center; gap:.5rem; padding:.5rem .85rem; border-radius:9px;
    font-weight:600; font-size:.85rem; color:var(--muted); background:transparent;
    border:1px solid transparent; cursor:pointer; transition:.12s;
}
.zb-vtab .ti { font-size:1rem; }
.zb-vtab:hover { background:var(--surface-2); color:var(--ink); }
.zb-vtab.on { background:var(--evergreen); color:#fff; }
.zb-vtab.on .ti { color:#fff; }
.zb-vtab.on .zb-kbd { background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.25); color:#eafff5; }
.zb-vtab:disabled { opacity:.55; cursor:not-allowed; }
.zb-vbody { padding:1.15rem 1.25rem; }

/* unified Dr/Cr grid */
.zb-vgrid { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.zb-vgrid-head, .zb-vrow2 {
    display:grid; gap:.6rem; align-items:center;
    grid-template-columns:30px minmax(0,1fr) minmax(96px,150px) minmax(96px,150px) 34px;
}
.zb-vgrid-head {
    padding:.6rem .85rem; background:var(--surface-2); border-bottom:1px solid var(--line);
    font-size:.68rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--faint);
}
.zb-vgrid-head .r { text-align:right; }
.zb-vrow2 { padding:.5rem .85rem; border-bottom:1px solid var(--line); position:relative; }
.zb-vrow2:last-of-type { border-bottom:0; }
.zb-dc { display:inline-grid; place-items:center; width:24px; height:22px; border-radius:6px; font-size:.7rem; font-weight:700; }
.zb-dc.dr { background:color-mix(in oklab, var(--indigo) 14%, transparent); color:var(--indigo); }
.zb-dc.cr { background:color-mix(in oklab, var(--amber) 16%, transparent); color:var(--amber); }
.zb-vled .form-select { font-size:.9rem; }
.zb-vmoney-cell .form-control { font-weight:600; }
.zb-vmoney-empty { text-align:right; color:var(--faint); padding-right:.4rem; }
.zb-vx {
    display:inline-grid; place-items:center; width:28px; height:28px; border:0; border-radius:7px;
    background:transparent; color:var(--faint); cursor:pointer; transition:.12s;
}
.zb-vx:hover:not(:disabled) { background:color-mix(in oklab, var(--rust) 12%, transparent); color:var(--rust); }
.zb-vx:disabled { opacity:.3; cursor:not-allowed; }
.zb-vrow-err { grid-column:2 / 5; color:var(--rust); font-size:.78rem; margin-top:-.1rem; }
.zb-addline {
    display:flex; align-items:center; gap:.5rem; padding:.6rem .85rem; border-top:1px dashed var(--line);
    font-size:.82rem; color:var(--faint);
}
.zb-addline > .ti { color:var(--evergreen); }
.zb-addline button { border:0; background:transparent; color:var(--evergreen-600); font-weight:600; font-size:.82rem; cursor:pointer; padding:0; }
[data-bs-theme="dark"] .zb-addline button { color:var(--evergreen); }
.zb-addline button:disabled { opacity:.5; cursor:not-allowed; }
.zb-addline-sep { color:var(--line-strong); }
.zb-addline-hint { margin-left:.25rem; }

/* signature balance beam */
.zb-beam { margin-top:1.15rem; padding:1rem 1.15rem; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.zb-beam.is-balanced { background:var(--evergreen-tint); border-color:transparent; }
.zb-beam-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.9rem; }
.zb-beam-status { display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.86rem; }
.zb-beam-status.ok  { color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-beam-status.ok { color:var(--evergreen); }
.zb-beam-status.bad { color:var(--rust); font-variant-numeric:tabular-nums; }
.zb-beam-vis { height:4px; border-radius:3px; position:relative; opacity:.85;
    background:linear-gradient(90deg, var(--indigo), var(--amber)); }
.zb-beam-vis.on { background:linear-gradient(90deg, var(--indigo), var(--evergreen), var(--amber)); }
.zb-beam-node { position:absolute; top:-4px; left:50%; transform:translateX(-50%);
    width:12px; height:12px; border-radius:50%; background:var(--surface); border:2.5px solid var(--evergreen); }
.zb-beam-totals { display:flex; align-items:center; justify-content:space-between; margin-top:.85rem; }
.zb-beam-totals .bt { text-align:center; flex:1; }
.zb-beam-totals .bt .l { color:var(--faint); font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.2rem; }
.zb-beam-totals .bt .n { font-family:var(--font-display); font-weight:600; font-size:1.35rem; font-variant-numeric:tabular-nums; color:var(--ink); }
.zb-beam-totals .mid { color:var(--line-strong); font-size:1.1rem; padding:0 .75rem; align-self:center; }

/* contextual side panel */
.zb-vside .card { padding:1rem 1.1rem; margin-bottom:1rem; }
.zb-vside h4 { font-size:.85rem; font-weight:600; margin:0 0 .75rem; display:flex; align-items:center; gap:.45rem; }
.zb-vside h4 .ti { color:var(--evergreen); font-size:1rem; }
.zb-mini { display:flex; justify-content:space-between; align-items:center; padding:.45rem 0; border-bottom:1px solid var(--line); font-size:.82rem; }
.zb-mini:last-child { border-bottom:0; }
.zb-mini .l { color:var(--muted); }
.zb-mini .v { font-weight:600; font-variant-numeric:tabular-nums; color:var(--ink); }
.zb-ktable .kr { display:flex; justify-content:space-between; align-items:center; padding:.4rem 0; font-size:.8rem; }
.zb-ktable .kr span:first-child { color:var(--muted); }
@media (max-width:520px){
    .zb-vgrid-head, .zb-vrow2 { grid-template-columns:26px minmax(0,1fr) minmax(80px,1fr) minmax(80px,1fr) 30px; gap:.4rem; }
    .zb-vgrid { overflow-x:auto; }
}

/* ============================================================================
 * Dashboard (pages/dashboard.blade.php) — signature equation strip, KPI cards,
 * recent-voucher rows, income/expense bars, quick actions. Uses the tokens.
 * ========================================================================== */
.zb-eyebrow { font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--evergreen-600); margin-bottom:.3rem; }
[data-bs-theme="dark"] .zb-eyebrow { color:var(--evergreen); }
.zb-greeting { font-size:1.7rem; line-height:1.1; }

/* shared soft tints for icon chips */
.zb-tint-green  { background:var(--evergreen-tint); color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-tint-green { color:var(--evergreen); }
.zb-tint-indigo { background:color-mix(in oklab, var(--indigo) 13%, transparent); color:var(--indigo); }
.zb-tint-amber  { background:color-mix(in oklab, var(--amber) 15%, transparent);  color:var(--amber); }
.zb-tint-sky    { background:color-mix(in oklab, var(--sky) 14%, transparent);    color:var(--sky); }
.zb-tint-rust   { background:color-mix(in oklab, var(--rust) 12%, transparent);   color:var(--rust); }

/* accounting equation strip */
.zb-equation { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:.5rem; }
.zb-eq-term { text-align:center; }
.zb-eq-lab { font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); margin-bottom:.35rem; }
.zb-eq-val { font-family:var(--font-display); font-weight:600; font-size:1.6rem; letter-spacing:-.01em; }
.zb-eq-val small { font-size:.85rem; color:var(--muted); font-family:var(--font-ui); font-weight:500; }
.zb-eq-op { font-family:var(--font-display); font-size:1.5rem; color:var(--line-strong); font-weight:400; }
.zb-eq-flag { display:inline-flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:600; color:var(--evergreen-600); background:var(--evergreen-tint); padding:.2rem .55rem; border-radius:20px; margin-top:.5rem; }
[data-bs-theme="dark"] .zb-eq-flag { color:var(--evergreen); }

/* KPI cards */
.zb-kpi { padding:1.15rem 1.25rem; height:100%; }
.zb-kpi-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:.85rem; }
.zb-kpi-name { font-size:.78rem; font-weight:600; color:var(--muted); }
.zb-kpi-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; }
.zb-kpi-ic .ti { font-size:1rem; }
.zb-kpi-amt { font-family:var(--font-display); font-weight:600; font-size:1.7rem; letter-spacing:-.02em; line-height:1; }
.zb-kpi-amt .cur { font-size:.9rem; color:var(--muted); font-family:var(--font-ui); font-weight:500; margin-right:.12rem; }
.zb-kpi-meta { margin-top:.7rem; font-size:.75rem; color:var(--muted); display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.zb-chip { font-size:.72rem; font-weight:600; padding:.1rem .42rem; border-radius:6px; }
.zb-chip.up { color:var(--evergreen-600); background:var(--evergreen-tint); }
[data-bs-theme="dark"] .zb-chip.up { color:var(--evergreen); }
.zb-chip.dn { color:var(--rust); background:color-mix(in oklab, var(--rust) 12%, transparent); }

/* receivables aging bar */
.zb-aging { display:flex; height:6px; border-radius:4px; overflow:hidden; margin-top:.8rem; gap:2px; }
.zb-aging span { height:100%; }
.zb-aging-key { display:flex; gap:.7rem; margin-top:.55rem; font-size:.7rem; color:var(--muted); flex-wrap:wrap; }
.zb-aging-key i { width:8px; height:8px; border-radius:2px; display:inline-block; margin-right:.3rem; vertical-align:middle; }

/* section headers inside dashboard cards */
.zb-sec-head { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1.25rem; border-bottom:1px solid var(--line); }
.zb-sec-head h3 { font-size:.9rem; font-weight:600; margin:0; }
.zb-sec-head .link { font-size:.78rem; font-weight:600; color:var(--evergreen-600); display:inline-flex; align-items:center; gap:.25rem; text-decoration:none; }
[data-bs-theme="dark"] .zb-sec-head .link { color:var(--evergreen); }

/* recent voucher rows */
.zb-vrow { display:flex; align-items:center; gap:.85rem; padding:.7rem 1.25rem; border-top:1px solid var(--line); text-decoration:none; color:inherit; transition:background .12s; }
.zb-vrow:first-of-type { border-top:0; }
.zb-vrow:hover { background:var(--surface-2); }
.zb-vtype { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:0 0 auto; }
.zb-vtype .ti { font-size:1rem; }
.zb-vdesc { min-width:0; flex:1; }
.zb-vdesc .t { font-weight:600; font-size:.85rem; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-vdesc .s { font-size:.75rem; color:var(--faint); margin-top:1px; }
.zb-vamt { font-weight:600; font-size:.88rem; text-align:right; white-space:nowrap; color:var(--ink); }
.zb-vamt .u { color:var(--faint); font-weight:500; font-size:.75rem; }

/* income vs expense mini-bars */
.zb-plrow { display:grid; grid-template-columns:112px 1fr 88px; align-items:center; gap:.75rem; padding:.5rem 0; }
.zb-plrow .lab { font-size:.78rem; font-weight:500; color:var(--muted); }
.zb-pltrack { height:22px; background:var(--surface-2); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.zb-plfill { height:100%; border-radius:6px 0 0 6px; }
.zb-plrow .v { text-align:right; font-weight:600; font-size:.8rem; }

/* quick actions */
.zb-qa { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.zb-qa-btn { display:flex; align-items:center; gap:.7rem; padding:.75rem .8rem; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); font-weight:600; font-size:.82rem; color:var(--ink); text-decoration:none; transition:.12s; }
.zb-qa-btn:hover { border-color:var(--evergreen); background:var(--evergreen-tint); }
.zb-qic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; flex:0 0 auto; }
.zb-qic .ti { font-size:1rem; }
.zb-qa-btn .zb-kbd { margin-left:auto; }

@media (max-width:768px) {
    .zb-equation { grid-template-columns:1fr; gap:1rem; }
    .zb-eq-op { display:none; }
}

/* ============================================================================
 * Bank import — confidence indicator, direction chips, upload dropzone
 * ========================================================================== */
.zb-conf { display:inline-flex; align-items:center; gap:.35rem; font-size:.75rem; font-weight:600; font-variant-numeric:tabular-nums; }
.zb-conf .dot { width:8px; height:8px; border-radius:50%; flex:0 0 auto; }
.zb-conf.high { color:var(--evergreen-600); } .zb-conf.high .dot { background:var(--evergreen); }
[data-bs-theme="dark"] .zb-conf.high { color:var(--evergreen); }
.zb-conf.mid  { color:var(--amber); } .zb-conf.mid .dot { background:var(--amber); }
.zb-conf.low  { color:var(--rust); }  .zb-conf.low .dot { background:var(--rust); }

.zb-dir { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600; padding:.15rem .5rem; border-radius:6px; white-space:nowrap; }
.zb-dir.in  { color:var(--evergreen-600); background:var(--evergreen-tint); }
[data-bs-theme="dark"] .zb-dir.in { color:var(--evergreen); }
.zb-dir.out { color:var(--amber); background:color-mix(in oklab, var(--amber) 15%, transparent); }

.zb-dropzone { display:block; border:1.5px dashed var(--line-strong); border-radius:var(--radius-card);
    background:var(--surface-2); padding:1.5rem 1.25rem; text-align:center; transition:.12s; }
.zb-dropzone:hover { border-color:var(--evergreen); background:var(--evergreen-tint); }
.zb-dropzone .zb-dz-ic { font-size:1.7rem; color:var(--evergreen); }
.zb-dropzone .zb-dz-hint { color:var(--faint); font-size:.8rem; margin-top:.15rem; }
.zb-dropzone input[type="file"] { margin:.75rem auto 0; max-width:24rem; }

.zb-line-muted { opacity:.62; }
.zb-step { display:inline-flex; align-items:center; gap:.4rem; font-size:.8rem; color:var(--muted); }
.zb-step .n { display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--evergreen-tint); color:var(--evergreen-600); font-weight:700; font-size:.7rem; }
[data-bs-theme="dark"] .zb-step .n { color:var(--evergreen); }

/* ============================================================================
 * Universal search / command palette (Alt+G) — livewire/command-palette
 * ========================================================================== */
.zb-cmd-modal { background:rgba(20,35,30,.45); }
[data-bs-theme="dark"] .zb-cmd-modal { background:rgba(0,0,0,.6); }
.zb-cmd-dialog { max-width:620px; margin:8vh auto 0; padding:0 1rem; }
.zb-cmd {
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card);
    box-shadow:var(--shadow-md); overflow:hidden;
}
.zb-cmd-search { display:flex; align-items:center; gap:.6rem; padding:.85rem 1rem; border-bottom:1px solid var(--line); }
.zb-cmd-search > .ti { font-size:1.15rem; color:var(--faint); flex:0 0 auto; }
.zb-cmd-input { flex:1 1 auto; border:0; outline:none; background:transparent; color:var(--ink); font-size:1rem; }
.zb-cmd-input::placeholder { color:var(--faint); }
.zb-cmd-loading { color:var(--evergreen); display:inline-flex; }
.zb-cmd-search .btn-close { flex:0 0 auto; }

.zb-cmd-results { max-height:min(56vh,420px); overflow-y:auto; padding:.35rem; }
.zb-cmd-cat { font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); padding:.6rem .75rem .3rem; }
.zb-cmd-row {
    display:flex; align-items:center; gap:.7rem; padding:.5rem .75rem; border-radius:9px;
    text-decoration:none; color:inherit; cursor:pointer;
}
.zb-cmd-row.zb-cmd-active { background:var(--evergreen-tint); }
[data-bs-theme="dark"] .zb-cmd-row.zb-cmd-active { background:var(--evergreen-tint); }
.zb-cmd-ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; flex:0 0 auto; }
.zb-cmd-ic .ti { font-size:1rem; }
.zb-cmd-text { min-width:0; flex:1 1 auto; display:flex; flex-direction:column; line-height:1.25; }
.zb-cmd-text .t { font-weight:600; font-size:.9rem; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-cmd-text .s { font-size:.76rem; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-cmd-enter { color:var(--faint); font-size:.95rem; opacity:0; flex:0 0 auto; }
.zb-cmd-row.zb-cmd-active .zb-cmd-enter { opacity:1; color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-cmd-row.zb-cmd-active .zb-cmd-enter { color:var(--evergreen); }
.zb-cmd-empty { padding:1.75rem 1rem; text-align:center; color:var(--muted); font-size:.86rem; }
.zb-cmd-foot { display:flex; gap:1.1rem; padding:.55rem 1rem; border-top:1px solid var(--line); background:var(--surface-2); font-size:.72rem; color:var(--muted); }
.zb-cmd-foot .zb-kbd { margin-right:.15rem; }

@media (max-width:576px){ .zb-cmd-dialog { margin-top:4vh; padding:0 .5rem; } }

/* ============================================================================
 * Onboarding wizard (livewire/onboarding-wizard) — steps, path cards, preview
 * ========================================================================== */
.zb-wiz-steps { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.zb-wiz-step { display:inline-flex; align-items:center; gap:.5rem; font-size:.82rem; color:var(--faint); font-weight:600; }
.zb-wiz-step .n { display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%;
    background:var(--surface-2); border:1px solid var(--line); color:var(--faint); font-size:.72rem; }
.zb-wiz-step.active { color:var(--ink); }
.zb-wiz-step.active .n { background:var(--evergreen); border-color:var(--evergreen); color:#fff; }
.zb-wiz-step.done { color:var(--muted); }
.zb-wiz-step.done .n { background:var(--evergreen-tint); border-color:transparent; color:var(--evergreen-600); }
[data-bs-theme="dark"] .zb-wiz-step.done .n { color:var(--evergreen); }
.zb-wiz-step:not(:last-child)::after { content:""; width:26px; height:1px; background:var(--line); display:inline-block; margin-left:.25rem; }

.zb-path-card {
    display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; width:100%; height:100%;
    text-align:left; padding:1.25rem; border:1px solid var(--line); border-radius:var(--radius-card);
    background:var(--surface); cursor:pointer; transition:.12s;
}
.zb-path-card:hover { border-color:var(--evergreen); background:var(--surface-2); }
.zb-path-card.selected { border-color:var(--evergreen); box-shadow:0 0 0 3px rgba(var(--evergreen-rgb), .15); }
.zb-path-ic { width:44px; height:44px; border-radius:11px; display:grid; place-items:center; }
.zb-path-ic .ti { font-size:1.4rem; }
.zb-path-card .t { font-family:var(--font-display); font-weight:600; font-size:1.1rem; color:var(--ink); }
.zb-path-card .s { font-size:.84rem; color:var(--muted); line-height:1.45; }

.zb-prev-row { display:flex; align-items:center; gap:.5rem; padding:.35rem 0; font-size:.85rem; border-top:1px solid var(--line); }
.zb-prev-row:first-child { border-top:0; }
.zb-prev-row .ti { font-size:.95rem; flex:0 0 auto; }

/* ============================================================================
 * Polish: consistent empty states + type tag pill (whole-app consistency pass)
 * ========================================================================== */
.zb-empty { text-align:center; padding:2.5rem 1.25rem; }
.zb-empty-ic { width:52px; height:52px; border-radius:14px; display:inline-grid; place-items:center;
    background:var(--surface-2); border:1px solid var(--line); color:var(--faint); margin-bottom:.85rem; }
.zb-empty-ic .ti { font-size:1.5rem; }
.zb-empty h3 { font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:var(--ink); margin-bottom:.3rem; }
.zb-empty p { color:var(--muted); font-size:.86rem; margin:0 auto 1rem; max-width:26rem; line-height:1.5; }

/* Small tinted tag (reuses the .zb-tint-* backgrounds for voucher types etc.) */
.zb-tag { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600;
    padding:.15rem .5rem; border-radius:6px; white-space:nowrap; }

/* ============================================================================
 * Searchable-select / combobox (components/searchable-select.blade.php)
 * ========================================================================== */
.zb-combo { position:relative; }
.zb-combo-control { position:relative; display:flex; align-items:center; }
.zb-combo-input { padding-right:2.1rem !important; }
.zb-combo-control.is-invalid .zb-combo-input { border-color:var(--rust); }
.zb-combo-chevron {
    position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
    display:grid; place-items:center; width:1.5rem; height:1.5rem; border:0; border-radius:6px;
    background:transparent; color:var(--faint); cursor:pointer;
}
.zb-combo-chevron:hover { color:var(--ink); background:var(--surface-2); }
.zb-combo-chevron .ti { font-size:1rem; }

.zb-combo-panel {
    position:absolute; z-index:1085; left:0; right:0; margin-top:.3rem;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-control);
    box-shadow:var(--shadow-md); max-height:19rem; overflow-y:auto; padding:.3rem;
    scroll-behavior:smooth; overscroll-behavior:contain; /* Tally-style always-visible list */
}
.zb-combo-opt {
    display:flex; align-items:center; gap:.55rem; padding:.4rem .55rem; border-radius:8px;
    cursor:pointer; color:var(--ink);
}
.zb-combo-opt.active { background:var(--evergreen-tint); }
[data-bs-theme="dark"] .zb-combo-opt.active { background:var(--evergreen-tint); }
.zb-combo-opt-text { min-width:0; display:flex; flex-direction:column; line-height:1.25; }
.zb-combo-opt-text .t { font-weight:500; font-size:.88rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-combo-opt-text .s { font-size:.74rem; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.zb-combo-tint { width:8px; height:8px; border-radius:3px; flex:0 0 auto; }
.zb-combo-create { color:var(--evergreen-600); font-weight:600; font-size:.85rem; }
[data-bs-theme="dark"] .zb-combo-create { color:var(--evergreen); }
.zb-combo-create.active { background:var(--evergreen-tint); }
.zb-combo-empty { padding:.9rem .55rem; text-align:center; color:var(--muted); font-size:.82rem; }

/* Sidebar/topbar hidden in print (reports) */
@media print {
    .zb-sidebar, .zb-topbar, .zb-hintbar, .zb-toast-host { display:none !important; }
    .zb-content { margin-left:0 !important; }

    /* Reports: ink-frugal — flatten the coloured bands/tints to black-on-white,
       drop interactive chevrons/arrows/pills. Keeps the serif totals. */
    .zb-report-total, .zb-tb-foot, .zb-net, .zb-grp-body, .zb-grp-head:hover, .zb-sub:hover {
        background:#fff !important;
    }
    .zb-report-total .lab, .zb-report-total .val,
    .zb-tb-foot .bt .l, .zb-tb-foot .bt .n,
    .zb-tb-total td.l, .zb-tb-total td.n,
    .zb-net, .zb-net .lab, .zb-report-side,
    .zb-grp-head, .zb-grp-total, .zb-sub, .zb-sub-val { color:#000 !important; }
    .zb-chev, .zb-chev-leaf, .zb-sub-val .ti, .zb-pill { display:none !important; }
    .zb-grp, .zb-sub, .zb-report-total, .zb-tb-foot, .zb-tb-total td, .zb-net { border-color:#ccc !important; }
    .zb-tb-total td { background:#fff !important; }
}
