html,
body,
button,
input,
select,
textarea {
  font-family: "Manrope", sans-serif;
}

.w3-orange {
  color: #000 !important;
}

#id-portal-header,
#portal-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
}

#id-portal-header-bar.w3-bar,
#portal-header-bar.w3-bar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  min-height: 76px;
  padding: 0 12px;
  gap: 2px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12), 0 4px 14px rgba(0, 0, 0, 0.08);
}

#id-portal-header-bar > .w3-bar-item,
#portal-header-bar > .w3-bar-item {
  float: none;
}

#id-portal-header-brand,
#portal-header-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 8px 12px 8px 4px;
  flex-shrink: 0;
}

#id-portal-header-actions.w3-bar-item,
#portal-header-actions.w3-bar-item {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  padding: 0;
}

#id-portal-nav-collapse {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}

#id-portal-nav-menu-btn {
  margin-left: auto;
}

.vzr-portal-field-label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #777;
  line-height: 1.35;
  margin-bottom: 4px;
}

.vzr-portal-form-section {
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid #e8e8e8;
}

.vzr-portal-form-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #555;
  line-height: 1.4;
  margin: 0 0 12px;
}

.vzr-preload-banner {
  margin-bottom: 12px;
}

#id-auth-content {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

.vzr-auth-section .vzr-tx-table-section-body {
  box-sizing: border-box;
}

.vzr-auth-section--static .vzr-auth-section-header {
  cursor: default;
  padding-bottom: 10px;
  border-bottom: 1px solid #e8e8e8;
}

.vzr-auth-section--static .vzr-auth-section-header::before {
  display: none !important;
  content: "" !important;
}

.vzr-auth-section .vzr-tx-table-section-body input.w3-input,
.vzr-auth-section .vzr-tx-table-section-body select.w3-input,
.vzr-auth-section .vzr-tx-table-section-body select.w3-select,
.vzr-auth-section .vzr-tx-table-section-body textarea.w3-input {
  width: 100%;
  box-sizing: border-box;
}

.vzr-entity-form-card.w3-modal-content {
  margin: auto;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.vzr-auth-section.vzr-auth-section--static {
  border: 1px solid #ff9800;
  box-sizing: border-box;
}

.vzr-entity-form-card > .vzr-auth-section {
  margin: 0;
}

.vzr-entity-form-card .vzr-auth-section-header {
  position: relative;
  padding-right: 40px;
}

.vzr-entity-form-close {
  position: absolute;
  top: -4px;
  right: -8px;
  min-width: 36px !important;
  font-size: 22px;
  line-height: 1;
  padding: 4px 8px !important;
}

.vzr-entity-modal-form .w3-margin-bottom:last-child,
.vzr-account-modal-form .w3-margin-bottom:last-child {
  margin-bottom: 0 !important;
}

.vzr-entity-form-card .vzr-tx-form-panel {
  box-shadow: none;
  margin: 0;
  padding: 0 !important;
  background: transparent;
}

.vzr-entity-form-card .vzr-tx-form-body {
  padding: 0;
}

.vzr-entity-form-card .vzr-tx-form-footer,
.vzr-entity-form-card .vzr-entity-form-actions {
  margin-top: 16px;
  padding: 0;
  background: transparent;
}

.vzr-entity-form-actions,
.vzr-tx-form-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}

.vzr-entity-form-primary-btn,
.vzr-entity-form-secondary-btn {
  display: inline-block;
  width: auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  text-align: center;
}

.vzr-entity-form-secondary-btn {
  color: #333 !important;
  background: #fff !important;
  border: 1px solid #ccc !important;
}

.vzr-entity-form-secondary-btn:hover {
  background: #f5f5f5 !important;
}

.vzr-auth-form-actions {
  margin: 16px 0 0;
}

.vzr-auth-form-actions > * + * {
  margin-top: 8px;
}

.vzr-auth-primary-btn,
.vzr-auth-secondary-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}

.vzr-auth-secondary-btn {
  text-decoration: none;
  color: #333 !important;
  background: #fff !important;
  border: 1px solid #ccc !important;
}

.vzr-auth-secondary-btn:hover {
  background: #f5f5f5 !important;
}

