/*! Khatabahi Books — © 2026 Khatabahi Taxpert Solution Pvt. Ltd. All rights reserved. Developed by Khatabahi Taxpert Solution Pvt. Ltd. Unauthorised copying, reverse engineering or redistribution is prohibited. */
/* Khatabahi Books v1.2.0 — final theme "Hara Hisaab" (direction B) + desktop left sidebar (direction C).
   Loaded after app.css; overrides tokens and components. Fonts self-hosted in assets/fonts/ (OFL). Keep CSP: no external loads. */
/* ===== Direction B — "Hara Hisaab": a bold move to money-green. White header, green hero, big friendly tiles with
   coloured icon circles, Plus Jakarta Sans. Navy survives only as ink, gold only in the wordmark. ===== */
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/PlusJakartaSans.woff) format("woff");font-weight:200 800;font-display:swap}
:root{
 --font:"Plus Jakarta Sans","KB Devanagari",-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
 --p:#0E7C5B;--p2:#0A6349;--pt:#FFFFFF;
 --acc:#0E7C5B;--acc2:#0A6349;--acc-ink:#FFFFFF;--acc-text:#0A6349;--accsoft:#DDF3E8;
 --bg:#F3F6F4;--bg2:#E9EEEB;--card:#FFFFFF;--input-bg:#FAFBFA;
 --ink:#14201B;--ink2:#2B3A33;--muted:#5C6B64;--line:#E2E8E4;--line2:#CBD5CF;
 --ok:#15803D;--okbg:#DCFCE7;--err:#C62828;--errbg:#FDE8E8;--warn:#9A5B00;--warnbg:#FFF1D6;--info:#1D5BD6;--infobg:#E6EEFC;
 --r:16px;--rs:12px;--rl:22px;
 --sh:0 1px 2px rgba(20,32,27,.04),0 8px 24px rgba(20,32,27,.06);--sh2:0 12px 36px rgba(20,32,27,.14);--btn-sh:0 1px 1px rgba(20,32,27,.04);--p-sh:0 6px 18px rgba(14,124,91,.35);
 --focus:0 0 0 4px rgba(14,124,91,.25);
 --top-bg:#FFFFFF;--top-ink:#14201B;--top-ink2:#5C6B64;--top-accent:#0E7C5B;--top-accent-ink:#FFFFFF;--top-pill:#EEF3F0;--top-pill-line:#E2E8E4;--top-pill-hover:#DDF3E8;--top-line:1px solid #E2E8E4;--top-sh:none;
 --nav-bg:#FFFFFF;
 --hero-bg:linear-gradient(135deg,#0E7C5B 0%,#0A5E45 100%);--hero-ink:#FFFFFF;--hero-muted:#E3F5EC;--hero-num:#FFFFFF;--hero-sh:0 16px 40px rgba(14,124,91,.35);--hero-border:0;
 --ic:#0E7C5B;--ic-bg:#DDF3E8;
 --c1:#0E7C5B;--c1bg:#DDF3E8;--c2:#C2410C;--c2bg:#FFE9DC;--c3:#1D5BD6;--c3bg:#E6EEFC;--c4:#C62828;--c4bg:#FDE8E8;--c5:#6D28D9;--c5bg:#EFE8FD;--c6:#0F766E;--c6bg:#DDF4F1;
 --th-bg:#F6F8F7;--row-hover:#F0F7F3;--tot-bg:#F6F8F7;
 --auth-bg:#0A5E45 radial-gradient(1000px 700px at 50% -20%,#15996F 0%,#0A5E45 60%,#07402F 100%) no-repeat;--auth-sh:0 30px 80px rgba(0,0,0,.35);--auth-border:0;--auth-foot:#BFE6D5;
 --bn-bg:#FFFFFF;--bn-line:#E2E8E4;--bn-ink:#5C6B64;--bn-on:#0E7C5B;--bn-on-bg:#DDF3E8;--bn-new:#0E7C5B;--bn-new-ink:#FFFFFF;--bn-new-sh:0 8px 20px rgba(14,124,91,.45);
 --navy:var(--p);--navy2:var(--p2);--navy3:#15996F;--navyink:var(--ink);--gold:#C9A227;--gold2:#B8921E;--goldtext:#7A5F0B;--goldsoft:#FBF3D9;--goldline:#E7D28A;--okline:#B5DCC1;--warnline:#EFD28A;--errline:#F1B6BD;--teal:#0F766E;--tealbg:#DDF4F1;--plum:#6D28D9;--plumbg:#EFE8FD;
}

/* ===== Shared structural layer (same in every direction): type scale, touch targets, mobile bottom nav,
   dashboard hero, quick-entry tiles, report tables, forms. Colours/shapes come from the direction's tokens. ===== */
@font-face{font-family:"KB Devanagari";src:url(fonts/NotoSansDevanagari.woff) format("woff");font-weight:100 900;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+A8E0-A8FF,U+25CC}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);font-size:15.5px;line-height:1.5;color:var(--ink);background:var(--bg);font-feature-settings:"tnum" 0}
.num,.tile .v,.hero .v,.chip .v,.stickytotal b,td.num,.tbl .r{font-variant-numeric:tabular-nums lining-nums}
h1{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:var(--ink)}h2{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:1.4rem 0 .6rem}h3{color:var(--ink2)}
h1 small,h2 small{font-weight:500;color:var(--muted);font-size:.8rem}
.wrap{max-width:1180px;padding:18px 16px 120px}
a{color:var(--p2)}
/* header */
.top{background:var(--top-bg);color:var(--top-ink);border-bottom:var(--top-line);box-shadow:var(--top-sh);padding:0 16px;min-height:58px;gap:12px}
.top .brand a{color:var(--top-ink);font-size:1.1rem;font-weight:800;letter-spacing:-.01em}.top .brand span{color:var(--top-accent)}
.top .brand a::before{background:var(--top-accent)}
.top .bizname{background:var(--top-pill);border-color:var(--top-pill-line);color:var(--top-ink);font-weight:600;padding:6px 12px}.top .bizname:hover{background:var(--top-pill-hover);color:var(--top-ink)}
.top .fy{background:var(--top-accent);color:var(--top-accent-ink)}
.top .user a{color:var(--top-ink2);padding:8px 10px;border-radius:var(--rs)}.top .user a:hover{color:var(--top-ink);background:var(--top-pill)}.top .uname{color:var(--top-ink)}
/* desktop section nav */
.biznav{background:var(--nav-bg);border-bottom:1px solid var(--line);box-shadow:none}
.biznav a{color:var(--muted);font-weight:600;padding:13px 14px 11px;font-size:.92rem;display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid transparent}
.biznav a .ni{width:1.05em;height:1.05em;opacity:.8}.biznav a:hover{color:var(--ink)}.biznav a.on{color:var(--p);border-bottom-color:var(--p)}.biznav a.modesw{color:var(--muted);font-weight:500}
.navcue{color:var(--muted);background:linear-gradient(90deg,transparent,var(--nav-bg) 60%)}
.foot{color:var(--muted);font-size:.78rem;padding:28px 14px}
/* page head */
.pagehead{margin-bottom:14px;gap:10px}.pagehead h1{min-width:160px}
/* buttons: 44px+ targets */
.btn{min-height:42px;padding:9px 16px;border-radius:var(--rs);border:1px solid var(--line2);background:var(--card);color:var(--ink);font-weight:600;font-size:.95rem;box-shadow:var(--btn-sh)}
.btn:hover{background:var(--bg2);border-color:var(--line2);color:var(--ink)}
.btn.primary{background:var(--p);border-color:var(--p);color:var(--pt);box-shadow:var(--p-sh)}.btn.primary:hover{background:var(--p2);border-color:var(--p2);color:var(--pt)}
.btn.gold,.btn.on{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);box-shadow:none}.btn.gold:hover,.btn.on:hover{background:var(--acc2);color:var(--acc-ink)}
.btn.sm{min-height:34px;padding:5px 12px;font-size:.85rem}.btn.big{padding:16px 18px;font-size:1.05rem;border-radius:var(--r)}
.btn.danger{background:var(--err);border-color:var(--err);color:#fff}.btn.wa{background:#1d9e57;border-color:#1d9e57}
.fysw select,.filters input,.filters select{min-height:42px;border:1px solid var(--line2);border-radius:var(--rs);background:var(--card);color:var(--ink);font-family:inherit;font-size:.95rem;padding:8px 12px}
.fysw select{font-weight:700;color:var(--ink)}
/* quick entry tiles */
.quick{gap:12px;margin:8px 0 18px}
.quick .btn.big{flex-direction:column;gap:10px;padding:18px 12px 16px;min-width:120px;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh);font-size:1rem;color:var(--ink);border-radius:var(--r)}
.quick .btn.big svg{width:1.5rem;height:1.5rem;padding:11px;box-sizing:content-box;border-radius:50%;background:var(--ic-bg);color:var(--ic)}
.quick .btn.big:hover{border-color:var(--line2);box-shadow:var(--sh2);transform:translateY(-1px)}
.quick .btn.big.on{background:var(--p);color:var(--pt);border-color:var(--p)}.quick .btn.big.on svg{background:rgba(255,255,255,.18);color:var(--pt)}
.quick .btn.big:nth-child(1) svg{background:var(--c1bg);color:var(--c1)}.quick .btn.big:nth-child(2) svg{background:var(--c2bg);color:var(--c2)}.quick .btn.big:nth-child(3) svg{background:var(--c3bg);color:var(--c3)}.quick .btn.big:nth-child(4) svg{background:var(--c4bg);color:var(--c4)}.quick .btn.big:nth-child(5) svg{background:var(--c5bg);color:var(--c5)}.quick .btn.big:nth-child(n+6) svg{background:var(--c6bg);color:var(--c6)}
.quick.small .btn{background:var(--card);box-shadow:var(--btn-sh)}.quick.small .btn svg{color:var(--p)}
/* dashboard hero */
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin:4px 0 12px}
.hero .hm{background:var(--hero-bg);color:var(--hero-ink);border-radius:var(--rl);padding:22px 24px 20px;box-shadow:var(--hero-sh);position:relative;overflow:hidden;border:var(--hero-border)}
.hero .hm .k{font-size:.9rem;font-weight:600;color:var(--hero-muted);letter-spacing:.01em}
.hero .hm .v{font-size:2.5rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:6px 0 10px;color:var(--hero-num)}
.hero .hm .s{font-size:.9rem;color:var(--hero-muted)}.hero .hm .s b{color:var(--hero-ink);font-weight:700;margin-left:4px}
.hero .hs{display:grid;grid-template-rows:1fr 1fr;gap:12px}
.chip{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--sh)}
.chip .k{font-size:.8rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}.chip .k svg{width:1.05em;height:1.05em;color:var(--p)}
.chip .v{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-top:2px}.chip.neg .v{color:var(--err)}
/* tiles */
.tiles{gap:12px;margin:0 0 6px}.tiles.three{grid-template-columns:repeat(3,1fr)}
.tile{border:1px solid var(--line);border-left-width:1px;border-radius:var(--r);padding:16px 18px;box-shadow:var(--sh);background:var(--card)}
.tile .k{font-size:.82rem;color:var(--muted);font-weight:600;gap:8px}.tile .k svg{width:1.6em;height:1.6em;padding:6px;box-sizing:content-box;border-radius:50%}
.tile .v{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-top:8px;color:var(--ink)}.tile .s{font-size:.78rem;margin-top:3px;color:var(--muted)}
.tile.in .k svg{background:var(--okbg);color:var(--ok)}.tile.in .v{color:var(--ok)}
.tile.out .k svg{background:var(--errbg);color:var(--err)}.tile.out .v{color:var(--err)}
.tile.gst .k svg{background:var(--infobg);color:var(--info)}.tile.gst .v{color:var(--ink)}.tile .v.neg{color:var(--ok)}
.tile.gold,.tile.sales,.tile.cash{border-left-color:var(--line)}
a.tile:hover{box-shadow:var(--sh2);border-color:var(--line2)}
/* cards */
.card{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh);padding:16px 18px}.card .t{color:var(--ink)}
.cards .card::before{background:var(--acc)}a.card:hover,.card.biz:hover{border-color:var(--p);box-shadow:var(--sh2)}
/* flash */
.flash{border-radius:var(--rs);padding:12px 14px 12px 42px;font-size:.93rem}.flash::before{top:13px}
.flash.ok{background:var(--okbg);color:var(--ok);border-color:transparent}.flash.warn{background:var(--warnbg);color:var(--warn);border-color:transparent}.flash.err{background:var(--errbg);color:var(--err);border-color:transparent}.flash.info{background:var(--infobg);color:var(--info);border-color:transparent}
/* forms */
.form label{color:var(--ink2);font-size:.88rem;font-weight:600;margin-bottom:14px}
.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea{min-height:48px;padding:11px 14px;border:1.5px solid var(--line2);border-radius:var(--rs);background:var(--input-bg);font-size:1rem;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--p);box-shadow:var(--focus);background:var(--card)}
.form input[readonly]{background:var(--bg2)}
.form fieldset{border-color:var(--line);border-radius:var(--r);background:var(--card)}.form legend{color:var(--p)}
.form small{font-weight:400;color:var(--muted)}
.seg{border:1.5px solid var(--line2);border-radius:var(--rs);background:var(--input-bg)}.seg label{padding:11px 20px;min-height:46px}.seg label:has(input:checked){background:var(--p);color:var(--pt)}
.bigin{font-size:1.6rem!important;font-weight:800}
.simple h3{border-bottom:0;font-size:.95rem;color:var(--muted);text-transform:none;margin-top:1.4rem}
.fl{color:var(--muted);font-size:.72rem}
.tbl.lines input,.tbl.lines select{min-height:44px;border:1.5px solid var(--line2);border-radius:var(--rs);background:var(--input-bg)}.tbl.lines input:focus{border-color:var(--p);box-shadow:var(--focus)}
.tbl.simplelines tr.line{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;padding:10px}
.tbl.simplelines,.tbl.lines{background:transparent;border:0;box-shadow:none}
.tbl.simplelines tr.tot td,.tbl.lines tr.tot td{background:transparent!important;border-top:1px solid var(--line2);color:var(--ink);font-size:1.05rem}
.x{color:var(--muted)}.x:hover{color:var(--err);background:var(--errbg)}
.actions.sticky{background:linear-gradient(transparent,var(--bg) 35%)}.actions.sticky .btn.big{min-height:54px;font-size:1.08rem;border-radius:var(--r)}
.stickytotal{color:var(--muted);font-weight:500}.stickytotal b{color:var(--ink);font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
/* tables */
.tbl{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);font-size:.9rem;background:var(--card)}
.tbl th{background:var(--th-bg);color:var(--muted);font-size:.72rem;letter-spacing:.06em;font-weight:700;border-bottom:1px solid var(--line2);padding:10px 12px}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line)}
.tbl tbody tr:nth-child(even) td{background:transparent}.tbl tbody tr:hover td{background:var(--row-hover)}
.tbl td a{color:var(--ink);font-weight:600}.tbl td a:hover{color:var(--p)}
.tbl td.num,.tbl th.r{font-variant-numeric:tabular-nums}
.tbl tr.tot td{background:var(--tot-bg)!important;border-top:2px solid var(--ink);color:var(--ink);font-weight:800}
.tbl tr.dayhead td{background:var(--bg2)!important;color:var(--ink2);font-weight:700;font-size:.8rem;letter-spacing:.04em}
.tag{background:var(--bg2);color:var(--ink2);padding:2px 9px;font-size:.72rem}.tag.red{background:var(--errbg);color:var(--err)}.tag.green{background:var(--okbg);color:var(--ok)}.tag.gold{background:var(--accsoft);color:var(--acc-text)}.tag.amber{background:var(--warnbg);color:var(--warn)}
.tw{border-radius:var(--r)}
.empty{border:1.5px dashed var(--line2);background:var(--card);padding:40px 20px;border-radius:var(--r);color:var(--muted);font-size:1rem}
.steps li{border-color:var(--line);color:var(--muted)}.steps li.on{background:var(--p);border-color:var(--p);color:var(--pt)}
.prog>i{background:var(--p)}
pre{background:var(--ink);color:#eef1f6}
.dlgbox{border-radius:var(--rl)}.savestate{background:var(--ink);color:#fff}
details.hist{border-color:var(--line);border-radius:var(--r)}
.dropzone{border-color:var(--line2);border-radius:var(--r)}
/* auth */
.authpage{background:var(--auth-bg)}
.authbox{border-top:0;border-radius:var(--rl);box-shadow:var(--auth-sh);padding:32px 30px;max-width:420px;margin:56px auto;border:var(--auth-border)}
.authbox h1{font-size:1.15rem;margin:0 0 14px;color:var(--ink)}
.logo{font-size:1.75rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;display:flex;align-items:center;justify-content:center;gap:10px}.logo .gold{color:var(--acc-text)}
.logo::before{content:'';width:34px;height:34px;border-radius:10px;background:var(--acc);flex:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h11a3 3 0 0 1 3 3v13H7a3 3 0 0 1-3-3z'/%3E%3Cpath d='M8 8h6M8 12h6'/%3E%3C/svg%3E") center/24px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h11a3 3 0 0 1 3 3v13H7a3 3 0 0 1-3-3z'/%3E%3Cpath d='M8 8h6M8 12h6'/%3E%3C/svg%3E") center/24px no-repeat}
.tagline{color:var(--muted);margin:4px 0 22px;font-size:.85rem}
.authbox .btn.primary{min-height:50px;font-size:1.05rem;margin-top:4px}.authbox .links{margin-top:16px}.authbox .links a{color:var(--p2);font-weight:600;text-decoration:none}
.authpage .foot,.authpage .foot a{color:var(--auth-foot)}
/* bottom nav (mobile only) */
.bottomnav{display:none}
@media (max-width:760px){
 body{font-size:16px}
 .wrap{padding:14px 16px 110px}
 .top{position:sticky;top:0;min-height:56px;padding:0 14px}.top .bizname{font-size:.95rem;max-width:52vw}.top .user a{padding:8px 8px;font-size:.85rem}
 .biznav{position:relative;background:transparent;border-bottom:0;padding:8px 0 0}.biznav .inner{gap:6px;padding:0 12px 8px}
 .biznav a{padding:7px 12px;font-size:.82rem;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink2);border-bottom:1px solid var(--line)}.biznav a.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.biznav a .ni{display:none}.biznav a.modesw{margin-left:0}
 .navcue{display:none!important}
 .pagehead h1{font-size:1.35rem;flex-basis:100%}.pagehead h1 small{display:block;margin:2px 0 0;font-size:.78rem}
 .hero{grid-template-columns:1fr;gap:10px}.hero .hm{padding:20px 20px 18px}.hero .hm .v{font-size:2.3rem}.hero .hs{grid-template-rows:none;grid-template-columns:1fr 1fr;gap:10px}
 .chip{padding:12px 14px}.chip .v{font-size:1.15rem}
 .tiles.three{grid-template-columns:1fr 1fr}.tiles.three .tile:last-child{grid-column:span 2}
 .tile{padding:14px 14px}.tile .v{font-size:1.3rem}
 .quick .btn.big{min-width:calc(50% - 6px);padding:16px 10px 14px}
 .actions.sticky{background:var(--card);border-top:1px solid var(--line);padding:10px 16px 10px;box-shadow:0 -6px 24px rgba(0,0,0,.08)}
 body:has(.bottomnav) .actions.sticky{bottom:calc(74px + env(safe-area-inset-bottom))}
 .tbl{display:block;overflow-x:auto;white-space:nowrap;border-radius:var(--r);-webkit-overflow-scrolling:touch}
 .tbl.rpt{display:block;white-space:nowrap;table-layout:auto}.tbl.rpt th,.tbl.rpt td{padding:10px 10px;font-size:.86rem;word-break:normal}.tbl.rpt td.num,.tbl.rpt th.r{width:auto}
 .tbl:not(.lines) th:first-child,.tbl:not(.lines) td:first-child{position:sticky;left:0;background:var(--card);z-index:1;box-shadow:inset -1px 0 0 var(--line)}
 .tbl:not(.lines) th:first-child{background:var(--th-bg)}.tbl tbody tr:hover td:first-child{background:var(--row-hover)}.tbl tr.tot td:first-child{background:var(--tot-bg)!important}
 .filters{gap:8px}.filters input[type=date]{flex:1;min-width:140px}.filters select{flex:1;min-width:120px}.filters .btn{min-width:64px}
 .pagehead .actions .btn{min-height:40px;padding:8px 12px;font-size:.9rem}
 .authbox{margin:24px 14px;padding:26px 20px}
 .bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--bn-bg);border-top:1px solid var(--bn-line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px rgba(0,0,0,.08)}
 .bottomnav .bn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;text-decoration:none;color:var(--bn-ink);font-size:.7rem;font-weight:600;border-radius:12px}
 .bottomnav .bn .bi{width:40px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:999px}.bottomnav .bn svg{width:22px;height:22px;stroke-width:2}
 .bottomnav .bn.on{color:var(--bn-on)}.bottomnav .bn.on .bi{background:var(--bn-on-bg)}
 .bottomnav .bn.new .bi{width:54px;height:54px;border-radius:50%;background:var(--bn-new);color:var(--bn-new-ink);margin-top:-22px;box-shadow:var(--bn-new-sh);border:4px solid var(--bn-bg)}.bottomnav .bn.new svg{width:28px;height:28px;stroke-width:2.6}
 .bottomnav .bn.new{color:var(--bn-on)}
 .savestate{bottom:84px}
}
@media (min-width:761px){.wrap{padding-bottom:80px}.form.simple{max-width:860px}.authbox{max-width:440px}}
@media print{.bottomnav,.biznav,.top{display:none!important}}

