:root{ --mark:url(data:image/png;base64,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); --mark-tile:url(data:image/png;base64,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) }
/* =====================================================================
   IFFI Operations — design tokens (the only file allowed to hold a raw
   colour, a px font size or a px space). Everything else says var(--…).

   Names mirror the Figma library "IFFI Design System"
   (https://www.figma.com/design/l1701ccfMu638S3hBgQ78O): the Figma variable
   bg/brand is var(--bg-brand) here, space/4 is var(--space-4), and so on.

   Light is the default. Dark applies only when <html data-theme="dark">
   is set (the app does not follow the OS setting; that was switched off
   on purpose in 2026-09 and stays off).
   ===================================================================== */
:root{
  color-scheme:light;

  /* ---------- primitives (never used directly outside this file) ---------- */
  --gray-0:#ffffff; --gray-50:#f7f7f7; --gray-100:#efefef; --gray-200:#e3e3e3; --gray-300:#cfcfcf;
  --gray-400:#a8a8a8; --gray-500:#7a7a7a; --gray-550:#6b6b6b; --gray-600:#5c5c5c; --gray-700:#3f3f3f; --gray-800:#2a2a2a;
  --gray-900:#1a1a1a; --gray-950:#111111;
  --red-50:#fbe8e8; --red-100:#f5c9c9; --red-500:#cb0002; --red-600:#a50002; --red-700:#7f0002; --red-900:#3a0a0b;
  --gold-500:#ffc112; --gold-200:#ffe98f;
  --red-300:#ff6f68;
  --green-50:#e6f4eb; --green-400:#4cb56f; --green-600:#0a7d32;
  --amber-50:#fff4dc; --amber-400:#e0a23a; --amber-600:#b26a00; --amber-700:#9a5c00;
  --blue-600:#2a6fd6; --orange-600:#e2681f; --violet-600:#6a4bb5;
  --black-a06:rgba(0,0,0,.06); --black-a10:rgba(0,0,0,.10); --black-a16:rgba(0,0,0,.16); --black-a45:rgba(0,0,0,.45); --black-a72:rgba(0,0,0,.72);
  --white-a45:rgba(255,255,255,.45); --white-a86:rgba(255,255,255,.86);
  --red-a20:rgba(203,0,2,.20);

  /* ---------- semantic colour · Light ---------- */
  --bg-page:var(--gray-50); --bg-surface:var(--gray-0); --bg-surface-raised:var(--gray-0);
  --bg-muted:var(--gray-100); --bg-hover:var(--gray-100); --bg-selected:var(--red-50);
  --bg-inverse:var(--gray-900); --bg-disabled:var(--gray-100); --bg-input:var(--gray-0);
  --bg-table-header:var(--gray-50); --bg-overlay:var(--black-a45); --bg-scrim:var(--white-a86);
  --bg-brand:var(--red-500); --bg-brand-hover:var(--red-600); --bg-brand-pressed:var(--red-700);
  --bg-success:var(--green-50); --bg-warning:var(--amber-50); --bg-danger:var(--red-50);
  --text-primary:var(--gray-900); --text-secondary:var(--gray-600); --text-muted:var(--gray-550);
  --text-disabled:var(--gray-400); --text-inverse:var(--gray-0); --text-brand:var(--red-500);
  --text-on-brand:var(--gray-0); --text-success:var(--green-600); --text-warning:var(--amber-700);
  --text-danger:var(--red-600); --text-link:var(--gray-900);
  --border-default:var(--gray-200); --border-strong:var(--gray-300); --border-subtle:var(--gray-100);
  --border-input:var(--gray-300); --border-focus:var(--red-500); --border-danger:var(--red-500);
  --border-inverse:var(--gray-700);
  --icon-default:var(--gray-600); --icon-muted:var(--gray-400); --icon-brand:var(--red-500);
  --icon-on-brand:var(--gray-0); --icon-inverse:var(--gray-0);
  --chart-series-1:var(--gray-900); --chart-series-2:var(--gray-400); --chart-grid:var(--gray-200);
  --chart-money-customer:var(--green-600); --chart-money-supplier:var(--blue-600);
  --chart-money-expense:var(--orange-600); --chart-money-partner:var(--violet-600);
  --brand-logo-red:var(--red-500); --brand-logo-gold:var(--gold-500);
  --brand-logo-red-light:var(--red-300); --brand-logo-gold-light:var(--gold-200);
  --shadow-color:var(--black-a06); --shadow-color-md:var(--black-a10); --shadow-color-lg:var(--black-a16);
  --focus-ring:var(--red-a20);
  --status-warning-mark:var(--amber-400); --status-success-mark:var(--green-400);

  /* the printed document keeps paper colours in both themes */
  --paper:var(--gray-0); --paper-ink:var(--gray-900); --paper-ink-2:var(--gray-600); --paper-muted:var(--gray-500);
  --paper-line:var(--gray-300); --paper-line-strong:var(--gray-900); --paper-head:var(--gray-100); --paper-tint:var(--gray-50);
  --paper-due:var(--red-50); --paper-red:var(--red-500);

  /* ---------- type ---------- */
  --font-family:"Noto Sans Arabic",system-ui,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,"Cascadia Mono",Consolas,monospace;
  --font-size-xs:11px; --font-size-sm:12px; --font-size-md:14px; --font-size-lg:16px; --font-size-xl:20px; --font-size-2xl:28px;
  --font-line-height-xs:16px; --font-line-height-sm:16px; --font-line-height-md:20px; --font-line-height-lg:24px; --font-line-height-xl:28px; --font-line-height-2xl:36px;
  --font-weight-regular:400; --font-weight-medium:500; --font-weight-semibold:600;
  --font-letter-spacing-label:.04em;
  /* document (A4) scale — the printed invoice is read on paper, not a screen */
  --doc-font-size-2xs:9px; --doc-font-size-xs:11px; --doc-font-size-sm:12px; --doc-font-size-md:13px; --doc-font-size-lg:14px; --doc-font-size-xl:17px;
  --doc-font-size-print:9.5pt;
  /* the signature and the stamp in a document's signature block, the height of a real stamp on A4 */
  --size-doc-mark:24mm;
  /* on paper a hand signature runs about 20 mm high and up to 65 mm long; a company stamp is about 28 mm high and up to 46 mm wide */
  --size-doc-sign:20mm; --size-doc-sign-wide:65mm; --size-doc-stamp:28mm; --size-doc-stamp-wide:46mm;
  /* an A4 sheet on a screen, before it is shrunk to fit a phone */
  --size-doc-sheet:210mm;
  /* the QR code of the customer's link on a printed pro forma: large enough for a phone camera at arm's length */
  --size-doc-qr:24mm; --size-time-box:64px;

  /* ---------- space (8px grid, 4px half step) ---------- */
  --space-0:0; --space-05:2px; --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;

  /* ---------- radius · size · border ---------- */
  --radius-sm:4px; --radius-md:8px; --radius-full:999px;
  --size-control-sm:32px; --size-control-md:36px; --size-control-lg:40px; --size-touch:44px;
  --size-row:40px; --size-row-dense:36px; --size-icon-sm:16px; --size-icon:20px; --size-avatar:32px; --size-mark:34px;
  --size-sidebar:240px; --size-sidebar-collapsed:64px; --size-topbar:56px; --size-content-max:1280px;
  --border-width:1px; --border-width-strong:2px; --focus-ring-width:3px;

  /* ---------- elevation ---------- */
  --shadow-sm:0 1px 2px var(--shadow-color);
  --shadow-md:0 4px 12px var(--shadow-color-md);
  --shadow-lg:0 16px 40px var(--shadow-color-lg);
  --focus-ring-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring);

  /* ---------- motion ---------- */
  --ease-out:cubic-bezier(0.23,1,0.32,1); --ease-in-out:cubic-bezier(0.77,0,0.175,1); --ease-drawer:cubic-bezier(0.32,0.72,0,1);
  --duration-fast:120ms; --duration-base:160ms; --duration-slow:260ms;

  /* ---------- legacy names (the JS still says var(--ink), var(--in) …) ---------- */
  --bg:var(--bg-page); --surface:var(--bg-surface); --surface-2:var(--bg-muted);
  --ink:var(--text-primary); --ink-2:var(--text-secondary); --muted:var(--text-muted); --inverse:var(--text-inverse);
  --line:var(--border-default); --line-2:var(--border-strong); --focus:var(--border-focus);
  --brand:var(--bg-brand); --brand-dk:var(--bg-brand-hover); --brand-tint:var(--bg-selected);
  --brand-2:var(--status-warning-mark); --brand-2-tint:var(--bg-warning);
  --warn:var(--status-warning-mark); --warn-tint:var(--bg-warning); --warn-ink:var(--text-warning);
  --crit:var(--text-danger); --crit-tint:var(--bg-danger);
  --in:var(--chart-money-customer); --sup:var(--chart-money-supplier); --exp:var(--chart-money-expense); --par:var(--chart-money-partner);
  --in-tint:color-mix(in srgb,var(--chart-money-customer) 12%,transparent);
  --sup-tint:color-mix(in srgb,var(--chart-money-supplier) 12%,transparent);
  --exp-tint:color-mix(in srgb,var(--chart-money-expense) 12%,transparent);
  --par-tint:color-mix(in srgb,var(--chart-money-partner) 12%,transparent);
  --slate:var(--chart-series-2); --grid:var(--chart-grid); --axis:var(--border-strong);
  --shadow:var(--shadow-lg); --shadow-1:var(--shadow-sm);
  --font-ui:var(--font-family); --font-fig:var(--font-family);
  --fs-label:var(--font-size-xs); --fs-note:var(--font-size-sm); --fs-body:var(--font-size-md); --fs-title:var(--font-size-lg);
  --fs-fig:var(--font-size-xl); --fs-lead:var(--font-size-2xl); --fs-display:var(--font-size-2xl); --fs-hero:var(--font-size-2xl);
  --lh-label:var(--font-line-height-xs); --lh-note:var(--font-line-height-sm); --lh-body:var(--font-line-height-md); --lh-title:var(--font-line-height-lg);
  --lh-fig:var(--font-line-height-xl); --lh-lead:var(--font-line-height-2xl); --lh-display:var(--font-line-height-2xl);
  --fw-reg:var(--font-weight-regular); --fw-med:var(--font-weight-medium); --fw-semi:var(--font-weight-semibold); --fw-fig:var(--font-weight-semibold);
  --ls-label:var(--font-letter-spacing-label);
  --side-bg:var(--bg-surface); --side-ink:var(--text-primary); --side-muted:var(--text-muted); --side-line:var(--border-default); --side-hover:var(--bg-hover);
  --subnav-h:48px;
}

/* ---------- Dark (explicit only) ---------- */
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg-page:var(--gray-950); --bg-surface:var(--gray-900); --bg-surface-raised:var(--gray-800);
  --bg-muted:var(--gray-800); --bg-hover:var(--gray-800); --bg-selected:var(--red-900);
  --bg-inverse:var(--gray-50); --bg-disabled:var(--gray-800); --bg-input:var(--gray-900);
  --bg-table-header:var(--gray-900); --bg-overlay:var(--black-a72); --bg-scrim:var(--black-a72);
  --bg-success:var(--gray-800); --bg-warning:var(--gray-800); --bg-danger:var(--red-900);
  --text-primary:var(--gray-50); --text-secondary:var(--gray-300); --text-muted:var(--gray-400);
  --text-disabled:var(--gray-600); --text-inverse:var(--gray-900); --text-link:var(--gray-50);
  --text-success:var(--green-400); --text-warning:var(--amber-400); --text-danger:var(--red-100);
  --border-default:var(--gray-700); --border-strong:var(--gray-600); --border-subtle:var(--gray-800);
  --border-input:var(--gray-600); --border-inverse:var(--gray-300);
  --icon-default:var(--gray-300); --icon-muted:var(--gray-500); --icon-inverse:var(--gray-900);
  --chart-series-1:var(--gray-50); --chart-series-2:var(--gray-500); --chart-grid:var(--gray-800);
  --chart-money-customer:var(--green-400);
  --shadow-color:var(--black-a16); --shadow-color-md:var(--black-a45); --shadow-color-lg:var(--black-a72);
}
/* =====================================================================
   IFFI Operations — the one stylesheet.

   Replaces the 11 fragments and the build-time patches that used to be
   inlined as 18 style blocks. Every colour, size and space is a token from
   tokens.css (design/lint-tokens.js fails the build otherwise). Logical
   properties throughout, so <html dir="rtl"> mirrors the whole app.

   Order: base → shell → layout → figures → chips/alerts → controls → tables
   → lists → charts → forms → dashboard pieces → search/viewers → products
   → ledger register → style guide hooks → invoice document → motion →
   responsive → print.
   ===================================================================== */

/* ---------- base ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html,body{overflow-x:clip}
html{scroll-padding-top:calc(var(--size-topbar) + var(--space-4))}
body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--font-line-height-md);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);font-weight:var(--font-weight-semibold);text-wrap:balance;letter-spacing:normal}
h2{font-size:var(--font-size-lg);line-height:var(--font-line-height-lg);font-weight:var(--font-weight-semibold);text-wrap:balance}
h3{font-size:var(--font-size-md);line-height:var(--font-line-height-md);font-weight:var(--font-weight-semibold)}
:focus-visible{outline:var(--border-width-strong) solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}
::selection{background:var(--bg-selected);color:var(--text-primary)}
.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}
.pos{color:var(--text-success)}
.neg{color:var(--text-danger)}
.muted{color:var(--text-muted)}
.sub{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm)}
.q{font-size:var(--font-size-xs);line-height:var(--font-line-height-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);font-weight:var(--font-weight-semibold)}
.hr{height:1px;background:var(--border-default);margin:var(--space-1) 0}
code{font-family:var(--font-mono);font-size:var(--font-size-sm)}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--size-sidebar) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.side{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:var(--space-1);min-width:0;
  padding:var(--space-4) var(--space-3) var(--space-3);background:var(--bg-surface);color:var(--text-primary);
  border-inline-end:var(--border-width) solid var(--border-default);overflow-y:auto;overscroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--border-default) transparent}
.side > *{flex:none}
.side .spacer{flex:1 1 auto;min-height:var(--space-2)}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:0 var(--space-2) var(--space-3)}
.brand > div{min-width:0;width:100%}
.brand b{display:block;font-size:var(--font-size-md);line-height:var(--font-line-height-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}
.brand small{display:block;margin-top:var(--space-05);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);color:var(--text-muted);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand img.logo{height:var(--size-control-sm);width:auto;flex:none;display:block}
/* the burst's light: the logo is drawn once; a band of light crosses the red and gold petals through two masks */
.logomark{position:relative;display:inline-block;line-height:0;flex:none;--logo-red:url(data:image/png;base64,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);--logo-yellow:url(data:image/png;base64,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)}/*LOGO-MASK*/
.logomark img.logo{display:block}
@supports ((-webkit-mask-image:url(a)) or (mask-image:url(a))){
  .logomark::before,.logomark::after{content:"";position:absolute;inset:0;background-repeat:repeat;background-size:90px 100%;animation:sheen 2.8s linear infinite}
  .logomark::after{background-image:linear-gradient(100deg,var(--brand-logo-red) 0%,var(--brand-logo-red) 24%,var(--brand-logo-red-light) 50%,var(--brand-logo-red) 76%,var(--brand-logo-red) 100%);
    -webkit-mask:var(--logo-red) center/contain no-repeat;mask:var(--logo-red) center/contain no-repeat}
  .logomark::before{background-image:linear-gradient(100deg,var(--brand-logo-gold) 0%,var(--brand-logo-gold) 24%,var(--brand-logo-gold-light) 50%,var(--brand-logo-gold) 76%,var(--brand-logo-gold) 100%);
    animation-direction:reverse;animation-delay:.7s;
    -webkit-mask:var(--logo-yellow) center/contain no-repeat;mask:var(--logo-yellow) center/contain no-repeat}
}
@keyframes sheen{0%{background-position:0 0}60%{background-position:90px 0}100%{background-position:90px 0}}
.gsearch{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:start;cursor:pointer;
  border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);
  background:var(--bg-muted);color:var(--text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-1)}
.gsearch svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}
.gsearch kbd{margin-inline-start:auto;font-family:inherit;font-size:var(--font-size-xs);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-sm);padding:0 var(--space-1);color:var(--text-muted)}
.gsearch:hover{background:var(--bg-hover);color:var(--text-primary)}
.modnav{display:flex;flex-direction:column;gap:var(--space-05);margin-top:var(--space-1)}
.navgroup{font-size:var(--font-size-xs);line-height:var(--font-line-height-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);padding:var(--space-3) var(--space-3) var(--space-1)}
.nav{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:start;cursor:pointer;position:relative;
  padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:none;text-decoration:none;
  color:var(--text-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-md);min-height:var(--size-control-md)}
.nav svg{width:var(--size-icon);height:var(--size-icon);flex:none;color:var(--icon-default)}
.nav:hover,.nav.is-hover{background:var(--bg-hover);color:var(--text-primary)}
.nav.active{background:var(--bg-brand);color:var(--text-on-brand)}
.nav.active svg{color:var(--icon-on-brand)}
.badge{margin-inline-start:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);min-width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);display:none;place-items:center;padding:0 var(--space-1)}
.badge.on{display:grid;background:var(--bg-brand);color:var(--text-on-brand)}
.nav.active .badge.on{background:var(--bg-surface);color:var(--text-brand)}
.side .btn[data-add]{justify-content:center}
.side .who{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3) var(--space-2) 0;border-top:var(--border-width) solid var(--border-default);font-size:var(--font-size-sm);color:var(--text-secondary)}
.avatar{width:var(--size-avatar);height:var(--size-avatar);border-radius:var(--radius-full);background:var(--bg-muted);color:var(--text-secondary);display:grid;place-items:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex:none}
.who-links{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-05)}
.who-links .link{font-size:var(--font-size-sm);padding:0;min-height:0;text-align:start}
main{min-width:0;width:100%;max-width:var(--size-content-max);padding:var(--space-6) var(--space-8) var(--space-16)}
.topbar,.tabbar{display:none}
.topbar .iconbtn{border:var(--border-width) solid var(--border-strong);background:var(--bg-surface);border-radius:var(--radius-md);width:var(--size-control-md);height:var(--size-control-md);display:grid;place-items:center;cursor:pointer}
.topbar .iconbtn svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}
.more-menu{position:fixed;inset-inline:var(--space-3);bottom:78px;background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2);display:grid;grid-template-columns:1fr;gap:var(--space-05);z-index:16;max-height:calc(100dvh - 110px);overflow:auto}
.more-menu .nav{padding:var(--space-3)}
.more-menu .who{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary)}
.more-menu .who-links{gap:var(--space-4)}
.more-menu .who-links .link{min-height:var(--size-touch);display:inline-flex;align-items:center}
.more-account{grid-column:1/-1;border-top:var(--border-width) solid var(--border-default);margin-top:var(--space-1);padding-top:var(--space-1);display:grid;grid-template-columns:1fr;gap:var(--space-1)}
.more-account [data-signout]{color:var(--text-brand)}

