:root {
  --aiobi-bg: #fafafa;
  --aiobi-surface: #ffffff;
  --aiobi-surface-muted: #f5f5f5;
  --aiobi-primary: #4a3c5c;
  --aiobi-primary-dark: #362d45;
  --aiobi-primary-soft: #f3edf5;
  --aiobi-text: #1a1a1a;
  --aiobi-text-secondary: #6b6b6b;
  --aiobi-text-muted: #767676;
  --aiobi-border: #efefef;
  --aiobi-border-strong: #e0e0e0;
  --aiobi-success: #22a06b;
  --aiobi-danger: #e34935;
  --aiobi-warning: #f5a623;
  --aiobi-sidebar-width: 264px;
  --aiobi-radius-sm: 8px;
  --aiobi-radius: 12px;
  --aiobi-radius-lg: 14px;
  --aiobi-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --aiobi-font: Inter, Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  background: var(--aiobi-bg);
  color: var(--aiobi-text);
  font-family: var(--aiobi-font);
  min-height: 100vh;
}

a {
  color: var(--aiobi-primary);
}

.aiobi-sidebar {
  background: var(--aiobi-surface);
  border-right: 1px solid var(--aiobi-border);
  bottom: 0;
  display: flex;
  flex-direction: column;
  left: 0;
  overflow: hidden auto;
  position: fixed;
  top: 0;
  width: var(--aiobi-sidebar-width);
  z-index: 1040;
}

.aiobi-brand {
  align-items: center;
  border-bottom: 1px solid var(--aiobi-border);
  color: var(--aiobi-text);
  display: flex;
  gap: 11px;
  min-height: 74px;
  padding: 16px 18px;
  text-decoration: none;
}

.aiobi-brand:hover {
  color: var(--aiobi-text);
}

.aiobi-brand-mark {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  height: 36px;
  justify-content: center;
  overflow: hidden;
  width: 36px;
}

.aiobi-brand-mark img {
  height: 31px;
  object-fit: contain;
  width: 31px;
}

.aiobi-brand-name,
.aiobi-brand-subtitle {
  display: block;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aiobi-brand-name {
  font-size: 16.5px;
  font-weight: 650;
  line-height: 1.3;
}

.aiobi-brand-subtitle {
  color: var(--aiobi-text-muted);
  font-size: 14.5px;
  margin-top: 2px;
}

.aiobi-sidebar-nav {
  flex: 1;
  padding: 8px 0 20px;
}

.aiobi-nav-section {
  padding: 6px 12px;
}

.aiobi-nav-label {
  color: var(--aiobi-text-muted);
  font-size: 14px;
  font-weight: 650;
  letter-spacing: 0.08em;
  margin: 0;
  padding: 9px 12px 6px;
  text-transform: uppercase;
}

.aiobi-nav-link {
  align-items: center;
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-text-secondary);
  display: flex;
  font-size: 18px;
  gap: 10px;
  margin-bottom: 2px;
  padding: 9px 12px;
  position: relative;
  text-decoration: none;
  transition: background 150ms ease, color 150ms ease;
}

.aiobi-nav-link:hover {
  background: var(--aiobi-surface-muted);
  color: var(--aiobi-text);
}

.aiobi-nav-link.active {
  background: var(--aiobi-primary-soft);
  color: var(--aiobi-primary);
  font-weight: 600;
}

.aiobi-nav-link.active::before {
  background: var(--aiobi-primary);
  border-radius: 0 3px 3px 0;
  bottom: 6px;
  content: "";
  left: -12px;
  position: absolute;
  top: 6px;
  width: 3px;
}

.aiobi-nav-link svg,
.aiobi-logout svg {
  fill: none;
  flex: 0 0 auto;
  height: 17px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 17px;
}

.aiobi-sidebar-user {
  align-items: center;
  border-top: 1px solid var(--aiobi-border);
  display: flex;
  gap: 9px;
  min-height: 70px;
  padding: 13px 16px;
}

.aiobi-user-avatar {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 50%;
  color: var(--aiobi-primary);
  display: flex;
  flex: 0 0 auto;
  font-size: 17px;
  font-weight: 700;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.aiobi-user-info {
  display: block;
  flex: 1;
  min-width: 0;
}

.aiobi-user-info strong,
.aiobi-user-info small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aiobi-user-info strong {
  font-size: 17px;
  font-weight: 600;
}

.aiobi-user-info small {
  color: var(--aiobi-text-muted);
  font-size: 14px;
  margin-top: 1px;
}

.aiobi-logout {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--aiobi-text-muted);
  display: flex;
  height: 30px;
  justify-content: center;
  padding: 0;
  width: 30px;
}

.aiobi-logout:hover {
  background: #fff0ee;
  color: var(--aiobi-danger);
}

.aiobi-shell {
  margin-left: var(--aiobi-sidebar-width);
  min-height: 100vh;
}

.aiobi-topbar {
  align-items: center;
  backdrop-filter: blur(14px);
  background: rgba(250, 250, 250, 0.9);
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: space-between;
  min-height: 54px;
  padding: 8px 32px;
  position: sticky;
  top: 0;
  z-index: 1020;
}

.aiobi-topbar-left,
.aiobi-topbar-right {
  align-items: center;
  display: flex;
}

.aiobi-topbar-left {
  gap: 12px;
}

.aiobi-topbar-right {
  gap: 14px;
}

.aiobi-topbar-date {
  align-items: center;
  color: var(--aiobi-text-muted);
  display: flex;
  font-size: 14px;
  gap: 7px;
  text-transform: capitalize;
}

.aiobi-topbar-date svg {
  fill: none;
  height: 14px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 14px;
}

.aiobi-organization-chip {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: 999px;
  color: var(--aiobi-text-secondary);
  display: inline-flex;
  font-size: 16px;
  gap: 7px;
  max-width: 260px;
  overflow: hidden;
  padding: 6px 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aiobi-live-dot {
  background: var(--aiobi-success);
  border-radius: 50%;
  flex: 0 0 auto;
  height: 6px;
  width: 6px;
}

.aiobi-topbar-user {
  color: var(--aiobi-text-secondary);
  font-size: 16px;
  font-weight: 550;
}

.aiobi-main {
  margin: 0 auto;
  max-width: 1600px;
  padding: 28px 32px 72px;
}

.aiobi-messages {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.aiobi-message {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border-strong);
  border-left: 3px solid currentColor;
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-text-secondary);
  display: flex;
  font-size: 15.5px;
  gap: 10px;
  padding: 10px 12px;
}

.aiobi-message-icon {
  align-items: center;
  border-radius: 50%;
  display: flex;
  flex: 0 0 auto;
  height: 25px;
  justify-content: center;
  width: 25px;
}

.aiobi-message-icon svg {
  fill: none;
  height: 14px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 14px;
}

