@charset "UTF-8";
/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */
/* Global page background – Vested HR brand: light gray */
body {
  background: #F2F2F2;
  color: #333333;
  min-height: 100vh;
}

/* Global link color – Vested HR gold */
a,
a:link,
a:visited {
  color: #C8A24A;
}

a:hover,
a:focus {
  color: #b8922a;
}

/* Bootstrap variable overrides for nav-tabs */
.nav-tabs {
  --bs-nav-link-color: #C8A24A;
  --bs-nav-link-hover-color: #b8922a;
  --bs-nav-tabs-link-active-color: #C8A24A;
  --bs-nav-tabs-link-active-bg: #F2F2F2;
  --bs-nav-tabs-link-active-border-color: rgba(200, 162, 74, 0.4) rgba(200, 162, 74, 0.4) #F2F2F2;
}

.nav-link {
  --bs-nav-link-color: #C8A24A;
  --bs-nav-link-hover-color: #b8922a;
}

.bank-entry-id {
  width: 200px !important;
  min-width: 150px !important;
}

.bank-entry-transaction-type {
  width: 40% !important;
}

.bank-entry-check-number {
  width: 150px !important;
}

.bank-entry-amount {
  width: 120px !important;
  text-align: right !important;
}

.bank-entry-description {
  width: 300px !important;
  text-align: left !important;
}

.bank-entry-transaction-date {
  width: 180px !important;
}

.bank-entry-column-names-filter {
  margin-top: 150px !important;
}

/* Global keyboard focus ring – Vested HR gold */
*:focus-visible {
  outline: 3px solid #C8A24A !important;
  outline-offset: 3px !important;
  border-radius: 5px !important;
  box-shadow: 0 0 0 5px rgba(200, 162, 74, 0.18) !important;
}

/* Remove outline for mouse/touch users (only show for keyboard) */
*:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.ops-page {
  margin-top: 1.25rem;
}

.ops-heading {
  color: #111111;
  font-weight: 700;
}

.ops-subtitle {
  color: #6B6B6B !important;
}

.ops-card {
  border: 1px solid rgba(200, 162, 74, 0.22) !important;
  border-radius: 16px !important;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06) !important;
}

.ops-btn-primary {
  background-color: #111111;
  border-color: #111111;
  color: #ffffff;
}

.ops-btn-primary:hover,
.ops-btn-primary:focus {
  background-color: #333333;
  border-color: #333333;
  color: #ffffff;
}

.ops-btn-outline {
  border-color: rgba(200, 162, 74, 0.65);
  color: #C8A24A;
}

.ops-btn-outline:hover,
.ops-btn-outline:focus,
.ops-btn-outline:active,
.ops-btn-outline:focus-visible {
  background-color: #EBEBEB;
  border-color: #6B6B6B;
  color: #111111;
}

.ops-badge {
  background: #EBEBEB !important;
  border: 1px solid rgba(200, 162, 74, 0.4) !important;
  color: #333333 !important;
}

.ops-btn-md {
  padding: 0.45rem 0.9rem;
  font-weight: 600;
  border-radius: 10px;
}

.ops-btn-sm {
  padding: 0.22rem 0.65rem;
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 8px;
}

.ops-table thead th {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6B6B6B;
}

.ops-table tbody td {
  font-size: 0.95rem;
}

.ops-tabs .nav-link {
  color: #C8A24A !important;
}

.ops-tabs .nav-link:hover,
.ops-tabs .nav-link:focus {
  color: #b8922a !important;
  background-color: rgba(200, 162, 74, 0.08);
}

.ops-tabs .nav-link.active {
  color: #111111 !important;
  background-color: #F2F2F2;
  border-color: rgba(200, 162, 74, 0.4);
  border-bottom-color: #F2F2F2;
}

.ops-hero-card {
  border: 1px solid rgba(200, 162, 74, 0.2);
  border-radius: 24px;
  padding: 1.5rem;
  background: linear-gradient(135deg, #111111 0%, #333333 52%, #C8A24A 100%);
  color: #fff;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12);
}

.ops-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ops-hero-card h1,
.ops-hero-card p {
  color: inherit;
}

.ops-hero-copy {
  max-width: 60ch;
  color: rgba(255, 255, 255, 0.84);
}

.ops-form-card {
  border: 1px solid rgba(200, 162, 74, 0.22);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.06);
}