/* the sections of the module you are in */
.subnav{display:flex;gap:var(--space-05);flex-wrap:wrap;margin:0 0 var(--space-5);padding:var(--space-2) 0 0;border-bottom:var(--border-width) solid var(--border-default);position:sticky;top:0;z-index:6;background:var(--bg-page)}
.subsep{width:1px;align-self:stretch;margin:var(--space-1) var(--space-2) var(--space-2);background:var(--border-default)}
/* F367 (follow-up, 27 Sep 2026): defensive — a break on a module's first tab must never draw a leading divider */
.subnav>.subsep:first-child{display:none}
.subtab{border:0;border-bottom:var(--border-width-strong) solid transparent;margin-bottom:-1px;background:none;cursor:pointer;white-space:nowrap;
  padding:var(--space-2) var(--space-3) var(--space-2);border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  font-weight:var(--font-weight-medium);font-size:var(--font-size-md);color:var(--text-secondary)}
.subtab:hover,.subtab.is-hover{color:var(--text-primary)}
.subtab.on,.subtab.on:hover{color:var(--text-primary);font-weight:var(--font-weight-semibold);border-bottom-color:var(--bg-brand)}

/* ---------- page head & layout ---------- */
.pagehead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;position:relative;
  padding-bottom:var(--space-4);border-bottom:var(--border-width) solid var(--border-default);margin-bottom:var(--space-5)}
.pagehead .sub{margin-top:var(--space-1);max-width:78ch}
.pagehead .row.wrap{gap:var(--space-2)}
.demo-note{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--text-secondary);border:var(--border-width) dashed var(--border-strong);border-radius:var(--radius-full);padding:var(--space-05) var(--space-2)}
.grid{display:grid;gap:var(--space-4)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:var(--space-3)}
.row{display:flex;align-items:center;gap:var(--space-2)}
.row.between{justify-content:space-between}
.row.wrap{flex-wrap:wrap}
.card{background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);min-width:0;box-shadow:var(--shadow-sm)}
.card.pad0{padding:0;overflow:clip}
.card.span-all{grid-column:1/-1}
.card h2{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}
.card h2 .link{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px;background:none;border:0;cursor:pointer;padding:0}
.card h2 .link:hover{color:var(--text-brand)}
.card h2 .muted{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.02em}
.legend{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;font-size:var(--font-size-sm);color:var(--text-secondary)}
.legend span,.legend .lg{display:inline-flex;align-items:center;gap:var(--space-1)}
.legend .lg::before{content:"";width:10px;height:10px;border-radius:var(--radius-sm);background:var(--chart-money-supplier)}
.legend .lg.paid::before{background:var(--chart-money-customer)}
.dot{display:inline-block;width:10px;height:10px;border-radius:var(--radius-full);flex:none;vertical-align:middle}
.dot.in{background:var(--chart-money-customer)}.dot.sup{background:var(--chart-money-supplier)}.dot.exp{background:var(--chart-money-expense)}.dot.par{background:var(--chart-money-partner)}

/* ---------- figures ---------- */
.hero,.fig{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hero{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);margin:var(--space-1) 0 0}
.fig{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl)}
.fig.md{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.hero .cur,.fig .cur{font-size:.5em;font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-inline-start:var(--space-1);letter-spacing:0}
.kpis{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.kpis > .kpi{flex:1 1 190px}
.kpi{background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4);min-width:0;box-shadow:var(--shadow-sm)}
.kpi .q{font-size:var(--font-size-xs)}
.kpi .fig{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);margin-top:var(--space-2);overflow-wrap:anywhere}
.kpi .sub{margin-top:var(--space-1)}
.kpi-go{cursor:pointer}
.kpi-go:hover{border-color:var(--border-strong)}
/* an outline, like every other control: the ledger look sets the tiles' box-shadow to none, which wiped a shadow ring */
.kpi-go:focus-visible{outline:var(--border-width-strong) solid var(--border-focus);outline-offset:2px}
.kpi.flag{box-shadow:var(--shadow-sm),inset 0 3px 0 var(--status-warning-mark)}
.kpi.flag .fig{color:var(--text-warning)}
.kpi.flag.crit{box-shadow:var(--shadow-sm),inset 0 3px 0 var(--bg-brand)}
.kpi.flag.crit .fig{color:var(--text-danger)}
/* the dashboard strip: the first tile leads, in ink rather than red */
.kpis.dash{display:grid;grid-template-columns:1.35fr repeat(5,minmax(0,1fr));gap:var(--space-3)}
.kpis.dash.prodkpis{grid-template-columns:1.35fr repeat(var(--n,4),minmax(0,1fr));margin-bottom:var(--space-4)}
.kpis.dash .kpi:first-child{position:relative;overflow:hidden;background:var(--bg-inverse);border-color:var(--bg-inverse);color:var(--text-inverse)}
.kpis.dash .kpi:first-child .q,.kpis.dash .kpi:first-child .sub{color:var(--text-inverse);opacity:.8}
.kpis.dash .kpi:first-child .fig{color:var(--text-inverse)}
.kpis.dash .kpi:first-child.flag .fig{color:var(--status-warning-mark)}
.kpis.dash .kpi:first-child.flag.crit .fig{color:var(--text-inverse);text-decoration:underline;text-decoration-color:var(--bg-brand);text-underline-offset:6px}
.kpis.dash .kpi:first-child::before{content:"";position:absolute;inset-inline-end:-38px;bottom:-52px;width:196px;height:196px;background:var(--text-inverse);opacity:.08;pointer-events:none;
  -webkit-mask:var(--mark) center/contain no-repeat;mask:var(--mark) center/contain no-repeat}
.kpis.dash.prodkpis .fig .cur{font-size:.55em;font-weight:var(--font-weight-semibold);opacity:.85;margin-inline-start:var(--space-05)}
.kpis.dash.prodkpis .fig .of{font-size:.6em;font-weight:var(--font-weight-medium);color:var(--text-muted)}
.quick{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:calc(-1 * var(--space-2)) 0 var(--space-4)}
.quick .btn.ghost{font-weight:var(--font-weight-medium)}
.mtile{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);position:relative;background:var(--bg-surface)}
.mtile.warning{border-color:var(--status-warning-mark)}
.mtile.critical{border-color:var(--bg-brand)}
.mtile .q{margin-bottom:var(--space-1)}
.mtile .fig{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.mtile .low{font-size:var(--font-size-sm);margin-top:var(--space-1);color:var(--text-secondary);display:flex;gap:var(--space-1);align-items:flex-start}
.mtile .low svg{width:14px;height:14px;flex:none;margin-top:var(--space-05)}
.kpirow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4);margin:var(--space-4) 0 var(--space-1)}
.kpirow .q{color:var(--text-secondary)}
.kpirow .fig{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);margin-top:var(--space-1)}
.kpirow .sub{margin-top:var(--space-05)}
.kpirow b.up{color:var(--text-success)}
.kpirow b.down{color:var(--text-danger)}
.stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;position:relative}
.stage{padding:var(--space-3) var(--space-3) var(--space-3) 0;position:relative}
.stage::before{content:"";position:absolute;inset-inline:0 var(--space-2);top:0;height:3px;border-radius:var(--radius-sm);background:var(--border-strong)}
.stage.done::before{background:var(--text-primary)}
.stage.next::before{background:var(--chart-money-supplier)}
.stage .q{margin-bottom:var(--space-1)}
.stage .fig{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.stage .sub{margin-top:var(--space-1)}
.partner-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);align-items:start}
.partner-card .avatar{width:var(--size-touch);height:var(--size-touch);font-size:var(--font-size-lg)}
.kv{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-3);font-size:var(--font-size-md)}
.kv .num{font-weight:var(--font-weight-semibold)}
.report{display:flex;flex-direction:column;gap:var(--space-2)}
.report h3{font-size:var(--font-size-md);min-height:2.6em}
.report .sub{flex:1}

/* ---------- chips, badges, alerts, empty states ---------- */
.type{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-05) var(--space-2) var(--space-05) var(--space-1);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.type svg{width:12px;height:12px}
.type.in{background:var(--in-tint);color:var(--chart-money-customer)}
.type.sup{background:var(--sup-tint);color:var(--chart-money-supplier)}
.type.exp{background:var(--exp-tint);color:var(--chart-money-expense)}
.type.par{background:var(--par-tint);color:var(--chart-money-partner)}
.state{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-05) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:var(--border-width) solid var(--border-strong);color:var(--text-secondary);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.state svg{width:12px;height:12px}
.state.paid{background:var(--bg-success);border-color:transparent;color:var(--text-success)}
.state.expected{border-style:dashed}
.state.overdue{background:var(--bg-danger);border-color:transparent;color:var(--text-danger)}
.state.soon{background:var(--bg-warning);border-color:transparent;color:var(--text-warning)}
.batch{display:inline-flex;align-items:center;gap:var(--space-1);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-05) var(--space-2);font-size:var(--font-size-sm);margin:var(--space-05) var(--space-1) var(--space-05) 0;font-variant-numeric:tabular-nums}
.batch.warn{border-color:var(--status-warning-mark);background:var(--bg-warning)}
.batch.crit{border-color:var(--border-danger);background:var(--bg-danger);color:var(--text-danger)}
.batch code{font-size:var(--font-size-sm)}
button.batch{cursor:pointer;background:var(--bg-surface);color:inherit;font:inherit}
button.batch:hover{border-color:var(--text-secondary)}
.alert{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--bg-surface)}
.alert svg{width:var(--size-icon);height:var(--size-icon);flex:none;margin-top:1px;color:var(--icon-default)}
.alert.critical{border-color:var(--border-danger);background:var(--bg-danger)}
.alert.critical > svg{color:var(--text-danger)}
.alert.warning{border-color:var(--status-warning-mark);background:var(--bg-warning)}
.alert.warning > svg{color:var(--text-warning)}
.alert.info{border-color:var(--chart-money-supplier);background:var(--sup-tint)}
.alert.info > svg{color:var(--chart-money-supplier)}
.alert.good{border-color:var(--chart-money-customer);background:var(--bg-success)}
.alert.good > svg{color:var(--text-success)}
.alert b{display:block;font-weight:var(--font-weight-semibold)}
.alert .sub{margin-top:var(--space-05)}
/* only the title stands on its own line; a figure in bold inside the text stays in its sentence */
.alert .sub b,.alert .fix b{display:inline}
.alert .fix{margin-top:var(--space-1);font-size:var(--font-size-md)}
.alert .fix .btn{margin-top:var(--space-05)}
.blank{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-12) var(--space-6);position:relative;overflow:hidden;isolation:isolate;
  background:var(--bg-surface);border:var(--border-width) dashed var(--border-strong);border-radius:var(--radius-md)}
.blank > svg{width:var(--size-icon);height:var(--size-icon);color:var(--icon-default);background:var(--bg-muted);padding:var(--space-3);border-radius:var(--radius-full);box-sizing:content-box}
.blank b{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}
.blank p{max-width:52ch;margin:0}
.blank .btn{margin-top:var(--space-1)}
.blank::after{content:"";position:absolute;inset-inline-end:var(--space-5);bottom:var(--space-4);width:104px;height:104px;z-index:-1;background:var(--mark) center/contain no-repeat;opacity:.07;pointer-events:none}
.empty{padding:var(--space-6);text-align:center;color:var(--text-muted)}
.skeleton{display:block;background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-hover) 37%,var(--bg-muted) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease infinite;min-height:1em}
@keyframes shimmer{from{background-position:100% 0}to{background-position:0 0}}
.progress-pill{display:inline-flex;align-items:center;gap:var(--space-2);border:var(--border-width) solid var(--border-strong);background:var(--bg-surface);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}
.progress-pill .ring{width:18px;height:18px;border-radius:var(--radius-full);background:conic-gradient(var(--text-primary) calc(var(--v)*360deg),var(--bg-muted) 0);flex:none}
.steps{display:flex;flex-direction:column;gap:var(--space-2)}
.step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);align-items:center;background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}
.step .mark{width:28px;height:28px;border-radius:var(--radius-full);display:grid;place-items:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);background:var(--bg-muted);color:var(--text-secondary);flex:none}
.step .mark svg{width:15px;height:15px}
.step.done{background:var(--bg-page)}
.step.done .mark{background:var(--text-success);color:var(--text-inverse)}
.step .body{min-width:0}
.step .body b{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);display:block;overflow-wrap:break-word}
.step.done .body b{color:var(--text-secondary)}
.step .acts{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}
.secrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--border-default)}
.secrow:last-of-type{border-bottom:0}
.secrow b{font-weight:var(--font-weight-semibold)}
.secdot{width:28px;height:28px;border-radius:var(--radius-full);display:grid;place-items:center;flex:none;background:var(--bg-warning);color:var(--text-warning)}
.secdot.on{background:var(--bg-success);color:var(--text-success)}
.secdot svg{width:15px;height:15px}
.secsteps{margin:0;padding-inline-start:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--font-size-md)}
.secsteps li{padding-inline-start:var(--space-1)}
.secsteps b{font-weight:var(--font-weight-semibold)}
.secsteps .sub{margin-top:var(--space-2)}
.qrbox{width:184px;height:184px;margin:var(--space-3) 0;padding:var(--space-2);background:var(--paper);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);display:grid;place-items:center}
.qrbox svg{width:100%;height:100%;display:block}
.seckey{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:.08em;background:var(--bg-muted);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-top:var(--space-1);overflow-wrap:break-word;user-select:all}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--size-control-md);padding:var(--space-2) var(--space-4);
  border-radius:var(--radius-md);border:var(--border-width) solid var(--bg-brand);background:var(--bg-brand);color:var(--text-on-brand);
  font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;position:relative}
.btn svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}
.btn:hover,.btn.is-hover{background:var(--bg-brand-hover);border-color:var(--bg-brand-hover)}
.btn:active,.btn.is-active{background:var(--bg-brand-pressed);border-color:var(--bg-brand-pressed)}
.btn:focus-visible,.btn.is-focus{outline:none;box-shadow:var(--focus-ring-shadow);border-color:var(--border-focus)}
.btn.ghost{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}
.btn.ghost:hover,.btn.ghost.is-hover{background:var(--bg-hover);border-color:var(--border-strong)}
.btn.ghost:active,.btn.ghost.is-active{background:var(--bg-muted)}
.btn.ghost svg{color:var(--icon-default)}
.btn.sm{min-height:var(--size-control-sm);padding:var(--space-1) var(--space-3);font-size:var(--font-size-md);border-radius:var(--radius-sm)}
.btn.danger{background:var(--text-danger);border-color:var(--text-danger);color:var(--text-on-brand)}
.btn.danger:hover,.btn.danger.is-hover{background:var(--bg-brand-pressed);border-color:var(--bg-brand-pressed)}
.btn.ghost.danger{background:var(--bg-surface);color:var(--text-danger);border-color:var(--border-strong)}
.btn.ghost.danger:hover,.btn.ghost.danger.is-hover{background:var(--bg-danger)}
.btn:disabled,.btn.is-disabled{opacity:.5;cursor:default;pointer-events:none}
.btn.loading,.btn.ghost.loading,.btn.danger.loading,.btn.ghost.danger.loading{color:transparent;pointer-events:none}
.btn.loading::after{content:"";position:absolute;width:var(--size-icon-sm);height:var(--size-icon-sm);border-radius:var(--radius-full);border:var(--border-width-strong) solid var(--text-on-brand);border-inline-end-color:transparent;animation:spin .7s linear infinite}
.btn.ghost.loading::after{border-color:var(--text-primary);border-inline-end-color:transparent}
@keyframes spin{to{transform:rotate(360deg)}}
.link{appearance:none;-webkit-appearance:none;background:none;border:0;padding:var(--space-05) var(--space-1);min-height:var(--space-6);font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);
  color:var(--text-link);border-radius:var(--radius-sm);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link:hover,.link.is-hover{color:var(--text-brand)}
.link:focus-visible{outline:var(--border-width-strong) solid var(--border-focus);outline-offset:2px}
.tbl td.r .link{font-variant-numeric:tabular-nums}
.seg{display:inline-flex;border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-05);background:var(--bg-surface)}
.seg button{border:0;background:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-md);min-height:var(--space-8)}
.seg button:not(.on):hover,.seg button.is-hover{background:var(--bg-hover);color:var(--text-primary)}
.seg button.on{background:var(--bg-inverse);color:var(--text-inverse);font-weight:var(--font-weight-semibold)}
.chips{display:flex;gap:var(--space-2);flex-wrap:wrap}
.chip{border:var(--border-width) solid var(--border-strong);background:var(--bg-surface);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--font-size-md);cursor:pointer;color:var(--text-secondary);min-height:var(--size-control-sm)}
.chip:not(.on):hover,.chip.is-hover{background:var(--bg-hover);color:var(--text-primary)}
.chip.on{background:var(--bg-inverse);color:var(--text-inverse);border-color:var(--bg-inverse)}
.search{display:flex;align-items:center;gap:var(--space-2);border:var(--border-width) solid var(--border-input);border-radius:var(--radius-md);padding:0 var(--space-3);background:var(--bg-input);min-width:220px;min-height:var(--size-control-md)}
.search:focus-within,.search.is-focus{border-color:var(--border-focus);box-shadow:var(--focus-ring-shadow)}
.search input{border:0;background:none;outline:none;width:100%;min-height:calc(var(--size-control-md) - 2px)}
.search svg{width:var(--size-icon-sm);height:var(--size-icon-sm);color:var(--icon-muted)}
.toolbar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}
.x{flex:none;display:grid;place-items:center;width:var(--size-control-sm);height:var(--size-control-sm);padding:0;border:0;border-radius:var(--radius-full);background:var(--bg-muted);color:var(--text-primary);cursor:pointer;line-height:0}
.x svg{width:14px;height:14px;display:block;flex:none}
.x:hover{background:var(--border-strong)}
.x.sm{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-sm);color:var(--text-secondary)}
.x.sm svg{width:12px;height:12px}
.x.sm:hover{background:var(--bg-danger);color:var(--text-danger)}
.filechip{display:inline-flex;align-items:center;gap:var(--space-2);border:var(--border-width) solid var(--border-strong);background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;font:inherit;color:var(--text-primary);max-width:100%}
.filechip svg{width:var(--size-icon-sm);height:var(--size-icon-sm);color:var(--icon-default);flex:none}
.filechip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filechip:hover{background:var(--bg-hover)}
.confirm-inline{display:flex;gap:var(--space-2);align-items:center}