.aiobi-message.is-success { color: #18764e; }
.stock-negative { color: #a73527; display: block; }
.aiobi-version { color: var(--aiobi-text-muted); font-size: 11px; margin: 0; padding: 4px 16px 10px; }
.aiobi-message.is-success .aiobi-message-icon { background: #eaf8f1; }
.aiobi-message.is-error,
.aiobi-message.is-danger { color: #a73527; }
.aiobi-message.is-error .aiobi-message-icon,
.aiobi-message.is-danger .aiobi-message-icon { background: #fff0ee; }
.aiobi-message.is-warning { color: #7a5b00; }
.aiobi-message.is-warning .aiobi-message-icon { background: #fbf1dd; }
.aiobi-message.is-info { color: #315f9b; }
.aiobi-message.is-info .aiobi-message-icon { background: #eef4ff; }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(74, 60, 92, 0.22);
  outline-offset: 2px;
}

.aiobi-menu-toggle {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius-sm);
  display: none;
  height: 34px;
  padding: 8px;
  width: 36px;
}

.aiobi-menu-toggle > span:not(.visually-hidden) {
  background: var(--aiobi-text);
  display: block;
  height: 1.5px;
  margin: 3px 0;
  width: 18px;
}

.aiobi-mobile-overlay {
  display: none;
}

.btn-primary {
  --bs-btn-bg: var(--aiobi-primary);
  --bs-btn-border-color: var(--aiobi-primary);
  --bs-btn-hover-bg: var(--aiobi-primary-dark);
  --bs-btn-hover-border-color: var(--aiobi-primary-dark);
  --bs-btn-active-bg: var(--aiobi-primary-dark);
  --bs-btn-active-border-color: var(--aiobi-primary-dark);
}

.card {
  --bs-card-border-color: var(--aiobi-border);
  --bs-card-border-radius: var(--aiobi-radius);
}

.shadow-sm {
  box-shadow: var(--aiobi-shadow-sm) !important;
}

.form-control,
.form-select {
  border-color: var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--aiobi-primary);
  box-shadow: 0 0 0 0.2rem rgba(74, 60, 92, 0.12);
}

form p label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
}

form p input {
  border: 1px solid var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
  display: block;
  padding: 0.5rem 0.75rem;
  width: 100%;
}

.aiobi-auth-main {
  background: var(--aiobi-surface);
  min-height: 100vh;
  width: 100%;
}

.aiobi-login-layout {
  display: grid;
  grid-template-columns: minmax(340px, 42%) 1fr;
  min-height: 100vh;
}

.aiobi-login-intro {
  background: var(--aiobi-primary);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: clamp(40px, 7vw, 88px);
  position: relative;
}

.aiobi-login-intro::after {
  animation: aiobi-orbit-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  bottom: -170px;
  content: "";
  height: 410px;
  position: absolute;
  right: -150px;
  width: 410px;
}

.aiobi-login-intro-content,
.aiobi-login-intro-footer {
  position: relative;
  z-index: 1;
}

.aiobi-login-intro-content {
  animation: aiobi-rise-in 520ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.aiobi-login-intro-footer {
  animation: aiobi-fade-in 520ms 180ms ease both;
}

.aiobi-login-logo {
  align-items: center;
  background: #fff;
  border-radius: 16px;
  display: flex;
  height: 62px;
  justify-content: center;
  margin-bottom: 56px;
  width: 62px;
}

.aiobi-login-logo img {
  transition: transform 220ms ease;
}

.aiobi-login-logo:hover img {
  transform: scale(1.06) rotate(-2deg);
}

.aiobi-login-logo img {
  height: 52px;
  object-fit: contain;
  width: 52px;
}

.aiobi-login-intro h1 {
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 600;
  letter-spacing: -0.04em;
  margin: 0 0 22px;
}

.aiobi-login-intro-content > p:last-child {
  color: rgba(255, 255, 255, 0.74);
  font-size: 21px;
  line-height: 1.75;
  max-width: 390px;
}

.aiobi-login-intro-footer {
  color: rgba(255, 255, 255, 0.58);
  font-size: 15.5px;
  margin: 48px 0 0;
}

.aiobi-login-panel {
  align-items: center;
  display: flex;
  justify-content: center;
  padding: 48px;
}

.aiobi-login-form-wrap {
  animation: aiobi-rise-in 520ms 90ms cubic-bezier(0.22, 1, 0.36, 1) both;
  max-width: 390px;
  width: 100%;
}

.aiobi-login-mobile-brand {
  align-items: center;
  display: none;
  font-size: 18px;
  font-weight: 650;
  gap: 9px;
  margin-bottom: 54px;
}

.aiobi-login-mobile-brand img {
  height: 34px;
  object-fit: contain;
  width: 34px;
}

.aiobi-login-heading h2 {
  font-size: 32px;
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin: 0 0 12px;
}

.aiobi-login-heading > p:last-child {
  color: var(--aiobi-text-muted);
  font-size: 18px;
  line-height: 1.6;
  margin: 0;
}

.aiobi-login-form {
  margin-top: 34px;
}

.aiobi-login-field {
  margin-bottom: 19px;
}

.aiobi-login-field label {
  display: block;
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 8px;
}

.aiobi-login-input {
  position: relative;
}

.aiobi-login-input svg {
  fill: none;
  height: 17px;
  left: 14px;
  position: absolute;
  stroke: var(--aiobi-text-muted);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  top: 50%;
  transform: translateY(-50%);
  transition: stroke 150ms ease, transform 150ms ease;
  width: 17px;
}

.aiobi-login-input input {
  border: 1px solid var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
  font-size: 18px;
  height: 46px;
  outline: none;
  padding: 0 14px 0 43px;
  transition: border-color 150ms ease, box-shadow 150ms ease;
  width: 100%;
}

.aiobi-login-input input::placeholder {
  color: #9a9a9a;
}

.aiobi-login-input input:focus {
  border-color: var(--aiobi-primary);
  box-shadow: 0 0 0 3px rgba(74, 60, 92, 0.1);
}

.aiobi-login-input:focus-within svg {
  stroke: var(--aiobi-primary);
  transform: translateY(-50%) scale(1.08);
}

.aiobi-login-submit {
  align-items: center;
  background: var(--aiobi-primary);
  border: 1px solid var(--aiobi-primary);
  border-radius: var(--aiobi-radius-sm);
  color: #fff;
  display: flex;
  font-size: 18px;
  font-weight: 600;
  height: 46px;
  justify-content: center;
  margin-top: 27px;
  padding: 0 18px;
  position: relative;
  transition: background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
  width: 100%;
}

.aiobi-login-submit:hover {
  background: var(--aiobi-primary-dark);
  box-shadow: 0 7px 16px rgba(54, 45, 69, 0.18);
  transform: translateY(-1px);
}

.aiobi-login-submit:active {
  box-shadow: none;
  transform: translateY(0);
}

.aiobi-login-submit svg {
  fill: none;
  height: 17px;
  position: absolute;
  right: 17px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 17px;
}

.aiobi-login-error {
  background: #fff0ee;
  border-left: 3px solid var(--aiobi-danger);
  color: #9d2618;
  font-size: 17px;
  margin-bottom: 20px;
  padding: 10px 12px;
}

.aiobi-field-error {
  color: var(--aiobi-danger);
  display: block;
  font-size: 15.5px;
  margin-top: 6px;
}

.aiobi-login-help {
  border-top: 1px solid var(--aiobi-border);
  color: var(--aiobi-text-muted);
  font-size: 15.5px;
  line-height: 1.6;
  margin: 36px 0 0;
  padding-top: 20px;
}

.workspace-hero {
  align-items: flex-end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 26px;
}

.workspace-eyebrow {
  color: var(--aiobi-primary);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin: 0 0 7px;
  text-transform: uppercase;
}

.workspace-hero h1 {
  font-size: 31px;
  font-weight: 650;
  letter-spacing: -0.025em;
  margin: 0 0 6px;
}

.workspace-hero > div > p:last-child,
.workspace-card-heading p {
  color: var(--aiobi-text-muted);
  font-size: 17px;
  margin: 0;
}

.workspace-primary-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 9px;
}

.workspace-primary-actions .btn {
  font-size: 17px;
  padding: 9px 14px;
}

.workspace-stats {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.workspace-stat {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  color: var(--aiobi-text);
  display: flex;
  gap: 13px;
  min-height: 116px;
  padding: 17px;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.workspace-stat:hover {
  border-color: var(--aiobi-border-strong);
  box-shadow: var(--aiobi-shadow-sm);
  color: var(--aiobi-text);
  transform: translateY(-2px);
}

.workspace-stat.has-alert {
  border-color: #f1cec9;
}

.workspace-stat-icon,
.workspace-shortcut-icon {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 9px;
  color: var(--aiobi-primary);
  display: flex;
  flex: 0 0 auto;
  font-size: 17px;
  font-weight: 700;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.workspace-stat-icon svg,
.workspace-shortcut-icon svg {
  fill: none;
  height: 18px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 18px;
}

.workspace-stat-icon.is-valid {
  background: #eaf8f1;
  color: #18764e;
}

.workspace-stat-icon.is-open {
  background: #eef4ff;
  color: #315f9b;
}

.workspace-stat-icon.is-late {
  background: #fff0ee;
  color: var(--aiobi-danger);
}

.workspace-stat > span:last-child {
  display: block;
  min-width: 0;
}

.workspace-stat small,
.workspace-stat strong,
.workspace-stat em {
  display: block;
  font-style: normal;
}

.workspace-stat > span > small {
  color: var(--aiobi-text-secondary);
  font-size: 14.5px;
  font-weight: 550;
}

.workspace-stat strong {
  font-size: 24px;
  font-weight: 650;
  line-height: 1.25;
  margin: 2px 0;
  white-space: nowrap;
}

.workspace-stat strong small {
  display: inline;
  font-size: 12.5px;
}

.workspace-stat em {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
}

.workspace-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.8fr);
  margin-bottom: 18px;
}

.workspace-card {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  overflow: hidden;
}

.workspace-card-heading {
  align-items: center;
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: space-between;
  min-height: 69px;
  padding: 15px 18px;
}

.workspace-card-heading h2 {
  font-size: 19.5px;
  font-weight: 650;
  margin: 0 0 4px;
}

.workspace-card-heading > a {
  color: var(--aiobi-primary);
  font-size: 15.5px;
  font-weight: 600;
  text-decoration: none;
}

.workspace-shortcut-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 8px;
}

.workspace-shortcut-grid > a {
  align-items: center;
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-text);
  display: flex;
  gap: 11px;
  margin: 3px;
  min-height: 68px;
  padding: 10px;
  text-decoration: none;
  transition: background 150ms ease;
}

.workspace-shortcut-grid > a:hover {
  background: var(--aiobi-primary-soft);
}

.workspace-shortcut-grid > a > span:nth-child(2) {
  flex: 1;
  min-width: 0;
}

.workspace-shortcut-grid strong,
.workspace-shortcut-grid small {
  display: block;
}

.workspace-shortcut-grid strong {
  font-size: 16px;
  font-weight: 600;
}

.workspace-shortcut-grid small {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
  margin-top: 2px;
}

.workspace-shortcut-grid b {
  color: var(--aiobi-text-muted);
  font-size: 20.5px;
  font-weight: 400;
}

.workspace-tasks > a {
  align-items: center;
  border-bottom: 1px solid var(--aiobi-border);
  color: var(--aiobi-text);
  display: flex;
  gap: 10px;
  min-height: 56px;
  padding: 9px 17px;
  text-decoration: none;
}

.workspace-tasks > a:last-child {
  border-bottom: 0;
}

.workspace-tasks > a:hover {
  background: var(--aiobi-bg);
}

.workspace-task-marker {
  background: var(--aiobi-warning);
  border-radius: 50%;
  height: 7px;
  width: 7px;
}

.workspace-task-marker.is-late {
  background: var(--aiobi-danger);
}

.workspace-tasks > a > span:nth-child(2) {
  flex: 1;
  min-width: 0;
}

.workspace-tasks strong,
.workspace-tasks small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-tasks strong {
  font-size: 14.5px;
  font-weight: 600;
}

.workspace-tasks small {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  margin-top: 2px;
}

.workspace-tasks em {
  background: #fbf1dd;
  border-radius: 99px;
  color: #7a5b00;
  font-size: 12px;
  font-style: normal;
  padding: 4px 7px;
}

.workspace-tasks em.is-danger {
  background: #fff0ee;
  color: #a73527;
}

.workspace-empty {
  align-items: center;
  color: var(--aiobi-text-muted);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 134px;
  padding: 24px;
  text-align: center;
}

.workspace-empty > span {
  align-items: center;
  background: #eaf8f1;
  border-radius: 50%;
  color: var(--aiobi-success);
  display: flex;
  height: 30px;
  justify-content: center;
  margin-bottom: 8px;
  width: 30px;
}

.workspace-empty strong {
  color: var(--aiobi-text-secondary);
  font-size: 15.5px;
}

.workspace-empty small {
  font-size: 13.5px;
  margin-top: 3px;
}

.workspace-table {
  border-collapse: collapse;
  width: 100%;
}

.workspace-table th {
  background: #fcfcfc;
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.04em;
  padding: 10px 18px;
  text-transform: uppercase;
}

.workspace-table td {
  border-top: 1px solid var(--aiobi-border);
  color: var(--aiobi-text-secondary);
  font-size: 14.5px;
  padding: 12px 18px;
}

.workspace-table td:first-child a {
  color: var(--aiobi-text);
  font-weight: 600;
  text-decoration: none;
}

.workspace-amount {
  color: var(--aiobi-text) !important;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  white-space: nowrap;
}

.workspace-status {
  border-radius: 99px;
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 7px;
}

.workspace-status.is-draft {
  background: #fbf1dd;
  color: #7a5b00;
}

.workspace-status.is-paid {
  background: #eaf8f1;
  color: #18764e;
}

.workspace-status.is-late {
  background: #fff0ee;
  color: #a73527;
}

.workspace-status.is-valid {
  background: var(--aiobi-primary-soft);
  color: var(--aiobi-primary);
}

.workspace-row-link {
  color: var(--aiobi-text-muted);
  text-decoration: none;
}

.workspace-technical-empty {
  align-items: center;
  display: flex;
  flex-direction: column;
  min-height: 60vh;
  justify-content: center;
  text-align: center;
}

.workspace-technical-empty > span {
  align-items: center;
  background: var(--aiobi-primary);
  border-radius: 12px;
  color: #fff;
  display: flex;
  font-weight: 700;
  height: 48px;
  justify-content: center;
  width: 48px;
}

.workspace-technical-empty h1 {
  font-size: 24px;
  margin: 16px 0 7px;
}

.workspace-technical-empty p {
  color: var(--aiobi-text-muted);
  font-size: 17px;
}

.list-page-heading {
  align-items: flex-end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 22px;
}

.list-page-heading h1 {
  font-size: 31px;
  font-weight: 650;
  letter-spacing: -0.025em;
  margin: 0 0 6px;
}

.list-page-heading > div > p:last-child {
  color: var(--aiobi-text-muted);
  font-size: 17px;
  margin: 0;
}

.list-page-heading > .btn {
  flex: 0 0 auto;
  font-size: 17px;
  padding: 9px 14px;
}

.list-panel {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  overflow: hidden;
}

.invoice-filters {
  align-items: flex-end;
  border-bottom: 1px solid var(--aiobi-border);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1.7fr) repeat(3, minmax(135px, 0.8fr));
  padding: 15px 17px;
  position: relative;
}

.customer-list-filters {
  grid-template-columns: minmax(260px, 1.8fr) repeat(2, minmax(150px, 0.7fr));
}

.catalog-list-filters {
  grid-template-columns: minmax(240px, 1.7fr) repeat(3, minmax(130px, 0.7fr));
}

.invoice-search-field {
  position: relative;
}

.invoice-search-field svg {
  fill: none;
  height: 16px;
  left: 12px;
  position: absolute;
  stroke: var(--aiobi-text-muted);
  stroke-linecap: round;
  stroke-width: 1.7;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
}

.invoice-search-field input,
.invoice-filter-field select {
  background: #fff;
  border: 1px solid var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-text);
  font-size: 15.5px;
  height: 39px;
  outline: none;
  width: 100%;
}

.invoice-search-field input {
  padding: 0 12px 0 38px;
}

.invoice-filter-field select {
  padding: 0 28px 0 10px;
}

.invoice-search-field input:focus,
.invoice-filter-field select:focus {
  border-color: var(--aiobi-primary);
  box-shadow: 0 0 0 3px rgba(74, 60, 92, 0.08);
}

.invoice-filter-field label {
  color: var(--aiobi-text-muted);
  display: block;
  font-size: 12.5px;
  font-weight: 650;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.invoice-loading {
  background: var(--aiobi-primary);
  border-radius: 99px;
  bottom: -11px;
  color: #fff;
  font-size: 12.5px;
  left: 50%;
  padding: 4px 9px;
  position: absolute;
  transform: translateX(-50%);
  z-index: 2;
}

.list-results-meta {
  align-items: center;
  background: #fcfcfc;
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: space-between;
  min-height: 37px;
  padding: 7px 17px;
}

.list-results-meta span {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
}

.list-results-meta a {
  color: var(--aiobi-primary);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
}

.invoice-list-table {
  border-collapse: collapse;
  min-width: 990px;
  width: 100%;
}

.invoice-list-table th {
  color: var(--aiobi-text-muted);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.04em;
  padding: 10px 14px;
  text-transform: uppercase;
  white-space: nowrap;
}

.invoice-list-table td {
  border-top: 1px solid var(--aiobi-border);
  color: var(--aiobi-text-secondary);
  font-size: 14px;
  padding: 12px 14px;
  vertical-align: middle;
}

.invoice-list-table tbody tr {
  transition: background 120ms ease;
}

.invoice-list-table tbody tr:hover {
  background: #fcfbfd;
}

.invoice-list-table td strong,
.invoice-list-table td small {
  display: block;
}

.invoice-list-table td strong,
.invoice-reference {
  color: var(--aiobi-text);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
}

.invoice-list-table td small {
  color: var(--aiobi-text-muted);
  font-size: 12px;
  margin-top: 3px;
}

.invoice-list-table .is-numeric {
  color: var(--aiobi-text);
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.invoice-type-code {
  background: var(--aiobi-surface-muted);
  border-radius: 5px;
  color: var(--aiobi-text-secondary);
  display: inline-block;
  font-size: 12.5px;
  font-weight: 650;
  min-width: 27px;
  padding: 4px 6px;
  text-align: center;
}

.invoice-overdue-date {
  color: var(--aiobi-danger);
  font-weight: 600;
}

.workspace-status.is-open {
  background: #eef4ff;
  color: #315f9b;
}

.workspace-status.is-neutral {
  background: var(--aiobi-surface-muted);
  color: var(--aiobi-text-secondary);
}

.customer-type-badge {
  background: var(--aiobi-primary-soft);
  border-radius: 5px;
  color: var(--aiobi-primary);
  display: inline-block;
  font-size: 12.5px;
  font-weight: 700;
  min-width: 27px;
  padding: 4px 6px;
  text-align: center;
}

.customer-list-table {
  min-width: 850px;
}

.catalog-list-table {
  min-width: 940px;
}

.audit-page-heading {
  align-items: center;
}

.audit-readonly-badge {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 99px;
  color: var(--aiobi-primary);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  gap: 6px;
  padding: 7px 10px;
}

.audit-readonly-badge svg {
  fill: none;
  height: 14px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 14px;
}

.audit-filters {
  align-items: end;
  border-bottom: 1px solid var(--aiobi-border);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1.45fr) minmax(170px, 0.9fr) minmax(150px, 0.8fr) repeat(2, minmax(125px, 0.6fr));
  padding: 15px 17px;
  position: relative;
}

.audit-filters .invoice-filter-field input {
  background: #fff;
  border: 1px solid var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-text);
  font-size: 14px;
  height: 39px;
  outline: none;
  padding: 0 9px;
  width: 100%;
}

.audit-filters .invoice-filter-field input:focus {
  border-color: var(--aiobi-primary);
  box-shadow: 0 0 0 3px rgba(74, 60, 92, 0.08);
}

.audit-filter-errors {
  background: #fff0ee;
  border-bottom: 1px solid #f1cec9;
  color: #9d2618;
  display: flex;
  flex-direction: column;
  font-size: 14px;
  gap: 3px;
  padding: 9px 17px;
}

.audit-list-table {
  min-width: 900px;
}

.audit-timestamp strong {
  font-variant-numeric: tabular-nums;
}

.audit-event-badge {
  border-radius: 99px;
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 7px;
  white-space: nowrap;
}

.audit-event-badge.is-neutral {
  background: var(--aiobi-surface-muted);
  color: var(--aiobi-text-secondary);
}

.audit-event-badge.is-success {
  background: #eaf8f1;
  color: #18764e;
}

.audit-event-badge.is-danger {
  background: #fff0ee;
  color: #a73527;
}

.audit-event-badge.is-info {
  background: var(--aiobi-primary-soft);
  color: var(--aiobi-primary);
}

.audit-detail-cell {
  max-width: 290px;
}

.audit-detail-cell summary {
  color: var(--aiobi-primary);
  cursor: pointer;
  font-size: 13.5px;
  font-weight: 600;
}

.audit-detail-cell details > div {
  background: var(--aiobi-bg);
  border-left: 2px solid var(--aiobi-border-strong);
  margin-top: 7px;
  max-width: 280px;
  overflow-wrap: anywhere;
  padding: 7px 9px;
}

.audit-detail-cell p,
.audit-detail-cell code {
  color: var(--aiobi-text-secondary);
  font-family: inherit;
  font-size: 12px;
  margin: 0;
  white-space: normal;
}

.audit-detail-cell pre.audit-metadata {
  color: var(--aiobi-text-secondary);
  font-size: 11.5px;
  margin: 0;
  max-height: 320px;
  overflow: auto;
  white-space: pre-wrap;
}

.audit-detail-cell p.is-error {
  color: var(--aiobi-danger);
}

.business-form-heading {
  margin-bottom: 22px;
}

.business-form-heading > a {
  align-items: center;
  color: var(--aiobi-text-muted);
  display: inline-flex;
  font-size: 14px;
  gap: 7px;
  margin-bottom: 18px;
  text-decoration: none;
  transition: color 150ms ease;
}

.business-form-heading > a:hover {
  color: var(--aiobi-primary);
}

.business-form-heading > a > span,
.invoice-detail-back > span {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: 8px;
  color: var(--aiobi-primary);
  display: inline-flex;
  font-size: 21px;
  font-weight: 600;
  height: 27px;
  justify-content: center;
  line-height: 1;
  transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
  width: 27px;
}

.business-form-heading > a:hover > span,
.invoice-detail-back:hover > span {
  background: var(--aiobi-primary-soft);
  border-color: #d8c9e1;
  transform: translateX(-2px);
}

.business-form-heading h1 {
  font-size: 31px;
  font-weight: 650;
  letter-spacing: -0.025em;
  margin: 0 0 6px;
}

.business-form-heading > p:last-child {
  color: var(--aiobi-text-muted);
  font-size: 17px;
  margin: 0;
}

.business-form {
  margin: 0 auto;
  max-width: 1080px;
}

.business-form-global-error {
  background: #fff0ee;
  border-left: 3px solid var(--aiobi-danger);
  color: #9d2618;
  display: flex;
  flex-direction: column;
  font-size: 15.5px;
  gap: 4px;
  margin-bottom: 14px;
  padding: 11px 13px;
}

.business-form-section {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(210px, 0.72fr) minmax(0, 1.6fr);
  margin-bottom: 14px;
  padding: 23px;
}

.business-form-section-compact {
  align-items: center;
}

.business-form-section-heading {
  align-items: flex-start;
  display: flex;
  gap: 11px;
}

.business-form-section-icon {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 8px;
  color: var(--aiobi-primary);
  display: flex;
  flex: 0 0 auto;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.business-form-section-icon svg {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 16px;
}

.business-form-section-heading h2 {
  font-size: 17px;
  font-weight: 650;
  margin: 1px 0 4px;
}

.business-form-section-heading p {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
  line-height: 1.5;
  margin: 0;
}

.business-form-fields {
  display: grid;
  gap: 17px 15px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.business-field-wide {
  grid-column: 1 / -1;
}

.customer-choice-options {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.customer-choice-options > div label {
  align-items: center;
  background: var(--aiobi-surface-muted);
  border: 1px solid var(--aiobi-border);
  border-radius: 8px;
  color: var(--aiobi-text-secondary);
  cursor: pointer;
  display: flex;
  font-size: 14px;
  gap: 8px;
  min-height: 38px;
  padding: 9px 11px;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.customer-choice-options > div label:hover {
  background: var(--aiobi-primary-soft);
  border-color: #d8c9e1;
  color: var(--aiobi-primary);
}

.customer-choice-options input {
  accent-color: var(--aiobi-primary);
  margin: 0;
}

.customer-choice-options > div label:has(input:checked) {
  background: var(--aiobi-primary-soft);
  border-color: var(--aiobi-primary);
  color: var(--aiobi-primary);
  font-weight: 650;
}

.business-field > label {
  color: var(--aiobi-text-secondary);
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 6px;
}

.required-mark {
  color: var(--aiobi-danger);
}

.business-field .form-control,
.business-field select {
  border-color: var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius-sm);
  font-size: 15.5px;
  min-height: 40px;
}

.business-field textarea.form-control {
  min-height: 82px;
  resize: vertical;
}

.business-field [aria-invalid="true"] {
  border-color: var(--aiobi-danger);
}

.business-input-suffix {
  display: flex;
}

.business-input-suffix .form-control {
  border-radius: var(--aiobi-radius-sm) 0 0 var(--aiobi-radius-sm);
}

.business-input-suffix > span {
  align-items: center;
  background: var(--aiobi-surface-muted);
  border: 1px solid var(--aiobi-border-strong);
  border-left: 0;
  border-radius: 0 var(--aiobi-radius-sm) var(--aiobi-radius-sm) 0;
  color: var(--aiobi-text-muted);
  display: flex;
  flex: 0 0 auto;
  font-size: 12.5px;
  font-weight: 650;
  padding: 0 11px;
}

.organization-logo-preview {
  align-items: center;
  background: var(--aiobi-bg);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  gap: 11px;
  margin-bottom: 9px;
  padding: 9px 11px;
}

.organization-logo-preview img {
  background: #fff;
  border: 1px solid var(--aiobi-border);
  border-radius: 7px;
  height: 42px;
  object-fit: contain;
  padding: 3px;
  width: 42px;
}

.organization-logo-preview span {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
}

.organization-logo-field input[type="file"] {
  padding: 7px 9px;
}

.business-readonly-value {
  align-items: center;
  background: var(--aiobi-surface-muted);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  height: 40px;
  justify-content: space-between;
  padding: 0 12px;
}

.business-readonly-value strong {
  color: var(--aiobi-text);
  font-size: 15.5px;
}

.business-readonly-value small {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
}

.invoice-draft-heading-line {
  align-items: center;
  display: flex;
  gap: 10px;
}

.invoice-draft-reference {
  color: var(--aiobi-text-muted);
  font-size: 14px;
  font-weight: 550;
}

.invoice-draft-heading-line h1 {
  margin-bottom: 6px;
}

.business-form-notice {
  align-items: flex-start;
  background: #fbf3e4;
  border: 1px solid #f1dfb9;
  border-radius: var(--aiobi-radius);
  color: #694f08;
  display: flex;
  gap: 10px;
  margin: 0 auto 14px;
  max-width: 1080px;
  padding: 12px 14px;
}

.business-form-notice > svg {
  fill: none;
  flex: 0 0 auto;
  height: 17px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 17px;
}

.business-form-notice strong {
  display: block;
  font-size: 14.5px;
}

.business-form-notice p {
  font-size: 13.5px;
  line-height: 1.5;
  margin: 2px 0 0;
}

.business-field-inline-help {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 5px;
}

.business-field-inline-help small {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
}

.business-field-inline-help a {
  color: var(--aiobi-primary);
  flex: 0 0 auto;
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: none;
}

.invoice-recalculation-warning {
  background: var(--aiobi-primary-soft);
  border-left: 3px solid var(--aiobi-primary);
  color: var(--aiobi-primary);
  font-size: 13.5px;
  padding: 9px 11px;
}

.invoice-line-editor,
.invoice-line-fields {
  max-width: 860px;
}

.invoice-line-field-group {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  margin-bottom: 12px;
  padding: 18px;
}

.invoice-line-group-heading {
  align-items: flex-start;
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  padding-bottom: 13px;
}

.invoice-line-group-heading h3 {
  font-size: 16px;
  font-weight: 650;
  margin: 1px 0 3px;
}

.invoice-line-group-heading p {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  margin: 0;
}

.invoice-line-tax-note {
  align-items: flex-start;
  background: var(--aiobi-primary-soft);
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-primary);
  display: flex;
  font-size: 13.5px;
  gap: 8px;
  line-height: 1.5;
  padding: 10px 12px;
}

.invoice-line-tax-note svg {
  fill: none;
  flex: 0 0 auto;
  height: 15px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 15px;
}

.invoice-line-actions {
  max-width: 860px;
}

.invoice-detail-header {
  align-items: flex-end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.invoice-detail-back {
  align-items: center;
  color: var(--aiobi-text-muted);
  display: inline-flex;
  font-size: 14px;
  gap: 7px;
  margin-bottom: 17px;
  text-decoration: none;
  transition: color 150ms ease;
}

.invoice-detail-back:hover {
  color: var(--aiobi-primary);
}

.invoice-detail-title-line {
  align-items: center;
  display: flex;
  gap: 11px;
}

.invoice-detail-title-line h1 {
  font-size: 31px;
  font-weight: 650;
  letter-spacing: -0.025em;
  margin: 0;
}

.invoice-detail-title-line .workspace-eyebrow {
  margin-bottom: 4px;
}

.invoice-detail-subtitle {
  color: var(--aiobi-text-muted);
  font-size: 14.5px;
  margin: 7px 0 0;
}

.invoice-actions-menu > .btn {
  font-size: 14.5px;
  min-width: 108px;
  padding: 8px 12px;
}

.invoice-actions-menu .dropdown-menu {
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius-sm);
  box-shadow: 0 10px 28px rgba(26, 26, 26, 0.12);
  min-width: 220px;
  padding: 6px;
}

.invoice-actions-menu .dropdown-item {
  border-radius: 6px;
  color: var(--aiobi-text-secondary);
  font-size: 14px;
  padding: 8px 10px;
}

.invoice-actions-menu .dropdown-item:hover {
  background: var(--aiobi-primary-soft);
  color: var(--aiobi-primary);
}

.invoice-actions-menu .invoice-action-primary {
  color: var(--aiobi-primary);
  font-weight: 650;
}

.invoice-actions-menu .invoice-action-danger {
  color: var(--aiobi-danger);
}

.invoice-actions-menu .invoice-action-danger:hover {
  background: #fff0ee;
  color: #a73527;
}

.invoice-actions-menu .dropdown-item:disabled {
  color: var(--aiobi-text-muted);
  opacity: 0.55;
}

.invoice-actions-menu form {
  margin: 0;
}

.invoice-context-notice {
  align-items: flex-start;
  background: var(--aiobi-primary-soft);
  border: 1px solid #e6ddeb;
  border-radius: var(--aiobi-radius-sm);
  color: var(--aiobi-primary);
  display: flex;
  font-size: 14px;
  gap: 9px;
  margin-bottom: 12px;
  padding: 10px 12px;
}

.invoice-context-notice.is-warning {
  background: #fbf3e4;
  border-color: #f1dfb9;
  color: #694f08;
}

.invoice-context-notice svg {
  fill: none;
  flex: 0 0 auto;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 16px;
}

.invoice-context-notice strong,
.invoice-context-notice span {
  display: block;
}

.invoice-context-notice span {
  margin-top: 2px;
}

.invoice-summary-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
}

.invoice-summary-card {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  min-height: 88px;
  padding: 14px 52px 14px 14px;
  position: relative;
}

.invoice-summary-icon {
  background: var(--aiobi-primary-soft);
  border-radius: 8px;
  color: var(--aiobi-primary);
  display: grid;
  height: 32px;
  line-height: 0;
  padding: 0;
  place-items: center;
  position: absolute;
  right: 13px;
  top: 13px;
  width: 32px;
}

.invoice-summary-icon svg {
  display: block;
  fill: none;
  height: 16px;
  margin: 0;
  overflow: visible;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transform: translate(0, 0);
  width: 16px;
}

.invoice-summary-card > div {
  min-width: 0;
}

.invoice-summary-card > div small,
.invoice-summary-card > div strong,
.invoice-summary-card > div span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.invoice-summary-card > div small {
  color: var(--aiobi-text-muted);
  font-size: 12px;
  text-transform: uppercase;
}

.invoice-summary-card > div strong {
  color: var(--aiobi-text);
  font-size: 14.5px;
  margin: 2px 0;
}

.invoice-summary-card > div span {
  color: var(--aiobi-text-muted);
  font-size: 12px;
}

.invoice-notes-card {
  background: #fbf3e4;
  border-left: 3px solid #d4a43a;
  color: #694f08;
  margin-bottom: 14px;
  padding: 10px 12px;
}

.invoice-notes-card strong {
  font-size: 12.5px;
  text-transform: uppercase;
}

.invoice-notes-card p {
  font-size: 14px;
  margin: 3px 0 0;
}

.invoice-detail-card {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  overflow: hidden;
}

.business-empty-state {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
  margin: 0;
  padding: 15px 16px;
}

.business-inline-form {
  align-items: end;
  background: var(--aiobi-bg);
  border-top: 1px solid var(--aiobi-border);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(170px, 0.65fr) minmax(230px, 1.35fr) auto;
  padding: 14px 16px;
}

.business-inline-form .business-field {
  margin: 0;
}

.business-inline-form .btn {
  font-size: 14px;
  min-height: 34px;
  padding: 7px 13px;
}

.invoice-credit-note-form {
  border-top: 1px solid var(--aiobi-border);
  margin-top: 5px;
  padding: 8px 12px 4px;
}

.invoice-credit-note-form label {
  color: var(--aiobi-text-muted);
  display: block;
  font-size: 11px;
  font-weight: 650;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.invoice-credit-note-form .form-control {
  font-size: 13.5px;
  margin-bottom: 6px;
  min-height: 32px;
}

.invoice-credit-note-form .dropdown-item {
  border-radius: 5px;
  white-space: normal;
}

@media (max-width: 720px) {
  .business-inline-form {
    grid-template-columns: 1fr;
  }

  .business-inline-form .btn {
    width: 100%;
  }
}

.invoice-lines-card,
.invoice-payments-card {
  margin-bottom: 14px;
}

.invoice-card-header {
  align-items: center;
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: space-between;
  min-height: 63px;
  padding: 13px 17px;
}

.invoice-card-header h2 {
  font-size: 18px;
  font-weight: 650;
  margin: 0 0 3px;
}

.invoice-card-header p {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  margin: 0;
}

.invoice-detail-table {
  border-collapse: collapse;
  min-width: 930px;
  width: 100%;
}

.invoice-detail-table th {
  background: #fcfcfc;
  color: var(--aiobi-text-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.035em;
  padding: 9px 12px;
  text-transform: uppercase;
  white-space: nowrap;
}

.invoice-detail-table td {
  border-top: 1px solid var(--aiobi-border);
  color: var(--aiobi-text-secondary);
  font-size: 13.5px;
  padding: 11px 12px;
  vertical-align: middle;
}

.invoice-detail-table td strong,
.invoice-detail-table td small {
  display: block;
}

.invoice-detail-table td strong {
  color: var(--aiobi-text);
  font-size: 14px;
}

.invoice-detail-table td small {
  color: var(--aiobi-text-muted);
  font-size: 11px;
  margin-top: 2px;
}

.invoice-detail-table .is-numeric {
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.invoice-line-total {
  color: var(--aiobi-text) !important;
  font-weight: 650;
}

.invoice-line-actions-cell {
  align-items: center;
  display: flex;
  gap: 6px;
  white-space: nowrap;
}

.invoice-line-actions-cell a,
.invoice-line-actions-cell button {
  background: none;
  border: 0;
  color: var(--aiobi-primary);
  font-size: 12px;
  padding: 0;
  text-decoration: none;
}

.invoice-line-actions-cell button {
  color: var(--aiobi-danger);
}

.invoice-table-remove-form {
  display: flex;
  justify-content: flex-end;
  margin: 0;
}

.invoice-table-remove {
  align-items: center;
  background: #fff7f5;
  border: 1px solid #f0c9c2;
  border-radius: 999px;
  color: #a73527;
  display: inline-flex;
  font-family: inherit;
  font-size: 12px;
  font-weight: 650;
  gap: 4px;
  line-height: 1;
  padding: 6px 9px;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease,
    transform 150ms ease;
}

.invoice-table-remove span {
  font-size: 18px;
  line-height: .7;
}

.invoice-table-remove:hover {
  background: #fff0ee;
  border-color: #dea89e;
  box-shadow: 0 4px 10px rgba(167, 53, 39, 0.1);
  transform: translateY(-1px);
}

.invoice-table-remove:focus-visible {
  box-shadow: 0 0 0 3px rgba(167, 53, 39, 0.16);
  outline: 0;
}

.invoice-lines-empty {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 90px;
  text-align: center;
}

.invoice-lines-empty strong {
  font-size: 14px !important;
}

.invoice-detail-columns {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.65fr);
  margin-bottom: 14px;
}

.invoice-detail-columns > .invoice-totals-card:only-child {
  grid-column: 2;
}

.invoice-card-body {
  padding: 15px;
}

.invoice-add-line-form .invoice-line-field-group {
  box-shadow: none;
}

.invoice-card-footer {
  border-top: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: flex-end;
  padding: 11px 15px;
}

.invoice-card-footer .btn {
  font-size: 14px;
  padding: 8px 11px;
}

.invoice-totals-card dl {
  margin: 0;
  padding: 9px 16px 14px;
}

.invoice-totals-card dl > div,
.invoice-payment-summary > div {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
}

.invoice-totals-card dt,
.invoice-payment-summary dt {
  color: var(--aiobi-text-secondary);
  font-size: 13.5px;
  font-weight: 500;
}

.invoice-totals-card dd,
.invoice-payment-summary dd {
  color: var(--aiobi-text);
  font-size: 13.5px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
}

.invoice-totals-card .invoice-total-main {
  border-top: 1px solid var(--aiobi-border-strong);
  margin-top: 5px;
  padding-top: 11px;
}

.invoice-totals-card .invoice-net-main {
  background: var(--aiobi-primary-soft);
  border-radius: 7px;
  margin-top: 3px;
  padding: 9px;
}

.invoice-net-main dt,
.invoice-net-main dd {
  color: var(--aiobi-primary);
  font-weight: 700;
}

.invoice-payment-layout {
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.65fr);
  padding: 16px;
}

.invoice-payment-table {
  min-width: 570px;
}

.invoice-payment-summary {
  border-top: 1px solid var(--aiobi-border);
  margin: 10px 0 0;
}

.invoice-payment-summary > div:last-child dd {
  font-size: 15.5px;
  font-weight: 700;
}

.invoice-payment-form-wrap {
  background: var(--aiobi-bg);
  border-radius: var(--aiobi-radius-sm);
  padding: 14px;
}

.invoice-payment-form-wrap h3 {
  font-size: 16px;
  font-weight: 650;
  margin: 0 0 13px;
}

.invoice-payment-balance {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
  padding: 10px 11px;
}

.invoice-payment-balance span {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
}

.invoice-payment-balance strong {
  color: var(--aiobi-primary);
  font-size: 15.5px;
}

.invoice-payment-fields {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr;
}

.invoice-money-input {
  align-items: stretch;
  display: flex;
}

.invoice-money-input .form-control {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}

.invoice-money-input > span {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-left: 0;
  border-radius: 0 var(--aiobi-radius-sm) var(--aiobi-radius-sm) 0;
  color: var(--aiobi-text-muted);
  display: flex;
  font-size: 12.5px;
  font-weight: 650;
  padding: 0 10px;
}

.invoice-payment-form-wrap textarea {
  min-height: 64px;
  resize: vertical;
}

.invoice-payment-form-wrap .business-field {
  margin-bottom: 11px;
}

.invoice-payment-form-wrap .btn {
  font-size: 14px;
  margin-top: 3px;
  padding: 8px 11px;
  width: 100%;
}

@media (max-width: 520px) {
  .invoice-payment-fields {
    grid-template-columns: 1fr;
  }
}

.invoice-paid-message {
  align-items: center;
  display: flex;
  flex-direction: column;
  min-height: 150px;
  justify-content: center;
  text-align: center;
}

.invoice-paid-message strong {
  color: var(--aiobi-success);
  font-size: 15.5px;
}

.invoice-paid-message span {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  margin-top: 4px;
}


.business-field-help,
.business-field-error {
  display: block;
  font-size: 12.5px;
  line-height: 1.45;
  margin-top: 5px;
}

.business-field-help {
  color: var(--aiobi-text-muted);
}

.business-field-error {
  color: var(--aiobi-danger);
  font-weight: 550;
}

.business-optional {
  color: var(--aiobi-text-muted);
  font-size: 11px;
  font-weight: 450;
  margin-left: 4px;
}

.business-choice-card {
  align-items: flex-start;
  background: var(--aiobi-bg);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  gap: 10px;
  min-height: 58px;
  padding: 11px 13px;
}

.business-choice-card .form-check-input {
  flex: 0 0 auto;
  margin: 2px 0 0;
}

.business-choice-card label {
  cursor: pointer;
  flex: 1;
}

.business-choice-card strong,
.business-choice-card small {
  display: block;
}

.business-choice-card strong {
  color: var(--aiobi-text-secondary);
  font-size: 14.5px;
  font-weight: 600;
}

.business-choice-card small {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  line-height: 1.45;
  margin-top: 3px;
}

.business-form-actions {
  align-items: center;
  display: flex;
  gap: 9px;
  justify-content: flex-end;
  padding: 8px 0 24px;
}

.business-form-actions .btn {
  font-size: 15.5px;
  padding: 9px 14px;
}

.invoice-open-link {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid #cbd5df;
  border-radius: 7px;
  color: var(--aiobi-primary);
  display: flex;
  height: 30px;
  justify-content: center;
  text-decoration: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 120ms ease, color 120ms ease, transform 120ms ease;
  width: 30px;
}

.invoice-open-link svg {
  fill: none;
  height: 14px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
  width: 14px;
}

.invoice-open-link:hover {
  background: var(--aiobi-primary-soft);
  border-color: var(--aiobi-primary);
  color: var(--aiobi-primary);
  transform: translateX(1px);
}

.invoice-open-link:focus-visible {
  border-color: var(--aiobi-primary);
  box-shadow: 0 0 0 3px rgba(10, 122, 88, 0.18);
  outline: 0;
}

.invoice-open-link:active {
  transform: translateX(1px) scale(0.96);
}

.business-pagination {
  align-items: center;
  border-top: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: space-between;
  padding: 12px 16px;
}

.business-pagination-summary {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
}

.business-pagination-pages {
  align-items: center;
  display: flex;
  gap: 4px;
}

.business-pagination-pages a,
.business-pagination-pages > span {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--aiobi-text-secondary);
  display: flex;
  font-size: 13.5px;
  height: 28px;
  justify-content: center;
  min-width: 28px;
  padding: 0 6px;
  text-decoration: none;
}

.business-pagination-pages a {
  background: var(--aiobi-surface);
  border-color: var(--aiobi-border-strong);
}

.business-pagination-pages a:hover {
  background: var(--aiobi-primary-soft);
  border-color: var(--aiobi-primary);
  color: var(--aiobi-primary);
}

.business-pagination-pages .is-current {
  background: var(--aiobi-primary);
  color: #fff;
  font-weight: 700;
}

.business-pagination-pages .is-ellipsis {
  color: var(--aiobi-text-muted);
  min-width: 18px;
}

@media (max-width: 520px) {
  .business-pagination {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }

  .business-pagination-pages {
    justify-content: space-between;
  }
}

.secondary-screen-card {
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  box-shadow: var(--aiobi-shadow-sm);
  margin-top: 14px;
  overflow: hidden;
}

.secondary-screen-card-heading {
  align-items: flex-start;
  border-bottom: 1px solid var(--aiobi-border);
  display: flex;
  gap: 12px;
  padding: 18px 20px;
}

.secondary-screen-card-heading h2 {
  font-size: 17px;
  font-weight: 650;
  margin: 1px 0 4px;
}

.secondary-screen-card-heading p,
.secondary-screen-note span {
  color: var(--aiobi-text-muted);
  font-size: 13.5px;
  margin: 0;
}

.audit-export-fields {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 20px;
}

.secondary-screen-note {
  align-items: flex-start;
  background: var(--aiobi-surface-muted);
  border-radius: var(--aiobi-radius-sm);
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0 20px 20px;
  padding: 11px 13px;
}

.secondary-screen-note strong {
  font-size: 14px;
}

.secondary-screen-actions {
  border-top: 1px solid var(--aiobi-border);
  display: flex;
  justify-content: flex-end;
  padding: 13px 20px;
}

.secondary-screen-actions .btn {
  font-size: 14.5px;
  padding: 8px 13px;
}

.secondary-empty-screen {
  align-items: center;
  background: var(--aiobi-surface);
  border: 1px solid var(--aiobi-border);
  border-radius: var(--aiobi-radius);
  display: flex;
  flex-direction: column;
  margin: 8vh auto 0;
  max-width: 520px;
  padding: 46px 34px;
  text-align: center;
}

.secondary-empty-icon {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 12px;
  color: var(--aiobi-primary);
  display: flex;
  height: 48px;
  justify-content: center;
  margin-bottom: 17px;
  width: 48px;
}

.secondary-empty-icon svg {
  fill: none;
  height: 23px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 23px;
}

.secondary-empty-screen h1 {
  font-size: 24px;
  font-weight: 650;
  margin: 2px 0 8px;
}

.secondary-empty-screen > p:not(.workspace-eyebrow) {
  color: var(--aiobi-text-muted);
  font-size: 15.5px;
  line-height: 1.6;
  margin: 0 0 18px;
  max-width: 390px;
}

.preview-toolbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 auto 14px;
  max-width: 1040px;
}

.preview-toolbar-actions {
  display: flex;
  gap: 8px;
}

.preview-toolbar .btn {
  font-size: 14px;
  padding: 8px 12px;
}

.invoice-sheet {
  background: #fff;
  border: 1px solid var(--aiobi-border-strong);
  border-radius: var(--aiobi-radius);
  box-shadow: 0 8px 30px rgba(26, 26, 26, 0.06);
  margin: 0 auto;
  max-width: 1040px;
  padding: clamp(28px, 5vw, 58px);
}

.invoice-sheet-watermark {
  background: #fbf1dd;
  border: 1px solid #ead59e;
  border-radius: 7px;
  color: #7a5b00;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 24px;
  padding: 8px 12px;
  text-align: center;
  text-transform: uppercase;
}

.invoice-sheet-header {
  align-items: flex-start;
  border-bottom: 2px solid var(--aiobi-primary);
  display: flex;
  justify-content: space-between;
  padding-bottom: 24px;
}

.invoice-sheet-company,
.invoice-sheet-document {
  display: flex;
  flex-direction: column;
}

.invoice-sheet-company { max-width: 58%; }
.invoice-sheet-logo { max-height: 58px; max-width: 160px; object-fit: contain; object-position: left; margin-bottom: 14px; }
.invoice-sheet-company h1 { color: var(--aiobi-primary); font-size: 25.5px; font-weight: 700; margin: 0 0 3px; }
.invoice-sheet-company strong { font-size: 15.5px; margin-bottom: 6px; }
.invoice-sheet-company span { color: var(--aiobi-text-muted); font-size: 13.5px; line-height: 1.55; }
.invoice-sheet-document { align-items: flex-end; max-width: 40%; text-align: right; }
.invoice-sheet-type { color: var(--aiobi-primary); font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.invoice-sheet-number { font-size: 20.5px; margin: 5px 0 10px; }
.invoice-sheet-document dl { margin: 0; min-width: 210px; }
.invoice-sheet-document dl > div { display: flex; gap: 18px; justify-content: space-between; padding: 2px 0; }
.invoice-sheet-document dt { color: var(--aiobi-text-muted); font-size: 12.5px; font-weight: 500; }
.invoice-sheet-document dd { font-size: 13.5px; font-weight: 600; margin: 0; }
.invoice-sheet-document p { color: var(--aiobi-text-muted); font-size: 12.5px; line-height: 1.5; margin: 8px 0 0; }
.invoice-sheet-customer { background: var(--aiobi-surface-muted); border-radius: 8px; margin: 22px 0; padding: 13px 15px; }
.invoice-sheet-customer > span,
.invoice-sheet-tax > h2,
.invoice-sheet-notes h2,
.invoice-sheet-section-heading h2 { color: var(--aiobi-text-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.invoice-sheet-customer h2 { font-size: 17px; margin: 3px 0; }
.invoice-sheet-customer p { color: var(--aiobi-text-secondary); font-size: 12.5px; line-height: 1.5; margin: 0; }
.invoice-sheet-table-wrap { overflow-x: auto; }
.invoice-sheet-table,
.invoice-sheet-tax table,
.invoice-sheet-payments table { border-collapse: collapse; font-size: 12.5px; width: 100%; }
.invoice-sheet-table { min-width: 700px; }
.invoice-sheet-table th,
.invoice-sheet-tax th,
.invoice-sheet-payments th { background: var(--aiobi-primary); color: #fff; font-size: 11px; font-weight: 650; letter-spacing: .03em; padding: 9px 8px; }
.invoice-sheet-table td,
.invoice-sheet-tax td,
.invoice-sheet-payments td { border-bottom: 1px solid var(--aiobi-border); padding: 9px 8px; vertical-align: top; }
.invoice-sheet .is-numeric { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.invoice-sheet-empty { color: var(--aiobi-text-muted); text-align: center; }
.invoice-sheet-summary-grid { display: grid; gap: 28px; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); margin-top: 26px; }
.invoice-sheet-tax > h2 { margin: 0 0 8px; }
.invoice-sheet-tax th { background: var(--aiobi-surface-muted); color: var(--aiobi-text-secondary); }
.invoice-sheet-tax td { padding: 7px 6px; }
.invoice-sheet-notes { margin-top: 18px; }
.invoice-sheet-notes h2 { margin-bottom: 6px; }
.invoice-sheet-notes p { color: var(--aiobi-text-secondary); font-size: 12.5px; line-height: 1.55; margin: 0; }
.invoice-sheet-totals { background: var(--aiobi-surface-muted); border-radius: 8px; padding: 12px; }
.invoice-sheet-totals dl { margin: 0; }
.invoice-sheet-totals dl > div { display: flex; justify-content: space-between; padding: 5px 3px; }
.invoice-sheet-totals dt,
.invoice-sheet-totals dd { font-size: 12.5px; margin: 0; }
.invoice-sheet-totals dd { font-variant-numeric: tabular-nums; font-weight: 600; }
.invoice-sheet-totals .is-total { border-top: 1px solid var(--aiobi-border-strong); margin-top: 5px; padding-top: 9px; }
.invoice-sheet-totals .is-total dt,
.invoice-sheet-totals .is-total dd { font-weight: 700; }
.invoice-sheet-totals .is-net { background: var(--aiobi-primary); border-radius: 6px; color: #fff; margin-top: 5px; padding: 9px; }
.invoice-sheet-totals .is-net dt,
.invoice-sheet-totals .is-net dd { font-size: 14px; font-weight: 700; }
.invoice-sheet-payments { border-top: 1px solid var(--aiobi-border-strong); margin-top: 26px; padding-top: 20px; }
.invoice-sheet-section-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 7px; }
.invoice-sheet-section-heading h2 { margin: 0; }
.invoice-sheet-section-heading strong { color: var(--aiobi-success); font-size: 12.5px; }
.invoice-sheet-payments th { background: var(--aiobi-surface-muted); color: var(--aiobi-text-secondary); }
.invoice-sheet-payment-summary { display: flex; font-size: 12.5px; gap: 18px; justify-content: flex-end; padding-top: 9px; }

@media (max-width: 700px) {
  .preview-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }
  .preview-toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .preview-toolbar-actions .btn { width: 100%; }
  .invoice-sheet-header { gap: 22px; }
  .invoice-sheet-company,
  .invoice-sheet-document { max-width: none; width: 50%; }
  .invoice-sheet-summary-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .audit-export-fields { grid-template-columns: 1fr; }
  .secondary-screen-actions .btn { width: 100%; }
  .invoice-sheet { border-radius: 8px; padding: 22px 16px; }
  .invoice-sheet-header { flex-direction: column; }
  .invoice-sheet-company,
  .invoice-sheet-document { align-items: flex-start; text-align: left; width: 100%; }
  .invoice-sheet-document dl { min-width: 0; width: 100%; }
  .invoice-sheet-payment-summary { flex-direction: column; gap: 3px; }
}

@media print {
  @page { margin: 12mm; size: A4; }
  .aiobi-sidebar,
  .aiobi-topbar,
  .aiobi-mobile-overlay,
  .preview-toolbar,
  .aiobi-messages { display: none !important; }
  body,
  .aiobi-shell,
  .aiobi-main { background: #fff !important; margin: 0 !important; max-width: none !important; padding: 0 !important; }
  .invoice-sheet { border: 0; border-radius: 0; box-shadow: none; max-width: none; padding: 0; }
  .invoice-sheet-table-wrap { overflow: visible; }
  .invoice-sheet-table { min-width: 0; }
}

.list-empty-state {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 260px;
  padding: 35px;
  text-align: center;
}

.list-empty-state > span {
  align-items: center;
  background: var(--aiobi-primary-soft);
  border-radius: 10px;
  color: var(--aiobi-primary);
  display: flex;
  font-size: 18px;
  font-weight: 700;
  height: 38px;
  justify-content: center;
  margin-bottom: 12px;
  width: 38px;
}

.list-empty-state > span svg {
  fill: none;
  height: 18px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  width: 18px;
}

.list-empty-state strong {
  font-size: 17px !important;
}

.list-empty-state small {
  font-size: 14px !important;
  margin: 5px 0 13px !important;
}

.list-empty-state a {
  color: var(--aiobi-primary);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

@keyframes aiobi-rise-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes aiobi-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes aiobi-orbit-in {
  from {
    opacity: 0;
    transform: scale(0.82);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .aiobi-login-intro::after,
  .aiobi-login-intro-content,
  .aiobi-login-intro-footer,
  .aiobi-login-form-wrap {
    animation: none;
  }

  .aiobi-login-logo img,
  .aiobi-login-input svg,
  .aiobi-login-submit {
    transition: none;
  }
}

@media (max-width: 899.98px) {
  .invoice-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .customer-list-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-list-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .audit-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .audit-search-field {
    grid-column: 1 / -1;
  }

  .business-form-section {
    gap: 20px;
    grid-template-columns: 1fr;
  }

  .invoice-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .invoice-detail-columns,
  .invoice-payment-layout {
    grid-template-columns: 1fr;
  }

  .invoice-detail-columns > .invoice-totals-card:only-child {
    grid-column: auto;
  }

  .invoice-search-field {
    grid-column: 1 / -1;
  }

  .workspace-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-grid {
    grid-template-columns: 1fr;
  }

  .aiobi-login-layout {
    grid-template-columns: minmax(280px, 38%) 1fr;
  }

  .aiobi-login-intro {
    padding: 44px 36px;
  }

  .aiobi-login-panel {
    padding: 40px;
  }

  .aiobi-sidebar {
    box-shadow: 12px 0 32px rgba(0, 0, 0, 0.12);
    transform: translateX(-102%);
    transition: transform 180ms ease;
  }

  .sidebar-open .aiobi-sidebar {
    transform: translateX(0);
  }

  .aiobi-shell {
    margin-left: 0;
  }

  .aiobi-menu-toggle {
    display: block;
  }

  .aiobi-mobile-overlay {
    background: rgba(26, 26, 26, 0.35);
    bottom: 0;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 1035;
  }

  .sidebar-open .aiobi-mobile-overlay {
    display: block;
  }

  .aiobi-topbar {
    padding: 10px 20px;
  }

  .aiobi-main {
    padding: 24px 20px 56px;
  }
}

@media (max-width: 575.98px) {
  .list-page-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .list-page-heading > .btn {
    text-align: center;
  }

  .invoice-filters {
    grid-template-columns: 1fr;
  }

  .audit-filters {
    grid-template-columns: 1fr;
  }

  .audit-search-field {
    grid-column: auto;
  }

  .business-form-section {
    padding: 17px;
  }

  .business-form-fields {
    grid-template-columns: 1fr;
  }

  .business-field-wide {
    grid-column: auto;
  }

  .business-form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .business-form-actions .btn {
    text-align: center;
    width: 100%;
  }

  .invoice-detail-header {
    align-items: stretch;
    flex-direction: column;
  }

  .invoice-actions-menu > .btn {
    width: 100%;
  }

  .invoice-summary-grid {
    grid-template-columns: 1fr;
  }

  .invoice-search-field {
    grid-column: auto;
  }

  .workspace-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .workspace-primary-actions > .btn {
    flex: 1;
  }

  .workspace-stats {
    grid-template-columns: 1fr;
  }

  .workspace-stat {
    min-height: 94px;
  }

  .workspace-shortcut-grid {
    grid-template-columns: 1fr;
  }

  .workspace-card-heading {
    align-items: flex-start;
    gap: 12px;
  }

  .aiobi-login-layout {
    display: block;
  }

  .aiobi-login-intro {
    display: none;
  }

  .aiobi-login-panel {
    align-items: flex-start;
    min-height: 100vh;
    padding: 32px 22px;
  }

  .aiobi-login-mobile-brand {
    display: flex;
  }

  .aiobi-login-heading h2 {
    font-size: 28.5px;
  }

  .aiobi-topbar {
    min-height: 60px;
    padding: 8px 14px;
  }

  .aiobi-main {
    padding: 20px 14px 48px;
  }

  .aiobi-organization-chip {
    max-width: 130px;
  }

  .aiobi-topbar-user,
  .aiobi-topbar-date {
    display: none;
  }
}

/* Rapports X, Z et A : affichage à l'écran (le PDF a sa propre mise en forme). */
.report-screen {
  padding: 18px 20px 20px;
}

.report-screen h2 {
  color: var(--aiobi-text-muted);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.06em;
  margin: 22px 0 8px;
  text-transform: uppercase;
}

.report-identity {
  border-collapse: collapse;
  margin-bottom: 4px;
}

.report-identity th {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  font-weight: 500;
  padding: 3px 24px 3px 0;
  text-align: left;
  white-space: nowrap;
}

.report-identity td {
  color: var(--aiobi-text);
  font-size: 13.5px;
  padding: 3px 0;
}

.report-table {
  border: 1px solid var(--aiobi-border);
  border-collapse: separate;
  border-radius: var(--aiobi-radius-sm);
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
}

.report-table th {
  background: #fcfcfc;
  color: var(--aiobi-text-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.035em;
  padding: 9px 12px;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.report-table td {
  border-top: 1px solid var(--aiobi-border);
  color: var(--aiobi-text-secondary);
  font-size: 13.5px;
  padding: 9px 12px;
  vertical-align: middle;
}

.report-table tbody tr:first-child td {
  border-top: 0;
}

.report-table thead + tbody tr:first-child td {
  border-top: 1px solid var(--aiobi-border);
}

.report-table .right,
.report-table th.right {
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.report-type-row td {
  background: var(--aiobi-primary-soft);
  color: var(--aiobi-text);
}

.report-group-row td:first-child {
  padding-left: 28px;
}

.report-table small {
  color: var(--aiobi-text-muted);
  display: block;
}

.report-note {
  color: var(--aiobi-text-muted);
  font-size: 12.5px;
  margin: 8px 0 0;
}

.report-summary {
  margin: 16px 0 6px;
}

@media (max-width: 900px) {
  .report-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-screen {
    overflow-x: auto;
  }
}