/* ===== direction B component styling (after the shared layer so it wins) ===== */
.top .brand span{color:#9C7B12}.top .brand a::before{background:#0E7C5B}
.logo .gold{color:#9C7B12}.logo::before{background:#0E7C5B}
.hero .hm{border-radius:24px}
.hero .hm::before{content:'';position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.hero .hm::after{content:'';position:absolute;right:40px;bottom:-90px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.06)}
.hero .hm .s b{background:rgba(255,255,255,.16);padding:3px 10px;border-radius:999px;margin-left:6px}
.quick .btn.big{border-radius:18px;font-weight:700}
.btn.primary{border-radius:14px}
.biznav a.on{color:var(--p);border-bottom-color:var(--p)}
.tile .v{color:var(--ink)}
.authbox{background:#fff;margin-top:64px}.authpage .logo,.authbox h1{color:var(--ink)}
.tbl tr.tot td{border-top:2px solid var(--p)}
/* mobile: one green "hisaab" card holds sales + cash + bank (glass chips) */
@media (max-width:760px){
 .hero{background:linear-gradient(135deg,#0E7C5B 0%,#0A5E45 100%);border-radius:24px;padding:6px;gap:0;box-shadow:0 16px 40px rgba(14,124,91,.35)}
 .hero .hm{box-shadow:none;border-radius:18px;background:transparent}
 .hero .hs{padding:0 10px 10px;gap:8px}
 .chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);box-shadow:none;backdrop-filter:blur(4px)}
 .chip .k{color:#E3F5EC}.chip .k svg{color:#E3F5EC}.chip .v{color:#fff}.chip.neg .v{color:#FFD5D5}
 .top{background:#FFFFFF;border-bottom:1px solid var(--line)}
 .biznav a.on{background:var(--p);border-color:var(--p);color:#fff}
}

/* ===== desktop (≥1024px): left sidebar workspace (direction C), coloured with the B tokens ===== */
@media (min-width:1024px){
 .top{position:fixed;left:0;right:0;top:0;z-index:25;min-height:54px}
 .biznav{position:fixed;left:0;top:54px;bottom:0;width:224px;z-index:24;border-right:1px solid var(--line);border-bottom:0;overflow:auto;padding:12px 10px}
 .biznav .inner{flex-direction:column;gap:2px;padding:0;overflow:visible}
 .biznav a{padding:9px 12px;border-radius:8px;border-bottom:0;font-size:.9rem;font-weight:500;color:var(--ink2);gap:10px}.biznav a .ni{width:1.15em;height:1.15em;opacity:.75}
 .biznav a:hover{background:var(--bg2)}.biznav a.on{background:var(--accsoft);color:var(--p2);font-weight:600}.biznav a.on .ni{opacity:1}
 .biznav a.modesw{margin:auto 0 0;color:var(--muted);font-size:.82rem;border-top:1px solid var(--line);border-radius:0;padding-top:14px}
 .navcue{display:none!important}
 body:has(.biznav) .wrap{margin-left:224px;max-width:none;padding:74px 32px 60px}
 body:has(.biznav) .foot{margin-left:224px}
 body:not(:has(.biznav)) main.wrap{padding-top:74px}
 .pagehead{padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:18px}
 .hero{grid-template-columns:1.2fr 1fr}
}

/* ===== v1.2.0 pages: charges table, series settings, received-now ===== */
.tbl.lines#charges select,.tbl.lines#items select{min-width:120px}.tbl.lines#charges input.camt{min-width:96px}
details.card{padding:12px 16px}details.card summary{cursor:pointer;font-weight:700;color:var(--ink2);min-height:32px;display:flex;align-items:center;gap:8px}details.card[open] summary{margin-bottom:10px}
#numhint{display:block;color:var(--muted)}
@media (min-width:1024px){.tbl.lines{display:table}}
@media print{.tbl.lines{display:table}}
/* v1.2.0 mobile: charge rows stack like item rows, every stacked input gets its column name as a small label */
@media (max-width:760px){
 .tbl.lines tr.cline{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:8px 6px;border-bottom:1px solid var(--line)}.tbl.lines tr.cline td{border:0;padding:2px}.tbl.lines tr.cline td:nth-child(2){grid-column:span 3}
 .tbl.lines td[data-l]::before{content:attr(data-l);display:block;font-size:.7rem;color:var(--muted);margin:0 0 2px 2px}
 .tbl.lines td.taxable::before,.tbl.lines td.tax::before{display:inline}
 .tbl.lines td.ctax{align-self:end}
 .vtypes .btn{min-height:38px}
}
/* v1.2.0: inputs inside plain tables (series settings, opening balances) get the same look as form fields, compact */
.tbl:not(.lines) td input:not([type=checkbox]):not([type=radio]),.tbl:not(.lines) td select{min-height:38px;padding:6px 10px;border:1.5px solid var(--line2);border-radius:10px;font:inherit;font-size:.92rem;background:var(--input-bg);color:var(--ink)}
.tbl:not(.lines) td input:focus,.tbl:not(.lines) td select:focus{border-color:var(--p);box-shadow:var(--focus);outline:0}
.tbl:not(.lines) td input[type=checkbox]{width:20px;height:20px;accent-color:var(--p)}
.form input[type=checkbox],.chk input{accent-color:var(--p);width:20px;height:20px}

/* ===== v1.2.1 — review fixes P1 / P3 / UI list 5 ===== */
/* P1: the sticky first column of report tables is capped (max 40 % of the screen, ellipsis) so the amount columns stay
   visible; tables that contain inputs (opening balances, series settings …) never get a sticky column — nothing may cover
   a field the user has to type in. */
@media (max-width:760px){
 .tbl:not(.lines) td:first-child:not([colspan]),.tbl:not(.lines) th:first-child:not([colspan]){max-width:40vw;overflow:hidden;text-overflow:ellipsis}
 .tbl:not(.lines):has(td input,td select) th:first-child,.tbl:not(.lines):has(td input,td select) td:first-child{position:static;max-width:none;overflow:visible;box-shadow:none}
 body:has(.bottomnav):has(.actions.sticky) .wrap{padding-bottom:calc(170px + env(safe-area-inset-bottom))}
}
/* P1: opening balances on a phone — one card per ledger: name, group, then amount + Dr/Cr side by side */
@media (max-width:640px){
 .tbl.obmain{display:block;border:0;box-shadow:none;background:transparent;white-space:normal;overflow:visible}
 .tbl.obmain>thead{display:none}
 .tbl.obmain>tbody{display:block}
 .tbl.obmain>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:4px 10px;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 14px;margin:0 0 10px;box-shadow:var(--sh)}
 .tbl.obmain>tbody>tr>td{display:block;border:0;padding:0;position:static;max-width:none;overflow:visible;background:transparent!important;white-space:normal;text-align:left}
 .tbl.obmain>tbody>tr>td:nth-child(1){grid-column:1/-1;font-weight:700;color:var(--ink);font-size:.98rem}
 .tbl.obmain>tbody>tr>td:nth-child(2){grid-column:1/-1;font-size:.8rem;margin:-2px 0 6px}
 .tbl.obmain>tbody>tr>td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;font-weight:600;color:var(--muted);margin:0 0 3px 2px}
 .tbl.obmain>tbody>tr>td input,.tbl.obmain>tbody>tr>td select{width:100%;min-height:46px;font-size:1rem;box-sizing:border-box}
 .tbl.obmain>tbody>tr.obbills{display:block;padding:0;border:0;box-shadow:none;background:transparent;margin:-4px 0 12px}
 .tbl.obmain>tbody>tr.obbills>td{padding:0 4px}
 .tbl.obmain>tbody>tr.tot{border:1.5px solid var(--p)}
 .tbl.obtbl{display:block;border:0;box-shadow:none;background:transparent;white-space:normal;overflow:visible}
 .tbl.obtbl>thead{display:none}.tbl.obtbl>tbody{display:block}
 .tbl.obtbl>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 8px;padding:8px 0;border-bottom:1px solid var(--line)}
 .tbl.obtbl>tbody>tr>td{display:block;border:0;padding:0;position:static;max-width:none;overflow:visible;white-space:normal;text-align:left;background:transparent!important}
 .tbl.obtbl>tbody>tr>td:nth-child(3){grid-column:1/-1}
 .tbl.obtbl td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--muted);margin:0 0 2px 2px}
 .tbl.obtbl td input{width:100%;box-sizing:border-box}
}
/* UI 5: vouchers list on a phone — compact card rows, amount always visible */
@media (max-width:640px){
 .tbl.vlist{display:block;white-space:normal;overflow:visible}
 .tbl.vlist>thead{display:none}.tbl.vlist>tbody{display:block}
 .tbl.vlist>tbody>tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"n n a" "p p p" "d t e";gap:2px 10px;padding:10px 12px;border-bottom:1px solid var(--line)}
 .tbl.vlist>tbody>tr>td{display:block;border:0;padding:0;position:static;max-width:none;overflow:visible;background:transparent!important;white-space:normal;box-shadow:none}
 .tbl.vlist>tbody>tr>td:nth-child(1){grid-area:d;font-size:.8rem;color:var(--muted)}
 .tbl.vlist>tbody>tr>td:nth-child(2){grid-area:t;font-size:.8rem;color:var(--muted)}
 .tbl.vlist>tbody>tr>td:nth-child(3){grid-area:n;font-weight:700}
 .tbl.vlist>tbody>tr>td:nth-child(4){grid-area:p;overflow-wrap:anywhere}
 .tbl.vlist>tbody>tr>td:nth-child(5){grid-area:a;font-weight:800;text-align:right;white-space:nowrap}
 .tbl.vlist>tbody>tr>td:nth-child(6){grid-area:e;text-align:right;font-size:.85rem}
}
/* UI 5: series settings — grouped cells so the table fits at 1366 px beside the sidebar */
.sertbl td{vertical-align:top}
.sertbl label{display:block;margin:0;font-weight:600;font-size:.85rem;color:var(--ink2)}
.sertbl .sl{display:block;font-size:.7rem;font-weight:600;color:var(--muted);margin:0 0 2px 2px}
.sstack{display:grid;gap:6px;min-width:228px}.sstack select{width:100%}
.sgrid{display:grid;grid-template-columns:minmax(6.5em,8.5em) 4.2em minmax(4.5em,6.5em) 6em;gap:6px}
.sgrid input{width:100%;box-sizing:border-box}
.sertbl .swarn{color:var(--warn);font-size:.8rem;font-weight:600;max-width:240px;white-space:normal;margin-top:4px}
.sertbl td.nowrap{white-space:nowrap}.sertbl .chk{display:inline-flex;align-items:center;gap:6px;margin-right:6px}
@media (max-width:760px){
 .tbl.sertbl{display:block;white-space:normal;overflow:visible;border:0;box-shadow:none;background:transparent}
 .tbl.sertbl>thead{display:none}.tbl.sertbl>tbody{display:block}
 .tbl.sertbl>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin:0 0 10px;box-shadow:var(--sh)}
 .tbl.sertbl>tbody>tr>td{display:block;border:0;padding:0;position:static;max-width:none;overflow:visible;background:transparent!important;box-shadow:none}
 .sgrid{grid-template-columns:1fr 1fr}.sstack{min-width:0}.sertbl .swarn{max-width:none}
}
/* P3: Simple-mode bar waits until the form reaches it (assets/app.js toggles .kb-wait); extra room so the last fields
   are never hidden behind bar + bottom tab bar */
@media (max-width:760px){
 .actions.sticky.simplebar{transition:transform .18s ease,opacity .18s ease}
 .actions.sticky.simplebar.kb-wait{transform:translateY(calc(100% + 96px));opacity:0;visibility:hidden;pointer-events:none}
 body:has(.actions.sticky.simplebar) .wrap{padding-bottom:calc(240px + env(safe-area-inset-bottom))}
}
/* P3: a field reached with Tab / Enter is scrolled clear of the sticky bar (and of bar + bottom tab bar on phones) */
html{scroll-padding-bottom:72px}
@media (max-width:760px){html:has(.actions.sticky){scroll-padding-bottom:210px}}
/* P3: desktop — slim sticky bar at the bottom of the form (keyboard hint now sits below the form) */
@media (min-width:761px){
 .actions.sticky{padding:8px 0;margin-top:12px;background:var(--bg);box-shadow:0 -1px 0 var(--line);align-items:center}
 .actions.sticky .btn{min-height:40px}.actions.sticky .btn.big{min-height:44px;padding:8px 22px}
}
.keyhint{font-size:.8rem;margin:6px 0 0}
@media (max-width:760px){.keyhint{display:none}}
/* UI 5: Pro item table at 1024–1499 px — compact cells so Account and × stay on screen */
@media (min-width:1024px) and (max-width:1499px){
 .tbl.lines#items th,.tbl.lines#items td{padding:6px 4px}
 .tbl.lines#items th{font-size:.66rem;letter-spacing:.03em}
 .tbl.lines#items input.desc{min-width:150px}
 .tbl.lines#items input,.tbl.lines#items select{padding-left:7px;padding-right:5px;font-size:.88rem}
 .tbl.lines#items input.hsn{width:5.2em}.tbl.lines#items input.qty{width:4.2em}.tbl.lines#items input.unit{width:4.8em}
 .tbl.lines#items input.rate{width:6em}.tbl.lines#items input.disc{width:4.8em}.tbl.lines#items input.discpct{width:3.8em}.tbl.lines#items input.gst{width:4.4em}
 .tbl.lines#items select{min-width:0}.tbl.lines#items select.taxcat{width:6.6em}.tbl.lines#items select.acc{width:9em}
 .tbl.lines#items td.taxable,.tbl.lines#items td.tax{font-size:.85rem}
}