/* ---------- tables ---------- */
.tw{overflow-x:clip;overflow-y:visible}
.tw.sideways{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.tbl th{font-size:var(--font-size-xs);line-height:var(--font-line-height-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);font-weight:var(--font-weight-semibold);
  text-align:start;padding:var(--space-2) var(--space-3);background:var(--bg-table-header);border-bottom:var(--border-width) solid var(--border-default);
  white-space:normal;overflow-wrap:normal;word-break:normal;position:sticky;top:var(--subnav-h);z-index:5}
.tbl td{padding:var(--space-2) var(--space-3);height:var(--size-row);border-bottom:var(--border-width) solid var(--border-default);vertical-align:middle;overflow-wrap:normal;word-break:normal}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r{text-align:end;font-variant-numeric:tabular-nums}
.tbl td.r{direction:ltr;unicode-bidi:isolate}
.tbl td.r,.tbl th.r,.tbl .num{overflow-wrap:normal;white-space:nowrap}
.tbl td.r .who small{white-space:normal}
.tbl td.r .who{text-align:end}
.tbl td.r .sub,.tbl td.r small{text-align:end;font-variant-numeric:tabular-nums}
.tbl tr.total td{font-weight:var(--font-weight-semibold);border-top:var(--border-width-strong) solid var(--text-secondary);background:transparent}
.tbl tr.clickable{cursor:pointer}
.tbl tbody tr.clickable:hover td,.tbl tbody tr.is-hover td{background:var(--bg-hover)}
.tbl tr.total:hover td{background:transparent}
/* the open row is marked in ink, not in red: red on this system means something is wrong */
.tbl tr.sel td{background:var(--bg-muted)}
.tbl tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--bg-inverse)}
[dir="rtl"] .tbl tr.sel td:first-child{box-shadow:inset -3px 0 0 var(--bg-inverse)}
.tbl tr.flag-crit td:first-child{box-shadow:inset 3px 0 0 var(--border-danger)}
.tbl tr.flag-warn td:first-child{box-shadow:inset 3px 0 0 var(--status-warning-mark)}
[dir="rtl"] .tbl tr.flag-crit td:first-child{box-shadow:inset -3px 0 0 var(--border-danger)}
[dir="rtl"] .tbl tr.flag-warn td:first-child{box-shadow:inset -3px 0 0 var(--status-warning-mark)}
.tbl .who{display:block;min-width:15ch;border:0;padding:0;margin:0;font-size:var(--font-size-md);color:var(--text-primary);unicode-bidi:isolate;overflow-wrap:break-word}
.tbl .who small{display:block;margin-top:var(--space-05);color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);white-space:normal;overflow-wrap:break-word}
.tbl .who:has(.avatar){display:flex;align-items:center;gap:var(--space-2)}
.tbl .who:has(.avatar) > div{min-width:0}
.tbl .who.cust{min-width:190px}
.tbl .who .sku{display:block;margin-top:1px}
.tbl .who .sku code{font-size:var(--font-size-xs);letter-spacing:.02em;opacity:.85}
.tbl code,.tbl .sku{overflow-wrap:anywhere}
.tbl td,.tbl th{overflow-wrap:break-word}
.tbl .nil{color:var(--text-muted);opacity:.55}
.tbl td.thin{color:var(--text-warning)}
.tbl td.thin[title],.tbl td.neg[title],.tbl.prod td[title]{cursor:help}
.tbl td .row{display:flex;gap:var(--space-1);align-items:center}
.tbl td.row{display:table-cell;vertical-align:middle;text-align:end;white-space:nowrap}
.tbl td.row > .btn{display:inline-flex;vertical-align:middle;margin-inline-start:var(--space-1)}
.tbl th.sort{position:sticky;padding-inline-end:calc(var(--space-3) + var(--space-3));cursor:pointer;user-select:none}
.tbl th.sort::after{content:"⇅";position:absolute;inset-inline-end:var(--space-1);top:50%;transform:translateY(-50%);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);opacity:.32;line-height:1}
.tbl th.sort:hover{color:var(--text-primary)}
.tbl th.sort:hover::after{opacity:.6}
.tbl th.sort[aria-sort]::after{opacity:1;color:var(--text-brand)}
.tbl th.sort[aria-sort="ascending"]::after{content:"↑"}
.tbl th.sort[aria-sort="descending"]::after{content:"↓"}
.scrollhint{display:none;padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--font-size-sm);color:var(--text-muted)}
/* the aged-balance tables */
.tbl.aging{display:table;table-layout:auto;width:100%}
.tbl.aging thead{display:table-header-group}.tbl.aging tbody{display:table-row-group}.tbl.aging tr{display:table-row}
.tbl.aging th,.tbl.aging td{display:table-cell;vertical-align:middle;padding-inline:var(--space-2)}
.tbl.aging th:first-child,.tbl.aging td:first-child{padding-inline-start:var(--space-5)}
.tbl.aging th:last-child,.tbl.aging td:last-child{padding-inline-end:var(--space-5)}
.tbl.aging th.r,.tbl.aging td.r{white-space:nowrap}
.tbl.aging.list td.row{display:table-cell;text-align:end}
.tbl.aging.list td.row .btn{display:inline-flex}
/* the prices, products, orders and deliveries tables */
.tbl.prices th,.tbl.prod th,.tbl.orders th,.tbl.deliv th{white-space:normal;line-height:var(--font-line-height-xs)}
.tbl.prices th,.tbl.prices td,.tbl.prod th,.tbl.prod td,.tbl.orders th,.tbl.orders td,.tbl.deliv th,.tbl.deliv td{padding-inline:var(--space-2)}
.tbl.prices th:first-child,.tbl.prices td:first-child,.tbl.prod th:first-child,.tbl.prod td:first-child,.tbl.orders th:first-child,.tbl.orders td:first-child,.tbl.deliv th:first-child,.tbl.deliv td:first-child{padding-inline-start:var(--space-5)}
.tbl.prices th:last-child,.tbl.prices td:last-child,.tbl.prod th:last-child,.tbl.prod td:last-child{padding-inline-end:var(--space-5)}
.tbl.prices .who small,.tbl.prod .who small{white-space:nowrap}
.tbl.prices .twoside{font-size:var(--font-size-sm);margin-top:var(--space-05);line-height:var(--font-line-height-sm);white-space:normal;max-width:190px}
.tbl.prod td.r{white-space:nowrap}
.tbl.prod td.num small{display:block;font-weight:var(--font-weight-regular);color:var(--text-muted);font-size:var(--font-size-sm)}
/* the statement */
.tbl.stmt tr.opening td,.tbl.stmt tr.mrow td{background:var(--bg-muted)}
.tbl.stmt tr.opening td{color:var(--text-secondary);font-size:var(--font-size-sm)}
.tbl.stmt tr.mrow td{font-weight:var(--font-weight-semibold);border-top:var(--border-width) solid var(--border-strong)}
.tbl.stmt tr.mrow small{font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-inline-start:var(--space-2)}
.tbl.stmt td.pos{color:var(--text-success)}
/* the invoice register */
.invtbl th,.invtbl td{padding-top:var(--space-2);padding-bottom:var(--space-2)}
.invtbl .sub{font-size:var(--font-size-sm);margin-top:var(--space-05);font-weight:var(--font-weight-regular);color:var(--text-muted)}

.invtbl .who.cust small{font-size:var(--font-size-sm)}
.invtbl td:first-child,.invtbl td:nth-child(2){white-space:nowrap}
.invtbl .who.cust{min-width:14ch}
/* the customer's mark, drawn from the name */
.tbl.list .who.cust[data-mark]{position:relative;padding-inline-start:calc(var(--size-mark) + var(--space-3));min-height:34px;display:flex;flex-direction:column;justify-content:center}
.tbl.list .who.cust[data-mark]::before,.pmark{content:attr(data-mark);display:inline-flex;align-items:center;justify-content:center;width:var(--size-mark);height:var(--size-mark);border-radius:var(--radius-md);flex:none;
  background:var(--bg-muted);color:var(--text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--border-default)}
.tbl.list .who.cust[data-mark]::before{position:absolute;inset-inline-start:0;top:50%;transform:translateY(-50%)}
.tbl.list tr.flag-crit .who.cust[data-mark]::before{background:var(--bg-brand);color:var(--text-on-brand);box-shadow:none}
.tbl.list tr.flag-warn .who.cust[data-mark]::before{background:var(--status-warning-mark);color:var(--text-primary);box-shadow:none}
.tbl tr.sel .pmark{background:var(--bg-inverse);color:var(--text-inverse);box-shadow:none}
.pmark.lg{width:52px;height:52px;font-size:var(--font-size-lg);background:var(--bg-inverse);color:var(--text-inverse);box-shadow:none}
.pcell{display:flex;align-items:center;gap:var(--space-3);min-width:0}
.pcell .who{min-width:0}
.tw.prodlist{max-height:452px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.tw.prodlist .tbl th{top:0}
.tw.prodlist .tbl tr.total td{position:sticky;bottom:0;background:var(--bg-surface);z-index:2;box-shadow:0 -1px 0 var(--border-strong)}
.pm{display:inline-flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);min-width:64px}
.pm b{font-weight:var(--font-weight-semibold)}
.pm > i{display:block;width:64px;height:4px;border-radius:var(--radius-sm);background:var(--bg-muted);overflow:hidden}
.pm > i > i{display:block;height:100%;border-radius:var(--radius-sm);background:var(--text-primary)}
.pm.warn b{color:var(--text-warning)} .pm.warn > i > i{background:var(--status-warning-mark)}
.pm.crit b{color:var(--text-danger)} .pm.crit > i > i{background:var(--bg-brand)}

/* ---------- lists ---------- */
.list{display:flex;flex-direction:column}
.list.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 var(--space-5);align-items:start}
.list.cols .li{border-bottom:var(--border-width) solid var(--border-default)}
.list.log{max-height:460px;overflow-y:auto;padding-inline-end:var(--space-1)}
.li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-2) 0;min-height:var(--size-row);border-bottom:var(--border-width) solid var(--border-default)}
.li:last-child{border-bottom:0}
.li > *{min-width:0}
.li .t{font-weight:var(--font-weight-medium);overflow-wrap:break-word;unicode-bidi:isolate}
.li .s{color:var(--text-muted);font-size:var(--font-size-sm);margin-top:1px;overflow-wrap:break-word;unicode-bidi:isolate}
.li .amt{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);text-align:end;font-variant-numeric:tabular-nums}
.li .amt small{display:block;font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);color:var(--text-muted)}
.li:hover .amt,.ib:hover b{color:var(--text-primary)}
.ico{width:34px;height:34px;border-radius:var(--radius-md);display:grid;place-items:center;flex:none}
.ico svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}
.ico.in{background:var(--in-tint);color:var(--chart-money-customer)}.ico.sup{background:var(--sup-tint);color:var(--chart-money-supplier)}.ico.exp{background:var(--exp-tint);color:var(--chart-money-expense)}.ico.par{background:var(--par-tint);color:var(--chart-money-partner)}
.bar{display:flex;height:22px;border-radius:var(--radius-sm);overflow:hidden;gap:var(--space-05);background:var(--bg-surface)}
.bar i{display:block;height:100%}
.bar i.in{background:var(--chart-money-customer)}.bar i.sup{background:var(--chart-money-supplier)}.bar i.exp{background:var(--chart-money-expense)}.bar i.par{background:var(--chart-money-partner)}
.bk{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-2);align-items:center;padding:var(--space-1) 0;font-size:var(--font-size-md)}
.bk > span{min-width:0}
.bk > span:not(.amt){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bk .amt,.ev .amt,.kv .num,.sr .amt{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}
.meter{height:var(--space-2);border-radius:var(--radius-sm);background:var(--bg-muted);overflow:hidden}
.meter i{display:block;height:100%;background:var(--chart-money-customer)}
.meter i.short{background:var(--text-danger)}
.inbox{display:flex;flex-direction:column}
.ib{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--border-default)}
.ib:last-child{border-bottom:0}
.ib > div{min-width:0}
.ib .dot{width:8px;height:8px}
.ib .dot.crit{background:var(--bg-brand)}.ib .dot.warn{background:var(--status-warning-mark)}.ib .dot.info{background:var(--chart-series-2)}.ib .dot.stock{background:var(--text-primary)}
.ib b{display:block;font-weight:var(--font-weight-semibold);overflow-wrap:break-word}
.ib .sub{margin-top:1px;overflow-wrap:break-word}
.ib .acts{display:flex;gap:var(--space-1);flex-wrap:wrap;justify-content:flex-end}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}
.day{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-2) var(--space-2);min-height:120px;background:var(--bg-surface)}
.day.today{border-color:var(--bg-brand);box-shadow:inset 0 0 0 1px var(--bg-brand)}
.day.today .dh b{color:var(--text-brand)}
.day.past{opacity:.55}
.day .dh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-2)}
.day .dh b{font-size:var(--font-size-md)}
.day .dh span{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--font-letter-spacing-label)}
.ev{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-1);align-items:start;font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);padding:var(--space-1) 0;border-top:var(--border-width) solid var(--border-default)}
.ev:first-of-type{border-top:0}
.ev > div{min-width:0}
.ev .dot{width:8px;height:8px;margin-top:var(--space-1)}
.ev .dot.del{background:var(--text-primary)}
.ev .who{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- charts ---------- */
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--font-family);font-size:var(--font-size-xs);fill:var(--text-muted)}
.chart .grid line{stroke:var(--chart-grid);stroke-width:1}
.chart .axis line{stroke:var(--border-strong);stroke-width:1}
.chart .zero{stroke:var(--text-secondary);stroke-width:1}
.chart .minline{stroke:var(--status-warning-mark);stroke-width:1.5;stroke-dasharray:4 4}
.chart .hit{fill:transparent}
.tip{position:absolute;pointer-events:none;background:var(--bg-inverse);color:var(--text-inverse);padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);min-width:150px;box-shadow:var(--shadow-lg);opacity:0;z-index:5}
.tip b{font-weight:var(--font-weight-semibold)}
.tip .k{display:inline-block;width:10px;height:3px;border-radius:var(--radius-sm);margin-inline-end:var(--space-1);vertical-align:middle}
.tip.show{opacity:1}
.dchart{margin-top:var(--space-1)}
.dchart svg{width:100%;height:auto;display:block;overflow:visible}
.dchart text{font-variant-numeric:tabular-nums}
.dchart .axis{stroke:var(--border-strong);stroke-width:1}
.dchart .grid{stroke:var(--chart-grid);stroke-width:1}
.dchart .tick{fill:var(--text-muted);font-size:var(--font-size-xs);text-anchor:end}
.dchart .avg{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:4 4}
.dchart .mlab{fill:var(--text-secondary);font-size:var(--font-size-sm);text-anchor:middle}
.dchart .bval{fill:var(--text-secondary);font-size:var(--font-size-xs);text-anchor:middle}
.dchart .mval{fill:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-anchor:middle;opacity:0}
.dchart .hit{fill:transparent}
.dchart .mcol:hover .hit{fill:var(--bg-muted);opacity:.55}
.dchart .mcol:hover .mval{opacity:1}
.dchart rect.drawn{fill:var(--chart-series-1)}
.dchart .pline{fill:none;stroke:var(--chart-series-2);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dchart .pdot{fill:var(--bg-surface);stroke:var(--chart-series-2);stroke-width:2}
.legend .lg.drawn::before{background:var(--chart-series-1)}
.legend .lg.paid::before{background:none;height:0;border-radius:0;border-top:2px solid var(--chart-series-2)}
.legend .lg.avg::before{background:none;height:0;border-radius:0;border-top:1px dashed var(--text-muted)}
.spark{display:block;width:100%;height:26px;margin-top:var(--space-2);overflow:visible}
.spark path{fill:none;stroke:var(--chart-series-1);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spark path.cmp{stroke:var(--chart-series-2);stroke-dasharray:3 3;opacity:.7}
.spark circle{fill:var(--chart-series-1)} .spark circle.down{fill:var(--bg-brand)}
.spark line.base{stroke:var(--border-strong);stroke-width:1;vector-effect:non-scaling-stroke}
.pchart{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}
.pchart-key{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-05)}
.pchart-th{display:inline-block;width:14px;border-top:var(--border-width-strong) dashed var(--text-secondary)}
.pbar{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) 72px;align-items:center;gap:var(--space-3)}
.pbar-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-md)}
.pbar-t{position:relative;display:block;height:var(--size-icon-sm);background:var(--bg-muted);overflow:visible;border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm)}
.pbar-f{position:absolute;inset-inline-start:0;top:0;bottom:0;display:block;min-width:2px;background:var(--text-primary);border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm)}
.pbar-f.warn{background:var(--status-warning-mark)} .pbar-f.crit{background:var(--bg-brand)} .pbar-f.brand{background:var(--text-primary)}
.pbar-th{position:absolute;top:-4px;bottom:-4px;border-inline-start:var(--border-width-strong) dashed var(--text-secondary);opacity:.7}
.pbar-v{text-align:end;font-weight:var(--font-weight-semibold)}
.pbar.neg .pbar-v{color:var(--text-danger)}

/* ---------- forms & the sheet ---------- */
.overlay{position:fixed;inset:0;background:var(--bg-overlay);display:block;opacity:0;pointer-events:none;z-index:20}
.overlay.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;inset-inline-start:50%;top:50%;transform:translate(-50%,-50%) scale(.97);transform-origin:center;width:min(580px,calc(100% - 24px));max-height:calc(100vh - 40px);overflow:auto;
  background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:21;display:block;opacity:0;pointer-events:none}
