/**
 * Enterprise compact UI — simple, neat, regulated.
 * Loaded after brand/style/forms. Forces small buttons & compact fields.
 */

:root {
  --mf-btn-font: 0.75rem;
  --mf-btn-pad-y: 0.22rem;
  --mf-btn-pad-x: 0.55rem;
  --mf-btn-radius: 6px;
  --mf-card-radius: 8px;
  --mf-page-title: 1.05rem;
  --mf-money-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ------------------------------------------------------------------ */
/* Buttons — consistently small across the staff console               */
/* ------------------------------------------------------------------ */

.mf-app .btn,
.page-header .btn,
.mf-filter-bar .btn,
.platform-content .btn {
  font-size: var(--mf-btn-font);
  font-weight: 600;
  line-height: 1.35;
  padding: var(--mf-btn-pad-y) var(--mf-btn-pad-x);
  border-radius: var(--mf-btn-radius);
  min-height: 1.85rem;
}

.mf-app .btn-sm,
.page-header .btn-sm,
.platform-content .btn-sm {
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
  min-height: 1.65rem;
}

/* Teller desk tiles may keep height, but keep compact type */
.mf-app .btn.btn-tile,
.mf-app a.btn.w-100.py-3 {
  font-size: 0.8rem;
  min-height: 0;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  border-radius: 8px;
}

.mf-app .btn-group > .btn {
  padding: var(--mf-btn-pad-y) 0.45rem;
}

.mf-app .btn-lg:not(.btn-tile):not(.w-100) {
  font-size: 0.8rem;
  padding: 0.35rem 0.75rem;
  min-height: 2rem;
}

/* ------------------------------------------------------------------ */
/* Page chrome — quieter headers                                       */
/* ------------------------------------------------------------------ */

.page-header,
.page-header-compact {
  padding: 0.55rem 0 !important;
  margin-bottom: 0.75rem !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--mf-border);
  background: var(--mf-surface);
}

.page-header-compact .page-header-title h1,
.page-header-compact .page-header-title h2,
.page-header .page-title,
.mf-app .page-title {
  font-size: var(--mf-page-title) !important;
  font-weight: 650 !important;
  color: var(--mf-text) !important;
  letter-spacing: -0.01em;
}

.page-header-compact .page-header-title .text-muted,
.page-header .page-subtitle {
  font-size: 0.75rem !important;
}

.mf-app.container-fluid,
main.mf-app {
  padding-top: 0.75rem !important;
  padding-bottom: 1.25rem !important;
}

/* ------------------------------------------------------------------ */
/* Cards & tables — denser, less ornament                              */
/* ------------------------------------------------------------------ */

.mf-app .card {
  border-radius: var(--mf-card-radius) !important;
  margin-bottom: 0.85rem !important;
  box-shadow: none !important;
  border: 1px solid var(--mf-border) !important;
}

.mf-app .card-header {
  padding: 0.55rem 0.85rem !important;
  font-size: 0.8rem;
  font-weight: 650;
  background: #f8fafc !important;
}

.mf-app .card-body {
  padding: 0.75rem 0.85rem !important;
}

.mf-app .card-footer {
  padding: 0.5rem 0.85rem !important;
}

.mf-app .table,
.mf-app .admin-table {
  font-size: 0.8rem;
}

.mf-app .table thead th,
.mf-app .admin-table thead th,
.mf-app .admin-table th {
  padding: 0.45rem 0.65rem !important;
  font-size: 0.68rem !important;
}

.mf-app .table td,
.mf-app .admin-table td {
  padding: 0.4rem 0.65rem !important;
  vertical-align: middle;
}

.mf-app .badge {
  font-size: 0.65rem;
  font-weight: 650;
  padding: 0.2em 0.45em;
  border-radius: 4px;
}

.mf-app .list-group-item {
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
}

.mf-app .alert {
  font-size: 0.8125rem;
  padding: 0.55rem 0.75rem;
  border-radius: 6px;
}

