@font-face {
  font-family:Inter;
  src:url('vendor/inter-latin-variable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap
}

:root {
  --ink:#203246;
  --muted:#66778a;
  --green:#087f75;
  --mint:#e8f5f2;
  --paper:#f3f5f8;
  --line:#dfe5ed;
  --white:#fff;
  --amber:#96621c;
  --red:#b13c40;
  --navy:#142c42;
  --sidebar-width:224px;
  --shadow:0 2px 4px #142c4204;
  --radius:8px
}

* {
  box-sizing:border-box
}

html {
  scroll-padding-top:90px
}

body {
  margin:0;
  font:13px/1.5 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased
}

a {
  color:var(--green);
  text-decoration:none
}

a:hover {
  text-decoration:underline
}

button,input,select,textarea {
  font:inherit
}

button,a,input,select,textarea {
  touch-action:manipulation
}

button {
  cursor:pointer
}

button:disabled {
  opacity:.5;
  cursor:not-allowed
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #35adab;
  outline-offset:3px
}

h1,h2,h3,p {
  margin-top:0
}

h1 {
  font-size:27px;
  letter-spacing:-.8px;
  line-height:1.25;
  font-weight:650;
  margin-bottom:6px
}

h2 {
  font-size:14px;
  font-weight:650;
  line-height:1.4;
  margin:0
}

h3 {
  font-size:14px;
  font-weight:650
}

p {
  margin-bottom:14px
}

small,.small-text {
  font-size:11px;
  color:var(--muted)
}

.muted {
  color:var(--muted)
}

.eyebrow {
  font-size:11px;
  font-weight:500;
  color:var(--muted);
  margin-bottom:7px;
  letter-spacing:.15px
}

.icon {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
  vertical-align:middle
}

.icon use {
  pointer-events:none
}

.sr-only {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0!important
}

.skip {
  position:fixed;
  top:-80px;
  left:12px;
  z-index:99;
  background:white;
  padding:12px 20px;
  border:1px solid var(--green);
  border-radius:5px
}

.skip:focus {
  top:12px
}

/* Navigation and company context */
.sidebar {
  width:var(--sidebar-width);
  background:var(--navy);
  position:fixed;
  inset:0 auto 0 0;
  padding:24px 14px 15px;
  display:flex;
  flex-direction:column;
  z-index:40;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#385165 transparent;
  color:#b4c6d6
}

.sidebar-brand {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 10px 25px
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:30px;
  letter-spacing:-1.1px;
  font-weight:650;
  line-height:1;
  color:var(--ink)
}

.brand img {
  display:block;
  flex-shrink:0
}

.brand:hover {
  text-decoration:none
}

.sidebar .brand {
  color:white
}

.nav-caption {
  font-size:10px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#8fa8be;
  display:block;
  margin:0 13px 10px
}

.sidebar nav {
  display:grid;
  gap:4px
}

.sidebar nav a,.sidebar-bottom>a {
  display:flex;
  gap:12px;
  align-items:center;
  padding:10px 13px;
  min-height:41px;
  border-radius:6px;
  color:#bbcedf;
  font-size:12px;
  font-weight:500;
  transition:background .12s,color .12s
}

.sidebar nav a .icon,.sidebar-bottom>a .icon {
  color:#8fa8be;
  width:19px;
  height:19px
}

.sidebar nav a:hover,.sidebar-bottom>a:hover {
  background:#203e56;
  color:white;
  text-decoration:none
}

.sidebar nav a[aria-current],.sidebar-bottom>a[aria-current] {
  background:#275066;
  color:white;
  font-weight:600;
  box-shadow:inset 3px 0 #4dd7bb
}

.sidebar a[aria-current] .icon {
  color:#6be0c8
}

.nav-count {
  margin-left:auto;
  font-size:10px;
  font-weight:650;
  background:#e7b96a;
  color:#17364a;
  border-radius:4px;
  padding:0 6px;
  line-height:20px
}

.sidebar-bottom {
  margin-top:auto;
  padding-top:28px
}

.sidebar-bottom .nav-caption {
  margin-bottom:5px
}

.user {
  display:flex;
  gap:10px;
  align-items:center;
  border-top:1px solid #31485c;
  padding:18px 5px 0;
  margin-top:20px;
  min-width:0
}

.user-label {
  min-width:0;
  flex:1
}

.user strong {
  display:block;
  font-size:11px;
  color:#f3f7fb;
  font-weight:550;
  overflow:hidden;
  text-overflow:ellipsis
}

.user small {
  display:block;
  font-size:10px;
  color:#8fa8be
}

.user form {
  margin-left:auto
}

.avatar {
  width:34px;
  height:34px;
  border-radius:50%;
  background:#294a60;
  display:grid;
  place-items:center;
  color:#bce9e3;
  flex-shrink:0;
  font-size:12px;
  font-weight:600
}

.iconbutton {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:none;
  color:var(--muted);
  padding:7px;
  border-radius:5px;
  min-width:34px;
  min-height:34px
}

.iconbutton:hover {
  background:#e9eef4;
  color:var(--ink)
}

.sidebar .iconbutton {
  color:#a8bfd2
}

.sidebar .iconbutton:hover {
  background:#2c475e;
  color:#fff
}

.workspace {
  margin-left:var(--sidebar-width);
  min-width:0
}

.topbar {
  min-height:74px;
  padding:12px 32px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:white;
  border-bottom:1px solid var(--line);
  gap:18px;
  position:sticky;
  top:0;
  z-index:20
}

.company-switch,.top-right {
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0
}

.company-icon {
  display:grid;
  place-items:center;
  color:#507487;
  background:#eef3f7;
  border:1px solid #e3e9ef;
  border-radius:7px;
  width:37px;
  height:37px;
  flex-shrink:0
}

.company-switch form {
  min-width:0
}

.company-switch label,.year-switch label {
  display:block;
  font-size:9px;
  color:var(--muted);
  line-height:1.4;
  margin-bottom:1px
}

.topbar select {
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:12px;
  font-weight:600;
  max-width:255px;
  min-height:24px;
  padding:0 21px 0 0;
  cursor:pointer
}

.topbar select:focus {
  box-shadow:none
}

.year-switch {
  border-left:1px solid var(--line);
  padding-left:18px
}

.topbar .year-switch select {
  font-size:12px
}

.global-search {
  height:35px;
  width:228px;
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:6px;
  padding:0 10px;
  gap:8px;
  background:#fafbfd;
  color:#8b9bad
}

.global-search .icon {
  width:16px;
  height:16px
}

.global-search input {
  background:transparent!important;
  border:0!important;
  padding:0!important;
  min-height:28px!important;
  width:100%;
  font-size:11px;
  box-shadow:none!important;
  min-width:0
}

.global-search input:focus-visible {
  outline:none
}

.global-search:focus-within {
  outline:2px solid #35adab;
  outline-offset:2px
}

.global-search kbd {
  font-family:inherit;
  font-size:10px;
  border:1px solid var(--line);
  padding:0 4px;
  border-radius:3px;
  line-height:17px;
  color:#91a0af;
  background:white
}

.badge {
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid #dbe5ed;
  color:#516c7f;
  background:#f0f5f9;
  border-radius:4px;
  font-size:10px;
  padding:3px 7px;
  font-weight:550;
  white-space:nowrap;
  line-height:1.4
}

.badge.test {
  background:#fff7e6;
  color:#875f22;
  border-color:#f1dfb9
}

.badge.live {
  background:#eef8f4;
  color:#28735e;
  border-color:#cae8db
}

.nav-toggle,.nav-close,.nav-overlay {
  display:none
}

.main {
  max-width:1640px;
  padding:28px 32px 22px;
  margin:auto;
  min-height:calc(100vh - 132px);
  min-width:0
}

.footer {
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:10px;
  color:#64778b;
  border-top:1px solid var(--line);
  margin:0 32px;
  padding:18px 0
}

/* Common controls */
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:24px
}

