:root {
  --bg:#f4f7f8; --surface:#fff; --surface-2:#f8fbfb; --ink:#17343e; --muted:#657a82;
  --line:#dce6e9; --line-strong:#c7d8dc; --brand:#09b6b2; --brand-2:#078f8c;
  --nav:#092d38; --nav-hover:#10404c; --nav-line:#164653;
  --green:#168455; --amber:#b97808; --red:#c43d4b; --purple:#6c4ccf; --grey:#778195;
  --shadow:0 12px 32px rgba(9,45,56,.08); --radius:12px; --sidebar:252px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}
/* Figures line up column-wise and read unambiguously. */
.value,.kpi .value,.overview-metrics strong,td,th{font-variant-numeric:tabular-nums}
h1,h2,h3{letter-spacing:-.011em}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
a{color:var(--brand);text-decoration:none}
h1,h2,h3,h4,p{margin-top:0}
h1{font-size:29px;letter-spacing:-.6px;margin-bottom:8px}
h2{font-size:25px;letter-spacing:-.4px;margin:0}
h3{font-size:20px;margin-bottom:6px}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-weight:800;font-size:11px;color:var(--muted);margin-bottom:5px}
.muted{color:var(--muted)}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:
radial-gradient(circle at 15% 15%,rgba(9,182,178,.15),transparent 34%),
linear-gradient(135deg,#edf7f7,#f8fbfb)}
.auth-card{width:min(410px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:34px;display:grid;gap:20px}
.brand-mark{width:54px;height:54px;border-radius:15px;background:var(--brand);color:white;display:grid;place-items:center;font-weight:900;letter-spacing:-1px;box-shadow:0 8px 20px rgba(9,182,178,.22)}
.brand-mark.small{width:38px;height:38px;border-radius:10px;font-size:13px}
.billy-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
.billy-word{font-size:33px;font-weight:650;letter-spacing:-2px;color:var(--brand);font-family:Arial Rounded MT Bold,Inter,ui-sans-serif,system-ui,sans-serif}
.billy-central-word{display:inline-block;margin-top:4px;padding:3px 8px 4px;background:var(--brand);color:#fff;font-size:11px;line-height:1;letter-spacing:.08em;text-transform:lowercase;font-weight:800;border-radius:1px}
.login-lockup{margin-bottom:2px}.login-lockup .billy-word{font-size:46px}.login-lockup .billy-central-word{font-size:13px;padding:4px 11px 5px}
.sidebar-lockup .billy-word{font-size:28px}.sidebar-lockup .billy-central-word{font-size:9px;padding:3px 7px}
.brand-product{min-width:0}.brand-product strong{white-space:nowrap}
label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#3a4657}
input,select,textarea{width:100%;border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:10px 11px;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(9,182,178,.13)}
textarea{min-height:90px;resize:vertical}
.form-error{color:var(--red);font-size:13px;margin:0}
.btn{border:1px solid transparent;border-radius:9px;padding:9px 13px;font-weight:750;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-2)}
.btn-secondary{background:#fff;border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover{background:var(--surface-2)}
.btn-danger{background:#fff1f2;border-color:#fecdd3;color:#a51d2d}
.btn-ghost{background:transparent;border-color:var(--line);color:#506075}.btn-block{width:100%}
.icon-btn{border:0;background:transparent;font-size:26px;color:var(--muted);line-height:1}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--nav);color:#d9e7e9;padding:18px 14px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:2px 5px 12px}.brand strong{display:block;font-size:14px}.brand-product span{font-size:11px;color:#8fb2b7;display:block}
#nav{overflow:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:#3c6a72 transparent}.nav-section{text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:#6f969b;font-weight:800;margin:11px 10px 5px}
.nav-link{width:100%;border:0;background:transparent;color:#bfd0d5;padding:7px 10px;border-radius:8px;text-align:left;font-size:13px;display:flex;gap:10px;align-items:center;margin:1px 0}
.nav-link:hover{background:var(--nav-hover);color:#fff}.nav-link.active{background:var(--brand);color:#fff;font-weight:750}.nav-link span{width:17px;text-align:center;opacity:.9}
.sidebar-footer{margin-top:auto;border-top:1px solid var(--nav-line);padding-top:12px}.user-chip{font-size:12px;padding:8px 3px 10px;color:#a9c7ca}.user-chip strong{display:block;color:white}
.main{grid-column:2;min-width:0}
.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 28px;background:var(--brand);color:#fff;backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:15;box-shadow:0 2px 8px rgba(9,45,56,.08)}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.content{padding:24px 28px 42px;max-width:1800px;margin:auto}
.toolbar{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.toolbar .field{min-width:150px}.toolbar .search{min-width:240px;flex:1}
.field{display:grid;gap:5px}.field>span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 4px rgba(22,30,45,.025)}
.panel{padding:18px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.panel-head h3{margin:0;font-size:16px}.panel-subtitle{font-size:12px;color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.kpi-grid.small{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{padding:16px 17px;min-height:105px;display:flex;flex-direction:column;justify-content:space-between}.kpi .label{font-size:12px;font-weight:700;color:var(--muted)}.kpi .value{font-size:24px;font-weight:850;letter-spacing:-.5px}.kpi .meta{font-size:11px;color:var(--muted)}
.kpi.positive{border-top:3px solid var(--green)}.kpi.warning{border-top:3px solid var(--amber)}.kpi.negative{border-top:3px solid var(--red)}.kpi.info{border-top:3px solid var(--brand)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.8fr);gap:14px;margin-bottom:14px}.dashboard-grid.equal{grid-template-columns:1fr 1fr}
.chart-wrap{height:320px;position:relative}.chart-wrap.short{height:285px}
.table-card{overflow:hidden}
/* Wide registers scroll sideways. The bar is sized by JS so its bottom edge stays on screen,
   and it is always painted rather than left as an overlay bar that fades out of sight. */
.table-wrap{overflow:scroll;max-height:calc(100vh - 220px);scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#94a3b8 #e9edf3}
.table-wrap::-webkit-scrollbar{width:14px;height:14px}
.table-wrap::-webkit-scrollbar-track{background:#e9edf3;border-radius:8px}
.table-wrap::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:8px;border:3px solid #e9edf3}
.table-wrap::-webkit-scrollbar-thumb:hover{background:#64748b}
.table-wrap::-webkit-scrollbar-corner{background:#e9edf3}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:11.5px;background:#fff}
th,td{padding:5px 8px;border-bottom:1px solid #e8ecf2;white-space:nowrap;text-align:left;vertical-align:middle;max-width:260px;overflow:hidden;text-overflow:ellipsis}
td:hover{overflow:visible}
th{position:sticky;top:0;z-index:3;background:#f8fafc;color:#4b596c;font-size:10px;text-transform:uppercase;letter-spacing:.02em;font-weight:850}
tr:hover td{background:#fbfcfe}.clickable{cursor:pointer;color:var(--brand);font-weight:750}.row-incomplete td{background:#fff6f6}.row-exception td{background:#fff4f4}.row-matched td{background:#f2fbf6}
.badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.035em;background:#eef2f7;color:#546074}
.badge.green{background:#e9f8f1;color:#0e7250}.badge.red{background:#ffedef;color:#aa2f3b}.badge.amber{background:#fff6df;color:#8b5a05}.badge.blue{background:#edf3ff;color:#2552ad}.badge.purple{background:#f2edff;color:#6041b8}
.empty{padding:44px 18px;text-align:center;color:var(--muted)}.empty strong{display:block;color:#384456;margin-bottom:4px}
.loading{display:grid;place-items:center;padding:60px;color:var(--muted)}
.spinner{width:24px;height:24px;border:3px solid #dce2ea;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:10px}@keyframes spin{to{transform:rotate(360deg)}}
.filter-row th{top:37px;padding:5px;background:#fff}.filter-row input{padding:6px 7px;font-size:11px;border-radius:6px}
.table-meta{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}.active-filters{display:flex;gap:5px;flex-wrap:wrap}
.filter-pill{font-size:10px;padding:4px 7px;background:#edf3ff;color:#264c9a;border-radius:999px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.span-2{grid-column:span 2}.span-full{grid-column:1/-1}
.form-section{border-top:1px solid var(--line);padding-top:16px;margin-top:8px}.form-section h4{font-size:13px;margin-bottom:12px}.line-items{display:grid;gap:8px}.line-item{display:grid;grid-template-columns:1.7fr 1fr .65fr .8fr .7fr .7fr auto;gap:7px;align-items:end;padding:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.line-item label{font-size:10px}.line-item input{padding:7px}
.mi-table td,.mi-table th{max-width:none;white-space:normal;vertical-align:top}.mi-table td{padding:4px 6px}.mi-table input,.mi-table select{width:100%;min-width:64px;padding:5px 6px;font-size:11px}.mi-table .mi-name{margin-top:4px}.mi-table .mi-num{text-align:center;padding-top:9px}.mi-table .mi-net,.mi-table .mi-vat-amount,.mi-table .mi-total{white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:9px}.mi-table .mi-delete-confirm .btn{padding:4px 7px;font-size:10px}
dialog{border:0;padding:0;border-radius:16px;box-shadow:0 28px 80px rgba(20,30,48,.28);width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 34px);overflow:hidden}dialog::backdrop{background:rgba(19,28,42,.55);backdrop-filter:blur(2px)}
.modal-shell{display:flex;flex-direction:column;max-height:calc(100vh - 34px)}.modal-head{display:flex;justify-content:space-between;padding:19px 21px 14px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-body{padding:20px;overflow:auto}.modal-actions{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafbfc}
.folio-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.folio-title{font-size:24px;font-weight:850}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.summary-item{padding:11px;border-radius:10px;background:#f6f8fb;border:1px solid var(--line)}.summary-item span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.summary-item strong{font-size:16px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 14px}.tab{border:0;background:transparent;padding:9px 10px;font-weight:750;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--brand);border-color:var(--brand)}
.upload-zone{border:1.5px dashed #b9c4d4;border-radius:14px;padding:28px;text-align:center;background:#fbfcfe}.upload-zone input{max-width:420px;margin:12px auto}
.import-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:15px 0}.stat{padding:10px;background:#fff;border:1px solid var(--line);border-radius:10px}.stat span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}.stat strong{font-size:18px}
.toast-region{pointer-events:none;position:fixed;right:18px;top:18px;display:grid;gap:8px;z-index:1000}.toast{min-width:280px;max-width:430px;background:#192334;color:#fff;border-radius:10px;padding:11px 13px;box-shadow:var(--shadow);font-size:12px}.toast.error{background:#922b38}.toast.success{background:#176646}
code{background:#eef1f5;padding:2px 5px;border-radius:5px;font-size:11px}
@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid.small{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.dashboard-grid.equal{grid-template-columns:1fr}}
@media(max-width:820px){:root{--sidebar:74px}.sidebar{padding:14px 9px}.brand>div:last-child,.nav-link:not(.active){font-size:0}.nav-link{justify-content:center}.nav-link span{font-size:18px}.nav-link.active{font-size:0}.nav-link.active span{font-size:18px}.nav-section,.sidebar-footer .user-chip{display:none}.brand{justify-content:center}.content{padding:18px}.topbar{padding:0 18px}.grid-3,.grid-4{grid-template-columns:1fr 1fr}.line-item{grid-template-columns:1fr 1fr}.line-item>*{min-width:0}}
@media(max-width:560px){.kpi-grid,.kpi-grid.small,.summary-strip,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.span-2{grid-column:auto}.topbar{height:auto;min-height:78px;align-items:flex-start;padding-top:15px;padding-bottom:13px}.content{padding:14px}.actions{justify-content:flex-end}}

.topbar .eyebrow{color:rgba(255,255,255,.76)}
.topbar .btn-secondary{background:#fff;border-color:rgba(255,255,255,.9);color:var(--ink)}
.topbar .btn-primary{background:var(--nav);border-color:var(--nav);color:#fff}
.topbar .btn-primary:hover{background:#061f27}
.sidebar .btn-ghost{color:#c7dcdf;border-color:#24525b}
.sidebar .btn-ghost:hover{background:var(--nav-hover);color:#fff}
.import-mapping-grid{display:grid;gap:14px}
.mapping-section{padding:16px}
.mapping-table{width:100%;border-collapse:collapse}
.mapping-table th,.mapping-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.mapping-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2)}
.mapping-table select{min-width:240px}
.mapping-sample{max-width:460px;white-space:normal;color:var(--muted);font-size:12px}
.mapping-note{padding:10px 12px;background:#eaf9f8;border:1px solid #b8e8e6;border-radius:9px;color:#226267;font-size:12px}
.issue-skip{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--ink);white-space:nowrap}
.issue-skip input{width:auto}
.import-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge.blocking{background:#fee2e2;color:#9f1239}
.sort-header{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer;white-space:nowrap}.sort-header span{opacity:.45;font-size:10px}.sort-header:hover span{opacity:1}


.row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.btn-icon-only{width:34px;height:34px;padding:0;display:inline-grid;place-items:center;font-size:15px;line-height:1}

/* Column filter menus */
.filter-row [data-filter-menu]{display:flex;width:100%;margin-top:4px;padding:5px 7px;font-size:11px}
.filter-row [data-filter-menu][aria-pressed="true"]{background:#e0f2fe;border-color:#0284c7;color:#075985}
.column-filter-dialog::backdrop{background:rgba(15,23,42,.3)}
.column-filter-dialog input[type="checkbox"]{width:auto;flex:0 0 auto}
.column-filter-dialog [data-condition-values]{display:flex;gap:8px;margin-top:8px}
.column-filter-dialog [data-filter-error]{color:#b91c1c}

/* Content-sized columns and compact Excel-style menus. */
.table-wrap table{width:max-content;min-width:100%;table-layout:auto}
.column-heading{display:flex;align-items:center;gap:10px;justify-content:space-between}
.column-menu{border:0;background:transparent;padding:4px 7px;color:#64748b;cursor:pointer;border-radius:5px}
.column-menu:hover,.column-menu[aria-pressed="true"]{background:#dff5f4;color:#087e81}
.column-filter-dialog[open]{display:flex;flex-direction:column;max-height:calc(100dvh - 40px)}
.filter-body{overflow:auto;min-height:0;padding:20px}.filter-body h3{margin:0 0 16px}
.filter-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);background:white}
.filter-advanced{margin-top:14px}.filter-advanced summary{cursor:pointer;color:var(--muted);padding:8px 0}
.modal-head,.modal-actions{flex-shrink:0}.modal-body{min-height:0}.modal-actions{position:sticky;bottom:0}
.grid-editable{cursor:cell}.grid-editable:hover{outline:1px solid #0aa8a7;outline-offset:-2px}
.grid-cell-editor{display:flex;gap:4px;align-items:center}.grid-cell-editor input{min-width:110px;width:100%;padding:6px}
.grid-cell-editor button{padding:6px 9px}.grid-payment-row td{background:#effafa;white-space:normal}
.grid-payment-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:8px}.grid-payment-form label{min-width:140px}

.dashboard-filters,.dashboard-details{padding:16px;margin-bottom:18px}.dashboard-filters summary,.dashboard-details summary{cursor:pointer;font-weight:700}.dashboard-filters .grid-3{margin-top:16px}.currency-summaries{display:grid;gap:14px;margin:18px 0}.currency-summary{padding:20px}.currency-summary h3{margin:0 0 16px}.overview-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.overview-metrics span{display:block;color:var(--muted);margin-bottom:7px}.overview-metrics strong{font-size:24px;font-variant-numeric:tabular-nums}.dashboard-details{margin-top:18px}@media(max-width:700px){.overview-metrics{grid-template-columns:repeat(2,1fr)}}

.import-commit-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;justify-content:space-between;padding:14px;background:#fff;border:1px solid var(--line)}.user-manual{max-width:900px;line-height:1.65}.user-manual h2{margin-top:30px}.user-manual li{margin-bottom:8px}

.column-filter-dialog{width:min(440px,90vw)}.column-filter-dialog [data-values]{max-height:220px;overflow:auto;border:1px solid var(--line);padding:8px}.column-filter-dialog [data-option]{display:flex;gap:8px;padding:5px}.column-filter-dialog [data-option][hidden]{display:none}.column-filter-dialog input[type=checkbox]{width:auto}

.grid-payment-form{position:sticky;left:0;width:min(1000px,calc(100vw - 320px))}@media(max-width:700px){.grid-payment-form{width:calc(100vw - 48px)}}

/* Compact configuration panels; actions stay beside the entry. */
.configuration-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.configuration-list{display:grid;gap:10px}
.configuration-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px}
.configuration-row>div{min-width:0;overflow-wrap:anywhere}
.configuration-row .btn{flex-shrink:0}
.configuration-history{display:flex;align-items:center;gap:8px;align-self:end;padding:12px 0}
.configuration-history input{width:auto}
#setting-form details>summary,#lookup-form details>summary{cursor:pointer;padding:10px 0}

.line-item{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;padding:16px;gap:12px}.line-item label{font-size:12px}.line-item details{grid-column:1/-1}.line-item summary{cursor:pointer;padding:8px 0}

body{font-family:"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}th{font-size:12px!important;letter-spacing:0!important;text-transform:none!important}input,select,textarea,button{font-family:inherit}#register-table .table-wrap{max-height:calc(100vh - 245px);overflow:auto}.register-add-bar{position:sticky;bottom:0;padding:12px;background:var(--surface);border-top:1px solid var(--line)}#register-form pre{white-space:pre-wrap;overflow-wrap:anywhere}

.executive-charts{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.executive-charts .chart-wrap{height:230px}.currency-summary{padding:14px}.overview-metrics strong{font-size:24px}@media(max-width:1000px){.executive-charts{grid-template-columns:1fr}.executive-charts .chart-wrap{height:200px}}

.manual-page{max-width:900px;margin:30px auto;padding:24px}.manual-page h2{margin-top:28px}

.currency-summaries{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px;margin:12px 0}.currency-summary h3{margin-bottom:10px}.overview-metrics{gap:10px}.overview-metrics strong{font-size:21px}.overview-metrics span{font-size:12px}.executive-charts .chart-wrap{height:200px}.dashboard-filters{padding:10px 14px;margin-bottom:12px}@media(max-width:600px){.currency-summaries{grid-template-columns:1fr}}

/* Correction status stays visible across the complete row. */
.row-exception td,.row-exception .btn-link{color:#b42318!important}.row-matched td,.row-matched .btn-link{color:#15803d!important}

/* Horizontal scrollbar pinned to the window while a wide table's own bar is below the fold. */
.sticky-hscroll{position:fixed;bottom:0;z-index:30;overflow-x:scroll;overflow-y:hidden;height:16px;
  background:#e9edf3;border-top:1px solid var(--line-strong);box-shadow:0 -2px 6px rgba(22,30,45,.09);
  scrollbar-width:auto;scrollbar-color:#94a3b8 #e9edf3}
.sticky-hscroll>div{height:1px}
.sticky-hscroll::-webkit-scrollbar{height:16px}
.sticky-hscroll::-webkit-scrollbar-track{background:#e9edf3}
.sticky-hscroll::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:8px;border:3px solid #e9edf3}
.sticky-hscroll::-webkit-scrollbar-thumb:hover{background:#64748b}
.sticky-hscroll[hidden]{display:none}

/* One company control: type any part of the name or NUIS instead of a first-letter-only list. */
.company-picker{position:relative}
.company-results{position:absolute;z-index:40;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line-strong);
  border-radius:9px;box-shadow:0 10px 24px rgba(22,30,45,.14);max-height:280px;overflow:auto}
.company-results button{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;
  border:0;background:transparent;padding:9px 12px;text-align:left;font-size:13px;font-weight:650;color:var(--ink)}
.company-results button:hover{background:var(--surface-2)}
.company-results button span{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap}
.company-results .company-new{border-top:1px solid var(--line);color:var(--brand);font-weight:750}
.company-chosen{margin:6px 0 0;font-size:12px}
.company-results[hidden]{display:none}

/* Executive dashboard: period control, comparison chips and a denser KPI row. */
.dash-period{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.dash-period .field{min-width:104px}
.dash-period .field.search{min-width:230px}
.dash-quick{display:flex;gap:6px;padding-bottom:2px}
.chip{border:1px solid var(--line-strong);background:#fff;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:750;color:var(--ink)}
.chip:hover{background:var(--surface-2);border-color:var(--brand)}
.dash-compare{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--muted);padding-bottom:10px;white-space:nowrap}
.dash-compare input{width:auto}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px}
.kpi-row .kpi{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:13px 14px;min-height:0;gap:3px}
.kpi-row .kpi .label{font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.kpi-row .kpi .value{font-size:20px;font-weight:850;letter-spacing:-.4px}
.kpi-row .kpi .meta{font-size:11px;display:flex;align-items:center;gap:5px}
.kpi-row .kpi .meta em{font-style:normal;color:var(--muted);opacity:.8}
.trend{font-weight:850;border-radius:999px;padding:1px 6px;font-size:10px}
.trend.up{color:#0d6b47;background:#dff5ea}
.trend.down{color:#9f2b38;background:#fde8ea}
.trend.flat,.trend.new{color:#5b6b7a;background:#eef2f6}
.executive-charts.two{grid-template-columns:1fr 1fr;margin-top:12px}
.executive-charts.two .chart-wrap{height:260px}
@media(max-width:1000px){.executive-charts.two{grid-template-columns:1fr}}
.currency-summary h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.panel h3{font-size:14px}

/* Statement year sits with the folio's download buttons. */
.folio-year{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--muted);margin-right:auto}
.folio-year select{width:auto;min-width:120px}

/* Offer items: one compact table instead of a stack of cards. */
.offer-items .panel-head{align-items:center;gap:12px}
.offer-items .offer-duration{flex:1;font-size:12px}
.offer-items-table{font-size:12.5px}
.offer-items-table th{font-size:10px}
.offer-items-table td{padding:6px 8px;vertical-align:middle;max-width:none;overflow:visible}
.offer-items-table td input,.offer-items-table td select{padding:6px 8px;font-size:12.5px}
.offer-items-table .li-name{margin-top:4px}
.offer-items-table .li-line-total{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.offer-items-table tfoot td{background:var(--surface-2);font-weight:750;border-top:1px solid var(--line-strong)}
.offer-items-table tfoot td:nth-child(1){text-align:right}
.offer-items-table tfoot td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums}
.offer-items-table tfoot .offer-grand td{font-size:14px;font-weight:850;color:var(--ink)}
.offer-line td{border-bottom:1px solid var(--line)}

/* Offer items: every control sits inside its cell instead of overlapping the next one. */
.offer-items-table{table-layout:fixed;width:100%}
.offer-items-table th,.offer-items-table td{overflow:hidden}
.offer-items-table td>select,.offer-items-table td>input{width:100%;min-width:0;display:block}
.offer-items-table .li-name{margin-top:5px;width:100%}
.offer-items-table .li-product{margin-bottom:0}
.offer-items-table td .li-qty,.offer-items-table td .li-price,.offer-items-table td .li-vat{text-align:right}
.offer-items .panel-head{flex-wrap:wrap;row-gap:8px}
@media(max-width:900px){
  .offer-items-table{table-layout:auto;min-width:720px}
  .offer-items .table-card .table-wrap{overflow-x:auto}
}

/* SIG year at a glance. */
.sig-year{margin-top:14px}
.sig-year summary{cursor:pointer;margin-bottom:10px}
.sig-year-table{max-height:420px}
.sig-year-table td,.sig-year-table th{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.sig-year-table td:first-child,.sig-year-table th:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:2;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.sig-year-table th:first-child{background:#f8fafc}
.sig-year-table th.sig-current{background:var(--brand);color:#fff}
.sig-year-table .sig-empty{color:var(--muted)}
.sig-year-table .sig-client-total{font-weight:850}
.sig-year-table tfoot td{background:var(--surface-2);font-weight:800;border-top:1px solid var(--line-strong);position:sticky;bottom:0}
.sig-closed input{background:var(--surface-2)}

/* Overview revenue: two rows of three, each card explains itself */
.kpi-row.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}
.kpi-row .kpi .sub{font-size:11px;color:var(--muted)}
.kpi-info{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:6px;border-radius:50%;background:var(--line);color:var(--muted);font-size:9px;font-weight:800;text-transform:none;cursor:help;position:relative;vertical-align:middle}
.kpi-info:hover::after,.kpi-info:focus::after{content:attr(data-tip);position:absolute;left:-8px;top:20px;width:230px;padding:8px 10px;border-radius:8px;background:#0b2b33;color:#fff;font-size:11px;font-weight:500;letter-spacing:0;line-height:1.4;z-index:20;box-shadow:0 6px 18px rgba(0,0,0,.18)}
@media(max-width:800px){.kpi-row.three{grid-template-columns:1fr}}

/* All Contacts: company blocks, no horizontal scroll, ellipsis with the full value on hover */
.cd-filters{padding:12px 14px;margin-bottom:10px}
.cd-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.cd-filter-row .field{min-width:110px}.cd-filter-row .cd-search{flex:1 1 260px}
.cd-multi{position:relative}
.cd-multi>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:120px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface,#fff);font-size:13px}
.cd-multi>summary::-webkit-details-marker{display:none}
.cd-multi-count{font-size:11px;background:var(--line);border-radius:999px;padding:1px 7px}
.cd-multi-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:220px;max-height:260px;overflow:auto;padding:8px;background:var(--surface,#fff);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 10px 26px rgba(0,0,0,.14);display:grid;gap:4px}
.cd-multi-list label{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 4px;border-radius:6px;cursor:pointer}
.cd-multi-list label:hover{background:var(--surface-2)}
.cd-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 14px;margin-bottom:14px;position:sticky;top:0;z-index:5}
.cd-all{display:flex;gap:8px;align-items:center;font-weight:700;cursor:pointer}
.cd-counts{color:var(--muted);font-size:13px}.cd-selected{font-weight:750;font-size:13px}
.cd-bar-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cd-tags{font-size:12px;color:var(--muted);display:flex;gap:5px;align-items:center}
.cd-block{border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff);margin-bottom:12px;overflow:hidden}
.cd-head{display:flex;gap:12px;align-items:center;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.cd-title{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cd-company-name{font-weight:800;font-size:15px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.linklike{background:none;border:0;padding:0;color:var(--brand-dark,var(--brand));cursor:pointer;text-align:left}.linklike:hover{text-decoration:underline}
.cd-nuis{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.cd-count{font-size:12px;color:var(--muted)}
.cd-head-actions{display:flex;gap:6px;flex-shrink:0}.cd-head-actions .btn{padding:4px 10px;font-size:12px}
.cd-table{width:100%;table-layout:fixed;border-collapse:collapse}
.cd-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:7px 10px;font-weight:800}
.cd-table td{padding:7px 10px;border-top:1px solid var(--line);font-size:13px;vertical-align:middle}
.cd-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-table col.c-pick{width:38px}.cd-table col.c-name{width:24%}.cd-table col.c-title{width:20%}.cd-table col.c-primary{width:96px}.cd-table col.c-email{width:auto}.cd-table col.c-phone{width:17%}.cd-table col.c-actions{width:196px}
.cd-actions{white-space:nowrap;text-align:right}.cd-actions .btn{padding:2px 8px;font-size:11px;margin-left:4px}
.cd-inactive td{opacity:.6}
.cd-bar input[type=checkbox],.cd-head input[type=checkbox],.cd-table input[type=checkbox]{width:auto;flex:0 0 auto;margin:0;padding:0;box-shadow:none}
.cd-head .cd-company{width:16px;height:16px}
.cd-bar label{margin:0}.cd-all span{white-space:nowrap}.cd-tags{white-space:nowrap}
.cd-bar .btn,.cd-head-actions .btn{white-space:nowrap}
.cd-more{display:flex;gap:14px;align-items:center;justify-content:center;padding:10px 0 22px}
@media(max-width:820px){.cd-head{flex-wrap:wrap}.cd-table col.c-title,.cd-table th:nth-child(3),.cd-table td:nth-child(3){display:none}}

label.check{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:650;align-self:end;padding:9px 0}label.check input{width:auto}

a.nav-link{text-decoration:none;box-sizing:border-box}a.nav-link:focus-visible{outline:2px solid #fff;outline-offset:-2px}
/* Sales grid: pending edits, keyboard focus, and the bar that saves them together */
.grid-hint{margin:0 0 8px;font-size:12px}
td.grid-editable{cursor:cell}td.grid-editable:focus{outline:2px solid var(--brand);outline-offset:-2px;background:var(--surface-2)}
td.grid-dirty{background:#fff6dd;box-shadow:inset 3px 0 0 #f2b550}td.grid-error{background:#fde8ea;box-shadow:inset 3px 0 0 #c2404a}
td.grid-editing{padding:2px}td.grid-editing .grid-cell-editor{display:block}td.grid-editing .grid-cell-editor input,td.grid-editing .grid-cell-editor select{width:100%;min-width:90px;box-sizing:border-box}
.grid-bar{position:sticky;bottom:0;z-index:40;display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:10px 16px;margin-top:10px;background:#0b2b33;color:#fff;border-radius:10px;box-shadow:0 -6px 18px rgba(0,0,0,.16)}
.grid-bar[hidden]{display:none}.grid-bar span{margin-right:auto;font-weight:650;font-size:13px}

/* SIG Bulk Paste: a spreadsheet-like grid */
.sb-toolbar{padding:12px 14px;margin-bottom:10px}
.sb-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.sb-mode{border:1px solid var(--line);border-radius:8px;padding:4px 10px;display:flex;gap:14px}.sb-mode legend{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:0 4px}
.sb-note{margin:10px 0 4px}.sb-help{font-size:12px;margin:4px 0 8px}
.sb-legend{display:flex;gap:6px;flex-wrap:wrap}
.sb-chip{font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.04em}
.sb-scroll{overflow:auto;max-height:70vh;padding:0}
.sb-table{border-collapse:separate;border-spacing:0;font-size:12px;font-variant-numeric:tabular-nums}
.sb-table th,.sb-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}
.sb-table thead th{position:sticky;background:var(--surface-2);z-index:3;font-weight:800;text-align:center;padding:6px 8px}
.sb-table thead tr:nth-child(1) th{top:0}.sb-table thead tr:nth-child(2) th{top:36px}.sb-table thead tr:nth-child(3) th{top:118px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.sb-corner,.sb-month{position:sticky;left:0;z-index:4;background:var(--surface-2);min-width:56px;padding:6px 10px!important;text-align:left}
.sb-company>div{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.sb-nuis{font-size:10px;font-weight:600;color:var(--muted)}
.sb-remove{position:absolute;right:-4px;top:-4px;border:0;background:transparent;font-size:16px;cursor:pointer;color:var(--muted)}.sb-remove:hover{color:#c2404a}
.sb-cfg{display:grid;grid-template-columns:repeat(3,minmax(64px,1fr));gap:4px 6px;min-width:250px}.sb-cfg label{font-size:10px;font-weight:700;color:var(--muted);text-align:left;display:grid;gap:2px}
.sb-cfg input,.sb-cfg select{width:100%;box-sizing:border-box;padding:3px 5px;font-size:12px}
.sb-cfg-status{font-size:10px;min-height:12px;margin-top:3px;font-weight:700}.sb-cfg-status.sb-new{color:#0d6b47}.sb-cfg-status.sb-updated{color:#9a6a0a}.sb-cfg-status.sb-error{color:#9f2b38}
.sb-vol,.sb-calc{min-width:78px;height:28px;padding:0 8px!important;text-align:right;white-space:nowrap;cursor:cell}
.sb-calc{background:var(--surface-2);color:#39515a}
.sb-vol:focus,.sb-calc:focus{outline:none}
.sb-active{box-shadow:inset 0 0 0 2px var(--brand)}
.sb-sel{background:#e2f3f2!important}
.sb-off{background:repeating-linear-gradient(135deg,#f3f5f6,#f3f5f6 4px,#e9edef 4px,#e9edef 8px)!important;color:#8a9aa1}
.sb-editing{padding:0!important}.sb-input{width:100%;height:100%;box-sizing:border-box;border:0;padding:0 8px;text-align:right;font:inherit;background:#fff}
.sb-original,.sb-chip.sb-original{background:#eef2f6;color:#4a5b66}
.sb-new,.sb-chip.sb-new{background:#dff5ea;color:#0d6b47}
.sb-updated,.sb-chip.sb-updated{background:#fff1cf;color:#8a5a00}
.sb-unchanged,.sb-chip.sb-unchanged{background:#f4f7f8;color:#4a5b66}
.sb-warning,.sb-chip.sb-warning{background:#ffe6c7!important;color:#8a4b00}
.sb-error,.sb-chip.sb-error{background:#fde8ea!important;color:#9f2b38}
.sb-match{color:#0d6b47}
.sb-total th,.sb-total td{position:sticky;bottom:0;background:var(--surface-2);font-weight:800;text-align:right;padding:6px 8px;z-index:3;border-top:2px solid var(--line-strong)}
.sb-total th{left:0;text-align:left;z-index:4}
.sb-summary{padding:12px 14px;margin-bottom:10px}.sb-summary.sb-bad{border-left:4px solid #c2404a}
.sb-stats{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0}.sb-stats span{display:block;font-size:11px;color:var(--muted)}.sb-stats strong{font-size:18px}
.sb-messages{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px}.sb-msg{padding:5px 9px;border-radius:6px;font-size:12px}
.sb-map{width:100%;border-collapse:collapse;font-size:12px}.sb-map th,.sb-map td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.sb-map select{max-width:220px}
.sb-legacy-year{display:flex;gap:10px;align-items:end;margin-bottom:8px}
#sb-panel:empty{display:none}
.dup-warn{color:#b45309}
.bulk-bar{display:flex;gap:14px;align-items:center;margin:-6px 0 12px;font-size:13px}
.bulk-bar .check{display:flex;gap:6px;align-items:center;margin:0}.bulk-bar input[type="checkbox"],.bulk-pick{width:auto}
.dup-group{margin:12px 0;padding:14px}.dup-group h4{margin:0 0 8px}
.dup-table{width:100%;border-collapse:collapse;font-size:13px}.dup-table th,.dup-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.dup-table input[type="radio"]{width:auto}.dup-group .row-actions{margin-top:10px;display:flex;gap:8px}
.dup-scroll{overflow-x:auto}
.editable-cell{cursor:pointer}.editable-cell:hover{background:var(--surface-2)}
.inline-select{width:100%;min-width:120px}

/* Partners: solution / endpoint toggle buttons and the stacked table cells */
.chip-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{border:1px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:999px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;line-height:1.2}
.chip:hover{background:var(--surface-2)}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand-2);color:#fff}
.chip small{opacity:.75;font-weight:600;margin-left:3px}
.inline-add{display:flex;gap:8px;margin-top:10px;align-items:center}.inline-add input{flex:1}
.cell-stack{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-stack .muted{font-size:12px}
.check-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 12px;max-height:220px;overflow:auto;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px}
.endpoint-list h4{margin:16px 0 6px;font-size:13px}
.plain-list{list-style:none;margin:0;padding:0}.plain-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.badge.grey{background:#eef2f7;color:#546074}