/* ------------------------------------------------------------------ */
/* Money — regulated numeric display                                   */
/* ------------------------------------------------------------------ */

.text-money,
.num-col,
.mf-app .money,
.portal-amount {
  font-family: var(--mf-money-font);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  font-weight: 600;
  white-space: nowrap;
}

.mf-app td.text-end.text-money,
.mf-app .num-col,
.mf-app td.num-col {
  text-align: right;
}

/* ------------------------------------------------------------------ */
/* Compact regulated fields (golden rule, staff + platform)            */
/* ------------------------------------------------------------------ */

.mf-app .platform-form-grid,
.mf-form .platform-form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  align-items: flex-start;
}

.mf-app .platform-field,
.mf-form .platform-field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.mf-app .platform-field.field-xs { flex: 0 0 5.5rem; max-width: 100%; }
.mf-app .platform-field.field-sm { flex: 0 0 11rem; max-width: 100%; }
.mf-app .platform-field.field-md { flex: 0 0 16rem; max-width: 100%; }
.mf-app .platform-field.field-lg { flex: 1 1 100%; max-width: 36rem; }
.mf-app .platform-field.field-auto { flex: 0 0 auto; }

.mf-app .platform-field .form-control,
.mf-app .platform-field .form-select,
.mf-app .platform-field textarea.form-control {
  width: 100%;
}

/* Default numeric / date / code inputs stay short */
.mf-app input[type="number"],
.mf-app input[type="date"],
.mf-app input[type="tel"],
.mf-app input[name*="code"],
.mf-app input[name*="amount"],
.mf-app input[name*="balance"],
.mf-app input[name*="rate"],
.mf-app input[name*="days"] {
  max-width: 14rem;
}

.mf-app textarea.form-control {
  max-width: 36rem;
}

.mf-app .input-group {
  max-width: 18rem;
}

.mf-app .input-group .input-group-text {
  font-size: 0.75rem;
  padding: 0.22rem 0.5rem;
  font-weight: 650;
}

/* ------------------------------------------------------------------ */
/* KPI / stat strips — quieter                                         */
/* ------------------------------------------------------------------ */

.mf-app .card.h-100 .display-6,
.mf-app .fs-4.fw-bold,
.mf-app .fs-3.fw-bold {
  font-size: 1.15rem !important;
}

.mf-app h1, .mf-app .h1 { font-size: 1.25rem; }
.mf-app h2, .mf-app .h2 { font-size: 1.1rem; }
.mf-app h3, .mf-app .h3 { font-size: 1rem; }
.mf-app h4, .mf-app .h4 { font-size: 0.95rem; }
.mf-app h5, .mf-app .h5 { font-size: 0.875rem; }
.mf-app h6, .mf-app .h6 { font-size: 0.8rem; }

/* ------------------------------------------------------------------ */
/* Module subnav pills — compact                                       */
/* ------------------------------------------------------------------ */

.mf-app .nav-pills .nav-link,
.module-subnav .nav-link {
  font-size: 0.75rem;
  padding: 0.3rem 0.65rem;
  border-radius: 6px;
}

/* ------------------------------------------------------------------ */
/* Portal parity                                                       */
/* ------------------------------------------------------------------ */

.portal-body .btn {
  font-size: var(--mf-btn-font);
  padding: var(--mf-btn-pad-y) var(--mf-btn-pad-x);
  border-radius: var(--mf-btn-radius);
  min-height: 1.85rem;
  font-weight: 600;
}

.portal-body .btn-sm {
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
}

.portal-row,
.portal-detail-item,
.portal-summary > div,
.portal-table-wrap {
  border-radius: 8px;
  box-shadow: none;
}

/* ------------------------------------------------------------------ */
/* Auth / landing CTA — keep readable but not oversized                */
/* ------------------------------------------------------------------ */

.auth-form .auth-submit,
.landing-btn {
  font-size: 0.875rem;
  padding: 0.65rem 1.1rem;
  border-radius: 8px;
  min-height: 2.4rem;
}