[dir="rtl"] .sheet{transform:translate(50%,-50%) scale(.97)}
.sheet.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
[dir="rtl"] .sheet.open{transform:translate(50%,-50%) scale(1)}
.sheet.wide{width:min(860px,calc(100% - 24px))}
/* the import form: eight payment columns need the room (owner, 29 Sep 2026) */
.sheet.wide.xwide{width:min(1180px,calc(100% - 24px))}
.sheet header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-3);border-bottom:var(--border-width) solid var(--border-default)}
.sheet header h2{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.sheet .body{padding:var(--space-4) var(--space-6) var(--space-5);min-width:0}
.sheet footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:0 var(--space-6) var(--space-5)}
.kinds{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}
.kind{display:flex;gap:var(--space-3);align-items:center;text-align:start;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);background:var(--bg-surface);cursor:pointer}
.kind:hover,.kind.is-hover{background:var(--bg-hover)}
.kind.on{border-color:var(--bg-brand);box-shadow:inset 0 0 0 1px var(--bg-brand)}
.kind b{display:block;font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}
.kind small{color:var(--text-muted);font-size:var(--font-size-sm)}
.fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3)}
.fields > *{min-width:0}
.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.field.wide{grid-column:1 / -1}
.field label{font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}
.field input,.field select,.field textarea,.lr input,.lr select,.sheet textarea{border:var(--border-width) solid var(--border-input);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--bg-input);color:var(--text-primary);width:100%;min-width:0;max-width:100%;min-height:var(--size-control-md)}
.sheet textarea{resize:vertical;font-family:inherit;line-height:1.5}
.inv-doc .lines{white-space:pre-line}
.field select{text-overflow:ellipsis}
.field input:focus,.field select:focus,.field textarea:focus,.lr input:focus,.lr select:focus,.sheet textarea:focus,.field .is-focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring-shadow)}
.field input::placeholder,.field textarea::placeholder{color:var(--text-muted)}
.field input:disabled,.field select:disabled,.field textarea:disabled,.field .is-disabled{background:var(--bg-disabled);color:var(--text-disabled);cursor:not-allowed}
.field input[readonly]{background:var(--bg-muted);color:var(--text-secondary);cursor:default}
.field input[readonly]:focus{outline:none;border-color:var(--border-input);box-shadow:none}
.field .hint{font-size:var(--font-size-sm);color:var(--text-muted)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--border-danger)}
.hint.err{color:var(--text-danger)}
.field input.big{font-weight:var(--font-weight-semibold);font-size:var(--font-size-xl)}
/* the grey words inside a money box are a hint, not a figure: they are set at the size of every other box's hint */
.field input.big::placeholder{font-weight:var(--font-weight-regular);font-size:var(--font-size-md)}
.chk{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-md);cursor:pointer}
.field .chk input[type="checkbox"]{width:auto;flex:none;margin:0;min-height:0}
input[type="checkbox"],input[type="radio"]{accent-color:var(--bg-brand);width:var(--size-icon-sm);height:var(--size-icon-sm)}
/* a switch, for the style guide and any setting that is on or off */
.toggle{position:relative;display:inline-block;width:var(--space-10);height:var(--space-6);flex:none}
.toggle input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.toggle i{position:absolute;inset:0;border-radius:var(--radius-full);background:var(--border-strong)}
.toggle i::after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);background:var(--bg-surface);box-shadow:var(--shadow-sm)}
.toggle input:checked + i{background:var(--bg-brand)}
.toggle input:checked + i::after{inset-inline-start:calc(100% - var(--space-5) - 2px)}
.toggle input:focus-visible + i{box-shadow:var(--focus-ring-shadow)}
.toggle input:disabled + i{opacity:.5}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.amount-wrap{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:var(--space-2)}
.amount-wrap input{font-weight:var(--font-weight-semibold);font-size:var(--font-size-xl)}
.preview{border:var(--border-width) dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-md);display:flex;justify-content:space-between;gap:var(--space-2);align-items:center}
.preview b{font-weight:var(--font-weight-semibold)}
.fields .formsec{grid-column:1/-1;font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-secondary);font-weight:var(--font-weight-semibold);margin:var(--space-1) 0 calc(-1 * var(--space-1));padding-top:var(--space-2);border-top:var(--border-width) solid var(--border-default)}
.fields .formsec:first-child{border-top:0;padding-top:0}
.fields .formsec .sub{text-transform:none;letter-spacing:0;font-weight:var(--font-weight-regular)}
.fields .formnote{grid-column:1/-1;background:var(--bg-muted);border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--font-size-md);line-height:var(--font-line-height-md);white-space:normal;overflow-wrap:break-word}
.fields .formnote .btn{margin-top:var(--space-1);white-space:normal;text-align:start;height:auto}
.lines{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3);min-width:0}
.lh,.lr{display:grid;gap:var(--space-2);align-items:center;min-width:0}
.lh{font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);padding-inline-end:var(--size-mark)}
.lr{margin-bottom:var(--space-2)}
.lr > input,.lr > select{min-width:0}
.lc{display:contents}
.lr .calccell{display:flex;align-items:center;justify-content:flex-end;padding:0 var(--space-2);min-height:var(--size-control-md);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-muted);color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:var(--font-size-md)}
.lr .lc:first-child .calccell{justify-content:flex-start;color:var(--text-primary)}
.datebox{position:relative;display:block}
.datebox input[data-dmy]{width:100%;padding-inline-end:calc(var(--size-control-sm) + var(--space-2))}
.datebox input[type="date"]{position:absolute;inset-inline-end:var(--space-1);top:50%;transform:translateY(-50%);width:30px;height:30px;min-height:0;padding:0;border:0;background:none;color:transparent;cursor:pointer}
.datebox input[type="date"]::-webkit-datetime-edit,.datebox input[type="date"]::-webkit-inner-spin-button,.datebox input[type="date"]::-webkit-clear-button{display:none}
.datebox input[type="date"]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:.55;cursor:pointer}
.datebox input[type="date"]:focus{outline:none;box-shadow:none}
.datebox input[type="date"]:hover::-webkit-calendar-picker-indicator{opacity:.9}
.combo{position:relative}
.combo input{width:100%}
.combolist{position:absolute;top:calc(100% + var(--space-1));inset-inline:0;z-index:60;max-height:216px;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:var(--bg-surface-raised);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1)}
.combolist .comboitem{display:block;width:100%;text-align:start;border:0;background:none;font:inherit;color:var(--text-primary);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);cursor:pointer}
.combolist .comboitem:hover{background:var(--bg-hover)}
.pfilters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}
.pfilter{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:0 1 260px}
.pfilter > span{font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);font-weight:var(--font-weight-semibold)}
.pfilter select,.pfilter input{width:100%;min-width:0;border:var(--border-width) solid var(--border-input);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--bg-input);min-height:var(--size-control-md)}
.photo-field{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.photo-field .thumb{height:var(--space-16);width:auto;max-width:120px;object-fit:cover;border-radius:var(--radius-md);border:var(--border-width) solid var(--border-strong);cursor:zoom-in;display:block}
.toast{position:fixed;inset-inline-start:50%;bottom:var(--space-6);transform:translateX(-50%) translateY(20px);background:var(--bg-inverse);color:var(--text-inverse);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-lg);opacity:0;z-index:30;max-width:calc(100% - 24px);text-align:center}
[dir="rtl"] .toast{transform:translateX(50%) translateY(20px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
[dir="rtl"] .toast.show{transform:translateX(50%) translateY(0)}
#toast [data-undo]{margin-inline-start:var(--space-3);min-height:var(--size-control-sm);padding:var(--space-1) var(--space-2);background:none;color:inherit;border-color:var(--white-a45)}

/* ---------- the dashboard: calendar beside the decisions ---------- */
.todaycols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--space-6) var(--space-8);align-items:start;margin-bottom:var(--space-4)}
.cal .calhead{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-4) var(--space-4) var(--space-3)}
.cal .calhead h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)} /* owner, 27 Sep 2026: the month reads clearly */
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border-default);border-top:var(--border-width) solid var(--border-default);border-bottom:var(--border-width) solid var(--border-default)}
.cdow{background:var(--bg-table-header);color:var(--text-muted);font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;font-weight:var(--font-weight-semibold);text-align:center;padding:var(--space-1) 0}
.cday{background:var(--bg-surface);border:0;min-height:74px;padding:var(--space-1) var(--space-2);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-05);cursor:pointer;text-align:start;font:inherit;color:inherit;position:relative}
.cday.out{background:var(--bg-page);cursor:default}
.cday .cn{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--text-secondary)}
.cday .cmk{display:flex;gap:var(--space-1);flex-wrap:wrap}
.cday .cmk .dot{width:6px;height:6px}
.cday .cam,.cday .cn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cday .cam{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);line-height:var(--font-line-height-xs)}
.cday.past{background:var(--bg-table-header)}
.cday.past .cn{color:var(--text-muted)}
.cday:hover{background:var(--bg-hover)}
.cday.today .cn{color:var(--text-inverse);background:var(--bg-inverse);border-radius:var(--radius-full);width:var(--space-6);height:var(--space-6);display:inline-grid;place-items:center}
.cday.sel{box-shadow:inset 0 0 0 2px var(--bg-brand);background:var(--bg-selected)}
.cday:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--bg-brand)}
.calday{padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border-default)}
.cevs{display:flex;flex-direction:column;max-height:190px;overflow-y:auto}
.cev{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-2);align-items:center;padding:var(--space-2) 0;border-top:var(--border-width) solid var(--border-default)}
.cev:first-child{border-top:0}
.cev > div{min-width:0}
.cev b{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);overflow-wrap:break-word}
.cev .sub{font-size:var(--font-size-sm);overflow-wrap:break-word}
.cev .amt{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}
.callegend{display:flex;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-2) var(--space-4) var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary)}
.callegend span{display:inline-flex;align-items:center;gap:var(--space-1)}
.callegend .dot{width:8px;height:8px}
/* the two companies on the calendar (24 Sep 2026): IFFI's money, and under it the trading company's side of the same payment,
   named and never added in. A ring in the customer colour is money the trading company's customers pay it, not IFFI's. */
.dot.via{background:transparent;box-shadow:inset 0 0 0 2px var(--chart-money-customer)}
.co-tag{display:inline-block;padding:0 var(--space-1);border-radius:var(--radius-sm);border:var(--border-width) solid var(--border-strong);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--font-line-height-xs);color:var(--text-secondary);vertical-align:baseline;white-space:nowrap}
.co-tag.iffi{border-color:var(--text-brand);color:var(--text-brand)}
.co-tag.via{border-color:var(--chart-money-customer);color:var(--text-success)}
.cev-via{margin-top:var(--space-1);padding-inline-start:var(--space-2);border-inline-start:var(--border-width-strong) solid var(--border-default)}
.cev-via .amt{font-size:inherit;font-weight:var(--font-weight-semibold);color:var(--text-primary)}
.cev .amt.via{color:var(--text-secondary);font-weight:var(--font-weight-medium)}
.cev .warn,.cev-via.warn{color:var(--text-warning)}
.cal .cevs{max-height:280px}
.todaycols .inbox{max-height:520px;overflow-y:auto;margin-top:var(--space-1)}
.todaycols .inbox .ib{grid-template-columns:auto minmax(0,1fr);gap:var(--space-2)}
.todaycols .inbox .ib .acts{grid-column:2;justify-content:flex-start;margin-top:var(--space-1)}
.balspark{margin-top:var(--space-2)}
.balspark .spark{height:var(--size-control-lg)}
/* the opening moment's decorations have no place in a calm register */
.rule-id,.ring-id{display:none}
.hero-logo{display:none}
.hero-logo .logomark img.logo{height:var(--size-control-lg);width:auto}
.hero-logo .logomark::before,.hero-logo .logomark::after{display:none}

/* ---------- search box, viewers, notices ---------- */
.sbox{position:fixed;inset-inline-start:50%;top:12vh;transform:translateX(-50%);width:min(620px,calc(100% - 24px));background:var(--bg-surface-raised);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:22;display:none;overflow:hidden}
[dir="rtl"] .sbox{transform:translateX(50%)}
.sbox.open{display:block}
.sbox .in{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border-default)}
.sbox .in input{border:0;background:none;outline:none;width:100%;font-size:var(--font-size-lg)}
.sbox .in svg{width:var(--size-icon);height:var(--size-icon);color:var(--icon-muted)}
.sbox kbd{margin-inline-start:auto;font-family:inherit;font-size:var(--font-size-xs);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-sm);padding:0 var(--space-1);color:var(--text-muted)}
.sbox .res{max-height:50vh;overflow:auto;padding:var(--space-1)}
.sr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);align-items:center;width:100%;text-align:start;border:0;background:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary)}
.sr > div{min-width:0}
.sr:hover,.sr:focus{background:var(--bg-hover)}
.sr .k{font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);min-width:76px}
.sr small{display:block;color:var(--text-muted);font-size:var(--font-size-sm);overflow-wrap:break-word}
.photobox{position:fixed;inset:0;background:var(--bg-overlay);display:none;align-items:center;justify-content:center;z-index:60;padding:var(--space-5)}
.photobox.open{display:flex}
.photo-inner{background:var(--bg-surface);border-radius:var(--radius-md);max-width:min(900px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}
.photo-inner header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border-default)}
.photo-body{overflow:auto;padding:var(--space-3);display:flex;justify-content:center}
/* the cheque photo's own buttons (24 Sep 2026): turn it, download it; on a phone they wrap under the title */
.photo-inner header.has-tools{flex-wrap:wrap}
.photo-tools{gap:var(--space-1);margin-inline-start:auto;flex-wrap:wrap}
.photo-tools svg,.photo-field svg{width:16px;height:16px}
.photo-hint{padding:var(--space-2) var(--space-4) 0;color:var(--text-warning)}
.photo-field .photo-hint{padding:0;flex-basis:100%}
#photobox.busy .photo-tools{opacity:.5;pointer-events:none}
.photo-tools a.btn{text-decoration:none}
/* a phone: the title and the close button on one line, the three buttons sharing the line under it */
@media screen and (max-width:720px){
  .photo-inner header.has-tools .photo-tools{order:3;flex-basis:100%;margin-inline-start:0;flex-wrap:nowrap}
  .photo-inner header.has-tools .photo-tools .btn{flex:1 1 0;justify-content:center;padding-inline:var(--space-1);white-space:nowrap}
}
.photo-body img{max-width:100%;height:auto;border-radius:var(--radius-md);display:block}
#newver{position:fixed;inset-inline-start:50%;transform:translateX(-50%);top:var(--space-3);z-index:9999;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);
  background:var(--bg-inverse);color:var(--text-inverse);box-shadow:var(--shadow-lg);font-size:var(--font-size-md);max-width:calc(100vw - 24px)}
[dir="rtl"] #newver{transform:translateX(50%)}
#newver .btn{background:var(--bg-surface);color:var(--text-primary);border-color:var(--bg-surface)}
#newver .btn.ghost{background:transparent;color:var(--text-inverse);border-color:var(--white-a45)}
/* sign-in and first-run */
.signin-mode{display:block}
.signin-wrap{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--space-6);background:var(--bg-page);position:relative;overflow:hidden}
.signin-wrap::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--text-muted);opacity:.12;-webkit-mask:var(--mark-tile) 0 0/168px 168px repeat;mask:var(--mark-tile) 0 0/168px 168px repeat}
.signin{position:relative;width:min(420px,100%);background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-6);text-align:start}
.signin .logomark,.signin img.logo{height:var(--size-touch);margin-bottom:var(--space-4)}
.signin h1{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl);margin-bottom:var(--space-1)}
.signin .signin-body>.sub{font-size:var(--font-size-md);margin-bottom:var(--space-4)}
.signin .field input{padding:var(--space-3);font-size:var(--font-size-md);min-height:var(--size-control-lg)}
.signin .alert{padding:var(--space-2) var(--space-3);font-size:var(--font-size-md)}
.seed-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:var(--space-6);background:var(--bg-scrim);backdrop-filter:blur(3px)}
.seed-box{width:min(360px,100%);background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-6);text-align:center}
.seed-box .logomark,.seed-box img.logo{height:var(--size-control-lg);margin:0 auto var(--space-4)}
.seed-box b{display:block;font-size:var(--font-size-lg);margin-bottom:var(--space-1)}
.seed-box .sub{font-size:var(--font-size-md)}

/* ---------- the products page ---------- */
.prodcard{margin-top:var(--space-4);position:relative;overflow:hidden}
.prodcard::after{content:"";position:absolute;inset-inline-end:-30px;top:-34px;width:150px;height:150px;pointer-events:none;background:var(--mark) center/contain no-repeat;opacity:.05}
.prodhead{display:flex;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;position:relative}
.prodtitle{flex:1 1 320px;min-width:0}
.prodtitle h2{display:block;font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.prodtitle .sub{margin-top:var(--space-1);overflow-wrap:anywhere}
.prodacts{align-self:flex-start}
.prodsecs{display:grid;grid-template-columns:1.3fr repeat(3,minmax(0,1fr));gap:var(--space-5) var(--space-6);margin-top:var(--space-4);position:relative}
.prodsec{min-width:0;padding-top:var(--space-3);border-top:var(--border-width) solid var(--border-strong)}
.prodsec .q{margin-bottom:var(--space-2)}
.prodsec .kv{font-size:var(--font-size-md);gap:var(--space-1) var(--space-3)}
.prodsec .kv .tot{font-weight:var(--font-weight-semibold);border-top:var(--border-width) solid var(--border-default);padding-top:var(--space-1)}
.prodsec.lead{border-top:var(--border-width-strong) solid var(--text-primary)}
.prodfig{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-05) 0 var(--space-2)}
.prodfig b{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}
.prodfig span{color:var(--text-secondary);font-size:var(--font-size-md)}
.prodfig.warn b{color:var(--text-warning)} .prodfig.crit b{color:var(--text-danger)}
.prodcharts{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));margin-top:var(--space-4)}
.prodcharts .card h2{display:block}
.prodcharts .card > .sub{margin-top:var(--space-05)}

/* ---------- the ledger register (Dashboard, Forecast, Sales …) ----------
   Rules do the separating: a 2px ink rule opens the page, 1px rules open
   sections, hairlines divide rows. No boxes, no shadows, no tinted tiles. */
.ledger .kpis,.ledger .kpis.dash{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 var(--space-6);border-top:var(--border-width-strong) solid var(--text-primary);padding-top:var(--space-3);margin-bottom:var(--space-5);position:relative}
.ledger .kpis .kpi,.ledger .kpis .kpi:first-child{background:none;border:0;border-radius:0;box-shadow:none;padding:0 0 var(--space-3);border-bottom:var(--border-width) solid var(--border-default);color:var(--text-primary);min-width:0;overflow:visible;grid-column:auto}
.ledger .kpis .kpi:first-child::before,.ledger .kpis .kpi:first-child::after{display:none}
.ledger .kpis .kpi .q,.ledger .kpis .kpi:first-child .q{color:var(--text-secondary);opacity:1}
.ledger .kpis .kpi .fig,.ledger .kpis .kpi:first-child .fig{font-size:var(--font-size-2xl);line-height:var(--font-line-height-2xl);font-weight:var(--font-weight-semibold);margin-top:var(--space-2);letter-spacing:-.01em;color:var(--text-primary);text-decoration:none}
.ledger .kpis .kpi .sub,.ledger .kpis .kpi:first-child .sub{margin-top:var(--space-1);color:var(--text-muted);opacity:1}
.ledger .kpis .kpi.flag .fig,.ledger .kpis .kpi:first-child.flag .fig{color:var(--text-warning)}
.ledger .kpis .kpi.flag.crit .fig,.ledger .kpis .kpi:first-child.flag.crit .fig{color:var(--text-danger)}
.ledger .kpis .kpi .sub .neg{color:var(--text-danger)} .ledger .kpis .kpi .sub .pos{color:var(--text-primary)}
.ledger .card{background:none;border:0;border-radius:0;box-shadow:none;padding:var(--space-3) 0 0;border-top:var(--border-width) solid var(--border-strong)}
.ledger .card.pad0{padding-top:0}
.ledger .card h2{font-size:var(--font-size-xs);line-height:var(--font-line-height-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-primary);font-weight:var(--font-weight-semibold)}
.ledger .card h2 .muted,.ledger .card h2 .sub{text-transform:none;letter-spacing:0;font-size:var(--font-size-sm);color:var(--text-muted);font-weight:var(--font-weight-medium)}
.ledger .card h2 .link{text-transform:none;letter-spacing:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}
.ledger .card.pad0 h2,.ledger .card.pad0 > div > h2{padding-top:var(--space-3)}
.ledger .grid.g2,.ledger .prodcharts,.ledger .todaycols{gap:var(--space-6) var(--space-8)}
.ledger .alert{border-radius:0;border:var(--border-width) solid var(--border-strong);background:none}
.ledger .quick{margin:calc(-1 * var(--space-1)) 0 var(--space-5)}
.ledger .quick .btn.ghost{box-shadow:none;background:none}
.ledger .quick .btn.ghost:focus-visible{box-shadow:var(--focus-ring-shadow);border-color:var(--border-focus)}
.ledger .decisions .inbox{max-height:none;overflow:visible;margin-top:var(--space-1)}
.ledger .decisions .ib{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);padding:var(--space-3) 0}
.ledger .decisions .ib .acts{grid-column:auto;justify-content:flex-end;margin-top:0}
.ledger .cal{background:var(--bg-surface);border:var(--border-width) solid var(--border-strong)}
.ledger .cal .calhead h2{text-transform:none;letter-spacing:0;font-size:var(--font-size-xl);line-height:var(--font-line-height-xl);font-weight:var(--font-weight-semibold)} /* owner, 27 Sep 2026: the month reads clearly */
.ledger .mtile{border:0;border-top:var(--border-width) solid var(--border-default);border-radius:0;background:none;padding:var(--space-2) 0 0}
.ledger .mtile.warning{border-top-color:var(--status-warning-mark)} .ledger .mtile.critical{border-top-color:var(--bg-brand)}
.ledger .mtile .fig{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
.ledger .mtile.critical .fig{color:var(--text-danger)} .ledger .mtile.warning .fig{color:var(--text-warning)}
.ledger .ib,.ledger .li{border-bottom:var(--border-width) solid var(--border-default)}
.ledger .avatar{border-radius:0;background:none;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-secondary)}
.ledger .card.pad0 .tw{border:0}
.ledger .tbl th{background:var(--bg-page);border-bottom:var(--border-width) solid var(--text-primary);color:var(--text-secondary)}
.ledger .tbl tr.total td{border-top:var(--border-width) solid var(--text-primary);border-bottom:0;background:var(--bg-page)}
.ledger .tbl tr.flag-crit td,.ledger .tbl tr.flag-warn td{background:none}
.ledger .tw.prodlist{border-bottom:var(--border-width) solid var(--border-strong)}
.ledger .tw.prodlist .tbl tr.total td{background:var(--bg-page)}
.ledger .pmark,.ledger .tbl.list .who.cust[data-mark]::before{background:none;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-secondary);border-radius:0}
.ledger .tbl tr.sel .pmark,.ledger .pmark.lg{background:var(--bg-inverse);color:var(--text-inverse);box-shadow:none}
.ledger .tbl.list tr.flag-crit .who.cust[data-mark]::before{background:var(--bg-brand);color:var(--text-on-brand)}
.ledger .tbl.list tr.flag-warn .who.cust[data-mark]::before{background:var(--status-warning-mark);color:var(--text-primary)}
.ledger .pm > i{background:var(--border-default)}
.ledger .prodcard{overflow:visible}
.ledger .prodcard::after{display:none}
.ledger .prodsec{border-top:var(--border-width) solid var(--border-default)}
.ledger .prodsec.lead{border-top:var(--border-width-strong) solid var(--text-primary)}
.ledger .pbar-t{background:none;border-radius:0;border-bottom:var(--border-width) solid var(--border-default)}
.ledger .pbar-f{border-radius:0}
.ledger .chart .grid line{stroke:var(--border-default)}
.ledger .chart path[fill="var(--sup)"]{opacity:0!important}
.ledger .chart path[stroke="var(--sup)"]{stroke:var(--chart-series-1)}
.ledger .chart circle[fill="var(--sup)"]{fill:var(--chart-series-1)}
.ledger .chart .legend .dot.sup{background:var(--chart-series-1)}
.ledger .chart .minline{stroke:var(--bg-brand);stroke-dasharray:4 3}
.ledger .seg{background:none;border:var(--border-width) solid var(--border-strong);border-radius:0;padding:0}
.ledger .seg button{border-radius:0;padding:var(--space-1) var(--space-3)}
.ledger .search,.ledger .btn.ghost,.ledger .state,.ledger .btn{border-radius:0}
.ledger .link{color:var(--text-primary)}
.ledger .link:hover{color:var(--text-brand)}
.ledger .btn:active{transform:translateY(1px)}