/* ===== v1.3.0 — help search, Suggestion button, More sheet, suggestions, GST returns, terms, footer ===== */
.sr{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0);white-space:nowrap;border:0!important}
.top .ctxsp{flex:1}
.top .hsearch{position:relative;display:flex;align-items:center;flex:0 1 340px;min-width:160px;margin:0}
.top .hsearch input{width:100%;min-height:40px;border:1.5px solid var(--line2);border-radius:999px;background:var(--input-bg);color:var(--ink);font:inherit;font-size:.9rem;padding:7px 64px 7px 36px}
.top .hsearch input:focus{outline:0;border-color:var(--p);box-shadow:var(--focus);background:var(--card)}
.top .hsearch .hs-ico{position:absolute;left:12px;width:17px;height:17px;color:var(--muted);pointer-events:none}
.top .hsearch .hk{position:absolute;right:10px;font:600 .68rem/1 var(--font);color:var(--muted);border:1px solid var(--line2);border-radius:6px;padding:4px 6px;background:var(--card);pointer-events:none}
.top .hicons{display:flex;align-items:center;gap:4px}
.top .hicons .hi{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-radius:var(--rs);color:var(--top-ink2);text-decoration:none;font-size:.86rem;font-weight:600}
.top .hicons .hi:hover{background:var(--top-pill);color:var(--top-ink)}.top .hicons .hi svg{width:20px;height:20px}
.top .hicons .js-helpbtn{display:none}
.top .hicons .sugbtn{border:1px solid var(--line2);background:var(--card);color:var(--p2)}
@media (max-width:1180px) and (min-width:761px){.top .hicons .sugbtn .hl{display:none}.top .hsearch{flex-basis:240px}}
@media (max-width:760px){
 .top .hsearch{display:none}.top .hicons .js-helpbtn{display:inline-flex}.top .hicons .hi{padding:6px 8px}.top .hicons .sugbtn .hl{display:none}.top .hicons .sugbtn{border:0;background:transparent}
 body:has(.bottomnav) .top .hicons{display:none}
}
/* help overlay */
body.dlgopen{overflow:hidden}
.helpdlg{position:fixed;inset:0;z-index:60;background:rgba(20,32,27,.42);display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px}
.helpdlg[hidden],.moresheet[hidden]{display:none}
.helpdlg .hd-in{background:var(--card);width:min(680px,100%);max-height:80vh;display:flex;flex-direction:column;border-radius:var(--rl);box-shadow:var(--sh2);overflow:hidden}
.helpdlg .hd-top{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.helpdlg .hd-top svg{width:20px;height:20px;color:var(--p);flex:none}
.helpdlg .hd-top input{flex:1;min-width:0;border:0!important;outline:0;box-shadow:none!important;font:inherit;font-size:1.05rem;min-height:44px;background:transparent;color:var(--ink)}
.helpdlg .hd-hint{margin:8px 16px 4px;font-size:.8rem}
.helpdlg .hd-res{list-style:none;margin:0;padding:6px 8px 10px;overflow:auto}
.helpdlg .hd-res li{padding:12px 12px;border-radius:var(--rs);border:1px solid transparent;margin:2px 0}
.helpdlg .hd-res li b{display:block;color:var(--ink);font-size:.98rem}.helpdlg .hd-res li p{margin:4px 0 8px;color:var(--ink2);font-size:.9rem;line-height:1.45}
.helpdlg .hd-res li.on{background:var(--accsoft);border-color:#B5DCC1}
.helpdlg .hd-res li.more{padding:8px 12px;font-size:.86rem}.helpdlg .hd-res li.none p{margin:0 0 10px}
@media (max-width:760px){.helpdlg{padding:0}.helpdlg .hd-in{max-height:none;height:100%;border-radius:0;width:100%}}
.hlist{list-style:none;padding:0;margin:0;display:grid;gap:10px}.hlist p{margin:6px 0 10px;color:var(--ink2)}
.hexamples{display:flex;flex-wrap:wrap;gap:8px}.filters.hpage input[type=search]{flex:1;min-width:0}
/* phone More sheet */
.moresheet{position:fixed;inset:0;z-index:55;background:rgba(20,32,27,.42);display:flex;align-items:flex-end}
.moresheet .ms-in{background:var(--card);width:100%;border-radius:22px 22px 0 0;padding:14px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--sh2);max-height:85vh;overflow:auto}
.moresheet .ms-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.moresheet .ms-h b{font-size:1.05rem}
.moresheet .ms-search input{width:100%;min-height:48px;border:1.5px solid var(--line2);border-radius:999px;padding:10px 16px;font:inherit;background:var(--input-bg);color:var(--ink);box-sizing:border-box}
.moresheet .ms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.moresheet .ms-i{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);font-size:.8rem;font-weight:600;text-align:center;padding:8px 4px}
.moresheet .ms-i svg{width:22px;height:22px;color:var(--p)}.moresheet .ms-i.sug{background:var(--accsoft);border-color:#B5DCC1}
/* suggestions */
.sgform{max-width:760px}.form .sgkind{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:auto;min-width:0;max-width:520px;margin:0 0 14px;padding:0}.form .sgkind label{justify-content:center;padding:10px 6px;margin:0;min-width:0;text-align:center;gap:6px}
.sgdrop{border:2px dashed var(--line2);border-radius:var(--r);padding:14px 16px;margin:4px 0 14px;background:var(--input-bg)}.sgdrop.over{border-color:var(--p);background:var(--accsoft)}
.sgdrop p{margin:0 0 10px}.sgbtns{display:flex;flex-wrap:wrap;gap:8px}.sgbtns .btn{cursor:pointer;display:inline-flex;align-items:center;gap:6px}.sgbtns .btn svg{width:18px;height:18px}
.sgbtns .btn:focus-within{box-shadow:var(--focus);border-color:var(--p)}
.sgprev{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.sgprev li{position:relative;width:112px;border:1px solid var(--line);border-radius:12px;padding:6px;background:var(--card);display:flex;flex-direction:column;gap:4px}
.sgprev img{width:100%;height:72px;object-fit:cover;border-radius:8px;display:block}.sgprev .pdf{height:72px;display:flex;align-items:center;justify-content:center;background:var(--bg2);border-radius:8px;font-weight:800;color:var(--muted)}
.sgprev small{font-size:.68rem;color:var(--muted);word-break:break-all;line-height:1.25}.sgprev .x{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;border:1px solid var(--line2);background:var(--card);font-size:1rem;cursor:pointer}
.sgmsg{color:var(--err);font-size:.85rem;margin:8px 0 0;min-height:1em}.sgctx{font-size:.82rem}
.sglist{display:grid;gap:8px}.sgrow{display:block;text-decoration:none}.sgrow .t{font-weight:700;color:var(--ink)}.sgrow .m{color:var(--muted);font-size:.85rem;margin-top:4px}
.tag.st-new{background:var(--infobg);color:var(--info)}.tag.st-working{background:var(--warnbg);color:var(--warn)}.tag.st-done{background:var(--okbg);color:var(--ok)}.tag.st-later{background:var(--bg2);color:var(--ink2)}.tag.st-notdoing{background:var(--errbg);color:var(--err)}
.sgone .pre{white-space:normal;word-break:break-word}.sgthumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.sgthumbs img{width:160px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.sgpdf{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid var(--line);border-radius:10px}
.tbl.kv td:first-child{color:var(--muted);width:30%}
/* GST returns */
.grtop{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}.grtop .filters{margin:0}
.grtabs{display:flex;flex-wrap:wrap;gap:6px}.grtabs a{padding:8px 12px;border:1px solid var(--line2);border-radius:999px;text-decoration:none;color:var(--ink2);font-weight:600;font-size:.88rem;background:var(--card)}.grtabs a:hover{border-color:var(--p);color:var(--p2)}
section.card{margin-bottom:16px}section.card[id]{scroll-margin-top:80px}
.grchecks td:nth-child(3){min-width:280px}.grchecks tr.lv-err td{background:#FFF7F7}
.grdl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.grdl .flash{flex-basis:100%;margin:0 0 4px}
.g2bup{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 0 12px}.g2bup label{margin:0}.g2bup small{flex-basis:100%}
.g2btiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 14px}.g2btiles .tile{text-decoration:none;color:var(--ink)}.g2btiles .tile .v{margin-top:4px}
.g2btiles .g2b-matched .v{color:var(--ok)}.g2btiles .g2b-mismatch .v{color:var(--warn)}.g2btiles .g2b-only2b .v,.g2btiles .g2b-onlybooks .v{color:var(--err)}
.g2bmark{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.g2bmark select{min-width:120px}.g2bmark input{min-width:120px;flex:1}
details.g2bb{margin:10px 0}
@media (max-width:760px){
 .g2btiles{grid-template-columns:1fr 1fr}
 .grtop{flex-direction:column;align-items:stretch}.grtabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.grtabs a{white-space:nowrap}
 .grchecks,.g2btbl{display:block}.grchecks thead,.g2btbl thead{display:none}
 .grchecks tr,.g2btbl tr{display:grid;grid-template-columns:1fr;gap:4px;padding:10px 8px;border-bottom:1px solid var(--line)}.grchecks td,.g2btbl td{border:0!important;padding:2px 0!important;max-width:none!important;min-width:0!important;white-space:normal!important;overflow:visible!important;position:static!important}
 .g2btbl td.r{text-align:left}
 .g2btbl td[data-l]:not(:empty)::before{content:attr(data-l);display:block;font-size:.7rem;color:var(--muted);font-weight:600}
 .g2btbl td[data-l]:empty{display:none}
}
/* terms + footer */
.terms{max-width:860px;margin:0 auto;line-height:1.6}.terms h1{font-size:1.35rem}.terms h2{margin-top:1.3rem}.terms ul{padding-left:1.2rem}.terms li{margin:4px 0}
body.termspage .terms{background:var(--card);color:var(--ink);margin:24px auto}
.foot{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:center;text-align:center;line-height:1.5}.foot .cr{flex-basis:100%}
@media (max-width:760px){body:has(.bottomnav) .foot{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}
@media print{.helpdlg,.moresheet,.hsearch,.hicons{display:none!important}}
/* v1.3.2: search box above long ledger dropdowns */
.selfilter{display:block;width:100%;box-sizing:border-box;min-height:36px;margin:0 0 4px;padding:6px 10px;border:1px solid var(--line2);border-radius:var(--rs);background:var(--card);color:var(--ink);font:inherit;font-size:.88rem}
/* v1.3.2: ledgers / items list on a phone - card rows, name + Edit always visible */
@media (max-width:640px){
 .tbl.mlist{display:block;white-space:normal;overflow:visible}
 .tbl.mlist>thead{display:none}.tbl.mlist>tbody{display:block}
 .tbl.mlist>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 12px;border-bottom:1px solid var(--line)}
 .tbl.mlist>tbody>tr>td{display:block;border:0;padding:0;position:static;background:transparent!important;box-shadow:none;white-space:normal;grid-column:1;font-size:.82rem;color:var(--muted);text-align:left}
 .tbl.mlist>tbody>tr>td:first-child{font-size:1rem;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
 .tbl.mlist>tbody>tr>td:last-child{grid-column:2;grid-row:1;text-align:right;font-size:.9rem;font-weight:600}
 .tbl.mlist>tbody>tr>td:empty{display:none}
}
@media (max-width:640px){.tbl.mlist>tbody>tr>td[data-l]{display:inline-block;grid-column:1}.tbl.mlist>tbody>tr>td[data-l]::before{content:attr(data-l) ": ";font-weight:600}}
@media (max-width:640px){
 .tbl.mlist>tbody>tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
 .tbl.mlist>tbody>tr>td{box-shadow:none!important;order:2}
 .tbl.mlist>tbody>tr>td:first-child{order:0;flex:1 0 70%;max-width:none!important;position:static;overflow:visible}
 .tbl.mlist>tbody>tr>td:last-child{order:1;flex:0 0 auto;margin-left:auto}
}
/* v1.4.0: stock reports, adjustments, opening stock, computed-vs-manual panel */
.stockpanel{padding:12px 16px}.stockpanel .sp-row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.stockpanel .sp-row:last-of-type{border-bottom:0}.stockpanel .sp-row form.inline{display:inline}.stockpanel p{margin:8px 0 0}
.tbl tr.neg td{color:var(--err)}.tbl tr.neg td a{color:var(--err)}
.filters.stockflt .muted{font-size:.82rem}
.tbl.mlist>tbody>tr>td.aonhand:empty{display:none}
@media (max-width:640px){
 .tbl.mlist.stocktbl>tbody>tr>td:last-child{grid-column:1;grid-row:auto;text-align:left;font-size:.95rem;order:2;margin-left:0}
 .tbl.mlist.stocktbl>tbody>tr>td br{display:none}
 .tbl.mlist.sotbl>tbody>tr>td:last-child{order:2;margin-left:0;flex:1 0 100%;text-align:left}
 .tbl.mlist.sotbl>tbody>tr>td input{width:100%;max-width:160px}
 .tbl.lines#adjitems .aonhand:empty{display:none}
}
@media (max-width:760px){
 .tbl.lines tr.aline{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:4px;padding:8px 6px;border-bottom:1px solid var(--line)}.tbl.lines tr.aline td{border:0;padding:2px}
 .tbl.lines tr.aline td:first-child{grid-column:1/-1}.tbl.lines tr.aline td.avalue{align-self:end}
}
@media (max-width:640px){.tbl.mlist.stocktbl>tfoot{display:none}}
/* ===== v1.5.0: keyboard-only use (Tally-style). Hints and rings show on a PC / laptop only; phones look as before. ===== */
:focus-visible{outline:2px solid var(--p);outline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible,.btn:focus-visible{outline:2.5px solid var(--p);outline-offset:2px;box-shadow:0 0 0 5px rgba(14,124,91,.18)}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible,.tbl.lines input:focus-visible,.tbl.lines select:focus-visible,.filters input:focus-visible,.filters select:focus-visible{outline:2px solid var(--p);outline-offset:1px;border-color:var(--p);box-shadow:0 0 0 4px rgba(14,124,91,.22)}
kbd.kh{display:inline-block;font:600 .66rem/1.2 var(--font);color:var(--muted);border:1px solid var(--line2);border-bottom-width:2px;border-radius:5px;padding:2px 5px;margin-left:6px;background:var(--card);vertical-align:middle;white-space:nowrap;letter-spacing:0}
.btn.primary kbd.kh,.btn.on kbd.kh,.biznav a.on kbd.kh{color:inherit;background:transparent;border-color:currentColor;opacity:.85}
@media (max-width:760px),(pointer:coarse){kbd.kh,.kbonly{display:none!important}}
/* rows of reports and lists: the focused row is highlighted (arrows move, Enter opens) */
.tbl:not(.lines) tbody tr:focus-within{background:var(--accsoft)}
.tbl:not(.lines) tbody tr:focus-within td{background:transparent}
.tbl:not(.lines) tbody tr:focus-within a:focus-visible{outline-offset:1px}
/* overlays: key list, Gateway, Yes / No */
.kbov .kb-in{max-width:880px;width:min(880px,100%)}.kbov .hd-top b{display:flex;align-items:center;gap:8px;flex:1;font-size:1.02rem}.kbov .hd-top svg{width:20px;height:20px;color:var(--p)}
.kbov .kb-body{overflow:auto;padding:4px 16px 16px}
.kbgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:4px 22px}
.kbsec h3{margin:12px 0 6px;font-size:.92rem;color:var(--p2)}
.kbtbl{width:100%;border-collapse:collapse;font-size:.88rem}.kbtbl th{text-align:left;font-weight:500;padding:5px 10px 5px 0;vertical-align:top;width:38%;white-space:normal}.kbtbl td{padding:5px 0;color:var(--ink2);vertical-align:top;border-bottom:1px solid var(--line)}.kbtbl tr:last-child td{border-bottom:0}
.kbtbl kbd,.kbgo-list kbd{display:inline-block;min-width:1.5em;text-align:center;font:700 .74rem/1.3 var(--font);color:var(--ink);background:var(--bg);border:1px solid var(--line2);border-bottom-width:2px;border-radius:6px;padding:2px 6px;margin:1px 3px 1px 0}
.kbpage{padding:6px 16px 14px}
.kb-go{max-width:720px}.kbgo-cols{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}.kbgo-cols h3{margin:10px 0 4px;font-size:.88rem;color:var(--p2)}
.kbgo-list{list-style:none;margin:0;padding:0}.kbgo-list a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--rs);text-decoration:none;color:var(--ink)}
.kbgo-list a:hover,.kbgo-list a:focus-visible{background:var(--accsoft)}.kbgo-list a span{flex:1}.kbgo-list a small{font-size:.72rem}
@media (max-width:640px){.kbgo-cols{grid-template-columns:1fr}}
.kb-ask{max-width:460px;padding:20px 20px 16px}.kb-ask .kb-q{font-weight:600;font-size:1rem;margin:0 0 16px;color:var(--ink)}.kb-ask .actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
/* typed date (desktop): text box + calendar button; the browser date field stays underneath for the calendar and the form value */
.kbdatew{position:relative;display:flex;align-items:stretch;gap:4px;min-width:0}.filters .kbdatew{display:inline-flex}
.kbdatew input.kbdate{flex:1;min-width:0;width:100%;font-variant-numeric:tabular-nums}.filters .kbdatew input.kbdate{width:9.5em;flex:none}
.kbdatew .kbcal{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;border:1.5px solid var(--line2);border-radius:var(--rs);background:var(--card);color:var(--p);cursor:pointer;padding:0}
.kbdatew .kbcal svg{width:18px;height:18px}
.kbdatew input.kbdate-native{position:absolute;right:0;bottom:0;width:40px;height:100%;opacity:0;pointer-events:none;padding:0;margin:0;border:0;min-height:0}
input.kbdate.bad{border-color:var(--err)!important}
/* picker list (combobox) for ledgers, parties and items */
.kbpop{position:fixed;z-index:70;list-style:none;margin:2px 0 0;padding:4px;background:var(--card);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);max-height:300px;overflow:auto;font-size:.9rem}
.kbpop[hidden]{display:none}.kbpop li{padding:7px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.kbpop li.on{background:var(--accsoft);color:var(--p2);font-weight:600}.kbpop li.none{color:var(--muted);cursor:default}.kbpop li small{color:var(--muted);margin-left:6px}
/* v1.6.0: export / e-commerce details on the Sale and Credit note forms (closed unless used) */
details.gstx{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:8px 14px;margin:10px 0}
details.gstx summary{cursor:pointer;font-weight:600;color:var(--ink2);min-height:32px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
details.gstx[open] summary{margin-bottom:8px}details.gstx .contents{display:contents}details.gstx .hidden{display:none}
details.gstx p.small{font-size:.82rem;margin:6px 0 2px}
input.upper{text-transform:uppercase}
/* v1.7.0: Tally voucher import, FS link, PDF statements */
.tile .v.sm{font-size:1rem;font-weight:700;word-break:break-all}
details.tihow,details.fsl-how,details.pdfhow{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:8px 14px;margin:10px 0}
details.tihow summary,details.fsl-how summary,details.pdfhow summary{cursor:pointer;font-weight:600;color:var(--ink2);min-height:32px;display:flex;align-items:center}
.timap select{max-width:min(320px,70vw)}.timap tr.tinew td:first-child{border-left:3px solid var(--gold)}
.ticheck td:last-child{white-space:normal;min-width:150px}
form.ticancel{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 0}form.ticancel input{width:min(190px,60vw);min-height:32px}
.keybox code{display:inline-block;word-break:break-all;background:var(--card);padding:2px 6px;border-radius:6px;font-size:.85rem;user-select:all}
.fssend .btn.big{white-space:normal;text-align:left}.fsresult svg{vertical-align:-4px}
.fslink .grid2 input{width:100%}
@media (max-width:640px){
 .timap thead,.titypes thead{display:none}
 .timap,.timap tbody,.timap tr,.timap td,.titypes,.titypes tbody,.titypes tr,.titypes td{display:block;width:100%}
 .timap tr,.titypes tr{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:8px 10px;margin:0 0 8px}
 .timap td,.titypes td{position:static!important;max-width:none!important;white-space:normal!important;overflow:visible!important;border:0!important;padding:3px 0!important;text-align:left!important;left:auto!important}
 .timap td.num::before,.titypes td.num::before{content:attr(data-l) " ";color:var(--muted)}.timap select,.titypes select,.timap .selfilter{max-width:100%;width:100%}
 .timap tr.tinew{border-left:3px solid var(--gold)}.timap tr.tinew td:first-child{border-left:0!important}
}
/* v1.8.0: ready-made ledgers */
.lshint{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;padding:10px 12px;border:1px solid var(--okline);background:var(--okbg);border-radius:var(--r);color:var(--ink)}
.lshint svg{width:1.1em;height:1.1em;color:var(--ok)}.lshint small{flex-basis:100%}
.lssafe{display:flex;gap:8px;align-items:flex-start;color:var(--ok);font-weight:600;margin:10px 0 0}.lssafe svg{flex:0 0 auto;width:1.1em;height:1.1em;margin-top:2px}
.lspick select{max-width:100%;width:min(520px,100%)}.lspick label{display:block;max-width:100%}
.lstbl td{white-space:normal}.lstbl code{font-size:.82rem;word-break:break-all}
.lssug td.lsck,.lssug th.lsck{width:40px;text-align:center}.lssug td.lsck input{width:22px;height:22px;margin:0}
.lssug td label{cursor:pointer;display:block;min-height:24px}
details.lscov{padding:10px 14px}details.lscov summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.tihead{display:inline-block;margin-top:2px;white-space:normal;line-height:1.35}
@media (max-width:640px){
 .lstbl thead{display:none}
 .lstbl,.lstbl tbody,.lstbl tr,.lstbl td{display:block;width:100%}
 .lstbl tr{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:8px 10px;margin:0 0 8px}
 .lstbl td{position:static!important;max-width:none!important;white-space:normal!important;overflow:visible!important;border:0!important;padding:3px 0!important;text-align:left!important;left:auto!important}
 .lstbl td[data-l]::before{content:attr(data-l) " ";color:var(--muted)}
 .lssug tr{display:grid;grid-template-columns:34px 1fr auto;gap:2px 8px;align-items:center}
 .lssug td.lsck{grid-row:1/span 2;width:auto}.lssug td[data-l]{grid-column:2}.lssug td.r{grid-column:3;grid-row:1/span 2}
}
/* v1.8.1: live search in lists, ledger boxes that are their own search (PC), quick edit rows */
.tbl tr[hidden]{display:none!important}
.tbl tr.lfnone td{color:var(--muted);text-align:center;padding:14px 10px;font-style:italic}
.filters input.lfbox{flex:1 1 220px;min-width:0}
select.kbsel-native{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0;pointer-events:none;overflow:hidden;clip-path:inset(50%)}
input.selfilter.kbcombo{margin:0;padding-right:30px!important;text-overflow:ellipsis;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%)!important;background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important}
input.kbcombo.kbopen{border-color:var(--p)}
.tbl.lines .kbcombo{min-width:150px;width:100%;box-sizing:border-box}
.tbl.lines#items td .kbcombo{min-width:9em}
tr[data-edit]{cursor:default}
.tbl.mlist>tbody>tr.lfnone>td{grid-column:1/-1!important;text-align:center!important;font-weight:400!important;color:var(--muted)!important}
/* v1.9.0: Tally-style voucher entry: Amount (taxable value) box, last-rate hint, Undo message, edit-master box, number-stop ticks */
.tbl.lines input.lamt{min-width:6.5em;width:100%;box-sizing:border-box;text-align:right}
.simplelines input.lamt{text-align:right;max-width:9em}
small.lrhint{display:block;color:var(--muted);font-size:.72rem;line-height:1.2;margin-top:2px;white-space:nowrap}
.kbtoast{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:70;display:flex;gap:10px;align-items:center;background:var(--ink);color:#fff;padding:8px 10px 8px 16px;border-radius:999px;box-shadow:var(--sh2);font-size:.85rem;max-width:calc(100vw - 32px)}
.kbtoast[hidden]{display:none}
.kbtoast .btn{background:#fff;color:var(--ink);border-color:#fff}
@media (max-width:760px){.kbtoast{bottom:84px}}
.dlg.mdlg .dlgbox.mdbox{max-width:760px}
.mdform.grid2{gap:10px 14px}
.chkgrid{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0 10px}
.btn.wa.pulse{outline:3px solid var(--p);outline-offset:2px}
.printframe{position:fixed;right:0;bottom:0;width:2px;height:2px;border:0;opacity:0;pointer-events:none}
/* v1.9.0: formula cells: a small corner mark on a box that keeps a formula; a formula that cannot be worked out = red box */
input.fx{background-image:linear-gradient(135deg,var(--ok) 0 5px,transparent 5px)!important;background-repeat:no-repeat}
input.fxbad{border-color:var(--err)!important;background:var(--errbg)!important;color:var(--err)}

/* ===== v1.10.0: owner-approved look "Hara Hisaab + Tally with party panel" (option 7, 3 Nov 2026). Dark green header bar, green table
   headers, tabular mono figures (KB Mono = subset of IBM Plex Mono, OFL, self-hosted), Tally-style voucher screen with a party panel and a
   key strip at the bottom of PC screens. Phones keep the bottom tab bar. ===== */
@font-face{font-family:"KB Mono";src:url(fonts/KBMono-Regular.woff) format("woff");font-weight:300 550;font-display:swap}
@font-face{font-family:"KB Mono";src:url(fonts/KBMono-Bold.woff) format("woff");font-weight:551 900;font-display:swap}
:root{
 --mono:"KB Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
 --hdr:#0A5E45;--hdr-ink:#FFFFFF;--hdr-ink2:#DDF3E8;--hdr-pill:rgba(255,255,255,.14);--hdr-pill2:rgba(255,255,255,.24);--kgold:#F2C94C;
 --muted:#4A5A53;--ink2:#2B3A33;--line:#DCE4DF;--line2:#B9C6BF;
 --th-bg:#0E7C5B;--th-ink:#FFFFFF;--row-hover:#F1FAF5;--tot-bg:#F1FAF5;
 --r:12px;--rs:9px;--rl:16px;
 --top-bg:#0A5E45;--top-ink:#FFFFFF;--top-ink2:#DDF3E8;--top-pill:rgba(255,255,255,.14);--top-pill-line:transparent;--top-pill-hover:rgba(255,255,255,.24);--top-line:0;
}
body{font-size:15.5px}
/* figures: tabular mono in tables, totals and amount boxes */
.num,td.num,.tbl td.num,.tbl th.num,input.num,.tbl.lines input.num,.lamt,.vtotbar b,#vs_no,.pp-list b,.pp-t b{font-family:var(--mono);font-variant-numeric:tabular-nums lining-nums}
input.num,.tbl.lines input.num,.tbl.lines input.lamt{font-weight:500}
.tile .v,.chip .v,.hero .hm .v{letter-spacing:-.01em}
/* header bar */
.top{background:var(--hdr);color:var(--hdr-ink);border-bottom:0;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.top .brand a{color:var(--hdr-ink);font-size:1.06rem;gap:10px}
.top .brand a::before{display:none}
.kbmark{width:28px;height:28px;border-radius:8px;background:#FFFFFF;color:#0A5E45!important;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;letter-spacing:0;flex:none}
.top .brand .bt{color:var(--hdr-ink)}.top .brand .bt span{color:var(--kgold)}
.top .bizname{background:transparent;border:0;color:var(--hdr-ink2);font-weight:600;padding:6px 8px}.top .bizname:hover{background:var(--hdr-pill);color:#fff}
.top .fy{background:var(--hdr-pill);color:#fff;font-weight:700;font-size:.8rem;padding:4px 10px;letter-spacing:0}
.top .hsearch input{background:var(--hdr-pill);border:1.5px solid transparent;color:#fff}
.top .hsearch input::placeholder{color:#CFE9DD;opacity:1}
.top .hsearch input:focus{background:#FFFFFF;color:var(--ink);border-color:#FFFFFF;box-shadow:0 0 0 3px rgba(242,201,76,.55)}
.top .hsearch input:focus::placeholder{color:var(--muted)}
.top .hsearch .hs-ico{color:#CFE9DD}.top .hsearch:focus-within .hs-ico{color:var(--muted)}
.top .hsearch .hk{background:transparent;color:var(--hdr-ink2);border-color:rgba(255,255,255,.4)}.top .hsearch:focus-within .hk{color:var(--muted);border-color:var(--line2)}
.top .hicons .hi{color:var(--hdr-ink2)}.top .hicons .hi:hover{background:var(--hdr-pill);color:#fff}
.top .hicons .sugbtn{border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff}.top .hicons .sugbtn:hover{background:var(--hdr-pill2)}
.top .user a{color:var(--hdr-ink2)}.top .user a:hover{color:#fff;background:var(--hdr-pill)}.top .uname{color:#fff}
.top a:focus-visible,.top .hi:focus-visible{outline:2.5px solid var(--kgold);outline-offset:2px;box-shadow:none}
@media (max-width:760px){.top{background:var(--hdr);border-bottom:0}}
@media print{.top{display:none!important}}
/* side menu stays white; active item #DDF3E8 */
.biznav a.on{background:#DDF3E8;color:#064A36}
/* tables: green header row, clearer rows */
.tbl{font-size:.95rem;border-color:var(--line)}
.tbl thead th,.tbl>tr:first-child>th{background:var(--th-bg);color:var(--th-ink);font-size:.78rem;letter-spacing:.04em;border-bottom:0;text-transform:uppercase}
.tbl thead th a{color:#fff}
.tbl td{color:var(--ink)}
.tbl tbody tr:hover td{background:var(--row-hover)}
.tbl tr.dayhead td{background:#E8F1EC!important;color:#1F3B30}
.tbl tr.tot td{background:var(--tot-bg)!important;border-top:2px solid #0E7C5B;color:#0A3F2F}
.tbl.lines thead th{background:var(--th-bg);color:#fff}
.tbl.lines thead th:first-child{border-radius:10px 0 0 0}.tbl.lines thead th:last-child{border-radius:0 10px 0 0}
@media (max-width:760px){.tbl:not(.lines) thead th:first-child{background:var(--th-bg)}}
@media print{.tbl thead th{background:#E8F1EC!important;color:#000!important}}
/* cards and tiles share one shape */
.card,.tile,.chip{border-radius:var(--r);border-color:var(--line)}
.btn{border-radius:10px}.btn.primary{border-radius:10px}
.pagehead h1{font-size:1.4rem}

/* ===== voucher form (Pro): Tally-style header strip, party box, item sub-line, tax rows, total bar ===== */
.vtop{display:flex;flex-direction:column;gap:12px;margin:0 0 12px;min-width:0}
.vstrip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}
.vs-l{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.vtbadge{background:#0E7C5B;color:#fff;padding:5px 14px;border-radius:8px;font-weight:800}
.vsno{font-weight:700}.vsno b{font-weight:600}
.gstbadge{font-size:.82rem;background:#DDF3E8;color:#064A36;padding:3px 10px;border-radius:999px;font-weight:700}
.gstbadge.alt{background:#FFF1D6;color:#7A4800}
.vsdate{font-weight:700}.vsdate .w{color:var(--muted);font-weight:500}
.vhead{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 2px}
.vtop details.gstx{margin:0}
.vparty select#party,.vparty input.kbcombo{border:2px solid #0E7C5B!important;background-color:#F1FAF5!important;font-weight:800}
.pinfo{display:block;font-size:.8rem;font-weight:600;color:var(--ink2);margin-top:3px;min-height:1em}
.isub{display:block;font-size:.76rem;line-height:1.3;color:var(--muted);margin:3px 2px 0;white-space:normal;max-width:30em}
.isub.low{color:#8A4F00;font-weight:600}
.tbl.lines#items tbody td{vertical-align:top}.tbl.lines#items tbody td.tax{padding-top:16px}
.tbl.lines tfoot tr.taxrow td.r:first-child{font-style:italic;color:var(--ink2)}
.vnarr{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px 0;margin:12px 0}
.vnarr label{flex:1 1 320px;min-width:0}
.vtotbar{margin:0 0 14px auto;font-weight:800;font-size:1.3rem;color:#0A6349;white-space:nowrap}
.vtotbar span{font-family:var(--mono);font-weight:600;font-size:1.05rem;color:var(--ink2)}
#savebtn{font-weight:800}
/* Party details panel: beside the voucher header on wide PC screens (the item table keeps the full width below) */
.ppanel{display:none}
}
.ppanel .pp-body{display:flex;flex-direction:column;gap:10px}
.ppanel .pp-name{margin:0;font-size:1rem;font-weight:800;color:var(--ink);overflow-wrap:anywhere}
.ppanel .pp-sub{margin:0;font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.ppanel .pp-empty{margin:0;color:var(--muted);font-size:.9rem}
.ppanel .pp-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ppanel .pp-t{background:#F1FAF5;border-radius:10px;padding:8px 10px;min-width:0}
.ppanel .pp-t span{display:block;font-size:.76rem;color:var(--muted)}
.ppanel .pp-t b{display:block;font-size:.95rem;font-weight:700;overflow-wrap:anywhere}
.ppanel .pp-t.od{background:#F4F6F5}.ppanel .pp-t.od.on{background:#FFF1D6}.ppanel .pp-t.od.on span,.ppanel .pp-t.od.on b{color:#7A4800}
.ppanel h3{margin:4px 0 0;font-size:.84rem;font-weight:800;color:var(--ink2)}
.ppanel .pp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:.84rem}
.ppanel .pp-list li{display:flex;justify-content:space-between;gap:8px}.ppanel .pp-list li span{min-width:0;overflow-wrap:anywhere}.ppanel .pp-list li small{display:block;font-size:.74rem;color:var(--muted)}.ppanel .pp-list li.od small{color:#7A4800;font-weight:700}
.ppanel .pp-list li b{font-weight:600;white-space:nowrap}.ppanel .pp-list li.od b{color:#7A4800;font-weight:700}
.ppanel .pp-list li.pp-none{color:var(--muted)}
.ppanel .pp-more{margin:0;font-size:.76rem;color:var(--muted)}
.ppanel .pp-foot{margin:auto 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
@media print{.ppanel,.vstrip,.kbstrip{display:none!important}}

/* ===== bottom key strip (Tally button bar), PC only ===== */
.kbstrip{display:none}
@media (min-width:1024px){
 .kbstrip{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:26;height:40px;box-sizing:border-box;align-items:center;gap:4px;padding:5px 12px;background:var(--hdr);overflow:hidden;font-size:.84rem}
 .kbstrip .ks{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font:inherit;font-weight:500;border:0;cursor:pointer;white-space:nowrap;min-height:0;line-height:1.35}
 .kbstrip .ks b{font-weight:800}
 .kbstrip .ks:hover{background:rgba(255,255,255,.24);color:#fff}
 .kbstrip .ks.on{background:var(--kgold);color:#14201B}
 .kbstrip .ks:focus-visible{outline:2px solid var(--kgold);outline-offset:1px}
 body:has(.kbstrip) .biznav{bottom:40px}
 body:has(.kbstrip) .wrap{padding-bottom:84px}
 body:has(.kbstrip) .actions.sticky{bottom:40px}
 body:has(.kbstrip) .foot{padding-bottom:56px}
 body:has(.kbstrip) .kbtoast{bottom:56px}
}
@media (pointer:coarse){.kbstrip{display:none!important}body:has(.kbstrip) .biznav{bottom:0}}
html:has(.kbstrip){scroll-padding-bottom:112px}

/* ===== settings: invoice print ===== */
.prfmt{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;margin:0 0 12px}
.prfmt label{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line2);border-radius:var(--r);padding:12px 14px;margin:0;cursor:pointer;background:var(--card)}
.prfmt label:has(input:checked){border-color:#0E7C5B;background:#F1FAF5}
.prfmt label input{margin-top:3px;accent-color:#0E7C5B;width:18px;height:18px;flex:none}
.prfmt label b{display:block;color:var(--ink)}.prfmt label small{display:block;color:var(--muted);font-weight:500}
.prlogo{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0}
.prlogo img{max-height:56px;max-width:160px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}

/* ===== v1.10.0 (2): voucher screen as approved option 7: date and number in the strip, one party row, "More details", items right
   below, party panel full height on the right, left menu as an icon rail; Payment for this bill ===== */
.vph{gap:8px}.vph h1{font-size:1.15rem}
@media (min-width:1024px){
 .pagehead.vph{padding-bottom:8px;margin-bottom:10px}
 .pagehead.vph h1{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .pagehead.vph .actions{gap:6px}.pagehead.vph .btn.sm{min-height:30px;padding:3px 10px;font-size:.82rem}
}
.vtop{gap:10px;margin:0 0 10px}
.vstrip{flex-wrap:wrap;gap:8px 14px;padding:8px 12px;justify-content:flex-start}
.vstrip .vtbadge{order:0}
.vstrip .vs-f{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:700;color:var(--ink);font-size:.95rem}
.vstrip .vs-f>span:first-child:not(.sr){color:var(--muted);font-weight:600;font-size:.85rem}
.vstrip .vs-no{order:1}.vstrip .vs-ser{order:2}.vstrip .gstbadge{order:3}.vstrip .vs-date{order:9;margin-left:auto}
.vstrip .vs-f input:not([type=checkbox]),.vstrip .vs-f select{min-height:34px!important;padding:4px 8px!important;border:1.5px solid transparent!important;background:transparent!important;font:inherit;font-weight:700;color:var(--ink);border-radius:8px}
.vstrip .vs-f input:hover,.vstrip .vs-f select:hover{border-color:var(--line2)!important}
.vstrip .vs-f input:focus,.vstrip .vs-f select:focus{border-color:var(--p)!important;background:var(--card)!important;box-shadow:var(--focus)}
.vstrip .vs-no input{width:8em;font-family:var(--mono)}
.vstrip .vs-date .kbdatew{width:auto}.vstrip .vs-date input.kbdate{width:7.6em;flex:none}
.vstrip .vs-date .kbcal{width:32px;border:0;background:transparent}
.vstrip .vs-date .w{color:var(--muted);font-weight:500}
.vstrip .vs-f small{display:none}
button.gstbadge{border:0;cursor:pointer;font:inherit;font-size:.82rem}
button.gstbadge:hover{text-decoration:underline}
.vrow{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}
.vrow>label{margin:0;flex:1 1 200px;min-width:0}
.vrow>label.vparty{flex:2 1 320px}
.vrow .vpl{display:block;font-weight:700;color:var(--ink2);font-size:.86rem;margin-bottom:3px}
.vrow .vparty select#party,.vrow .vparty input.kbcombo{font-size:1.05rem!important;min-height:44px}
.vrow .vparty small{display:inline-block;margin-right:10px}
details.vmore{background:transparent;border:0;margin:0;padding:0}
details.vmore>summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--p2);min-height:30px;list-style:none;padding:2px 4px;border-radius:8px}
details.vmore>summary::-webkit-details-marker{display:none}
details.vmore>summary::before{content:'+';display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;background:var(--accsoft);color:var(--p2);font-weight:800}
details.vmore[open]>summary::before{content:'−'}
details.vmore>summary small{font-weight:500}
details.vmore[open]{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 14px 4px}
details.vmore .grid4{margin-top:8px}
details.vmore details.gstx{margin:6px 0}
/* full-height party panel beside the form */
@media (min-width:1180px){
 .vwrap{display:grid;grid-template-columns:minmax(0,1fr) 270px;column-gap:16px;align-items:start}
 .vwrap>#vform.haspanel{display:block;grid-column:1;grid-row:1}
 .vwrap>.keyhint{grid-column:1;grid-row:2}
 .vwrap>.ppanel{grid-column:2;grid-row:1 / span 2}
 .vwrap>.ppanel{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;position:sticky;top:66px;height:calc(100vh - 128px);overflow:auto;min-width:0}
 body.ppoff .vwrap{grid-template-columns:minmax(0,1fr)}
 body.ppoff .vwrap>.ppanel{display:none}
}
@media (pointer:coarse){.vwrap>.ppanel{display:none!important}.vwrap{display:block!important}}
.ppanel .pp-cl{margin:0;background:#F1FAF5;border-radius:10px;padding:7px 10px;font-size:.82rem;color:var(--ink2)}
.ppanel .pp-cl.over{background:#FFF1D6;color:#7A4800;font-weight:700}
/* item table: optional columns (column chooser) */
#items.hc-disc .c-disc,#items.hc-discpct .c-discpct,#items.hc-type .c-type,#items.hc-acc .c-acc{display:none}
.colbtn{border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:6px;min-width:28px;min-height:24px;font:inherit;font-weight:800;cursor:pointer;line-height:1}
.colbtn:hover,.colbtn:focus-visible{background:rgba(255,255,255,.32)}
.colpick{position:fixed;z-index:65;width:240px;background:var(--card);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.colpick[hidden]{display:none}.colpick label{margin:0;font-weight:600}.colpick small{color:var(--muted);font-size:.76rem}
/* icon rail (left menu) on voucher entry, wide PC screens */
.railbtn{display:none}
@media (min-width:1180px) and (pointer:fine){
 body.railable .railbtn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink2);font:inherit;font-size:.9rem;cursor:pointer;margin-bottom:6px}
 body.railable .railbtn:hover{background:var(--bg2)}
 body.railable:not(.railopen) .biznav{width:64px;padding:12px 8px;overflow:visible}
 body.railable:not(.railopen) .biznav a,body.railable:not(.railopen) .railbtn{justify-content:center;padding:10px 0}
 body.railable:not(.railopen) .biznav .nl{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 body.railable:not(.railopen) .biznav a.modesw{font-size:0;padding:10px 0;justify-content:center}
 body.railable:not(.railopen) .biznav a.modesw::before{content:'⇄';font-size:1.1rem}
 body.railable:not(.railopen) .biznav a .ni,body.railable:not(.railopen) .railbtn .ni{width:1.3em;height:1.3em}
 body.railable:not(.railopen) .wrap{margin-left:64px!important}
 body.railable:not(.railopen) .foot{margin-left:64px!important}
}
/* Payment for this bill */
.paybox{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:12px 0;display:flex;flex-direction:column;gap:12px}
.pb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.pb-head h2{margin:0;font-size:1rem;font-weight:800}.pb-head h2 span{color:var(--p2);margin-left:6px}
.pb-seg{display:inline-flex;flex-wrap:wrap;border:1.5px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--card)}
.form .pb-seg label,.pb-seg label{display:inline-flex;flex-direction:row;white-space:nowrap;align-items:center;gap:6px;margin:0;padding:7px 14px;font-weight:700;font-size:.92rem;color:var(--ink);cursor:pointer;min-height:40px}
.pb-seg label+label{border-left:1px solid var(--line2)}
.pb-seg label:has(input:checked){background:#0E7C5B;color:#fff;font-weight:800}
.pb-seg input{accent-color:#fff;margin:0;width:16px;height:16px;min-height:0!important}
.pb-due small{display:inline;font-weight:500;color:var(--muted)}
.pb-seg label:has(input:focus-visible){outline:2.5px solid var(--kgold);outline-offset:-3px}
.paybox.pb-closed .pb-body{display:none}
.pb-body{display:flex;flex-direction:column;gap:12px}
.pb-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.pb-row>*{flex:1 1 180px;min-width:0;margin:0}
.paybox [data-show]{display:none}
.paybox[data-st=full] [data-show~=full],.paybox[data-st=part] [data-show~=part],.paybox[data-st=credit] [data-show~=credit]{display:flex}
.paybox .pb-row label[data-show],.paybox .pb-cr[data-show]{flex-direction:column;gap:4px;font-weight:700;font-size:.86rem}
.paybox[data-st=full] .pb-row{display:none}
.pb-cr b{display:block;font-size:1.05rem;padding:9px 10px;border-radius:8px;background:#FFF1D6;color:#7A4800}
.pb-in{flex-wrap:wrap;align-items:flex-end;gap:10px 14px}
.pb-in .pb-lbl{flex-basis:100%;font-weight:700;font-size:.86rem;color:var(--ink2)}
.pb-pick{display:none;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
.paybox[data-mode=bank] .pb-pick[data-mode=bank],.paybox[data-mode=upi] .pb-pick[data-mode=upi]{display:flex}
.pb-pick label{margin:0;font-weight:700;font-size:.86rem}
.pb-one{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:2px solid #0E7C5B;border-radius:8px;font-weight:700}.pb-one small{color:var(--muted);font-weight:600}
.pb-none{color:var(--warn);font-weight:600}
.pb-ticks{flex-wrap:wrap;gap:6px 18px;align-items:center}.pb-ticks label{margin:0}.pb-int{color:var(--muted);font-size:.86rem}
.pb-note{margin:0;font-size:.82rem;color:var(--muted)}
.pb-err{margin:0;color:var(--err);font-weight:700}.pb-err[hidden]{display:none}
@media (max-width:760px){.pb-seg{display:flex;flex-wrap:nowrap;width:100%}.form .pb-seg label,.pb-seg label{flex:1 1 0;min-width:0;justify-content:center;text-align:center;white-space:normal;line-height:1.2;padding:8px 4px;font-size:.84rem}.pb-head h2{flex-basis:100%}}
/* dashboard: payments due */
.duecard .dc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.duecard .dc-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--line)}
.duecard .dc-list li:last-child{border-bottom:0}
.duecard .dc-when{font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accsoft);color:#064A36}
.duecard .dc-when.today{background:#FFF1D6;color:#7A4800}.duecard .dc-when.overdue{background:var(--errbg);color:var(--err)}
.duecard .dc-p{flex:1 1 200px;min-width:0;font-weight:700}.duecard .dc-p small{display:block;font-weight:500;color:var(--muted)}
.duecard .dc-a{font-family:var(--mono);font-weight:700}
/* Bank & UPI page */
.butbl td .star{color:#9C7B12;font-weight:800}
/* v1.10.0 (3): cleanest voucher screen: charges / TCS / ship-to folded, help as a "?" popover, tighter spacing, no keys line on PC,
   light placeholder for an empty party panel, the sticky bar never hides the end of the form */
details.vxtra{margin:4px 0 10px;padding:0;border:0;background:transparent}
details.vxtra>summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--p2);min-height:30px;list-style:none;padding:2px 4px;border-radius:8px}
details.vxtra>summary::-webkit-details-marker{display:none}
details.vxtra[open]{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 14px 6px}
details.vxtra .vship{display:block;margin:6px 0 4px}
.vaddl{margin:6px 0 2px}.vaddc{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px}
details.qhelp{position:relative;display:inline-block}
details.qhelp>summary{list-style:none;cursor:pointer;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line2);display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--p2);background:var(--card)}
details.qhelp>summary::-webkit-details-marker{display:none}
details.qhelp .qh-pop{position:absolute;z-index:40;left:0;top:30px;width:min(420px,80vw);background:var(--card);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);padding:10px 12px;font-size:.82rem;color:var(--ink2);line-height:1.45}
@media (min-width:761px){.vwrap>.keyhint,#vform~.keyhint{display:none}}
.kbstrip .ks[data-kskey=keys]{margin-left:auto}
#vform{padding-bottom:12px}
@media (min-width:761px){#vform .actions.sticky{margin-top:6px}html:has(#vform){scroll-padding-bottom:120px}}
@media (min-width:1024px){
 .vtop{gap:8px;margin-bottom:8px}.vstrip{padding:6px 12px}.vrow{padding:8px 14px}
 .vrow .vparty select#party,.vrow .vparty input.kbcombo{min-height:42px}
 .tbl.lines#items tfoot td{padding-top:4px;padding-bottom:4px}
 .tbl.lines#items tbody td{padding-top:5px;padding-bottom:5px}
 .vnarr{margin:8px 0;padding-top:8px}.vnarr textarea{min-height:44px}
 .paybox{margin:8px 0}
 .pagehead.vph{margin-bottom:8px;padding-bottom:6px}
}
.ppanel .pp-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--muted);font-size:.86rem;padding:8px 4px}
.ppanel .pp-empty .pp-ico{width:30px;height:30px;color:#9FB3A8}
@media (min-width:1180px){.vwrap>.ppanel.pp-isempty{height:auto;background:transparent;border:1.5px dashed var(--line2);box-shadow:none}.vwrap>.ppanel.pp-isempty .pp-foot{margin-top:6px}}

/* ===== v1.11.0: "Galti pakdo" (checks), rules screen, "Mahina band" (month close), "Bank milaan" (bank reconciliation) ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--p2);margin:0 0 10px;font-weight:800}
.small{font-size:.82rem}
.tag.blue{background:var(--infobg);color:var(--info)}
.sevtag{display:inline-block;border-radius:999px;padding:2px 11px;font-size:.78rem;font-weight:700;line-height:1.6;white-space:nowrap}
.sev-laal{background:var(--errbg);color:#A61B1B}.sev-peela{background:var(--warnbg);color:#7A4700}.sev-jaankari{background:var(--infobg);color:#174AB0}.sev-ok{background:var(--okbg);color:#11652F}
.chkhead,.mchead{align-items:flex-start;justify-content:space-between}.chkhead h1,.mchead h1{margin:0}.chksub{margin:2px 0 0}
.chkhead .actions,.mchead .mcnav{display:flex;gap:8px;flex-wrap:wrap}
.chkfilter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px}.chkfilter label{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}
.chktabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.chktabs .ct{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:12px;border:1px solid var(--line2);background:var(--card);color:var(--ink);font-weight:700;text-decoration:none;min-height:44px}
.chktabs .ct b{font-weight:800}.chktabs .ct-laal{background:var(--errbg);border-color:var(--errbg);color:#A61B1B}.chktabs .ct-peela{background:var(--warnbg);border-color:var(--warnbg);color:#7A4700}.chktabs .ct-jaankari{background:var(--infobg);border-color:var(--infobg);color:#174AB0}
.chktabs .ct.on{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 0 0 3px rgba(14,124,91,.18)}
.chktabs .ct:focus-visible{outline:3px solid var(--p);outline-offset:2px}
.chkgrid,.mcgrid,.bmgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.chklist{padding:6px 20px}.chkempty{padding:18px 0}
.al{display:grid;grid-template-columns:96px minmax(0,1.05fr) minmax(0,1.2fr) auto;gap:8px 16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.al:last-child{border-bottom:0}
.al .sevtag{justify-self:start}.al-what{display:flex;flex-direction:column;min-width:0}.al-t{font-size:1rem;line-height:1.3}.al-sub{color:var(--muted);font-size:.86rem;overflow-wrap:anywhere}
.al-law{margin:0;font-size:.9rem;color:var(--ink2);overflow-wrap:anywhere}.al-saved{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
.al-btns{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.okbox{position:relative}.okbox>summary{list-style:none;cursor:pointer}.okbox>summary::-webkit-details-marker{display:none}
.okbox[open]>summary{background:var(--accsoft)}
.okform{position:absolute;right:0;top:calc(100% + 6px);z-index:5;width:300px;background:var(--card);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);padding:12px;display:flex;flex-direction:column;gap:8px}
.okform label{display:flex;flex-direction:column;gap:4px;font-size:.84rem;font-weight:600;margin:0}.okform select,.okform textarea{width:100%}
.chkside .card,.mcside .card,.bmgrid aside .card{margin-bottom:16px}
.savebox{background:#FFF8EC;border:1.5px solid #E7B860;border-radius:var(--rs);padding:14px 16px}.savebox b{display:flex;align-items:center;gap:6px;font-size:1.02rem}.savebox b svg{width:18px;height:18px;color:var(--warn)}
.savebox p{margin:6px 0 10px}.savebox.demo .btn{pointer-events:none;margin:0 6px 6px 0}
.chkfoot{margin-top:14px}
.chkdet{border:1px solid var(--line);border-radius:var(--rs);padding:8px 12px;background:var(--card)}.chkdet>summary{cursor:pointer;font-weight:700;padding:4px 0}.chkdet .grid2{margin-top:8px}.lcflags{border:0;padding:0;margin:8px 0 0}.lcflags legend{font-weight:700;font-size:.9rem}
.vgalti{margin:10px 0}.vgalti p{margin:6px 0}
/* rules screen */
.tbl.rules td{vertical-align:top}.tbl.rules td small{display:block}.tbl.rules .rid{font-family:"KB Mono",ui-monospace,monospace;font-size:.82rem}.tbl.rules tr.rl-unv td{background:#FBFBF8}.tbl.rules tr.rl-unv .rid{color:var(--muted)}
.tbl.rules form.inline{display:inline-block;margin-left:6px}
/* the save-time box */
.chkdlg .savebox{width:min(560px,100%);padding:18px 20px;display:block;max-height:none}
.chkdlg .cb-t{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.1rem;margin:0 0 8px}.chkdlg .cb-t svg{width:20px;height:20px;color:var(--warn)}
.cb-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.cb-list li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#fff;border-left:4px solid var(--warn)}.cb-list li.sev-laal{border-left-color:var(--err);color:inherit;background:#fff}.cb-list li.sev-peela{color:inherit;background:#fff}
.cb-why{display:flex;flex-direction:column;gap:4px;margin:0 0 10px}.cb-why textarea{width:100%}.cb-act{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
@media (max-width:760px){.chkdlg .savebox{border-radius:0;min-height:100%}}
/* month close */
.mcnav .cur{cursor:default}
.mcmain{padding:18px 20px}.mctop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.mctop h2{margin:0;font-size:1.25rem}.mcc{display:flex;gap:6px;flex-wrap:wrap}
.mcbar{height:10px;border-radius:999px;background:var(--bg2);margin:14px 0 6px;overflow:hidden}.mcbar span{display:block;height:100%;background:var(--p);border-radius:999px}
.mclist{list-style:none;margin:0;padding:0}.mci{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.mcico{flex:none;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem}
.st-ok .mcico{background:var(--okbg);color:var(--ok)}.st-err .mcico{background:var(--errbg);color:var(--err)}.st-warn .mcico{background:var(--warnbg);color:var(--warn)}.st-info .mcico{background:var(--infobg);color:var(--info)}
.mct{flex:1;min-width:0;display:flex;flex-direction:column}.mct b{font-size:1rem}.mct span{color:var(--muted);font-size:.88rem;overflow-wrap:anywhere}
.mclock{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:14px}.mclock p{margin:0;flex:1 1 260px}.lockform{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.mcreason{display:flex;flex-direction:column;gap:4px;font-size:.84rem;font-weight:600;margin:0}
.mcdues,.mcoffice{list-style:none;margin:0;padding:0}.mcdues li,.mcoffice li{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.mcdues li span,.mcoffice li a{flex:1;min-width:0}.mcdues b{font-family:"KB Mono",ui-monospace,monospace}
/* bank milaan */
.bmh{margin:0;font-size:1.5rem}.bmhead{justify-content:space-between}.bmhead p{margin:2px 0 0}
.bmcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 14px}
.bmc{border-radius:var(--r);padding:14px 18px;display:flex;flex-direction:column;gap:2px}.bmc b{font-size:.92rem}.bmc .v{font-size:2rem;font-weight:800;line-height:1.1}.bmc small{font-size:.82rem}
.c-books{background:#E3F4EA;color:#11592F}.c-rule{background:#E6EEFC;color:#174AB0}.c-review{background:#FFF1D6;color:#7A4700}
.tbl.bm caption{caption-side:top;text-align:left;background:var(--p);color:#fff;font-weight:700;padding:9px 14px;border-radius:var(--rs) var(--rs) 0 0}
.tbl.bm td{vertical-align:top}.tbl.bm td.pos{color:#11652F}.tbl.bm td.neg{color:#A61B1B}.tbl.bm .bml{min-width:220px}.tbl.bm .bml small,.tbl.bm .bml label{display:block}.tbl.bm .bml input[list]{width:100%;min-width:150px}.tbl.bm .bml select{margin-top:4px}
.tbl.bm tr.g-books td{background:#F6FBF8}
.brs dl{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:0 0 10px}.brs dt{margin:0}.brs dd{margin:0;text-align:right;font-family:"KB Mono",ui-monospace,monospace;font-weight:700}.brs .brsd{border-top:1px solid var(--line);padding-top:8px}
.bmrules ul{list-style:none;margin:0 0 10px;padding:0}.bmrules li{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}.bmrules li span{overflow-wrap:anywhere}
.brf select{max-width:240px}
@media (max-width:1100px){.chkgrid,.mcgrid,.bmgrid{grid-template-columns:minmax(0,1fr)}.al{grid-template-columns:90px minmax(0,1fr) auto}.al-law{grid-column:2/4}}
@media (max-width:760px){
 .al{grid-template-columns:auto minmax(0,1fr);gap:6px 12px}.al .sevtag{grid-row:1;align-self:start;margin-top:2px}.al-law{grid-column:1/3}.al-btns{grid-column:1/3;justify-content:flex-start}
 .okform{position:static;width:100%;margin-top:6px;box-shadow:none}.okbox{width:100%}
 .chklist{padding:4px 14px}.chktabs .ct{padding:7px 12px}
 .bmcards{grid-template-columns:minmax(0,1fr)}.bmc{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.bmc .v{font-size:1.4rem}.bmc small{flex-basis:100%}
 .tbl.bm,.tbl.bm tbody,.tbl.bm tr,.tbl.bm td,.tbl.rules,.tbl.rules tbody,.tbl.rules tr,.tbl.rules td,.tbl.brules,.tbl.brules tbody,.tbl.brules tr,.tbl.brules td{display:block;width:100%}
 .tbl.bm thead,.tbl.rules thead,.tbl.brules thead{display:none}
 .tbl.bm tr,.tbl.rules tr,.tbl.brules tr{border-bottom:1px solid var(--line);padding:8px 10px;position:relative}.tbl.bm td,.tbl.rules td,.tbl.brules td{border:0!important;padding:3px 0!important;text-align:left!important}
 .tbl.bm td:first-child{position:absolute;right:8px;top:8px;width:auto}.tbl.bm .bml{min-width:0}
 .tbl.rules td[data-l]::before,.tbl.brules td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
 .bmhead .actions{width:100%}.bmhead .actions .btn{flex:1 1 auto}
 .mci{flex-wrap:wrap}.mci .btn,.mci .mcdone{margin-left:48px}
 .lockform,.lockform .btn,.mcreason{width:100%}
}
.chkdlg [hidden]{display:none!important}
.bmc .v{text-align:left}.tbl.bm .bml label.chk{display:flex;align-items:center;gap:6px;margin:4px 0 0;font-size:.82rem;font-weight:500}.tbl.bm .bml label.chk input{width:auto;min-height:0}
.tbl.bm td .tag{white-space:nowrap}.tbl.bm .bmn{overflow-wrap:anywhere;min-width:120px}
.chkdlg .hd-in.savebox{background:#FFF8EC;border:1.5px solid #E7B860}
@media (max-width:760px){.mct{flex:1 1 calc(100% - 50px)}.okbox{width:auto}.okbox[open]{width:100%}.mclist .mci .btn{margin-left:48px}}
@media (max-width:760px){.tbl.rules td,.tbl.brules td,.tbl.bm td{max-width:none!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;position:static!important}.tbl.bm td:first-child{position:absolute!important}}
/* v1.11.1: Party & dispatch details (inline panel below the party row; a one-line chip when folded) */
.pdp{margin:0;min-width:0}
.pdchip{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:6px 12px;border:1px dashed var(--line2);border-radius:var(--rs);background:var(--card);color:var(--muted);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}
.pdchip[hidden],.pdbody[hidden]{display:none}
.pdchip .ico{flex:none;width:18px;height:18px;color:var(--p2)}
.pdchip .pdc-t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdchip.pd-filled{border-style:solid;border-color:#B5DCC1;background:#F1FAF5;color:#0A3F2F;font-weight:600}
.pdchip:hover{border-color:var(--p);color:var(--ink)}
.pdchip:focus-visible{outline:none;box-shadow:var(--focus);border-color:var(--p)}
.pdchip kbd.kh{flex:none}
.pdbody{background:var(--card);border:1.5px solid var(--p);border-radius:var(--r);padding:8px 12px;box-shadow:0 6px 18px rgba(14,124,91,.12)}
.pdhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-bottom:4px}
.pdhead h2{margin:0;font-size:.98rem;color:#0A3F2F}
.pdnote{color:#0A6349;font-weight:600;font-size:.8rem}
.pdkeys{margin-left:auto;color:var(--muted);font-size:.76rem}
.pdgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px 10px}
.pdg{margin:0;padding:4px 8px 6px;border:1px solid var(--line);border-radius:var(--rs);min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;align-content:start}
.pdg legend{padding:0 4px;font-weight:700;font-size:.8rem;color:var(--ink2);display:flex;align-items:center;gap:6px}
.pdg .pdn{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:5px;background:var(--accsoft);color:var(--p2);font-size:.7rem;font-weight:800;text-transform:uppercase}
.pdg label{margin:0;font-size:.8rem;min-width:0;color:var(--ink2)}
.pdg input:not([type=checkbox]):not([type=radio]),.pdg select,.pdg textarea{min-height:34px;padding:5px 9px;font-size:.92rem;margin-top:1px;width:100%}
.pdg textarea{min-height:34px;resize:vertical}
.pdg label small{display:block;color:var(--muted);font-size:.72rem;line-height:1.3}
.pdg .pd-w2,.pdg .pdbill{grid-column:1/-1}
.pdg .pdf{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 8px}
.pdg .pdf>.pd-w2{grid-column:span 2}
.pdg .pdf[hidden]{display:none}
.pd-a{grid-column:span 6}.pd-b{grid-column:span 6}.pd-f{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}
.pdown{grid-column:1/-1;margin:2px 0 0;font-size:.82rem;color:var(--ink2);white-space:pre-line}.pdown[hidden]{display:none}
.pd-c{grid-column:span 6}.pd-d{grid-column:span 6}
.pd-c .pdf,.pd-d .pdf{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-c .pdf>.pd-w2,.pd-d .pdf>.pd-w2{grid-column:1/-1}
.pd-e{grid-column:1/-1;grid-template-columns:1.1fr 1.7fr .9fr 1.7fr 1.5fr 1.1fr 1.2fr .9fr}
.pd-e .pd-odc{align-self:end;padding-bottom:8px;font-size:.78rem;white-space:nowrap}
.pdbill{display:flex;flex-direction:column;gap:0;font-size:.84rem;line-height:1.4;overflow-wrap:anywhere}.pdbill b{color:#0A3F2F}.pdbill span{color:var(--ink2)}
#tr_veh_hint.vh-ok{color:var(--ok)}#tr_veh_hint.vh-warn{color:var(--warn)}#tr_veh_hint.vh-bad{color:var(--err);font-weight:600}
.pdvq{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.pdvq:empty{display:none}
.pdvb{font:inherit;font-family:var(--mono);font-size:.74rem;padding:1px 7px;min-height:24px;border:1px solid var(--line2);border-radius:7px;background:var(--input-bg);color:var(--ink2);cursor:pointer}
.pdvb:hover,.pdvb:focus-visible{border-color:var(--p);color:var(--p2);outline:none;box-shadow:var(--focus)}
.pdfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;margin-top:6px}
.pdfoot .chk{margin:0;font-size:.84rem}
.pdmaster .pdships{margin-top:8px}
.pdship{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 10px;padding:8px 0;border-top:1px solid var(--line)}
.pdship .span2{grid-column:span 2}.pdship-h{grid-column:1/-1;font-size:.86rem;color:var(--ink2)}.pdship-x{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.pdsimple .ico{width:16px;height:16px;vertical-align:-3px}
.vship-v,.vtr-v{overflow-wrap:anywhere}
@media (max-width:1180px){.pd-e{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.pdgrid{grid-template-columns:minmax(0,1fr)}.pd-a,.pd-b,.pd-c,.pd-d,.pd-e,.pd-f{grid-column:1/-1}.pdg,.pd-e,.pd-f{grid-template-columns:repeat(2,minmax(0,1fr))}.pdg .pdf{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-e .pd-veh{grid-column:1/-1}.pdkeys{display:none}.pdship{grid-template-columns:minmax(0,1fr)}.pdship .span2{grid-column:auto}.pdbody{padding:8px}.pdfoot .btn{width:100%;justify-content:center}.pdg input:not([type=checkbox]):not([type=radio]),.pdg select,.pdg textarea{min-height:42px;font-size:16px}}
@media print{.pdp{display:none}}
/* ---- v1.12.0: entry / document pickers, accounting invoice columns, asset card, item guard, fixed charge rows ---- */
.vstrip .vpick{order:4;display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;border:0;min-width:0}
.vstrip .vs-no{margin-right:0}.vstrip .vs-date{flex:none}
.vrow .ventry{flex:0 1 auto;margin:0;padding:0;border:0;min-width:0}.vrow .ventry legend{float:left;width:100%;margin-bottom:3px}.vrow .ventry .seg span{padding:7px 11px;font-size:.84rem}
.vstrip .vpick legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vstrip .vpick{position:relative}
.vpick .seg{display:inline-flex;align-items:center;margin:0;cursor:pointer}
.vpick .seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.vpick .seg span{display:inline-block;padding:3px 9px;border:1.5px solid var(--line2);font-size:.78rem;font-weight:700;color:var(--ink2);background:var(--card);line-height:1.3;white-space:nowrap}
.vpick .seg:first-of-type span{border-radius:8px 0 0 8px}.vpick .seg:last-of-type span{border-radius:0 8px 8px 0;margin-left:-1.5px}
.vpick .seg input:checked+span{background:var(--p);color:#fff;border-color:var(--p)}
.vpick .seg input:focus-visible+span{box-shadow:var(--focus);position:relative;z-index:1}
.dochint{display:block;font-size:.78rem;font-weight:600;padding:2px 0 0;margin:0 0 2px;color:var(--ink2)}.dochint[hidden]{display:none}
.dochint.bad{color:var(--err)}.dochint.warn{color:var(--warn)}.dochint.soft{color:var(--p2)}
#savebtn.blocked{opacity:.75}
.vform .acconly{display:none}.vform.accmode .acconly{display:inline}.vform.accmode .itemonly{display:none}
.vform.accmode #items .c-qty,.vform.accmode #items .c-unit,.vform.accmode #items .c-rate,.vform.accmode #items .c-disc,.vform.accmode #items .c-discpct,.vform.accmode #items .colbtn{display:none}
.vform.accmode #items .c-acc{display:table-cell!important}
.vform.accmode #items th.c-acc,.vform.accmode #items td.c-acc{width:24%}
.vform.accmode #items .isub{display:none}
tr.facard>td{padding:0 6px 10px!important;border-top:0!important}
.fac{background:var(--okbg);border:1px solid var(--line);border-left:4px solid var(--p);border-radius:10px;padding:8px 12px;font-size:.86rem;display:grid;gap:5px}
.fac .fac-h{display:flex;align-items:center;gap:8px;font-size:.9rem}
.fac .fac-r{margin:0;color:var(--ink)}
.fac .fac-g{display:flex;flex-wrap:wrap;gap:4px 18px}.fac .fac-g span{display:inline-flex;flex-direction:column}.fac .fac-g small{color:var(--muted);font-size:.7rem}
.fac .fac-180{margin:0;font-weight:600;color:var(--p2)}
.fac .fac-j{margin:0;color:var(--ink2);font-size:.8rem}
.fac .fac-f{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:flex-end}.fac .fac-f label{display:inline-flex;flex-direction:column;gap:1px;margin:0}.fac .fac-f small{color:var(--muted);font-size:.7rem}
.fac .fac-f input,.fac .fac-f select,.fac .fac-ch input,.fac .fac-ch select{min-height:32px;padding:3px 8px;font-size:.86rem;max-width:100%}
.fac .fac-b{display:flex;flex-wrap:wrap;gap:6px}
.fac .fac-ch{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-end;border-top:1px dashed var(--line2);padding-top:6px}.fac .fac-ch label{display:inline-flex;flex-direction:column;margin:0}.fac .fac-ch small{color:var(--muted);font-size:.7rem}
.fac .fac-law{margin:2px 0 0;padding-left:16px;color:var(--muted);font-size:.74rem}.fac .fac-law li{margin:0}
tr.facard.done .fac{border-left-color:var(--ok);background:var(--card)}
.guardbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;padding:5px 8px;background:var(--warnbg);border:1px solid var(--line);border-radius:8px;font-size:.8rem}
.fxwrap{margin:6px 0 10px}
.fxwrap .fxh{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.95rem;margin:0 0 4px}.fxwrap .fxh small{font-weight:500}
.fxtbl td.fxl{font-weight:600;white-space:nowrap}
.fxtbl td{padding-top:3px!important;padding-bottom:3px!important}.fxtbl input,.fxtbl select{min-height:32px!important}
.fxtbl input.camt{width:8.5em}.fxtbl input.cpct,.fxtbl input.crate{width:5em}
.fxtbl tr.fxround td{color:var(--muted);font-size:.85rem}
.fxtbl tr.oldline td:first-child small{display:block;color:var(--muted);font-size:.72rem}
.fxtbl .x.del:empty{display:none}
.splitoffer .actions{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:1500px){.vstrip .vpick kbd{display:none}}
@media (max-width:760px){.vstrip .vpick{flex-wrap:wrap}.fac .fac-g{gap:4px 12px}tr.facard>td{display:block}.fxtbl td.fxl{white-space:normal}}
.mapsugg{background:var(--okbg);border:1px solid var(--line);border-left:4px solid var(--p);border-radius:10px;padding:8px 12px;font-size:.86rem;margin:4px 0}
.mapsugg .ms-body{display:block}.mapsugg .ms-g{font-weight:700}.mapsugg .ms-cls{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0}.mapsugg .ms-cls select{min-height:30px;padding:2px 6px;font-size:.84rem}
.mapsugg .ms-reason{display:block;margin-top:6px}.mapsugg .ms-reason input{min-height:32px}

/* v1.13.0: Khatabahi One app switcher (same rules as kbone_client.php kbone_switcher_css()) and the login button */
.kb1sw{display:flex;align-items:center;gap:2px;min-height:32px;padding:0 12px;background:#06402F;color:#CFE9DD;font:600 13px/1 "Plus Jakarta Sans",Arial,sans-serif;overflow-x:auto;scrollbar-width:none;max-width:100%;box-sizing:border-box}.kb1sw::-webkit-scrollbar{display:none}.kb1sw-brand{margin-right:10px;white-space:nowrap;color:#9FD3BE}.kb1sw-brand b{color:#F2C14E}.kb1sw-a{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;color:#E3F5EC;text-decoration:none;border-radius:6px;white-space:nowrap}.kb1sw-a:hover{background:rgba(255,255,255,.1)}.kb1sw-a.on{background:#0E7C5B;color:#fff}.kb1sw-a:focus-visible{outline:3px solid #F2C14E;outline-offset:-3px}@media (max-width:420px){.kb1sw-brand{display:none}}
.kb1btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;font-size:1.05rem;text-decoration:none}
.kb1mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:#fff;color:#0A5E45;font-weight:800;font-size:.8rem}
.kb1note{font-size:.86rem;text-align:center;margin:8px 0 0}
.kb1pw{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.kb1pw summary{cursor:pointer;font-weight:600;color:var(--p2);min-height:44px;display:flex;align-items:center}
.kb1pw .btn{width:100%}.kb1steps{margin:0;padding-left:20px}.kb1steps li{margin-bottom:6px}.kb1row{margin:2px 0}
@media (max-width:760px){.kb1tbl .btn.sm{white-space:normal;text-align:left}}
/* the switcher sits inside Books' own header: compact pills on the dark-green bar; a second row of the header on a phone */
.top .kb1sw{flex:0 1 auto;min-width:0;min-height:0;padding:3px;gap:2px;border-radius:10px;background:rgba(0,0,0,.2);font-size:.82rem}
.top .kb1sw-brand{display:none}.top .kb1sw-a{min-height:30px;padding:0 11px;border-radius:8px}
@media (min-width:1024px) and (max-width:1279px){.top .kb1sw-a{padding:0 8px}.top .hsearch{flex-basis:200px}}
@media (max-width:760px){.top:has(.kb1sw){flex-wrap:wrap;row-gap:6px}.top .kb1sw{order:20;flex:1 1 100%}.top .kb1sw-a{flex:1 1 0;justify-content:center;min-height:34px}}
@media (min-width:761px){.top:has(.kb1sw) .ctx{min-width:140px;overflow:hidden}.top:has(.kb1sw) .ctx .bizname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top:has(.kb1sw) .ctx .fy{flex:none}}
@media (min-width:761px) and (max-width:1499px){.top:has(.kb1sw) .sugbtn .hl{display:none}.top .kb1sw-a{padding:0 9px}}
/* v1.15.0 D-rcm-acc: Accounting Voucher toggle; RCM Self-Invoice screen, view card, register (token colours only, so other themes follow) */
.acvhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:-4px 0 12px}.acvhead .acvsub{flex:1 1 100%;margin:0}
.acvtoggle{display:inline-flex;border:1.5px solid var(--line2);border-radius:999px;overflow:hidden;background:var(--card)}
.acvtoggle .seg{padding:7px 16px;font-weight:700;color:var(--ink2);text-decoration:none;min-height:38px;display:inline-flex;align-items:center}
.acvtoggle .seg.on{background:var(--acc);color:var(--acc-ink)}.acvtoggle .seg:focus-visible{outline:none;box-shadow:var(--focus)}
.acvnote{font-size:.85rem}
.numbadge{font-size:.8rem;vertical-align:middle;margin-left:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.rcmsub{margin:-4px 0 14px}
.rcmwrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.rcmform{min-width:0}.rcmtop{padding:16px}.rcmtop .grid3{gap:12px 16px}
.rcmside{padding:16px;position:sticky;top:76px}.rcmside h2,.rcmcard h2{margin:0 0 8px}
.rcmkv{margin:0}.rcmkv>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}.rcmkv dt{color:var(--ink2);font-weight:600}.rcmkv dd{margin:0;text-align:right}
.rcmdays{margin:12px 0 0}.rcmdays.ok{background:var(--okbg);color:var(--ok);border-color:var(--okline)}
.rcmreg-w{margin:12px 0 0}
.rcmlines td input{width:100%;min-width:0}.rcmlines .dim{opacity:.35}.rcmlines th:nth-child(1){width:13%}.rcmlines th:nth-child(2){width:33%}.rcmlines th:nth-child(4){width:10%}.rcmlines .r-rate{min-width:64px}
form[data-form-key^="accvoucher-"] .vs-no input{width:16ch;min-width:16ch}
.rcmaddhint{margin:4px 0 12px;padding:8px 10px;border:1.5px dashed var(--line2);border-radius:var(--rs);cursor:pointer;text-align:center}.rcmaddhint:hover{background:var(--row-hover);color:var(--ink)}
.rcmentry{margin:0 0 12px;background:var(--infobg);color:var(--info)}
.rcmcard{padding:14px 16px;margin:12px 0}.rcmcard-hd{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rcmcard-hd h2{flex:1 1 auto}
.rcmcard .rcmkv{max-width:640px}.rcmpays{margin:4px 0 10px;padding-left:18px}.rcmforms details{margin-top:10px}.rcmforms summary{cursor:pointer;font-weight:700;color:var(--acc-text)}
.rcmtots{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.rcmtots .rt{background:var(--card);border:1px solid var(--line);border-radius:var(--rs);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.rcmtots .rt span{color:var(--muted);font-size:.85rem}.rcmtots .rt b{font-size:1.1rem}
.rcmtots .rt.due b{color:var(--err)}
.rcmtaxf{display:flex;flex-wrap:wrap;gap:4px}.rcmtaxf input{max-width:130px;min-height:32px}
@media (max-width:1024px){.rcmwrap{grid-template-columns:1fr}.rcmside{position:static}}
@media (max-width:760px){.rcmtop .grid3{grid-template-columns:1fr}.acvtoggle{width:100%}.acvtoggle .seg{flex:1 1 0;justify-content:center}
 .rcmlines{min-width:0!important;width:100%;table-layout:auto}.rcmlines thead{display:none}.rcmlines tbody,.rcmlines tfoot{display:block}.rcmlines tfoot tr{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px}.rcmlines tfoot td:empty{display:none}.rcmlines .r-rate{min-width:0}.rcmlines tr.rline{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}.rcmlines tr.rline td{display:block;border:0;padding:0}.rcmlines tr.rline td::before{content:attr(data-l);display:block;font-size:.75rem;color:var(--muted)}.rcmlines tfoot td{padding:6px 4px}}
@media print{.rcmside,.rcmforms,.acvtoggle{display:none!important}}
/* v1.15.0 C-series: supplier bill-series chip / hint, duplicate warning, last-bill card, "auto" chips on HSN / GST % */
.kbs-wrap{position:relative;display:block}.kbs-wrap>input{width:100%}.kbs-wrap:has(.kbs-chip:not([hidden]))>input{padding-right:118px}
.kbs-chip{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:2px 9px;border-radius:999px;background:var(--goldsoft,#FBF3D9);color:var(--goldtext,#7A5F0B);border:1px solid var(--goldline,#E7D28A);font:600 .74rem/1.4 ui-monospace,Menlo,Consolas,monospace;pointer-events:none;white-space:nowrap}
.kbs-chip[hidden],.kbs-hint[hidden],.kbs-dup[hidden],.kb-lastbill[hidden]{display:none}
.kbs-hint{display:block;margin-top:3px;color:var(--muted);font-size:.8rem;font-weight:400}
.kbs-dup{margin:8px 0}
.kb-lastbill{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:14px 16px;margin:10px 0;max-width:420px}
.kb-lastbill .kbs-ch{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--ink)}
.kb-lastbill .kbs-dl{display:grid;grid-template-columns:auto 1fr;gap:0;margin:0}
.kb-lastbill dt,.kb-lastbill dd{margin:0;padding:6px 0;border-bottom:1px dashed var(--line)}
.kb-lastbill dt{color:var(--ink2)}.kb-lastbill dd{text-align:right;font-variant-numeric:tabular-nums}
.kb-lastbill .kbs-mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88rem}
.kb-lastbill .kbs-none{margin:0;font-size:.88rem}
.kbs-auto{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:var(--accsoft);color:var(--acc-text);font:600 .7rem/1.5 ui-monospace,Menlo,Consolas,monospace;vertical-align:middle;cursor:help}
td .kbs-auto{position:relative;top:-1px}
@media (max-width:760px){.kb-lastbill{max-width:none}.kbs-chip{font-size:.68rem;padding:1px 6px}}

/* v1.15.0 A-shell */
/* (1) colour themes per user: token overrides keyed by <html data-kbtheme> (set by the server; Hara = the v1.14 look, unchanged).
   --kt-* = extra tokens for the few component colours that were hard-coded green. Print / PDF are untouched (print rules set their own black-white). */
:root{--kt-deep:#064A36;--kt-tint:#F1FAF5;--kt-day:#E8F1EC;--kt-rgb:14,124,91;--kt-ph:#CFE9DD;--kt-sw:#06402F;--kn-ink:#FFFFFF;--kn-ink2:#DDF3E8;--kn-hover:rgba(255,255,255,.1);--kn-on:#DDF3E8;--kn-on-ink:#064A36}
html[data-kbtheme=neela]{
 --hdr:#1B2A47;--hdr-ink2:#E6EEFC;--top-bg:#1B2A47;--top-ink2:#E6EEFC;--kt-ph:#C9D3E6;--kt-sw:#121D33;
 --p:#1E5BD8;--p2:#1747AE;--acc:#1E5BD8;--acc2:#1747AE;--acc-text:#1747AE;--accsoft:#E6EEFC;--top-accent:#1E5BD8;--navy3:#3B74E4;
 --bg:#F3F5F9;--bg2:#E8ECF3;--th-bg:#1E5BD8;--row-hover:#F1F5FD;--tot-bg:#F1F5FD;--ic:#1E5BD8;--ic-bg:#E6EEFC;--c1:#1E5BD8;--c1bg:#E6EEFC;
 --kt-deep:#0F2D6B;--kt-tint:#F3F7FE;--kt-day:#E9EFF8;--kt-rgb:30,91,216;--kn-ink2:#E6EEFC;--kn-on:#E6EEFC;--kn-on-ink:#0F2D6B;
 --hero-bg:linear-gradient(135deg,#1E5BD8 0%,#1B2A47 100%);--hero-muted:#E6EEFC;--hero-sh:0 16px 40px rgba(30,91,216,.3);--p-sh:0 6px 18px rgba(30,91,216,.3);--focus:0 0 0 4px rgba(30,91,216,.25);
 --bn-on:#1E5BD8;--bn-on-bg:#E6EEFC;--bn-new:#1E5BD8;--bn-new-sh:0 8px 20px rgba(30,91,216,.4);--auth-bg:#1B2A47 radial-gradient(1000px 700px at 50% -20%,#2B4A86 0%,#1B2A47 60%,#101A2E 100%) no-repeat;--auth-foot:#C9D3E6}
html[data-kbtheme=maroon]{
 --hdr:#5E1A2E;--hdr-ink2:#FBE6EC;--top-bg:#5E1A2E;--top-ink2:#FBE6EC;--kt-ph:#EBCBD4;--kt-sw:#43121F;
 --p:#9B2242;--p2:#7E1B36;--acc:#9B2242;--acc2:#7E1B36;--acc-text:#7E1B36;--accsoft:#FBE6EC;--top-accent:#9B2242;--navy3:#B83A5C;
 --bg:#F8F4F5;--bg2:#F0E8EA;--th-bg:#9B2242;--row-hover:#FDF3F6;--tot-bg:#FDF3F6;--ic:#9B2242;--ic-bg:#FBE6EC;--c1:#9B2242;--c1bg:#FBE6EC;
 --kt-deep:#5A1426;--kt-tint:#FDF4F6;--kt-day:#F6E9ED;--kt-rgb:155,34,66;--kn-ink2:#FBE6EC;--kn-on:#FBE6EC;--kn-on-ink:#5A1426;
 --hero-bg:linear-gradient(135deg,#9B2242 0%,#5E1A2E 100%);--hero-muted:#FBE6EC;--hero-sh:0 16px 40px rgba(155,34,66,.3);--p-sh:0 6px 18px rgba(155,34,66,.3);--focus:0 0 0 4px rgba(155,34,66,.25);
 --bn-on:#9B2242;--bn-on-bg:#FBE6EC;--bn-new:#9B2242;--bn-new-sh:0 8px 20px rgba(155,34,66,.4);--auth-bg:#5E1A2E radial-gradient(1000px 700px at 50% -20%,#8A2A45 0%,#5E1A2E 60%,#3A0F1C 100%) no-repeat;--auth-foot:#EBCBD4}
html[data-kbtheme=slate]{
 --hdr:#1F2937;--hdr-ink2:#DDF4F1;--top-bg:#1F2937;--top-ink2:#DDF4F1;--kt-ph:#CBD5E1;--kt-sw:#111827;
 --p:#0F766E;--p2:#0B5F58;--acc:#0F766E;--acc2:#0B5F58;--acc-text:#0B5F58;--accsoft:#DDF4F1;--top-accent:#0F766E;--navy3:#14958A;
 --bg:#F3F5F7;--bg2:#E7EBEF;--th-bg:#0F766E;--row-hover:#F0FAF8;--tot-bg:#F0FAF8;--ic:#0F766E;--ic-bg:#DDF4F1;--c1:#0F766E;--c1bg:#DDF4F1;
 --kt-deep:#0A4A44;--kt-tint:#F0FAF8;--kt-day:#E6EEF0;--kt-rgb:15,118,110;--kn-ink2:#DDF4F1;--kn-on:#DDF4F1;--kn-on-ink:#0A4A44;
 --hero-bg:linear-gradient(135deg,#0F766E 0%,#1F2937 100%);--hero-muted:#DDF4F1;--hero-sh:0 16px 40px rgba(15,118,110,.3);--p-sh:0 6px 18px rgba(15,118,110,.3);--focus:0 0 0 4px rgba(15,118,110,.25);
 --bn-on:#0F766E;--bn-on-bg:#DDF4F1;--bn-new:#0F766E;--bn-new-sh:0 8px 20px rgba(15,118,110,.4);--auth-bg:#1F2937 radial-gradient(1000px 700px at 50% -20%,#334155 0%,#1F2937 60%,#111827 100%) no-repeat;--auth-foot:#CBD5E1}
/* components that had the green written in (only for the non-Hara themes, so Hara stays pixel-identical) */
html:not([data-kbtheme=hara]) .logo::before{background:var(--p)}
html:not([data-kbtheme=hara]) a:focus-visible,html:not([data-kbtheme=hara]) button:focus-visible,html:not([data-kbtheme=hara]) summary:focus-visible,html:not([data-kbtheme=hara]) .btn:focus-visible{box-shadow:0 0 0 5px rgba(var(--kt-rgb),.18)}
html:not([data-kbtheme=hara]) .form input:focus-visible,html:not([data-kbtheme=hara]) .form select:focus-visible,html:not([data-kbtheme=hara]) .form textarea:focus-visible,html:not([data-kbtheme=hara]) .tbl.lines input:focus-visible,html:not([data-kbtheme=hara]) .tbl.lines select:focus-visible{box-shadow:0 0 0 4px rgba(var(--kt-rgb),.22)}
html:not([data-kbtheme=hara]) .kbmark,html:not([data-kbtheme=hara]) .kb1mark{color:var(--hdr)!important}
html:not([data-kbtheme=hara]) .top .hsearch input::placeholder{color:var(--kt-ph)}
html:not([data-kbtheme=hara]) .top .hsearch .hs-ico{color:var(--kt-ph)}
html:not([data-kbtheme=hara]) .top .hsearch:focus-within .hs-ico{color:var(--muted)}
html:not([data-kbtheme=hara]) .tbl tr.dayhead td{background:var(--kt-day)!important;color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .tbl tr.tot td{border-top-color:var(--p);color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .vtbadge,html:not([data-kbtheme=hara]) .pb-seg label:has(input:checked){background:var(--p)}
html:not([data-kbtheme=hara]) .gstbadge{background:var(--accsoft);color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .vparty select#party,html:not([data-kbtheme=hara]) .vparty input.kbcombo{border-color:var(--p)!important;background-color:var(--kt-tint)!important}
html:not([data-kbtheme=hara]) .vtotbar,html:not([data-kbtheme=hara]) .pdnote{color:var(--p2)}
html:not([data-kbtheme=hara]) .ppanel .pp-t,html:not([data-kbtheme=hara]) .ppanel .pp-cl:not(.over){background:var(--kt-tint)}
html:not([data-kbtheme=hara]) .prfmt label:has(input:checked){border-color:var(--p);background:var(--kt-tint)}
html:not([data-kbtheme=hara]) .prfmt label input{accent-color:var(--p)}
html:not([data-kbtheme=hara]) .pb-one{border-color:var(--p)}
html:not([data-kbtheme=hara]) .duecard .dc-when:not(.today):not(.overdue){color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .chktabs .ct.on{box-shadow:0 0 0 3px rgba(var(--kt-rgb),.18)}
html:not([data-kbtheme=hara]) .pdchip.pd-filled{border-color:var(--accsoft);background:var(--kt-tint);color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .pdbody{box-shadow:0 6px 18px rgba(var(--kt-rgb),.12)}
html:not([data-kbtheme=hara]) .pdhead h2,html:not([data-kbtheme=hara]) .pdbill b{color:var(--kt-deep)}
html:not([data-kbtheme=hara]) .kb1sw{background:var(--kt-sw);color:var(--kt-ph)}
@media (max-width:760px){html:not([data-kbtheme=hara]) .hero{background:var(--hero-bg);box-shadow:var(--hero-sh)}html:not([data-kbtheme=hara]) .chip .k,html:not([data-kbtheme=hara]) .chip .k svg{color:var(--hero-muted)}}
/* Settings > Rang (theme) */
.upform .upthemes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:12px;border:0;margin:0 0 14px;padding:0;min-width:0;background:transparent;box-shadow:none}
.upform .upth{display:flex;flex-direction:column;gap:2px;margin:0;padding:10px;border:1.5px solid var(--line2);border-radius:var(--r);background:var(--card);cursor:pointer;position:relative;font-weight:400}
.upth input{position:absolute;opacity:0;width:1px;height:1px}
.upth .upsw{display:flex;height:56px;border-radius:10px;overflow:hidden;margin-bottom:8px}.upth .upsw i{flex:1}
.upth b{font-size:1rem;color:var(--ink)}.upth small{color:var(--muted);font-size:.84rem}
.upform .upth:has(input:checked){border:2px solid var(--p);box-shadow:0 0 0 4px var(--accsoft);padding:9.5px}
.upth:has(input:focus-visible){outline:2.5px solid var(--p);outline-offset:3px}
.upscope{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:10px 0;border-top:1px dashed var(--line2)}
.upsl{font-weight:600;color:var(--ink)}
@media (max-width:760px){.upscope .pb-seg{flex-direction:column}.upscope .pb-seg label{justify-content:flex-start;text-align:left;padding:10px 12px}.upscope .pb-seg label+label{border-left:0;border-top:1px solid var(--line2)}}
.upform h2{margin-top:18px}.uppr{border-top:1px dashed var(--line2);padding-top:8px;margin-top:12px}
/* (2) grouped left panel (replaces the v1.2.0 icon rail). PC: fixed panel in the header colour; phone / tablet: drawer from the header button */
.kbburger{display:none}
.kbnav{background:var(--hdr);color:var(--kn-ink);display:flex;flex-direction:column;font-size:.95rem;box-sizing:border-box;z-index:24}
.kbnav .kn-in{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:12px 8px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
.kbnav a,.kbnav .kg-h{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;min-height:40px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--kn-ink);font:inherit;font-weight:500;text-decoration:none;text-align:left;cursor:pointer;line-height:1.25}
.kbnav .kn-top,.kbnav .kg-h{font-weight:600;font-size:1rem}
.kbnav .kn-i{width:1.25em;height:1.25em;flex:none}
.kbnav .kn-l{flex:1 1 auto;min-width:0}
.kbnav .kg-c{width:1em;height:1em;flex:none;opacity:.85;transition:transform .15s}
.kbnav .kg.open>.kg-h .kg-c{transform:rotate(180deg)}
.kbnav a:hover,.kbnav .kg-h:hover{background:var(--kn-hover);color:var(--kn-ink)}
.kbnav a:focus-visible,.kbnav .kg-h:focus-visible,.kbnav .kn-mini:focus-visible{outline:2.5px solid var(--kgold);outline-offset:-2px;box-shadow:none}
.kbnav .kg-items{display:none;flex-direction:column;gap:1px;padding:2px 0 6px}
.kbnav .kg.open>.kg-items{display:flex}
.kbnav .kg-items a{min-height:36px;padding:7px 12px 7px 16px;font-size:.92rem}
.kbnav a.on,.kbnav a.on:hover{background:var(--kn-on);color:var(--kn-on-ink);font-weight:700}
.kbnav .kg-fly{display:none}
.kbnav a.modesw{color:var(--kn-ink2);font-size:.86rem}
.kbnav .kn-foot{flex:none;border-top:1px solid rgba(255,255,255,.16);padding:8px}
.kbnav .kn-mini{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:6px 12px;border:0;border-radius:8px;background:transparent;color:var(--kn-ink2);font:inherit;font-size:.86rem;cursor:pointer;text-align:left}
.kbnav .kn-mini:hover{background:var(--kn-hover);color:var(--kn-ink)}
.kbnav .kn-mi{width:1.25em;text-align:center;flex:none;font-size:1rem}
@media print{.kbnav,.kbnav-bd,.kbburger{display:none!important}}
@media (min-width:1024px){
 .kbnav{position:fixed;left:0;top:54px;bottom:0;width:236px}
 body:has(.kbstrip) .kbnav{bottom:40px}
 body:has(.kbnav){--kbnav-w:236px}
 body:has(.kbnav) .wrap{margin-left:var(--kbnav-w);max-width:none;padding-top:74px;padding-left:32px;padding-right:32px}
 body:has(.kbnav):not(:has(.kbstrip)) .wrap{padding-bottom:60px}
 body:has(.kbnav) .foot{margin-left:var(--kbnav-w)}
 .kbnav-bd{display:none!important}
 /* "Menu chhota karo": icons only; a group shows its links as a fly-out on hover / keyboard focus */
 body:has(.kbnav.mini){--kbnav-w:64px}
 .kbnav.mini{width:64px}
 .kbnav.mini .kn-in{overflow:visible;padding:12px 8px}
 .kbnav.mini .kn-l,.kbnav.mini .kg-c{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .kbnav.mini .kn-top,.kbnav.mini .kg-h,.kbnav.mini .kn-mini{justify-content:center;padding:10px 0}
 .kbnav.mini .kg{position:relative}
 .kbnav.mini .kg.here>.kg-h{background:var(--kn-on);color:var(--kn-on-ink)}
 .kbnav.mini .kg>.kg-items{display:none;position:absolute;left:100%;top:0;margin-left:6px;width:230px;max-height:calc(100vh - 120px);overflow-y:auto;padding:6px;background:var(--hdr);border-radius:10px;box-shadow:var(--sh2);z-index:40}
 .kbnav.mini .kg>.kg-items::before{content:'';position:absolute;left:-8px;top:0;bottom:0;width:8px}
 .kbnav.mini .kg:hover>.kg-items,.kbnav.mini .kg:focus-within>.kg-items{display:flex}
 .kbnav.mini .kg-fly{display:block;padding:6px 12px 4px;font-weight:700;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--kn-ink2)}
}
@media (pointer:coarse) and (min-width:1024px){body:has(.kbstrip) .kbnav{bottom:0}}
@media (max-width:1023px){
 .kbburger{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;margin-right:2px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--hdr-ink);cursor:pointer}
 .kbburger:hover{background:var(--hdr-pill)}.kbburger .ico{width:24px;height:24px}
 .kbburger:focus-visible{outline:2.5px solid var(--kgold);outline-offset:1px}
 .kbnav{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:70;transform:translateX(-105%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s;box-shadow:var(--sh2)}
 body.navopen .kbnav{transform:none;visibility:visible;transition:transform .2s ease}
 .kbnav .kn-in{padding-top:16px}
 .kbnav-bd{position:fixed;inset:0;z-index:69;background:rgba(0,0,0,.45)}
 .kbnav .kn-foot{display:none}
}
@media (prefers-reduced-motion:reduce){.kbnav,.kbnav .kg-c{transition:none!important}}
/* tablet header with the ☰: brand text gives way so business name, FY and search do not overlap */
@media (min-width:761px) and (max-width:1023px){.top:has(.kbburger) .brand .bt{display:none}.top:has(.kbburger) .ctx{overflow:hidden}.top:has(.kbburger) .ctx .bizname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top:has(.kbburger) .ctx .fy{flex:none}}
/* v1.15.0 B-voucher: clean voucher layout (previews 6 / 7), Party details popup, new-line strips, totals card. Tokens only (colour themes override them). */
.vwrap.v15{display:block}
.v15head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:0;border:0}
.pagehead.vph.v15head h1.v15h{position:static!important;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;margin:0;font-size:1.45rem;font-weight:800;min-width:0;flex:0 1 auto;letter-spacing:-.02em}
.v15h .v15dot{color:var(--muted);font-weight:500}.v15h .v15doc{color:var(--muted);font-weight:600}.v15h .v15no{font-family:var(--mono);font-size:1rem;color:var(--ink2);font-weight:600}
.v15menu{position:relative}
.v15menu>summary{list-style:none;cursor:pointer;width:34px;height:34px;border-radius:10px;border:1px solid var(--line2);display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--ink2);background:var(--card)}
.v15menu>summary::-webkit-details-marker{display:none}.v15menu>summary:focus-visible{outline:none;box-shadow:var(--focus);border-color:var(--p)}
.v15mpop{position:absolute;z-index:45;left:0;top:40px;min-width:230px;max-width:calc(100vw - 32px);background:var(--card);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);padding:6px;display:flex;flex-direction:column}
.v15mpop a{padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600;font-size:.92rem}
.v15mpop a:hover,.v15mpop a:focus-visible{background:var(--accsoft);outline:none}
.v15head .gstbadge{background:var(--accsoft);color:var(--acc-text)}
.v15dp{margin:0 0 0 auto;display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px;padding:3px;border:1.5px solid var(--line2);border-radius:999px;background:var(--card);min-width:0;position:relative}
.v15dp .seg span{border:0!important;border-radius:999px!important;margin:0!important;padding:7px 14px;font-size:.9rem;font-weight:600;color:var(--ink);background:transparent;white-space:nowrap}
.v15dp .seg input:checked+span{background:var(--p);color:var(--pt)}
.v15dp .seg.off{cursor:not-allowed}.v15dp .seg.off span{color:var(--muted);opacity:.55}
.v15dp kbd.kh{margin-left:4px}
/* top card + Party balance card */
.v15top{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start;margin:0 0 14px}
.v15card{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:14px 18px;margin:0!important;min-width:0}
.v15card .v15f{margin:0;min-width:0;display:flex;flex-direction:column;gap:4px;font-weight:600}
.v15card .vpl{display:block;font-weight:600;color:var(--ink2);font-size:.86rem;margin:0}
.v15card .vparty{grid-column:span 2}
.v15card .v15txn{grid-column:span 2}
.v15card .vs-no.hidden{display:none}
.v15nobox{display:flex;align-items:stretch;gap:6px;min-width:0}
.v15nobox input{flex:1 1 auto;min-width:0;font-family:var(--mono)}
.v15ser{flex:0 0 auto;width:auto!important;max-width:9em;min-height:0!important;padding:4px 8px!important;font-size:.8rem!important;font-weight:700;border-radius:8px!important;border:1.5px solid var(--line2)!important;background:var(--accsoft)!important;color:var(--acc-text)!important;cursor:pointer}
.v15dbox{display:flex;align-items:center;gap:8px;min-width:0}.v15dbox .kbdatew,.v15dbox input{flex:1 1 auto;min-width:0}
.v15dbox .w{flex:none;font-size:.78rem;font-weight:700;color:var(--acc-text);background:var(--accsoft);border-radius:999px;padding:2px 9px}
.v15 .vparty select#party,.v15 .vparty input.kbcombo{border:2px solid var(--p)!important;background-color:var(--card)!important;font-weight:700;font-size:1.02rem!important}
.v15 .pinfo{display:none}
.v15np{font-size:.76rem;font-weight:500}.v15np a{color:var(--muted)}
.v15pdb{justify-content:flex-end;padding-top:22px}
.v15pdbtn{width:100%;border:1.5px solid var(--p)!important;color:var(--acc-text)!important;background:var(--card)!important;font-weight:700;white-space:nowrap}
.v15pdbtn:hover{background:var(--accsoft)!important}
.v15bal{display:block!important;position:static!important;height:auto!important;background:var(--card)!important;border:1px solid var(--line)!important;border-radius:var(--r);box-shadow:var(--sh);padding:12px 16px!important;min-width:0;overflow:visible!important}
.v15bal.pp-isempty{display:none!important}
body.ppoff .v15bal{display:none!important}
.v15bal .pp-body{gap:6px}
.v15bl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.v15bl li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:.92rem}
.v15bl li:last-child{border-bottom:0}
.v15bl li span{color:var(--ink2);min-width:0}.v15bl li b{font-weight:700;white-space:nowrap;text-align:right}
.v15bl li.v15bh span{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.v15bl li.v15due b{color:var(--ok)}.v15bl li.od b,.v15bl li.od span{color:var(--warn)}
.v15bl li b small{font-weight:600}
.v15bd>summary{cursor:pointer;font-size:.82rem;font-weight:700;color:var(--acc-text);padding:4px 0}
.v15bd[open]{display:flex;flex-direction:column;gap:6px}
/* Items | Accounting tabs, "?" help */
.v15tabs{display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid var(--line);margin:0 0 10px}
.v15tab{display:flex;gap:4px;margin:0;padding:0;border:0;min-width:0}
.v15tab .seg span{display:inline-flex;align-items:center;gap:6px;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;margin:0!important;background:transparent!important;color:var(--ink2)!important;padding:8px 14px 9px;font-size:.98rem;font-weight:600}
.v15tab .seg input:checked+span{color:var(--acc-text)!important;border-bottom-color:var(--p)!important;font-weight:700}
.v15tab1{margin:0;padding:8px 14px 9px;font-size:.98rem;font-weight:700;color:var(--acc-text);border-bottom:3px solid var(--p)}
.v15q{margin:0 0 6px auto}
/* line tables: header in the accent colour; the empty space below adds a line */
.v15 #items thead th,.v15 #charges thead th,.v15 #entries thead th{background:var(--p);color:var(--pt);border-color:var(--p)}
.v15 #items thead th:first-child,.v15 #entries thead th:first-child,.v15 #charges thead th:first-child{border-top-left-radius:10px}
.v15 #items thead th:last-child,.v15 #entries thead th:last-child,.v15 #charges thead th:last-child{border-top-right-radius:10px}
.v15add{position:relative;display:flex;align-items:center;justify-content:center;min-height:30px;margin:0 0 6px;border:1.5px dashed transparent;border-radius:10px;cursor:pointer;color:var(--muted);font-size:.8rem;transition:border-color .12s,background .12s}
.v15add span{opacity:0;transition:opacity .12s}
.v15add:hover{border-color:var(--line2);background:var(--accsoft);color:var(--acc-text)}.v15add:hover span{opacity:1}
@media (pointer:coarse){.v15add{min-height:40px;border-color:var(--line2)}.v15add span{opacity:1}}
/* lower part: charges, narration, payment (left) and the totals card (right) */
.v15low{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;margin:4px 0 12px}
.v15lowl{min-width:0}
.v15lowl .vnarr{background:transparent;border:0;padding:0;margin:8px 0}
.v15lowl .vnarr label{flex:1 1 100%}
.v15tot{position:sticky;top:76px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:12px 16px;min-width:0}
.v15tt{width:100%;border-collapse:collapse;font-size:.92rem}
.v15tt th{text-align:left;font-weight:500;color:var(--ink2);padding:7px 8px 7px 0;border-bottom:1px dashed var(--line)}
.v15tt td{padding:7px 0;border-bottom:1px dashed var(--line);white-space:nowrap}
.v15tt tr.taxrow th{font-style:normal}
.v15tt tr.v15gt th,.v15tt tr.v15gt td{border:0;background:var(--accsoft);color:var(--acc-text);font-size:1.25rem;font-weight:800;padding:12px 14px}
.v15tt tr.v15gt th{border-radius:10px 0 0 10px}.v15tt tr.v15gt td{border-radius:0 10px 10px 0}
.v15tot .vtotbar{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:8px 0 0;font-size:.92rem;color:var(--ink2);font-weight:600}
.v15tot .vtotbar #vt_qty{margin-left:auto}
.v15f[data-item="1"] .v15tot #vt_total{display:none}
.v15f[data-item="0"] .v15tot .vtotbar{margin:0;font-size:1.25rem;font-weight:800;background:var(--accsoft);color:var(--acc-text);border-radius:10px;padding:12px 14px}
.v15f[data-item="0"] .v15tot .vtotbar #vt_total{color:var(--acc-text)}
.v15f .actions.sticky{justify-content:center}
/* Party details: a popup over the form (same fields as the v1.11.1 panel) */
.pdm{position:static}
.pdm .pdchip{margin-top:4px;border-style:solid;font-size:.84rem;min-height:30px;padding:4px 10px}
.pdm .pdchip.pd-filled{border-color:var(--line2);background:var(--accsoft);color:var(--acc-text)}

.pdm .pdbody{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;background:rgba(15,23,20,.45);border:0;border-radius:0;box-shadow:none;overflow:auto}
.pdm .pdbody[hidden]{display:none}
body.pdopen{overflow:hidden}
.pdm .pdbox{width:min(980px,100%);background:var(--card);border-radius:var(--rl);box-shadow:var(--sh2);overflow:hidden;display:flex;flex-direction:column}
.pdm .pdhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:12px 20px;background:var(--p);color:var(--pt)}
.pdm .pdhead h2{margin:0;font-size:1.08rem;color:var(--pt);min-width:0;overflow-wrap:anywhere}
.pdm .pdx{border:0;background:transparent;color:var(--pt);font:inherit;font-size:.86rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-height:32px}
.pdm .pdx kbd{font:700 .72rem/1 var(--font);background:var(--card);color:var(--ink);border-radius:5px;padding:3px 6px}
.pdm .pdtabs{display:flex;gap:2px;padding:8px 16px 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.pdm .pdtab{border:0;background:transparent;font:inherit;font-weight:600;color:var(--ink2);padding:9px 14px;border-radius:10px 10px 0 0;cursor:pointer;white-space:nowrap;min-height:40px}
.pdm .pdtab.on,.pdm .pdtab[aria-selected=true]{background:var(--accsoft);color:var(--acc-text);font-weight:700}
.pdm .pdtab:focus-visible{outline:none;box-shadow:var(--focus)}
.pdm .pdgrid{display:block;padding:14px 20px 4px;min-height:180px}
.pdm .pdpane[hidden]{display:none}
.pdm .pdg{border:0;padding:0;margin:0 0 10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.pdm .pd-e{grid-template-columns:repeat(4,minmax(0,1fr))}
.pdm .pd-f{grid-template-columns:repeat(4,minmax(0,1fr))}
.pdm .pdg label{font-size:.84rem}
.pdm .pdg input:not([type=checkbox]):not([type=radio]),.pdm .pdg select,.pdm .pdg textarea{min-height:40px}
.pdm .pdbill{grid-column:1/-1;border:1px solid var(--line);border-radius:var(--rs);padding:10px 12px;background:var(--input-bg);font-size:.9rem}.pdm .pdbill b{color:var(--ink)}
.pdm .v15pos{grid-column:1/-1}
.pdm .pdnote{margin:0 20px;padding:8px 12px;border-radius:10px;background:var(--infobg);color:var(--info);font-size:.84rem}.pdm .pdnote:empty{display:none}
.pdm .pdkeys{margin:6px 20px 0;color:var(--muted);font-size:.8rem}
.pdm .pdfoot{margin:10px 0 0;padding:12px 20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.pdm .pdbtns{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.pdm details.vmore.inpd{background:transparent;border:0;padding:0;margin:0}
.pdm details.vmore.inpd>summary,.pdm details.gstx>summary{display:none}
.pdm details.gstx{margin:8px 0 0;border:0;padding:0}
.pdm[data-txn=domestic] details.gstx,.pdm[data-txn=export] .gx-eco,.pdm[data-txn=eco] .gx-exp,.pdm[data-txn=sez] details.gstx{display:none}
.pdm[data-txn] .v15sez{display:none}.pdm[data-txn=sez] .v15sez{display:flex}
@media (max-width:1180px){.v15top{grid-template-columns:minmax(0,1fr) 260px}.v15low{grid-template-columns:minmax(0,1fr) 300px}}
@media (max-width:1023px){.v15top,.v15low{grid-template-columns:minmax(0,1fr)}.v15tot{position:static}.v15card{grid-template-columns:repeat(2,minmax(0,1fr))}.v15dp{margin-left:0}}
@media (max-width:760px){
 .v15card{grid-template-columns:minmax(0,1fr);padding:12px}.v15card .vparty,.v15card .v15txn{grid-column:auto}.v15pdb{padding-top:0}
 .pagehead.vph.v15head h1.v15h{font-size:1.15rem;flex:1 1 auto}
 .v15dp{width:100%;border-radius:12px}.v15dp .seg{flex:1 1 auto}.v15dp .seg span{display:block;text-align:center;padding:7px 8px;font-size:.82rem;white-space:normal}
 .pdm .pdbody{padding:0;align-items:stretch}.pdm .pdbox{border-radius:0;min-height:100%}
 .pdm .pdg,.pdm .pd-e,.pdm .pd-f{grid-template-columns:minmax(0,1fr)}
 .pdm .pdgrid{padding:12px}.pdm .pdfoot{padding:12px}.pdm .pdtabs{padding:6px 8px 0}
 .v15tabs{overflow-x:auto}
}
@media print{.v15menu,.v15dp,.v15bal,.v15add,.v15tot,.pdm{display:none!important}}
.form fieldset.v15dp,.form fieldset.v15tab{margin:0;min-width:0}.form fieldset.v15tab{padding:0;background:transparent;border:0;border-radius:0}.form fieldset.v15dp{padding:3px}
.v15dp .seg,.v15tab .seg{border:0;background:transparent;border-radius:0;padding:0;min-height:0}
.pagehead.v15head{border-bottom:0!important;padding-bottom:0!important}
.v15card .vs-date{position:relative}.v15dbox .w{position:absolute;top:0;right:0}
.v15tot .vtotbar .v15tl{font-family:var(--font);font-size:.86rem;font-weight:600;color:var(--ink2)}
.v15f[data-item="1"] .v15tot .vtotbar:has(#vt_qty:empty){display:none}
@media (pointer:coarse){.pdm .pdx kbd,.pdm .pdkeys{display:none}}
.v15top:has(.v15bal.pp-isempty):not(:has(.kb-lastbill:not([hidden]))),body.ppoff .v15top:not(:has(.kb-lastbill:not([hidden]))){grid-template-columns:minmax(0,1fr)}
.v15side{display:flex;flex-direction:column;gap:14px;min-width:0}.v15side .kb-lastbill{margin:0;max-width:none}
.v15card .kbs-dup{grid-column:1/-1;margin:0}
.v15card>*{order:2}.v15card>.vs-no{order:0}.v15card>.vs-date{order:1} /* DOM keeps date before number (Tab / Enter flow as v1.14.0) */
.rcmform .actions.sticky{justify-content:center} /* D-rcm-acc self-invoice: buttons centred like every voucher */
/* top card on a PC: row 1 = No. | Date | Party; row 2 = the fields this voucher needs, sharing the full width (a date keeps the Date width) */
@media (min-width:1024px){
 .v15card[data-card=item]{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense}
 .v15card[data-card=item]>.vs-no{order:0;grid-column:1}.v15card[data-card=item]>.vs-date{order:1;grid-column:2}.v15card[data-card=item]>.vparty{order:2;grid-column:3/span 2}
 .v15card[data-card=item]>.r2{order:3}.v15card[data-card=item]>.r2[data-span="1"]{grid-column:span 1}.v15card[data-card=item]>.r2[data-span="2"]{grid-column:span 2}.v15card[data-card=item]>.r2[data-span="3"]{grid-column:span 3}.v15card[data-card=item]>.r2[data-span="4"]{grid-column:span 4}
 .v15card[data-card=acct]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"no date party party inst"}
 .v15card[data-card=acct] .vs-no{grid-area:no}.v15card[data-card=acct] .vs-date{grid-area:date}.v15card[data-card=acct] .vparty{grid-area:party}.v15card[data-card=acct] .v15inst{grid-area:inst}
 .v15card[data-card] .vs-no,.v15card[data-card] .vs-date{order:0}
}
.v15card>[hidden]{display:none!important}
.v15card input.kbdate{padding-left:10px!important;padding-right:6px!important}
.v15pdbtn{padding:8px 10px!important;gap:4px;min-width:0;overflow:hidden;white-space:nowrap}
.v15tabs.v15one{border-bottom:0;margin:0 0 4px;justify-content:flex-end} /* item-only screens: no tab strip, just the "?" */
/* v1.15.0 declutter (owner, 5 Nov 2026) */
.v15head .gstbadge{display:none} /* tax split shows in the totals; POS stays in the Party details popup */
.v15h.v15nono .v15dot:last-of-type{display:none}
.v15qu{display:flex;align-items:stretch;min-width:0}.v15qu .qty{flex:1 1 auto;min-width:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important}
.v15qu .unit{flex:0 0 4.4em;width:4.4em!important;min-width:0;border-left:0!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important;background:var(--bg2);color:var(--muted);font-size:.78rem;text-align:center;padding-left:2px!important;padding-right:2px!important}
.v15qu .unit:focus{color:var(--ink)}
#charges tr.fxround,#charges tr.cline[hidden]{display:none}
.fxwrap.v15noch .tw,.fxwrap.v15noch .fxh{display:none}
.v15chline{margin:6px 0 0}.v15chl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.v15chl .vpl{margin:0;font-weight:600;color:var(--ink2)}.v15chl>:not(.vpl){flex:0 1 360px;min-width:0;max-width:100%}
select.cmode.v15hide{display:none}
.v15gm{border:0;background:none;padding:2px 0;font:inherit;font-size:.78rem;color:var(--muted);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.v15gm:hover,.v15gm:focus-visible{color:var(--ink)}
textarea.v15grow{resize:none;overflow:hidden;min-height:2.4em;line-height:1.4}
.v15numnote,.v15numwarn{grid-column:1/-1;margin:6px 0 0;font-size:.8rem;border-radius:8px;padding:6px 9px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.v15numnote{background:var(--infobg);color:var(--info)}.v15numwarn{background:var(--warnbg);color:var(--warn)}
.v15f .ppanel .pp-cl.over,.ppanel .pp-cl.over{background:var(--errbg)!important;color:var(--err)!important;font-weight:700}
input.kbs-filled,select.kbs-filled{cursor:help}
/* end v1.15.0 B-voucher */
/* v1.15.2 S-size: Screen size per user (<html data-kbsize>, set by the server): bada = the v1.15.1 size (no rule below touches it),
   normal = default, compact like Khatabahi FS (body 14px), chhota = more on one screen (13px). Done with the root font size (every rem
   in the app follows) and a few spacing values; no CSS zoom. Screen only: print / PDF unchanged (all rules are inside @media screen). */
@media screen and (min-width:761px){
 html[data-kbsize=normal]{font-size:14px}html[data-kbsize=chhota]{font-size:13px}
 html[data-kbsize=normal] body{font-size:14px}html[data-kbsize=chhota] body{font-size:13px}
 html[data-kbsize=normal]{--kz-btn:36px;--kz-btn-p:6px 13px;--kz-sm:30px;--kz-in:38px;--kz-in-p:7px 11px;--kz-cell:7px 10px;--kz-card:12px 14px;--kz-gap:10px;--kz-lab:10px}
 html[data-kbsize=chhota]{--kz-btn:32px;--kz-btn-p:5px 11px;--kz-sm:28px;--kz-in:34px;--kz-in-p:5px 9px;--kz-cell:5px 8px;--kz-card:10px 12px;--kz-gap:8px;--kz-lab:8px}
 html:not([data-kbsize=bada]) .btn{min-height:var(--kz-btn);padding:var(--kz-btn-p)}
 html:not([data-kbsize=bada]) .btn.sm{min-height:var(--kz-sm);padding:3px 10px}
 html:not([data-kbsize=bada]) .btn.big{padding:10px 14px}
 html:not([data-kbsize=bada]) .fysw select,html:not([data-kbsize=bada]) .filters input,html:not([data-kbsize=bada]) .filters select{min-height:var(--kz-btn);padding:5px 10px}
 html:not([data-kbsize=bada]) .form label{margin-bottom:var(--kz-lab)}
 html:not([data-kbsize=bada]) .form input:not([type=checkbox]):not([type=radio]),html:not([data-kbsize=bada]) .form select,html:not([data-kbsize=bada]) .form textarea{min-height:var(--kz-in);padding:var(--kz-in-p)}
 html:not([data-kbsize=bada]) .tbl.lines input,html:not([data-kbsize=bada]) .tbl.lines select{min-height:var(--kz-in)}
 html:not([data-kbsize=bada]) .tbl:not(.lines) td input:not([type=checkbox]):not([type=radio]),html:not([data-kbsize=bada]) .tbl:not(.lines) td select{min-height:var(--kz-sm);padding:4px 8px}
 html:not([data-kbsize=bada]) .seg label{min-height:var(--kz-in);padding:7px 14px}
 html:not([data-kbsize=bada]) .pb-seg label{min-height:var(--kz-sm);padding:5px 12px}
 html:not([data-kbsize=bada]) .tbl th,html:not([data-kbsize=bada]) .tbl td{padding:var(--kz-cell)}
 html:not([data-kbsize=bada]) .card,html:not([data-kbsize=bada]) .tile{padding:var(--kz-card)}
 html:not([data-kbsize=bada]) .chip{padding:10px 14px}
 html:not([data-kbsize=bada]) .hero{gap:var(--kz-gap)}html:not([data-kbsize=bada]) .hero .hs{gap:var(--kz-gap)}
 html:not([data-kbsize=bada]) .hero .hm{padding:16px 20px 14px}
 html:not([data-kbsize=bada]) .tiles{gap:var(--kz-gap)}
 html:not([data-kbsize=bada]) .tile .v{margin-top:4px}
 html:not([data-kbsize=bada]) .quick{gap:var(--kz-gap)}
 html:not([data-kbsize=bada]) .quick .btn.big{padding:12px 10px 10px;min-width:104px;gap:6px}
 html:not([data-kbsize=bada]) .quick .btn.big svg{padding:8px}
 html:not([data-kbsize=bada]) .flash{padding:9px 12px 9px 40px}html:not([data-kbsize=bada]) .flash::before{top:10px}
 html:not([data-kbsize=bada]) .actions.sticky .btn.big{min-height:var(--kz-in);padding:6px 18px}
 html:not([data-kbsize=bada]) .upth .upsw{height:40px}
}
/* PC (>=1024px): header height, left panel rows / width and the page padding follow the size */
@media screen and (min-width:1024px){
 html[data-kbsize=normal]{--kz-top:48px;--kz-nav:212px;--kz-row:34px;--kz-row-p:6px 10px;--kz-irow:30px;--kz-irow-p:5px 10px 5px 14px;--kz-side:24px}
 html[data-kbsize=chhota]{--kz-top:44px;--kz-nav:196px;--kz-row:30px;--kz-row-p:5px 10px;--kz-irow:27px;--kz-irow-p:4px 10px 4px 14px;--kz-side:20px}
 html:not([data-kbsize=bada]) .top{min-height:var(--kz-top)}
 html:not([data-kbsize=bada]) .biznav,html:not([data-kbsize=bada]) .kbnav{top:var(--kz-top)}
 html:not([data-kbsize=bada]) .kbnav:not(.mini){width:var(--kz-nav)}
 html:not([data-kbsize=bada]) body:has(.kbnav:not(.mini)){--kbnav-w:var(--kz-nav)}
 html:not([data-kbsize=bada]) body:has(.kbnav) .wrap{padding-top:calc(var(--kz-top) + 16px);padding-left:var(--kz-side);padding-right:var(--kz-side)}
 html:not([data-kbsize=bada]) body:not(:has(.biznav)) main.wrap{padding-top:calc(var(--kz-top) + 16px)}
 html:not([data-kbsize=bada]) .kbnav .kn-in{padding:8px 8px}
 html:not([data-kbsize=bada]) .kbnav a,html:not([data-kbsize=bada]) .kbnav .kg-h{min-height:var(--kz-row);padding:var(--kz-row-p);gap:10px}
 html:not([data-kbsize=bada]) .kbnav .kg-items a{min-height:var(--kz-irow);padding:var(--kz-irow-p)}
 html:not([data-kbsize=bada]) .kbnav .kn-mini{min-height:30px}
 html:not([data-kbsize=bada]) .kbnav.mini .kn-top,html:not([data-kbsize=bada]) .kbnav.mini .kg-h,html:not([data-kbsize=bada]) .kbnav.mini .kn-mini{padding:8px 0}
 html:not([data-kbsize=bada]) .pagehead{padding-bottom:8px;margin-bottom:12px}
 html:not([data-kbsize=bada]) .top .hsearch input{min-height:34px}
 html:not([data-kbsize=bada]) .top .hicons .hi{min-height:34px;padding:4px 8px}
 html:not([data-kbsize=bada]) .top .user a{padding:6px 8px}
 html:not([data-kbsize=bada]) .kbmark{width:26px;height:26px}
}
/* phone: Normal and Bada keep the v1.15.1 phone size (touch targets); Chhota is a little smaller, boxes stay 16px so the phone does not zoom */
@media screen and (max-width:760px){
 html[data-kbsize=chhota]{font-size:15px}html[data-kbsize=chhota] body{font-size:15px}
 html[data-kbsize=chhota] input:not([type=checkbox]):not([type=radio]),html[data-kbsize=chhota] select,html[data-kbsize=chhota] textarea{font-size:16px}
}
/* prefs: Screen size choice; the hint inside the picked (filled) segment keeps the segment's text colour */
.upsize .pb-seg label small{font-weight:500;font-size:.8em}.upsize .pb-seg label:has(input:checked) small{color:inherit}
@media (max-width:760px){.upsize .pb-seg{flex-direction:column}.upsize .pb-seg label{justify-content:flex-start;white-space:normal}.upsize .pb-seg label+label{border-left:0;border-top:1px solid var(--line2)}}
/* v1.15.2 header (PC >=1024px): brand on one line, business name readable (… only after ~9em, full name on hover), user = initials menu */
.top .umenu{display:none;position:relative}
.top .uav{list-style:none;cursor:pointer;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--hdr-pill,rgba(255,255,255,.14));color:var(--hdr-ink,#fff);font-weight:800;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4);font-size:.8rem;letter-spacing:.02em;user-select:none}
.top .uav::-webkit-details-marker{display:none}.top .uav::marker{content:''}
.top .uav:hover,.top .umenu[open] .uav{background:#FFFFFF;color:var(--hdr,#0A5E45)}
.top .uav:focus-visible{outline:2.5px solid var(--kgold);outline-offset:2px}
.top .um-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:240px;max-width:min(320px,calc(100vw - 24px));background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:var(--rs);box-shadow:var(--sh2);padding:6px;display:flex;flex-direction:column;gap:2px}
.top .um-who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;min-width:0}
.top .um-who b{display:block;color:var(--ink);font-size:.92rem;overflow-wrap:anywhere}.top .um-who small{display:block;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}
.top .user .um-pop a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none}
.top .user .um-pop a:hover,.top .user .um-pop a:focus-visible{background:var(--bg2);color:var(--ink)}
.top .user .um-pop a svg{width:18px;height:18px;color:var(--p);flex:none}
@media (min-width:1024px){
 .top .brand{flex:none}.top .brand a,.top .brand .bt{white-space:nowrap}
 .top .user{flex:none;gap:6px}.top .user .uname,.top .user .ulogout{display:none}.top .umenu{display:block}.top .user>a{white-space:nowrap}
 .top .hicons{flex:none}.top .kb1sw{flex:none}.top .kb1sw-a{white-space:nowrap}
 .top .ctx{flex:1 1 0;min-width:0}
 .top:has(.kb1sw) .ctx{min-width:0}
 .top .ctx .bizname{flex:0 1 auto;min-width:min(9em,100%);max-width:24em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .top .ctx .fy{flex:none;white-space:nowrap}
 .top .hsearch{flex:0 1 300px;min-width:170px}
}
/* 1024–1279px: the search box becomes its search button (same help search, Ctrl+K still works) so the business name keeps room */
@media (min-width:1024px) and (max-width:1279px){
 .top .hsearch{display:none}.top .hicons .js-helpbtn{display:inline-flex}.top .hicons .sugbtn .hl{display:none}
 .top{gap:8px}
}
/* v1.15.2 dashboard: an advance (the other side of the account) is shown with Cr / Dr in the normal ink colour */
.tile .v.adv,.tile.in .v.adv,.tile.out .v.adv{color:var(--ink)}
/* v1.15.2 letter keys in the left panel (Tally style): a subtle underline under each entry's letter; the mini panel's fly-out stays shut after Esc */
.kbnav u.hk{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:currentColor}
@media (min-width:1024px){.kbnav.mini .kg.hkshut:not(:hover)>.kg-items{display:none}}
/* end v1.15.2 S-size */

/* v1.15.0 E-engine: FS head picker (ledger form) and Head jodo */
.kbhead{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line,#dfe5e2);border-left:4px solid var(--acc,#0E7C5B);border-radius:10px;background:var(--accsoft,#E7F4EF)}
.kbhead>label{font-weight:600}
.kbhead-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(200px,2fr);gap:8px}
.kbhead-sel{min-width:0}
.kbhead-sugg{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.92em}
.kbhead-tag{background:var(--acc,#0E7C5B);color:#fff;border-radius:6px;padding:1px 7px;font-size:.85em}
.kbhead-where{min-height:1em}
.hjtbl td,.hjtbl th{vertical-align:middle}
.hjtbl select{max-width:340px}
.hjnote{border-left:4px solid var(--acc,#0E7C5B);padding:8px 12px;background:var(--accsoft,#E7F4EF);border-radius:8px}
@media (max-width:760px){.kbhead-row{grid-template-columns:1fr}.hjtbl select{max-width:100%}}
/* v1.17.0 einv: e-Invoice / e-Way bill page, voucher card, bulk list */
.eitabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.eitabs a{padding:7px 12px;border:1px solid var(--line2);border-radius:999px;background:var(--card);color:var(--ink2);font-weight:600;font-size:.88rem;text-decoration:none}.eitabs a:hover,.eitabs a:focus-visible{border-color:var(--p);color:var(--p)}
.eistat,.eibulk,.eiimp,.eiset,.eilaw,.eiview,.eicheck,.eimeta,.eipre{margin:0 0 14px}
.eibig{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin:0 0 8px}.eibig b{font-size:1.05rem;padding:3px 10px;border-radius:999px}.eibig.on b{background:var(--accsoft,#DDF3E8);color:var(--p2,#0A5E45)}.eibig.off b{background:var(--bg2);color:var(--ink2)}
.eifacts{margin:6px 0 10px;padding-left:18px}.eifacts li{margin:2px 0}
.eicheck.good{border-left:4px solid var(--p,#0E7C5B)}.eicheck.bad{border-left:4px solid #C62828}
.eilist ul,.eiimpres ul{margin:4px 0 0;padding-left:18px}
.eijson{max-height:420px;overflow:auto;background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;white-space:pre}
.eiirn{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.eiirn svg.qr{flex:none;border:1px solid var(--line);border-radius:6px}
.eikv{display:grid;gap:4px 14px;margin:0;min-width:0;flex:1}.eikv div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px}.eikv dt{color:var(--muted);font-size:.86rem}.eikv dd{margin:0;overflow-wrap:anywhere}
.eiirnv{font-size:.82rem}.eiacts{margin-top:8px}.eiprov{border-left:4px solid var(--gold,#C9A227)}
.eiov summary,.eicnl summary,.eimeta summary,.eipre summary{cursor:pointer;font-weight:600}
.eiset fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 12px}.eiset legend{font-weight:700;padding:0 6px}
@media (max-width:760px){.eikv div{grid-template-columns:1fr}.eilist td,.eilist th{white-space:nowrap}.eiirn svg.qr{width:120px;height:120px}}
/* v1.18.0 tds */
.tdsbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 14px;border-radius:12px;border:1.5px solid var(--acc);background:var(--accsoft);color:var(--ink);font-weight:600}
.tdsbar[hidden]{display:none}.tdsbar-ic{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:26px;border-radius:7px;background:var(--acc);color:var(--acc-ink);font-size:.78rem;font-weight:800;letter-spacing:.04em}
.tdsbar-t{flex:1 1 260px;min-width:0}.tdsbar.tdsbar-off{border-color:var(--warnline,#EFD28A);background:var(--warnbg);color:var(--warn)}.tdsbar.tdsbar-off .tdsbar-ic{background:var(--warn)}
.tdsbar.tdsbar-info{border-style:dashed;background:var(--card,#fff);color:var(--ink2);font-weight:500}.tdsbar.tdsbar-info .tdsbar-ic{background:var(--ink2)}
.tdsview{margin:12px 0}.tdsview-h{font-size:1rem;margin:0 0 8px}.tdsview-just{margin:0 0 8px;padding:8px 12px;border-radius:10px;background:var(--okbg);color:var(--ok)}
.tdsst{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:700;background:var(--bg2);color:var(--ink2);white-space:nowrap}
.tdsst-deducted{background:var(--warnbg);color:var(--warn)}.tdsst-deposited,.tdsst-challan{background:var(--infobg);color:var(--info)}.tdsst-filed{background:var(--okbg);color:var(--ok)}.tdsst-undone{background:var(--bg2);color:var(--ink3,#888)}
.tdstop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.tdstabs{margin:0 0 14px}.tdstabs a.on{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
.tdskpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.tdsk{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}.tdsk span{color:var(--ink2);font-size:.85rem;font-weight:600}.tdsk b{font-size:1.35rem}
.tdsk.warn{border-color:var(--warnline,#EFD28A);background:var(--warnbg)}.tdsk.warn b{color:var(--warn)}
.tdsrem{list-style:none;margin:0;padding:0;display:grid;gap:6px}.tdsrem li{padding:8px 12px;border-radius:10px;border-left:4px solid var(--acc);background:var(--bg2)}.tdsrem li.tdsrem-late{border-left-color:var(--err);background:var(--errbg)}.tdsrem li.tdsrem-today{border-left-color:var(--warn);background:var(--warnbg)}
.tdsrem-amt{font-weight:700;color:var(--acc-text)}.tdsph{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tdsprop{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 0;border-top:1px solid var(--line)}.tdsprop-t{flex:1 1 320px;min-width:0}.tdsprop-a,.tdsprop-x{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tdsprop-x input{max-width:160px}
.tdsupg{margin:0 0 14px}.tdskey-v{display:block;margin-top:6px;padding:8px;border-radius:8px;background:var(--card,#fff);word-break:break-all;user-select:all}
.tdssimple{display:grid;gap:6px;padding:10px 12px;border-radius:10px;background:var(--accsoft);grid-column:1/-1}.tdss-line{margin:0;font-weight:600}.tdsp-warn{color:var(--err);font-weight:700}.tdsp .tdsp-pan{margin:6px 0 10px}
.tdsapp-links{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:760px){.tdskpi{grid-template-columns:repeat(2,minmax(0,1fr))}.tdsprop-x input{max-width:none;flex:1}.tdsbar-k{width:100%}}