.page-heading>div:first-child {
  min-width:0
}

.page-heading p:last-child {
  margin-bottom:0
}

.page-heading>.muted,.page-heading .muted {
  font-size:12px
}

.page-actions,.actions {
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  align-items:center
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:550
}

.text-link .icon {
  width:15px;
  height:15px
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--green);
  border-radius:5px;
  padding:9px 14px;
  background:var(--green);
  color:white;
  font-size:12px;
  font-weight:550;
  min-height:38px;
  line-height:1.35;
  white-space:normal
}

.button>.icon {
  width:17px;
  height:17px
}

.button:hover {
  background:#086d65;
  border-color:#086d65;
  text-decoration:none
}

.button.secondary {
  background:white;
  color:#3a5064;
  border-color:#d7dfe8;
  box-shadow:0 1px 2px #142c4204
}

.button.secondary:hover {
  background:#f4f7fa;
  border-color:#bfcdd9
}

.button.danger {
  background:var(--red);
  border-color:var(--red)
}

.button.small {
  min-height:31px;
  padding:6px 10px;
  font-size:11px
}

.full {
  width:100%
}

.notice {
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#edf7f3;
  border:1px solid #d0e6dc;
  border-radius:6px;
  padding:13px 16px;
  margin-bottom:20px;
  font-size:12px;
  color:#286d58
}

.notice>.icon {
  width:18px;
  height:18px;
  margin-top:1px
}

.notice p:last-child {
  margin:3px 0 0
}

.notice.error,.errorlist {
  background:#fff2f1;
  border-color:#f0d0cc;
  color:#a33131
}

.notice.warning {
  background:#fffaef;
  border-color:#eedfbd;
  color:#846027
}

.errorlist {
  list-style:none;
  padding:10px 12px;
  border-radius:5px;
  font-size:12px;
  margin:0
}

.notice strong {
  font-size:12px;
  font-weight:600
}

.configuration-note {
  align-items:center;
  margin-top:20px
}

.configuration-note>a {
  margin-left:auto;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  font-weight:550
}

.configuration-note>a .icon {
  width:16px;
  height:16px
}

.status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:10px;
  border-radius:4px;
  padding:3px 7px;
  background:#eaf6f1;
  color:#227056;
  font-weight:550;
  line-height:1.5;
  white-space:nowrap
}

.status.pending {
  background:#fff5df;
  color:#8c611b
}

.status.neutral {
  background:#eff3f7;
  color:#65778b
}

.status.danger {
  background:#fff0ef;
  color:#a63836
}

.status.blue {
  background:#edf4fc;
  color:#4273a5
}

.status-dot {
  width:6px;
  height:6px;
  background:#3f9d7b;
  border-radius:50%;
  flex-shrink:0
}

.status-dot.amber {
  background:#bc8b37
}

.count {
  font-size:10px;
  background:#eef2f7;
  border:1px solid #e3e9ef;
  border-radius:4px;
  padding:1px 6px;
  color:#64778c;
  margin-left:5px;
  vertical-align:middle;
  font-weight:550
}

.panel {
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:20px;
  min-width:0;
  box-shadow:var(--shadow)
}

.panel-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:17px;
  min-width:0
}

.panel-heading>a {
  font-size:11px
}

.panel-heading>.icon {
  color:#8092a5
}

.panel p,.panel small,.panel dd,.panel code {
  overflow-wrap:anywhere
}

.empty-state {
  text-align:center;
  padding:34px 16px
}

.empty-state p {
  font-size:12px;
  color:var(--muted);
  max-width:340px;
  margin:0 auto 17px
}

.empty-state h3 {
  margin-bottom:6px
}

.empty-state a {
  font-size:12px
}

.empty-symbol {
  display:grid;
  place-items:center;
  margin:0 auto 15px;
  border:1px solid #d9e9e4;
  background:#f0f8f5;
  width:42px;
  height:42px;
  border-radius:50%;
  color:#338b73
}

.empty-symbol .icon {
  width:21px;
  height:21px
}

.empty-inline {
  display:flex;
  gap:13px;
  padding:16px 0 7px;
  align-items:center
}

.empty-inline .empty-symbol {
  width:38px;
  height:38px;
  margin:0;
  flex-shrink:0
}

.empty-inline h3 {
  font-size:12px;
  margin:0 0 4px
}

.empty-inline p {
  font-size:11px;
  margin:0;
  color:var(--muted)
}

/* Overview */
.quick-actions {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:22px
}

.action-card {
  padding:17px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:white;
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--ink);
  min-height:83px;
  box-shadow:var(--shadow);
  transition:border-color .12s,box-shadow .12s
}

.action-card:hover {
  text-decoration:none;
  border-color:#a4c9c4;
  box-shadow:0 2px 6px #142c4209
}

.action-card h2 {
  font-size:12px;
  margin-bottom:3px
}

.action-card p {
  font-size:10px;
  margin:0;
  color:var(--muted)
}

.action-icon {
  display:grid;
  place-items:center;
  background:#eef4f6;
  border-radius:7px;
  width:37px;
  height:37px;
  flex-shrink:0;
  color:#4e7d89
}

.action-icon .icon {
  width:21px;
  height:21px
}

.action-arrow {
  margin-left:auto;
  width:16px;
  color:#94a5b5
}

.primary-card {
  background:#087f75;
  border-color:#087f75;
  color:white
}

.primary-card:hover {
  background:#08756d;
  border-color:#08756d
}

.primary-card .action-icon {
  background:#ffffff18;
  color:#d5f7ef
}

.primary-card p {
  color:#c6e7e1
}

.primary-card .action-arrow {
  color:#b4e2d9
}

.metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px 0;
  margin-bottom:22px;
  box-shadow:var(--shadow)
}

.metrics>a {
  padding:0 22px;
  color:var(--ink);
  border-right:1px solid var(--line);
  display:grid;
  gap:8px;
  min-width:0
}

.metrics>a:hover {
  text-decoration:none
}

.metrics>a:hover strong {
  color:var(--green)
}

.metrics>a:last-child {
  border:0
}

.metrics strong {
  font-size:26px;
  font-weight:600;
  letter-spacing:-.75px;
  line-height:1.3;
  font-variant-numeric:tabular-nums
}

.metrics>a>span:last-child {
  font-size:10px;
  color:var(--muted);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px
}

.metrics>a>span:last-child .icon {
  width:13px;
  height:13px
}

.metric-label {
  font-size:11px;
  font-weight:550;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:4px
}

.metric-label small {
  font-size:9px;
  font-weight:400;
  color:#667b8f
}

.dashboard-grid {
  display:grid;
  grid-template-columns:minmax(0,1.85fr) minmax(280px,1fr);
  gap:22px
}

.dashboard-main,.dashboard-aside {
  min-width:0
}

.task-row {
  display:flex;
  gap:12px;
  color:var(--ink);
  border-top:1px solid #eaf0f4;
  padding:14px 0;
  align-items:center
}

.task-row:hover {
  text-decoration:none
}

.task-row:hover strong {
  color:var(--green)
}

.task-row>div {
  min-width:0
}

.task-row strong {
  font-size:12px;
  font-weight:550
}

.task-row p {
  font-size:11px;
  color:var(--muted);
  margin:3px 0
}

.task-row small {
  font-size:10px
}

.task-symbol {
  border-radius:6px;
  background:#fff6e5;
  min-width:34px;
  height:36px;
  display:grid;
  place-items:center;
  color:#a6813d
}

.task-symbol .icon {
  width:18px;
  height:18px
}

.task-arrow {
  margin-left:auto;
  color:#8d9faf;
  width:17px
}

.bank-account-name {
  font-size:11px;
  color:#5d7489;
  margin:0 0 6px
}

.bank-empty {
  font-size:16px;
  font-weight:550;
  margin:10px 0
}

.bank-panel>.muted {
  font-size:11px
}

.big-money {
  font-size:30px;
  font-weight:600;
  letter-spacing:-.8px;
  margin:4px 0
}