/* ---------- the invoice document (Arabic first, right to left) ---------- */
.inv-wrap{width:min(960px,100%)}
.inv-body{display:block;background:var(--bg-muted);padding:var(--space-4)}
.inv-doc{position:relative;overflow:hidden;background:var(--paper);color:var(--paper-ink);padding:var(--space-5) var(--space-6);border-radius:0;
  font-family:var(--font-family);font-size:var(--doc-font-size-sm);line-height:1.45;max-width:860px;margin:0 auto;border-bottom:5px solid var(--paper-red);
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.photo-body .inv-doc .inv-mark{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover;object-position:left bottom;pointer-events:none;z-index:0;border-radius:0!important;max-width:none!important}
.inv-doc > *:not(.inv-mark){position:relative;z-index:1}
.inv-doc .num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}
.inv-doc .ltr{direction:ltr;unicode-bidi:isolate}
.inv-doc .strong{font-weight:var(--font-weight-semibold)}
.inv-doc th span,.inv-doc .inv-taxbox span,.inv-doc .inv-title span,.inv-doc .inv-totals td span,.inv-doc .inv-approve td span,.inv-doc .inv-approve th span{
  display:block;font-size:var(--doc-font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);line-height:1.3}
.inv-head{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:var(--border-width-strong) solid var(--paper-red);text-align:center}
.photo-body .inv-doc .inv-logo{height:56px!important;width:auto!important;max-width:70%!important;flex:none;display:block;object-fit:contain;border-radius:0!important}
.inv-co{text-align:center;font-size:var(--doc-font-size-xs);line-height:1.55;color:var(--paper-ink-2);max-width:100%}
.inv-co > div{white-space:nowrap}
.inv-co .ar{white-space:normal;font-size:var(--doc-font-size-lg);font-weight:var(--font-weight-semibold);color:var(--paper-ink)}
.inv-topline{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:var(--space-3);align-items:start;margin:var(--space-3) 0 var(--space-2)}
.inv-taxbox{border:1.5px solid var(--paper-line-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);text-align:center;justify-self:start}
.inv-taxbox b{display:block;font-size:var(--doc-font-size-lg);margin-top:var(--space-05)}
.inv-title{text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--doc-font-size-xl);border:1.5px solid var(--paper-line-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:var(--paper-tint)}
.inv-ids{display:grid;gap:var(--space-1);font-size:var(--doc-font-size-xs)}
.inv-ids div{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);align-items:baseline}
.inv-ids span{color:var(--paper-ink-2);font-weight:var(--font-weight-semibold)}
.inv-ids b{font-size:var(--doc-font-size-sm)}
.inv-cust{border:var(--border-width) solid var(--paper-line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);display:grid;gap:var(--space-1);font-size:var(--doc-font-size-sm)}
.inv-cust div{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);align-items:baseline}
.inv-cust span{color:var(--paper-ink-2);font-weight:var(--font-weight-semibold);white-space:nowrap}
.inv-cust b{font-size:var(--doc-font-size-md)}
.inv-table{width:100%;border-collapse:collapse;margin-bottom:var(--space-3);border:1.5px solid var(--paper-line-strong)}
.inv-table th{background:var(--paper-head);padding:var(--space-1);border:var(--border-width) solid var(--paper-muted);font-size:var(--doc-font-size-xs);font-weight:var(--font-weight-semibold);text-align:center;white-space:nowrap}
.inv-table td{padding:var(--space-2) var(--space-1);border:var(--border-width) solid var(--paper-line);text-align:center;vertical-align:top}
.inv-table .name{text-align:right;min-width:180px}
.inv-table thead th.name{text-align:center}
.inv-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-3);align-items:start;margin-bottom:var(--space-2)}
.inv-notes{border:var(--border-width) solid var(--paper-line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);min-height:74px;font-size:var(--doc-font-size-xs)}
.inv-notes b{display:block;font-size:var(--doc-font-size-lg);margin-bottom:var(--space-1)}
.inv-totals{width:100%;border-collapse:collapse;border:1.5px solid var(--paper-line-strong)}
.inv-totals td{padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--paper-line);font-size:var(--doc-font-size-sm)}
.inv-totals td:first-child{background:var(--paper-tint);font-weight:var(--font-weight-semibold);width:58%}
.inv-totals td.num{text-align:left;font-size:var(--doc-font-size-md)}
.inv-totals tr.due td{background:var(--paper-due);font-weight:var(--font-weight-semibold);font-size:var(--doc-font-size-md);color:var(--paper-red);border-top:1.5px solid var(--paper-line-strong)}
.inv-words{border:var(--border-width) solid var(--paper-line-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--doc-font-size-sm);margin-bottom:var(--space-3)}
.inv-approve{width:70%;border-collapse:collapse;margin-bottom:var(--space-3);margin-inline-start:auto}
.inv-approve th{background:var(--paper-head);border:var(--border-width) solid var(--paper-muted);padding:var(--space-1) var(--space-2);font-size:var(--doc-font-size-xs)}
.inv-approve td{border:var(--border-width) solid var(--paper-line);padding:var(--space-2);font-size:var(--doc-font-size-xs);font-weight:var(--font-weight-semibold);height:26px}
.inv-approve td:first-child{background:var(--paper-tint);white-space:nowrap}
.inv-terms{margin:0 0 var(--space-3);padding:0 var(--space-4) 0 0;font-size:var(--doc-font-size-xs);line-height:1.55;color:var(--paper-ink-2)}
.inv-terms li{margin:1px 0}
.inv-receiver{display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--doc-font-size-sm);font-weight:var(--font-weight-semibold);margin:var(--space-4) 0 var(--space-1)}
.inv-receiver i{flex:1;border-bottom:1px dotted var(--paper-line-strong);min-height:1em}
.inv-foot{margin-top:var(--space-3);padding-top:var(--space-2);border-top:var(--border-width) solid var(--paper-line);text-align:center;font-size:var(--doc-font-size-xs);color:var(--paper-ink-2);font-weight:var(--font-weight-semibold)}
.photo-body .inv-doc .inv-iffi{height:34px!important;width:auto!important;max-width:40%!important;display:block;margin:0 auto var(--space-1);object-fit:contain;border-radius:0!important}

/* ---------- the style guide (#/styleguide) ---------- */
.sg-sec{padding-top:var(--space-6);border-top:var(--border-width) solid var(--border-strong);margin-top:var(--space-6)}
.sg-sec > h2{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl);margin-bottom:var(--space-1)}
.sg-sec > .sub{margin-bottom:var(--space-4);max-width:78ch}
.sg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}
.sg-sw{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}
.sg-sw i{display:block;height:var(--space-12);border-bottom:var(--border-width) solid var(--border-default)}
.sg-sw div{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm)}
.sg-sw b{display:block;font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}
.sg-sw .cr{color:var(--text-muted);font-variant-numeric:tabular-nums}
.sg-sw .cr.bad{color:var(--text-danger);font-weight:var(--font-weight-semibold)}
.sg-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-start;margin-bottom:var(--space-3)}
.sg-row > .q{flex:0 0 100%}
.sg-cell{display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}
.sg-cell > small{font-size:var(--font-size-xs);color:var(--text-muted)}
.sg-box{display:block;width:var(--space-16);height:var(--space-16);background:var(--bg-surface);border:var(--border-width) solid var(--border-default)}
.sg-side{display:flex;flex-direction:column;gap:var(--space-05);width:220px;padding:var(--space-2);background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md)}
.sg-demo{position:relative;border:var(--border-width) dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-page);min-width:0}
.sg-demo .sheet,.sg-demo .toast,.sg-demo .sbox,.sg-demo .tip{position:relative;inset:auto;transform:none!important;opacity:1;pointer-events:auto;display:block;width:100%;max-width:100%;margin:0}
.sg-demo .sheet{max-height:none}
.sg-demo .tip{min-width:0;display:inline-block}
.sg-type{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--space-4);align-items:baseline;padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--border-default)}
.sg-space{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0}
.sg-space i{display:block;height:var(--space-3);background:var(--bg-brand);min-width:1px}
.sg-space span{font-size:var(--font-size-sm);color:var(--text-secondary);min-width:180px;font-variant-numeric:tabular-nums}
.sg .ledger .kpis{margin-top:var(--space-2)}
.sg .grid{align-items:start}

/* ---------- motion: answers on press, nothing moves while a figure is read ---------- */
.btn,.nav,.tab,.chip,.kind,.seg button,.sr,.x,.gsearch,.topbar .iconbtn,.tbl th.sort,.subtab,.link{transition:transform var(--duration-base) var(--ease-out),background-color var(--duration-fast) ease,border-color var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}
.btn:active,.nav:active,.tab:active,.chip:active,.kind:active,.seg button:active,.sr:active,.x:active,.gsearch:active,.topbar .iconbtn:active{transform:scale(.97)}
.field input,.field select,.field textarea,.lr input,.lr select,.sheet textarea,.search{transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}
.overlay{transition:opacity var(--duration-base) var(--ease-out)}
.overlay.open{transition-duration:220ms}
.sheet{transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}
.sheet.open{transition-duration:250ms}
.toast{transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out)}
.toast.show{transition-duration:300ms}
.more-menu{opacity:0;pointer-events:none;transform:scale(.97);transform-origin:100% 100%;transition:opacity 150ms var(--ease-out),transform 150ms var(--ease-out)}
.more-menu.open{opacity:1;pointer-events:auto;transform:scale(1)}
.tip{transition:opacity 125ms var(--ease-out)}
.dchart .mval{transition:opacity .15s}
.pbar-f{transition:width 320ms var(--ease-out)}
.tab.add span{transition:transform var(--duration-base) var(--ease-out)}
.tab.add:active span{transform:scale(.94)}
.tab.add:active{transform:none}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .sheet,.sheet.open,.more-menu,.more-menu.open,.toast,.toast.show{transform:none!important}
  .sheet{transform:translate(-50%,-50%)!important}
  .btn:active,.nav:active,.tab:active,.chip:active,.kind:active,.sr:active{transform:none!important}
  .logomark::before,.logomark::after{display:none}
  .pbar-f{transition:none}
}

/* ---------- responsive ---------- */
@media (max-width:1360px){
  .tbl.prod th:last-child,.tbl.prod td:last-child,.tbl.prod .opt{display:none}
  .tbl.prod th,.tbl.prod td{padding-inline:var(--space-1);font-size:var(--font-size-sm)}
  .tbl.prod th:first-child,.tbl.prod td:first-child{padding-inline-start:var(--space-3)}
  .tbl.prod th:nth-last-child(2),.tbl.prod td:nth-last-child(2){padding-inline-end:var(--space-3)}
  .tbl.prices th,.tbl.prices td{padding-inline:var(--space-1);font-size:var(--font-size-sm)}
  .tbl.prices th:first-child,.tbl.prices td:first-child{padding-inline-start:var(--space-3)}
  .tbl.prices th:last-child,.tbl.prices td:last-child{padding-inline-end:var(--space-3)}
}
@media (max-width:1250px){
  .kpis.dash{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kpis.dash .kpi:first-child{grid-column:1 / -1}
  .ledger .kpis,.ledger .kpis.dash{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ledger .kpis .kpi:first-child{grid-column:auto}
}
@media (max-width:1200px){.tbl.prices th:nth-child(6),.tbl.prices td:nth-child(6){display:none}}
/* the invoice register on a laptop: the Receipt column gives way so Print, Return
   and the pencil stay on screen (the scan still opens from the invoice itself) */
/* owner, 10 Oct 2026 ("fix this, not fit"): on a 1,280-wide laptop the register still ran past the card and the pencil was
   clipped — long Arabic customer names, a salesperson with a commission line and a six-figure total left no room. The Tax
   chip goes with the Receipt column; the buttons may stack; and the register scrolls sideways rather than clip, as on a phone. */
@media (max-width:1300px){.tbl.invtbl th:nth-child(7),.tbl.invtbl td:nth-child(7),.tbl.invtbl th:nth-child(4),.tbl.invtbl td:nth-child(4){display:none}
  .tbl.invtbl td.row{white-space:normal}.tbl.invtbl td.row > .btn{margin-bottom:var(--space-1)}
  .invtbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* owner, 10 Oct 2026 ("one invoice is hidden under this bar"): a box that scrolls sideways is a scroll container, so a header stuck at the page offset sits over the first row inside it; in that box the header stays in its place */
  .invtbl-wrap .tbl th{top:auto}}
@media (max-width:1200px){.tbl.invtbl .who{min-width:0}.tbl.invtbl .who.cust{min-width:14ch}}   /* the box scrolls sideways below 1,300 px (above): a customer name keeps room for a few words a line instead of one word a line on a phone (10 Oct 2026) */
/* ---------- figures the owner can hide ---------- */
.kpi,.kpirow > div{position:relative}
.eye{position:absolute;inset-inline-end:var(--space-1);top:var(--space-1);border:0;background:none;padding:var(--space-1);border-radius:var(--radius-sm);color:var(--icon-default);opacity:.45;cursor:pointer;line-height:0}
.eye svg{width:16px;height:16px}
.eye:hover,.eye:focus-visible{opacity:1;background:var(--bg-hover);outline:none}
.eye:focus-visible{box-shadow:var(--focus-ring-shadow)}
.kpis.dash .kpi:first-child .eye{color:var(--text-inverse)}
body:not(.privacy) .eye{display:none}
.masked .eye{opacity:.9}
@media print{.eye,.eye-page{display:none!important}}
/* ---------- statement desk (Customers) ---------- */
.stmt-hits{display:flex;flex-direction:column;margin-top:var(--space-1);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:var(--shadow-md);padding:var(--space-1)}
.stmt-hit{text-align:start;border:0;background:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);font-size:var(--font-size-md);min-height:var(--size-control-sm)}
.stmt-hit:hover,.stmt-hit:focus-visible{background:var(--bg-hover);outline:none}
.stmt-hit:focus-visible{box-shadow:var(--focus-ring-shadow)}
@media print{.stmt-range,.stmt-finder,.stmt-hits{display:none!important}}
/* ---------- the trading company's pre-printed letterhead paper ----------
   its header and footer are already on the sheet: the document prints without
   its own, inside margins that clear both bands (A4, 46mm top, 38mm foot) */
.inv-doc.pre-printed .inv-head,.inv-doc.pre-printed .inv-foot,.inv-doc.pre-printed .inv-mark,.inv-doc.pre-printed .inv-iffi{display:none}
.paper-note{border:var(--border-width) dashed var(--paper-line-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);text-align:center;font-size:var(--doc-font-size-xs);color:var(--paper-ink-2);direction:ltr}
@media print{
  @page sharastar{size:A4 portrait;margin:46mm 12mm 41mm}
  .paper-note{display:none!important}
  body.printing-invoice .inv-doc.pre-printed{page:sharastar;min-height:0;padding:0 2mm;width:auto;max-width:none}
  body.printing-invoice.paper-pre #photobox .photo-body{width:auto!important;margin:0!important}
  body.printing-invoice #photobox .photo-inner{max-height:none!important;overflow:visible!important;display:block!important}
  /* a statement runs to as many pages as it needs; the invoice's one-sheet frame would clip it */
  body.printing-invoice .inv-doc.stmt-doc{overflow:visible;display:block;min-height:0}
  body.printing-invoice .stmt-table tr{page-break-inside:avoid}
  body.printing-invoice .stmt-table thead{display:table-header-group}
}
/* the printed statement (12 Sep): Zoho's account summary beside the customer,
   Odoo's due-date column, then the aging, the words, the review note, the
   customer's confirmation and the issuing company's stamp */
.stmt-head2{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--space-3);align-items:stretch;margin-bottom:var(--space-3)}
.stmt-head2 .inv-cust{margin-bottom:0}
.stmt-sum td:first-child{width:56%}
.stmt-table td{vertical-align:middle}
.stmt-table td.name{text-align:right}
.stmt-table td.name span,.stmt-table td.doc span{display:block;font-size:var(--doc-font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);line-height:1.3}
.stmt-table td.doc{white-space:nowrap}
.stmt-table td.doc b{display:block;font-weight:var(--font-weight-semibold)}
.stmt-table td.due{color:var(--paper-ink-2)}
.stmt-table tr.stmt-open td,.stmt-table tr.strong td{background:var(--paper-tint)}
.stmt-table tr.strong td{border-top:1.5px solid var(--paper-line-strong)}
.stmt-after{break-inside:avoid;page-break-inside:avoid}
.stmt-cap,.stmt-sign-h{font-weight:var(--font-weight-semibold);font-size:var(--doc-font-size-sm);margin-bottom:var(--space-1)}
.stmt-cap span,.stmt-sign-h span{font-size:var(--doc-font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);margin-inline-start:var(--space-2)}
.stmt-aging td{font-size:var(--doc-font-size-md)}
.stmt-aging th:last-child,.stmt-aging td:last-child{background:var(--paper-due);color:var(--paper-red)}
.stmt-note{margin:0 0 var(--space-2);font-size:var(--doc-font-size-xs);line-height:1.5;color:var(--paper-ink-2);text-align:center}
.stmt-doc .en{display:block;font-size:var(--doc-font-size-2xs);color:var(--paper-muted);font-weight:var(--font-weight-medium)}
.stmt-confirm .en{text-align:right}
.stmt-sign{display:grid;grid-template-columns:1.7fr 1fr;gap:var(--space-3);align-items:stretch}
.stmt-confirm,.stmt-stamp{border:1.5px solid var(--paper-line-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--doc-font-size-xs)}
.stmt-confirm p{margin:0 0 var(--space-1);line-height:1.5;font-size:var(--doc-font-size-xs)}
.stmt-sign small{font-size:var(--doc-font-size-2xs);font-weight:var(--font-weight-medium);color:var(--paper-muted)}
.stmt-ticks{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-bottom:var(--space-1);font-weight:var(--font-weight-semibold)}
.stmt-ticks > div{display:flex;align-items:center;gap:var(--space-1)}
.stmt-ticks > div:last-child{flex:1;min-width:0}
.stmt-ticks small{white-space:nowrap}
.stmt-box{display:inline-block;width:11px;height:11px;border:1.5px solid var(--paper-line-strong);flex:none}
.stmt-line{display:inline-block;flex:1;min-width:60px;height:1.1em;border-bottom:1px dotted var(--paper-line-strong)}
.stmt-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-1);font-weight:var(--font-weight-semibold)}
.stmt-fields > div{display:flex;flex-direction:column;gap:var(--space-1)}
.stmt-fields .stmt-line{flex:none;width:100%;height:14px}
.stmt-stampbox{border:var(--border-width) dashed var(--paper-line);border-radius:var(--radius-sm);min-height:34px;padding:var(--space-05) var(--space-2);display:flex;align-items:flex-end;gap:var(--space-1);color:var(--paper-ink-2);font-weight:var(--font-weight-semibold)}
.stmt-stamp{display:flex;flex-direction:column;gap:var(--space-1)}
.stmt-stamp .stmt-stampbox{flex:1;min-height:44px}
.stmt-stamp > b{text-align:center;font-size:var(--doc-font-size-xs)}
.stmt-stamp > b small{display:block}
/* the debit note acknowledgement (sm-debit-note-doc.js): an invoice's sheet with two short tables; the description takes the width,
   the figures keep to their side, and the English under an Arabic line is small, as on the statement */
