/* BUNO Portal Design 4.4 — combined, cacheable and dependency-free design system */
:root {
  color-scheme: light;
  --nova-bg: #f5f7fc;
  --nova-surface: #ffffff;
  --nova-surface-soft: #f8faff;
  --nova-surface-strong: #edf1fa;
  --nova-ink: #0b1533;
  --nova-ink-soft: #344064;
  --nova-muted: #667085;
  --nova-line: #e2e8f5;
  --nova-line-strong: #ccd6eb;
  --nova-primary: #004afa;
  --nova-primary-hover: #0039c7;
  --nova-link: #0040de;
  --nova-link-hover: #0030ab;
  --nova-primary-soft: #eaf0ff;
  --nova-primary-line: #c9dcff;
  --nova-primary-contrast: #ffffff;
  --nova-accent: #087f7c;
  --nova-accent-soft: #e1f8f7;
  --nova-brand-blue: #004afa;
  --nova-brand-teal: #00bcba;
  --nova-navy: #010d4c;
  --nova-success: #087f5b;
  --nova-success-soft: #ecfdf3;
  --nova-success-line: #a6f4c5;
  --nova-warning: #b54708;
  --nova-warning-soft: #fffaeb;
  --nova-warning-line: #fedf89;
  --nova-danger: #b42318;
  --nova-danger-soft: #fef3f2;
  --nova-danger-line: #fecdca;
  --nova-focus: #004afa;
  --nova-sidebar: #010d4c;
  --nova-sidebar-soft: #0a1a5b;
  --nova-sidebar-line: #23366e;
  --nova-sidebar-ink: #f4f7fb;
  --nova-sidebar-muted: #aab8dc;
  --nova-shadow-sm: 0 1px 2px rgba(11,21,51,.06);
  --nova-shadow: 0 12px 30px -20px rgba(1,13,76,.36);
  --nova-shadow-lg: 0 28px 64px -34px rgba(1,13,76,.5);
  --nova-radius-sm: 7px;
  --nova-radius: 10px;
  --nova-radius-lg: 14px;
  --nova-sidebar-width: 224px;
  --nova-topbar-height: 56px;
  --nova-content-width: 1600px;
  --nova-transition: 160ms ease;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  color: var(--nova-ink);
  background: var(--nova-bg);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, select { touch-action: manipulation; }
img, svg { display: block; max-width: 100%; }
a { color: var(--nova-link); text-underline-offset: 3px; }
a:hover { color: var(--nova-link-hover); }
h1, h2, h3, h4 { margin: 0; color: var(--nova-ink); line-height: 1.22; letter-spacing: -.02em; }
h1 { font-size: clamp(25px, 2.5vw, 31px); }
h2 { font-size: 20px; }
h3 { font-size: 17px; }
p { margin: 0; }
.help { margin: 8px 0 14px; color: var(--nova-muted); }
.centered { text-align: center; }
strong, b { font-weight: 700; }
small { font-size: 12px; line-height: 1.45; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--nova-focus);
  outline-offset: 2px;
}
::selection { color: #fff; background: var(--nova-primary); }
.sr-only, .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  z-index: 10001;
  top: 10px;
  left: 12px;
  transform: translateY(-160%);
  padding: 10px 14px;
  color: #fff;
  background: var(--nova-primary);
  border-radius: 9px;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { transform: none; }

/* Application shell */
.app-frame { min-height: 100vh; display: grid; grid-template-columns: var(--nova-sidebar-width) minmax(0,1fr); }
.portal-main { min-width: 0; grid-column: 2; }
.portal-sidebar {
  position: fixed;
  z-index: 50;
  inset: 0 auto 0 0;
  display: block;
  width: var(--nova-sidebar-width);
  min-height: 100vh;
  color: var(--nova-sidebar-ink);
  background: var(--nova-sidebar);
  border-right: 1px solid var(--nova-sidebar-line);
  transition: width var(--nova-transition), transform 190ms ease;
}
.suite-rail { display: none; }
.suite-nav-pane {
  display: flex;
  width: 100%;
  height: 100dvh;
  min-width: 0;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: hidden;
  overscroll-behavior: contain;
  flex-direction: column;
  color: var(--nova-sidebar-ink);
  background: var(--nova-sidebar);
  scrollbar-width: thin;
  scrollbar-color: #31435a transparent;
}
.suite-nav-head {
  position: relative;
  display: flex;
  min-height: 58px;
  padding: 10px 10px 8px 14px;
  align-items: center;
  justify-content: space-between;
}
.product-brand { display: inline-flex; align-items: center; text-decoration: none; }
.product-logo { width: 92px; height: auto; filter: brightness(0) invert(1); }
.product-mark { display: none; width: 32px; height: 32px; object-fit: contain; background: #fff; border-radius: 9px; }
.sidebar-head-actions { display: flex; gap: 4px; align-items: center; }
.sidebar-collapse, .nav-close {
  display: inline-grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  color: var(--nova-sidebar-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
}
.sidebar-collapse:hover, .nav-close:hover { color: #fff; background: var(--nova-sidebar-soft); border-color: var(--nova-sidebar-line); }
.sidebar-collapse span { font-size: 22px; line-height: 1; }
.nav-close {
  display: none;
  font-size: 24px;
}
.sidebar-company { margin: 0 10px 6px; padding: 6px 9px 8px; border: 0; border-bottom: 1px solid var(--nova-sidebar-line); border-radius: 0; background: transparent; }
.sidebar-label, .nav-section-title {
  display: block;
  color: var(--nova-sidebar-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.sidebar-company-name { display: block; margin-top: 3px; overflow: hidden; color: #fff; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.company-switch { display: grid; gap: 6px; margin-top: 5px; }
.company-switch select { width: 100%; min-height: 34px; padding: 5px 28px 5px 8px; color: #fff; background: var(--nova-sidebar-soft); border-color: var(--nova-sidebar-line); }
.company-switch-button { min-height: 32px; color: #d7e2ef; background: var(--nova-sidebar-soft); border: 1px solid var(--nova-sidebar-line); border-radius: 8px; font-size: 11px; font-weight: 700; cursor: pointer; }
.sidebar-scroll {
  display: grid;
  gap: 4px;
  min-height: 0;
  flex: 1 1 auto;
  align-content: start;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #31435a transparent;
}
.suite-nav-inner { display: grid; gap: 3px; padding: 0 9px; }
.compact-nav { align-content: start; }
.view-simple-only { display: none !important; }
:root[data-view="simple"] .view-simple-only { display: var(--view-simple-display, block) !important; }
:root[data-view="simple"] .suite-nav-inner.view-simple-only { display: grid !important; }
:root[data-view="simple"] .view-detailed-only { display: none !important; }
.suite-nav-link, .nav-sub-link, .suite-utility-link, .nav-disclosure > summary {
  position: relative;
  display: flex;
  min-height: 38px;
  gap: 10px;
  padding: 8px 10px;
  align-items: center;
  color: #b7c4d4;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: color var(--nova-transition), background var(--nova-transition);
}
.suite-nav-link:hover, .nav-sub-link:hover, .suite-utility-link:hover, .nav-disclosure > summary:hover { color: #fff; background: rgba(255,255,255,.09); }
.suite-nav-link.active, .nav-sub-link.active, .suite-utility-link.active { color: #fff; background: rgba(0,188,186,.18); }
.suite-nav-link.active::before, .nav-sub-link.active::before, .suite-utility-link.active::before {
  position: absolute;
  inset: 8px auto 8px 0;
  width: 3px;
  content: "";
  background: var(--nova-brand-teal);
  border-radius: 999px;
}
.nav-icon { width: 19px; height: 19px; flex: 0 0 auto; }
.nav-icon svg { width: 100%; height: 100%; }
.nav-copy { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-disclosure { margin: 0 9px; }
.nav-disclosure > summary { cursor: pointer; list-style: none; }
.nav-disclosure > summary::-webkit-details-marker { display: none; }
.nav-chevron { margin-left: auto; color: #71839a; transition: transform var(--nova-transition); }
.nav-disclosure[open] .nav-chevron { transform: rotate(180deg); }
.nav-disclosure-links { display: grid; gap: 1px; padding: 1px 0 3px; }
.nav-sub-link { min-height: 30px; padding: 5px 9px 5px 39px; color: #9fb0c3; font-size: 11px; }
.suite-nav-foot { position: relative; display: grid; gap: 4px; margin-top: auto; padding: 9px; overflow: visible; border-top: 1px solid var(--nova-sidebar-line); background: var(--nova-sidebar); }
.sidebar-account { position: relative; margin-top: 4px; }
.account-menu > summary {
  display: flex;
  min-height: 48px;
  gap: 10px;
  padding: 7px;
  align-items: center;
  color: #fff;
  background: var(--nova-sidebar-soft);
  border: 1px solid var(--nova-sidebar-line);
  border-radius: 9px;
  cursor: pointer;
  list-style: none;
}
.account-menu > summary::-webkit-details-marker { display: none; }
.user-avatar { display: inline-grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: #fff; background: #1e293b; border-radius: 10px; font-size: 13px; font-weight: 700; }
.account-copy { min-width: 0; flex: 1; }
.account-copy strong, .account-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-copy strong { font-size: 13px; }
.account-copy small { margin-top: 1px; color: var(--nova-sidebar-muted); }
.account-chevron { color: var(--nova-sidebar-muted); }
.account-popover {
  position: absolute;
  z-index: 80;
  right: 0;
  bottom: calc(100% + 8px);
  left: 0;
  display: grid;
  gap: 2px;
  padding: 8px;
  color: var(--nova-sidebar-ink);
  background: #071756;
  border: 1px solid var(--nova-sidebar-line);
  border-radius: var(--nova-radius);
  box-shadow: 0 18px 45px rgba(15,23,42,.16);
}
.account-popover a { padding: 9px 10px; color: #c8d4e2; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none; }
.account-popover a:hover { color: #fff; background: rgba(255,255,255,.1); }
.account-popover .logout-link { color: #ffb4ab; }
.account-company { padding: 8px 10px 10px; border-bottom: 1px solid var(--nova-sidebar-line); }
.account-company span, .account-company strong { display: block; }
.account-company span { color: var(--nova-sidebar-muted); font-size: 12px; }
.account-company strong { margin-top: 3px; font-size: 13px; }
.nav-backdrop { display: none; }

:root[data-sidebar="collapsed"] { --nova-sidebar-width: 72px; }
:root[data-sidebar="collapsed"] .suite-nav-head { padding-right: 5px; padding-left: 8px; }
:root[data-sidebar="collapsed"] .product-logo { display: none; }
:root[data-sidebar="collapsed"] .product-mark { display: block; }
:root[data-sidebar="collapsed"] .sidebar-company,
:root[data-sidebar="collapsed"] .nav-copy,
:root[data-sidebar="collapsed"] .nav-disclosure,
:root[data-sidebar="collapsed"] .account-copy,
:root[data-sidebar="collapsed"] .account-chevron { display: none; }
:root[data-sidebar="collapsed"] .sidebar-head-actions { margin-left: auto; }
:root[data-sidebar="collapsed"] .sidebar-collapse { width: 27px; }
:root[data-sidebar="collapsed"] .compact-nav { padding: 2px 9px; }
:root[data-sidebar="collapsed"] .suite-nav-link { justify-content: center; padding-right: 9px; padding-left: 9px; }
:root[data-sidebar="collapsed"] .suite-nav-foot { padding: 9px; }
:root[data-sidebar="collapsed"] .account-menu > summary { justify-content: center; padding: 6px; }
:root[data-sidebar="collapsed"] .account-popover { position: fixed; right: auto; bottom: 10px; left: 62px; width: 220px; }

.product-bar {
  position: sticky;
  z-index: 35;
  top: 0;
  display: flex;
  min-height: var(--nova-topbar-height);
  gap: 18px;
  padding: 0 12px 0 18px;
  align-items: center;
  justify-content: space-between;
  background: var(--nova-surface);
  border-bottom: 1px solid var(--nova-line);
}
.product-bar-left, .product-actions, .topbar-account { display: flex; align-items: center; }
.product-bar-left { min-width: 0; gap: 14px; }
.product-actions { min-width: 0; gap: 7px; }
.menu-button { display: none; width: 44px; height: 44px; padding: 11px; border: 0; background: transparent; border-radius: 10px; cursor: pointer; }
.menu-button span { display: block; width: 21px; height: 2px; margin: 4px 0; background: var(--nova-ink); border-radius: 4px; }
.mobile-brand { display: none; }
.topbar-trail { min-width: 0; }
.topbar-trail span, .topbar-trail strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-trail span { color: var(--nova-muted); font-size: 12px; }
.topbar-trail strong { color: var(--nova-ink); font-size: 14px; }
.quick-search { position: relative; width: min(310px,28vw); margin-left: auto; }
.quick-search > span { position: absolute; z-index: 1; top: 50%; left: 11px; color: var(--nova-muted); font-size: 18px; transform: translateY(-52%); pointer-events: none; }
.quick-search input { min-height: 36px !important; padding: 7px 10px 7px 34px !important; background: var(--nova-surface-soft) !important; border-color: var(--nova-line) !important; font-size: 13px; }
.system-indicator { display: inline-flex; min-height: 34px; gap: 7px; padding: 6px 8px; align-items: center; color: var(--nova-ink-soft); border-radius: 8px; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.system-indicator:hover { color: var(--nova-ink); background: var(--nova-surface-soft); }
.system-indicator i { width: 7px; height: 7px; background: var(--nova-accent); border-radius: 999px; }
.system-indicator.warning i { background: var(--nova-warning); }
.view-switch { display: inline-flex; gap: 2px; padding: 3px; background: var(--nova-surface-strong); border: 1px solid var(--nova-line); border-radius: 9px; }
.view-switch button { min-height: 28px; padding: 5px 8px; color: var(--nova-muted); background: transparent; border: 0; border-radius: 6px; font-size: 11px; font-weight: 700; cursor: pointer; }
.view-switch button.active, .view-switch button[aria-pressed="true"] { color: var(--nova-primary); background: var(--nova-surface); box-shadow: 0 1px 2px rgba(16,24,40,.08); }
.top-icon-button { display: inline-grid; width: 34px; height: 34px; padding: 7px; place-items: center; color: var(--nova-ink-soft); background: transparent; border: 1px solid transparent; border-radius: 9px; text-decoration: none; cursor: pointer; }
.top-icon-button:hover { color: var(--nova-primary); background: var(--nova-primary-soft); border-color: var(--nova-line); }
.top-icon-button svg { width: 18px; height: 18px; }
.theme-toggle { font-size: 17px; }
.top-upload-button { min-height: 36px; padding: 8px 11px; font-size: 12px; white-space: nowrap; }
.top-help { display: inline-flex; min-height: 40px; padding: 8px 12px; align-items: center; color: var(--nova-ink-soft); border-radius: 9px; font-size: 13px; font-weight: 600; text-decoration: none; }
.top-help:hover { background: var(--nova-surface-soft); }
.topbar-account { gap: 9px; padding: 3px; color: var(--nova-ink); border-radius: 10px; text-decoration: none; }
.topbar-account:hover { background: var(--nova-surface-soft); }
.topbar-account > span:last-child strong, .topbar-account > span:last-child small { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-account > span:last-child strong { font-size: 13px; }
.topbar-account > span:last-child small { color: var(--nova-muted); }

.workspace { width: 100%; max-width: calc(var(--nova-content-width) + 48px); min-height: calc(100vh - var(--nova-topbar-height)); margin: 0 auto; padding: 22px 24px 48px; }

.overview-facts { display: grid; grid-template-columns: 1.25fr repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 12px; }
.overview-fact {
  display: grid;
  min-height: 132px;
  gap: 5px;
  padding: 18px;
  align-content: center;
  color: var(--nova-ink);
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-radius: var(--nova-radius);
  text-decoration: none;
}
.overview-fact:hover { border-color: var(--nova-primary); transform: translateY(-1px); }
.overview-fact > span { color: var(--nova-muted); font-size: 12px; font-weight: 700; }
.overview-fact > strong { font-size: clamp(25px,3vw,38px); line-height: 1; letter-spacing: -.035em; }
.overview-fact > strong small { color: var(--nova-muted); font-size: 14px; letter-spacing: 0; }
.overview-fact > small { color: var(--nova-muted); font-size: 12px; }
.overview-fact.primary { background: var(--nova-primary-soft); border-color: var(--nova-primary-line); }
.overview-fact.attention { border-left: 4px solid var(--nova-warning); }
.overview-fact progress { width: 100%; height: 7px; margin-top: 7px; }
.next-action-panel { display: flex; min-height: 100%; flex-direction: column; align-items: flex-start; justify-content: center; }
.next-action-panel h2 { margin: 5px 0 7px; }
.next-action-panel p { margin: 0 0 15px; color: var(--nova-muted); }
.overview-quick-links { display: flex; gap: 11px; margin-top: 15px; flex-wrap: wrap; }
.overview-quick-links a { color: var(--nova-link); font-size: 12px; font-weight: 700; text-decoration: none; }
.overview-quick-links a:hover { text-decoration: underline; }
.account-settings { display: grid; gap: 9px; max-width: 980px; margin: 14px auto 0; }
.settings-section { overflow: clip; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.settings-section > summary { display: flex; min-height: 66px; gap: 18px; padding: 14px 17px; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.settings-section > summary::-webkit-details-marker { display: none; }
.settings-section > summary:hover { background: var(--nova-surface-soft); }
.settings-section > summary > span:first-child { display: grid; gap: 3px; }
.settings-section > summary b { color: var(--nova-ink); font-size: 15px; }
.settings-section > summary small { color: var(--nova-muted); }
.settings-section > summary > span:last-child { color: var(--nova-muted); transition: transform var(--nova-transition); }
.settings-section[open] > summary > span:last-child { transform: rotate(180deg); }
.settings-section-body { display: grid; gap: 17px; padding: 18px; border-top: 1px solid var(--nova-line); }
.settings-section-body > form { display: grid; max-width: 620px; gap: 13px; }
.security-option-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.security-option-grid article { padding: 16px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 10px; }
.security-option-grid h3 { margin: 10px 0 5px; }
.security-option-grid p { margin: 0; color: var(--nova-muted); }
.task-operational-list { display: grid; gap: 7px; margin-bottom: 12px; }
.task-operational-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; padding: 13px 15px; align-items: center; color: var(--nova-ink); background: var(--nova-surface); border: 1px solid var(--nova-line); border-left: 3px solid var(--nova-warning); border-radius: var(--nova-radius); text-decoration: none; }
.task-operational-row span:nth-child(2) { display: grid; gap: 2px; }
.task-operational-row small { color: var(--nova-muted); }
.task-operational-row > span:last-child { color: var(--nova-link); font-size: 12px; font-weight: 700; }
.selectable-table-row { cursor: pointer; }
.selectable-table-row:hover > td { background: var(--nova-primary-soft); }
.selectable-table-row:focus-visible { outline: 3px solid var(--nova-focus); outline-offset: -3px; }
.document-primary { display: flex; gap: 10px; align-items: center; }
.document-primary > span:last-child { display: grid; gap: 3px; }
.document-id-badge { display: inline-grid; min-width: 42px; min-height: 30px; padding: 4px 7px; place-items: center; color: var(--nova-muted); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 7px; font-size: 11px; font-weight: 700; }
.booking-date { display: block; margin-bottom: 3px; color: var(--nova-muted); font-size: 11px; font-weight: 700; }
.toolbar-switches { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.bank-master-detail.is-table-view { grid-template-columns: minmax(0,1fr); }
.bank-master-detail.is-table-view .operations-list-card { max-height: none; }
.workspace-head { display: flex; gap: 24px; margin-bottom: 18px; align-items: flex-end; justify-content: space-between; }
.workspace-head > div { min-width: 0; }
.workspace-head h1 { margin-top: 6px; }
.workspace-head p { max-width: 820px; margin-top: 7px; color: var(--nova-muted); font-size: 15px; }
.workspace-breadcrumb { display: flex; gap: 7px; align-items: center; color: var(--nova-muted); font-size: 12px; }
.workspace-breadcrumb a { color: var(--nova-muted); text-decoration: none; }
.workspace-breadcrumb strong { color: var(--nova-primary); font-weight: 700; }
.page-kicker, .page-eyebrow, .eyebrow, .nova-eyebrow { color: var(--nova-primary); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.embedded-body { background: var(--nova-surface); }
.embedded-main { max-width: var(--nova-content-width); margin: 0 auto; padding: 26px; }
.embedded-header { margin-bottom: 20px; }
.embedded-header h1 { margin-top: 5px; }
.embedded-header p { margin-top: 6px; color: var(--nova-muted); }

/* Shared content */
.data-card, .nova-panel, .form-card, .wide-card, .stack-card, .bank-card, .right-card, .comparison-box, .two-factor-card, .month-select-card, .month-close-grid > section, .account-summary, .account-grid > section, .security-note, .pilot-notice, .pilot-company-grid > article {
  margin-bottom: 14px;
  padding: 16px;
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-radius: var(--nova-radius-lg);
}
.data-card .data-card, .data-card .nova-panel { margin: 16px 0 0; background: var(--nova-surface-soft); box-shadow: none; }
.full-width-card { padding: 0; overflow: hidden; }
.full-width-card > .section-heading, .full-width-card > h2, .full-width-card > p { padding-right: 20px; padding-left: 20px; }
.full-width-card > .section-heading { padding-top: 20px; }
.section-heading, .settings-header, .usage-section-head, .export-head, .review-header, .split-toolbar, .missing-results-head, .missing-card-heading {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
  align-items: flex-start;
  justify-content: space-between;
}
.section-heading p, .settings-header p, .usage-section-head p, .missing-card-heading p, .missing-results-head p { margin-top: 4px; color: var(--nova-muted); }
.metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.metric-grid-wide { grid-template-columns: repeat(4,minmax(0,1fr)); }
.metric-card, .usage-metric, .bank-result-card, .document-summary-card, .missing-summary-card {
  min-width: 0;
  padding: 17px 18px;
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-radius: var(--nova-radius);
}
.metric-card > span, .usage-metric > span, .bank-result-card > span, .document-summary-card > span, .missing-summary-card > span { display: block; color: var(--nova-muted); font-size: 13px; }
.metric-card > strong, .usage-metric > strong, .bank-result-card > strong, .document-summary-card > strong, .missing-summary-card > strong { display: block; margin-top: 7px; color: var(--nova-ink); font-size: clamp(21px,2vw,27px); line-height: 1.12; font-variant-numeric: tabular-nums; }
.metric-card > small, .usage-metric > small { display: block; margin-top: 7px; color: var(--nova-muted); }
.metric-link { display: block; color: inherit; text-decoration: none; transition: border-color var(--nova-transition), transform var(--nova-transition); }
.metric-link:hover { color: inherit; border-color: color-mix(in srgb,var(--nova-primary) 36%,var(--nova-line)); transform: translateY(-1px); }
.two-column, .comparison-grid, .account-grid, .admin-grid, .bwa-summary, .split-grid, .detail-grid, .billing-facts, .pilot-company-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-grid, .review-form-grid, .transaction-filter-grid, .missing-filter-grid, .category-create-grid, .bulk-editor-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.full { grid-column: 1 / -1; }
.button-row, .row-actions, .inline-form, .page-action-strip-actions, .category-review-actions, .split-actions, .missing-actions, .missing-results-actions, .cockpit-toolbar-actions { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.divider { height: 1px; margin: 18px 0; background: var(--nova-line); }
.help-block, .info-box, .notice, .collector-note { padding: 14px 16px; color: var(--nova-ink-soft); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.action-list, .finding-list, .coverage-list, .setup-list, .nova-summary-lines { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.action-list li, .finding, .coverage-row, .setup-list li, .nova-summary-lines > * { padding: 11px 0; border-bottom: 1px solid var(--nova-line); }
.action-list li:last-child, .finding:last-child, .coverage-row:last-child, .setup-list li:last-child, .nova-summary-lines > *:last-child { border-bottom: 0; }
.setup-list .good, .section-heading > .good { color: var(--nova-success); }
.setup-list .bad, .section-heading > .bad { color: var(--nova-danger); }

/* Buttons and form controls */
.primary-button, .secondary-button, .small-button, .text-button, .pdf-button, .action-button, .small-action, .pdf-open-button {
  display: inline-flex;
  min-height: 40px;
  gap: 7px;
  padding: 9px 14px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--nova-transition), border-color var(--nova-transition), color var(--nova-transition), transform var(--nova-transition);
}
.primary-button, .action-button { color: var(--nova-primary-contrast); background: var(--nova-primary); border-color: var(--nova-primary); }
.primary-button:hover, .action-button:hover { color: var(--nova-primary-contrast); background: var(--nova-primary-hover); border-color: var(--nova-primary-hover); }
.secondary-button, .small-button, .pdf-button, .pdf-open-button, .small-action { color: var(--nova-ink-soft); background: var(--nova-surface); border-color: var(--nova-line-strong); }
.secondary-button:hover, .small-button:hover, .pdf-button:hover, .pdf-open-button:hover, .small-action:hover { color: var(--nova-primary); background: var(--nova-primary-soft); border-color: color-mix(in srgb,var(--nova-primary) 30%,var(--nova-line)); }
.text-button { min-height: 36px; padding: 6px 8px; color: var(--nova-primary); background: transparent; }
.small-button, .compact { min-height: 34px; padding: 7px 10px; font-size: 13px; }
.danger-button, .small-action.danger, button.danger { color: var(--nova-danger); background: var(--nova-danger-soft); border-color: var(--nova-danger-line); }
.danger-button:hover, .small-action.danger:hover, button.danger:hover { color: #8e1730; background: #ffe4e6; }
.primary-button:disabled, .secondary-button:disabled, button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
label { display: grid; gap: 6px; color: var(--nova-ink-soft); font-size: 13px; font-weight: 600; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  color: var(--nova-ink);
  background: var(--nova-surface);
  border: 1px solid var(--nova-line-strong);
  border-radius: 9px;
  transition: border-color var(--nova-transition), box-shadow var(--nova-transition);
}
textarea { min-height: 110px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: #94a3b8; }
input:focus, select:focus, textarea:focus { border-color: var(--nova-focus); box-shadow: none; outline: 3px solid var(--nova-focus); outline-offset: 2px; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--nova-primary); }
.checkbox-line, .check-label, .preference-check { display: flex; min-height: 40px; gap: 9px; align-items: center; color: var(--nova-ink-soft); font-size: 14px; font-weight: 600; }
.data-card > form:not(.inline-form):not(.filter-form), .form-card > form, .wide-card > form { display: grid; gap: 14px; }
.choice-fieldset { padding: 0; border: 0; }
.choice-fieldset legend { margin-bottom: 9px; font-weight: 700; }
.segmented { display: inline-flex; gap: 4px; padding: 4px; background: var(--nova-surface-strong); border-radius: 11px; }
.segmented a, .segmented button { min-height: 36px; padding: 7px 11px; color: var(--nova-muted); background: transparent; border: 0; border-radius: 8px; font-weight: 700; text-decoration: none; }
.segmented .active { color: var(--nova-primary); background: var(--nova-surface); }

/* Alerts, status and progress */
.alert, .status-bar, .page-action-strip, .nova-onboarding-note {
  margin-bottom: 18px;
  padding: 14px 16px;
  color: var(--nova-ink-soft);
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-left: 4px solid var(--nova-primary);
  border-radius: var(--nova-radius);
}
.alert.success, .status-bar.good, .status-bar.mx-good, .alert.good { color: var(--nova-success); background: var(--nova-success-soft); border-color: var(--nova-success-line); border-left-color: var(--nova-success); }
.alert.warning, .status-bar.warning, .alert.notice { color: var(--nova-warning); background: var(--nova-warning-soft); border-color: var(--nova-warning-line); border-left-color: var(--nova-warning); }
.alert.error, .status-bar.error { color: var(--nova-danger); background: var(--nova-danger-soft); border-color: var(--nova-danger-line); border-left-color: var(--nova-danger); }
.notice.success { color: var(--nova-success); background: var(--nova-success-soft); border-color: var(--nova-success-line); }
.notice.error { color: var(--nova-danger); background: var(--nova-danger-soft); border-color: var(--nova-danger-line); }
.page-action-strip { display: flex; align-items: center; justify-content: space-between; }
.page-action-strip-copy { display: flex; min-width: 0; gap: 12px; align-items: center; }
.page-action-icon { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 11px; font-size: 20px; font-weight: 700; }
.page-action-strip strong, .page-action-strip small { display: block; }
.page-action-strip small { margin-top: 2px; color: var(--nova-muted); }
.status-pill, .usage-state, .task-kind, .category-chip, .category-review-summary span {
  display: inline-flex;
  min-height: 26px;
  padding: 4px 9px;
  align-items: center;
  color: var(--nova-ink-soft);
  background: var(--nova-surface-strong);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.status-pill.good, .status-pill.success { color: var(--nova-success); background: var(--nova-success-soft); }
.status-pill.warning { color: var(--nova-warning); background: var(--nova-warning-soft); }
.status-pill.error, .status-pill.danger { color: var(--nova-danger); background: var(--nova-danger-soft); }
.cockpit-progress-bar, .usage-progress, .close-progress, .finance-close-card progress, .coverage-progress, .finance-quality-row progress, .simple-progress progress {
  display: block;
  width: 100%;
  height: 9px;
  overflow: hidden;
  appearance: none;
  background: var(--nova-surface-strong);
  border: 0;
  border-radius: 999px;
}
.cockpit-progress-bar::-webkit-progress-bar, .usage-progress::-webkit-progress-bar, .close-progress::-webkit-progress-bar, .finance-close-card progress::-webkit-progress-bar, .coverage-progress::-webkit-progress-bar, .finance-quality-row progress::-webkit-progress-bar, .simple-progress progress::-webkit-progress-bar { background: var(--nova-surface-strong); border-radius: 999px; }
.cockpit-progress-bar::-webkit-progress-value, .usage-progress::-webkit-progress-value, .close-progress::-webkit-progress-value, .finance-close-card progress::-webkit-progress-value, .coverage-progress::-webkit-progress-value, .finance-quality-row progress::-webkit-progress-value, .simple-progress progress::-webkit-progress-value { background: var(--nova-primary); border-radius: 999px; }
.cockpit-progress-bar::-moz-progress-bar, .usage-progress::-moz-progress-bar, .close-progress::-moz-progress-bar, .finance-close-card progress::-moz-progress-bar, .coverage-progress::-moz-progress-bar, .finance-quality-row progress::-moz-progress-bar, .simple-progress progress::-moz-progress-bar { background: var(--nova-primary); border-radius: 999px; }
.usage-progress.warn::-webkit-progress-value { background: var(--nova-warning); }
.usage-progress.warn::-moz-progress-bar { background: var(--nova-warning); }
.usage-progress.limit::-webkit-progress-value { background: var(--nova-danger); }
.usage-progress.limit::-moz-progress-bar { background: var(--nova-danger); }

/* Tables */
.table-scroll, .table-wrap { width: 100%; overflow: auto; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); -webkit-overflow-scrolling: touch; }
.full-width-card > .table-scroll, .full-width-card > .table-wrap { border: 0; border-radius: 0; }
table { width: 100%; border-collapse: separate; border-spacing: 0; color: var(--nova-ink-soft); font-size: 14px; }
thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  padding: 9px 11px;
  color: var(--nova-muted);
  background: var(--nova-surface-soft);
  border-bottom: 1px solid var(--nova-line);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .025em;
  text-align: left;
  text-transform: none;
  white-space: nowrap;
}
tbody td { padding: 11px; vertical-align: middle; border-bottom: 1px solid var(--nova-line); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: color-mix(in srgb,var(--nova-primary-soft) 44%,transparent); }
td.amount, .amount-cell, .table-amount-cell, .bwa-value { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.wide-table { min-width: 860px; }
.table-primary-cell strong, .table-primary-cell small, .table-date, .table-meta, .import-counts span, .import-counts small { display: block; }
.table-primary-cell strong, .table-date { color: var(--nova-ink); }
.table-primary-cell small, .table-meta, .import-counts small, .payment-detail, .category-state-note { margin-top: 3px; color: var(--nova-muted); }
.table-sort { display: inline-flex; gap: 6px; align-items: center; color: inherit; font-weight: 700; text-decoration: none; }
.table-sort:hover, .table-sort.active { color: var(--nova-primary); }
.table-actions-compact { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.row-edit-link { display: inline-flex; min-height: 36px; gap: 5px; padding: 7px 8px; align-items: center; color: var(--nova-primary); border-radius: 8px; font-weight: 700; text-decoration: none; }
.row-edit-link:hover { background: var(--nova-primary-soft); }
.warning-text { color: var(--nova-warning); }
.inline-delete-form, .download-form { margin: 0; }
.pager, .missing-pager { display: flex; gap: 12px; padding: 14px 18px; align-items: center; justify-content: space-between; border-top: 1px solid var(--nova-line); }
.empty-inline, .empty-state, .nova-empty-state, .missing-empty, .trash-empty-state { padding: 36px 22px; color: var(--nova-muted); text-align: center; }
.empty-inline strong, .empty-state strong, .nova-empty-state strong, .missing-empty strong { display: block; margin-bottom: 4px; color: var(--nova-ink); font-size: 16px; }
.empty-state h2, .trash-empty-state h2 { margin-top: 10px; }
.empty-state p, .trash-empty-state p { max-width: 560px; margin: 6px auto 0; }
.empty-icon { display: grid; width: 44px; height: 44px; margin: 0 auto; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 13px; font-size: 18px; font-weight: 700; }

/* Cockpit */
.cockpit-period-toolbar { display: flex; gap: 16px; margin-bottom: 18px; align-items: center; justify-content: space-between; }
.cockpit-period-switcher { display: flex; gap: 8px; align-items: center; }
.cockpit-month-arrow { display: grid; width: 40px; height: 40px; place-items: center; color: var(--nova-ink-soft); background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 10px; text-decoration: none; }
.cockpit-month-arrow.disabled { opacity: .45; }
.cockpit-focus-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; margin-bottom: 18px; padding: 22px; color: var(--nova-ink); background: var(--nova-surface); border: 1px solid var(--nova-line); border-left: 4px solid var(--nova-primary); border-radius: var(--nova-radius-lg); }
.cockpit-focus-copy { display: grid; gap: 7px; }
.cockpit-progress-line { display: flex; gap: 8px 16px; color: var(--nova-muted); flex-wrap: wrap; }
.cockpit-progress-line strong { color: var(--nova-ink); }
.cockpit-next-action { color: var(--nova-muted); }
.cockpit-next-button { align-self: center; }
.cockpit-key-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.cockpit-key-card { padding: 18px; color: inherit; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); text-decoration: none; }
.cockpit-key-card span, .cockpit-key-card small, .cockpit-key-card strong { display: block; }
.cockpit-key-card span, .cockpit-key-card small { color: var(--nova-muted); }
.cockpit-key-card strong { margin: 6px 0; color: var(--nova-ink); font-size: 26px; font-variant-numeric: tabular-nums; }
.cockpit-key-card { position: relative; transition: border-color var(--nova-transition), transform var(--nova-transition); }
.cockpit-key-card:hover { color: inherit; border-color: color-mix(in srgb,var(--nova-primary) 35%,var(--nova-line)); transform: translateY(-1px); }
.cockpit-key-card.attention { border-left: 4px solid var(--nova-warning); }
.cockpit-key-card.complete { border-left: 4px solid var(--nova-success); }
.cockpit-key-card.progress { border-left: 4px solid var(--nova-primary); }
.cockpit-key-card > i { position: absolute; top: 17px; right: 17px; color: var(--nova-primary); font-style: normal; }
.cockpit-flow { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.cockpit-flow-step, .close-step, .process-step { display: grid; gap: 8px; padding: 15px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.cockpit-flow-step { grid-template-columns: 30px minmax(0,1fr); align-items: start; color: var(--nova-ink-soft); text-decoration: none; }
.cockpit-flow-step:hover { color: var(--nova-ink); border-color: color-mix(in srgb,var(--nova-primary) 35%,var(--nova-line)); }
.cockpit-flow-step strong, .cockpit-flow-step small { display: block; }
.cockpit-flow-step small { margin-top: 3px; color: var(--nova-muted); }
.cockpit-flow-step.complete { border-color: var(--nova-success-line); }
.cockpit-flow-step.complete .cockpit-flow-number { color: var(--nova-success); background: var(--nova-success-soft); }
.cockpit-flow-step.attention { border-color: var(--nova-warning-line); }
.cockpit-flow-step.attention .cockpit-flow-number { color: var(--nova-warning); background: var(--nova-warning-soft); }
.cockpit-flow-step.locked { opacity: .72; }
.cockpit-flow-number, .close-step-number { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 9px; font-weight: 700; }
.close-step.done { border-color: var(--nova-success-line); }
.close-step.done .close-step-number { color: var(--nova-success); background: var(--nova-success-soft); }
.process-step { grid-template-columns: 30px minmax(0,1fr); align-items: center; }
.process-step b { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 9px; }
.cockpit-progress-visual { display: grid; gap: 8px; }
.cockpit-progress-value strong, .cockpit-progress-value span, .cockpit-progress-visual p strong, .cockpit-progress-visual p span { display: block; }
.cockpit-progress-value strong { font-size: 30px; line-height: 1; font-variant-numeric: tabular-nums; }
.cockpit-progress-value span, .cockpit-progress-visual p span { color: var(--nova-muted); font-size: 12px; }
.cockpit-lower-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr); gap: 18px; margin-top: 18px; }
.cockpit-priorities, .cockpit-month-overview { padding: 20px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.nova-close-summary { display: grid; gap: 14px; align-content: start; }
.nova-panel-head { display: flex; gap: 16px; margin-bottom: 12px; align-items: flex-start; justify-content: space-between; }
.nova-panel-head p { margin-top: 4px; color: var(--nova-muted); }
.nova-panel-head > a { font-weight: 700; white-space: nowrap; }
.nova-task-list { display: grid; }
.nova-task-row { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; gap: 11px; padding: 13px 0; align-items: center; color: var(--nova-ink-soft); border-bottom: 1px solid var(--nova-line); text-decoration: none; }
.nova-task-row:last-child { border-bottom: 0; }
.nova-task-row:hover { color: var(--nova-primary); }
.nova-task-index { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 9px; font-weight: 700; }
.nova-task-copy strong, .nova-task-copy small { display: block; }
.nova-task-copy small { margin-top: 2px; color: var(--nova-muted); }
.nova-task-arrow { color: var(--nova-primary); font-size: 18px; }
.nova-summary-lines > div { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.cockpit-freshness { display: inline-flex; gap: 7px; align-items: center; color: var(--nova-muted); font-size: 12px; }
.cockpit-freshness > i { width: 8px; height: 8px; background: var(--nova-success); border-radius: 999px; }
.cockpit-freshness.offline > i { background: var(--nova-warning); }

/* Finance center — detailed and simple views share the same live data. */
.dashboard-toolbar { display: flex; gap: 14px; margin-bottom: 12px; align-items: center; justify-content: space-between; }
.dashboard-toolbar .cockpit-period-switcher form { display: flex; gap: 8px; align-items: end; }
.dashboard-toolbar .cockpit-period-switcher label { min-width: 190px; }
.finance-dashboard, .simple-dashboard { display: grid; gap: 12px; }
.finance-top-grid { display: grid; grid-template-columns: minmax(270px,1fr) minmax(380px,1.35fr) minmax(220px,.72fr); gap: 12px; }
.finance-close-card, .finance-kpi-strip, .finance-system-card, .finance-panel, .simple-next-card, .simple-stat-card {
  min-width: 0;
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-radius: var(--nova-radius-lg);
}
.finance-close-card {
  display: grid;
  min-height: 194px;
  padding: 18px;
  align-content: start;
  color: #102a56;
  background: #eef5ff;
  border-color: #c9dcff;
  border-left: 4px solid #155eef;
}
.finance-close-card h2 { color: #102a56; }
.finance-close-card > span { color: #345b8c; font-size: 12px; font-weight: 700; }
.finance-close-value { display: flex; gap: 10px; margin-top: 8px; align-items: baseline; }
.finance-close-value strong { font-size: 34px; line-height: 1; font-variant-numeric: tabular-nums; }
.finance-close-value small { color: #345b8c; }
.finance-close-card progress { margin: 14px 0 12px; }
.finance-close-next { display: grid; grid-template-columns: 24px minmax(0,1fr) auto; gap: 9px; padding-top: 11px; align-items: center; border-top: 1px solid #c9dcff; }
.finance-close-next > b { display: grid; width: 23px; height: 23px; place-items: center; color: #fff; background: var(--nova-primary); border-radius: 999px; font-size: 11px; }
.finance-close-next strong, .finance-close-next small { display: block; }
.finance-close-next small { color: #345b8c; }
.finance-close-next .primary-button { min-height: 32px; padding: 6px 9px; }
.finance-kpi-strip { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
.finance-kpi { display: grid; min-width: 0; padding: 15px; align-content: center; border-right: 1px solid var(--nova-line); border-bottom: 1px solid var(--nova-line); text-decoration: none; }
.finance-kpi:nth-child(2n) { border-right: 0; }
.finance-kpi:nth-last-child(-n+2) { border-bottom: 0; }
.finance-kpi:hover { color: inherit; background: var(--nova-surface-soft); }
.finance-kpi span, .finance-kpi strong, .finance-kpi small { display: block; }
.finance-kpi span { color: var(--nova-muted); font-size: 12px; }
.finance-kpi strong { margin: 7px 0 9px; color: var(--nova-ink); font-size: 28px; font-variant-numeric: tabular-nums; }
.finance-kpi small { color: var(--nova-muted); }
.finance-kpi small.good { color: var(--nova-success); }
.finance-system-card { padding: 17px; }
.finance-system-card h2 { font-size: 16px; }
.finance-quick-action-list { display: grid; gap: 6px; margin-top: 12px; }
.finance-quick-action-list a { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 8px; min-height: 38px; padding: 5px 7px; align-items: center; color: var(--nova-ink-soft); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 8px; font-size: 11px; text-decoration: none; }
.finance-quick-action-list a:hover { color: var(--nova-primary); border-color: color-mix(in srgb,var(--nova-primary) 34%,var(--nova-line)); }
.finance-quick-action-list a > span { display: grid; width: 26px; height: 26px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 7px; font-size: 15px; }
.finance-quick-action-list b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-system-list { display: grid; gap: 10px; margin-top: 14px; }
.finance-system-list > div { display: grid; grid-template-columns: 8px minmax(0,1fr); gap: 8px; align-items: center; color: var(--nova-ink-soft); font-size: 12px; }
.finance-system-list i { width: 7px; height: 7px; background: var(--nova-accent); border-radius: 999px; }
.finance-system-list i.warning { background: var(--nova-warning); }
.finance-system-time { margin-top: 14px; padding-top: 10px; color: var(--nova-muted); border-top: 1px solid var(--nova-line); font-size: 11px; }
.finance-work-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.9fr); gap: 12px; }
.finance-panel { padding: 16px; }
.finance-panel-head { display: flex; gap: 12px; margin-bottom: 10px; align-items: flex-start; justify-content: space-between; }
.finance-panel-head p { margin-top: 3px; color: var(--nova-muted); font-size: 12px; }
.finance-work-list { display: grid; }
.finance-work-row { display: grid; grid-template-columns: 72px minmax(170px,1.4fr) minmax(120px,.8fr) auto; gap: 12px; min-height: 48px; padding: 9px 0; align-items: center; color: var(--nova-ink-soft); border-bottom: 1px solid var(--nova-line); text-decoration: none; }
.finance-work-row:last-child { border-bottom: 0; }
.finance-work-row:hover { color: var(--nova-primary); }
.finance-work-row strong, .finance-work-row small { display: block; }
.finance-work-row small { margin-top: 2px; color: var(--nova-muted); }
.priority-label { display: inline-flex; gap: 6px; align-items: center; color: var(--nova-muted); font-size: 11px; font-weight: 700; }
.priority-label::before { width: 7px; height: 7px; content: ""; background: var(--nova-muted); border-radius: 999px; }
.priority-label.high::before { background: var(--nova-danger); }
.priority-label.medium::before { background: var(--nova-warning); }
.finance-coverage { display: grid; align-content: start; }
.coverage-value { margin: 5px 0 3px; color: var(--nova-ink); font-size: 30px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.coverage-copy { color: var(--nova-muted); font-size: 12px; }
.coverage-progress { margin: 18px 0 12px; }
.coverage-legend { display: flex; gap: 8px; justify-content: space-between; color: var(--nova-muted); font-size: 11px; }
.finance-bottom-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(230px,.8fr) minmax(240px,.8fr); gap: 12px; }
.finance-process { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; margin-top: 12px; }
.finance-process-step { display: grid; gap: 5px; color: var(--nova-muted); text-decoration: none; }
.finance-process-step b { display: grid; width: 26px; height: 26px; place-items: center; color: var(--nova-muted); background: var(--nova-surface-strong); border: 1px solid var(--nova-line); border-radius: 999px; }
.finance-process-step.complete b { color: #fff; background: var(--nova-primary); border-color: var(--nova-primary); }
.finance-process-step.attention b { color: #fff; background: var(--nova-warning); border-color: var(--nova-warning); }
.finance-process-step strong { color: var(--nova-ink-soft); font-size: 11px; }
.finance-quality-list { display: grid; gap: 10px; margin-top: 12px; }
.finance-quality-row { display: grid; grid-template-columns: minmax(0,1fr) 48px; gap: 10px; align-items: center; }
.finance-quality-row span, .finance-quality-row strong { font-size: 12px; }
.finance-quality-row strong { text-align: right; font-variant-numeric: tabular-nums; }
.finance-quality-row progress { grid-column: 1 / -1; height: 6px; }
.finance-month-lines { display: grid; margin-top: 8px; }
.finance-month-lines > div { display: flex; gap: 10px; padding: 8px 0; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--nova-line); }
.finance-month-lines > div:last-child { border-bottom: 0; }
.deferred-section { content-visibility: auto; contain-intrinsic-size: auto 280px; }

.simple-dashboard { --view-simple-display: grid; }
.simple-next-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; padding: 22px; align-items: center; background: linear-gradient(135deg,#f5f8ff 0%,#eef5ff 100%); border-color: #c9dcff; }
.simple-next-card h2 { margin: 4px 0; font-size: 23px; }
.simple-next-card p { max-width: 720px; color: var(--nova-muted); }
.simple-progress { display: flex; gap: 10px; margin-top: 13px; align-items: center; }
.simple-progress progress { max-width: 360px; flex: 1; }
.simple-progress strong { font-variant-numeric: tabular-nums; }
.simple-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.simple-stat-card { padding: 17px; color: inherit; text-decoration: none; }
.simple-stat-card:hover { color: inherit; border-color: #c9dcff; }
.simple-stat-card span, .simple-stat-card strong, .simple-stat-card small { display: block; }
.simple-stat-card span, .simple-stat-card small { color: var(--nova-muted); }
.simple-stat-card strong { margin: 6px 0; color: var(--nova-ink); font-size: 27px; }
.simple-task-list { display: grid; gap: 8px; }
.simple-task-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 11px; min-height: 54px; padding: 10px 12px; align-items: center; color: var(--nova-ink-soft); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 9px; text-decoration: none; }
.simple-task-row:hover { color: var(--nova-primary); border-color: #c9dcff; }
.simple-task-row > b { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 8px; }
.simple-task-row strong, .simple-task-row small { display: block; }
.simple-task-row small { color: var(--nova-muted); }

/* Tasks, operations and document details */
.task-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin-bottom: 12px; overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.task-stat { position: relative; padding: 16px 18px; color: inherit; background: var(--nova-surface); border-right: 1px solid var(--nova-line); text-decoration: none; }
.task-stat:last-child { border-right: 0; }
.task-stat:hover { color: inherit; background: var(--nova-surface-soft); }
.task-stat.attention::before { position: absolute; inset: 0 auto 0 0; width: 3px; content: ""; background: var(--nova-warning); }
.task-stat span, .task-stat strong, .task-stat small { display: block; }
.task-stat span, .task-stat small { color: var(--nova-muted); }
.task-stat strong { margin: 5px 0; color: var(--nova-ink); font-size: 25px; }
.task-tabs, .upload-tabs, .export-months, .missing-months { display: flex; gap: 5px; max-width: 100%; padding: 4px; overflow-x: auto; background: var(--nova-surface-strong); border-radius: 11px; }
.task-tabs a, .upload-tabs button, .export-months a, .missing-months a { min-height: 38px; padding: 8px 12px; color: var(--nova-muted); background: transparent; border: 0; border-radius: 8px; font-weight: 700; text-decoration: none; white-space: nowrap; cursor: pointer; }
.task-tabs a.active, .upload-tabs button.active, .export-months a.active, .missing-months a.active { color: var(--nova-primary); background: var(--nova-surface); }
.task-filterbar { display: flex; gap: 10px; margin-bottom: 12px; padding: 8px; flex-wrap: wrap; align-items: center; justify-content: space-between; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.task-filterbar .task-tabs { flex: 1; background: transparent; }
.task-search { position: relative; width: min(280px,30vw); }
.task-search input { min-height: 38px; }
.task-priority-filter { min-width: 140px; }
.status-pill.private { color: #6941c6; background: #f4f3ff; }
.amount.positive { color: var(--nova-success); }
.amount.negative { color: var(--nova-ink); }
:root[data-view="simple"] .detail-only-column { display: none !important; }
.view-toolbar, .usage-toolbar { display: flex; gap: 14px; margin-bottom: 16px; align-items: end; justify-content: space-between; flex-wrap: wrap; }
.filter-form { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.document-action-shell { display: grid; gap: 18px; }
.document-hero { display: flex; gap: 20px; padding: 20px; align-items: flex-start; justify-content: space-between; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.document-hero h2 { margin: 4px 0; }
.document-hero p { color: var(--nova-muted); }
.document-hero-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.document-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.document-review-split { display: grid; grid-template-columns: minmax(360px,1.15fr) minmax(360px,.85fr); gap: 18px; min-height: 640px; }
.document-pdf-pane, .document-data-pane { min-width: 0; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); overflow: hidden; }
.document-pdf-stage { min-height: 640px; background: #e8edf4; }
.document-pdf-frame { width: 100%; min-height: 640px; border: 0; }
.document-data-pane { padding: 20px; overflow: auto; }
.document-pdf-help, .pdf-view-controls { padding: 12px 16px; background: var(--nova-surface-soft); border-bottom: 1px solid var(--nova-line); }
.pdf-view-fields { display: grid; gap: 12px; }
.detail-list, .security-detail-list { display: grid; grid-template-columns: minmax(130px,.8fr) minmax(160px,1.2fr); margin: 0; }
.detail-list > div, .security-detail-list > div { display: grid; grid-template-columns: minmax(130px,.8fr) minmax(160px,1.2fr); gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--nova-line); }
.detail-list > div, .security-detail-list > div { grid-column: 1 / -1; }
.detail-list > dt, .detail-list > dd, .security-detail-list > dt, .security-detail-list > dd { padding: 11px 0; border-bottom: 1px solid var(--nova-line); }
.detail-list dt, .security-detail-list dt { color: var(--nova-muted); }
.detail-list dd, .security-detail-list dd { margin: 0; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.allocation-form-row { display: grid; grid-template-columns: minmax(130px,170px) auto; gap: 8px; align-items: end; }
.danger-card, .danger-zone { color: var(--nova-danger); background: var(--nova-danger-soft); border-color: var(--nova-danger-line); }
.bulk-selection-toolbar { position: sticky; z-index: 12; bottom: 16px; display: none; gap: 14px; margin: 14px; padding: 13px 15px; align-items: center; justify-content: space-between; background: #172554; color: #fff; border-radius: var(--nova-radius); box-shadow: 0 12px 30px rgba(15,23,42,.2); }
.bulk-selection-toolbar.has-selection { display: flex; }
.bulk-selection-summary { display: flex; gap: 10px; align-items: center; }
.bulk-selection-icon { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; color: #172554; background: #fff; border-radius: 9px; font-weight: 700; }
.bulk-selection-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.bulk-editor-panel { margin: 16px; padding: 18px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.bulk-editor-header, .bulk-editor-footer { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.icon-close-button, .preview-close { display: inline-grid; min-width: 40px; min-height: 40px; padding: 7px 11px; place-items: center; color: var(--nova-ink-soft); background: var(--nova-surface); border: 1px solid var(--nova-line-strong); border-radius: 9px; font-weight: 700; cursor: pointer; }
.inline-form-error { margin: 12px 0; padding: 11px 13px; color: var(--nova-danger); background: var(--nova-danger-soft); border: 1px solid var(--nova-danger-line); border-radius: 9px; }
.receipt-choice { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.receipt-choice legend { margin-bottom: 4px; color: var(--nova-ink); font-weight: 700; }
.receipt-choice label { display: flex; min-height: 44px; gap: 9px; padding: 10px; align-items: flex-start; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 9px; }
.receipt-choice label span, .receipt-choice label strong, .receipt-choice label small { display: block; }
.receipt-choice label small { color: var(--nova-muted); }
.operations-master-detail { display: grid; grid-template-columns: minmax(0,2.15fr) minmax(280px,.85fr); gap: 12px; align-items: start; }
.operations-list-card { min-width: 0; margin-bottom: 14px; }
.operations-detail-panel { position: sticky; top: calc(var(--nova-topbar-height) + 12px); min-width: 0; padding: 18px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.operations-detail-head { padding-bottom: 14px; border-bottom: 1px solid var(--nova-line); }
.operations-detail-head h2 { margin-top: 4px; overflow-wrap: anywhere; }
.operations-detail-head p { margin-top: 4px; color: var(--nova-muted); }
.detail-status-row { display: flex; gap: 6px; margin: 14px 0 6px; flex-wrap: wrap; }
.compact-detail-list { grid-template-columns: minmax(105px,.8fr) minmax(130px,1.2fr); }
.compact-detail-list > dt, .compact-detail-list > dd { padding: 8px 0; font-size: 12px; }
.detail-reference { max-width: 220px; white-space: normal; }
.operations-detail-actions { display: grid; gap: 8px; margin-top: 16px; }
.operations-detail-actions > * { width: 100%; justify-content: center; text-align: center; }
.document-list-table { min-width: 760px; }
.bank-list-table { min-width: 790px; }
.document-list-table th:nth-child(1) { width: 34%; }
.document-list-table th:nth-child(2) { width: 21%; }
.document-list-table th:nth-child(3) { width: 29%; }
.bank-list-table th:nth-child(1) { width: 44%; }
.bank-list-table th:nth-child(2) { width: 18%; }
.bank-list-table th:nth-child(3) { width: 23%; }
.document-list-row.is-selected td, .bank-transaction-row.is-selected td { background: var(--nova-primary-soft); }
.document-list-row.is-selected td:first-child, .bank-transaction-row.is-selected td:first-child { box-shadow: inset 3px 0 0 var(--nova-primary); }
.document-combined-status { min-width: 180px; }
.document-combined-status .status-pill { margin: 0 4px 4px 0; }
.document-combined-status > small { display: block; margin-top: 3px; color: var(--nova-muted); }
.bank-booking-line { display: flex; gap: 9px; align-items: flex-start; }
.bank-booking-line > div { min-width: 0; }
.bank-row-select { display: inline-flex; min-height: 28px; align-items: center; }
.bank-select-all { display: inline-flex; margin-right: 8px; vertical-align: middle; }
.table-actions-compact .small-button.active { color: var(--nova-primary); background: var(--nova-primary-soft); border-color: color-mix(in srgb,var(--nova-primary) 35%,var(--nova-line)); }
.bank-status-cell, .document-recognition-cell, .document-state-cell { min-width: 150px; }
.bank-status-cell > small, .document-recognition-cell > small, .document-state-cell > small { display: block; margin-top: 5px; color: var(--nova-muted); }
.reference-preview { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; }
.category-label { font-weight: 700; }
.category-readonly-card { background: var(--nova-surface-soft); }
.category-amount-warning { margin-top: 14px; }
.category-create-grid { grid-template-columns: 1.2fr 1fr 1fr 1fr auto; align-items: end; }
.category-chip-list, .category-review-summary { display: flex; gap: 8px; margin: 12px 0; flex-wrap: wrap; }
.category-position-description { min-width: 250px; white-space: normal; }
.category-position-table select { min-width: 230px; }
.category-confidence { font-weight: 700; white-space: nowrap; }
.reference-cell { min-width: 260px; white-space: normal; }
.suggestion-reasons { min-width: 240px; color: var(--nova-ink-soft); }
.suggestion-explanation > summary { color: var(--nova-primary); font-weight: 700; cursor: pointer; }
.suggestion-explanation[open] > summary { margin-bottom: 18px; }
.remaining-good { color: var(--nova-success); font-weight: 700; }
.remaining-open { color: var(--nova-warning); font-weight: 700; }
.bank-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.bank-summary-card { position: relative; padding: 15px 16px; color: inherit; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); text-decoration: none; }
.bank-summary-card:hover { color: inherit; border-color: #c9dcff; }
.bank-summary-card span, .bank-summary-card strong, .bank-summary-card small { display: block; }
.bank-summary-card span, .bank-summary-card small { color: var(--nova-muted); }
.bank-summary-card strong { margin: 5px 0; color: var(--nova-ink); font-size: 25px; font-variant-numeric: tabular-nums; }
.bank-summary-card.open { border-left: 3px solid var(--nova-warning); }
.bank-summary-card.matched { border-left: 3px solid var(--nova-accent); }
.bank-summary-card.private { border-left: 3px solid #7f56d9; }
.review-page-grid { display: grid; grid-template-columns: minmax(360px,1.05fr) minmax(360px,.95fr); gap: 14px; align-items: start; }
.review-page-grid > .review-header { grid-column: 1 / -1; margin-bottom: 0; }
.review-summary-strip { display: grid; grid-template-columns: 1.4fr 1fr .75fr .85fr .85fr; grid-column: 1 / -1; overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.review-summary-strip > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--nova-line); }
.review-summary-strip > div:last-child { border-right: 0; }
.review-summary-strip span, .review-summary-strip strong { display: block; }
.review-summary-strip span { margin-bottom: 4px; color: var(--nova-muted); font-size: 11px; }
.review-summary-strip strong { overflow: hidden; color: var(--nova-ink); text-overflow: ellipsis; white-space: nowrap; }
.review-page-grid > .review-document-preview { position: sticky; top: calc(var(--nova-topbar-height) + 12px); grid-column: 1; grid-row: 3 / span 8; min-width: 0; margin: 0; padding: 0; overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.review-document-toolbar { display: flex; min-height: 44px; gap: 10px; padding: 8px 10px; align-items: center; justify-content: space-between; color: #e9eef6; background: #111820; }
.review-document-toolbar strong { color: #fff; font-size: 12px; }
.review-document-toolbar a { color: #dce6f4; font-size: 12px; }
.review-document-preview iframe { width: 100%; min-height: 680px; border: 0; background: #e8edf4; }
.review-page-grid > .detail-grid, .review-page-grid > .form-card, .review-page-grid > .data-card:not(.review-header), .review-page-grid > .alert { grid-column: 2; margin-bottom: 0; }
.review-page-grid > .detail-grid { grid-template-columns: 1fr; gap: 12px; }
.review-page-grid > .detail-grid > section { margin-bottom: 0; }
.review-page-grid > .form-card { padding: 18px; }

/* Uploads, bank and processing */
.upload-panel { display: none; }
.upload-panel.active { display: block; }
.stack-layout, .bank-upload-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 18px; }
.stack-drop, .bank-drop {
  display: block;
  padding: 28px;
  color: var(--nova-ink-soft);
  background: var(--nova-surface-soft);
  border: 2px dashed var(--nova-line-strong);
  border-radius: var(--nova-radius);
  text-align: center;
  cursor: pointer;
  transition: border-color var(--nova-transition), background var(--nova-transition);
}
.stack-drop:hover, .bank-drop:hover { background: var(--nova-primary-soft); border-color: color-mix(in srgb,var(--nova-primary) 42%,var(--nova-line)); }
.stack-drop strong, .stack-drop span, .bank-drop strong, .bank-drop span { display: block; }
.stack-drop strong, .bank-drop strong { color: var(--nova-ink); font-size: 16px; }
.stack-drop span, .bank-drop span { margin-top: 5px; color: var(--nova-muted); font-size: 13px; }
.stack-drop input, .bank-drop input { margin-top: 16px; }
.stack-note, .bank-guide { display: grid; gap: 2px; }
.stack-note > div, .bank-guide-row { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 11px; padding: 11px 0; align-items: start; border-bottom: 1px solid var(--nova-line); }
.stack-note > div:last-child, .bank-guide-row:last-child { border-bottom: 0; }
.stack-note b, .bank-guide-row b { display: grid; width: 28px; height: 28px; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 8px; }
.stack-note span, .bank-guide-row span { display: block; margin-top: 3px; color: var(--nova-muted); font-size: 13px; }
.stack-status, .coverage, .ignored-pages { margin-top: 14px; padding: 13px 14px; color: var(--nova-muted); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.stack-status.success, .coverage.good { color: var(--nova-success); background: var(--nova-success-soft); border-color: var(--nova-success-line); }
.stack-status.error, .coverage.bad { color: var(--nova-danger); background: var(--nova-danger-soft); border-color: var(--nova-danger-line); }
.stack-manual-button { margin-top: 10px; }
.stack-status, .ignored-pages, .split-workspace, .import-results { display: none; }
.stack-status.show, .ignored-pages.show, .split-workspace.show, .import-results.show { display: block; }
.split-grid { grid-template-columns: 1fr; }
.split-card { display: grid; grid-template-columns: minmax(210px,1fr) 120px 120px auto; gap: 12px; padding: 16px; align-items: end; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.split-card-actions { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.split-title strong, .split-title span { display: block; }
.split-title span { margin-top: 4px; color: var(--nova-muted); font-size: 13px; }
.confirm-row, .coverage-actions { display: flex; gap: 10px; margin-top: 14px; align-items: center; justify-content: flex-end; }
.preview-modal { position: fixed; z-index: 1000; inset: 0; display: none; padding: 24px; background: rgba(15,23,42,.72); }
.preview-modal.show { display: flex; flex-direction: column; }
.preview-head { display: flex; padding: 11px 14px; align-items: center; justify-content: space-between; background: var(--nova-surface); border-radius: 12px 12px 0 0; }
.preview-frame { width: 100%; min-height: 0; flex: 1; background: var(--nova-surface); border: 0; border-radius: 0 0 12px 12px; }
.bank-result-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.bank-result { margin-bottom: 18px; }
.bank-file { margin-top: 12px; padding: 12px 14px; color: var(--nova-ink-soft); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); overflow-wrap: anywhere; }
.bank-submit { width: 100%; margin-top: 14px; }
.bank-result-actions { margin-top: 14px; }
.process-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.close-steps { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; }

/* Month, BWA, usage, missing documents and exports */
.month-picker { display: flex; gap: 8px; overflow-x: auto; }
.close-progress { margin-bottom: 18px; }
.month-rematch-form, .month-info { margin-top: 16px; }
.month-close-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.month-close-grid .close-steps { grid-template-columns: 1fr; }
.month-close-main { overflow: hidden; }
.close-weight-legend { display: grid; grid-template-columns: minmax(0,9fr) minmax(130px,1fr); gap: 9px; margin: 0 0 16px; }
.close-weight-legend > span { display: flex; min-height: 46px; gap: 10px; padding: 10px 12px; align-items: center; justify-content: space-between; color: var(--nova-muted); background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 9px; font-size: 12px; }
.close-weight-legend b { color: var(--nova-ink); white-space: nowrap; }
.weighted-close-steps .close-step { grid-template-columns: 32px minmax(0,1fr) auto; gap: 13px; align-items: center; }
.weighted-close-steps .close-step h3 { margin: 3px 0; font-size: 15px; }
.weighted-close-steps .close-step p { color: var(--nova-muted); font-size: 12px; }
.weighted-close-steps .close-step.attention { background: var(--nova-warning-soft); border-color: var(--nova-warning-line); }
.weighted-close-steps .close-step.attention .close-step-number { color: var(--nova-warning); background: var(--nova-surface); }
.step-weight { color: var(--nova-muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.month-select-card { align-self: start; }
.month-select-card form { margin-top: 14px; }
.month-select-card .info-box { margin-top: 16px; }
.bwa-table td:last-child, .bwa-table th:last-child { text-align: right; }
.bwa-summary { grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 18px; }
.bwa-value { padding: 17px 18px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.bwa-value span, .bwa-value strong { display: block; }
.bwa-value span { color: var(--nova-muted); font-size: 13px; }
.bwa-value strong { margin-top: 7px; font-size: 24px; font-variant-numeric: tabular-nums; }
.bwa-value.result { border-left: 4px solid var(--nova-primary); }
.bwa-positive, .bwa-table .positive { color: var(--nova-success); }
.bwa-negative, .bwa-table .negative { color: var(--nova-danger); }
.bwa-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.usage-metrics, .missing-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.month-picker a { display: inline-flex; min-height: 40px; padding: 8px 12px; align-items: center; color: var(--nova-ink-soft); background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 9px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.month-picker a:hover, .month-picker a.active { color: var(--nova-primary); background: var(--nova-primary-soft); border-color: color-mix(in srgb,var(--nova-primary) 32%,var(--nova-line)); }
.bwa-table tr.subtotal td { font-weight: 700; background: var(--nova-surface-soft); }
.bwa-table tr.result-row td { color: var(--nova-ink); background: var(--nova-primary-soft); border-top: 2px solid var(--nova-primary); font-weight: 800; }
.finding { border-left: 4px solid var(--nova-line-strong); }
.finding h3 + p { margin-top: 4px; color: var(--nova-muted); }
.finding.high { padding-left: 12px; border-left-color: var(--nova-danger); }
.finding.medium { padding-left: 12px; border-left-color: var(--nova-warning); }
.finding.low { padding-left: 12px; border-left-color: var(--nova-success); }
.usage-groups, .missing-shell { display: grid; gap: 18px; }
.usage-banner { border-left: 4px solid var(--nova-primary); }
.usage-state.partial { color: var(--nova-warning); background: var(--nova-warning-soft); }
.usage-state.planned { color: var(--nova-muted); }
.missing-period-card, .missing-filter-card, .missing-results-card { padding: 18px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.missing-results-card { padding: 0; overflow: hidden; }
.missing-results-head { padding: 18px 20px; border-bottom: 1px solid var(--nova-line); }
.missing-period-copy strong, .missing-period-copy span { display: block; }
.missing-period-copy span, .missing-sort-note { color: var(--nova-muted); font-size: 13px; }
.missing-sort-arrow { color: var(--nova-primary); }
.missing-type { font-weight: 600; }
.missing-table thead th { padding: 0; }
.missing-table thead th a { display: flex; gap: 9px; padding: 11px 13px; align-items: center; justify-content: space-between; color: inherit; text-decoration: none; }
.missing-reference, .missing-remark { min-width: 220px; white-space: normal; }
.export-head { align-items: center; }
.export-history-status { white-space: nowrap; }
.export-month-picker { max-width: 360px; margin: 16px 0; }
.export-choice-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
.export-choice-cards legend { grid-column: 1 / -1; }
.export-choice-cards > label { position: relative; display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 11px; min-height: 96px; padding: 15px; align-items: start; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); cursor: pointer; }
.export-choice-cards > label:has(input:checked) { background: var(--nova-primary-soft); border-color: var(--nova-primary); box-shadow: inset 0 0 0 1px var(--nova-primary); }
.export-choice-cards input { min-height: 18px; margin-top: 2px; }
.export-choice-cards strong, .export-choice-cards small { display: block; }
.export-choice-cards small { margin-top: 5px; color: var(--nova-muted); }
.export-submit-row { display: flex; gap: 16px; margin-top: 16px; padding: 14px; align-items: center; justify-content: space-between; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.export-submit-row strong, .export-submit-row small { display: block; }
.export-submit-row small { color: var(--nova-muted); }
.compact-period-picker { display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.compact-period-picker form { min-width: min(100%,280px); }
.missing-results-actions { justify-content: flex-end; }
.missing-table td small { display: block; max-width: 520px; margin-top: 3px; overflow: hidden; color: var(--nova-muted); text-overflow: ellipsis; white-space: nowrap; }
.suggestion-table td small { display: block; max-width: 440px; margin-top: 3px; overflow: hidden; color: var(--nova-muted); text-overflow: ellipsis; white-space: nowrap; }
.result-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; margin-bottom: 18px; padding: 20px; background: var(--nova-success-soft); border: 1px solid var(--nova-success-line); border-radius: var(--nova-radius-lg); }
.result-card p { margin-top: 7px; }
.result-card .primary-button { margin-top: 14px; }
.result-icon { display: grid; width: 44px; height: 44px; place-items: center; color: var(--nova-success); background: var(--nova-surface); border-radius: 12px; font-weight: 800; }

/* Billing, users, integrations, account and security */
.billing-plan { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr); gap: 18px; align-items: stretch; }
.billing-plan > .data-card { margin-bottom: 0; }
.billing-fact { padding: 13px 14px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.billing-fact span, .billing-fact strong { display: block; }
.billing-fact span { color: var(--nova-muted); font-size: 12px; }
.billing-fact strong { margin-top: 4px; }
.collector-note { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.billing-price { font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }
.role-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.role-grid > div { display: grid; gap: 8px; padding: 15px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.role-grid > div > span { color: var(--nova-muted); }
.role-grid > div > .small-button { align-self: end; margin-top: 4px; }
.integration-details, .integration-steps, .session-list, .recovery-grid { display: grid; gap: 12px; }
.integration-details > div { padding: 12px 13px; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.integration-details > div > span, .integration-details > div > strong { display: block; }
.integration-details > div > span { color: var(--nova-muted); font-size: 12px; }
.integration-details > div > strong { margin-top: 4px; overflow-wrap: anywhere; }
.integration-actions { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.integration-email-card, .security-columns { margin-top: 18px; }
.session-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(140px,.5fr) auto; gap: 16px; padding: 14px 0; align-items: center; border-bottom: 1px solid var(--nova-line); }
.session-row:last-child { border-bottom: 0; }
.account-grid .wide-card { grid-column: 1 / -1; }
.account-summary { display: flex; gap: 18px; align-items: center; justify-content: space-between; }
.account-summary > div { min-width: 0; }
.account-summary > div > span, .account-summary > div > strong { display: block; overflow-wrap: anywhere; }
.account-summary > div > strong { margin: 4px 0 2px; font-size: 21px; }
.secret-box { padding: 13px; overflow-wrap: anywhere; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.invite-link-box input[readonly] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.qr-box { display: grid; max-width: 240px; padding: 16px; place-items: center; background: #fff; border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.technical-settings { display: grid; gap: 14px; }
.team-help, .integration-help { padding: 0; overflow: hidden; }
.team-help > summary, .integration-help > summary { display: flex; min-height: 54px; gap: 14px; padding: 14px 17px; align-items: center; justify-content: space-between; list-style: none; cursor: pointer; }
.team-help > summary::-webkit-details-marker, .integration-help > summary::-webkit-details-marker { display: none; }
.team-help > summary span, .integration-help > summary span { color: var(--nova-link); font-size: 12px; font-weight: 700; }
.team-help-body, .integration-help-body { padding: 17px; border-top: 1px solid var(--nova-line); }

/* Revenue */
.revenue-overview-head { display: flex; gap: 20px; align-items: center; justify-content: space-between; }
.revenue-overview-head p { margin-top: 4px; color: var(--nova-muted); }
.revenue-overview-head form { min-width: min(100%,260px); }
.revenue-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.revenue-kpi { display: grid; gap: 5px; min-height: 108px; padding: 17px; align-content: center; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.revenue-kpi.primary { background: var(--nova-primary-soft); border-color: var(--nova-primary-line); border-left: 4px solid var(--nova-primary); }
.revenue-kpi span { color: var(--nova-muted); font-size: 12px; font-weight: 700; }
.revenue-kpi strong { color: var(--nova-ink); font-size: 25px; font-variant-numeric: tabular-nums; }
.revenue-actions { display: grid; gap: 9px; margin-bottom: 18px; }
.revenue-upload-field small { display: block; margin-top: 5px; color: var(--nova-muted); }
.revenue-gross { white-space: nowrap; }

/* Trash */
.trash-overview-card { display: flex; gap: 16px; margin-bottom: 18px; padding: 18px 20px; align-items: center; justify-content: space-between; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); }
.trash-overview-summary { display: flex; min-width: 0; gap: 15px; align-items: center; }
.trash-overview-summary p { margin-top: 4px; color: var(--nova-muted); }
.trash-count { display: block; color: var(--nova-ink); font-size: 26px; font-weight: 700; }
.trash-search-form { display: flex; gap: 9px; margin: 0; align-items: end; }
.trash-item-card { margin-bottom: 12px; padding: 18px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
.trash-item-header { display: flex; gap: 16px; align-items: center; justify-content: space-between; list-style: none; cursor: pointer; }
.trash-item-header::-webkit-details-marker { display: none; }
.trash-item-header:hover h2 { color: var(--nova-primary); }
.trash-item-body { padding-top: 4px; border-top: 1px solid transparent; }
.trash-item-card[open] .trash-item-body { margin-top: 14px; border-top-color: var(--nova-line); }
.trash-detail-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.trash-detail span, .trash-detail strong { display: block; }
.trash-detail span { color: var(--nova-muted); font-size: 12px; }
.trash-item-actions { display: flex; gap: 9px; margin-top: 16px; align-items: center; flex-wrap: wrap; }
.trash-delete-panel { margin-top: 16px; padding: 16px; color: var(--nova-danger); background: var(--nova-danger-soft); border: 1px solid var(--nova-danger-line); border-radius: var(--nova-radius); }
.trash-delete-panel > summary { font-weight: 700; cursor: pointer; }
.trash-delete-content { display: grid; gap: 14px; margin-top: 14px; }
.trash-delete-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.trash-delete-note, .trash-delete-form > button { grid-column: 1 / -1; }

/* Authentication and public setup */
.auth-body, .setup-body { display: grid; min-height: 100vh; padding: 28px; place-items: center; background: var(--nova-bg); }
.auth-card { width: min(100%, 480px); }
.setup-card { width: min(100%, 980px); }
.setup-card.compact-setup { width: min(100%, 480px); }
.auth-card, .setup-card { padding: 30px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 18px; box-shadow: 0 20px 55px rgba(15,23,42,.1); }
.auth-brand { display: flex; gap: 14px; margin-bottom: 24px; align-items: center; }
.auth-logo { width: 110px; }
.auth-mark { width: 46px; height: 46px; }
.auth-brand-copy strong, .auth-brand-copy span { display: block; }
.auth-brand-copy span { color: var(--nova-muted); font-size: 13px; }
.auth-card h1, .setup-card h1 { margin-bottom: 7px; }
.auth-card > p, .setup-card > p { margin-bottom: 20px; color: var(--nova-muted); }
.auth-card form, .setup-card form { display: grid; gap: 14px; }
.setup-card:not(.compact-setup) > form { grid-template-columns: repeat(2,minmax(0,1fr)); }
.setup-card:not(.compact-setup) > form > h2, .setup-card:not(.compact-setup) > form > p, .setup-card:not(.compact-setup) > form > .form-grid { grid-column: 1 / -1; }
.auth-card .primary-button, .setup-card .primary-button { width: 100%; }
.auth-secondary { margin-top: 18px; color: var(--nova-muted); text-align: center; }
.auth-security-note { display: grid; gap: 4px; margin-top: 18px; padding: 12px; color: var(--nova-muted); background: var(--nova-surface-soft); border-radius: var(--nova-radius); font-size: 12px; }
.auth-security-note strong { color: var(--nova-ink); }
.otp-fieldset { min-width: 0; padding: 0; border: 0; }
.otp-fieldset legend { margin-bottom: 8px; color: var(--nova-ink); font-size: 13px; font-weight: 700; }
.otp-fieldset > small { display: block; margin-top: 8px; color: var(--nova-muted); font-size: 12px; }
.otp-boxes { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.otp-boxes input {
  min-width: 0;
  height: 54px;
  padding: 6px !important;
  text-align: center;
  font-size: 24px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.back-link { display: inline-flex; margin-bottom: 16px; font-weight: 700; text-decoration: none; }

/* Dialogs and loading */
.buno-confirm-dialog { width: min(92vw,520px); padding: 24px; color: var(--nova-ink); background: var(--nova-surface); border: 0; border-radius: 16px; box-shadow: 0 24px 70px rgba(15,23,42,.26); }
.buno-confirm-dialog::backdrop { background: rgba(15,23,42,.58); }
.buno-confirm-icon { display: grid; width: 42px; height: 42px; margin-bottom: 14px; place-items: center; color: var(--nova-warning); background: var(--nova-warning-soft); border-radius: 12px; font-weight: 700; }
.buno-confirm-copy p { margin-top: 8px; color: var(--nova-muted); }
.buno-confirm-actions { display: flex; gap: 10px; margin-top: 20px; justify-content: flex-end; }
.page-loading-bar { position: fixed; z-index: 10002; top: 0; right: 0; left: 0; height: 3px; overflow: hidden; background: transparent; }
.page-loading-bar::after { display: block; width: 34%; height: 100%; content: ""; background: var(--nova-primary); transform: translateX(-110%); }
.page-loading-bar.is-loading::after { animation: buno-loading 1s ease-in-out infinite; }
@keyframes buno-loading { 0% { transform: translateX(-110%); } 55%,100% { transform: translateX(320%); } }

/* Bewährte Workflows mit der stärkeren BUNO-Signatur aus Update 19.2 */
.buno-card {
  color: inherit;
  background: var(--nova-surface);
  border: 1px solid var(--nova-line);
  border-radius: var(--nova-radius-lg);
  box-shadow: var(--nova-shadow-sm);
}
.buno-card-head { display: flex; gap: 12px; padding: 16px 18px 0; align-items: flex-start; }
.buno-card-head h2 { font-size: 17px; }
.buno-card-head p { margin-top: 3px; color: var(--nova-muted); font-size: 12.5px; }
.buno-card-head > a { margin-left: auto; flex: none; font-size: 12.5px; font-weight: 700; text-decoration: none; }
.buno-num { font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.buno-eyebrow { display: block; color: var(--nova-muted); font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

.buno-command-bar {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.buno-month-control { display: inline-flex; padding: 4px; gap: 2px; align-items: center; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 999px; box-shadow: var(--nova-shadow-sm); }
.buno-month-control > a, .buno-month-control > span { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-muted); border-radius: 999px; text-decoration: none; }
.buno-month-control > a:hover { color: var(--nova-ink); background: var(--nova-surface-strong); }
.buno-month-control > span { opacity: .35; }
.buno-month-control form { display: flex; gap: 6px; align-items: center; }
.buno-month-control select { min-height: 32px; padding: 4px 28px 4px 9px; border: 0; background-color: transparent; font-weight: 750; }
.buno-data-state { display: inline-flex; gap: 7px; align-items: center; color: var(--nova-muted); font-size: 12px; font-weight: 650; }
.buno-data-state i { width: 7px; height: 7px; background: var(--nova-brand-teal); border-radius: 50%; box-shadow: 0 0 0 3px var(--nova-accent-soft); }
.buno-data-state.offline i { background: var(--nova-warning); box-shadow: 0 0 0 3px var(--nova-warning-soft); }
.buno-command-actions { margin-left: auto; }

.buno-action-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(245px,.45fr);
  gap: 24px;
  margin-bottom: 13px;
  padding: 22px;
  overflow: hidden;
  align-items: center;
  background:
    radial-gradient(700px 260px at 95% -80%, color-mix(in srgb,var(--nova-brand-teal) 22%,transparent), transparent 72%),
    linear-gradient(145deg, color-mix(in srgb,var(--nova-primary) 8%,var(--nova-surface)), var(--nova-surface) 60%);
  border: 1px solid var(--nova-primary-line);
  border-left: 4px solid var(--nova-primary);
  border-radius: 18px;
  box-shadow: var(--nova-shadow);
}
.buno-action-hero h2 { margin: 6px 0 7px; font-size: clamp(22px,2.2vw,29px); }
.buno-action-hero p { max-width: 66ch; color: var(--nova-ink-soft); }
.buno-action-side { display: grid; gap: 10px; }
.buno-action-side .primary-button, .buno-action-side .secondary-button { width: 100%; justify-content: center; }
.buno-resolution { display: grid; gap: 7px; margin-top: 15px; max-width: 600px; }
.buno-resolution-head { display: flex; gap: 10px; align-items: baseline; color: var(--nova-muted); font-size: 12px; }
.buno-resolution-head strong { margin-left: auto; color: var(--nova-ink); }
.buno-resolution-track { width: 100%; height: 8px; overflow: hidden; appearance: none; border: 0; background: var(--nova-surface-strong); border-radius: 999px; }
.buno-resolution-track::-webkit-progress-bar { background: var(--nova-surface-strong); border-radius: 999px; }
.buno-resolution-track::-webkit-progress-value { background: linear-gradient(90deg,var(--nova-primary),var(--nova-brand-teal)); border-radius: 999px; }
.buno-resolution-track::-moz-progress-bar { background: linear-gradient(90deg,var(--nova-primary),var(--nova-brand-teal)); border-radius: 999px; }

.buno-kpis { display: grid; gap: 11px; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 13px; }
.buno-kpis.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.buno-kpi { position: relative; display: block; padding: 15px 16px; color: inherit; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); box-shadow: var(--nova-shadow-sm); text-decoration: none; transition: transform var(--nova-transition), border-color var(--nova-transition), box-shadow var(--nova-transition); }
.buno-kpi:hover { color: inherit; transform: translateY(-2px); border-color: color-mix(in srgb,var(--nova-primary) 35%,var(--nova-line)); box-shadow: var(--nova-shadow); }
.buno-kpi.attention { border-left: 3px solid var(--nova-warning); }
.buno-kpi.good { border-left: 3px solid var(--nova-brand-teal); }
.buno-kpi > span, .buno-kpi > small { display: block; }
.buno-kpi > span { color: var(--nova-muted); font-size: 12.5px; font-weight: 650; }
.buno-kpi > strong { display: block; margin: 7px 0 3px; color: var(--nova-ink); font-size: clamp(24px,2.3vw,31px); font-weight: 800; }
.buno-kpi > strong small { color: var(--nova-muted); font-size: 13px; font-weight: 650; }
.buno-kpi > small { color: var(--nova-muted); }
.buno-dashboard-grid { display: grid; gap: 13px; grid-template-columns: minmax(0,1.55fr) minmax(280px,.75fr); }
.buno-tasklist { margin-top: 11px; }
.buno-task { display: flex; gap: 12px; padding: 12px 18px; align-items: center; color: inherit; border-top: 1px solid var(--nova-line); text-decoration: none; }
.buno-task:first-child { border-top: 0; }
.buno-task:hover { color: inherit; background: var(--nova-surface-soft); }
.buno-task > i { width: 4px; flex: none; align-self: stretch; background: var(--nova-muted); border-radius: 999px; }
.buno-task > i.high { background: var(--nova-danger); }
.buno-task > i.medium { background: var(--nova-warning); }
.buno-task-body { flex: 1; min-width: 0; }
.buno-task-body strong, .buno-task-body small { display: block; }
.buno-task-body small { margin-top: 2px; color: var(--nova-muted); }
.buno-task-go { flex: none; color: var(--nova-link); font-size: 12.5px; font-weight: 750; }
.buno-quick-stack { display: grid; gap: 9px; padding: 14px 18px 18px; }
.buno-quick-stack a { display: flex; gap: 10px; padding: 10px 11px; align-items: center; color: inherit; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 10px; font-weight: 650; text-decoration: none; }
.buno-quick-stack a:hover { color: var(--nova-link); border-color: var(--nova-primary-line); }
.buno-quick-stack a span { margin-left: auto; color: var(--nova-link); }

.buno-filterbar { display: flex; gap: 10px; margin-bottom: 12px; align-items: center; flex-wrap: wrap; }
.buno-chips { display: inline-flex; gap: 4px; padding: 4px; overflow-x: auto; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 13px; box-shadow: var(--nova-shadow-sm); }
.buno-chip { display: inline-flex; gap: 7px; padding: 6px 11px; align-items: center; color: var(--nova-muted); border-radius: 9px; font-size: 12.5px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.buno-chip u { padding: 1px 6px; color: var(--nova-muted); background: var(--nova-surface-strong); border-radius: 999px; font-size: 11px; font-weight: 800; text-decoration: none; }
.buno-chip:hover { color: var(--nova-ink); background: var(--nova-surface-soft); }
.buno-chip.active { color: #fff; background: var(--nova-primary); }
.buno-chip.active u { color: inherit; background: rgba(255,255,255,.22); }
.buno-filterbar .filter-form { margin: 0; }
.buno-modeswitch { display: inline-flex; margin-left: auto; padding: 3px; gap: 2px; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 999px; box-shadow: var(--nova-shadow-sm); }
.buno-modeswitch a { padding: 5px 13px; color: var(--nova-muted); border-radius: 999px; font-size: 12.5px; font-weight: 750; text-decoration: none; }
.buno-modeswitch a.active { color: var(--nova-ink); background: var(--nova-surface-strong); }

.buno-inbox { display: grid; gap: 13px; grid-template-columns: minmax(315px,410px) minmax(0,1fr); align-items: start; }
.buno-inbox-list { overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); box-shadow: var(--nova-shadow-sm); }
.buno-inbox-head { display: flex; gap: 9px; padding: 10px 14px; align-items: center; color: var(--nova-muted); background: var(--nova-surface-soft); border-bottom: 1px solid var(--nova-line); font-size: 12.5px; }
.buno-inbox-head strong { color: var(--nova-ink); }
.buno-inbox-head .right { margin-left: auto; }
.buno-inbox-scroll { max-height: min(660px,72vh); overflow-y: auto; scrollbar-width: thin; }
.buno-tx { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr) auto; width: 100%; gap: 10px; padding: 11px 14px; align-items: center; color: inherit; background: transparent; border: 0; border-bottom: 1px solid var(--nova-line); text-align: left; text-decoration: none; cursor: pointer; }
.buno-tx:hover { color: inherit; background: var(--nova-surface-soft); }
.buno-tx[aria-current="page"] { background: var(--nova-primary-soft); }
.buno-tx[aria-current="page"]::before { position: absolute; inset: 0 auto 0 0; width: 3px; content: ""; background: var(--nova-primary); }
.buno-tx-mark { width: 9px; height: 9px; background: var(--nova-warning); border-radius: 50%; }
.buno-tx-mark.success { background: var(--nova-success); }
.buno-tx-mark.private { background: #7f56d9; }
.buno-tx-main { min-width: 0; }
.buno-tx-main strong, .buno-tx-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.buno-tx-main strong { font-size: 13.5px; }
.buno-tx-main small { color: var(--nova-muted); }
.buno-tx-amount { flex: none; text-align: right; }
.buno-tx-amount b, .buno-tx-amount small { display: block; }
.buno-tx-amount b { color: var(--nova-ink); font-size: 14px; font-weight: 800; }
.buno-tx-amount b.positive { color: var(--nova-success); }
.buno-tx-amount small { color: var(--nova-muted); font-size: 11px; }
.buno-detail { position: sticky; top: 74px; overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); box-shadow: var(--nova-shadow-sm); }
.buno-detail-head { padding: 18px 20px 16px; background: linear-gradient(155deg,color-mix(in srgb,var(--nova-primary) 7%,var(--nova-surface)),var(--nova-surface)); border-bottom: 1px solid var(--nova-line); }
.buno-detail-amount { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.buno-detail-amount > b { font-size: 30px; font-weight: 850; }
.buno-detail-amount > b.positive { color: var(--nova-success); }
.buno-detail-head h2 { margin: 9px 0 3px; font-size: 19px; }
.buno-detail-ref { color: var(--nova-muted); font-size: 12.5px; overflow-wrap: anywhere; }
.buno-detail-meta { display: flex; gap: 18px; margin-top: 12px; flex-wrap: wrap; }
.buno-detail-meta span, .buno-detail-meta b { display: block; }
.buno-detail-meta span { color: var(--nova-muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.buno-detail-meta b { margin-top: 2px; font-size: 12.5px; }
.buno-detail-body { padding: 16px 20px 18px; }
.buno-section-label { display: flex; gap: 9px; margin: 1px 0 10px; align-items: center; color: var(--nova-muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.buno-section-label::after { height: 1px; flex: 1; content: ""; background: var(--nova-line); }
.buno-sug { display: flex; gap: 12px; margin-bottom: 9px; padding: 11px 12px; align-items: center; background: var(--nova-surface-soft); border: 1px solid var(--nova-line); border-radius: 11px; }
.buno-sug.best { background: color-mix(in srgb,var(--nova-primary) 5%,var(--nova-surface)); border-color: color-mix(in srgb,var(--nova-primary) 38%,var(--nova-line)); }
.buno-sug-score { display: grid; width: 46px; height: 46px; flex: none; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 12px; font-size: 13px; font-weight: 850; }
.buno-sug-body { flex: 1; min-width: 0; }
.buno-sug-body strong, .buno-sug-body small { display: block; }
.buno-sug-body small { color: var(--nova-muted); }
.buno-sug-why { display: flex; gap: 5px; margin-top: 6px; flex-wrap: wrap; }
.buno-sug-why span { padding: 2px 7px; color: var(--nova-success); background: var(--nova-success-soft); border-radius: 999px; font-size: 11px; font-weight: 650; }
.buno-sug form { margin: 0; flex: none; }
.buno-quick { margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--nova-line); }
.buno-quick-grid { display: grid; gap: 9px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.buno-quick-grid label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 650; }
.buno-quick-actions { display: flex; gap: 8px; margin-top: 11px; align-items: center; flex-wrap: wrap; }
.buno-kbd { display: flex; gap: 14px; margin-top: 13px; padding-top: 11px; flex-wrap: wrap; color: var(--nova-muted); border-top: 1px dashed var(--nova-line); font-size: 11.5px; }
.buno-kbd kbd { margin-right: 5px; padding: 2px 6px; color: var(--nova-ink-soft); background: var(--nova-surface-strong); border: 1px solid var(--nova-line); border-radius: 6px; font: inherit; font-weight: 750; }
.buno-empty { display: flex; gap: 12px; padding: 22px 18px; align-items: center; color: var(--nova-muted); }
.buno-empty > i { display: grid; width: 34px; height: 34px; flex: none; place-items: center; color: var(--nova-success); background: var(--nova-success-soft); border-radius: 11px; font-style: normal; }
.buno-empty strong { display: block; color: var(--nova-ink); }
.buno-empty p { margin-top: 2px; }

.bulk-selection-toolbar { display: none; }
.bulk-selection-toolbar.has-selection { position: sticky; z-index: 20; bottom: 14px; display: flex; width: max-content; max-width: calc(100% - 20px); gap: 14px; margin: 14px auto 0; padding: 10px 14px 10px 17px; align-items: center; color: #fff; background: var(--nova-navy); border: 1px solid rgba(255,255,255,.14); border-radius: 15px; box-shadow: var(--nova-shadow-lg); }
.bulk-selection-toolbar.has-selection strong, .bulk-selection-toolbar.has-selection small { color: #fff; }
.bulk-selection-toolbar.has-selection small { opacity: .75; }
.bulk-selection-toolbar.has-selection .text-button { color: #fff; }
.bulk-selection-toolbar.has-selection .bulk-selection-icon { color: var(--nova-navy); background: var(--nova-brand-teal); }

/* Dark theme */
:root[data-theme="dark"] {
  color-scheme: dark;
  --nova-bg: #060d15;
  --nova-surface: #0a1622;
  --nova-surface-soft: #0e1c2a;
  --nova-surface-strong: #132530;
  --nova-ink: #f4f7fa;
  --nova-ink-soft: #d1d9e3;
  --nova-muted: #939daa;
  --nova-line: #1b3040;
  --nova-line-strong: #304859;
  --nova-primary: #2c5ef8;
  --nova-primary-hover: #4f78ff;
  --nova-link: #8aa3ff;
  --nova-link-hover: #b3c2ff;
  --nova-primary-soft: #152e60;
  --nova-primary-line: #29477c;
  --nova-primary-contrast: #ffffff;
  --nova-focus: #8aa3ff;
  --nova-accent: #69d1d2;
  --nova-accent-soft: #0d3335;
  --nova-success: #6ce9a6;
  --nova-success-soft: #0f2e25;
  --nova-success-line: #1d5b47;
  --nova-warning: #fec84b;
  --nova-warning-soft: #35290e;
  --nova-warning-line: #715a1b;
  --nova-danger: #fda29b;
  --nova-danger-soft: #3b1c1d;
  --nova-danger-line: #7a3032;
  --nova-sidebar: #010d4c;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="system"] {
    color-scheme: dark;
    --nova-bg: #060d15;
    --nova-surface: #0a1622;
    --nova-surface-soft: #0e1c2a;
    --nova-surface-strong: #132530;
    --nova-ink: #f4f7fa;
    --nova-ink-soft: #d1d9e3;
    --nova-muted: #939daa;
    --nova-line: #1b3040;
    --nova-line-strong: #304859;
    --nova-primary: #2c5ef8;
    --nova-primary-hover: #4f78ff;
    --nova-link: #8aa3ff;
    --nova-link-hover: #b3c2ff;
    --nova-primary-soft: #152e60;
    --nova-primary-contrast: #ffffff;
    --nova-focus: #8aa3ff;
    --nova-accent: #69d1d2;
    --nova-accent-soft: #0d3335;
    --nova-success: #6ce9a6;
    --nova-success-soft: #0f2e25;
    --nova-success-line: #1d5b47;
    --nova-warning: #fec84b;
    --nova-warning-soft: #35290e;
    --nova-warning-line: #715a1b;
    --nova-danger: #fda29b;
    --nova-danger-soft: #3b1c1d;
    --nova-danger-line: #7a3032;
    --nova-sidebar: #010d4c;
  }
}

:root[data-theme="dark"] .auth-logo,
:root[data-theme="dark"] .mobile-brand { padding: 4px 6px; background: #fff; border-radius: 7px; }
@media (prefers-color-scheme: dark) {
  :root[data-theme="system"] .auth-logo,
  :root[data-theme="system"] .mobile-brand { padding: 4px 6px; background: #fff; border-radius: 7px; }
}
:root[data-theme="dark"] .finance-close-card { color: var(--nova-ink); background: #0b1b2b; border-color: #173d58; border-left-color: var(--nova-primary); }
:root[data-theme="dark"] .finance-close-card h2 { color: var(--nova-ink); }
:root[data-theme="dark"] .finance-close-card > span,
:root[data-theme="dark"] .finance-close-value small,
:root[data-theme="dark"] .finance-close-next small { color: var(--nova-muted); }
:root[data-theme="dark"] .finance-close-next { border-top-color: #173d58; }
:root[data-theme="dark"] .simple-next-card { background: #0b1b2b; border-color: #173d58; }
:root[data-theme="dark"] .finance-process-step.attention b { color: #111820; }
:root[data-theme="dark"] .status-pill.private { color: #d6bbfb; background: #2b1b45; }
@media (prefers-color-scheme: dark) {
  :root[data-theme="system"] .finance-close-card { color: var(--nova-ink); background: #0b1b2b; border-color: #173d58; border-left-color: var(--nova-primary); }
  :root[data-theme="system"] .finance-close-card h2 { color: var(--nova-ink); }
  :root[data-theme="system"] .finance-close-card > span,
  :root[data-theme="system"] .finance-close-value small,
  :root[data-theme="system"] .finance-close-next small { color: var(--nova-muted); }
  :root[data-theme="system"] .finance-close-next { border-top-color: #173d58; }
  :root[data-theme="system"] .simple-next-card { background: #0b1b2b; border-color: #173d58; }
  :root[data-theme="system"] .finance-process-step.attention b { color: #111820; }
  :root[data-theme="system"] .status-pill.private { color: #d6bbfb; background: #2b1b45; }
}

/* Responsive */
@media (max-width: 1380px) {
  .topbar-account > span:last-child { display: none; }
  .quick-search { width: min(240px,22vw); }
}
@media (max-width: 1180px) {
  .metric-grid-wide { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bwa-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cockpit-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .role-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .bank-result-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .category-create-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quick-search { display: none; }
  .system-indicator span { display: none; }
  .finance-top-grid { grid-template-columns: minmax(250px,.8fr) minmax(0,1.4fr); }
  .finance-system-card { grid-column: 1 / -1; }
  .finance-system-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .finance-quick-action-list { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .finance-bottom-grid { grid-template-columns: 1fr 1fr; }
  .finance-bottom-grid > :first-child { grid-column: 1 / -1; }
  .operations-master-detail { grid-template-columns: 1fr; }
  .operations-detail-panel { position: static; }
  .overview-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .buno-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .buno-kpis.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .buno-dashboard-grid, .buno-inbox { grid-template-columns: 1fr; }
  .buno-detail { position: static; }
}
@media (max-width: 1023px) {
  .app-frame { display: block; }
  .portal-main { min-height: 100vh; }
  .portal-sidebar { width: min(88vw,300px); transform: translateX(-105%); box-shadow: 18px 0 45px rgba(15,23,42,.2); }
  .suite-nav-pane { min-height: 100vh; max-height: 100dvh; overflow-y: hidden; }
  .suite-nav-head { min-height: 58px; padding: 10px 12px; }
  .suite-nav-head .product-brand { display: inline-flex; }
  .sidebar-scroll { min-height: 0; flex: 1 1 auto; overflow-y: auto; }
  .suite-nav-foot { max-height: none; margin-top: auto; overflow: visible; }
  .portal-sidebar.open { transform: translateX(0); }
  .nav-close, .menu-button, .mobile-brand { display: inline-flex; }
  .sidebar-collapse { display: none; }
  .nav-close { align-items: center; justify-content: center; }
  :root[data-sidebar="collapsed"] { --nova-sidebar-width: 224px; }
  :root[data-sidebar="collapsed"] .suite-nav-head { padding: 10px 12px; }
  :root[data-sidebar="collapsed"] .product-logo { display: block; }
  :root[data-sidebar="collapsed"] .product-mark { display: none; }
  :root[data-sidebar="collapsed"] .sidebar-company { display: block; }
  :root[data-sidebar="collapsed"] .nav-copy { display: block; }
  :root[data-sidebar="collapsed"] .nav-disclosure { display: block; }
  :root[data-sidebar="collapsed"] .account-copy { display: block; }
  :root[data-sidebar="collapsed"] .account-chevron { display: inline; }
  :root[data-sidebar="collapsed"] .sidebar-head-actions { margin-left: 0; }
  :root[data-sidebar="collapsed"] .compact-nav { padding: 0 9px; }
  :root[data-sidebar="collapsed"] .suite-nav-link { justify-content: flex-start; padding-right: 10px; padding-left: 10px; }
  :root[data-sidebar="collapsed"] .account-menu > summary { justify-content: flex-start; padding: 7px; }
  :root[data-sidebar="collapsed"] .account-popover { position: absolute; right: 0; bottom: calc(100% + 8px); left: 0; width: auto; }
  .nav-backdrop { position: fixed; z-index: 45; inset: 0; display: block; visibility: hidden; opacity: 0; background: rgba(15,23,42,.5); border: 0; transition: opacity 190ms ease, visibility 190ms ease; }
  body.menu-open .nav-backdrop { visibility: visible; opacity: 1; }
  .product-bar { padding: 0 12px; }
  .quick-search, .system-indicator, .product-actions > .top-icon-button:not(.theme-toggle) { display: none; }
  .top-upload-button { min-width: 40px; width: 40px; padding: 7px; overflow: hidden; font-size: 0; }
  .top-upload-button span { font-size: 20px; }
  .topbar-trail { display: none; }
  .topbar-account > span:last-child { display: none; }
  .workspace { padding: 26px 24px 48px; }
  .document-review-split { grid-template-columns: 1fr; }
  .cockpit-lower-grid, .stack-layout, .bank-upload-grid { grid-template-columns: 1fr; }
  .finance-work-grid, .finance-bottom-grid { grid-template-columns: 1fr; }
  .finance-bottom-grid > :first-child { grid-column: auto; }
  .review-page-grid { grid-template-columns: 1fr; }
  .review-page-grid > .review-header, .review-page-grid > .review-summary-strip, .review-page-grid > .review-document-preview, .review-page-grid > .detail-grid, .review-page-grid > .form-card, .review-page-grid > .data-card:not(.review-header), .review-page-grid > .alert { position: static; grid-column: 1; grid-row: auto; }
  .review-summary-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-summary-strip > div { border-bottom: 1px solid var(--nova-line); }
  .review-summary-strip > div:nth-child(2n) { border-right: 0; }
  .review-summary-strip > div:last-child { border-bottom: 0; }
  .review-document-preview iframe { min-height: 56vh; }
  .process-strip, .close-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .document-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .split-card { grid-template-columns: 1fr 1fr; }
  .split-title, .split-card-actions { grid-column: 1 / -1; }
  .month-close-grid { grid-template-columns: minmax(0,1fr) minmax(240px,.42fr); }
}
@media (max-width: 760px) {
  body { font-size: 15px; }
  .product-bar { min-height: 58px; padding: 0 12px; }
  .mobile-brand img { width: 88px; height: auto; }
  .product-actions { gap: 4px; }
  .product-actions > .view-switch { padding: 2px; }
  .product-actions > .view-switch button { min-height: 27px; padding: 4px 6px; font-size: 10px; }
  .topbar-account { display: none; }
  .top-help { display: none; }
  .workspace { padding: 20px 14px 38px; }
  .workspace-head { margin-bottom: 18px; }
  .workspace-head p { font-size: 14px; }
  .metric-grid, .metric-grid-wide, .cockpit-key-metrics, .task-overview, .usage-metrics, .missing-summary, .bwa-check-grid, .two-column, .comparison-grid, .account-grid, .admin-grid, .bwa-summary, .detail-grid, .billing-plan, .billing-facts, .pilot-company-grid, .month-close-grid, .overview-facts, .security-option-grid, .revenue-kpis, .export-choice-cards { grid-template-columns: 1fr; }
  .metric-card > strong, .usage-metric > strong { font-size: 24px; }
  .data-card, .nova-panel, .form-card, .wide-card, .stack-card, .bank-card, .right-card, .comparison-box, .two-factor-card, .account-summary, .account-grid > section { padding: 16px; border-radius: 13px; }
  .section-heading, .settings-header, .usage-section-head, .export-head, .review-header, .split-toolbar, .missing-results-head, .missing-card-heading, .page-action-strip, .document-hero, .billing-plan, .trash-overview-card, .trash-item-header { align-items: stretch; flex-direction: column; }
  .page-action-strip-actions, .document-hero-actions { width: 100%; }
  .page-action-strip-actions > *, .document-hero-actions > * { flex: 1; }
  .cockpit-period-toolbar { align-items: stretch; flex-direction: column; }
  .cockpit-focus-card { grid-template-columns: 1fr; padding: 18px; }
  .cockpit-next-button { width: 100%; }
  .cockpit-flow { grid-template-columns: 1fr; }
  .dashboard-toolbar { align-items: stretch; flex-direction: column; }
  .dashboard-toolbar .cockpit-period-switcher, .dashboard-toolbar .cockpit-period-switcher form { width: 100%; }
  .dashboard-toolbar .cockpit-period-switcher form { flex: 1; }
  .dashboard-toolbar .cockpit-period-switcher label { min-width: 0; flex: 1; }
  .finance-top-grid, .finance-work-grid, .finance-bottom-grid { grid-template-columns: 1fr; }
  .finance-system-card { grid-column: auto; }
  .finance-system-list { grid-template-columns: 1fr; }
  .finance-quick-action-list { grid-template-columns: 1fr; }
  .finance-kpi-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finance-kpi:nth-child(2) { border-right: 0; }
  .finance-kpi:nth-child(-n+2) { border-bottom: 1px solid var(--nova-line); }
  .finance-work-row { grid-template-columns: 66px minmax(0,1fr) auto; }
  .finance-work-row > small { display: none; }
  .finance-process { grid-template-columns: repeat(5,minmax(54px,1fr)); overflow-x: auto; }
  .simple-next-card { grid-template-columns: 1fr; align-items: stretch; }
  .simple-next-card .primary-button { width: 100%; }
  .simple-stats { grid-template-columns: 1fr; }
  .task-overview, .bank-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .task-stat:nth-child(2) { border-right: 0; }
  .task-stat:nth-child(-n+2) { border-bottom: 1px solid var(--nova-line); }
  .task-filterbar { align-items: stretch; flex-direction: column; }
  .task-search, .task-priority-filter { width: 100%; }
  .process-strip, .close-steps { grid-template-columns: 1fr; }
  .form-grid, .review-form-grid, .transaction-filter-grid, .missing-filter-grid, .category-create-grid, .bulk-editor-grid { grid-template-columns: 1fr; }
  .button-row, .row-actions { align-items: stretch; }
  .row-actions { flex-direction: column; }
  .row-actions > *, .row-actions form > button, .button-row > button, .button-row > a { width: 100%; }
  .primary-button, .secondary-button, .small-button, .text-button, .pdf-button, .action-button { min-height: 44px; }
  .table-scroll, .table-wrap { overflow-x: auto; border: 0; background: transparent; -webkit-overflow-scrolling: touch; }
  table.mobile-card-table[data-mobile-enhanced="1"], table.mobile-card-table[data-mobile-enhanced="1"] tbody, table.mobile-card-table[data-mobile-enhanced="1"] tr, table.mobile-card-table[data-mobile-enhanced="1"] td { display: block; width: 100%; }
  table.mobile-card-table[data-mobile-enhanced="1"] { min-width: 0; }
  table.mobile-card-table[data-mobile-enhanced="1"] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody { display: grid; gap: 12px; }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody tr { overflow: hidden; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius); }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody tr:hover { background: var(--nova-surface); }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody td { display: grid; grid-template-columns: minmax(92px,.42fr) minmax(0,1fr); gap: 12px; padding: 10px 12px; align-items: start; text-align: left; border-bottom: 1px solid var(--nova-line); white-space: normal; }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody td:last-child { border-bottom: 0; }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody td::before { content: attr(data-label); color: var(--nova-muted); font-size: 12px; font-weight: 700; text-transform: none; }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody td[colspan] { display: block; text-align: center; }
  table.mobile-card-table[data-mobile-enhanced="1"] tbody td[colspan]::before { display: none; }
  .wide-table, .document-list-table.core-only, .bank-list-table.core-only { min-width: 0; }
  .allocation-form-row, .detail-list, .security-detail-list, .detail-list > div, .security-detail-list > div { grid-template-columns: 1fr; gap: 3px; }
  .detail-list > dt, .security-detail-list > dt { padding-bottom: 2px; border-bottom: 0; }
  .detail-list > dd, .security-detail-list > dd { padding-top: 0; text-align: left; }
  .document-summary-grid { grid-template-columns: 1fr; }
  .review-summary-strip { grid-template-columns: 1fr; }
  .review-summary-strip > div { border-right: 0; }
  .category-position-table select, .category-position-description, .reference-cell, .suggestion-reasons { min-width: 0; width: 100%; }
  .document-pdf-stage, .document-pdf-frame { min-height: 480px; }
  .split-card { grid-template-columns: 1fr; }
  .split-title, .split-card-actions { grid-column: auto; }
  .bank-result-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trash-search-form, .confirm-row, .coverage-actions, .buno-confirm-actions { align-items: stretch; flex-direction: column; }
  .trash-search-form > *, .confirm-row > *, .buno-confirm-actions > * { width: 100%; }
  .trash-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .weighted-close-steps .close-step { grid-template-columns: 32px minmax(0,1fr); }
  .weighted-close-steps .close-step > a { grid-column: 1 / -1; }
  .close-weight-legend { grid-template-columns: 1fr; }
  .compact-period-picker, .revenue-overview-head, .export-submit-row { align-items: stretch; flex-direction: column; }
  .compact-period-picker form, .revenue-overview-head form { width: 100%; min-width: 0; }
  .export-submit-row .primary-button { width: 100%; }
  .missing-results-head { padding: 16px; }
  .missing-results-actions { align-items: stretch; flex-direction: column; }
  .missing-pager, .pager { align-items: stretch; flex-direction: column; }
  .auth-body, .setup-body { padding: 16px; }
  .auth-card, .setup-card { padding: 22px; border-radius: 15px; }
  .setup-card:not(.compact-setup) > form { grid-template-columns: 1fr; }
  .setup-card:not(.compact-setup) > form > * { grid-column: 1; }
  .collector-note { align-items: stretch; flex-direction: column; }
  .preview-modal { padding: 10px; }
  .task-tabs a, .upload-tabs button, .export-months a, .missing-months a, .nav-sub-link, .company-switch-button { min-height: 44px; }
  .session-row { grid-template-columns: 1fr; align-items: start; }
  .account-summary { align-items: stretch; flex-direction: column; }
  .buno-command-bar { align-items: stretch; flex-direction: column; }
  .buno-command-actions { width: 100%; margin-left: 0; }
  .buno-command-actions .secondary-button { width: 100%; }
  .buno-month-control { width: 100%; }
  .buno-month-control form { min-width: 0; flex: 1; }
  .buno-month-control select { width: 100%; }
  .buno-action-hero { grid-template-columns: 1fr; padding: 18px; }
  .buno-kpis, .buno-kpis.three { grid-template-columns: 1fr; }
  .buno-filterbar { align-items: stretch; flex-direction: column; }
  .buno-filterbar .filter-form, .buno-chips, .buno-modeswitch { width: 100%; }
  .buno-modeswitch { margin-left: 0; }
  .buno-modeswitch a, .buno-chips a { flex: 1; justify-content: center; }
  .buno-quick-grid { grid-template-columns: 1fr; }
  .buno-sug { align-items: stretch; flex-wrap: wrap; }
  .buno-sug form, .buno-sug form button { width: 100%; }
  .bulk-selection-toolbar.has-selection { width: calc(100% - 16px); align-items: stretch; flex-direction: column; }
}
@media (max-width: 420px) {
  .mobile-brand { display: none; }
  .product-bar { gap: 6px; padding: 0 8px; }
  .menu-button { width: 40px; padding: 9px; }
  .product-actions > .view-switch button { padding-right: 5px; padding-left: 5px; }
}
@media (max-width: 480px) {
  .product-actions { gap: 2px; }
  .workspace { padding-right: 12px; padding-left: 12px; }
  .bank-result-grid, .trash-detail-grid, .bank-summary-grid { grid-template-columns: 1fr; }
  .bank-summary-card, .task-stat { border-right: 0; border-bottom: 1px solid var(--nova-line); }
  .bank-summary-card:last-child, .task-stat:last-child { border-bottom: 0; }
  .task-tabs, .upload-tabs { width: 100%; }
  .task-tabs a, .upload-tabs button { flex: 1; }
}
@media print {
  :root, :root[data-theme="dark"], :root[data-theme="system"] {
    color-scheme: light;
    --nova-bg: #fff;
    --nova-surface: #fff;
    --nova-surface-soft: #f8fafc;
    --nova-surface-strong: #eef2f7;
    --nova-ink: #000;
    --nova-ink-soft: #1f2937;
    --nova-muted: #475467;
    --nova-line: #d0d5dd;
    --nova-line-strong: #98a2b3;
    --nova-link: #155eef;
    --nova-link-hover: #0b4bd4;
  }
  .portal-sidebar, .product-bar, .nav-backdrop, .no-print, .button-row, .row-actions { display: none; }
  .app-frame, .portal-main { display: block; }
  .workspace { max-width: none; padding: 0; }
  body { color: #000; background: #fff; }
  .data-card, .nova-panel, .finance-panel, .finance-close-card, .simple-next-card, .buno-card, .buno-action-hero, .buno-inbox-list, .buno-detail { color: #000; background: #fff; border-color: #d0d5dd; break-inside: avoid; box-shadow: none; }
  .buno-inbox { display: block; }
  .buno-detail { position: static; margin-top: 12px; }
  :root[data-theme="dark"] .finance-close-card,
  :root[data-theme="system"] .finance-close-card,
  :root[data-theme="dark"] .simple-next-card,
  :root[data-theme="system"] .simple-next-card { color: #000; background: #fff; border-color: #d0d5dd; }
  :root[data-theme="dark"] .finance-close-card h2,
  :root[data-theme="system"] .finance-close-card h2,
  :root[data-theme="dark"] .finance-close-card > span,
  :root[data-theme="system"] .finance-close-card > span,
  :root[data-theme="dark"] .finance-close-value small,
  :root[data-theme="system"] .finance-close-value small,
  :root[data-theme="dark"] .finance-close-next small,
  :root[data-theme="system"] .finance-close-next small { color: #000; }
  :root[data-theme="dark"] .finance-close-next,
  :root[data-theme="system"] .finance-close-next { border-top-color: #d0d5dd; }
  .deferred-section { content-visibility: visible; contain: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
}

/* =====================================================================
   BUNO Portal 4.4 — Seitenaufbau aus Update 19.2, sichere Portalinhalte
   ===================================================================== */
:root {
  --nova-bg: #f4f6fc;
  --nova-surface-soft: #f7f9fe;
  --nova-surface-strong: #e9effb;
  --nova-ink-soft: #33406b;
  --nova-muted: #6b779c;
  --nova-line: #e1e7f5;
  --nova-line-strong: #c9d4ec;
  --nova-primary-soft: #e8efff;
  --nova-navy-deep: #010833;
  --nova-sidebar-width: 262px;
  --nova-radius: 12px;
  --nova-radius-lg: 16px;
  --nova-shadow: 0 10px 28px -16px rgba(11,21,51,.28);
}

/* Eine Navigation, eine Scrollfläche. */
.portal-sidebar {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  background: linear-gradient(180deg,var(--nova-navy) 0%,var(--nova-navy-deep) 100%);
  border-right: 0;
}
.suite-rail { display: none; }
.suite-nav-pane {
  width: 100%;
  height: 100dvh;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  color: var(--nova-sidebar-ink);
  background: transparent;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.sidebar-scroll { min-height: 0; overflow: visible; flex: 0 0 auto; }
.suite-nav-foot { position: static; max-height: none; margin-top: auto; overflow: visible; background: transparent; }
.suite-nav-head { min-height: 56px; padding: 15px 15px 4px; }
.product-brand { display: inline-flex; padding: 6px 9px; background: #fff; border-radius: 10px; }
.product-logo { width: 92px; filter: none; }
.sidebar-company { margin: 12px 12px 10px; padding: 10px 12px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 13px; }
.sidebar-label,.nav-section-title { color: rgba(226,235,255,.62); font-size: 10.5px; letter-spacing: .1em; }
.sidebar-company-name { color: #fff; font-weight: 700; }
.company-switch select { color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 9px; }
.company-switch select option { color: var(--nova-ink); background: var(--nova-surface); }
.company-switch-button { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.2); }
.company-switch-button:hover { background: rgba(255,255,255,.22); }
.suite-nav-inner { gap: 14px; padding: 4px 9px 16px; }
.simple-nav { align-content: start; gap: 3px; }
.nav-section { display: grid; gap: 5px; }
.nav-section-primary { padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.nav-section-title { display: flex; gap: 8px; padding: 0 10px 4px; align-items: center; }
.nav-section-title .nav-icon { width: 16px; height: 16px; }
.nav-section-links { display: grid; gap: 2px; }
.suite-nav-link,.nav-sub-link,.suite-utility-link { min-height: 40px; padding: 9px 11px; color: #dae3ff; font-size: 13px; }
.nav-sub-link { min-height: 38px; padding: 7px 11px 7px 38px; }
.suite-nav-link:hover,.nav-sub-link:hover,.suite-utility-link:hover { color: #fff; background: rgba(255,255,255,.1); }
.suite-nav-link.active,.nav-sub-link.active,.suite-utility-link.active { color: #fff; background: rgba(0,188,186,.18); }
.suite-nav-link.active::before,.nav-sub-link.active::before,.suite-utility-link.active::before { background: var(--nova-brand-teal); }
.suite-nav-foot { border-top-color: rgba(255,255,255,.12); }
.sidebar-system { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.12); }
.sidebar-system .sidebar-label { padding: 0 10px 4px; }
.sidebar-operator { display: grid; gap: 2px; padding: 7px 10px; border-top: 1px solid rgba(255,255,255,.12); }
.sidebar-operator a { display: flex; min-height: 38px; padding: 6px 0; align-items: center; color: rgba(226,235,255,.7); font-size: 12px; font-weight: 600; text-decoration: none; }
.sidebar-operator a:hover { color: #fff; }
.sidebar-preferences { display: none; gap: 5px; padding: 7px 2px 3px; }
.sidebar-preferences .sidebar-label { padding: 0 6px; }
.sidebar-preferences .view-switch { display: grid; grid-template-columns: 1fr 1fr; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.16); }
.sidebar-preferences .view-switch button { color: rgba(226,235,255,.75); }
.sidebar-preferences .view-switch button[aria-pressed="true"] { color: var(--nova-navy); background: #fff; }
.sidebar-theme-toggle { display: flex; min-height: 38px; gap: 8px; padding: 7px 8px; align-items: center; color: #dae3ff; background: transparent; border: 1px solid transparent; border-radius: 8px; font-size: 12px; cursor: pointer; }
.sidebar-theme-toggle:hover { color: #fff; background: rgba(255,255,255,.1); }
.account-menu > summary { color: #fff; background: rgba(255,255,255,.08); }
.account-copy small,.account-chevron { color: rgba(226,235,255,.65); }
.sidebar-account .user-avatar { color: var(--nova-navy); background: var(--nova-brand-teal); }

.product-bar { background: color-mix(in srgb,var(--nova-surface) 90%,transparent); backdrop-filter: blur(12px); }
.quick-search,.system-indicator { border-radius: 999px; }
.top-icon-button { border-radius: 11px; }

/* Finanzzentrale: Monats-Hero aus der Designvorlage. */
.buno-card { background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); box-shadow: var(--nova-shadow-sm); }
.buno-card-head { display: flex; gap: 12px; padding: 15px 17px 0; align-items: flex-start; }
.buno-card-head h2 { font-size: 16px; }
.buno-card-head p { margin-top: 2px; color: var(--nova-muted); font-size: 12.5px; }
.buno-card-head > a { margin-left: auto; flex: none; font-size: 12.5px; font-weight: 700; text-decoration: none; }
.buno-grid-2 { display: grid; gap: 13px; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); align-items: start; margin-bottom: 13px; }
.buno-stack { display: grid; gap: 13px; align-content: start; }
.buno-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
  padding: 18px 20px 4px;
  background: radial-gradient(900px 320px at 88% -50%,color-mix(in srgb,var(--nova-brand-teal) 20%,transparent),transparent 70%),linear-gradient(150deg,color-mix(in srgb,var(--nova-primary) 7%,var(--nova-surface)) 0%,var(--nova-surface) 58%);
  border: 1px solid var(--nova-line);
  border-radius: 22px;
  box-shadow: var(--nova-shadow);
}
.buno-hero-top { position: relative; z-index: 1; display: flex; gap: 12px; margin-bottom: 15px; align-items: center; flex-wrap: wrap; }
.buno-hero-upload { margin-left: auto; }
.buno-month { display: inline-flex; padding: 4px; gap: 2px; align-items: center; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: 999px; box-shadow: var(--nova-shadow-sm); }
.buno-month a,.buno-month span.disabled { display: grid; width: 30px; height: 30px; place-items: center; color: var(--nova-muted); border-radius: 999px; font-size: 15px; text-decoration: none; }
.buno-month a:hover { color: var(--nova-ink); background: var(--nova-surface-strong); }
.buno-month span.disabled { opacity: .35; }
.buno-month form { display: flex; gap: 6px; align-items: center; }
.buno-month select { min-height: 32px; padding: 4px 26px 4px 9px; background-color: transparent; border: 0; font-weight: 700; }
.buno-hero-grid { position: relative; z-index: 1; display: grid; gap: 22px; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; }
.buno-ring { position: relative; display: grid; width: 116px; height: 116px; flex: none; place-items: center; background: conic-gradient(var(--nova-primary) calc(var(--p,0) * 1%),color-mix(in srgb,var(--nova-primary) 13%,transparent) 0); border-radius: 50%; }
.buno-ring::before { position: absolute; inset: 9px; content: ""; background: var(--nova-surface); border-radius: 50%; box-shadow: inset 0 0 0 1px var(--nova-line); }
.buno-ring > span { position: relative; text-align: center; }
.buno-ring b { display: block; font-size: 26px; font-weight: 800; letter-spacing: -.04em; }
.buno-ring b small { display: inline; margin: 0; font-size: 15px; letter-spacing: 0; text-transform: none; }
.buno-ring > span > small { display: block; margin-top: -2px; color: var(--nova-muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.progress-p-0{--p:0}.progress-p-5{--p:5}.progress-p-10{--p:10}.progress-p-15{--p:15}.progress-p-20{--p:20}.progress-p-25{--p:25}.progress-p-30{--p:30}.progress-p-35{--p:35}.progress-p-40{--p:40}.progress-p-45{--p:45}.progress-p-50{--p:50}.progress-p-55{--p:55}.progress-p-60{--p:60}.progress-p-65{--p:65}.progress-p-70{--p:70}.progress-p-75{--p:75}.progress-p-80{--p:80}.progress-p-85{--p:85}.progress-p-90{--p:90}.progress-p-95{--p:95}.progress-p-100{--p:100}
.buno-hero-next h2 { margin: 6px 0; font-size: clamp(21px,2.2vw,26px); }
.buno-hero-next > p { max-width: 62ch; color: var(--nova-ink-soft); }
.buno-hero-hint { display: inline-flex; margin-top: 11px; padding: 6px 12px; gap: 8px; align-items: center; color: var(--nova-warning); background: var(--nova-warning-soft); border: 1px solid var(--nova-warning-line); border-radius: 999px; font-size: 12.5px; font-weight: 700; }
.buno-hero-cta { display: grid; min-width: 190px; gap: 8px; }
.buno-hero-cta .primary-button,.buno-hero-cta .secondary-button { justify-content: center; }
.buno-hero-cta small { color: var(--nova-muted); text-align: center; }
.buno-band { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 20px; padding-bottom: 16px; }
.buno-band::before,.buno-band::after { position: absolute; top: 14px; height: 3px; content: ""; border-radius: 3px; }
.buno-band::before { right: 12.5%; left: 12.5%; background: var(--nova-line); }
.buno-band::after { left: 12.5%; width: calc(var(--p,0) * .75%); max-width: 75%; background: linear-gradient(90deg,var(--nova-primary),var(--nova-brand-teal)); }
.buno-band-step { position: relative; display: flex; gap: 5px; flex-direction: column; align-items: center; color: inherit; text-align: center; text-decoration: none; }
.buno-band-step b { position: relative; z-index: 2; display: grid; width: 29px; height: 29px; place-items: center; color: var(--nova-muted); background: var(--nova-surface); border: 3px solid var(--nova-line); border-radius: 50%; font-size: 12px; }
.buno-band-step strong { font-size: 12.5px; }
.buno-band-step small { color: var(--nova-muted); font-size: 11.5px; }
.buno-band-step.complete b { color: #fff; background: var(--nova-primary); border-color: var(--nova-primary); }
.buno-band-step.attention b { color: #111820; background: var(--nova-warning); border-color: var(--nova-warning); box-shadow: 0 0 0 5px var(--nova-warning-soft); }
.buno-band-step.attention strong { color: var(--nova-warning); }
.buno-band-step.ready b { color: var(--nova-navy); background: var(--nova-brand-teal); border-color: var(--nova-brand-teal); box-shadow: 0 0 0 5px var(--nova-accent-soft); }
.buno-band-step.locked { opacity: .62; }
.buno-band-step:hover strong { color: var(--nova-primary); }

.buno-kpis { display: grid; gap: 12px; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 13px; }
.buno-kpis.simple-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.buno-kpi { display: block; padding: 14px 15px 13px; color: inherit; background: var(--nova-surface); border: 1px solid var(--nova-line); border-radius: var(--nova-radius-lg); box-shadow: var(--nova-shadow-sm); text-decoration: none; }
.buno-kpi:hover { color: inherit; transform: translateY(-2px); border-color: color-mix(in srgb,var(--nova-primary) 35%,var(--nova-line)); box-shadow: var(--nova-shadow); }
.buno-kpi-top { display: flex; gap: 8px; align-items: center; color: var(--nova-muted); font-size: 12.5px; font-weight: 600; }
.buno-kpi-top i { display: grid; width: 22px; height: 22px; flex: none; place-items: center; color: var(--nova-primary); background: var(--nova-primary-soft); border-radius: 7px; }
.buno-kpi-top i svg { width: 13px; height: 13px; }
.buno-kpi-value { display: flex; gap: 8px; margin: 8px 0 5px; align-items: baseline; }
.buno-kpi-value b { font-size: 29px; font-weight: 800; letter-spacing: -.045em; }
.buno-tag { padding: 2px 8px; color: var(--nova-muted); background: var(--nova-surface-strong); border-radius: 999px; font-size: 11.5px; font-weight: 700; }
.buno-tag.good { color: var(--nova-success); background: var(--nova-success-soft); }
.buno-tag.warn { color: var(--nova-warning); background: var(--nova-warning-soft); }
.buno-kpi > small { display: block; color: var(--nova-muted); }
.buno-task .status-pill { flex: none; }
.buno-status-list { margin-top: 10px; padding-bottom: 6px; }
.buno-sys { color: inherit; text-decoration: none; }
.buno-sys:hover { color: inherit; background: var(--nova-surface-soft); }
.buno-sys > b { margin-left: auto; font-size: 14px; }

@media (max-width:1240px) {
  .buno-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .buno-kpis.simple-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .buno-grid-2 { grid-template-columns: minmax(0,1fr); }
  .buno-hero-grid { grid-template-columns: auto minmax(0,1fr); }
  .buno-hero-cta { grid-column: 1 / -1; grid-auto-flow: column; }
}
@media (max-width:1023px) {
  .suite-nav-pane { height: 100dvh; overflow-y: auto; }
  .sidebar-scroll { overflow: visible; }
  .suite-nav-foot { margin-top: 0; }
  .sidebar-preferences { display: grid; }
  .product-actions > .view-switch,.product-actions > .theme-toggle { display: none; }
}
@media (max-width:720px) {
  .buno-hero { padding: 15px 14px 2px; }
  .buno-hero-grid { grid-template-columns: minmax(0,1fr); }
  .buno-ring { justify-self: start; }
  .buno-hero-cta { grid-auto-flow: row; }
  .buno-kpis,.buno-kpis.simple-three { grid-template-columns: minmax(0,1fr); }
  .buno-band { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
  .buno-band::before,.buno-band::after { display: none; }
  .buno-hero-hint { align-items: flex-start; border-radius: 12px; }
}
@media print {
  .buno-hero { color: #000; background: #fff; border-color: #d0d5dd; box-shadow: none; }
  .buno-ring::before { background: #fff; }
}