.source-note {
  display:flex;
  gap:8px;
  font-size:10px;
  color:var(--muted);
  align-items:flex-start;
  border-top:1px solid var(--line);
  padding:13px 0;
  margin-top:16px
}

.source-note .status-dot {
  margin-top:5px
}

.bank-panel .button {
  font-size:11px;
  justify-content:space-between
}

.liquidity-panel {
  background:#fafcfd
}

.liquidity-panel .panel-heading {
  padding-bottom:8px
}

.liquidity-amount {
  font-size:27px;
  letter-spacing:-.6px;
  font-weight:600;
  margin:0 0 4px;
  color:var(--green)
}

.balance-breakdown {
  margin:17px 0 0;
  font-size:11px
}

.balance-breakdown>div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:7px 0;
  border-top:1px solid #e8edf2
}

.balance-breakdown dt {
  color:#64788c
}

.balance-breakdown dd {
  margin:0;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  font-weight:500
}

.liquidity-panel details {
  margin-top:12px;
  padding-bottom:0
}

.liquidity-panel details p {
  margin:10px 0
}

.open-items-grid {
  display:grid;
  grid-template-columns:1fr 1fr
}

.open-items-grid>a {
  display:flex;
  gap:11px;
  align-items:center;
  color:var(--ink);
  padding:8px 15px 15px 0
}

.open-items-grid>a+a {
  border-left:1px solid var(--line);
  padding-left:20px
}

.open-items-grid>a:hover {
  text-decoration:none
}

.open-item-icon {
  display:grid;
  place-items:center;
  background:#eff5f8;
  color:#507c92;
  width:33px;
  height:33px;
  border-radius:6px;
  flex-shrink:0
}

.open-item-icon .icon {
  width:18px;
  height:18px
}

.open-items-grid strong {
  font-size:21px;
  letter-spacing:-.5px;
  font-weight:600;
  display:block;
  margin:3px 0 1px;
  white-space:nowrap
}

.open-items-grid a>div>span {
  font-size:10px;
  color:#62788b
}

.open-items-grid a>.icon {
  width:15px;
  color:#8198aa;
  margin-left:auto
}

.organizer-row {
  display:flex;
  gap:10px;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:15px;
  margin-top:8px;
  color:#5a7186;
  font-size:11px
}

.organizer-row strong {
  margin-left:auto;
  font-size:12px;
  color:var(--ink);
  font-weight:550;
  white-space:nowrap
}

.organizer-row .icon {
  width:15px;
  color:#8198aa
}

/* Forms and source documents */
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]),select,textarea {
  border:1px solid #cfdae5;
  border-radius:5px;
  background:white;
  padding:9px 11px;
  color:var(--ink);
  min-height:38px;
  max-width:100%
}

input::placeholder,textarea::placeholder {
  color:#687d91;
  opacity:1
}

input[type=checkbox],input[type=radio] {
  accent-color:var(--green);
  width:15px;
  height:15px;
  vertical-align:middle;
  cursor:pointer
}

input[readonly],input:disabled,select:disabled {
  background:#f4f6f9!important;
  color:#708194
}

textarea {
  min-height:96px;
  resize:vertical
}

label {
  font-size:12px
}

fieldset {
  border:1px solid var(--line);
  border-radius:6px;
  padding:18px;
  min-width:0
}

legend {
  font-size:12px;
  font-weight:600;
  padding:0 5px
}

.stack-form {
  display:grid;
  gap:18px
}

.stack-form>div {
  display:grid;
  gap:6px;
  min-width:0
}

.stack-form label {
  font-size:11px;
  font-weight:550
}

.stack-form input:not([type=checkbox]):not([type=hidden]):not([type=radio]),.stack-form select,.stack-form textarea {
  width:100%
}

.stack-form input[type=file] {
  background:#f7f9fc;
  padding:16px!important;
  border-style:dashed!important
}

.stack-form .helptext {
  font-size:10px;
  color:var(--muted);
  line-height:1.5
}

.stack-form .button {
  justify-self:start;
  min-width:140px
}

.form-container {
  max-width:760px
}

.form-grid,.detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}

.form-grid>div {
  min-width:0
}

.form-grid label {
  display:block;
  margin-bottom:6px
}

.split {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:22px
}

.split>div {
  min-width:0
}

.document-preview {
  width:100%;
  max-height:700px;
  object-fit:contain;
  border:1px solid #e5ebf0;
  border-radius:4px;
  background:#eef2f6
}

.document-preview:is(iframe) {
  height:650px
}

.document-meta {
  padding:12px 0 0;
  display:grid;
  gap:7px
}

.document-meta small {
  overflow-wrap:anywhere;
  font-size:9px
}

.evidence-panel {
  align-self:start;
  position:sticky;
  top:96px
}

.document-editor {
  min-width:0
}

.document-editor .form-grid {
  gap:15px
}

.component-row {
  border:1px solid var(--line);
  border-radius:6px;
  padding:16px;
  margin:16px 0;
  display:grid;
  gap:12px;
  background:#fafbfd
}

.component-row label {
  display:block;
  margin-bottom:5px
}

.component-row h3 {
  font-size:12px;
  margin-bottom:0
}

.detail-meta {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:0 0 20px
}

.detail-meta dt {
  font-size:10px;
  color:var(--muted);
  margin-bottom:4px
}

.detail-meta dd {
  margin:0;
  font-size:12px;
  line-height:1.45
}

.summary-amount {
  font-size:29px;
  font-weight:600;
  letter-spacing:-.7px;
  white-space:nowrap
}

.receipt-upload {
  max-width:1000px;
  margin:auto
}

.upload-dropzone {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:225px;
  padding:28px;
  border:2px dashed #b6cbd7;
  border-radius:8px;
  background:#f7fafc;
  cursor:pointer;
  text-align:center;
  transition:background .15s,border-color .15s
}

.upload-dropzone:hover,.upload-dropzone.is-dragover {
  background:#ecf6f3;
  border-color:var(--green)
}

.upload-dropzone>.icon {
  width:35px;
  height:35px;
  color:var(--green);
  stroke-width:1.5
}

.upload-dropzone strong {
  font-size:14px
}

.upload-dropzone input[type=file] {
  font-size:11px;
  max-width:310px;
  background:white!important;
  border:1px solid var(--line)!important;
  padding:8px!important
}

.upload-dropzone input[type=file]::file-selector-button {
  border:0;
  border-radius:4px;
  padding:7px 10px;
  background:#e5eeef;
  color:#24625f;
  font-weight:550;
  margin-right:10px;
  cursor:pointer
}

.upload-dropzone p {
  margin:0;
  color:var(--muted);
  font-size:11px
}

.upload-dropzone.is-dragover {
  outline:2px solid #6abeb0;
  outline-offset:3px
}

.upload-dropzone [data-upload-name] {
  max-width:100%;
  overflow-wrap:anywhere;
  font-weight:550
}

.processing-steps {
  display:grid;
  gap:12px;
  list-style:none;
  margin:20px 0;
  padding:0
}

.processing-steps li {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:12px;
  color:var(--muted)
}

.processing-steps li .icon {
  color:var(--green);
  width:18px;
  height:18px
}

.processing-steps li.active {
  font-weight:600;
  color:var(--ink)
}

.processing-steps li.complete {
  color:var(--green)
}

.field-status {
  display:inline-flex;
  gap:5px;
  align-items:center;
  font-size:10px;
  font-weight:500;
  color:#32765f;
  padding:3px 7px;
  background:#eef7f2;
  border-radius:4px
}

.field-status.warning,.field-status.missing {
  background:#fff5e1;
  color:#986617
}

.extraction-summary {
  border:1px solid #cfe5df;
  background:#f1f9f6;
  border-radius:6px;
  padding:14px 16px;
  margin-bottom:20px;
  font-size:12px
}

.extraction-summary p:last-child {
  margin:0
}

.extracted-row {
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  font-size:12px
}

.extracted-row:last-child {
  border:0
}