.dn-doc .dn-table td:first-child{text-align:start}
.dn-doc .dn-table td span,.dn-doc .stmt-note .en{display:block;font-size:var(--doc-font-size-2xs);color:var(--paper-ink-2)}
.dn-doc .dn-table td span{text-align:right}
.dn-doc .dn-table td.num{white-space:nowrap;width:1%}
.dn-doc .dn-table tr.total td{font-weight:var(--font-weight-semibold);border-top:1.5px solid var(--paper-line-strong)}
.dn-doc .stmt-sign,.po-doc .stmt-sign{margin-top:var(--space-3)}
.dn-doc .stmt-stamp .stmt-stampbox,.po-doc .stmt-stamp .stmt-stampbox{min-height:var(--size-doc-stamp)}
/* the purchase order (so-purchase-orders.js): the material's name takes the width, the other columns keep to their content; the
   supplier and the delivery side by side; the notes beside the totals; English under an Arabic line small, as on the statement */
.po-doc .po-table td:not(.name),.po-doc .po-table th:not(.name){white-space:nowrap;width:1%;text-align:center}
.po-doc .en{display:block;font-size:var(--doc-font-size-2xs);color:var(--paper-ink-2)}
.po-doc .po-parties{grid-template-columns:1fr 1fr}
.po-doc .po-cap{display:block;font-weight:var(--font-weight-semibold);font-size:var(--doc-font-size-sm)}
.po-doc .po-cap span{font-size:var(--doc-font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted);margin-inline-start:var(--space-2)}
.po-doc .po-free{display:block}
.po-doc .po-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-3);align-items:start;margin:var(--space-3) 0}
.po-doc .po-notes p{margin:0 0 var(--space-2);font-size:var(--doc-font-size-xs);line-height:1.5}
.po-doc .stmt-confirm p{margin-bottom:var(--space-2)}
/* a short order still fills its page, so the watermark sits at the foot of the sheet and not across the approval block */
body.printing-invoice .inv-doc.stmt-doc.po-doc{min-height:297mm}
/* a document as a PDF (sl-doc-pdf.js): the stamp takes room that is already empty, so the layout stays the printed one. On a statement
   that is its company-stamp box; on an invoice or a credit note, the part of the approval table's row the table leaves free. The
   letterhead page is a fixed picture behind the sheet, which a browser repeats on every printed page, and whatever is painted over
   the sheet gives way to it. On screen the letterhead is not shown. */
.stmt-stamp .stmt-stampbox,.doc-pdf-stamprow{position:relative}
img.doc-pdf-stamp{position:absolute;top:var(--space-05);left:var(--space-05);width:calc(100% - 2 * var(--space-05));height:calc(100% - 2 * var(--space-05));max-width:none;object-fit:contain}
.doc-pdf-stamprow > img.doc-pdf-stamp{top:0;left:auto;right:auto;inset-inline-start:0;width:28%;height:100%}
/* with the authorised signature beside it, each takes half of the box */
img.doc-pdf-sign{position:absolute;top:var(--space-05);left:var(--space-05);width:calc(100% - 2 * var(--space-05));height:calc(100% - 2 * var(--space-05));max-width:none;object-fit:contain}
.doc-pdf-two > img.doc-pdf-sign{width:calc(50% - var(--space-05))}
.doc-pdf-two > img.doc-pdf-stamp{left:50%;width:calc(50% - var(--space-05))}
.doc-ask{display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap}
/* beside an invoice's approval table the room is one narrow column: the signature above, the stamp below and a little over it, as by hand */
.doc-pdf-stamprow > img.doc-pdf-sign{top:0;left:auto;right:auto;inset-inline-start:0;width:28%;height:100%}
.doc-pdf-stamprow.doc-pdf-two > img.doc-pdf-sign{height:50%}
.doc-pdf-stamprow.doc-pdf-two > img.doc-pdf-stamp{top:35%;left:auto;right:auto;inset-inline-start:0;width:28%;height:65%}
@media screen{img.doc-pdf-paper{visibility:hidden;position:fixed;left:0;top:0;width:0;height:0}}
/* HR papers on the company's letterhead (su-hr-letterhead.js, owner 21 Oct 2026): a layer fixed behind every printed page, the heading
   inside the paper's top gap and the footer inside its bottom gap. Laid out on screen too, but never seen there. */
.hr-lh-page{position:fixed;left:0;top:0;width:210mm;height:297mm;z-index:-1;pointer-events:none;color:var(--paper-ink)}
@media screen{.hr-lh-page{visibility:hidden}}
.hr-lh-page .hr-lh-mark,.hr-lh-page .hr-lh-paper{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0}
.hr-lh-page .hr-lh-mark{object-fit:cover;object-position:left bottom}
.hr-lh-head,.hr-lh-foot{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1mm}
.hr-lh-head{top:0;justify-content:flex-end;padding-bottom:2mm;border-bottom:var(--border-width-strong) solid var(--paper-red)}
.hr-lh-foot{bottom:0;justify-content:flex-start;padding-top:2mm;border-top:var(--border-width) solid var(--paper-line);font-size:var(--doc-font-size-xs);font-weight:var(--font-weight-semibold);color:var(--paper-ink-2)}
.hr-lh-page .hr-lh-logo{height:13mm;width:auto;max-width:70%;display:block}
.hr-lh-page .hr-lh-iffi{height:9mm;width:auto;display:block}
.hr-lh-name{font-size:var(--doc-font-size-lg)}
.hr-lh-co{font-size:var(--doc-font-size-xs);line-height:1.45;color:var(--paper-ink-2)}
.hr-lh-co .ar{font-size:var(--doc-font-size-lg);font-weight:var(--font-weight-semibold);color:var(--paper-ink)}
@media print{body.hr-lh.printing-invoice,body.hr-lh.printing-invoice #app,body.hr-lh.printing-invoice #photobox .photo-inner,body.hr-lh.printing-invoice #photobox .photo-body,body.hr-lh.printing-invoice #photobox .inv-doc{background:none!important}}
@media print{
  img.doc-pdf-paper{position:fixed;left:0;top:0;width:210mm;height:297mm;max-width:none;margin:0;z-index:-1}
  body.doc-pdf.printing-invoice,body.doc-pdf.printing-invoice #app,body.doc-pdf.printing-invoice #photobox .photo-inner,body.doc-pdf.printing-invoice #photobox .photo-body,body.doc-pdf.printing-invoice #photobox .inv-doc{background:none!important}
}
.stmt-table td.amt{text-align:left;padding-inline:var(--space-2)}
/* a number beside its label, not at the far side of the box */
.stmt-doc .inv-cust b.num,.stmt-doc .inv-cust b.ltr{text-align:right}
/* the paper's background is drawn for one A4 sheet: on a statement that runs
   longer it keeps that size at the foot instead of stretching over every row */
.photo-body .inv-doc.stmt-doc .inv-mark{top:auto!important;height:auto!important;aspect-ratio:210/297}
/* the credit-note register on a small laptop: the disposition column gives way
   (the chips above the table still filter by it) and the name cells may wrap,
   so the row's buttons stay on screen */
@media (max-width:1200px){.tbl.cntbl th:nth-child(2),.tbl.cntbl td:nth-child(2){display:none}.tbl.cntbl .who{min-width:0}}
@media (max-width:1100px){
  .g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis.dash.prodkpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis.dash.prodkpis .kpi:first-child{grid-column:1/-1}
  .todaycols{grid-template-columns:1fr}
  .todaycols .inbox{max-height:none}
  .todaycols .inbox .ib{grid-template-columns:auto minmax(0,1fr) auto}
  .todaycols .inbox .ib .acts{grid-column:auto;justify-content:flex-end;margin-top:0}
  .prodsecs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tbl.aging th,.tbl.aging td{padding-inline:var(--space-2);font-size:var(--font-size-sm)}
  .tbl.aging.list th:last-child,.tbl.aging.list td:last-child{display:none}
  .hero-logo{position:static;order:-1;width:100%;margin-bottom:var(--space-2)}
}
@media (max-width:960px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  main{min-width:0;padding:var(--space-4) max(var(--space-4),env(safe-area-inset-left)) calc(var(--space-16) + var(--space-8)) max(var(--space-4),env(safe-area-inset-right))}
  html{scroll-padding-top:calc(var(--size-topbar) + var(--space-5))}
  .topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border-default);position:sticky;top:0;z-index:10;
    background:color-mix(in srgb,var(--bg-page) 82%,transparent);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
  .topbar .brand{padding:0;flex-direction:row}
  .topbar .brand img.logo{height:30px}
  .pagehead{margin-bottom:var(--space-4)}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .kpis:not(.dash) > .kpi{flex-basis:calc(50% - var(--space-2))}
  .kpis.dash{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis.dash .kpi:first-child{grid-column:1 / -1}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset-inline:0;bottom:0;border-top:var(--border-width) solid var(--border-default);z-index:15;
    padding:var(--space-1) var(--space-1) calc(var(--space-1) + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--bg-surface) 86%,transparent);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
  .tab{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-05);font-size:var(--font-size-xs);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);min-height:var(--size-touch)}
  .tab svg{width:var(--size-icon);height:var(--size-icon)}
  .tab.active{color:var(--text-brand);font-weight:var(--font-weight-semibold)}
  .tab.add span{width:var(--size-touch);height:var(--size-touch);border-radius:var(--radius-full);background:var(--bg-brand);color:var(--text-on-brand);display:grid;place-items:center;margin-top:calc(-1 * var(--space-4));box-shadow:var(--shadow-md)}
  .sheet,.sheet.wide{top:auto;bottom:0;inset-inline-start:0;transform:translateY(100%);transform-origin:50% 100%;width:100%;max-height:92vh;max-height:92dvh;border-radius:var(--radius-md) var(--radius-md) 0 0;padding-bottom:env(safe-area-inset-bottom);
    transition:opacity 200ms var(--ease-out),transform var(--duration-slow) var(--ease-drawer)}
  .sheet.open{transform:translateY(0);transition-duration:200ms,400ms}
  .stages{grid-template-columns:1fr}
  .stage::before{inset-inline-end:0}
  .kinds{grid-template-columns:1fr}
  .f2{grid-template-columns:1fr}
  .subnav{position:static;margin:0 0 var(--space-4);padding:0;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .subnav::-webkit-scrollbar{display:none}
  .subtab{flex:none}
  .kpis{gap:var(--space-2)}
  .week{grid-template-columns:1fr}.day{min-height:0}.day.past{display:none}
  .ib{grid-template-columns:auto minmax(0,1fr)}.ib .acts{grid-column:2;justify-content:flex-start}
  .field input,.field select,.field textarea,.search input,.sbox .in input,.signin .field input{font-size:var(--font-size-lg)}   /* 16px stops iOS zooming on focus */
  .btn.sm,.seg button,.calhead .btn,.pagehead .btn,.subtab{min-height:var(--size-touch)}
  .calhead .btn,.tbl .btn.sm,.tbl .link,.seg button{min-width:var(--size-touch);justify-content:center}
  .card h2 .link,.tbl .link{padding:var(--space-2) var(--space-1);min-height:var(--size-touch);display:inline-flex;align-items:center}
  .chip{padding:var(--space-2) var(--space-3)}
  .invtbl td:nth-child(2){white-space:nowrap}
  .tw.scrolls + .scrollhint{display:block}
  .tbl th{top:0}
  .more-menu{bottom:calc(78px + env(safe-area-inset-bottom))}
  .toast{bottom:calc(86px + env(safe-area-inset-bottom))}
  .signin-wrap{padding:var(--space-5) max(var(--space-4),env(safe-area-inset-left)) calc(var(--space-5) + env(safe-area-inset-bottom))}
  .mtile .fig{font-size:var(--font-size-xl)}
}
@media (max-width:900px){
  main .grid[style*="minmax(0,1."],main .grid[style*="1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:760px){
  .bk[style*="190px"]{grid-template-columns:minmax(0,1fr) auto!important;row-gap:var(--space-1)}
  .bk[style*="190px"] > :first-child{grid-column:1/-1;white-space:normal;overflow-wrap:break-word}
}
@media screen and (max-width:720px){   /* a phone, not a sheet of paper: a printed page is narrower than 720px too, and these rules stacked the statement's boxes on it (22 Sep 2026) */
  .tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tw .tbl th{position:static}
  .tw .tbl td{white-space:nowrap}
  .tw .tbl td .who,.tw .tbl td .who small,.tw .tbl td .sub{white-space:normal}
  .fields{grid-template-columns:1fr}
  .field.wide{grid-column:auto}
  .sheet,.sheet.wide{width:100%}
  .sheet .body{padding-inline:var(--space-3)}
  .lines{padding:var(--space-2);border:0}
  .lines .lh{display:none}
  .lines .lr{grid-template-columns:1fr 1fr!important;gap:var(--space-2) var(--space-3);align-items:end;border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--bg-surface)}
  .lines .lc{display:block;min-width:0}
  .lines .lc::before{content:attr(data-l);display:block;font-size:var(--font-size-xs);letter-spacing:var(--font-letter-spacing-label);text-transform:uppercase;color:var(--text-muted);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);line-height:var(--font-line-height-xs)}
  .lines .lr .lc:first-child{grid-column:1/-1}
  .lines .lr .x.sm{grid-column:1/-1;justify-self:end;width:auto;padding:0 var(--space-3);height:var(--size-control-sm)}
  .lines .lr input,.lines .lr select{font-size:var(--font-size-lg);padding:var(--space-2)}
  .calccell{padding:var(--space-2) 0}
  .step{grid-template-columns:auto minmax(0,1fr)}.step .acts{grid-column:2;justify-content:flex-start}
  .todaycols .inbox .ib,.ledger .decisions .ib{grid-template-columns:auto minmax(0,1fr)}
  .todaycols .inbox .ib .acts,.ledger .decisions .ib .acts{grid-column:2;justify-content:flex-start;margin-top:var(--space-1)}
  .ledger .kpis,.ledger .kpis.dash{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-4)}
  .ledger .kpis .kpi .fig,.ledger .kpis .kpi:first-child .fig{font-size:var(--font-size-xl);line-height:var(--font-line-height-xl)}
  .ledger .quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .spark{height:22px}
  .tbl.aging th,.tbl.aging td{padding-inline:var(--space-1)}
  .tbl.aging .who small{font-size:var(--font-size-xs)}
  .inv-co,.inv-co > div{white-space:normal;min-width:0}
  .inv-topline,.inv-bottom{grid-template-columns:1fr}
  .stmt-head2,.stmt-sign,.stmt-fields{grid-template-columns:1fr}
  .inv-taxbox{justify-self:stretch}
  .inv-approve{width:100%}
  .inv-doc{padding:var(--space-3)}
  .inv-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  .inv-table .name{min-width:140px;white-space:normal}
  .signin-wrap::before{-webkit-mask-size:132px 132px;mask-size:132px 132px}
}
@media (max-width:620px){
  .cday{min-height:58px;padding:var(--space-1)}.cday .cam{font-size:var(--font-size-xs)}
  .prodsecs,.prodcard .prodsecs{grid-template-columns:minmax(0,1fr)}
  #newver{top:auto;bottom:84px;width:calc(100vw - 24px);justify-content:space-between}
}
@media (max-width:520px){.kpis.dash.prodkpis{grid-template-columns:minmax(0,1fr)}.qrbox{width:160px;height:160px}}

/* ---------- the account box, bottom left: who, what they may do, Settings and Sign out ---------- */
.who-body{min-width:0;flex:1 1 auto}
.who-name{color:var(--text-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who-role{font-size:var(--font-size-xs);line-height:var(--font-line-height-xs);color:var(--text-muted)}
.who-body .who-links{gap:var(--space-3)}
.who-links a.link{display:inline-flex;align-items:center;gap:var(--space-1);text-decoration:none;color:var(--text-secondary)}
.who-links a.link svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}
.who-links a.link:hover,.who-links .who-settings.on{color:var(--text-brand)}
.more-account a.nav{text-decoration:none}
/* a view-only account is not offered the buttons that change things (rr-access.js refuses them as well) */
.app.viewonly :is([data-add],button[data-form],[data-done],[data-edittx],[data-reversetx],[data-transfer],[data-closemonth],[data-reopen],[data-shift],[data-delivered]){display:none}

/* ---------- the fiscal year on screen ---------- */
.fy-chip{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--size-control-sm);margin:0 0 var(--space-2);padding:var(--space-1) var(--space-3);
  border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-secondary);
  font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:start;cursor:pointer}
.fy-chip small{margin-inline-start:auto;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular)}
.fy-chip:hover{background:var(--bg-hover);color:var(--text-primary)}
.fy-chip.past{border-color:var(--status-warning-mark);background:var(--bg-warning);color:var(--text-warning)}
.fy-chip.past small{color:var(--text-warning)}
.topbar .fy-chip{width:auto;margin:0;min-height:var(--size-control-md)}
.fy-banner{margin-bottom:var(--space-4)}

/* ---------- sign-in: the password can be read back ---------- */
.pwbox{position:relative}
.signin .pwbox input{padding-inline-end:calc(var(--space-12) + var(--space-4))}
.pwshow{position:absolute;inset-inline-end:var(--space-1);top:50%;transform:translateY(-50%);min-height:var(--size-control-sm);padding:var(--space-1) var(--space-2);
  border:0;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}
