/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

body {
  font-family: "Source Sans 3", sans-serif;
}

html {
  scrollbar-gutter: stable;
}

.brand-link {
  font-size: 1.15rem;
  font-weight: 700;
}

.brand-version {
  margin-top: -0.35rem;
  padding-bottom: 0.35rem;
  font-size: 0.72rem;
  line-height: 1;
}

.app-content-header {
  padding-bottom: 0.5rem;
}

.layout-fixed .app-main {
  overflow: visible !important;
}

.layout-fixed .app-sidebar .sidebar-wrapper {
  height: calc(100vh - 57px);
  overflow-y: auto;
  overflow-x: hidden;
}

.edit-page-actions-sticky {
  position: sticky;
  top: 0;
  z-index: 1025;
  display: flex;
  justify-content: flex-end;
  padding: 0.45rem 0 0.55rem;
  pointer-events: none;
}

.edit-page-actions {
  display: inline-flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  width: fit-content;
  max-width: 100%;
  padding: 0.5rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.18);
  border-radius: 0.75rem;
  background: rgba(var(--bs-body-bg-rgb), 0.96);
  backdrop-filter: blur(10px);
  box-shadow: 0 0.45rem 1.4rem rgba(var(--bs-body-color-rgb), 0.08);
  pointer-events: auto;
}

.edit-page-actions form {
  margin: 0;
}

.edit-form-actions {
  width: fit-content;
  max-width: 100%;
  justify-content: flex-end;
}

.edit-form-actions .btn {
  white-space: nowrap;
}

.settings-page-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.settings-page-actions-note {
  max-width: 18rem;
  line-height: 1.2;
}

@media (max-width: 767.98px) {
  .edit-page-actions-sticky {
    padding-top: 0.25rem;
  }

  .edit-page-actions {
    justify-content: flex-end;
  }

  .edit-form-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
  }

  .settings-page-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
  }
}

.card-title {
  float: none;
  font-weight: 600;
}

.app-panel {
  overflow: visible;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.18);
  border-radius: 0.95rem;
  box-shadow: 0 0.4rem 1.2rem rgba(var(--bs-body-color-rgb), 0.035);
}

.app-panel > .card-header {
  border-bottom-color: rgba(var(--bs-secondary-rgb), 0.14);
  background:
    linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.055), transparent 46%),
    rgba(var(--bs-secondary-rgb), 0.035);
}

.app-panel > .card-footer {
  border-top-color: rgba(var(--bs-secondary-rgb), 0.14);
  background: rgba(var(--bs-secondary-rgb), 0.03);
}

pre {
  white-space: pre-wrap;
  word-break: break-word;
}

.table td,
.table th {
  vertical-align: middle;
}

.admin-table-detail {
  background: var(--bs-tertiary-bg);
  padding: 0.75rem 0;
}

.admin-table-detail .table {
  border: 1px solid var(--bs-border-color);
}

.admin-table-expand,
.admin-table-expand-placeholder {
  width: 2rem;
  min-width: 2rem;
}

.admin-table-expand[aria-expanded="true"] .admin-table-expand-icon-open,
.admin-table-expand[aria-expanded="false"] .admin-table-expand-icon-close {
  display: none;
}

.admin-table-expand-placeholder {
  display: inline-block;
}

.admin-table-child-row td:first-child {
  padding-left: 1.5rem;
}

.admin-table-child-row.collapse:not(.show) {
  display: none;
}

.admin-table-child-row.collapse.show {
  display: table-row;
}

.admin-table-tree-table {
  --admin-table-tree-depth-step: 1.375rem;
  --admin-table-tree-line-color: #7b828c;
  --admin-table-tree-icon-center-x: 2.5rem;
  table-layout: fixed;
  width: 100%;
}

.budget-effective-tree-table {
  min-width: 76rem;
}

.admin-table-tree-wrap {
  overflow-x: auto;
}

.admin-table-tree-table > tbody > tr > td,
.admin-table-tree-table > thead > tr > th {
  height: 3.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-table-tree-table .admin-table-child-row td:first-child,
.admin-table-tree-table .admin-table-tree-cell {
  padding-left: 0.5rem;
}

.admin-table-tree-cell {
  position: relative;
}

.admin-table-tree-line {
  position: absolute;
  content: "";
  display: none;
  pointer-events: none;
}

.admin-table-tree-cell::after {
  content: none;
}

.admin-table-tree-line {
  top: 0;
  bottom: 0;
  left: calc(var(--admin-table-tree-icon-center-x) + (var(--admin-table-tree-line-depth, 0) * var(--admin-table-tree-depth-step)));
  width: 2px;
  background: var(--admin-table-tree-line-color);
}

.admin-table-tree-child-row .admin-table-tree-line {
  display: block;
}

.admin-table-tree-child-row .admin-table-parent {
  padding-left: calc(var(--admin-table-tree-depth, 0) * var(--admin-table-tree-depth-step));
}

.option-tag-selector {
  position: relative;
  max-width: 100%;
  font-size: 0.875rem;
}

.card:has(.option-tag-selector.is-open),
.card-body:has(.option-tag-selector.is-open),
.app-panel:has(.option-tag-selector.is-open),
.table-responsive:has(.option-tag-selector.is-open) {
  overflow: visible;
}

.option-tag-selector,
.option-tag-selector * {
  box-sizing: border-box;
}

.option-tag-selector-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 2.25rem;
  width: 100%;
  padding: 0.25rem 0.45rem 0.25rem 0.5rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.32);
  border-radius: 0.375rem;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  cursor: pointer;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

.option-tag-selector-control:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
}

.option-tag-selector-control:focus,
.option-tag-selector.is-open .option-tag-selector-control {
  border-color: rgba(var(--bs-primary-rgb), 0.65);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
  outline: 0;
}

.option-tag-selector-selection {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  min-width: 0;
}