.ops-section-title {
  color: #111111;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}

.ops-section-copy {
  color: #6B6B6B;
  font-size: 0.92rem;
  margin-bottom: 0;
}

.ops-form-card .form-label {
  color: #333333;
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.ops-form-card .form-control,
.ops-form-card .form-select,
.ops-form-card input[type=date],
.ops-form-card input[type=number],
.ops-form-card input[type=text] {
  border: 1px solid rgba(200, 162, 74, 0.28);
  border-radius: 12px;
  min-height: 44px;
  background: #ffffff;
}

.ops-form-card .form-control:focus,
.ops-form-card .form-select:focus,
.ops-form-card input[type=date]:focus,
.ops-form-card input[type=number]:focus,
.ops-form-card input[type=text]:focus {
  border-color: rgba(200, 162, 74, 0.7);
  box-shadow: 0 0 0 0.2rem rgba(200, 162, 74, 0.16);
}

/* ── Datagrid table ──────────────────────────────────────────── */
table.datagrid-table {
  background-color: transparent;
  border-collapse: collapse;
  max-width: 100%;
}

table.datagrid-table th {
  background: rgba(49, 80, 109, 0.06);
  color: #31506D;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: left;
  vertical-align: top;
}

table.datagrid-table td,
table.datagrid-table th {
  border: 1px solid #EBEBEB;
  padding: 5px 10px;
}

table.datagrid-table td {
  color: #2A2627;
  font-size: 0.88rem;
}

.datagrid-order-control-asc,
.datagrid-order-control-desc {
  text-decoration: none;
  font-weight: normal;
  color: #31506D;
}

.datagrid-order-active-asc,
.datagrid-order-active-desc {
  background-color: rgba(183, 158, 75, 0.1);
}

.datagrid-order-active-asc a.datagrid-order-control-asc,
.datagrid-order-active-desc a.datagrid-order-control-desc {
  font-weight: bold;
  color: #B79E4B;
}

.datagrid-no-results {
  text-align: center;
  color: #6B6B6B;
}

/* ── Datagrid form ───────────────────────────────────────────── */
.datagrid-form {
  background-color: #FAFAFA;
  border: 1px solid rgba(183, 158, 75, 0.18);
  border-radius: 10px;
  padding: 20px;
}

.datagrid-filter {
  margin: 10px;
}

.datagrid-filter label {
  width: 150px;
  display: inline-block;
  color: #2A2627;
  font-weight: 600;
  font-size: 0.86rem;
}

.datagrid-filter input,
.datagrid-filter select {
  border: 1px solid rgba(183, 158, 75, 0.3);
  border-radius: 8px;
  display: inline-block;
  padding: 5px 12px;
  width: 300px;
  color: #2A2627;
  background: #fff;
}

.datagrid-filter input:focus,
.datagrid-filter select:focus {
  border-color: #B79E4B;
  outline: none;
  box-shadow: 0 0 0 0.18rem rgba(183, 158, 75, 0.18);
}

input.datagrid-range-from,
input.datagrid-range-to {
  width: 138px;
}

.datagrid-filter select[multiple] {
  border: 1px solid rgba(183, 158, 75, 0.3);
  border-radius: 8px;
  height: 100px;
}

select.datagrid-dynamic-field {
  width: 228px;
}

select.datagrid-dynamic-operation {
  margin-left: 7px;
  width: 60px;
}

.datagrid-dynamic-value {
  margin: 10px 0 0 154px;
}

.datagrid-range-separator {
  display: inline-block;
  margin: 6px 4px 0;
  color: #6B6B6B;
}

.datagrid-enum-checkboxes {
  display: inline-block;
}

.datagrid-enum-checkboxes input {
  margin: 7px;
  width: auto;
}

.datagrid-enum-checkboxes label {
  display: block;
  width: 100%;
  color: #2A2627;
  font-size: 0.86rem;
}

.datagrid-actions {
  padding-left: 160px;
}

.datagrid-submit {
  background-color: #31506D;
  border: none;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: normal;
  padding: 7px 15px;
  vertical-align: middle;
  display: inline-block;
  transition: background-color 0.15s ease;
}

.datagrid-submit:hover,
.datagrid-submit:focus {
  background-color: #2A2627;
}

.datagrid-submit:active {
  background-color: #2A2627;
}

.datagrid-reset {
  font-size: 0.84rem;
  padding: 7px 15px;
  vertical-align: middle;
  display: inline-block;
  color: #6B6B6B;
}