.extracted-row span:first-child {
  color:var(--muted)
}

.extracted-row strong {
  font-weight:550;
  text-align:right
}

.receipt-progress {
  height:5px;
  background:#e5efee;
  border-radius:10px;
  overflow:hidden;
  margin:20px 0
}

.receipt-progress::after {
  content:'';
  display:block;
  height:100%;
  width:40%;
  background:var(--green);
  animation:processing 1.8s ease-in-out infinite
}

@keyframes processing {
  0% {
    transform:translateX(-100%)
  }
  100% {
    transform:translateX(350%)
  }
}

/* Accounting tables, filters and review */
.table-wrap {
  overflow:auto;
  max-width:100%;
  scrollbar-width:thin
}

table {
  width:100%;
  border-collapse:collapse;
  font-size:12px
}

th {
  text-align:left;
  font-size:10px;
  letter-spacing:.2px;
  color:#6a7f92;
  font-weight:550;
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  background:#f8fafc;
  white-space:nowrap
}

td {
  padding:13px 12px;
  border-bottom:1px solid #eaf0f4;
  vertical-align:middle
}

tbody tr:last-child td {
  border-bottom:0
}

tbody tr:hover {
  background:#fbfcfd
}

.amount {
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum';
  font-weight:500
}

.date-cell {
  white-space:nowrap;
  font-size:11px;
  color:#64798d
}

.table-label {
  font-weight:550;
  color:#27485f
}

.table-label:hover {
  color:var(--green)
}

.table-sub {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:3px
}

.table-panel {
  padding:0;
  overflow:hidden
}

.table-panel>.panel-heading {
  padding:17px 20px;
  border-bottom:1px solid var(--line)
}

.table-panel th:first-child,.table-panel td:first-child {
  padding-left:20px
}

.table-panel th:last-child,.table-panel td:last-child {
  padding-right:20px
}

.table-panel .table-wrap {
  margin:0
}

.table-footer {
  padding:13px 20px;
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line);
  font-size:11px;
  color:var(--muted)
}

.table-footer strong {
  color:var(--ink);
  font-weight:550
}

.search-form {
  display:flex;
  gap:9px;
  margin-bottom:18px;
  flex-wrap:wrap;
  align-items:center
}

.search-form input {
  flex:1;
  min-width:170px
}

.search-form select {
  width:auto
}

.search-form .button {
  min-height:38px
}

.search-field {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #cfdae5;
  border-radius:5px;
  background:white;
  padding:0 10px;
  flex:1;
  min-width:200px;
  color:#8a9dab
}

.search-field input {
  border:0!important;
  padding-left:0!important;
  min-width:0!important
}

.search-field:focus-within {
  outline:2px solid #35adab;
  outline-offset:2px
}

.search-field input:focus-visible {
  outline:0
}

.search-field .icon {
  width:17px;
  height:17px
}

.toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 18px;
  flex-wrap:wrap
}

.toolbar .search-form {
  margin:0;
  flex:1;
  max-width:550px
}

.toolbar-summary {
  font-size:11px;
  color:var(--muted)
}

.tabs,.filter-tabs {
  display:flex;
  gap:24px;
  border-bottom:1px solid var(--line);
  margin-bottom:18px;
  overflow-x:auto;
  scrollbar-width:thin;
  white-space:nowrap
}

.tabs a,.filter-tabs a {
  padding:10px 0;
  color:var(--muted);
  font-size:12px;
  font-weight:500;
  border-bottom:2px solid transparent;
  display:inline-flex;
  align-items:center;
  gap:6px
}

.tabs a:hover,.filter-tabs a:hover {
  text-decoration:none;
  color:var(--ink)
}

.tabs a.active,.filter-tabs a.active {
  border-bottom-color:var(--green);
  color:var(--green)
}

.tabs .count,.filter-tabs .count {
  font-size:9px;
  padding:1px 5px;
  margin:0
}

.pagination {
  display:flex;
  gap:6px;
  align-items:center;
  font-size:11px
}

.pagination a {
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:4px;
  color:var(--ink);
  background:white
}

.pagination a:hover {
  background:#f3f7fa;
  text-decoration:none
}

.pagination .current {
  padding:4px 8px
}

.bulk-toolbar {
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  padding:12px 15px;
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
  font-size:11px
}

.bulk-toolbar label {
  font-size:11px;
  display:flex;
  align-items:center;
  gap:6px
}

.bulk-toolbar [data-selection-count] {
  color:var(--muted)
}

.bulk-toolbar .button {
  margin-left:auto
}

.review-card {
  padding:0;
  overflow:hidden
}

.review-card .panel-heading {
  padding:17px 20px;
  border-bottom:1px solid var(--line)
}

.review-card h2 {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px
}

.review-card .panel-heading>b {
  font-size:15px;
  font-weight:600;
  white-space:nowrap
}

.review-grid {
  display:grid;
  grid-template-columns:1.05fr 1.6fr 1fr;
  gap:22px;
  padding:20px
}

.review-grid>div {
  min-width:0
}

.review-grid>div+div {
  border-left:1px solid var(--line);
  padding-left:20px
}

.review-grid h3 {
  font-size:12px
}

.review-grid p {
  font-size:12px
}

.review-grid .eyebrow {
  font-size:9px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.7px;
  color:#8a9aab
}

.review-grid .muted {
  font-size:11px
}

.review-grid .button {
  font-size:11px
}

.review-owner {
  font-size:10px;
  color:var(--muted);
  border-top:1px solid var(--line);
  padding:12px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#fafbfd;
  gap:12px
}

.review-owner form {
  display:flex;
  align-items:center;
  gap:5px
}

.review-owner select {
  font-size:10px;
  padding:5px 7px;
  min-height:29px
}

.review-card>details {
  padding:16px 20px;
  margin:0
}

.review-card>details .stack-form {
  margin-top:16px
}

.contact-avatar {
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:7px;
  background:#eaf1f5;
  color:#3b6c80;
  font-size:12px;
  font-weight:600;
  flex-shrink:0
}

.contact-name {
  display:flex;
  align-items:center;
  gap:11px
}

.stat-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:20px
}

.stat-card {
  border:1px solid var(--line);
  border-radius:7px;
  padding:18px;
  background:white
}

.stat-card small {
  display:block;
  margin-bottom:7px
}

.stat-card strong {
  font-size:25px;
  font-weight:600;
  letter-spacing:-.5px
}

.settings-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px
}

.settings-grid .panel {
  margin:0
}

.settings-grid p {
  font-size:12px;
  color:var(--muted);
  margin:9px 0 18px
}

.checklist {
  display:grid;
  gap:10px;
  padding:0;
  list-style:none
}

.checklist li {
  padding:13px 15px;
  background:#f5f8fb;
  border:1px solid #e7edf3;
  border-radius:5px
}

.checklist small {
  display:block
}

.bookkeeping-step {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px 12px
}

.chart-bar {
  height:5px;
  background:#70b7ad;
  margin:5px 0;
  border-radius:4px
}

details {
  border-top:1px solid var(--line);
  padding:15px 0
}

details+details {
  margin:0
}

summary {
  cursor:pointer;
  font-size:11px;
  font-weight:550;
  color:#4d657a
}

summary:hover {
  color:var(--green)
}

details[open]>summary {
  margin-bottom:12px
}

pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:10px;
  max-height:450px;
  overflow:auto;
  background:#f5f7fa;
  padding:15px;
  border-radius:5px;
  border:1px solid #e5ebf1
}

code {
  font-size:11px
}

.bottom-note {
  display:flex;
  gap:10px;
  color:var(--muted);
  font-size:11px;
  margin:18px 0
}

.print-only {
  display:none
}

/* Public sign in and installation */
.public-header {
  padding:25px 5%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:white
}

.public-header>span {
  font-size:11px;
  color:var(--muted)
}

.public-main {
  max-width:1200px;
  padding:45px 32px;
  margin:auto
}

.login-page {
  background:#eef2f6
}