.pwshow:hover{color:var(--text-primary);background:var(--bg-hover)}

/* ---------- Settings › Users & access ---------- */
.acc-row{border-bottom:var(--border-width) solid var(--border-default)}
.acc-row > .li{border-bottom:0}
.acc-steps{display:grid;gap:var(--space-2);margin:0 0 var(--space-3);padding-inline-start:var(--space-10)}
.acc-steps li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);align-items:center;font-size:var(--font-size-sm);color:var(--text-secondary)}
.acc-steps li b{color:var(--text-primary);font-weight:var(--font-weight-semibold)}
.acc-steps li.done{color:var(--text-muted)}
.acc-level{grid-template-columns:minmax(0,1fr) minmax(0,3fr)}
.acc-center{justify-content:center;gap:var(--space-2)}
.acc-wide{width:100%;justify-content:center;margin-top:var(--space-4)}
@media (max-width:640px){.acc-steps{padding-inline-start:var(--space-5)}.acc-steps li{grid-template-columns:minmax(0,1fr)}}

/* ---------- print ---------- */
@page{margin:14mm}
@media print{
  .side,.tabbar,.topbar,.more-menu,.toast,.overlay,.sheet,.quick,.pagehead .btn,.toolbar .btn,.seg,.chips,.btn{display:none!important}
  .app{display:block}
  main{padding:0;max-width:none;width:auto}
  body{background:var(--paper)}
  body::before{content:"Ideal Food Industry · Operations";display:flex;align-items:flex-end;justify-content:flex-end;height:52px;padding-bottom:var(--space-2);margin-bottom:var(--space-4);border-bottom:var(--border-width-strong) solid var(--paper-red);
    background:var(--mark) left bottom/auto 40px no-repeat;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:.04em;color:var(--paper-red)}
  .card,.kpi,.tbl tr{break-inside:avoid}
  .card,.kpi{box-shadow:none;border:var(--border-width) solid var(--paper-line)}
  .kpis.dash .kpi:first-child{background:var(--paper)!important;color:var(--paper-ink)!important;border-color:var(--paper-red)}
  .kpis.dash .kpi:first-child .q,.kpis.dash .kpi:first-child .fig,.kpis.dash .kpi:first-child .sub{color:var(--paper-ink)!important;opacity:1}
  .kpis.dash .kpi:first-child::before,.kpis.dash .kpi:first-child::after{display:none}
  .tbl th{position:static}
  .ledger .kpis,.ledger .card{animation:none}
  .dchart .mval{opacity:1}
  /* the invoice alone, on A4 */
  body.printing-invoice{background:var(--paper)}
  body.printing-invoice > *:not(#app){display:none!important}
  body.printing-invoice #app{display:block!important;min-height:0!important}
  body.printing-invoice #app > *:not(#photobox){display:none!important}
  body.printing-invoice #photobox{display:block!important;position:static!important;inset:auto!important;width:auto!important;height:auto!important;max-height:none!important;overflow:visible!important;background:none!important;padding:0!important;margin:0!important}
  body.printing-invoice #photobox .photo-inner{box-shadow:none!important;border:0!important;width:auto!important;max-width:none!important}
  body.printing-invoice #photobox > .photo-inner > header,body.printing-invoice #photobox .alert{display:none!important}
  body.printing-invoice .inv-table,body.printing-invoice .inv-totals,body.printing-invoice .inv-approve{page-break-inside:auto}
  body.printing-invoice .inv-table tr{page-break-inside:avoid}
  body.printing-invoice::before{display:none!important}
}
@media print{@page{size:A4 portrait;margin:0}}
/* The sheet's own print shape. These sat inside the print block, where nothing can be measured: a page can only be fitted to A4 if its
   print layout exists while the script is still running. They apply whenever the body is marked as printing, which it is only from
   the moment Print is pressed until the print window closes, so the screen shows the same sheet the printer gets. */
body.printing-invoice #photobox .photo-body{padding:0!important;background:var(--paper)!important;overflow:visible!important;max-height:none!important;display:block!important;width:210mm!important;margin:0 auto!important}
body.printing-invoice #photobox,body.printing-invoice #photobox *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
body.printing-invoice .inv-doc{width:210mm;max-width:210mm;min-height:297mm;margin:0 auto;padding:13mm;border-radius:0;border-bottom:0;font-size:var(--doc-font-size-print);box-sizing:border-box;display:flex;flex-direction:column}
body.printing-invoice .inv-terms{margin-top:auto;margin-bottom:var(--space-2);line-height:1.45}
body.printing-invoice .inv-head{gap:var(--space-1);padding-bottom:var(--space-2)}
body.printing-invoice #photobox .inv-doc .inv-logo{height:44px!important}
body.printing-invoice .inv-topline{margin:var(--space-2) 0 var(--space-2)}
body.printing-invoice .inv-cust{padding:var(--space-1) var(--space-2);margin-bottom:var(--space-2);gap:var(--space-1)}
body.printing-invoice .inv-table{margin-bottom:var(--space-2)}
body.printing-invoice .inv-table th,body.printing-invoice .inv-table td{padding:var(--space-1)}
body.printing-invoice .inv-bottom{margin-bottom:var(--space-2);gap:var(--space-2)}
body.printing-invoice .inv-notes{padding:var(--space-1) var(--space-2);min-height:60px}
body.printing-invoice .inv-totals td{padding:var(--space-1) var(--space-2)}
body.printing-invoice .inv-words{padding:var(--space-1) var(--space-2);margin-bottom:var(--space-2)}
body.printing-invoice .inv-approve{margin-bottom:var(--space-2)}
body.printing-invoice .inv-approve th{padding:var(--space-1) var(--space-2)}
body.printing-invoice .inv-approve td{padding:var(--space-1) var(--space-2);height:auto}
body.printing-invoice .inv-receiver{margin:var(--space-2) 0 var(--space-1)}
body.printing-invoice .inv-foot{margin-top:var(--space-2);padding-top:var(--space-1)}
body.printing-invoice .photo-body .inv-doc .inv-iffi{height:9mm!important;margin-bottom:2mm}
/* a narrow window reshapes the sheet for reading; the printed sheet is always the A4 one */
body.printing-invoice .inv-topline{grid-template-columns:1fr 1.2fr 1fr}
body.printing-invoice .inv-bottom{grid-template-columns:1.3fr 1fr}
body.printing-invoice .inv-table{display:table;white-space:normal;overflow:visible}
/* a table takes the sheet's type size in every browser mode */
.inv-doc table{font-size:inherit}
/* fitted to one A4 page (s2-print-fit.js): the content is one block, scaled as a whole */
/* an HR letter on the company's paper (s4-hr-letters.js) */
.hr-doc .hr-meta{display:flex;justify-content:space-between;margin:var(--space-4) 0 var(--space-5);font-size:var(--doc-font-size-md)}
.hr-doc .hr-title{text-align:center;font-size:var(--doc-font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3);text-decoration:underline;text-underline-offset:var(--space-1)}
.hr-doc .hr-to{text-align:center;font-size:var(--doc-font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-5)}
.hr-doc .hr-body{font-size:var(--doc-font-size-lg);line-height:2.1;text-align:justify}
.hr-doc .hr-body p{margin:0 0 var(--space-3)}
.hr-doc .hr-body ol{margin:0 0 var(--space-3);padding-inline-start:var(--space-6)}
.hr-doc .hr-note{font-size:var(--doc-font-size-sm);color:var(--paper-ink-2);margin-top:var(--space-5)}
.hr-doc .hr-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-5);margin:var(--space-3) 0 var(--space-4)}
.hr-doc .hr-fields span{color:var(--paper-ink-2);margin-inline-end:var(--space-2)}
.hr-doc .hr-signs{display:flex;justify-content:space-between;gap:var(--space-6);margin-top:var(--space-8)}
.hr-doc .hr-signs div{flex:1;text-align:center}
.hr-doc .hr-signs span{display:block;font-weight:var(--font-weight-semibold)}
.hr-doc .hr-signs i{display:block;border-bottom:var(--border-width) dotted var(--paper-ink-2);height:var(--space-8);margin:0 var(--space-4)}
.hr-doc .hr-table{width:100%;border-collapse:collapse;margin:0 0 var(--space-3)}
.hr-doc .hr-table th,.hr-doc .hr-table td{border:var(--border-width) solid var(--paper-line);padding:var(--space-1) var(--space-2);text-align:start}
.hr-doc .hr-table th{background:var(--paper-head);font-weight:var(--font-weight-semibold)}
/* a form, as against a letter: set closer, ruled boxes to write in */
.hr-doc.hr-compact .hr-body{font-size:var(--doc-font-size-md);line-height:1.7;text-align:start}
.hr-doc.hr-compact .hr-title{margin-bottom:var(--space-3)}
.hr-doc.hr-compact .hr-body p{margin-bottom:var(--space-1)}
.hr-doc.hr-compact .hr-table th,.hr-doc.hr-compact .hr-table td{padding:var(--space-05) var(--space-2)}
.hr-doc.hr-compact .hr-grid{margin-bottom:var(--space-1)}
.hr-doc.hr-compact .hr-grid,.hr-doc.hr-compact .hr-small{line-height:1.35}
.hr-doc.hr-compact .hr-title{font-size:var(--doc-font-size-lg);margin-bottom:var(--space-2)}
.hr-doc.hr-compact .hr-meta{margin:0 0 var(--space-2)}
.hr-doc .hr-small{font-size:var(--doc-font-size-sm);line-height:1.5}
.hr-doc .hr-rule{border-bottom:var(--border-width) dotted var(--paper-ink-2);height:var(--space-4);margin-bottom:var(--space-1)}
.hr-doc .hr-grid{font-size:var(--doc-font-size-sm);margin-bottom:var(--space-2)}
.hr-doc .hr-grid th{white-space:nowrap}
.hr-doc .hr-grid td{min-width:var(--space-6)}
.hr-doc .hr-grid .c{text-align:center}
/* a question and the box its answer is written in: the box gets the room */
.hr-doc .hr-pairs{table-layout:fixed}
/* a form printed empty to be written on by hand: the boxes are tall enough for handwriting */
.hr-doc .hr-blank td,.hr-doc .hr-blank th{height:var(--space-8)}
/* the cheque list's add-a-photo button is a label around a hidden file input, styled as the button it is */
.chq-addphoto{cursor:pointer;display:inline-flex;align-items:center}
.chq-photo{margin-top:var(--space-1)}
.chq-addphoto svg + svg{margin-inline-start:calc(var(--space-1) * -1)}
/* Human Capital: a card's own heading, a row that opens, the profile's head, and a fact sheet of label and value */
.cardhead{padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--border-default)}
.tbl tr.rowlink{cursor:pointer}
.tbl tr.rowlink:hover td{background:var(--bg-muted)}
.tbl tr.rowlink:focus-visible{outline:var(--border-width-strong) solid var(--text-brand);outline-offset:calc(var(--border-width-strong) * -1)}
.hcm-profile h1{margin:0}
.hcm-profile .who{display:flex;align-items:center;gap:var(--space-3)}
.hcm-avatar{width:var(--space-8);height:var(--space-8);font-size:var(--font-size-lg)}
.kv.hcm-facts{grid-template-columns:minmax(0,14ch) minmax(0,1fr);gap:var(--space-2) var(--space-4)}
.hcm-forms{display:grid;grid-template-columns:minmax(0,12ch) minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-2) 0;border-top:var(--border-width) solid var(--border-default);margin-top:var(--space-2)}
.hcm-list > .hcm-item{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-top:var(--border-width) solid var(--border-default)}
.hcm-list > .hcm-item:first-child{border-top:0}
.hcm-item-body{flex:1;min-width:0}
.hcm-item-act{display:flex;gap:var(--space-2);flex:none;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.seg.hcm-tabs{max-width:100%;overflow-x:auto}
.seg.hcm-tabs button{white-space:nowrap}
.hcm-forms .btn{white-space:normal;text-align:start;height:auto}
/* on a phone: the button under its text, a subject above its forms, and the two companies' switch no wider than the screen */
@media (max-width:640px){
  .hcm-list > .hcm-item{flex-wrap:wrap;align-items:flex-start}
  .hcm-item-body{flex-basis:calc(100% - var(--space-8) - var(--space-8))}
  .hcm-item-act{flex-basis:100%}
  .hcm-forms{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .kv.hcm-facts{grid-template-columns:minmax(0,11ch) minmax(0,1fr)}
  .hcm-profile .who{align-items:flex-start}
}
/* cards in a row that each end in a button: the text takes what it needs and the buttons sit on one line along the bottom */
.card.hcm-step{display:flex;flex-direction:column;align-items:flex-start}
.card.hcm-step > .btn{margin-top:auto}
/* the library of forms flows down two columns, so a short subject does not leave a hole beside a long one */
.hcm-library{columns:2;column-gap:var(--space-4)}
.hcm-library > .card{break-inside:avoid;margin-bottom:var(--space-4)}
@media (max-width:900px){.hcm-library{columns:1}}
/* a payslip: earnings beside deductions, each its own list with the amount column wide enough for a figure, then the net pay on a band */
.hr-doc .hr-slip{display:flex;gap:var(--space-3);align-items:stretch;margin-top:var(--space-3)}
.hr-doc .hr-slip-list{flex:1;table-layout:fixed;margin-bottom:var(--space-2)}
.hr-doc .hr-slip-list thead th{text-align:center}
.hr-doc .hr-slip-list th,.hr-doc .hr-slip-list td{white-space:normal}
.hr-doc .hr-slip-list td:last-child{width:34%}
.hr-doc .hr-slip-total td{background:var(--paper-head);font-weight:var(--font-weight-semibold)}
.hr-doc .hr-net{display:flex;align-items:center;justify-content:center;gap:var(--space-3);border:var(--border-width-strong) solid var(--paper-ink);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);font-weight:var(--font-weight-semibold)}
.hr-doc .hr-net b{font-size:var(--doc-font-size-lg);min-width:var(--size-time-box)}
.hr-doc .hr-net.hr-blank{height:var(--space-8)}
.hr-doc .hr-pairs th{width:22%;white-space:normal}
.hr-doc .hr-yn td:first-child{width:70%}
.hr-doc .hr-score td:nth-child(n+3),.hr-doc .hr-score th:nth-child(n+3){width:9%;text-align:center}
.hr-doc .hr-tight{line-height:1.7;margin-bottom:var(--space-2)}
.hr-doc .hr-contract{padding-inline-start:var(--space-5);text-align:justify}
.hr-doc .hr-contract > li{margin-bottom:var(--space-1)}
.hr-doc .hr-contract ul{padding-inline-start:var(--space-5);margin:var(--space-1) 0}
.hr-doc.hr-compact .hr-signs{margin-top:var(--space-3)}
.hr-doc.hr-compact .hr-signs i{height:var(--space-5)}
.hr-doc tr{break-inside:avoid}
.inv-doc > .pf-fit{display:flex;flex-direction:column;flex:none;box-sizing:border-box}
body.printing-invoice .pf-fit .inv-terms{margin-top:auto}
/* On paper the sheet is set closer than on screen, so less of it has to be scaled away: the bank details stand beside the terms
   instead of under them, and the lines sit a little tighter. */
.inv-doc > .pf-fit{line-height:1.3}
.pf-fit .pf-terms{grid-template-columns:1.35fr 1fr;column-gap:var(--space-4);align-items:start}
.pf-fit .pf-terms > div{grid-column:1}
.pf-fit .pf-terms > [data-k="bank"]{grid-column:2;grid-row:1 / span 9;grid-template-columns:1fr;gap:0;padding-inline-start:var(--space-3);border-inline-start:var(--border-width) solid var(--paper-line)}
.pf-fit .inv-table td{padding-block:var(--space-1)}
.pf-fit .inv-totals td{padding-block:0}
/* Payment terms, line by line (7 Oct 2026): each typed line is its own block that reads and aligns in its own direction;
   a numbered or dashed line hangs its continuation under its first word. A long clause has its own full-width box, with
   the label over the lines instead of beside them. */
.inv-doc .pf-terms .lines,.inv-doc .pf-terms-long .lines{border:0;padding:0}
.inv-doc .lines .ln{display:block;white-space:normal;text-align:start;overflow-wrap:anywhere}
.inv-doc .lines .ln.hang{padding-inline-start:1.6em;text-indent:-1.6em}
.inv-doc .pf-terms-long > div{grid-template-columns:1fr;gap:var(--space-05)}
.inv-doc .pf-terms-long > div > span{white-space:normal}
/* a value made of several parts ("FCA Amman (Incoterms 2020) · 45 - 60 days"): a part that does not fit moves to the next
   line whole instead of breaking inside its phrase and stranding its last word. Only rows with several parts: a single
   multi-line value (the bank details) stays inline so its label keeps to its first line, not its last */
.inv-doc .pf-terms b > bdi:not(:only-child){display:inline-block;max-width:100%;vertical-align:baseline}

/* ---------- open items closed (2026-09-11) ---------- */
/* one primary per view: on an empty page the head's button steps back, the empty state keeps the red */
main:has(> .blank) .pagehead .btn:not(.ghost):not(.danger){background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}
main:has(> .blank) .pagehead .btn:not(.ghost):not(.danger) svg{color:var(--icon-default)}
/* closing a month is a row action, not the page's primary */
.btn[data-closemonth]{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}
.btn[data-closemonth]:hover{background:var(--bg-hover)}
.btn[data-closemonth] svg{color:var(--icon-default)}
/* navigation is links now: same look, real hrefs */
a.nav,a.tab,a.subtab{text-decoration:none;box-sizing:border-box}
a.tab{display:flex}
a.subtab{display:inline-flex;align-items:center}
/* the forecast chart on a phone: readable labels, the drawing scrolls inside its own box */
@media (max-width:720px){
  .chart{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .chart svg{min-width:640px}
}

/* ---------- shared behaviour (rebuild step 2) ---------- */
.pager{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:var(--border-width) solid var(--border-default)}
.ledger .pager{padding-inline:0}
.skel-page .kpis.dash{margin-bottom:var(--space-4)}
.skel-page .kpi .skeleton{display:block}
.skel-rows{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}
.skel-rows .skeleton{height:var(--font-line-height-md)}
.sheet footer .confirm-inline .sub{color:var(--text-primary)}

/* ---------- breadcrumb: the module you are in, then the section (step 2) ---------- */
.crumbs{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);line-height:var(--font-line-height-sm);color:var(--text-muted);margin:0 0 var(--space-2)}
.crumbs a{color:var(--text-secondary);text-decoration:none;display:inline-block;padding-block:var(--space-1);margin-block:calc(-1 * var(--space-1))} /* 24px target, no shift */
.crumbs a:hover{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}
.crumbs [aria-current]{color:var(--text-primary);font-weight:var(--font-weight-medium)}
.crumb-sep{color:var(--icon-muted)}
[dir="rtl"] .crumb-sep{transform:scaleX(-1)}
@media (max-width:960px){.crumbs{margin-bottom:var(--space-1)}}
.tie-alert{margin-bottom:var(--space-4)}
/* the Back control in the breadcrumb row */
.crumbs .backlink{display:inline-flex;align-items:center;gap:var(--space-1);text-decoration:none;color:var(--text-secondary);font-weight:var(--font-weight-medium)}
.crumbs .backlink:hover{color:var(--text-primary)}
.crumbs.backbar{margin-bottom:var(--space-2)}
/* ---------- privacy mode: every figure blurred until the owner says otherwise ---------- */
.privacy-toggle{margin-top:var(--space-2)}
.privacy-toggle[aria-pressed="true"]{color:var(--text-primary)}
.privacy-top .privacy-label{display:none}
body.privacy main:not(.revealed-page) .num,body.privacy main:not(.revealed-page) td.r,body.privacy main:not(.revealed-page) .fig,body.privacy main:not(.revealed-page) .kpi .sub,body.privacy main:not(.revealed-page) .kpirow .sub,
body.privacy main:not(.revealed-page) .chart,body.privacy main:not(.revealed-page) .dchart,body.privacy main:not(.revealed-page) svg.spark,body.privacy main:not(.revealed-page) .sparkline,body.privacy main:not(.revealed-page) .amt,body.privacy main:not(.revealed-page) .money,body.privacy main:not(.revealed-page) .cday .cam,body.privacy main:not(.revealed-page) .mtile .low span{filter:blur(7px);user-select:none}
body.privacy main .kpi.revealed .fig,body.privacy main .kpi.revealed .sub,body.privacy main .kpi.revealed .num{filter:none;user-select:auto}
body.privacy main .kpi .eye{filter:none}
.eye-page .privacy-label{margin-inline-start:var(--space-1)}
body.privacy #sheet .num,body.privacy #sheet td.r{filter:none}
@media print{body.privacy main *{filter:none!important}}

/* ---------- Forecast: the statement with the periods across, and the balance chart ---------- */
.fcst-wrap{overflow-x:auto;margin-top:var(--space-2)}
.fcst{min-width:100%}
.fcst thead th{position:static}
.fcst th:first-child,.fcst td:first-child{position:sticky;inset-inline-start:0;z-index:2;background:var(--bg-page);text-align:start;white-space:nowrap;padding-inline-end:var(--space-4)}
.fcst th .link{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:var(--space-1)}
.fcst th .link:hover,.fcst th.on .link{color:var(--text-primary);text-decoration-color:var(--text-primary)}
.fcst th.on,.fcst td.on{background:var(--bg-muted)}
.fcst tr.grp th{position:static;padding-top:var(--space-4);padding-bottom:var(--space-1);border-bottom:0;text-align:start}
.fcst tr.subtotal td{font-weight:var(--font-weight-semibold);border-top:var(--border-width) solid var(--border-strong)}
.fcst tr.closing td{font-weight:var(--font-weight-semibold);border-top:var(--border-width-strong) solid var(--text-secondary)}
.fcst tr.lowrow td{color:var(--text-secondary)}
.fcst td small{display:block;color:var(--text-muted);font-size:var(--font-size-xs);line-height:var(--font-line-height-xs)}
.fcst td .dot{margin-inline-end:var(--space-2)}
.fc-detail{margin-top:var(--space-4);padding-top:var(--space-3);border-top:var(--border-width) solid var(--border-default)}
.fc-detail h3{display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap}
.fc-detail h3 .link{margin-inline-start:auto}
.fchart .hist{fill:none;stroke:var(--chart-series-2);stroke-width:1.5;stroke-linejoin:round}
.fchart .fut{fill:none;stroke:var(--chart-series-1);stroke-width:2;stroke-linejoin:round}
.fchart .today{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:2 3}
.fchart .axis-x{stroke:var(--text-secondary);stroke-width:1;opacity:0}
.fchart .lowdot{fill:var(--chart-series-1);stroke:var(--bg-page);stroke-width:2}
.fchart .lowdot.warning{fill:var(--status-warning-mark)}
.fchart .lowdot.critical{fill:var(--bg-brand)}
.fchart .endlabel{fill:var(--text-primary);font-weight:var(--font-weight-semibold)}
.legend .lg.hist::before,.legend .lg.fut::before,.legend .lg.min::before{background:none;height:0;border-radius:0;border-top:var(--border-width-strong) solid var(--chart-series-2)}
.legend .lg.fut::before{border-top-color:var(--chart-series-1)}
.legend .lg.min::before{border-top-style:dashed;border-top-color:var(--bg-brand)}
.legend .lg.lowkey::before{width:var(--space-2);height:var(--space-2);border-radius:50%;background:var(--chart-series-1)}

/* ---------- pro forma register: a line of facts, then a line of buttons ---------- */
.tbl.pftbl tr.pf-main > td{border-bottom:0;padding-bottom:var(--space-1)}
.tbl.pftbl tr.pf-actrow > td{padding-top:0;padding-bottom:var(--space-3)}
.tbl.pftbl tr.pf-actrow:hover,.tbl.pftbl tr.pf-main:hover{background:none}
.tbl.pftbl .who{min-width:0}

/* ---------- Reports: one compact list (owner, 27 Sep 2026) ---------- */
.repgroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-8);margin-top:var(--space-2)}
.replist{display:flex;flex-direction:column;margin-top:var(--space-1)}
.reprow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-2) 0;border-top:var(--border-width) solid var(--border-default)}
.reprow:first-child{border-top:0}
.reptext{min-width:0;display:flex;flex-direction:column;gap:var(--space-05)}
.reptext b{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}
.reptext .sub{font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:960px){.repgroups{grid-template-columns:1fr}.reptext .sub{white-space:normal}}
.reprow .replbl{display:none}