/* Table row hover — w3-white / tinted rows use !important backgrounds, so hover must too. */
.vzr-tx-list .vzr-tx-row.w3-row:not(.vzr-section-skeleton-row):not(.vzr-tx-empty-row),
#entity-table-wrap .w3-table tbody tr:not(.vzr-section-skeleton-row),
.vzr-tx-accounts-table tbody tr.vzr-tx-accounts-row,
#id-portal-content .w3-table > tr,
#portal-content .w3-table > tr {
  transition: background-color 0.12s ease;
}

.vzr-tx-list .vzr-tx-row.w3-row:not(.vzr-section-skeleton-row):not(.vzr-tx-empty-row):hover,
#entity-table-wrap .w3-table tbody tr:not(.vzr-section-skeleton-row):hover,
.vzr-tx-accounts-table tbody tr.vzr-tx-accounts-row:hover,
#id-portal-content .w3-table > tr:hover,
#portal-content .w3-table > tr:hover {
  background: #f5f5f5 !important;
}

/*
 * Mobile tx/reminder list rows — in portal.css (not only JS-injected styles) so production
 * cannot serve a stale cached transactions.js and break amount+account pairing.
 */
@media (max-width: 992px) {
  .vzr-tx-list .vzr-tx-row.w3-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .vzr-tx-list .vzr-tx-row.w3-row::after,
  .vzr-tx-list .vzr-tx-row.w3-row::before {
    display: none;
  }

  .vzr-tx-row-block {
    padding: 8px 0;
    float: none !important;
  }

  .vzr-tx-list
    .vzr-tx-row-block:not(.vzr-tx-amount-account-group):not(.vzr-tx-amount-cell):not(
      .vzr-tx-account-cell
    ) {
    width: 100% !important;
    flex: 1 1 100%;
  }

  .vzr-tx-amount-account-group {
    display: block !important;
    width: 100% !important;
    flex: 1 1 100%;
    padding: 8px 0;
    box-sizing: border-box;
    order: 2;
  }

  .vzr-tx-amount-account-pair {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
  }

  .vzr-tx-amount-account-pair > .vzr-tx-row-block {
    width: auto !important;
    flex: 0 1 auto !important;
    min-width: 0;
    padding: 0;
    float: none !important;
  }

  .vzr-tx-list .vzr-tx-date-cell {
    order: 1;
  }

  .vzr-tx-list .vzr-tx-amount-cell,
  .vzr-tx-list .vzr-tx-account-cell {
    order: 2;
  }

  .vzr-tx-list .vzr-tx-categories-cell {
    order: 3;
  }

  .vzr-tx-list .vzr-tx-comment-cell {
    order: 4;
  }

  .vzr-tx-list .vzr-tx-actions-cell {
    order: 5;
  }

  /* Reminder chains: Start → Schedule → Amount/Account → Categories → Payee/Comment → Actions */
  .vzr-tx-table--chains .vzr-reminder-start-cell {
    order: 1;
  }

  .vzr-tx-table--chains .vzr-reminder-schedule-cell {
    order: 2;
  }

  .vzr-tx-table--chains .vzr-tx-amount-account-group {
    order: 3;
  }

  .vzr-tx-table--chains .vzr-tx-categories-cell {
    order: 4;
  }

  .vzr-tx-table--chains .vzr-tx-comment-cell:not(.vzr-reminder-schedule-cell) {
    order: 5;
  }

  .vzr-tx-table--chains .vzr-tx-actions-cell {
    order: 6;
  }

  .vzr-tx-list .vzr-tx-cell-inner {
    min-height: 0;
  }

  .vzr-tx-list .vzr-tx-amount-stack {
    align-items: flex-start;
  }

  .vzr-tx-list .vzr-tx-amount-line {
    justify-content: flex-start;
  }

  .vzr-tx-list .vzr-tx-row-actions {
    justify-content: flex-start;
  }
}

.vzr-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.vzr-profile-action-btn {
  background-color: #fff !important;
  border-color: #ff9800 !important;
}

.vzr-profile-action-btn:hover {
  background-color: #fff8f0 !important;
}

.vzr-profile-field-lines {
  display: flex;
  flex-direction: column;
}

.vzr-profile-field-line + .vzr-profile-field-line {
  margin-top: 4px;
}

.vzr-profile-field-line .w3-codespan {
  word-break: break-all;
}

.vzr-profile-section .vzr-tx-table-section-meta:empty {
  display: none;
}