.login-page .public-header {
  background:transparent;
  border:0
}

.login-page .public-main {
  padding-top:35px
}

.login-layout {
  max-width:420px;
  margin:0 auto
}

.login-panel {
  padding:34px 35px 28px;
  box-shadow:0 12px 38px #1a34450a;
  border-color:#dce4ec
}

.login-mark {
  margin-bottom:25px
}

.login-panel h1 {
  font-size:25px;
  margin-bottom:8px
}

.login-panel>.muted {
  font-size:12px;
  margin-bottom:27px
}

.login-panel .stack-form {
  gap:18px
}

.login-panel .button {
  width:100%;
  justify-content:space-between;
  min-height:41px;
  margin-top:4px
}

.login-panel .stack-form input {
  min-height:42px
}

.login-security {
  display:flex;
  gap:7px;
  align-items:center;
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--line);
  font-size:10px;
  color:#667b8f
}

.login-security .icon {
  width:14px;
  height:14px
}

.login-footer {
  text-align:center;
  font-size:10px;
  color:#667b8f
}

/* Smaller screens keep the full accounting navigation accessible. */
@media(min-width:1700px) {
  :root {
    --sidebar-width:240px
  }
  .main {
    padding:34px 40px
  }
  .topbar {
    padding-right:40px;
    padding-left:40px
  }
  .sidebar {
    padding-left:18px;
    padding-right:18px
  }
}

@media(max-width:1250px) {
  :root {
    --sidebar-width:210px
  }
  .main {
    padding:25px 24px
  }
  .topbar {
    padding-left:24px;
    padding-right:24px
  }
  .footer {
    margin:0 24px
  }
  .global-search {
    width:175px
  }
  .company-switch {
    gap:9px
  }
  .topbar select {
    max-width:220px
  }
  .metrics>a {
    padding:0 17px
  }
  .metrics strong {
    font-size:23px
  }
  .action-card {
    padding:15px 13px;
    gap:9px
  }
  .action-card p {
    font-size:9px
  }
  .action-icon {
    width:32px;
    height:34px
  }
  .dashboard-grid {
    gap:18px;
    grid-template-columns:minmax(0,1.6fr) minmax(265px,1fr)
  }
  .recent-journals th:nth-child(3),.recent-journals td:nth-child(3) {
    display:none
  }
  .review-grid {
    gap:15px
  }
  .review-grid>div+div {
    padding-left:15px
  }
}

@media(max-width:1050px) {
  .global-search {
    width:35px;
    padding:0 8px
  }
  .global-search input,.global-search kbd {
    display:none
  }
  .global-search:focus-within {
    width:200px
  }
  .global-search:focus-within input {
    display:block
  }
  .global-search .sr-only {
    position:static!important;
    width:17px!important;
    height:25px!important;
    margin:0!important;
    overflow:hidden;
    clip:auto;
    font-size:0;
    background:none;
    border:0;
    min-height:0;
    padding:0!important;
    position:absolute!important;
    cursor:pointer
  }
  .global-search {
    position:relative
  }
  .dashboard-grid {
    grid-template-columns:1.45fr 1fr
  }
  .quick-actions {
    gap:12px
  }
  .action-card .action-arrow {
    display:none
  }
  .split {
    grid-template-columns:1fr
  }
  .evidence-panel {
    position:static
  }
  .document-preview {
    max-height:450px
  }
  .review-grid {
    grid-template-columns:1fr 1.5fr
  }
  .review-grid>div:last-child {
    grid-column:1/-1;
    border:0;
    border-top:1px solid var(--line);
    padding:13px 0 0;
    display:flex;
    align-items:center;
    gap:12px
  }
  .review-grid>div:last-child>.eyebrow {
    display:none
  }
  .review-grid>div:last-child>p {
    margin:0
  }
  .review-grid>div:last-child .button {
    flex-shrink:0
  }
  .open-items-grid {
    grid-template-columns:1fr
  }
  .open-items-grid>a+a {
    border-left:0;
    border-top:1px solid var(--line);
    padding-left:0;
    padding-top:14px
  }
  .open-items-grid>a {
    padding-right:0
  }
  .open-items-grid strong {
    font-size:19px
  }
}

@media(max-width:900px) {
  .workspace {
    margin-left:0
  }
  .sidebar {
    width:250px
  }
  .js-ready .sidebar {
    transform:translateX(-100%);
    transition:transform .18s ease
  }
  .js-ready.nav-open .sidebar {
    transform:translateX(0)
  }
  .nav-toggle,.nav-close {
    display:inline-flex
  }
  .nav-toggle {
    margin-left:-6px
  }
  .nav-overlay:not([hidden]) {
    display:block;
    position:fixed;
    inset:0;
    border:0;
    border-radius:0;
    background:#13283d66;
    z-index:35
  }
  .nav-open {
    overflow:hidden
  }
  .topbar {
    gap:10px
  }
  .company-switch {
    margin-right:auto
  }
  .top-right {
    gap:10px
  }
  .topbar select {
    max-width:260px
  }
  .global-search {
    width:200px
  }
  .global-search input,.global-search kbd {
    display:block
  }
  .global-search .sr-only {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    clip:rect(0,0,0,0)
  }
  .year-switch {
    padding-left:14px
  }
  .main {
    padding:25px
  }
  .footer {
    margin:0 25px
  }
  .dashboard-grid {
    grid-template-columns:minmax(0,1.6fr) minmax(265px,1fr)
  }
  .recent-journals th:nth-child(3),.recent-journals td:nth-child(3) {
    display:none
  }
  .metrics>a {
    padding:0 15px
  }
  .metrics strong {
    font-size:23px
  }
  .action-card p {
    font-size:10px
  }
  .action-card h2 {
    font-size:12px
  }
  .brand {
    font-size:30px
  }
  .sidebar nav a,.sidebar-bottom>a {
    min-height:43px;
    font-size:13px
  }
  .sidebar .sidebar-bottom {
    padding-top:24px
  }
  .sidebar-brand {
    padding-bottom:25px
  }
  .sidebar .user {
    padding-top:15px
  }
  .sidebar:not(.js-ready .sidebar) {
    position:static;
    width:auto
  }
  .workspace:not(.js-ready .workspace) {
    margin-left:0
  }
}