.option-tag-selector-selected-tag {
  display: inline-flex !important;
  align-items: center !important;
  max-width: 100%;
  min-height: 1.375rem !important;
  gap: 0.25rem;
  margin: 0;
  padding: 0.125rem 0.25rem 0.125rem 0.45rem !important;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28) !important;
  border-radius: 0.25rem !important;
  background: rgba(var(--bs-primary-rgb), 0.08) !important;
  color: #14559a !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  vertical-align: middle;
}

.option-tag-selector-selected-tag-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.option-tag-selector-selected-tag-remove {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto;
  width: 1rem !important;
  height: 1rem !important;
  min-width: 1rem !important;
  min-height: 1rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0.2rem !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  font: inherit !important;
  font-size: 0.625rem !important;
  line-height: 1 !important;
  text-align: center;
  cursor: pointer;
}

.option-tag-selector-selected-tag-remove:hover,
.option-tag-selector-selected-tag-remove:focus {
  background: rgba(var(--bs-primary-rgb), 0.14) !important;
  box-shadow: none !important;
  outline: 0;
}

.option-tag-selector-placeholder {
  min-width: 0;
  overflow: hidden;
  color: var(--bs-secondary-color);
  font-size: 0.875rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.option-tag-selector-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  color: var(--bs-secondary-color);
  font-size: 0.7rem;
  transition: transform 0.15s ease-in-out;
}

.option-tag-selector.is-open .option-tag-selector-chevron {
  transform: rotate(180deg);
}

.option-tag-selector-menu {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  z-index: 1050;
  width: 100%;
  min-width: 14rem;
  overflow: hidden;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.25);
  border-radius: 0.375rem;
  background: var(--bs-body-bg);
  box-shadow: 0 0.65rem 1.4rem rgba(var(--bs-body-color-rgb), 0.13);
}

.option-tag-selector-search-wrap {
  position: relative;
  padding: 0.375rem;
  border-bottom: 1px solid rgba(var(--bs-secondary-rgb), 0.16);
  background: rgba(var(--bs-secondary-rgb), 0.035);
}

.option-tag-selector-search-wrap i {
  position: absolute;
  top: 50%;
  left: 0.8rem;
  color: var(--bs-secondary-color);
  font-size: 0.75rem;
  transform: translateY(-50%);
}

.option-tag-selector-search {
  width: 100%;
  min-height: 1.875rem;
  padding: 0.25rem 0.5rem 0.25rem 1.55rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.24);
  border-radius: 0.3rem;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-size: 0.8125rem;
}

.option-tag-selector-search:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  box-shadow: 0 0 0 0.13rem rgba(var(--bs-primary-rgb), 0.1);
  outline: 0;
}

.option-tag-selector-options {
  max-height: 14rem;
  overflow-y: auto;
  padding: 0.25rem;
}

.option-tag-selector-row {
  display: flex;
  align-items: center;
  min-height: 1.875rem;
  gap: 0.45rem;
  margin: 0;
  padding: 0.25rem 0.45rem;
  border-radius: 0.3rem;
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.2;
}

.option-tag-selector-row:hover {
  background: rgba(var(--bs-secondary-rgb), 0.08);
}

.option-tag-selector-row.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.075);
  color: color-mix(in srgb, var(--bs-primary) 74%, var(--bs-body-color));
  font-weight: 500;
}

.option-tag-selector--dropdown .option-tag-selector-row .option-tag-selector-input {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  position: static !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: 0.95rem !important;
  height: 0.95rem !important;
  min-width: 0.95rem !important;
  min-height: 0.95rem !important;
  margin: 0 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

.option-tag-selector-row-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.option-tag-selector-inline-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.option-tag-selector--inline .option-tag-selector-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.option-tag-selector-inline-tag {
  display: inline-flex;
  align-items: center;
  min-height: 1.625rem;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.32);
  border-radius: 0.3rem;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  cursor: pointer;
  font-size: 0.8125rem;
  line-height: 1.1;
}

.option-tag-selector-inline-check {
  display: none;
  color: inherit;
  font-size: 0.65rem;
}

.option-tag-selector--inline .option-tag-selector-input:checked + .option-tag-selector-inline-tag {
  border-color: rgba(var(--bs-primary-rgb), 0.32);
  background: rgba(var(--bs-primary-rgb), 0.075);
  color: color-mix(in srgb, var(--bs-primary) 76%, var(--bs-body-color));
}

.option-tag-selector--inline .option-tag-selector-input:checked + .option-tag-selector-inline-tag .option-tag-selector-inline-check {
  display: inline-flex;
}

.option-tag-selector--inline .option-tag-selector-input:focus-visible + .option-tag-selector-inline-tag {
  outline: 2px solid rgba(var(--bs-primary-rgb), 0.28);
  outline-offset: 2px;
}

.team-member-actions-header,
.team-member-actions-cell {
  width: 1%;
  white-space: nowrap;
}

.filter-panel-groups {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.5rem 1rem;
}

.filter-panel-options {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.5rem 1rem;
  min-width: 0;
}

.filter-panel-clear {
  align-self: end;
  flex: 0 0 auto;
}

.filter-checkbox-group {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.filter-checkbox-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  min-width: 0;
  max-width: 100%;
}

.filter-checkbox-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
  margin-bottom: 0;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  background: var(--bs-body-bg);
  font-size: 0.875rem;
  line-height: 1.25rem;
  white-space: nowrap;
}

.filter-checkbox-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.25rem;
  background: var(--bs-tertiary-bg);
  flex: 0 0 1.25rem;
}

.filter-checkbox-control .form-check-input {
  width: 1rem;
  min-width: 1rem;
  height: 1rem;
  margin: 0;
  flex: 0 0 1rem;
}