/* Stock set-up guide (sj-stock-pages.js, 29 Sep 2026) */
.guide{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.guidestep h2{display:flex;align-items:center;gap:var(--space-2)}
.guidestep p{margin:var(--space-2) 0 var(--space-3);max-width:72ch}
.guidestep .stepno{display:inline-grid;place-items:center;width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);background:var(--bg-muted);color:var(--text-secondary);font-size:var(--font-size-sm)}
.guidestep .stepno svg{width:var(--space-4);height:var(--space-4)}
.guidestep.done .stepno{background:var(--bg-success);color:var(--text-success)}
.guidestep.done h2{color:var(--text-secondary)}
.guidelist{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--border-width) solid var(--border-default)}
.guidebar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--text-primary);text-decoration:none}
.guidebar svg{width:var(--space-5);height:var(--space-5);color:var(--text-brand);flex:none}
.guidebar:hover{background:var(--bg-hover)}
/* the material form's Price section (sk-supplier-supplies.js, 29 Sep 2026) */
.pricesum{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-muted);margin-bottom:var(--space-1)}
.pricesum b{font-size:var(--font-size-md);color:var(--text-primary)}
/* the invoice filter bar: where to search, and the period (qq-invoices-ui.js, 4 Oct 2026) */
.invbar{align-items:flex-end}
.invbar .invscope,.invbar .invdate{display:grid;gap:var(--space-1)}
/* the facet bar (sp-invoice-search.js): chips in the box, a menu under it, the answer card */
.facetbox{flex:1 1 320px;flex-wrap:wrap;position:relative;padding-block:var(--space-05);row-gap:var(--space-05)}
.facetbox input{flex:1 1 120px;width:auto;min-width:120px}
.facet{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--bg-hover);border-radius:var(--radius-full);padding:0 var(--space-1) 0 var(--space-2);font-size:var(--font-size-sm);white-space:nowrap;min-height:28px}
.facet .sub{font-size:var(--font-size-xs)}
.facet b{font-weight:var(--font-weight-semibold)}
.facet button{border:0;background:none;cursor:pointer;color:var(--text-muted);font-size:var(--font-size-md);line-height:1;padding:0 var(--space-1);min-height:24px;border-radius:var(--radius-full)}
.facet button:hover{color:var(--text-primary);background:var(--bg-surface)}
.facetmenu{position:absolute;top:calc(100% + var(--space-1));inset-inline:0;z-index:60;max-height:360px;overflow-y:auto;background:var(--bg-surface);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1)}
.facetmenu .fm-h{padding:var(--space-2) var(--space-2) var(--space-05);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}
.facetmenu .fm-i{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline;min-height:var(--size-touch)}
.facetmenu .fm-i.on,.facetmenu .fm-i:hover{background:var(--bg-hover)}
.facetmenu .fm-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.facetmenu .fm-l small{margin-inline-start:var(--space-1)}
.facetmenu .fm-n{white-space:nowrap}
.invsum{margin-bottom:var(--space-4)}
.backup-card .sub.neg{color:var(--text-danger,var(--text-brand))}
.invsum-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}
.invsum .k .fig{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-top:var(--space-05)}
.invsum-lines{margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--border-width) solid var(--border-default);display:grid;gap:var(--space-1);line-height:1.5}
.invbar .invscope select{min-width:140px}
.invbar .invdate .datebox{width:160px}
.invbar .search{flex:1 1 240px;align-self:flex-end}
.invbar .invscope select,.invbar .invdate input[data-invdate]{border:var(--border-width) solid var(--border-input);border-radius:var(--radius-md);padding:0 var(--space-3);height:var(--size-control-md);background:var(--bg-input);color:var(--text-primary);width:100%;min-height:var(--size-control-md)}
.invbar .invscope select:focus,.invbar .invdate input[data-invdate]:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring-shadow)}
.invbar .invdate input[data-invdate]::placeholder{color:var(--text-muted)}

/* Profit by item (sr-profit-by-item.js): the filters, the dim empty cells, the total column */
.pbi-toolbar{align-items:flex-end}
.pbi-sel{display:flex;flex-direction:column;gap:var(--space-05);min-width:0}
.pbi-sel select{min-height:var(--space-8);padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:var(--font-size-md);max-width:28ch;text-overflow:ellipsis}
.pbi-switches{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}
.pbi-unit{margin-inline-start:auto}
.pbi-unit .seg button:disabled{color:var(--text-disabled);cursor:not-allowed}
.pbi-unit .seg button:disabled:hover{background:none}
.pbi-sort{appearance:none;border:0;background:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap}
.pbi-sort:hover{color:var(--text-primary)}
.pbi-sort.up,.pbi-sort.down{color:var(--text-primary)}
.pbi-sort.up::after,.pbi-sort.down::after{content:"";border-inline:var(--space-1) solid transparent}
.pbi-sort.up::after{border-bottom:var(--space-1) solid currentColor}
.pbi-sort.down::after{border-top:var(--space-1) solid currentColor}
.pbi-sum .pbi-share{min-width:calc(var(--space-16) * 2.5)}
.pbi-share{display:flex;align-items:center;gap:var(--space-2)}
.pbi-sum td.pbi-share{display:table-cell}
.pbi-sharebar{display:inline-block;vertical-align:middle;width:calc(var(--space-16) * 1.5);height:var(--space-2);background:var(--bg-muted);border-radius:var(--radius-sm);overflow:hidden;margin-inline-end:var(--space-2)}
.pbi-sharebar i{display:block;height:100%;background:var(--chart-series-1)}
.pbi-chart{margin-bottom:var(--space-4)}
.pbi-cols{display:grid;grid-template-columns:repeat(var(--n),minmax(calc(var(--space-12) + var(--space-2)),1fr));gap:var(--space-2);margin-top:var(--space-4)}
.pbi-plot{height:calc(var(--space-16) * 3.5);padding-top:var(--space-6)}
.pbi-plot-in{position:relative;height:100%}
.pbi-barv{position:absolute;inset-inline:26%;background:var(--chart-series-1);border-radius:var(--radius-sm) var(--radius-sm) 0 0}
.pbi-barv.neg{background:var(--text-danger);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
.pbi-val{position:absolute;inset-inline:0;text-align:center;font-size:var(--font-size-xs);color:var(--text-secondary);padding-bottom:var(--space-1);white-space:nowrap}
.pbi-zero{position:absolute;inset-inline:calc(var(--space-1) * -1);border-top:var(--border-width) solid var(--border-strong)}
.pbi-col:hover .pbi-barv{opacity:.8}
.pbi-col-x{text-align:center;font-size:var(--font-size-xs);color:var(--text-muted);padding-top:var(--space-2);white-space:nowrap}
.pbi-hbars{display:grid;gap:var(--space-1);margin-top:var(--space-3)}
.pbi-hbar{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr) minmax(0,8rem);align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm)}
.pbi-hbar:hover,.pbi-hbar.on{background:var(--bg-hover)}
.pbi-hbar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbi-hbar-track{height:var(--space-3);background:var(--bg-muted);border-radius:var(--radius-sm);overflow:hidden}
.pbi-hbar-track i{display:block;height:100%;background:var(--chart-series-1)}
.pbi-hbar-track i.neg{background:var(--text-danger)}
.pbi-hbar-v{text-align:end}
.pbi-gaps{margin-top:var(--space-3)}
.pbi-rules{margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-sm)}
.pbi-rules summary{cursor:pointer;width:fit-content}
.pbi-rules ul{margin:var(--space-2) 0 0;padding-inline-start:var(--space-5);display:grid;gap:var(--space-1);max-width:75ch}
.pbi-tbl td.pbi-dim{color:var(--text-muted)}
.pbi-tbl td.pbi-tot,.pbi-tbl th.pbi-tot{font-weight:var(--font-weight-semibold);border-inline-start:var(--border-width) solid var(--border-default)}
.pbi-tbl th{top:auto}   /* the table scrolls sideways in its own box, where a header stuck at the page offset would sit over the first row */
.pbi-tbl th:first-child,.pbi-tbl td:first-child{position:sticky;inset-inline-start:0;background:var(--bg-page);z-index:1;border-inline-end:var(--border-width) solid var(--border-default)}
.pbi-tbl tbody tr.clickable:hover td:first-child{background:var(--bg-hover)}
.pbi-tbl:not(.pbi-sum) td.num,.pbi-tbl:not(.pbi-sum) th.r{padding-inline:var(--space-2);font-size:var(--font-size-sm)}
.pbi-tbl th:first-child{z-index:6;background:var(--bg-table-header)}
.pbi-tbl tbody tr.on td{background:var(--bg-hover)}
.pbi-panel h2 code{font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);color:var(--text-muted)}
@media (max-width:720px){.pbi-unit{margin-inline-start:0;width:100%}.pbi-unit .seg{flex-wrap:wrap}.pbi-hbar{grid-template-columns:minmax(0,1fr) auto}.pbi-hbar-track{grid-column:1 / -1;grid-row:2}.pbi-sel select{max-width:100%}}
/* the customer account's open invoices (10 Oct 2026, Sales-tab audit): the Due date and its "days late" line stay on one line each instead of breaking into four at laptop width */
.tbl.aging td:nth-child(3){white-space:nowrap}
/* the recipe card on a phone (15 Oct 2026, Production-tab audit): a grid column was as wide as its table, so the Mix / Packaging / Labour / Other figures sat off the screen; the column keeps to the screen and the table scrolls inside it */
.recipecard .grid > div{min-width:0}
/* production runs (ss-run-actuals.js, 15 Oct 2026): the chosen run in the To make table, and the lots table on a Materials card */
.tbl tbody tr.on td{background:var(--bg-hover)}
.runpanel .kpirow .fig.neg{color:var(--text-danger)}
.lottbl td .link{padding:0;min-height:0}
/* any table in a box that scrolls sideways keeps its header in place (the sticky page offset would sit over the first row) */
.tw.sideways .tbl th{top:auto}

/* ---------- the pro forma's compact print shape (owner, 18 Oct 2026: "cleaner, good resolution") ----------
   Put on the sheet by fitSheetToA4 (s2-print-fit.js) the moment Print or PDF is pressed, never on screen. Before, a 3-item pro
   forma on a letterhead was scaled to 56% to fit one page; tighter rows and boxes, the origin on the item's line and less padding
   where the letterhead's gaps already keep clear let most pro formas print at full size, and scaling stays the last resort. */
.inv-doc.pf-tight{line-height:1.32}
.inv-doc.pf-tight.on-letterhead{padding:8mm 10mm 3mm}   /* the top keeps the document number clear of the letterhead's logo */
.inv-doc.pf-tight:not(.on-letterhead):not(.pre-printed){padding:9mm 11mm}
.inv-doc.pf-tight .inv-topline{margin:1mm 0 1.5mm;gap:var(--space-2)}
.inv-doc.pf-tight .inv-cust{padding:1mm 2mm;gap:0.4mm;margin-bottom:1.5mm}
.inv-doc.pf-tight .inv-table{margin-bottom:1.5mm}
.inv-doc.pf-tight .inv-table th{padding:0.8mm 1mm}
.inv-doc.pf-tight .inv-table td{padding:0.9mm 1mm;line-height:1.3}
.inv-doc.pf-tight .pf-line-sub{display:inline;margin:0 2.5mm 0 0}
.inv-doc.pf-tight .pf-line-sub::after{content:"·";margin-left:2.5mm}   /* the origin stands left of the name in a right-to-left cell: the gap and the dot go between them */
.inv-doc.pf-tight .inv-bottom{gap:var(--space-2);margin-bottom:1.5mm}
.inv-doc.pf-tight .inv-totals td{padding:0.7mm 2mm}
.inv-doc.pf-tight .inv-notes{min-height:0;padding:1mm 2mm}
.inv-doc.pf-tight .inv-notes b{margin-bottom:0.5mm}
.inv-doc.pf-tight .inv-words{padding:1mm 2mm;margin-bottom:1.5mm}
.inv-doc.pf-tight .pf-terms,.inv-doc.pf-tight .pf-terms-long{row-gap:0.4mm}
.inv-doc.pf-tight .pf-clauses{line-height:1.35!important;margin:0.5mm 0 1.5mm!important}
.inv-doc.pf-tight .pf-close{margin-top:1.5mm!important}
.inv-doc.pf-tight img.pf-sign{height:14mm!important}
.inv-doc.pf-tight img.pf-stamp{height:22mm!important}
/* the QR block and the signature share one row: the QR's sentence wraps instead of pushing the signature and the stamp off the
   page's left edge (a short pro forma, printed near full size, had its stamp cut in half) */
.inv-doc .pf-close .pf-qr{flex:0 1 auto!important;min-width:0}
.inv-doc .pf-close .pf-qr > span{max-width:66mm}
/* the label above, the signature and the stamp under it when the row is too narrow for all three side by side */
.inv-doc .pf-close .pf-marks{flex-wrap:wrap;row-gap:var(--space-1)}
.inv-doc .pf-close .pf-marks > span:first-child{white-space:nowrap}
.inv-doc .pf-close .pf-marks-box{max-width:100%;flex-wrap:nowrap}
.inv-doc .pf-close .pf-marks-box img{max-width:48%!important;object-fit:contain}

/* the trading company's letterhead on screen (sl-doc-pdf.js, 18 Oct 2026): its heading and footer cut from the letterhead page, at
   the sheet's full width; while printing, the whole page is drawn behind the sheet instead, so the slices go */
.inv-doc .doc-lh-slice{flex:none;margin-inline:calc(-1 * var(--space-6))}
.inv-doc .doc-lh-slice.top{margin-top:calc(-1 * var(--space-5));margin-bottom:var(--space-2)}
.inv-doc .doc-lh-slice.foot{margin-top:var(--space-4);margin-bottom:calc(-1 * var(--space-5))}
/* a phone's sheet has a smaller padding (see the phone block): the slices bleed by that */
@media screen and (max-width:720px){.inv-doc .doc-lh-slice{margin-inline:calc(-1 * var(--space-3))}.inv-doc .doc-lh-slice.top{margin-top:calc(-1 * var(--space-3))}.inv-doc .doc-lh-slice.foot{margin-bottom:calc(-1 * var(--space-3))}}
body.printing-invoice .doc-lh-slice{display:none!important}
@media print{.doc-lh-slice{display:none!important}}