@media(max-width:700px) {
  .main {
    padding:22px 18px
  }
  .topbar {
    padding:10px 18px;
    min-height:71px
  }
  .company-icon {
    display:none
  }
  .company-switch {
    gap:8px
  }
  .topbar select {
    max-width:230px;
    font-size:11px
  }
  .company-switch label,.year-switch label {
    font-size:9px
  }
  .global-search {
    display:none
  }
  .year-switch {
    border-left:0;
    padding-left:0
  }
  .topbar .year-switch select {
    font-size:11px;
    max-width:72px
  }
  .badge.test,.badge.live {
    font-size:9px;
    padding:2px 6px
  }
  .page-heading {
    margin-bottom:20px;
    gap:12px;
    align-items:flex-start
  }
  h1 {
    font-size:24px
  }
  .page-heading .muted {
    font-size:11px
  }
  .page-heading .button {
    font-size:11px;
    padding:8px 11px;
    min-height:36px
  }
  .page-heading .button .icon {
    width:15px
  }
  .quick-actions {
    grid-template-columns:1fr;
    gap:9px;
    margin-bottom:18px
  }
  .action-card {
    padding:13px 16px;
    min-height:70px
  }
  .action-card .action-arrow {
    display:block;
    width:17px
  }
  .action-icon {
    width:35px;
    height:35px
  }
  .action-card p {
    font-size:10px
  }
  .action-card h2 {
    font-size:12px
  }
  .metrics {
    grid-template-columns:repeat(2,1fr);
    padding:0;
    margin-bottom:18px
  }
  .metrics>a {
    padding:17px 18px;
    border-bottom:1px solid var(--line);
    gap:6px
  }
  .metrics>a:nth-child(2) {
    border-right:0
  }
  .metrics>a:nth-child(3) {
    border-bottom:0
  }
  .metrics strong {
    font-size:25px
  }
  .metric-label small {
    font-size:9px
  }
  .metrics>a>span:last-child {
    font-size:10px
  }
  .dashboard-grid {
    grid-template-columns:1fr;
    gap:0
  }
  .dashboard-aside {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
  }
  .panel {
    padding:18px;
    margin-bottom:18px
  }
  .table-panel,.review-card {
    padding:0
  }
  .table-panel>.panel-heading {
    padding:16px 18px
  }
  .table-panel td:first-child,.table-panel th:first-child {
    padding-left:18px
  }
  .table-panel td:last-child,.table-panel th:last-child {
    padding-right:18px
  }
  .panel-heading {
    padding-bottom:15px
  }
  .table-panel th,.table-panel td {
    font-size:11px
  }
  .table-panel th {
    font-size:10px
  }
  .open-items-grid {
    grid-template-columns:1fr 1fr
  }
  .open-items-grid>a {
    padding-right:10px
  }
  .open-items-grid>a+a {
    border-top:0;
    border-left:1px solid var(--line);
    padding:8px 0 15px 18px
  }
  .open-items-grid strong {
    font-size:21px
  }
  .configuration-note {
    flex-wrap:wrap;
    gap:9px
  }
  .configuration-note>div {
    flex:1
  }
  .configuration-note>a {
    margin-left:27px
  }
  .footer {
    margin:0 18px;
    flex-wrap:wrap;
    gap:5px
  }
  .summary-amount {
    font-size:24px
  }
  .detail-meta {
    grid-template-columns:repeat(2,1fr);
    gap:15px
  }
  .settings-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .stat-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }
  .stat-card {
    padding:15px
  }
  .stat-card strong {
    font-size:22px
  }
  .tabs,.filter-tabs {
    gap:20px
  }
  .tabs a,.filter-tabs a {
    font-size:11px
  }
  .review-grid {
    grid-template-columns:1fr;
    gap:16px;
    padding:18px
  }
  .review-grid>div+div {
    padding:15px 0 0;
    border-left:0;
    border-top:1px solid var(--line)
  }
  .review-grid>div:last-child {
    display:block
  }
  .review-grid>div:last-child>p {
    margin-top:10px
  }
  .review-owner {
    padding:12px 18px;
    flex-wrap:wrap
  }
  .review-card .panel-heading {
    padding:15px 18px
  }
  .bulk-toolbar {
    gap:10px;
    flex-wrap:wrap;
    padding:12px
  }
  .bulk-toolbar .button {
    font-size:11px;
    margin-left:auto
  }
  .bulk-toolbar label {
    font-size:10px
  }
  .bulk-toolbar [data-selection-count] {
    font-size:10px
  }
  .public-main {
    padding:32px 20px
  }
  .public-header {
    padding:23px 25px
  }
  .login-page .public-main {
    padding-top:25px
  }
  .form-grid,.detail-grid {
    grid-template-columns:1fr
  }
  .form-container {
    max-width:100%
  }
  .toolbar .search-form {
    max-width:100%;
    flex-basis:100%
  }
  .toolbar {
    gap:10px
  }
  .toolbar .toolbar-summary {
    margin-left:auto
  }
  .document-preview:is(iframe) {
    height:450px
  }
  .upload-dropzone {
    min-height:210px;
    padding:23px 15px
  }
}

@media(max-width:450px) {
  .topbar {
    gap:7px;
    padding-left:14px;
    padding-right:14px
  }
  .topbar select {
    max-width:172px;
    font-size:10px
  }
  .company-switch {
    gap:5px;
    flex-wrap:wrap
  }
  .company-switch form {
    max-width:172px
  }
  .company-switch label {
    display:none
  }
  .company-switch .badge {
    font-size:8px;
    flex-shrink:0
  }
  .topbar .year-switch select {
    font-size:10px;
    min-width:78px;
    max-width:78px
  }
  .nav-toggle {
    min-width:30px;
    padding:5px
  }
  .top-right {
    margin-left:0
  }
  .main {
    padding:20px 15px
  }
  .page-heading h1 {
    font-size:24px
  }
  .page-heading>.button {
    font-size:10px;
    padding:8px;
    gap:5px
  }
  .page-heading>.button>.icon {
    width:15px;
    height:15px
  }
  .dashboard-aside {
    grid-template-columns:1fr;
    gap:0
  }
  .metrics strong {
    font-size:23px
  }
  .metrics>a {
    padding:15px
  }
  .metric-label {
    font-size:10px
  }
  .open-item-icon {
    display:none
  }
  .open-items-grid strong {
    font-size:20px
  }
  .open-items-grid>a+a {
    padding-left:15px
  }
  .table-panel>.panel-heading {
    padding:15px
  }
  .recent-journals td:first-child,.recent-journals th:first-child {
    padding-left:15px
  }
  .recent-journals td:last-child,.recent-journals th:last-child {
    padding-right:15px
  }
  .recent-journals td {
    padding:12px 8px
  }
  .recent-journals .table-label {
    font-size:10px
  }
  .recent-journals .date-cell {
    font-size:10px
  }
  .table-footer {
    align-items:flex-start;
    flex-direction:column;
    padding:12px 15px
  }
  .pagination {
    align-self:flex-end
  }
  .login-panel {
    padding:28px 24px
  }
  .login-layout {
    max-width:390px
  }
  .login-page .public-main {
    padding:22px 18px
  }
  .login-security {
    font-size:9px
  }
  .login-panel h1 {
    font-size:24px
  }
  .page-actions {
    gap:7px
  }
  .page-actions .button {
    font-size:10px;
    min-height:34px;
    padding:8px 10px
  }
  .organizer-row {
    font-size:10px
  }
  .summary-amount {
    font-size:21px
  }
  .review-card .panel-heading>b {
    font-size:13px
  }
  .review-card .panel-heading h2 {
    font-size:12px
  }
  .configuration-note {
    font-size:11px
  }
  .configuration-note strong {
    font-size:11px
  }
  .public-header {
    padding:20px
  }
  .public-header .brand {
    font-size:27px
  }
  .public-header .brand img {
    width:34px;
    height:34px
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition:none!important
  }
}

@media print {
  .sidebar,.topbar,.footer,.actions,.page-actions,.button,.notice,.no-print,.nav-toggle,.nav-overlay {
    display:none!important
  }
  .workspace {
    margin:0
  }
  .main {
    padding:0
  }
  .panel {
    border:0;
    padding:10px;
    box-shadow:none
  }
  .print-only {
    display:block
  }
  .document-preview {
    max-height:none
  }
  body {
    background:white;
    color:black;
    font-size:11px
  }
  a {
    color:black
  }
  .metrics {
    break-inside:avoid
  }
  .table-wrap {
    overflow:visible
  }
  .evidence-panel {
    position:static
  }
  .split,.dashboard-grid {
    display:block
  }
  .badge.test {
    border-color:#666;
    color:black
  }
  .public-header {
    display:none
  }
}

/* Relationship cards and detail pages */
.heading-count {
  display:inline-block;
  vertical-align:middle;
  font-size:12px;
  font-weight:500;
  letter-spacing:0;
  border:1px solid var(--line);
  background:white;
  color:var(--muted);
  border-radius:5px;
  padding:3px 7px;
  margin-left:6px
}

.stat-card>span {
  display:block;
  font-size:11px;
  font-weight:500;
  color:var(--muted);
  margin-bottom:7px
}

.stat-card>strong {
  display:block;
  margin-bottom:5px
}

.stat-card>small {
  font-size:10px;
  margin:0
}

.table-panel>.toolbar {
  padding:15px 20px;
  margin:0;
  border-bottom:1px solid var(--line)
}

.table-panel>.toolbar>.filter-tabs {
  margin:0;
  border:0;
  gap:18px
}

.table-panel>.toolbar>.filter-tabs a {
  padding:7px 0
}