@media (max-width: 767.98px) {
  .filter-panel-groups {
    grid-template-columns: minmax(0, 1fr);
  }

  .filter-panel-clear {
    justify-self: end;
  }
}

.team-member-actions-cell {
  text-align: right;
}

.team-member-actions-cell form {
  display: inline-block;
  margin-left: 0.5rem;
}

.team-member-actions-cell form:first-child {
  margin-left: 0;
}

[data-team-role-editor-actions][hidden],
[data-team-member-static-actions][hidden] {
  display: none !important;
}

.list-header-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem 1rem;
  flex-wrap: wrap;
}

.list-header-search {
  flex: 1 1 18rem;
  min-width: min(100%, 18rem);
  max-width: 28rem;
}

.list-header-search-form {
  margin: 0;
}

.list-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
}

@media (max-width: 767.98px) {
  .list-header-search {
    flex-basis: 100%;
    max-width: 100%;
  }

  .list-header-actions {
    width: 100%;
    justify-content: flex-end;
  }
}


[data-child-category-editor-actions][hidden] {
  display: none !important;
}

[data-role-permission-editor-actions][hidden],
[data-role-permission-editor-actions-for][hidden] {
  display: none !important;
}

input[data-role-permission-summary] {
  cursor: pointer;
}

input[data-role-permission-summary]:indeterminate {
  background-color: var(--bs-warning);
  border-color: var(--bs-warning);
}

.role-permission-row td,
.role-permission-actions-row td {
  background: var(--bs-tertiary-bg);
}

.role-permission-locked {
  cursor: not-allowed;
}

.settings-sidebar .list-group-item {
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}

.settings-sidebar .list-group-item:first-child {
  border-top: 0;
}

.settings-sidebar .list-group-item.active {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

.settings-json-editor {
  min-height: 28rem;
  resize: vertical;
  white-space: pre;
}

.settings-ui-grid {
  display: grid;
  gap: 0.75rem;
}

.settings-section {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  padding: 0.75rem;
}

.settings-inline-grid {
  display: grid;
  grid-template-columns: 11rem minmax(0, 1fr);
  gap: 0.5rem 0.75rem;
  align-items: start;
}

.settings-inline-grid-general {
  grid-template-columns: 11rem auto 1fr;
}

.settings-field-help {
  grid-column: 2 / -1;
}

.settings-field-input-currency input {
  width: 6rem;
}

.settings-compact-number-input {
  flex: 0 0 auto;
  width: 4.75rem;
  min-width: 4.75rem;
  max-width: 4.75rem;
  display: inline-block;
  padding-right: 0.5rem;
}

.settings-select-fit {
  width: auto;
  min-width: 15rem;
  max-width: 100%;
}

.template-schema-editor {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.75rem;
  background: var(--bs-body-bg);
  overflow: hidden;
}

.template-schema-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid var(--bs-border-color);
  background: var(--bs-tertiary-bg);
}

.template-schema-editor .table {
  margin-bottom: 0;
}

.template-schema-editor th,
.template-schema-editor td {
  vertical-align: top;
}

.template-schema-name-cell {
  display: grid;
  grid-template-columns: calc(var(--template-schema-depth, 0) * 1.25rem) minmax(0, 1fr);
  align-items: start;
  gap: 0.5rem;
}

.template-schema-tree-line {
  display: inline-block;
  min-height: 2.25rem;
  border-left: 2px solid rgba(var(--bs-primary-rgb), 0.2);
  margin-left: calc(var(--template-schema-depth, 0) * 0.125rem);
}

.template-schema-row-selected > td {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.template-schema-options-input {
  min-height: calc(1.5em + 0.5rem + 2px);
  height: calc(1.5em + 0.5rem + 2px);
  line-height: 1.5;
  overflow-y: hidden;
  resize: none;
  white-space: pre-wrap;
}

.template-schema-options-input.template-schema-options-expanded {
  overflow-y: auto;
}

.template-schema-editor-empty[hidden] {
  display: none !important;
}

.template-schema-editor-preview {
  border-top: 1px solid var(--bs-border-color);
  padding: 0.75rem 1rem 1rem;
  background: var(--bs-light-bg-subtle, var(--bs-tertiary-bg));
}

.template-schema-editor-preview summary {
  cursor: pointer;
  user-select: none;
}

.template-schema-editor-preview pre {
  margin-top: 0.75rem;
}

.template-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.template-icon-button {
  width: 2rem;
  min-width: 2rem;
  height: 2rem;
  padding: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2rem;
}

.template-icon-button i {
  font-size: 0.9rem;
}

[data-template-schema-draft-row] td,
[data-template-involvement-draft-row] td {
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.template-involvement-table {
  table-layout: fixed;
  width: 100%;
  min-width: 74rem;
}

.template-involvement-table th,
.template-involvement-table td {
  vertical-align: middle;
}

.template-involvement-table th:nth-child(1),
.template-involvement-table td:nth-child(1) {
  width: 5rem;
}

.template-involvement-table th:nth-child(3),
.template-involvement-table td:nth-child(3) {
  width: 14rem;
}

.template-involvement-table th:nth-child(8),
.template-involvement-table td:nth-child(8) {
  width: 9rem;
  white-space: nowrap;
}

.template-involvement-table [data-template-involvement-preview],
.template-involvement-table [data-template-involvement-draft-preview] {
  overflow-wrap: anywhere;
}

.payload-builder,
.payload-display {
  display: grid;
  gap: 1rem;
}

.flow-header-panel {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  padding: 0.875rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.875rem;
  background:
    linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.06), transparent 42%),
    var(--bs-body-bg);
}

.flow-header-context {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  gap: 0.625rem;
  align-items: end;
}

.flow-header-context > *,
.flow-header-summary > * {
  min-width: 0;
}

.flow-header-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
  gap: 0.5rem;
}

.flow-summary-tile {
  min-width: 0;
  padding: 0.625rem 0.75rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.18);
  border-radius: 0.75rem;
  background: rgba(var(--bs-secondary-rgb), 0.045);
}

.flow-summary-tile-primary {
  border-color: rgba(var(--bs-primary-rgb), 0.22);
  background: rgba(var(--bs-primary-rgb), 0.075);
}

.flow-summary-label {
  margin-bottom: 0.125rem;
  color: var(--bs-secondary-color);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  line-height: 1.2;
  text-transform: uppercase;
}

.flow-summary-value {
  overflow: hidden;
  color: var(--bs-body-color);
  font-size: 0.9375rem;
  font-weight: 650;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.flow-summary-tile-primary .flow-summary-value {
  font-size: 1.0625rem;
}

.flow-form-field {
  display: grid;
  grid-template-rows: 1.25rem minmax(2.375rem, auto);
  gap: 0.25rem;
  align-content: start;
}

.flow-form-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 1.25rem;
}

.flow-form-label-row .form-label {
  margin: 0;
  white-space: nowrap;
}

.flow-form-control-row {
  display: flex;
  align-items: stretch;
  min-width: 0;
  min-height: 2.375rem;
}

.flow-form-control-row > .form-control,
.flow-form-control-row > .form-select,
.flow-form-control-row > .w-100 {
  width: 100%;
}

.flow-form-label-row .form-text,
.flow-form-grid .form-text {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.3;
}

.flow-form-inline-hint {
  max-width: min(34rem, 100%);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.flow-form-label-row .form-text {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.flow-items-field {
  grid-template-rows: auto minmax(2.375rem, auto);
}

.flow-section-panel {
  padding: 0.875rem;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.16);
  border-radius: 0.875rem;
  background:
    linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.035), transparent 38%),
    var(--bs-body-bg);
}

.flow-section-panel > .flow-form-label-row {
  margin-bottom: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(var(--bs-secondary-rgb), 0.12);
}