.filter-tabs a[aria-current] {
  border-bottom-color:var(--green);
  color:var(--green)
}

.table-primary {
  font-weight:550;
  color:#27485f
}

.table-primary:hover {
  color:var(--green)
}

.badge.warning {
  background:#fff5df;
  color:#8c611b;
  border-color:#efdfbc
}

.badge.success {
  background:#eaf6f1;
  color:#227056;
  border-color:#d3e9de
}

.badge.neutral {
  background:#eff3f7;
  color:#65778b;
  border-color:#e1e7ee
}

.contact-avatar.large {
  height:51px;
  width:51px;
  font-size:17px;
  border-radius:9px
}

.breadcrumb {
  display:inline-flex;
  align-items:center;
  font-size:11px;
  color:var(--muted);
  margin-bottom:14px
}

.breadcrumb:hover {
  color:var(--green)
}

.relationship-layout {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(260px,1fr);
  gap:22px
}

.relationship-layout>div {
  min-width:0
}

.relationship-aside {
  min-width:0
}

.relationship-aside .detail-meta {
  grid-template-columns:1fr;
  margin:20px 0 0;
  gap:16px
}

.relationship-aside>section>h2 {
  margin-bottom:12px
}

.relationship-aside p {
  font-size:11px;
  margin:10px 0 15px
}

.relationship-aside .bank-account {
  font-size:13px;
  font-weight:550;
  letter-spacing:.2px;
  overflow-wrap:anywhere
}

.relationship-form {
  max-width:980px
}

.relationship-form input:not([type=hidden]):not([type=checkbox]),.relationship-form select,.relationship-form textarea {
  width:100%
}

.relationship-form .form-grid>div>div+div {
  margin-top:16px
}

.relationship-form>section>textarea {
  margin-top:15px
}

.relationship-form>section>.muted {
  font-size:10px;
  margin:7px 0 0
}

.form-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:18px 0
}

.activity-list {
  margin:0;
  padding:0;
  list-style:none
}

.activity-list li {
  position:relative;
  padding:0 0 17px 22px;
  font-size:11px;
  border-left:1px solid #dde6ed;
  margin-left:5px
}

.activity-list li::before {
  content:'';
  position:absolute;
  left:-4px;
  top:4px;
  width:7px;
  height:7px;
  background:#86aba9;
  border-radius:50%;
  box-shadow:0 0 0 3px white
}

.activity-list li:last-child {
  padding-bottom:0;
  border:0
}

.activity-list strong {
  display:block;
  font-size:11px;
  font-weight:550;
  margin-bottom:4px
}

.activity-list small {
  font-size:10px
}

.preserve-lines {
  line-height:1.7
}

.overdue-text {
  color:#ae4d43
}

.table-footer>div {
  display:flex;
  gap:14px
}

.table-footer>div>a {
  font-weight:550
}

@media(max-width:1050px) {
  .relationship-layout {
    grid-template-columns:1.6fr 1fr;
    gap:18px
  }
  .table-panel>.toolbar .search-form {
    max-width:100%;
    flex-basis:100%
  }
}

@media(max-width:700px) {
  .relationship-layout {
    grid-template-columns:1fr
  }
  .relationship-aside .detail-meta {
    grid-template-columns:1fr 1fr
  }
  .contact-avatar.large {
    width:42px;
    height:42px;
    font-size:14px
  }
  .table-panel>.toolbar {
    padding:14px 18px
  }
  .relationship-layout .stat-grid {
    grid-template-columns:1fr 1fr
  }
  .relationship-form .form-actions {
    justify-content:stretch
  }
  .relationship-form .form-actions .button {
    flex:1
  }
  .contact-name {
    gap:9px
  }
  .contact-name h1 {
    font-size:22px
  }
  .relationship-layout table {
    min-width:540px
  }
}

.breadcrumb .icon {
  width:14px;
  height:14px;
  margin-right:6px
}

.invoice-title-row {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:7px
}

.invoice-title-row h1 {
  margin:0
}

.invoice-heading-amount {
  text-align:right
}

.invoice-heading-amount>small {
  display:block;
  font-size:10px;
  margin-bottom:3px
}

.invoice-layout .panel-heading h2 {
  display:flex;
  align-items:center;
  gap:7px
}

.invoice-layout .panel-heading h2 .icon {
  width:17px;
  height:17px;
  color:#6f8b9d
}

.invoice-data .detail-meta {
  grid-template-columns:repeat(2,1fr)
}

.invoice-data tfoot td {
  font-size:14px;
  font-weight:650;
  background:#f8fafc;
  border-top:1px solid var(--line)
}

.invoice-data tfoot th {
  font-weight:550;
  border-top:1px solid var(--line);
  border-bottom:0;
  color:var(--ink)
}

.journal-preview {
  margin-top:20px;
  padding-bottom:0
}

.journal-preview .text-link {
  margin-top:12px
}

.invoice-approve {
  border-top:1px solid var(--line);
  margin-top:17px;
  padding-top:18px
}

.invoice-approve p {
  margin:11px 0 0;
  font-size:10px;
  max-width:350px
}

.invoice-approve .button {
  width:100%;
  min-height:40px
}

.invoice-actions>.panel-heading {
  padding-bottom:15px
}

.invoice-actions details p,.payment-proposal p {
  font-size:11px;
  line-height:1.6
}

.invoice-actions details:last-child {
  padding-bottom:0
}

.payment-proposal {
  padding-top:17px;
  border-top:1px solid var(--line)
}

.credit-reference {
  padding:8px 10px;
  background:#f0f5f9;
  border-radius:4px;
  font-size:11px
}

.document-meta details {
  border:0;
  padding:0
}

.document-meta details summary {
  font-size:10px;
  color:#667b8f
}

.document-meta details[open] summary {
  margin-bottom:5px
}

@media(max-width:450px) {
  .invoice-heading {
    align-items:flex-start
  }
  .invoice-heading .muted {
    font-size:10px
  }
  .invoice-heading-amount .summary-amount {
    font-size:19px
  }
  .invoice-heading-amount>small {
    font-size:8px
  }
  .invoice-title-row {
    gap:6px
  }
  .invoice-title-row h1 {
    font-size:22px
  }
}

.receipt-upload {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);
  gap:22px;
  max-width:none
}

.receipt-upload>aside {
  align-self:start
}

.receipt-upload>aside>.muted {
  font-size:11px
}

.receipt-upload .stack-form .button {
  justify-self:stretch
}

.processing-steps li::before {
  content:'';
  width:5px;
  height:5px;
  background:#6d9e99;
  flex-shrink:0;
  border-radius:50%
}

.receipt-processing .processing-steps {
  counter-reset:receipt;
  gap:0;
  margin:25px 0
}

.receipt-processing .processing-steps li {
  counter-increment:receipt;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  font-size:11px;
  align-items:center
}

.receipt-processing .processing-steps li::before {
  content:counter(receipt);
  display:grid;
  place-items:center;
  height:23px;
  width:23px;
  border-radius:50%;
  font-size:10px;
  font-weight:550;
  background:#eaf2f5;
  color:#638091
}

.receipt-processing .processing-steps li:first-child {
  color:#347760
}

.receipt-processing .processing-steps li:first-child::before {
  background:#e5f4ed;
  color:#347760
}

.receipt-processing>p.muted {
  font-size:11px
}

.extraction-summary .field-status {
  margin:0 4px 6px 0
}

.field-status .icon {
  width:13px;
  height:13px
}

.document-editor .extracted-row {
  padding:0;
  border:0
}

.document-editor .extracted-row.field-attention {
  padding:12px;
  border:1px solid #ebd5a8;
  background:#fffaf0;
  border-radius:5px
}

.document-editor .stack-form details>div:not([data-formset-rows]) {
  margin-top:14px
}

.document-editor .stack-form details>div>label {
  display:block;
  margin-bottom:6px
}

.extraction-details {
  margin-top:17px;
  padding-bottom:0
}