.flow-items-help-text {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.flow-attachments-panel .flow-form-label-row {
  justify-content: space-between;
}

.flow-attachments-panel {
  grid-template-rows: auto minmax(2.375rem, auto);
}

.flow-attachments-panel > .flow-form-label-row {
  align-items: flex-start;
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
}

.flow-attachments-panel [data-flow-attachment-add] {
  flex: 0 0 auto;
}

.flow-attachment-existing {
  min-width: 0;
}

.flow-attachment-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.flow-attachments-table {
  table-layout: fixed;
}

.flow-attachment-file-link {
  min-width: 0;
  display: inline-grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  max-width: 100%;
  color: var(--bs-body-color);
}

.flow-attachment-file-icon {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.55rem;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.flow-attachment-name {
  font-weight: 600;
}

.flow-attachment-meta {
  color: var(--bs-secondary-color);
  font-size: 0.875rem;
  white-space: nowrap;
}

@media (max-width: 1199.98px) {
  .flow-header-context {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flow-header-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .app-header .navbar-nav.ms-auto {
    min-width: 0;
    max-width: calc(100vw - 4rem);
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
  }

  .app-header .navbar-nav.ms-auto .nav-link {
    min-width: 0;
  }

  .app-header .navbar-nav.ms-auto .nav-link span {
    max-width: 4.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .flow-header-panel {
    padding: 0.75rem;
  }

  .flow-header-context,
  .flow-header-summary {
    grid-template-columns: 1fr;
  }
}

.payload-section {
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.16);
  border-radius: 0.875rem;
  padding: 1rem;
  background:
    linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.035), transparent 40%),
    var(--bs-body-bg);
}

.payload-section-header {
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(var(--bs-secondary-rgb), 0.12);
}

.payload-section-header-actions {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.payload-section-title {
  margin: 0;
  font-size: 1rem;
}

.payload-section-path {
  margin-top: 0.125rem;
  color: var(--bs-secondary-color);
  font-size: 0.75rem;
  font-family: var(--bs-font-monospace);
}

.payload-section-body,
.payload-list-item-body {
  display: grid;
  gap: 0.75rem;
}

.payload-field-grid {
  display: grid;
  grid-template-columns: repeat(var(--payload-columns-per-row, 3), minmax(0, 1fr));
  gap: 0.75rem;
}

.payload-display .payload-field-grid {
  grid-template-columns: repeat(min(2, var(--payload-columns-per-row, 3)), minmax(0, 1fr));
}

.payload-field {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}

.payload-field-meta {
  display: grid;
  gap: 0.125rem;
}

.payload-field-key {
  color: var(--bs-secondary-color);
  font-size: 0.75rem;
  font-family: var(--bs-font-monospace);
}

@media (max-width: 991.98px) {
  .payload-field-grid {
    grid-template-columns: repeat(min(2, var(--payload-columns-per-row, 3)), minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .payload-field-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.payload-list-items {
  display: grid;
  gap: 0.5rem;
}

.workflow-task-table {
  table-layout: fixed;
}

.workflow-task-table th:nth-child(1) { width: 22%; }
.workflow-task-table th:nth-child(2) { width: 30%; }
.workflow-task-table th:nth-child(3) { width: 16%; }
.workflow-task-table th:nth-child(4) { width: 14%; }
.workflow-task-table th:nth-child(5) { width: 12%; }
.workflow-task-table th:nth-child(6) { width: 6rem; }
.workflow-task-table td { white-space: nowrap; }
.workflow-task-table .text-truncate { max-width: 100%; }

.workflow-task-detail-table td:nth-child(4) {
  padding-right: 2.5rem;
}
.workflow-task-detail-table td:nth-child(5) {
  padding-left: 2.5rem;
}
.workflow-task-due-cell {
  overflow: hidden;
}

@media (min-width: 768px) {
  .workflow-task-detail-table th:nth-child(4),
  .workflow-task-detail-table td:nth-child(4) { width: 18%; }
  .workflow-task-detail-table th:nth-child(5),
  .workflow-task-detail-table td:nth-child(5) { width: 16%; }
}

.payload-list-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.payload-list-table thead th {
  padding: 0 0.5rem 0.375rem;
  border-bottom: 1px solid var(--bs-border-color);
  vertical-align: bottom;
}

.payload-list-table tbody td {
  padding: 0.5rem;
  vertical-align: top;
  border-bottom: 1px solid var(--bs-border-color);
}

.payload-list-row:last-child td {
  border-bottom: 0;
}

.payload-list-cell {
  min-width: 12rem;
}

.payload-list-cell-actions,
.payload-list-head-actions {
  width: 3rem;
  min-width: 3rem;
}

.payload-list-cell-actions {
  text-align: right;
  white-space: nowrap;
  vertical-align: middle;
}

.payload-list-inline-action {
  padding: 0;
}

.payload-list-head-cell {
  min-width: 0;
  font-size: 0.875rem;
}

.payload-display-field {
  display: grid;
  grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
  gap: 0.5rem 1rem;
  align-items: start;
}

.payload-display-label {
  font-weight: 600;
}

.payload-display-value {
  min-width: 0;
}

.payload-list-empty {
  padding: 1rem !important;
  text-align: center;
  color: var(--bs-secondary-color);
}

.settings-select-fit-year {
  min-width: 7rem;
}

.settings-fit-wrap {
  display: inline-block;
  max-width: 100%;
}

.settings-section-heading {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
}

.settings-section-description {
  margin-bottom: 0.5rem;
  color: var(--bs-secondary-color);
  font-size: 0.8125rem;
  line-height: 1.35;
}

.settings-section .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
}

.settings-section .form-text {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1.35;
}

.settings-range-group {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-border-color);
}

.settings-range-title {
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.settings-range-grid {
  display: grid;
  gap: 0.5rem;
}

.settings-range-row {
  display: grid;
  grid-template-columns: 6rem 7rem 7rem;
  gap: 0.75rem;
  align-items: end;
}

.settings-range-label {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 2.25rem;
}

.settings-range-input .form-label {
  margin-bottom: 0.25rem;
}

.settings-month-input {
  width: 10rem;
  max-width: 100%;
}

[data-settings-budget-range-picker] .MuiFormControl-root {
  min-width: 8rem;
}

[data-settings-budget-range-picker] .MuiInputBase-root {
  min-width: 8rem;
}

.settings-range-row-mui {
  display: grid;
  grid-template-columns: 6rem max-content max-content;
  gap: 1rem;
  align-items: start;
}

[data-settings-budget-range-picker] .settings-mui-field-year {
  width: 8rem;
  min-width: 8rem;
}

[data-settings-budget-range-picker] .settings-mui-field-month {
  width: 12rem;
  min-width: 12rem;
}

[data-flow-fiscal-period-picker] .MuiFormControl-root,
[data-flow-fiscal-period-picker] .MuiInputBase-root {
  width: 9rem;
  min-width: 0;
}

[data-flow-fiscal-period-picker] .settings-mui-field-year {
  width: 6.5rem;
}

[data-flow-fiscal-period-picker] .MuiInputBase-root {
  min-height: calc(1.5em + 0.75rem + 2px);
}

[data-flow-fiscal-period-picker] .MuiInputBase-input {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.year-picker {
  position: relative;
  display: inline-block;
}

.year-picker-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 7rem;
  padding: 0.375rem 0.75rem;
  border-color: var(--bs-border-color);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
}

.year-picker-toggle:hover,
.year-picker-toggle:focus {
  border-color: var(--bs-primary);
}

.year-picker-caret {
  font-size: 0.75rem;
  color: var(--bs-secondary-color);
}

.year-picker-menu {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  z-index: 1050;
  min-width: 100%;
  padding: 0.375rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  background: var(--bs-body-bg);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
}

.year-picker-options {
  display: grid;
  gap: 0.125rem;
  max-height: 14rem;
  overflow-y: auto;
}

.year-picker-option {
  border: 0;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--bs-body-color);
  text-align: left;
  padding: 0.375rem 0.5rem;
  font-size: 0.875rem;
}

.year-picker-option:hover,
.year-picker-option:focus {
  background: rgba(var(--bs-primary-rgb), 0.08);
  outline: none;
}

.year-picker-option.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .settings-inline-grid,
  .settings-inline-grid-general {
    grid-template-columns: 1fr;
  }

  .settings-field-help {
    grid-column: auto;
  }

  .settings-range-row {
    grid-template-columns: 1fr 1fr;
  }

  .settings-range-label {
    grid-column: 1 / -1;
    line-height: 1.2;
  }
}


.login-page-v2 {
  min-height: calc(100vh - 57px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 16% 18%, rgba(0, 96, 170, 0.16), transparent 30%),
    linear-gradient(135deg, #eef5fb 0%, #f7fbff 50%, #e6eef8 100%);
}

.login-page-v2 + * {
  display: none;
}

.login-card-v2 {
  display: grid;
  grid-template-columns: minmax(24rem, 30rem) minmax(20rem, 26rem);
  width: min(56rem, 100%);
  max-height: calc(100vh - 7rem);
  overflow: hidden;
  border: 1px solid rgba(16, 36, 64, 0.12);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 1.2rem 3rem rgba(15, 35, 65, 0.16);
}

.login-form-panel,
.login-info-panel {
  min-height: 0;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.login-form-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.9rem;
}

.login-info-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.35rem;
  color: #fff;
  background:
    linear-gradient(150deg, rgba(0, 63, 130, 0.94), rgba(0, 120, 158, 0.9)),
    radial-gradient(circle at 85% 18%, rgba(255, 255, 255, 0.3), transparent 25%);
}

.login-brand-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.login-logo-v2 {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: contain;
}

.login-eyebrow {
  margin: 0 0 0.2rem;
  color: #5a6f86;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.login-brand-row h1,
.login-info-panel h2 {
  margin: 0;
  font-weight: 700;
}

.login-brand-row h1 {
  color: #14233a;
  font-size: clamp(1.35rem, 3vw, 1.8rem);
}

.login-form-v2 {
  display: grid;
  gap: 0.85rem;
}

.login-form-v2 .form-label {
  margin-bottom: 0.35rem;
  color: #20324a;
  font-size: 0.85rem;
  font-weight: 700;
}

.login-label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.login-form-v2 .form-control {
  min-height: 2.35rem;
  border-color: #c8d5e3;
  border-radius: 0.55rem;
}

.login-submit-v2 {
  min-height: 2.45rem;
  border: 0;
  border-radius: 0.55rem;
  background: #0067b1;
  font-weight: 700;
}

.login-link-v2 {
  color: #0067b1;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.login-link-v2:hover {
  text-decoration: underline;
}

.login-create-v2 {
  color: #526174;
  font-size: 0.88rem;
}

.login-info-panel h2 {
  max-width: 22rem;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  line-height: 1.08;
}

.login-intro-v2 {
  max-width: 26rem;
  margin: 0.75rem 0 0;
  color: rgba(255, 255, 255, 0.86);
  line-height: 1.45;
}

.login-feature-list {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.92rem;
}

.login-feature-list li {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
}

.login-feature-list i {
  margin-top: 0.2rem;
  color: #98f5c4;
}

.login-oauth-panel {
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.login-oauth-panel p {
  margin: 0 0 0.65rem;
  color: rgba(255, 255, 255, 0.76);
  font-weight: 700;
}

.login-oauth-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.login-oauth-list form {
  margin: 0;
}

.login-oauth-v2 {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 0;
  border-radius: 999px;
  padding-inline: 0.9rem;
  color: #12314f;
  background: #fff;
  font-weight: 700;
}

.login-oauth-panel-light {
  border-top-color: #d7e2ef;
}

.login-oauth-panel-light p {
  color: #526174;
}

.login-oauth-panel-light .login-oauth-v2 {
  border-color: #c8d5e3;
  background: #f8fbff;
}

.login-oauth-icon-v2 {
  width: 1rem;
  text-align: center;
}

@media (max-width: 767.98px) {
  .login-page-v2 {
    align-items: flex-start;
    overflow: auto;
  }

  .login-card-v2 {
    grid-template-columns: 1fr;
    max-height: none;
  }

  .login-info-panel {
    gap: 0.9rem;
  }
}

body:has(.login-page-v2) {
  overflow: hidden;
}

body:has(.login-page-v2) .app-main {
  min-height: calc(100vh - 57px) !important;
}

body:has(.login-page-v2) .app-content,
body:has(.login-page-v2) .container-fluid {
  padding: 0;
}

.login-acknowledgment {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin-top: -0.25rem;
  color: #526174;
  font-size: 0.74rem;
  line-height: 1.28;
}

.login-acknowledgment .form-check-input {
  flex: 0 0 auto;
  margin-top: 0.15rem;
}

.login-oauth-panel-light .login-oauth-v2:not(:disabled):hover,
.login-oauth-panel-light .login-oauth-v2:not(:disabled):focus {
  --bs-btn-hover-bg: #e8f3ff;
  --bs-btn-hover-color: #004f8a;
  --bs-btn-hover-border-color: #0067b1;
  border-color: #0067b1 !important;
  background-color: #e8f3ff !important;
  color: #004f8a !important;
  box-shadow: 0 0 0 0.16rem rgba(0, 103, 177, 0.16);
}

.login-oauth-panel-light .login-oauth-v2:not(:disabled):active {
  background-color: #d7ebff !important;
  color: #003e70 !important;
}

.dashboard-hero {
  overflow: hidden;
  color: #fff;
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.28), transparent 34%),
    linear-gradient(135deg, #2563eb 0%, #7c3aed 58%, #0f172a 100%);
  box-shadow: 0 .9rem 2.1rem rgba(37, 99, 235, .2);
}

.text-white-75 { color: rgba(255,255,255,.75); }

.dashboard-metric {
  overflow: hidden;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 .55rem 1.5rem rgba(var(--bs-body-color-rgb), .06);
}

.dashboard-metric-icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), .1);
  border-radius: .9rem;
  font-size: 1.3rem;
}

.dashboard-chart-row {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: .45rem .75rem;
  align-items: center;
  margin-bottom: .75rem;
}

.dashboard-chart-label {
  grid-row: span 3;
  color: var(--bs-secondary-color);
  font-size: .85rem;
  font-weight: 600;
}

.dashboard-bar {
  position: relative;
  min-height: 1.35rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(var(--bs-secondary-rgb), .12);
}

.dashboard-bar::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--bar-width);
  border-radius: inherit;
}

.dashboard-bar span {
  position: relative;
  z-index: 1;
  display: block;
  padding: .12rem .65rem;
  font-size: .75rem;
  font-weight: 600;
}

.dashboard-bar-budget::before { background: linear-gradient(90deg, #60a5fa, #2563eb); }
.dashboard-bar-actual::before { background: linear-gradient(90deg, #34d399, #059669); }
.dashboard-bar-forecast::before { background: linear-gradient(90deg, #fbbf24, #f59e0b); }
.dashboard-progress { height: .45rem; }

.finance-analytics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.finance-kpi { border: 0; border-radius: 1rem; box-shadow: 0 .65rem 1.6rem rgba(var(--bs-body-color-rgb), .06); }
.finance-bars { display: grid; gap: .75rem; }
.finance-bar-row { display: grid; grid-template-columns: 3rem 1fr; gap: .35rem .75rem; align-items: center; }
.finance-axis { grid-row: span 3; color: var(--bs-secondary-color); font-weight: 700; font-size: .85rem; }
.finance-bar { position: relative; min-height: 1.45rem; overflow: hidden; border-radius: 999px; background: rgba(var(--bs-secondary-rgb), .12); }
.finance-bar::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--bar-width); border-radius: inherit; background: linear-gradient(90deg,#60a5fa,#2563eb); }
.finance-bar-actual::before { background: linear-gradient(90deg,#34d399,#059669); }
.finance-bar-forecast::before { background: linear-gradient(90deg,#fbbf24,#f59e0b); }
.finance-bar span { position: relative; z-index: 1; display: block; padding: .14rem .65rem; font-size: .75rem; font-weight: 700; }
.finance-waterfall-item,.finance-snapshot { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--bs-border-color); }
.finance-text-success strong { color: var(--bs-success); } .finance-text-danger strong { color: var(--bs-danger); } .finance-text-primary strong { color: var(--bs-primary); } .finance-text-warning strong { color: var(--bs-warning); }
.finance-donut,.finance-ring { width: 9rem; height: 9rem; border-radius: 50%; display:grid; place-items:center; background: conic-gradient(var(--bs-primary) var(--pct), rgba(var(--bs-secondary-rgb),.16) 0); }
.finance-donut span,.finance-ring span { width: 5.8rem; height: 5.8rem; border-radius: 50%; display:grid; place-items:center; background: var(--bs-body-bg); font-weight: 800; }
.finance-heat { background: color-mix(in srgb, var(--bs-danger) calc(var(--heat) * .55%), var(--bs-success)); color:#fff; border-radius:.4rem; min-width:4.5rem; text-align:center; }
.finance-heat span { display:block; font-size:.7rem; opacity:.85; }

.finance-command {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.35rem;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 1.2rem;
  background: linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(30, 41, 59, .92));
  color: #fff;
  box-shadow: 0 1rem 2.4rem rgba(15, 23, 42, .18);
}
.finance-command h2 { margin: .15rem 0 .3rem; font-weight: 800; letter-spacing: -.025em; }
.finance-command p { margin: 0; color: rgba(255,255,255,.72); }
.finance-command-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-content: flex-start; justify-content: flex-end; }
.finance-eyebrow { color: #38bdf8; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.finance-pill { display: inline-flex; gap: .4rem; align-items: center; padding: .45rem .65rem; border-radius: 999px; background: rgba(255,255,255,.1); font-size: .78rem; font-weight: 700; }
.finance-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr)); gap: .9rem; }
.finance-kpi-card { position: relative; overflow: hidden; padding: 1rem; border: 1px solid rgba(148, 163, 184, .18); border-radius: 1rem; background: var(--bs-body-bg); box-shadow: 0 .75rem 1.8rem rgba(15, 23, 42, .06); }
.finance-kpi-card::before { content: ""; position: absolute; inset: 0 0 auto; height: .22rem; background: var(--finance-tone, var(--bs-primary)); }
.finance-kpi-success { --finance-tone: var(--bs-success); } .finance-kpi-danger { --finance-tone: var(--bs-danger); } .finance-kpi-warning { --finance-tone: var(--bs-warning); } .finance-kpi-info { --finance-tone: var(--bs-info); } .finance-kpi-secondary { --finance-tone: var(--bs-secondary); }
.finance-kpi-top { display: flex; justify-content: space-between; color: var(--bs-secondary-color); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.finance-kpi-top i { color: var(--finance-tone, var(--bs-primary)); font-size: 1rem; }
.finance-kpi-label { margin-top: .85rem; color: var(--bs-secondary-color); font-size: .86rem; }
.finance-kpi-value { font-size: 1.55rem; font-weight: 850; letter-spacing: -.025em; }
.finance-kpi-subtitle { color: var(--bs-secondary-color); font-size: .78rem; }
.finance-panel { border: 1px solid rgba(148, 163, 184, .2); border-radius: 1.05rem; overflow: hidden; box-shadow: 0 .7rem 1.7rem rgba(15, 23, 42, .055); }
.finance-panel-header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; padding: 1rem 1rem .55rem; border-bottom: 1px solid rgba(148, 163, 184, .16); }
.finance-panel-header h3 { margin: .08rem 0 0; font-size: 1rem; font-weight: 820; }
.finance-legend { color: var(--bs-secondary-color); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.finance-legend span { display: inline-block; width: .65rem; height: .65rem; margin: 0 .25rem 0 .6rem; border-radius: .2rem; vertical-align: middle; }
.finance-legend .budget { background:#2563eb; } .finance-legend .actual { background:#059669; } .finance-legend .forecast { background:#d97706; }
.finance-bars-pro { display: grid; gap: .65rem; }
.finance-bar-row-pro { display: grid; grid-template-columns: 3rem repeat(3, 1fr); gap: .55rem; align-items: center; }
.finance-month { color: var(--bs-secondary-color); font-weight: 800; font-size: .8rem; }
.finance-bar-track { position: relative; min-height: 2.05rem; border-radius: .65rem; overflow: hidden; background: rgba(148, 163, 184, .13); }
.finance-bar-track strong { position: relative; z-index: 1; display: block; padding: .45rem .55rem; font-size: .72rem; }
.finance-bar-fill { position: absolute; inset: 0 auto 0 0; border-radius: inherit; opacity: .86; }
.finance-bar-budget { background: linear-gradient(90deg,#93c5fd,#2563eb); } .finance-bar-actual { background: linear-gradient(90deg,#6ee7b7,#059669); } .finance-bar-forecast { background: linear-gradient(90deg,#fcd34d,#d97706); }
.finance-insights { margin: 0; padding-left: 1.15rem; display: grid; gap: .8rem; }
.finance-insights li { color: var(--bs-body-color); font-size: .9rem; line-height: 1.35; }
.finance-waterfall .finance-waterfall-item:last-child { margin-top: .4rem; padding-top: 1rem; border-top: 2px solid var(--bs-border-color); font-size: 1.05rem; }
.finance-mix-row { display: grid; grid-template-columns: 1fr auto 3rem; gap: .65rem; align-items: center; padding: .35rem 0; border-bottom: 1px dashed rgba(148, 163, 184, .28); font-size: .84rem; }
.finance-mix-row em { color: var(--bs-secondary-color); font-style: normal; text-align: right; }
.finance-donut-pro,.finance-ring-pro { width: 8.8rem; height: 8.8rem; border-radius: 50%; display:grid; place-items:center; background: conic-gradient(#2563eb var(--pct), rgba(148,163,184,.16) 0); box-shadow: inset 0 0 0 1px rgba(148,163,184,.16); }
.finance-donut-pro span,.finance-ring-pro span { width: 5.4rem; height: 5.4rem; border-radius: 50%; display:grid; place-items:center; background: var(--bs-body-bg); font-weight: 850; }
.finance-rank-row { margin-bottom: .85rem; }
.finance-rank-row > div:first-child { display:flex; justify-content:space-between; gap:.75rem; font-size:.84rem; }
.finance-rank-track,.finance-util { display:block; height:.5rem; border-radius:999px; background:rgba(148,163,184,.17); overflow:hidden; }
.finance-rank-track span,.finance-util i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#38bdf8,#2563eb); }
.finance-ring-wrap { display:flex; align-items:center; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(148,163,184,.18); }
.finance-ring-pro { width: 6.25rem; height: 6.25rem; background: conic-gradient(#059669 var(--pct), rgba(148,163,184,.16) 0); flex: 0 0 auto; }
.finance-ring-pro span { width: 3.8rem; height: 3.8rem; }
.finance-risk-table th { color: var(--bs-secondary-color); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; }
.finance-util { width: 5.2rem; display:inline-block; margin-right:.45rem; vertical-align:middle; }
.finance-heat-grid { display:grid; grid-template-columns: minmax(8rem, 1.15fr) repeat(6, minmax(3.5rem, .55fr)); gap:.35rem; align-items:stretch; }
.finance-heat-label { color: var(--bs-secondary-color); font-size:.76rem; font-weight:800; align-self:center; }
@media (max-width: 992px) { .finance-command { flex-direction: column; } .finance-bar-row-pro { grid-template-columns: 3rem 1fr; } .finance-heat-grid { grid-template-columns: repeat(2, 1fr); } }
.finance-heat-table { margin-top: .75rem; }
.finance-heat-table th { color: var(--bs-secondary-color); font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; }
.finance-heat-table .finance-heat { display: inline-block; min-width: 3.25rem; padding: .25rem .35rem; border-radius: .45rem; font-weight: 800; font-size: .72rem; text-align: center; }
.finance-toolbar { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.65rem .8rem; border:1px solid rgba(148,163,184,.2); border-radius:.9rem; background:var(--bs-body-bg); box-shadow:0 .35rem 1rem rgba(15,23,42,.04); }
.finance-toolbar-meta { display:flex; flex-wrap:wrap; gap:.9rem; color:var(--bs-secondary-color); font-size:.82rem; font-weight:700; }
.finance-toolbar-meta i { color:var(--bs-primary); margin-right:.25rem; }
@media (max-width: 768px) { .finance-toolbar { align-items:flex-start; flex-direction:column; } }
.pagination-bar { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; padding:.75rem 1rem; border-top:1px solid var(--bs-border-color); flex-wrap:nowrap; white-space:nowrap; overflow-x:auto; }
.pagination-summary { color:var(--bs-secondary-color); font-size:.85rem; font-weight:700; margin-right:.25rem; }
.pagination-size-form { flex:0 0 auto; width:5.5rem; }
.finance-empty-state { border: 1px dashed rgba(148,163,184,.42); border-radius: .9rem; background: rgba(148,163,184,.08); }
.finance-empty-state i { color: var(--bs-primary); font-size: 1.35rem; }
.finance-empty-state h4 { margin: 0 0 .35rem; font-size: .98rem; font-weight: 820; }
.finance-mock-topbar { display:flex; align-items:center; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid rgba(148,163,184,.22); background:var(--bs-body-bg); }
.finance-mock-brand { display:flex; align-items:center; gap:.55rem; color:var(--bs-primary); min-width:9rem; }
.finance-mock-brand i { width:1.65rem; height:1.65rem; border-radius:.45rem; display:grid; place-items:center; color:#fff; background:var(--bs-primary); }
.finance-mock-entity,.finance-mock-date,.finance-mock-status { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .65rem; border:1px solid rgba(148,163,184,.22); border-radius:.55rem; font-size:.85rem; }
.finance-mock-status { color:#047857; background:#ecfdf5; border-color:#a7f3d0; font-weight:700; }
.finance-summary-table th,.finance-summary-table td { font-size:.78rem; }
.finance-mock-topbar { flex-wrap:nowrap; overflow-x:auto; }
.finance-mock-info-row { display:flex; align-items:center; gap:1rem; min-width:0; flex:1 1 auto; white-space:nowrap; }
.finance-period-switcher { flex:0 0 auto; margin-left:auto; }
.finance-title-info { color:var(--bs-secondary-color); font-size:.78rem; margin-left:.25rem; }
.finance-chart-empty { grid-column:1 / -1; min-height:18rem; display:grid; place-items:center; align-content:center; gap:.45rem; color:var(--bs-secondary-color); text-align:center; border:1px dashed rgba(148,163,184,.34); border-radius:.9rem; background:rgba(148,163,184,.06); }
.finance-chart-empty i { color:var(--bs-primary); font-size:1.5rem; }
.finance-chart-empty strong { color:var(--bs-body-color); }