.extraction-checks {
  padding:0;
  margin:0;
  list-style:none;
  display:grid;
  gap:8px
}

.extraction-checks li {
  display:flex;
  gap:7px;
  font-size:11px;
  color:#467963
}

.extraction-checks .icon {
  width:15px;
  height:15px
}

.extraction-details>p {
  font-size:10px;
  margin:11px 0 0
}

@media(max-width:700px) {
  .receipt-upload {
    grid-template-columns:1fr;
    gap:0
  }
  .receipt-upload>aside .processing-steps {
    margin:15px 0
  }
  .receipt-upload>aside {
    margin-bottom:18px
  }
}

.invoice-approve .invoice-approval-note {
  margin:0 0 13px;
  font-size:11px;
  max-width:none;
  color:#5c7286
}

.upload-dropzone {
  position:relative
}

.upload-dropzone input[type=file] {
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%;
  max-width:none;
  opacity:0;
  cursor:pointer;
  padding:0!important;
  margin:0
}

.upload-dropzone:focus-within {
  outline:3px solid #35adab;
  outline-offset:3px
}

.upload-dropzone .upload-picker {
  pointer-events:none;
  min-width:130px;
  margin:5px 0 0;
  background:white
}

.upload-dropzone [data-upload-name] {
  font-size:11px;
  color:#466e7d;
  min-height:17px
}

.upload-dropzone.has-file {
  background:#f0f8f5;
  border-color:#5ca89a
}

.connection-settings {
  margin-top:20px;
  padding-bottom:0
}

.connection-settings[open]>summary {
  margin-bottom:18px
}

.source-access-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid #e3eaf0;
  border-radius:6px;
  margin:5px 0 20px;
  background:#f8fafc
}

.source-access-summary>div {
  padding:14px;
  border-right:1px solid #e3eaf0;
  min-width:0
}

.source-access-summary>div:last-child {
  border:0
}

.source-access-summary span {
  display:block;
  font-size:9px;
  color:#71869a;
  margin-bottom:6px
}

.source-access-summary strong {
  display:block;
  font-size:15px;
  font-weight:600;
  letter-spacing:-.2px;
  white-space:nowrap
}

.source-access-summary strong small {
  font-size:10px;
  font-weight:400
}

.connection-panel .actions .button {
  font-size:11px
}

.connection-panel .detail-meta {
  grid-template-columns:repeat(2,1fr)
}

.connection-panel .notice>p {
  margin:0;
  font-size:11px
}

.connection-panel .notice {
  padding:12px
}

.relationship-aside .checklist li form {
  margin-top:9px
}

.relationship-aside .checklist .status {
  margin-top:8px
}

.relationship-aside details>.stack-form {
  margin-top:15px
}

@media(max-width:1100px) {
  .source-access-summary {
    grid-template-columns:1fr
  }
  .source-access-summary>div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-right:0;
    border-bottom:1px solid #e3eaf0;
    padding:11px 13px
  }
  .source-access-summary span {
    margin:0
  }
  .source-access-summary strong {
    font-size:13px
  }
  .connection-panel .actions {
    gap:8px
  }
  .connection-panel .actions>form,.connection-panel .actions>a {
    flex:1
  }
  .connection-panel .actions .button {
    width:100%;
    min-width:130px
  }
}
/* Sales invoice composition */
.sale-layout {display:grid;grid-template-columns:minmax(0,2.5fr) minmax(235px,1fr);gap:22px;align-items:start}
.sale-layout>div {min-width:0}
.sale-invoice-form input:not([type=checkbox]):not([type=hidden]),.sale-invoice-form select {width:100%}
.sale-invoice-form label {display:block;font-size:11px;font-weight:550;margin-bottom:6px}
.sale-invoice-form .errorlist {margin-top:6px}
.sale-invoice-form small {display:block;font-size:10px;margin-top:6px}
.sale-customer-grid {grid-template-columns:1fr 1fr}
.sale-customer {grid-column:1/-1}
.sale-customer input {max-width:100%}
.sale-line-grid {display:grid;grid-template-columns:minmax(0,1.8fr) minmax(120px,.8fr) minmax(160px,1fr);gap:14px;align-items:start}
.sale-line-grid>div {min-width:0}
.sale-line-grid input[name$=net] {text-align:right;font-variant-numeric:tabular-nums}
.sale-line-settings {margin-top:20px;padding-bottom:0}
.sale-line-settings .form-grid,.invoice-line .form-grid {margin-top:18px}
.sale-extra-lines {margin-top:18px;padding-bottom:0}
.invoice-line {margin:16px 0;border:1px solid var(--line);background:#fafbfd;padding:16px;border-radius:6px}
.invoice-line legend {font-size:10px;color:#62788c}
.invoice-line details {padding-bottom:0;margin-top:15px}
.sale-booking-dates {border:0;padding:0}
.sale-booking-dates .form-grid {margin-top:18px}
.sale-booking-dates p {margin:12px 0 0}
.sale-summary {position:sticky;top:96px}
.invoice-workflow {list-style:none;padding:0;margin:0}
.invoice-workflow li {display:flex;gap:11px;margin:0 0 22px}
.invoice-workflow li>span {border:1px solid #dce6ee;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#648296;flex-shrink:0;background:#f3f7fa}
.invoice-workflow li:first-child>span {background:#e6f3ee;color:#2b816c;border-color:#cce7dd}
.invoice-workflow strong {font-size:11px;font-weight:550}
.invoice-workflow p {font-size:10px;color:var(--muted);line-height:1.6;margin:4px 0 0}
.invoice-issuer {border-top:1px solid var(--line);padding-top:16px}
.invoice-issuer strong {display:block;font-size:12px;font-weight:550;margin-top:4px}
.invoice-issuer .badge {margin-top:12px}
@media(max-width:1250px){.sale-layout{grid-template-columns:minmax(0,2fr) minmax(220px,1fr)}.sale-line-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sale-description{grid-column:1/-1}}
@media(max-width:1050px){.sale-layout{grid-template-columns:1fr}.sale-summary{position:static}.invoice-workflow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.invoice-workflow li{margin-bottom:12px}}
@media(max-width:700px){.sale-layout{gap:0}.sale-line-grid{gap:12px}.sale-customer-grid{gap:15px}.sale-invoice-form .form-actions .button{flex:1}.invoice-workflow{display:block}.invoice-workflow li{margin-bottom:18px}.sale-layout>.sale-summary{margin-top:15px}}
@media(max-width:450px){.sale-line-grid{grid-template-columns:1fr}.sale-description{grid-column:auto}.sale-customer-grid{grid-template-columns:1fr}.sale-invoice-form .panel-heading>.text-link{font-size:10px}.sale-invoice-form .panel-heading{gap:8px}.sale-invoice-form .panel-heading .icon{width:14px;height:14px}}
.automatic-processing-note {display:flex;align-items:center;gap:7px;color:#31765f;font-size:11px;margin:-7px 0 20px}
.automatic-processing-note>.icon {width:16px;height:16px}
.preview-description {font-size:11px;color:var(--muted);margin:0 0 19px}
.invoice-calculation {margin:0}
.invoice-calculation>div {display:flex;justify-content:space-between;gap:12px;padding:10px 0;font-size:12px;border-top:1px solid var(--line)}
.invoice-calculation dt {color:#63798d}
.invoice-calculation dd {margin:0;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap}
.preview-tax-groups>div {display:flex;justify-content:space-between;gap:12px;margin:7px 0;font-size:10px;color:var(--muted)}
.preview-tax-groups>div>span:last-child {font-variant-numeric:tabular-nums;white-space:nowrap}
.preview-total {border-top:1px solid var(--line);padding-top:17px;margin-top:17px}
.preview-total>span {display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.preview-total>strong {font-size:27px;font-weight:600;letter-spacing:-.5px;font-variant-numeric:tabular-nums;color:var(--green)}
.preview-notice {font-size:10px;color:var(--muted);line-height:1.6;margin:14px 0 20px}
