/* ================================================================
   DANJ Aviation Finance Portal — Design System v3
   Light Mode · Apple-Inspired · Mobile-First
   Audience: Flight students 18-25, iPhone users
   ================================================================ */
:root {
  --bg-base:#F5F5F7;--bg-surface:#FFFFFF;--bg-elevated:#FFFFFF;--bg-tint:#F2F2F7;
  --text-primary:#1D1D1F;--text-secondary:#6E6E73;--text-tertiary:#AEAEB2;
  --accent:#0071E3;--accent-hover:#0077ED;--accent-light:#E8F1FB;
  --accent-ink:var(--accent);--accent-fill:var(--accent);--accent-fill-hover:var(--accent-hover);--accent-contrast:#FFFFFF;
  --success:#34C759;--success-light:#EBF8EF;--success-dark:#1A7A34;
  --warning:#FF9F0A;--warning-light:#FFF4E5;--warning-dark:#B25000;
  --danger:#FF3B30;--danger-light:#FFF0EF;--danger-dark:#C41A12;
  --border:rgba(0,0,0,0.08);--border-strong:rgba(0,0,0,0.14);
  --shadow-sm:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);
  --shadow-md:0 4px 16px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.04);
  --shadow-lg:0 12px 40px rgba(0,0,0,0.10),0 2px 8px rgba(0,0,0,0.06);
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;
  --topbar-h:56px;--sidebar-w:240px;--canvas-wide-w:1280px;--canvas-narrow-w:560px;--content-w:var(--canvas-wide-w);--admin-content-w:var(--canvas-wide-w);--applicant-content-w:var(--canvas-wide-w);--bottom-bar-h:80px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;
  --font:"Plus Jakarta Sans",-apple-system,sans-serif;
  --font-mono:"SF Mono","Fira Code",monospace;
  /* Legacy aliases */
  --bg:var(--bg-base);--surface:var(--bg-surface);--surface-2:var(--bg-tint);--surface-3:#E8E8ED;
  --border-subtle:rgba(0,0,0,0.05);--text:var(--text-primary);--text-2:var(--text-secondary);--text-3:var(--text-tertiary);
  --panel:var(--bg-surface);--navy:var(--accent);--blue:var(--accent);--blue-dark:var(--accent-hover);--blue-faint:var(--accent-light);
  --green:var(--success);--green-faint:var(--success-light);--red:var(--danger);--red-faint:var(--danger-light);
  --amber:var(--warning);--amber-faint:var(--warning-light);
  --shadow-card:var(--shadow-sm);--shadow-raised:var(--shadow-md);--shadow-modal:var(--shadow-lg);
  --accent-faint:var(--accent-light);--accent-glow:rgba(0,113,227,0.12);
  --radius:var(--radius-md);
  --success-faint:var(--success-light);--success-text:var(--success-dark);
  --danger-faint:var(--danger-light);--danger-text:var(--danger-dark);
  --warning-faint:var(--warning-light);--warning-text:var(--warning-dark);
  --ink-900:var(--text-primary);--ink-700:var(--text-secondary);--ink-500:var(--text-tertiary);
  --progress-gradient:linear-gradient(90deg,var(--accent),#5AC8FA);
  --navy-900:var(--accent);--navy-700:var(--accent);--orange:var(--warning);--orange-soft:var(--warning-light);
}
html{color-scheme:light;}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg-base:#0b1020;--bg-surface:#111827;--bg-elevated:#162033;--bg-tint:#1a2436;
  --text-primary:#F5F7FB;--text-secondary:#B5C0D4;--text-tertiary:#7D899F;
  --border:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.16);
  --shadow-sm:0 2px 10px rgba(0,0,0,0.32),0 1px 2px rgba(0,0,0,0.18);
  --shadow-md:0 12px 28px rgba(0,0,0,0.34),0 2px 10px rgba(0,0,0,0.20);
  --shadow-lg:0 20px 56px rgba(0,0,0,0.40),0 4px 18px rgba(0,0,0,0.24);
  --surface-3:#243049;
  --accent-ink:color-mix(in srgb, var(--accent) 50%, white);
  --accent-fill:color-mix(in srgb, var(--accent) 72%, white);
  --accent-fill-hover:color-mix(in srgb, var(--accent-fill) 84%, white);
  --accent-light:color-mix(in srgb, var(--accent) 24%, rgba(11,16,32,1));
  --blue-faint:color-mix(in srgb, var(--accent) 24%, rgba(11,16,32,1));
  --success-light:color-mix(in srgb, var(--success) 18%, rgba(11,16,32,1));
  --warning-light:color-mix(in srgb, var(--warning) 16%, rgba(11,16,32,1));
  --danger-light:color-mix(in srgb, var(--danger) 14%, rgba(11,16,32,1));
  --accent-glow:rgba(90,200,250,0.20);
  --border-subtle:rgba(255,255,255,0.05);
}
*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
[hidden]{display:none !important;}
img,svg{display:block;max-width:100%;}
body{font-family:var(--font);font-size:16px;line-height:1.5;color:var(--text-primary);background:var(--bg-base);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:clip;}
body.app-shell,
.app-shell.has-sidebar,
.admin-main,
.page-wrap,
.tab-panels-wrap,
.tab-panel{max-width:100%;min-width:0;}
h1,h2,h3,h4,h5{margin:0;font-family:var(--font);font-weight:700;line-height:1.2;color:var(--text-primary);letter-spacing:-0.02em;}
h1{font-size:28px;}h2{font-size:22px;}h3{font-size:18px;font-weight:600;}h4{font-size:14px;font-weight:600;letter-spacing:0;}
p{margin:0;color:var(--text-secondary);}
a{color:var(--accent-ink);text-decoration:none;}a:hover{color:var(--accent-fill-hover);}
a,button,.btn,input,select,textarea,.card,.panel{transition:all 150ms cubic-bezier(0.25,0.46,0.45,0.94);}
.mono,.font-mono,td.amount,th.amount,.kpi-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;}

html[data-theme="dark"] .navbar,
html[data-theme="dark"] .topbar,
html[data-theme="dark"] .admin-topbar{
  background:rgba(11,16,32,0.72);
  border-bottom-color:var(--border);
}
html[data-theme="dark"] .bottom-tab-bar{
  background:
    linear-gradient(180deg,rgba(17,24,39,0.76) 0%,rgba(17,24,39,0.88) 28%,rgba(11,16,32,0.94) 100%);
  border-top-color:rgba(255,255,255,0.16);
  box-shadow:
    0 -24px 56px rgba(0,0,0,0.34),
    0 -6px 22px rgba(255,255,255,0.05),
    inset 0 1px 0 rgba(255,255,255,0.18);
}
html[data-theme="dark"] .bottom-tab-bar::before{
  background:
    linear-gradient(180deg,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 34%,rgba(255,255,255,0.08) 100%),
    radial-gradient(circle at 50% -16%,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.06) 34%,rgba(255,255,255,0) 64%);
}
html[data-theme="dark"] .bottom-tab-bar-inner{
  background:linear-gradient(180deg,rgba(255,255,255,0.06) 0%,rgba(255,255,255,0.02) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10);
}
html[data-theme="dark"] .tab-item{
  color:var(--text-tertiary);
  background:linear-gradient(180deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.02) 100%);
  border-color:rgba(255,255,255,0.08);
}
html[data-theme="dark"] .tab-item.active{
  color:var(--accent-ink);
  background:linear-gradient(180deg,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.06) 100%);
  border-color:rgba(255,255,255,0.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 10px 24px rgba(0,0,0,0.18);
}
html[data-theme="dark"] .navbar-link:hover,
html[data-theme="dark"] .nav-link:hover,
html[data-theme="dark"] .admin-nav-item:hover,
html[data-theme="dark"] .btn-ghost:hover{
  background:rgba(255,255,255,0.06);
}
html[data-theme="dark"] .panel,
html[data-theme="dark"] .kpi-card,
html[data-theme="dark"] .loan-card,
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .home-card,
html[data-theme="dark"] .modal-box,
html[data-theme="dark"] .settings-group,
html[data-theme="dark"] .servicing-card,
html[data-theme="dark"] .next-step-card,
html[data-theme="dark"] .autopay-loan-card,
html[data-theme="dark"] .payment-action-card,
html[data-theme="dark"] .pay-option,
html[data-theme="dark"] .pay-method-form,
html[data-theme="dark"] .pay-summary-card,
html[data-theme="dark"] .pay-custom-wrap,
html[data-theme="dark"] .pay-add-btn,
html[data-theme="dark"] .table-stack tr{
  background:var(--bg-surface);
  color:var(--text-primary);
}
html[data-theme="dark"] .input,
html[data-theme="dark"] .input-group input,
html[data-theme="dark"] .input-group select,
html[data-theme="dark"] .input-group textarea,
html[data-theme="dark"] .stripe-mount{
  background:var(--bg-tint);
  color:var(--text-primary);
  border-color:var(--border-strong);
}
html[data-theme="dark"] .data-table th{background:var(--bg-tint);}
html[data-theme="dark"] .data-table tbody tr:nth-child(even) td{background:rgba(255,255,255,0.02);}
html[data-theme="dark"] .data-table tbody tr:hover td{background:rgba(255,255,255,0.04) !important;}
html[data-theme="dark"] .admin-sidebar{background:rgba(17,24,39,0.94);}
html[data-theme="dark"] .global-progress{background:rgba(255,255,255,0.08);}
html[data-theme="dark"] .global-banner{
  background:linear-gradient(180deg,rgba(255,255,255,0.06) 0%,rgba(255,255,255,0.03) 100%);
  border-color:var(--border);
}
html[data-theme="dark"] .home-page,
html[data-theme="dark"] .auth-screen,
html[data-theme="dark"] .pay-page{background:var(--bg-base);}
html[data-theme="dark"] .navbar-dropdown{
  background:var(--bg-elevated);
  box-shadow:0 12px 30px rgba(0,0,0,0.40),0 0 0 1px rgba(255,255,255,0.06);
}
html[data-theme="dark"] .cms-tabs{
  background:linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));
  border-color:var(--border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05);
}
html[data-theme="dark"] .cms-tab:hover{color:var(--text-primary);}
html[data-theme="dark"] .cms-tab.active{
  background:linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.01));
}

/* === LAYOUT === */

/* Navbar — frosted glass, brand + links + avatar dropdown */
.navbar{
  position:sticky;top:0;z-index:100;height:52px;
  background:rgba(255,255,255,0.85);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(0,0,0,0.08);
  display:flex;align-items:center;padding:0 24px;gap:0;
}
.navbar-brand{display:flex;align-items:center;gap:8px;text-decoration:none;margin-right:auto;flex-shrink:0;}
.navbar-brand:hover .navbar-brand-name{color:var(--accent-ink);}
.navbar-brand-name{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-0.01em;transition:color 150ms;}
.navbar-admin-badge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-light);padding:2px 7px;border-radius:var(--radius-pill);}
.navbar-links{display:flex;align-items:center;gap:4px;margin-left:auto;}
.navbar-link{font-size:14px;font-weight:500;color:var(--text-primary);text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);transition:background 150ms,color 150ms;}
.navbar-link:hover{background:rgba(0,0,0,0.05);color:var(--text-primary);text-decoration:none;}
.navbar-link.active{color:var(--accent-ink);background:var(--accent-light);}
.navbar-sign-in{font-size:14px;font-weight:600;color:var(--accent-contrast);background:var(--accent-fill);padding:7px 16px;border-radius:var(--radius-sm);text-decoration:none;margin-left:8px;transition:background 150ms;}
.navbar-sign-in:hover{background:var(--accent-fill-hover);color:var(--accent-contrast);text-decoration:none;}
.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.theme-toggle-btn--compact{margin-left:12px;flex-shrink:0;}
.theme-toggle-icon{font-size:14px;line-height:1;}
.theme-toggle-label{display:inline;}
.navbar-logout-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:none;border:1.5px solid var(--border-strong);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-secondary);padding:5px 12px;border-radius:var(--radius-pill);transition:background 150ms,color 150ms,border-color 150ms;height:32px;vertical-align:middle;flex-shrink:0;}
.navbar-logout-btn:hover{background:var(--danger-light);color:var(--danger);border-color:var(--danger);}
.navbar-logout-btn svg{flex-shrink:0;}
.navbar-logout-btn span{display:none;}
@media(min-width:768px){.navbar-logout-btn span{display:inline;}}

/* Avatar + dropdown */
.navbar-avatar-wrap{position:relative;margin-left:12px;flex-shrink:0;}
.navbar-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-fill);color:var(--accent-contrast);font-size:11px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity 150ms;font-family:var(--font);letter-spacing:.02em;}
.navbar-avatar:hover{opacity:.85;}
.navbar-dropdown{
  position:absolute;top:calc(100% + 8px);right:0;width:220px;
  background:#fff;border-radius:12px;
  box-shadow:0 4px 24px rgba(0,0,0,0.12),0 0 0 1px rgba(0,0,0,0.06);
  padding:6px;display:none;z-index:500;
  animation:dropIn 150ms ease both;
}
@keyframes dropIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.navbar-dropdown.open{display:block;}
.navbar-dropdown-header{padding:10px 12px 8px;border-bottom:1px solid rgba(0,0,0,0.06);margin-bottom:4px;}
.navbar-dropdown-header strong{display:block;font-size:13px;font-weight:600;color:var(--text-primary);}
.navbar-dropdown-header span{font-size:12px;color:var(--text-secondary);}
.navbar-dropdown-link{display:block;width:100%;padding:8px 12px;font-size:14px;color:var(--text-primary);text-decoration:none;border-radius:var(--radius-sm);transition:background 120ms;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--font);}
.navbar-dropdown-link:hover{background:var(--bg-tint);color:var(--text-primary);text-decoration:none;}
.navbar-dropdown-hr{border:none;border-top:1px solid rgba(0,0,0,0.06);margin:4px 0;}
.navbar-dropdown-logout{color:var(--danger) !important;}
.navbar-dropdown-logout:hover{background:var(--danger-light) !important;}

/* Legacy aliases used in admin topbar + print */
.topbar{position:sticky;top:0;z-index:100;height:52px;background:rgba(255,255,255,0.85);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,0.08);}
.brand{display:flex;align-items:center;justify-content:center;width:100%;font-size:15px;font-weight:700;color:var(--text-primary);text-decoration:none;letter-spacing:-0.01em;min-height:48px;}
.brand-logo{display:block;max-width:100%;max-height:80px;width:auto;height:auto;object-fit:contain;margin:0 auto;}
.navbar-brand-logo{max-height:30px;max-width:150px;margin:0;}
.theme-logo-dark{display:none !important;}
html[data-theme="dark"] .has-dark-logo .theme-logo-light{display:none !important;}
html[data-theme="dark"] .has-dark-logo .theme-logo-dark{display:block !important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:12px;font-size:20px;font-weight:700;color:var(--text-primary);text-decoration:none;margin-bottom:var(--s8);letter-spacing:-0.02em;min-height:44px;}
.auth-brand:hover{color:var(--text-primary);text-decoration:none;}
.auth-brand-logo{display:block;max-width:min(240px, 72vw);max-height:56px;width:auto;height:auto;object-fit:contain;}
.auth-brand-wordmark{display:inline-flex;align-items:center;}
.brand-dot{display:none;}
.nav-link{padding:6px 12px;font-size:14px;font-weight:500;color:var(--text-primary);border-radius:var(--radius-sm);text-decoration:none;}
.nav-link:hover{background:rgba(0,0,0,0.05);color:var(--text-primary);text-decoration:none;}
.nav-link.active{color:var(--accent-ink);background:var(--accent-light);}
.user-avatar{width:32px;height:32px;background:var(--accent-fill);color:var(--accent-contrast);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;text-transform:uppercase;}
.user-chip{display:flex;align-items:center;gap:var(--s2);cursor:default;}
.user-pill{font-size:13px;color:var(--text-secondary);}

/* Bottom Tab Bar (mobile) */
.bottom-tab-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;min-height:var(--bottom-bar-h);
  background:
    linear-gradient(180deg,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.28) 26%,rgba(255,255,255,0.42) 100%);
  -webkit-backdrop-filter:blur(42px) saturate(240%) contrast(112%);
  backdrop-filter:blur(42px) saturate(240%) contrast(112%);
  border-top:1px solid rgba(255,255,255,0.84);
  box-shadow:
    0 -22px 54px rgba(15,23,42,0.12),
    0 -4px 18px rgba(255,255,255,0.20),
    inset 0 1px 0 rgba(255,255,255,0.95);
  z-index:200;
  isolation:isolate;
  overflow:hidden;
  padding:0 max(8px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(8px, env(safe-area-inset-left, 0px));
}
.bottom-tab-bar::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,0.72) 0%,rgba(255,255,255,0.16) 34%,rgba(255,255,255,0.24) 100%),
    radial-gradient(circle at 50% -16%,rgba(255,255,255,0.92) 0%,rgba(255,255,255,0.12) 34%,rgba(255,255,255,0) 64%);
  pointer-events:none;
  z-index:0;
}
.bottom-tab-bar-inner{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;justify-content:stretch;
  min-height:var(--bottom-bar-h);padding:8px 10px 0;gap:8px;width:100%;
  background:linear-gradient(180deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.10) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.75);
  position:relative;z-index:1;
}
.tab-item{
  display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px 10px;
  color:var(--text-tertiary);text-decoration:none;flex:1;min-width:0;min-height:60px;
  justify-content:center;border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,0.26) 0%,rgba(255,255,255,0.08) 100%);
  border:1px solid rgba(255,255,255,0.18);
  position:relative;
  z-index:1;
}
.tab-item svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.tab-item span{display:block;font-size:10px;font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;}
.tab-item.active{
  color:var(--accent-ink);
  background:linear-gradient(180deg,rgba(255,255,255,0.84) 0%,rgba(255,255,255,0.34) 100%);
  border-color:rgba(255,255,255,0.56);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.96),
    0 10px 24px rgba(255,255,255,0.20),
    0 4px 14px rgba(15,23,42,0.06);
}
.tab-item.active svg{stroke-width:2;}
.tab-item-button{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:inherit;
  padding:8px 6px 10px;
  cursor:pointer;
  font-family:var(--font);
  appearance:none;
  -webkit-appearance:none;
  background:inherit;
  color:inherit;
  border:inherit;
  border-radius:inherit;
  line-height:inherit;
  box-shadow:none;
}
.tab-item-button span{display:block;font-size:10px;font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;}
.bottom-tab-logout-form{display:flex;align-items:stretch;min-width:0;margin:0;width:100%;}

.page-wrap{width:min(100%,var(--content-w));max-width:var(--content-w);margin:0 auto;padding:var(--s6) clamp(16px, 2.8vw, 24px);display:flex;flex-direction:column;gap:var(--s5);}
.page-wrap > *,
.panel,
.form-shell,
.cms-panel,
.cms-panel > form,
.table-wrap,
.table-scroll,
.inline-actions,
.panel-header > *{min-width:0;}
.global-progress{height:4px;background:var(--bg-tint);position:sticky;top:52px;z-index:99;}
.global-progress-bar{height:100%;background:var(--accent-fill);border-radius:0 2px 2px 0;transition:width 400ms ease;}

/* Admin sidebar */
.app-shell.has-sidebar{display:flex;flex-wrap:wrap;align-content:flex-start;min-height:100vh;}
.admin-sidebar{width:var(--sidebar-w);min-height:100vh;background:var(--bg-tint);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:50;}
.admin-sidebar-header{padding:var(--s5);border-bottom:1px solid var(--border);}
.admin-nav{flex:1;padding:var(--s3);display:flex;flex-direction:column;gap:2px;}
.admin-nav-item{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s3);border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;}
.admin-nav-item svg{width:16px;height:16px;stroke:currentColor;flex-shrink:0;fill:none;stroke-width:1.5;}
.admin-nav-item:hover{background:rgba(0,0,0,0.04);color:var(--text-primary);text-decoration:none;}
.admin-nav-item.active{background:var(--accent-light);color:var(--accent-ink);}
.admin-nav-section{padding:var(--s4) var(--s3) var(--s1);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);}
.admin-sidebar-footer{padding:var(--s4) var(--s3);border-top:1px solid var(--border);}
.admin-user-row{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);}
.admin-user-name{font-size:13px;font-weight:600;color:var(--text-primary);}
.admin-badge{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-light);padding:2px 7px;border-radius:var(--radius-pill);}
.admin-main{flex:1;min-width:0;width:100%;display:flex;flex-direction:column;overflow-x:hidden;}
.admin-topbar{height:var(--topbar-h);background:rgba(255,255,255,0.85);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--s6);justify-content:space-between;position:sticky;top:0;z-index:40;}
.admin-breadcrumb{display:flex;align-items:center;gap:var(--s2);font-size:14px;color:var(--text-tertiary);}
.admin-breadcrumb a{color:var(--text-secondary);}
.admin-breadcrumb .current{color:var(--text-primary);font-weight:600;}
.admin-breadcrumb .sep{color:var(--text-tertiary);}
.admin-topbar-actions{display:flex;gap:8px;align-items:center;}
.topbar-signout-form{margin:0;}
.admin-main .page-wrap{max-width:var(--admin-content-w);}
.app-shell.is-applicant .admin-main .page-wrap{max-width:var(--applicant-content-w);}
.sidebar-logout-form{margin-top:8px;}
.sidebar-logout-btn{color:rgba(255,255,255,0.4);border-color:rgba(255,255,255,0.08);}
.auth-brand-mark{flex-shrink:0;}

/* === COMPONENTS === */
.panel{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--s5) var(--s6);box-shadow:var(--shadow-sm);}
.panel:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.panel.no-hover:hover,.panel.panel-header:hover{box-shadow:var(--shadow-sm);transform:none;}
.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fadeUp 280ms ease-out both;}
.lift-in{animation:fadeUp 280ms ease-out both;}
.delay-1{animation-delay:40ms;}.delay-2{animation-delay:80ms;}.delay-3{animation-delay:120ms;}.delay-4{animation-delay:160ms;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:50px;padding:0 var(--s6);font-family:var(--font);font-size:17px;font-weight:600;border-radius:var(--radius-md);cursor:pointer;border:none;white-space:nowrap;text-decoration:none;position:relative;overflow:hidden;max-width:100%;}
.btn:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px;}
.btn:active{transform:scale(0.97);}
.btn-sm{height:36px;padding:0 var(--s4);font-size:14px;border-radius:var(--radius-sm);}
.btn-lg{height:54px;padding:0 var(--s8);}
.btn-block{width:100%;}
.btn-primary{background:var(--accent-fill);color:var(--accent-contrast);}
.btn-primary:hover{background:var(--accent-fill-hover);color:var(--accent-contrast);text-decoration:none;}
.btn-ghost{background:transparent;color:var(--accent-ink);border:1.5px solid var(--border-strong);}
.btn-ghost:hover{background:var(--bg-tint);color:var(--accent-ink);text-decoration:none;}
.btn-secondary{background:var(--bg-tint);color:var(--text-primary);border:1px solid var(--border);}
.btn-secondary:hover{background:#E8E8ED;color:var(--text-primary);text-decoration:none;}
.btn-danger{background:var(--danger);color:#fff;border:none;}
.btn-danger:hover{background:#E6352B;color:#fff;text-decoration:none;}
.btn-accent{background:var(--bg-tint);color:var(--text-primary);border:1px solid var(--border);}
.btn.is-loading{pointer-events:none;opacity:.7;color:transparent !important;}
.btn.is-loading::after{content:"";position:absolute;width:18px;height:18px;border:2px solid rgba(255,255,255,0.4);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;top:50%;left:50%;transform:translate(-50%,-50%);}
.btn-ghost.is-loading::after,.btn-secondary.is-loading::after{border:2px solid var(--border-strong);border-top-color:var(--accent-ink);}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Floating label inputs */
.input-group{position:relative;}
.input-group input,.input-group select,.input-group textarea{width:100%;height:56px;padding:20px 16px 8px;font-family:var(--font);font-size:17px;color:var(--text-primary);background:var(--bg-tint);border:1.5px solid var(--border);border-radius:var(--radius-sm);appearance:none;-webkit-appearance:none;outline:none;}
.input-group textarea{height:auto;min-height:100px;padding-top:24px;resize:vertical;}
.input-group select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AEAEB2' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;}
.input-group label{position:absolute;left:16px;top:17px;font-size:17px;font-weight:400;color:var(--text-tertiary);pointer-events:none;transition:all 150ms ease;}
.input-group input:focus~label,.input-group input:not(:placeholder-shown)~label,.input-group select:focus~label,.input-group textarea:focus~label,.input-group textarea:not(:placeholder-shown)~label,.input-group.has-value label,.input-group.is-active label,.input-group--filled label{top:8px;font-size:11px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--accent-ink);}
.input-group input:focus,.input-group select:focus,.input-group textarea:focus{border-color:var(--accent-ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-ink) 16%, transparent);background:var(--bg-surface);}
.input-group input.is-error{border-color:var(--danger);}
.field-hint{font-size:13px;color:var(--text-tertiary);margin-top:6px;padding-left:2px;}
.field-error{font-size:13px;color:var(--danger);margin-top:6px;padding-left:2px;display:flex;align-items:center;gap:4px;}

/* Legacy .input */
.input{display:block;width:100%;height:44px;padding:10px 14px;font-family:var(--font);font-size:15px;color:var(--text-primary);background:var(--bg-surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;-webkit-appearance:none;outline:none;}
.input:focus{border-color:var(--accent-ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-ink) 16%, transparent);}
.input-sm{height:36px;padding:6px 12px;font-size:13px;}
.input-label{display:block;font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase;}
select.input{padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6E73' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;}
.input-static{background:var(--bg-tint);cursor:default;}

/* iOS Toggle */
.toggle-wrap{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border);}
.toggle-wrap-label{font-size:16px;font-weight:500;color:var(--text-primary);}
.toggle-wrap-sub{font-size:13px;color:var(--text-secondary);margin-top:2px;}
.toggle{position:relative;display:inline-block;width:51px;height:31px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;position:absolute;}
.toggle-track{position:absolute;inset:0;background:#E5E5EA;border-radius:var(--radius-pill);cursor:pointer;transition:background 250ms cubic-bezier(0.25,0.46,0.45,0.94);}
.toggle input:checked+.toggle-track{background:var(--success);}
.toggle-thumb{position:absolute;top:2px;left:2px;width:27px;height:27px;background:white;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.3);transition:transform 250ms cubic-bezier(0.25,0.46,0.45,0.94);}
.toggle input:checked+.toggle-track .toggle-thumb{transform:translateX(20px);}
.toggle input:focus-visible+.toggle-track{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-ink) 22%, transparent);}

/* Form */
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s4);}
.form-grid > *{min-width:0;}
.field-col{display:flex;flex-direction:column;}
.field-col-end{justify-content:flex-end;}
.field-col-full{grid-column:1/-1;}
.input-required{font-size:11px;font-weight:700;color:#b91c1c;letter-spacing:0;text-transform:none;margin-left:2px;}
.inline-form{display:flex;gap:var(--s4);align-items:flex-end;flex-wrap:wrap;}
.inline-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4);}
.loan-filter-grid{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap;}
.form-section{margin-bottom:var(--s8);}
.form-section h3{margin-bottom:var(--s5);}
.form-shell{display:flex;flex-direction:column;gap:0;}
.check-row{flex-direction:row !important;align-items:center;gap:var(--s2);}
.check-row input[type="checkbox"]{width:auto;accent-color:var(--accent-fill);}
.phone-sync-row{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;}
.phone-sync-row > .input{flex:1 1 240px;min-width:0;}
.phone-sync-check{padding-top:24px;}
.reference-exception-check{margin-bottom:var(--s2);}
.reference-reason-field{gap:var(--s2);}
.reference-reason-field .field-hint{margin-top:var(--s2);padding-left:0;}
.history-section{display:flex;flex-direction:column;gap:var(--s4);}
.history-stack{display:flex;flex-direction:column;gap:var(--s4);}
.city-state-zip-row{display:grid;grid-template-columns:1fr 72px 100px;gap:var(--s3);}
.history-card{padding:var(--s5);border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);box-shadow:var(--shadow-sm);}
.history-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s4);}
.history-card-eyebrow{margin-bottom:4px;font-size:11px;}
.history-card-title{margin:0;font-size:18px;}
.history-card-grid{gap:var(--s3) var(--s4);}
.history-inline-check{margin-top:-4px;}
.history-chain-check{margin-top:var(--s2);padding-top:var(--s3);border-top:1px solid var(--border);}
.employment-detail-group{margin-top:var(--s4);padding-top:var(--s4);border-top:1px dashed var(--border-strong);}
.credit-reference-section{gap:var(--s5);}
.credit-reference-intro{margin-top:0;}
.credit-reference-actions{display:flex;justify-content:flex-start;}
.section-copy-actions{display:flex;justify-content:flex-end;}
.step-actions{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center;margin-bottom:var(--s4);}

/* Tables */
.table-wrap,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.data-table{width:100%;border-collapse:collapse;font-size:14px;}
.data-table th{text-align:left;padding:10px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);background:var(--bg-tint);border-bottom:1px solid var(--border);white-space:nowrap;}
.data-table td{padding:13px 16px;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle;}
.data-table tbody tr:nth-child(even) td{background:rgba(0,0,0,0.015);}
.data-table tbody tr{transition:background 120ms;}
.data-table tbody tr:hover td{background:var(--accent-light) !important;}
.data-table tbody tr:last-child td{border-bottom:none;}
.data-table .row-paid td{opacity:.55;}
.data-table .row-current td{background:rgba(0,113,227,0.04) !important;}
.data-table .row-upcoming td{background:rgba(255,159,10,0.04) !important;}
.data-table .row-final td{background:var(--success-light) !important;}
.actions-cell{white-space:nowrap;}
.data-table td.actions-cell,
.data-table td[data-label="Actions"],
.data-table td[data-label="Action"]{white-space:nowrap;}
.data-table td.actions-cell > a,
.data-table td.actions-cell > button,
.data-table td[data-label="Actions"] > a,
.data-table td[data-label="Actions"] > button,
.data-table td[data-label="Action"] > a,
.data-table td[data-label="Action"] > button{
  display:inline-flex;
  vertical-align:middle;
  margin-right:var(--s2);
}
.data-table td.actions-cell > form,
.data-table td.actions-cell > details,
.data-table td[data-label="Actions"] > form,
.data-table td[data-label="Actions"] > details,
.data-table td[data-label="Action"] > form,
.data-table td[data-label="Action"] > details{
  display:inline-block;
  vertical-align:middle;
  margin:0 var(--s2) 0 0;
}
.data-table td.actions-cell > *:last-child,
.data-table td[data-label="Actions"] > *:last-child,
.data-table td[data-label="Action"] > *:last-child{margin-right:0;}
.data-table td.actions-cell .btn,
.data-table td[data-label="Actions"] .btn,
.data-table td[data-label="Action"] .btn{
  width:auto;
  min-width:0;
}
.muted-cell{color:var(--text-tertiary);font-style:italic;font-size:14px;}
.muted-row td{color:var(--text-tertiary);}
.data-table td,.data-table th{overflow-wrap:anywhere;}
.table-stack .actions-cell,
.table-stack td[data-label="Actions"],
.table-stack td[data-label="Action"]{white-space:normal;}
.actions-group{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;}
.amortization-table .row-paid td{opacity:.5;}
.amortization-table .row-current td{background:rgba(0,113,227,0.06) !important;border-left:3px solid var(--accent-ink);}

/* Badges */
.badge,.status-pill{display:inline-flex;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;border-radius:var(--radius-pill);white-space:nowrap;}
.badge-success,.status-pill.status-active,.status-pill.status-funded,.status-pill.status-offer_selected,.status-pill.status-posted,.status-pill.status-paid,.status-paid-off{background:var(--success-light);color:var(--success-dark);}
.badge-warning,.status-pill.status-submitted,.status-pill.status-requested,.status-pill.status-pending_terms,.status-pill.status-processing,.status-pill.status-projected{background:var(--warning-light);color:var(--warning-dark);}
.badge-danger,.status-pill.status-denied,.status-pill.status-failed,.status-pill.status-reversed{background:var(--danger-light);color:var(--danger-dark);}
.badge-neutral,.status-pill.status-draft,.status-pill.status-contractual{background:var(--bg-tint);color:var(--text-secondary);}
.badge-info,.status-pill.status-under_review,.status-pill.status-initiated,.status-pill.status-approved,.status-pill.status-offer-selected{background:var(--accent-light);color:var(--accent-ink);}
.badge-accent{background:var(--accent-light);color:var(--accent-ink);}

/* Alerts */
.flash-stack{display:flex;flex-direction:column;gap:var(--s2);}
.flash-compact{margin-bottom:var(--s5);}
.alert{padding:var(--s3) var(--s4);font-size:14px;font-weight:500;border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--s3);}
.alert-success,.alert-info{background:var(--success-light);color:var(--success-dark);}
.alert-warning{background:var(--warning-light);color:var(--warning-dark);}
.alert-danger,.alert-error{background:var(--danger-light);color:var(--danger-dark);}

/* KPI */
.kpi-grid,.dashboard-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s4);}
.kpi-card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--s5);box-shadow:var(--shadow-sm);}
.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.kpi-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:var(--s2);}
.kpi-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;color:var(--text-primary);line-height:1;}
.kpi-sub{font-size:12px;color:var(--text-tertiary);margin-top:var(--s1);}
.kpi-trend{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;margin-top:var(--s2);}
.kpi-trend.up{color:var(--success-dark);}
.kpi-trend.down{color:var(--danger-dark);}

/* Progress */
.progress-track{width:100%;height:6px;background:var(--bg-tint);border-radius:var(--radius-pill);overflow:hidden;}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent-fill),#5AC8FA);border-radius:var(--radius-pill);transition:width .5s ease;}
.progress-label{font-size:12px;color:var(--text-tertiary);margin-top:6px;}

/* Tabs */
.tab-list{display:flex;border-bottom:1px solid var(--border);margin-bottom:var(--s6);overflow-x:auto;scrollbar-width:none;}
.tab-list::-webkit-scrollbar{display:none;}
.tab-btn{display:inline-flex;align-items:center;padding:10px 20px;font-size:14px;font-weight:600;color:var(--text-tertiary);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color 150ms,border-color 150ms;text-decoration:none;}
.tab-btn:hover{color:var(--text-secondary);}
.tab-btn.is-active{color:var(--accent-ink);border-bottom-color:var(--accent-ink);}
.tab-panels-wrap .tab-panel{display:none;}
.tab-panels-wrap .tab-panel.is-active{display:block;}
.tab-nav{padding:0;overflow:hidden;}
.tab-nav .tab-list{padding:0 var(--s5);margin:0;}

/* Modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:500;display:flex;align-items:center;justify-content:center;padding:var(--s4);backdrop-filter:blur(8px);}
.modal-backdrop[hidden]{display:none !important;}
.modal-box{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:modalIn 200ms ease both;}
@keyframes modalIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:var(--s1);font-size:20px;border-radius:var(--radius-sm);}
.modal-body{padding:var(--s6);}
.modal-footer{padding:var(--s4) var(--s6);border-top:1px solid var(--border);display:flex;gap:var(--s3);justify-content:flex-end;}

/* Toast */
.toast-stack{position:fixed;bottom:100px;right:var(--s5);display:flex;flex-direction:column;gap:var(--s3);z-index:1000;pointer-events:none;max-width:360px;}
.toast{background:rgba(30,30,30,0.92);color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-md);padding:14px 18px;pointer-events:all;position:relative;overflow:hidden;animation:toastIn 300ms ease both;box-shadow:var(--shadow-lg);}
@keyframes toastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.toast-message{font-size:14px;font-weight:600;}
.toast-body{font-size:13px;opacity:.8;margin-top:2px;}
.toast-progress{position:absolute;bottom:0;left:0;height:2px;background:rgba(255,255,255,0.4);animation:toastProgress 4s linear forwards;}
@keyframes toastProgress{from{width:100%}to{width:0%}}
.toast-close{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;color:rgba(255,255,255,0.6);font-size:16px;padding:2px;border-radius:4px;}
.toast-success .toast-progress{background:var(--success);}
.toast-danger  .toast-progress{background:var(--danger);}
.toast-warning .toast-progress{background:var(--warning);}

/* Summary/Stats */
.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s4) var(--s6);padding-top:var(--s4);}
.summary-grid-core{border-bottom:1px solid var(--border);padding-bottom:var(--s6);margin-bottom:var(--s5);}
.summary-item{display:flex;flex-direction:column;gap:4px;}
.summary-item span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-tertiary);}
.summary-item strong{font-size:18px;font-weight:700;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-primary);}
.summary-detail{font-size:12px;line-height:1.5;color:var(--text-secondary);margin-top:2px;}
.callout{padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--border);font-size:14px;line-height:1.6;}
.callout-warning{background:var(--warning-light);border-color:rgba(255,159,10,0.2);color:var(--warning-dark);}
.receipt-actions{margin-top:0;}
.receipt-panel{display:flex;flex-direction:column;gap:var(--s5);}
.receipt-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);padding-bottom:var(--s5);border-bottom:1px solid var(--border);flex-wrap:wrap;}
.receipt-code{font-family:var(--font-mono);font-size:30px;font-weight:700;letter-spacing:.04em;color:var(--text-primary);}
.receipt-status{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.receipt-channel{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);}
.receipt-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s4) var(--s6);}
.receipt-detail-list{display:flex;flex-direction:column;border-top:1px solid var(--border);padding-top:var(--s2);}
.receipt-table-cell{display:flex;flex-direction:column;gap:4px;}
.receipt-link{font-size:12px;font-weight:600;}
.receipt-lookup-form{display:flex;flex-direction:column;gap:var(--s4);}
.receipt-lookup-screen .page-wrap,
.payment-confirmation-screen .page-wrap{max-width:840px;}
.mini-list{display:flex;flex-direction:column;}
.mini-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--border);font-size:14px;flex-wrap:wrap;}
.mini-row:last-child{border-bottom:none;}
.mini-empty{color:var(--text-tertiary);font-size:14px;padding:var(--s4) 0;font-style:italic;}
.muted{color:var(--text-tertiary);}
.small{font-size:12px;}
.text-success{color:var(--success-dark) !important;}.text-warning{color:var(--warning-dark) !important;}.text-danger{color:var(--danger-dark) !important;}.text-accent{color:var(--accent-ink) !important;}.text-muted{color:var(--text-tertiary) !important;}

/* Hero card */
.hero-loan-card{background:var(--accent-fill);color:var(--accent-contrast);border-radius:var(--radius-xl);padding:var(--s6);box-shadow:var(--shadow-md);display:grid;grid-template-columns:1fr auto;gap:var(--s5);align-items:center;}
.hero-loan-card.paid{background:var(--success-dark);}
.hero-loan-card p{color:inherit;}
.hero-loan-card.paid .hero-label,.hero-loan-card.paid .hero-sub{opacity:1;color:rgba(255,255,255,0.85);}
.hero-loan-card.paid .hero-amount{color:#fff;}
.hero-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.82;margin-bottom:4px;color:rgba(255,255,255,0.88);}
.hero-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1;color:#fff;}
.hero-sub{font-size:14px;opacity:.92;margin-top:6px;color:rgba(255,255,255,0.88);}
.hero-sub strong{color:#fff;}
.progress-ring{width:72px;height:72px;flex-shrink:0;}
.progress-ring circle{fill:none;stroke-linecap:round;}
.progress-ring .track{stroke:rgba(255,255,255,0.2);}
.progress-ring .fill{stroke:white;stroke-dasharray:188;stroke-dashoffset:188;transition:stroke-dashoffset 1s ease;transform:rotate(-90deg);transform-origin:50% 50%;}
.progress-ring .pct{font-family:var(--font-mono);font-size:13px;font-weight:700;fill:white;text-anchor:middle;dominant-baseline:middle;}

/* Loan cards */
.loan-cards{display:flex;flex-direction:column;gap:var(--s3);}
.loan-card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--s5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s4);}
.loan-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.loan-card.overdue{border-left:4px solid var(--danger);}
.loan-card.in-grace{border-left:4px solid var(--warning);}
.loan-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);}
.loan-card-meta{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s8);}
.loan-card-stat{display:flex;flex-direction:column;gap:2px;}
.loan-card-stat .label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);}
.loan-card-stat .value{font-size:17px;font-weight:700;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-primary);}
.loan-card-actions{display:flex;gap:var(--s2);align-items:center;}
.payments-action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s3);margin-bottom:var(--s5);}
.payment-action-card{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;}
.payment-action-card:hover{border-color:var(--accent-ink);background:var(--accent-light);text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow-md);}
.payment-action-card strong{font-size:14px;font-weight:600;color:var(--text-primary);}
.payment-action-card span{font-size:13px;color:var(--text-secondary);}
.payment-action-form{display:contents;}
.payment-action-card-button{width:100%;font-family:var(--font);text-align:left;background:none;cursor:pointer;}
.servicing-header-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px;}
.servicing-snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s6) var(--s8);padding-bottom:var(--s6);margin-bottom:var(--s5);border-bottom:1px solid var(--border);}
.servicing-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s4) var(--s8);}
.summary-item.is-accent strong{color:var(--accent-ink);}
.summary-item.is-danger span,.summary-item.is-danger strong{color:var(--danger);}
.servicing-progress-block{margin-top:var(--s5);}
.ledger-fee-summary{display:grid;gap:8px;}
.ledger-fee-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ledger-fee-label{font-size:14px;font-weight:600;color:var(--text-primary);}
.ledger-fee-status{
  display:inline-flex;align-items:center;justify-content:center;
  padding:4px 10px;border-radius:var(--radius-pill);
  background:var(--bg-tint);color:var(--text-secondary);
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}
.ledger-fee-status.is-warning{background:var(--warning-light);color:var(--warning-dark);}
.ledger-fee-status.is-danger{background:var(--danger-light);color:var(--danger-dark);}
.ledger-fee-meta{display:flex;flex-wrap:wrap;gap:8px;}
.ledger-fee-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;border-radius:var(--radius-pill);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  border:1px solid var(--border);color:var(--text-secondary);
  font-size:12px;line-height:1.2;
}
.ledger-fee-note{font-size:12px;color:var(--text-tertiary);}
.ledger-fee-action-btn{
  min-width:112px;
  border-color:color-mix(in srgb,var(--accent) 20%, var(--border-strong));
  background:linear-gradient(180deg,var(--bg-surface) 0%,color-mix(in srgb,var(--accent-light) 52%, white) 100%);
  box-shadow:var(--shadow-sm);
}
.ledger-fee-action-btn:hover{
  border-color:color-mix(in srgb,var(--accent) 36%, var(--border-strong));
  box-shadow:var(--shadow-md);
}
.restricted-servicing-panel{
  display:grid;
  gap:var(--s5);
  padding:var(--s5);
  border:1px solid color-mix(in srgb,var(--warning) 18%, var(--border));
  border-radius:var(--radius-xl);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--warning-light) 48%, white) 0%,var(--bg-surface) 48%,var(--bg-surface) 100%);
  box-shadow:var(--shadow-sm);
}
.restricted-servicing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:var(--s4);
}
.restricted-action-card{
  display:grid;
  gap:var(--s4);
  padding:var(--s5);
  border-radius:var(--radius-xl);
  border:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  box-shadow:var(--shadow-sm);
}
.restricted-action-card.is-danger{
  border-color:color-mix(in srgb,var(--danger) 18%, var(--border));
  background:linear-gradient(180deg,color-mix(in srgb,var(--danger-light) 42%, white) 0%,var(--bg-surface) 48%,var(--bg-surface) 100%);
}
.restricted-action-copy{display:grid;gap:8px;}
.restricted-action-meta{display:flex;flex-wrap:wrap;gap:8px;}
.restricted-action-chip{
  display:inline-flex;align-items:center;justify-content:center;
  padding:6px 10px;border-radius:var(--radius-pill);
  border:1px solid var(--border);
  background:var(--bg-surface);
  font-size:12px;color:var(--text-secondary);line-height:1.2;
}
.restricted-action-chip.is-danger{
  border-color:color-mix(in srgb,var(--danger) 24%, var(--border));
  background:var(--danger-light);
  color:var(--danger-dark);
}
.protected-action-dialog{
  padding:0;
  width:min(92vw,640px);
  max-width:640px;
  background:var(--bg-surface);
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid var(--border);
}
.protected-action-dialog::backdrop{background:rgba(7,17,36,0.5);backdrop-filter:blur(10px);}
.protected-action-dialog-danger{
  border-color:color-mix(in srgb,var(--danger) 24%, var(--border));
}
.protected-action-dialog-form{display:grid;gap:0;}
.protected-action-dialog-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);
  padding:var(--s6);
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
}
.protected-action-dialog-copy{display:grid;gap:8px;}
.protected-action-dialog-title{font-size:22px;font-weight:700;letter-spacing:-0.03em;}
.protected-action-dialog-close{
  width:36px;height:36px;border:none;border-radius:50%;
  background:var(--bg-surface);color:var(--text-secondary);
  box-shadow:inset 0 0 0 1px var(--border);
  font-size:22px;line-height:1;cursor:pointer;
}
.protected-action-dialog-close:hover{color:var(--text-primary);background:var(--accent-light);}
.protected-action-stepbar{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding:var(--s4) var(--s6);
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--bg-tint) 76%, white);
}
.protected-action-step{
  display:grid;
  gap:var(--s4);
  padding:var(--s6);
}
.protected-action-review-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);
}
.protected-action-review-item{
  display:grid;
  gap:6px;
  padding:var(--s4);
  border-radius:var(--radius-lg);
  border:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
}
.protected-action-review-item.is-wide{grid-column:1 / -1;}
.protected-action-review-item span{
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.protected-action-review-item strong{
  font-size:14px;
  line-height:1.5;
  color:var(--text-primary);
  font-weight:600;
}
.restricted-action-check{
  padding:var(--s4);
  border-radius:var(--radius-lg);
  border:1px solid color-mix(in srgb,var(--warning) 16%, var(--border));
  background:color-mix(in srgb,var(--warning-light) 38%, white);
}
.input-help{
  display:block;
  margin-top:6px;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.5;
}
.fee-waiver-dialog{
  padding:0;
  width:min(92vw,540px);
  max-width:540px;
  background:var(--bg-surface);
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid var(--border);
}
.fee-waiver-dialog::backdrop{background:rgba(7,17,36,0.42);backdrop-filter:blur(10px);}
.fee-waiver-dialog-form{display:grid;gap:0;}
.fee-waiver-dialog-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);
  padding:var(--s6);
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
}
.fee-waiver-dialog-copy{display:grid;gap:8px;}
.fee-waiver-dialog-title{font-size:22px;font-weight:700;letter-spacing:-0.03em;}
.fee-waiver-dialog-close{
  width:36px;height:36px;border:none;border-radius:50%;
  background:var(--bg-surface);color:var(--text-secondary);
  box-shadow:inset 0 0 0 1px var(--border);
  font-size:22px;line-height:1;cursor:pointer;
}
.fee-waiver-dialog-close:hover{color:var(--text-primary);background:var(--accent-light);}
.fee-waiver-dialog-stats{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);padding:var(--s5) var(--s6) var(--s4);
}
.fee-waiver-dialog-stat{
  display:grid;gap:6px;padding:var(--s4);
  border-radius:var(--radius-lg);border:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
}
.fee-waiver-dialog-stat span{
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);
}
.fee-waiver-dialog-stat strong{
  font-size:18px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.fee-waiver-dialog-body{display:grid;gap:var(--s4);padding:0 var(--s6) var(--s6);}
.fee-waiver-dialog-note{margin-top:0;}
.progress-meter{width:100%;height:6px;appearance:none;-webkit-appearance:none;border:none;border-radius:var(--radius-pill);overflow:hidden;background:var(--bg-tint);}
.progress-meter::-webkit-progress-bar{background:var(--bg-tint);border-radius:var(--radius-pill);}
.progress-meter::-webkit-progress-value{background:var(--progress-gradient);border-radius:var(--radius-pill);}
.progress-meter::-moz-progress-bar{background:var(--progress-gradient);border-radius:var(--radius-pill);}
.panel-tabs{padding-top:0;}
.saved-methods-section{margin-top:var(--s6);}
.eyebrow-bottom-gap{margin-bottom:var(--s3);}
.saved-method-label{font-size:14px;color:var(--text-primary);}
.saved-method-last4{color:var(--text-3);}
.manual-payment-section{margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--border);}
.section-title-bottom-gap{margin-bottom:var(--s5);}
.actions-top-gap{margin-top:var(--s4);}
.portal-section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:var(--s5);}
.portal-copy-top{margin-top:4px;}
.btn-caption{font-size:12px;}
.portal-section-top{margin-top:var(--s8);}
.portal-subtext-bottom{margin-bottom:var(--s5);}
.portal-empty-state{padding:var(--s10) 0;text-align:center;}
.portal-empty-state p{color:var(--text-2);margin-bottom:16px;}
.portal-empty-cell{padding:var(--s10);text-align:center;color:var(--text-3);}
.borrower-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s4);}
.borrower-info-grid-two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.borrower-info-card{display:flex;flex-direction:column;gap:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);}
.borrower-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;}
.borrower-info-list{display:grid;gap:10px;}
.borrower-info-list div{display:flex;justify-content:space-between;gap:var(--s4);padding-bottom:8px;border-bottom:1px solid var(--border);align-items:flex-start;}
.borrower-info-list div:last-child{border-bottom:none;padding-bottom:0;}
.borrower-info-list span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);}
.borrower-info-list strong{font-size:14px;color:var(--text-primary);text-align:right;}
.borrower-doc-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.borrower-edit-panel{border-top:1px solid var(--border);padding-top:var(--s3);}
.borrower-edit-panel summary{cursor:pointer;font-weight:600;color:var(--accent-ink);}
.borrower-edit-panel[open] summary{margin-bottom:var(--s3);}
.borrower-mini-table{margin-top:var(--s2);}
.til-box-panel{background:linear-gradient(180deg,var(--bg-surface),var(--bg-tint));}
.til-box-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s3);}
.til-box-item{padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);}
.til-box-item span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:6px;}
.til-box-item strong{font-size:18px;font-weight:700;color:var(--text-primary);}
.cell-pad-lg{padding:20px;}
.mono-sm{font-size:13px;}
.mono-xs{font-size:11px;}
.cell-sm{font-size:13px;}
.cell-xs{font-size:12px;}
.text-secondary-cell{color:var(--text-2);}
.text-tertiary-cell{color:var(--text-3);}
.danger-cell{color:var(--danger);}
.dashboard-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);}
.outstanding-panel{border-left:4px solid var(--warning) !important;}
.outstanding-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4);}
.center-panel{text-align:center;padding:var(--s12) var(--s6);}
.error-code{font-size:48px;color:var(--text-tertiary);font-weight:700;margin-bottom:0;}
.empty-copy{max-width:380px;font-size:16px;}
.center-inline-actions{justify-content:center;margin-top:var(--s4);}
.support-note{margin-top:var(--s6);font-size:13px;color:var(--text-tertiary);}
.table-panel{padding:0;overflow:hidden;}
.table-id{font-size:13px;color:var(--text-tertiary);}
.table-subid{font-size:11px;color:var(--text-tertiary);margin-left:4px;}
.table-cell-meta{font-size:13px;color:var(--text-secondary);}
.table-cell-quiet{color:var(--text-tertiary);}
.empty-icon-emoji{font-size:28px;}
.empty-note{font-size:13px;margin-top:var(--s2);}
.page-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;}
.page-heading-row h1{margin-top:var(--s1);}
.dashboard-trend-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap;}
.dashboard-trend-total{font-size:22px;font-weight:700;color:var(--accent-ink);}
.dashboard-trend-chart{position:relative;height:180px;display:flex;align-items:flex-end;gap:12px;padding-top:24px;border-bottom:2px solid var(--border);}
.dashboard-trend-gridline{position:absolute;left:0;right:0;border-top:1px dashed var(--border);pointer-events:none;}
.dashboard-trend-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;position:relative;z-index:1;min-width:0;height:100%;}
.dashboard-trend-count{font-size:13px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);}
.dashboard-trend-bar{width:100%;max-width:64px;min-height:4px;background:linear-gradient(180deg,var(--accent-fill),#5AC8FA);border-radius:6px 6px 0 0;transition:height .4s ease;}
.dashboard-trend-label-row{display:flex;gap:12px;margin-top:6px;}
.dashboard-trend-label-col{flex:1;text-align:center;min-width:0;}
.dashboard-trend-label{font-size:11px;color:var(--text-tertiary);white-space:nowrap;}
.dashboard-mini-primary{font-size:14px;font-weight:500;}
.dashboard-mini-secondary{font-size:13px;color:var(--text-tertiary);}
.dashboard-balance-strong{font-size:14px;font-weight:600;}
.dashboard-panel-empty{font-size:14px;color:var(--text-tertiary);padding:var(--s4) 0;}
.app-list-badge-gap{margin-right:8px;}
.hero-check{font-size:28px;}
.hero-pay-btn{background:rgba(255,255,255,0.25);color:#fff;border:1.5px solid rgba(255,255,255,0.5);margin-top:14px;font-size:15px;height:38px;}
.hero-pay-btn:hover{background:rgba(255,255,255,0.32);color:#fff;text-decoration:none;}
.loan-card-actions-end{justify-content:flex-end;gap:8px;margin-top:4px;}
.app-progress-caption{margin-top:var(--s3);}
.form-inline{display:flex;gap:var(--s4);align-items:flex-end;flex-wrap:wrap;}
.search-pill{border-radius:var(--radius-pill);padding-left:16px;}
.audit-pagination{display:flex;align-items:center;justify-content:center;gap:var(--s4);padding:var(--s4) 0;}
.pagination-ellipsis{padding:.25rem .5rem;}
.confirm-form{display:inline;}
.user-edit-details{display:inline-block;}
#users-no-results{text-align:center;padding:var(--s6);color:var(--text-tertiary);font-size:14px;}

/* Auth */
.auth-screen{min-height:100vh;background:var(--bg-base);display:flex;align-items:center;justify-content:center;padding:var(--s6) var(--s5);}
.auth-stage{width:100%;display:flex;justify-content:center;}
.auth-card{width:100%;max-width:var(--canvas-narrow-w);background:var(--bg-surface);border-radius:var(--radius-xl);padding:var(--s10) var(--s8);box-shadow:var(--shadow-lg);animation:fadeUp 280ms ease-out both;}
.auth-header{margin-bottom:var(--s6);text-align:center;}
.auth-header h1{font-size:28px;margin-bottom:8px;}
.auth-header p{font-size:16px;}
.auth-form{display:flex;flex-direction:column;gap:var(--s4);}
.auth-submit{height:52px;font-size:17px;margin-top:4px;}
.auth-link-row{text-align:center;margin-top:16px;font-size:14px;}
.auth-help{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);text-align:center;}
.auth-help-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;}
.auth-help-list{display:flex;flex-direction:column;gap:6px;align-items:center;}
.auth-help-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);text-decoration:none;}
.auth-help-link:hover{color:var(--text-primary);text-decoration:none;}
.auth-help-icon{flex-shrink:0;}
.auth-resend-form{text-align:center;margin-top:12px;}
.auth-resend-btn{background:none;border:none;color:var(--accent-ink);font-size:14px;cursor:pointer;text-decoration:underline;font-family:var(--font);}
.auth-otp-input{text-align:center;font-size:24px;letter-spacing:8px;}
.auth-trust-row{display:flex;align-items:center;gap:8px;margin:-4px 0 8px;}
.auth-trust-checkbox{width:16px;height:16px;accent-color:var(--accent-fill);}
.auth-trust-label{font-size:13px;color:var(--text-secondary);cursor:pointer;}
.auth-footnote{text-align:center;font-size:14px;color:var(--text-secondary);margin-top:var(--s5);}
.auth-footnote a{color:var(--accent-ink);font-weight:500;}
.auth-divider{display:flex;align-items:center;gap:var(--s3);color:var(--text-tertiary);font-size:12px;margin:var(--s4) 0;}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--border);}
.auth-sso{display:grid;gap:var(--s3);}
.auth-sso-actions{display:grid;gap:var(--s3);}
.auth-sso-button{justify-content:center;}
.auth-sso-note{text-align:center;font-size:13px;color:var(--text-secondary);margin:0;}
.pw-strength{margin-top:8px;}
.pw-strength-track{height:3px;background:var(--bg-tint);border-radius:var(--radius-pill);}
.pw-strength-bar{height:100%;border-radius:var(--radius-pill);transition:width .3s,background .3s;width:0;}
.pw-strength-bar.weak{background:var(--danger);width:25%;}
.pw-strength-bar.fair{background:var(--warning);width:50%;}
.pw-strength-bar.good{background:#5AC8FA;width:75%;}
.pw-strength-bar.strong{background:var(--success);width:100%;}
.pw-strength-label{font-size:11px;color:var(--text-tertiary);margin-top:4px;}

/* Account */
body.account-screen .page-wrap{gap:var(--s6);}
.account-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--s5);
  align-items:flex-start;
  padding:var(--s8);
  background:
    radial-gradient(circle at top right, rgba(0,113,227,0.12), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.92) 100%);
  border:1px solid rgba(0,0,0,0.04);
}
.account-hero-main{display:flex;gap:var(--s5);align-items:flex-start;min-width:0;}
.account-avatar{
  width:76px;height:76px;border-radius:22px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--accent) 0%,#5AC8FA 100%);
  color:#fff;font-size:26px;font-weight:700;letter-spacing:-0.03em;
  box-shadow:var(--shadow-md);
}
.account-hero-copy{min-width:0;}
.account-hero-copy h1{font-size:34px;line-height:1.05;}
.account-hero-copy .subtext{max-width:62ch;margin-top:10px;}
.account-chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.account-hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-self:center;}

.account-layout{
  display:grid;
  grid-template-columns:minmax(280px, 340px) minmax(0, 1fr);
  gap:var(--s5);
  align-items:start;
}
.account-sidebar,.account-main-col{display:flex;flex-direction:column;gap:var(--s5);}
.account-main-col .panel{padding:var(--s6);}
.account-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s4);
  margin-bottom:var(--s5);
}
.account-panel-head h2{font-size:22px;}

.account-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);
  margin-bottom:var(--s5);
}
.account-stat{
  padding:var(--s4);
  border-radius:var(--radius-md);
  background:var(--bg-tint);
  border:1px solid var(--border);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.account-stat span{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--text-tertiary);
}
.account-stat strong{
  font-size:24px;
  line-height:1;
  color:var(--text-primary);
  font-variant-numeric:tabular-nums;
}
.account-stat.is-accent{
  background:linear-gradient(180deg, rgba(0,113,227,0.12) 0%, rgba(0,113,227,0.08) 100%);
  border-color:rgba(0,113,227,0.16);
}
.account-stat.is-accent strong{color:var(--accent-ink);}

.account-detail-list,
.account-status-list{
  display:flex;
  flex-direction:column;
  gap:0;
}
.account-detail-row,
.account-status-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s4);
  padding:14px 0;
  border-top:1px solid var(--border);
}
.account-detail-row:first-child,
.account-status-row:first-child{border-top:1px solid var(--border);}
.account-detail-row span{
  font-size:13px;
  color:var(--text-secondary);
}
.account-detail-row strong{
  font-size:14px;
  color:var(--text-primary);
  text-align:right;
  word-break:break-word;
}
.account-status-row strong{
  display:block;
  font-size:14px;
  color:var(--text-primary);
  margin-bottom:3px;
}
.account-status-row p{
  font-size:13px;
  color:var(--text-secondary);
  max-width:34ch;
}
.account-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:var(--radius-pill);
  background:var(--bg-tint);
  color:var(--text-secondary);
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
}
.account-status-pill.is-good{
  background:var(--success-light);
  color:var(--success-dark);
}

.account-form-stack{display:flex;flex-direction:column;gap:var(--s5);}
.account-form-grid{
  grid-template-columns:repeat(2,minmax(220px,1fr));
}
.account-password-grid{
  grid-template-columns:repeat(3,minmax(200px,1fr));
}

.account-support-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:var(--s4);
}
.account-support-link{
  display:inline-flex;
  align-items:center;
  width:100%;
  min-height:46px;
  padding:0 14px;
  border-radius:var(--radius-md);
  background:var(--bg-tint);
  border:1px solid var(--border);
  color:var(--text-primary);
  font-size:14px;
  font-weight:500;
}
.account-support-link:hover{
  background:var(--accent-light);
  border-color:rgba(0,113,227,0.16);
  color:var(--accent-ink);
  text-decoration:none;
}
.account-support-hours{
  font-size:13px;
  color:var(--text-secondary);
  margin-top:4px;
}

.borrower-offers-panel{
  display:grid;
  gap:var(--s5);
}
.borrower-offers-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s4);
}
.borrower-offers-head h3{
  margin:0;
}
.borrower-offers-head .subtext{
  max-width:62ch;
  margin-top:10px;
}
.borrower-offers-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--s4);
}
.borrower-offer-card{
  display:grid;
  gap:var(--s4);
  padding:var(--s5);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  box-shadow:var(--shadow-sm);
}
.borrower-offer-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s3);
}
.borrower-offer-copy{
  display:grid;
  gap:var(--s1);
}
.borrower-offer-label{
  margin:0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.borrower-offer-payment{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-size:34px;
  line-height:1;
  font-weight:700;
  color:var(--text-primary);
  letter-spacing:-0.03em;
}
.borrower-offer-payment span{
  margin-left:6px;
  font-family:var(--font);
  font-size:15px;
  font-weight:600;
  color:var(--text-secondary);
  letter-spacing:0;
}
.borrower-offer-caption{
  margin:0;
  font-size:13px;
  color:var(--text-secondary);
}
.borrower-offer-badge{
  flex-shrink:0;
}
.borrower-offer-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);
}
.borrower-offer-stat{
  display:grid;
  gap:4px;
  padding:var(--s3);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:rgba(255,255,255,0.72);
}
.borrower-offer-stat-wide{
  grid-column:1 / -1;
}
.borrower-offer-stat span{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.borrower-offer-stat strong{
  font-size:15px;
  line-height:1.25;
  color:var(--text-primary);
  font-variant-numeric:tabular-nums;
}
.borrower-offer-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s3);
  padding-top:var(--s2);
  border-top:1px solid var(--border);
}
.borrower-offer-actions .btn{
  width:auto;
  min-width:140px;
}
.borrower-offer-note{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:var(--text-secondary);
}
.borrower-offer-decline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s4);
  padding:var(--s4);
  border:1px dashed var(--border-strong);
  border-radius:var(--radius-lg);
  background:var(--bg-tint);
}
.borrower-offer-decline h4{
  margin:0 0 4px;
  font-size:16px;
}
.borrower-offer-decline .subtext{
  margin:0;
  max-width:58ch;
}

body.offer-review-screen .page-wrap{
  max-width:980px;
}
.offer-review-header{
  align-items:center;
}
.offer-review-header-actions{
  margin-top:0;
  align-items:center;
}
.offer-review-summary{
  display:grid;
  gap:var(--s5);
}
.offer-review-summary-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:var(--s4);
  align-items:stretch;
}
.offer-review-highlight{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:var(--s4);
  padding:var(--s5);
  border-radius:var(--radius-xl);
  background:linear-gradient(145deg,var(--accent-fill) 0%,color-mix(in srgb,var(--accent-fill) 70%, white) 100%);
  box-shadow:var(--shadow-md);
  color:var(--accent-contrast);
}
.offer-review-highlight-label{
  margin:0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.82);
}
.offer-review-payment{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-size:44px;
  line-height:1;
  font-weight:700;
  letter-spacing:-0.04em;
  color:#fff;
}
.offer-review-payment span{
  margin-left:8px;
  font-family:var(--font);
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  color:rgba(255,255,255,0.86);
}
.offer-review-highlight-copy{
  margin:0;
  max-width:32ch;
  font-size:14px;
  line-height:1.6;
  color:rgba(255,255,255,0.86);
}
.offer-review-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);
}
.offer-review-stat{
  display:grid;
  gap:6px;
  padding:var(--s4);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  box-shadow:var(--shadow-sm);
}
.offer-review-stat span{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--text-tertiary);
}
.offer-review-stat strong{
  font-size:20px;
  line-height:1.2;
  color:var(--text-primary);
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
}
.offer-review-summary-note{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s4);
  padding-top:var(--s4);
  border-top:1px solid var(--border);
}
.offer-review-summary-note p{
  margin:0;
  font-size:13px;
  line-height:1.6;
  color:var(--text-secondary);
}
.offer-review-summary-note strong{
  color:var(--text-primary);
}
.offer-review-schedule,
.offer-review-approval,
.offer-review-readonly{
  display:grid;
  gap:var(--s5);
}
.offer-review-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s4);
}
.offer-review-panel-head .subtext{
  max-width:58ch;
  margin-top:10px;
}
.offer-review-panel-meta{
  display:flex;
  align-items:center;
  gap:var(--s2);
  flex-wrap:wrap;
}
.offer-review-meta-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:var(--radius-pill);
  background:var(--bg-tint);
  border:1px solid var(--border);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--text-secondary);
}
.offer-review-schedule-note{
  background:linear-gradient(180deg,var(--bg-tint) 0%,rgba(255,255,255,0.72) 100%);
}
.offer-review-table-wrap{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--bg-surface);
  overflow:hidden;
}
.offer-review-table-wrap .data-table{
  margin:0;
}
.offer-review-table-wrap .data-table thead th{
  background:var(--bg-tint);
}
.offer-review-table-wrap .data-table td{
  font-variant-numeric:tabular-nums;
}
.offer-review-table-wrap .data-table td:first-child{
  font-weight:600;
}
.offer-review-approval-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:var(--s5);
  align-items:start;
}
.offer-review-checklist{
  display:grid;
  gap:var(--s3);
  margin-top:var(--s5);
}
.offer-review-checklist-item{
  display:flex;
  align-items:flex-start;
  gap:var(--s3);
  padding:12px 0;
  border-top:1px solid var(--border);
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.6;
}
.offer-review-checklist-item:first-child{
  border-top:none;
  padding-top:0;
}
.offer-review-checklist-item strong{
  color:var(--text-primary);
}
.offer-review-checklist-dot{
  width:10px;
  height:10px;
  margin-top:6px;
  border-radius:50%;
  background:var(--accent-fill);
  flex-shrink:0;
  box-shadow:0 0 0 6px var(--accent-light);
}
.offer-review-approval-box{
  display:grid;
  gap:var(--s4);
  padding:var(--s5);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  box-shadow:var(--shadow-sm);
}
.offer-review-approval-title{
  margin:0;
  font-size:14px;
  font-weight:700;
  color:var(--text-primary);
}
.offer-review-check{
  align-items:flex-start !important;
}
.offer-review-approval-box .btn{
  width:100%;
}

.autopay-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--s4);
}
.autopay-loan-card{
  display:flex;
  flex-direction:column;
  gap:var(--s4);
  padding:var(--s5);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,#fff 0%,var(--bg-tint) 100%);
}
.autopay-loan-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--s3);
}
.autopay-loan-head strong{
  display:block;
  font-size:18px;
  color:var(--text-primary);
}
.autopay-detail-list{
  border-top:1px solid var(--border);
  padding-top:var(--s1);
}
.autopay-actions{
  padding-top:var(--s2);
}
.autopay-form{
  display:flex;
  flex-direction:column;
  gap:var(--s4);
  padding-top:var(--s2);
  border-top:1px solid var(--border);
}
.autopay-form-grid{
  grid-template-columns:repeat(2,minmax(160px,1fr));
}
.autopay-terms{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 14px;
  border-radius:var(--radius-md);
  background:var(--bg-tint);
  border:1px solid var(--border);
  font-size:13px;
  color:var(--text-secondary);
  line-height:1.5;
}
.autopay-terms input{
  margin-top:2px;
  flex-shrink:0;
}
.autopay-empty{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  padding-top:var(--s2);
  border-top:1px solid var(--border);
}

/* Typography */
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--s2);}
.subtext{font-size:14px;color:var(--text-secondary);margin-top:6px;}
.empty-state{text-align:center;padding:var(--s12) var(--s6);display:flex;flex-direction:column;align-items:center;gap:var(--s4);}
.empty-state-icon{width:64px;height:64px;background:var(--bg-tint);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);margin:0 auto;}
.empty-state h3{font-size:18px;}
.empty-state p{max-width:340px;font-size:14px;}

/* iOS Settings */
.settings-section{margin-bottom:var(--s6);}
.settings-section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:var(--s2);padding-left:4px;}
.settings-group{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;}
.settings-row{display:flex;align-items:center;gap:var(--s4);padding:14px var(--s5);border-bottom:1px solid var(--border);min-height:50px;cursor:pointer;}
.settings-row:last-child{border-bottom:none;}
.settings-row:hover{background:var(--bg-tint);}
.settings-row-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;}
.settings-row-label{flex:1;font-size:16px;font-weight:500;color:var(--text-primary);}
.settings-row-value{font-size:15px;color:var(--text-secondary);}
.settings-row-chevron{color:var(--text-tertiary);font-size:16px;margin-left:auto;}
.settings-sidebar{display:none;}
.settings-pane{display:none;}
.settings-pane.active{display:block;}
.settings-nav-btn{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s3);border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;background:none;border:none;text-align:left;width:100%;}
.settings-nav-btn:hover{background:var(--bg-tint);color:var(--text-primary);}
.settings-nav-btn.active{background:var(--accent-light);color:var(--accent-ink);}

/* Servicing / admin */
.servicing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s4);margin-top:12px;}
.servicing-card{padding:20px;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border-top:3px solid var(--accent-ink);}
.servicing-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.servicing-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.servicing-stats div{display:flex;flex-direction:column;gap:2px;}
.servicing-stats span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700;}
.servicing-stats strong{font-size:16px;font-weight:700;font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.next-steps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s4);margin-top:12px;}
.next-step-card{padding:16px;background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
.next-step-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.next-step-action{font-size:13px;color:var(--text-secondary);margin-bottom:12px;}
.review-meta{margin:var(--s3) 0;}
.review-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4);}
.bar-chart{display:flex;gap:12px;align-items:flex-end;height:100px;margin-top:20px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;}
.bar-track{width:100%;display:flex;align-items:flex-end;height:72px;}
.bar-fill{width:100%;background:linear-gradient(180deg,var(--accent-fill) 0%,#5AC8FA 100%);border-radius:4px 4px 0 0;}
.bar-value{font-size:12px;font-weight:600;color:var(--text-primary);}
.bar-label{font-size:11px;color:var(--text-tertiary);text-align:center;white-space:nowrap;}
.payment-method-card{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;}
.payment-method-card:hover,.payment-method-card.selected{border-color:var(--accent-ink);background:var(--accent-light);}
.pm-info strong{font-size:14px;font-weight:600;color:var(--text-primary);}
.pm-info span{font-size:12px;color:var(--text-tertiary);}
.payment-method-list .mini-row{gap:12px;}
.timeline{display:flex;flex-direction:column;}
.timeline-item{display:grid;grid-template-columns:72px 1px 1fr;gap:0 var(--s4);padding-bottom:var(--s5);}
.timeline-item:last-child{padding-bottom:0;}
.timeline-date{font-size:11px;font-family:var(--font-mono);color:var(--text-tertiary);text-align:right;padding-top:3px;}
.timeline-line{background:var(--border);width:1px;position:relative;}
.timeline-line::before{content:"";width:8px;height:8px;background:var(--accent-fill);border-radius:50%;position:absolute;top:4px;left:50%;transform:translateX(-50%);}
.timeline-body{padding-top:2px;}
.timeline-body strong{font-size:14px;font-weight:600;}
.timeline-body p{font-size:13px;margin-top:2px;}
.icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;}
.icon-sm{width:16px;height:16px;}
.pagination{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin-top:var(--s4);}

@media print{.navbar,.admin-sidebar,.btn,.no-print{display:none !important;}.panel{box-shadow:none;background:#fff;}body{background:#fff;}}

/* === RESPONSIVE === */
@media(max-width:1024px){
  html{scroll-padding-bottom:max(var(--bottom-nav-offset, var(--bottom-bar-h)), calc(var(--bottom-bar-h) + env(safe-area-inset-bottom, 0px)));}
  body.app-shell{padding-bottom:max(var(--bottom-nav-offset, var(--bottom-bar-h)), calc(var(--bottom-bar-h) + env(safe-area-inset-bottom, 0px)));}
  .bottom-tab-bar{display:flex;}
  .admin-sidebar{display:none;}.app-shell.has-sidebar{flex-direction:column;}.app-shell.has-sidebar .admin-main{width:100%;}.admin-main .page-wrap{padding:var(--s5) var(--s4);}
  .admin-topbar{padding-inline:var(--s4);}
  .page-wrap{padding-inline:var(--s4);}
  .table-wrap,.table-scroll{margin:0 -var(--s4);padding:0 var(--s4);overflow-x:hidden;}
  .table-wrap .data-table,.table-scroll .data-table{min-width:100%;}
  .account-layout{grid-template-columns:1fr;}
  .account-sidebar{order:2;}
}
@media(max-width:767px){
  .navbar-links{display:none;}  /* bottom tab bar handles nav on mobile */
  .navbar{padding:0 16px;}
  .theme-toggle-btn--compact{margin-left:auto;}
  .page-wrap{padding:var(--s5) var(--s4);gap:var(--s4);}
  .panel{padding:var(--s5) var(--s4);}
  .panel-header{flex-direction:column;}
  .admin-topbar{height:auto;min-height:var(--topbar-h);padding:var(--s4);align-items:flex-start;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;}
  .admin-breadcrumb{flex-wrap:wrap;row-gap:4px;}
  .page-heading-row,
  .dashboard-trend-head,
  .receipt-header,
  .outstanding-head,
  .loan-card-top,
  .portal-section-head{flex-direction:column;align-items:flex-start;}
  .inline-actions,
  .loan-card-actions,
  .receipt-actions{width:100%;display:flex;flex-direction:column;align-items:stretch;}
  .inline-actions .btn,
  .loan-card-actions .btn,
  .receipt-actions .btn{width:100%;}
  .inline-actions > *,
  .loan-card-actions > *,
  .receipt-actions > *{width:100%;max-width:100%;}
  .admin-topbar-actions{width:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-self:start;}
  .admin-topbar-actions .btn,
  .admin-topbar-actions form{width:auto;max-width:100%;}
  .dashboard-kpis,.kpi-grid{grid-template-columns:1fr 1fr;}
  .dashboard-split{grid-template-columns:1fr;}
  .summary-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
  .form-inline,
  .inline-form,
  .loan-filter-grid,
  .audit-controls,
  .audit-controls form{width:100%;}
  .audit-controls > .field-col:first-child,
  .audit-controls form .field-col,
  .loan-filter-grid .field-col{flex:1 1 160px;min-width:0;max-width:none;}
  .data-table th,.data-table td{padding:10px 12px;}
  .loan-card-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);}
  .dashboard-trend-chart{height:140px;gap:8px;}
  .dashboard-trend-label-row{gap:8px;}
  #users-table td:last-child{white-space:normal;}
  .user-edit-form{min-width:0;width:min(100%, 360px);right:auto;left:0;}
  .section-row,
  .admin-loans-head{align-items:flex-start;}
  .users-col-actions{white-space:normal;}
  .users-edit-details,
  .inline-form-compact{display:block;}
  .users-user-name,
  .users-user-email{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;}
  .hero-amount{font-size:32px;}
  h1{font-size:24px;}
  .kpi-value{font-size:20px;}
  .auth-card{padding:var(--s8) var(--s5);}
  .account-hero{
    grid-template-columns:1fr;
    padding:var(--s6) var(--s5);
  }
  .account-hero-main{flex-direction:column;gap:var(--s4);}
  .account-hero-copy h1{font-size:28px;}
  .account-hero-actions{justify-content:flex-start;}
  .account-stat-grid{grid-template-columns:1fr;}
  .account-main-col .panel{padding:var(--s5) var(--s4);}
  .account-panel-head{flex-direction:column;}
  .borrower-offers-grid{grid-template-columns:1fr;}
  .borrower-offer-top,
  .borrower-offer-actions,
  .borrower-offer-decline{flex-direction:column;align-items:flex-start;}
  .borrower-offer-actions .btn,
  .borrower-offer-decline .btn{width:100%;}
  .offer-review-header-actions{width:100%;}
  .offer-review-summary-grid,
  .offer-review-approval-shell{grid-template-columns:1fr;}
  .offer-review-summary-note,
  .offer-review-panel-head{flex-direction:column;}
  .offer-review-panel-meta{width:100%;}
  .offer-review-approval-box{padding:var(--s4);}
  .autopay-form-grid{grid-template-columns:1fr;}
  .account-status-row,
  .account-detail-row{flex-direction:column;}
  .account-detail-row strong{text-align:left;}
  .receipt-status{align-items:flex-start;}
  .receipt-code{font-size:24px;}
  .center-panel{padding:var(--s10) var(--s5);}
  .empty-copy{font-size:15px;}
  .code-block-responsive{max-height:50vh;}
  .panel-tabs .table-scroll{margin:0;padding:0;overflow-x:hidden;}
  .panel-tabs .tab-list{border-bottom:none;margin-bottom:var(--s5);}
  .panel-tabs .tab-list.tab-list--borrower{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;}
  .panel-tabs .tab-list.tab-list--admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;}
  .tab-btn{justify-content:center;text-align:center;border:1px solid var(--border);border-radius:var(--radius-pill);margin-bottom:0;padding:10px 14px;background:var(--bg-surface);}
  .tab-btn.is-active{background:var(--accent-light);border-color:rgba(0,113,227,0.18);}
}
@media(max-width:767px){
  .table-stack thead{display:none;}
  .table-stack,
  .table-stack tbody,
  .table-stack tr,
  .table-stack td{display:block;width:100%;}
  .table-stack tbody{display:grid;gap:var(--s3);}
  .table-stack tr{
    background:var(--bg-surface);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    padding:var(--s3) var(--s4);
    box-shadow:var(--shadow-sm);
  }
  .table-stack tbody tr:nth-child(even) td,
  .table-stack tbody tr:hover td{background:transparent !important;}
  .table-stack td{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:var(--s3);
    padding:8px 0;
    border-bottom:1px solid var(--border);
    text-align:right;
  }
  .table-stack td:last-child{border-bottom:none;padding-bottom:0;}
  .table-stack td::before{
    content:attr(data-label);
    flex:0 0 42%;
    max-width:42%;
    text-align:left;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--text-tertiary);
  }
  .table-stack td.actions-cell,
  .table-stack td[data-label="Actions"],
  .table-stack td[data-label="Action"]{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:var(--s2);
  }
  .table-stack td.actions-cell::before,
  .table-stack td[data-label="Actions"]::before,
  .table-stack td[data-label="Action"]::before{
    max-width:none;
    flex:0 0 100%;
  }
  .table-stack td.actions-cell > .btn,
  .table-stack td[data-label="Actions"] > .btn,
  .table-stack td[data-label="Action"] > .btn,
  .table-stack td.actions-cell > form,
  .table-stack td[data-label="Actions"] > form,
  .table-stack td[data-label="Action"] > form,
  .table-stack td.actions-cell > details,
  .table-stack td[data-label="Actions"] > details,
  .table-stack td[data-label="Action"] > details{
    flex:0 0 auto;
    width:auto;
    max-width:100%;
  }
  .table-stack td.actions-cell .btn,
  .table-stack td[data-label="Actions"] .btn,
  .table-stack td[data-label="Action"] .btn{
    width:auto;
    min-width:0;
    height:36px;
    padding:0 14px;
  }
  .table-stack td.actions-cell form,
  .table-stack td[data-label="Actions"] form,
  .table-stack td[data-label="Action"] form,
  .table-stack td.actions-cell .inline-form-compact,
  .table-stack td[data-label="Actions"] .inline-form-compact,
  .table-stack td[data-label="Action"] .inline-form-compact,
  .table-stack td.actions-cell .user-edit-details,
  .table-stack td[data-label="Actions"] .user-edit-details,
  .table-stack td[data-label="Action"] .user-edit-details{
    width:auto;
    display:inline-flex;
    align-items:center;
    max-width:100%;
  }
  .table-stack td.actions-cell form .btn,
  .table-stack td[data-label="Actions"] form .btn,
  .table-stack td[data-label="Action"] form .btn{
    width:auto;
  }
  .table-stack td .users-user-cell{justify-content:flex-end;}
  .table-stack td .users-user-meta{text-align:right;}
}
@media(max-width:480px){
  .dashboard-kpis{grid-template-columns:1fr;}
  .summary-grid{grid-template-columns:1fr;}
  .hero-loan-card{grid-template-columns:1fr;}
  .progress-ring{display:none;}
  .loan-card-meta,
  .servicing-snapshot-grid,
  .servicing-admin-grid,
  .receipt-summary-grid,
  .borrower-info-grid,
  .til-box-grid{grid-template-columns:1fr;}
  .offer-review-stat-grid{grid-template-columns:1fr;}
  .borrower-offer-stats{grid-template-columns:1fr;}
  .payments-action-grid{grid-template-columns:1fr;}
  .restricted-servicing-grid,
  .protected-action-review-grid{grid-template-columns:1fr;}
  .fee-waiver-dialog-stats{grid-template-columns:1fr;}
  .bottom-tab-bar{--bottom-bar-h:74px;}
  .bottom-tab-bar-inner{padding-inline:8px;gap:6px;}
  .tab-item{padding-inline:4px;min-height:56px;}
  .tab-item span{font-size:9px;max-width:100%;}
  .btn,.btn-sm,.btn-lg{width:100%;}
  .btn-sm{height:40px;}
  .dashboard-trend-label{white-space:normal;}
  .toast-stack{left:var(--s4);right:var(--s4);max-width:none;bottom:calc(var(--bottom-bar-h) + 16px);}
  .table-stack td,
  .table-stack td .users-user-cell,
  .table-stack td .users-user-meta{
    text-align:left;
    justify-content:flex-start;
  }
  .table-stack td{flex-direction:column;align-items:flex-start;}
  .table-stack td::before{max-width:none;flex:0 0 auto;}
  .admin-topbar{grid-template-columns:1fr;}
  .admin-topbar-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
  .admin-topbar-actions .btn,
  .admin-topbar-actions form{width:100%;}
  .theme-toggle-label{display:none;}
  .panel-tabs .tab-list.tab-list--borrower{grid-template-columns:1fr;gap:10px;}
  .panel-tabs .tab-list.tab-list--admin{grid-template-columns:1fr;gap:10px;}
  .borrower-info-list div{flex-direction:column;align-items:flex-start;}
  .borrower-info-list strong{text-align:left;}
}

/* ── Homepage ─────────────────────────────────────────────────────── */
body.home-screen {
  display:flex; flex-direction:column; min-height:100vh;
}
body.home-screen .page-wrap {
  flex:1; display:flex; flex-direction:column;
  padding:0 !important; gap:0 !important; max-width:100% !important;
}
.home-page {
  flex:1; min-height:calc(100vh - 52px);
  display:flex; align-items:center; justify-content:center;
  padding:40px 20px; background:var(--bg-base);
}
.home-card {
  background:#fff; border-radius:20px;
  box-shadow:0 4px 40px rgba(0,0,0,0.08),0 1px 4px rgba(0,0,0,0.04);
  padding:48px 40px; width:100%; max-width:var(--canvas-narrow-w); text-align:center;
  animation:fadeUp 280ms ease-out both;
}
.home-logo {
  width:56px; height:56px; background:var(--accent-fill); border-radius:14px;
  display:flex; align-items:center; justify-content:center; margin:0 auto 24px;
}
.home-title {
  font-size:28px; font-weight:700; color:var(--text-primary);
  letter-spacing:-0.02em; line-height:1.2; margin:0 0 8px;
}
.home-subtitle { font-size:15px; color:var(--text-secondary); margin:0 0 32px; line-height:1.5; }
.home-actions { display:flex; flex-direction:column; gap:10px; margin-bottom:28px; }
.home-btn-primary {
  display:flex; align-items:center; justify-content:center;
  height:52px; background:var(--accent-fill); color:var(--accent-contrast);
  font-size:16px; font-weight:600; border-radius:12px;
  text-decoration:none; font-family:var(--font); transition:all 150ms ease;
}
.home-btn-primary:hover {
  background:var(--accent-fill-hover); color:var(--accent-contrast); transform:translateY(-1px);
  box-shadow:0 4px 16px rgba(0,113,227,0.3); text-decoration:none;
}
.home-btn-primary:active { transform:scale(0.97); box-shadow:none; }
.home-btn-secondary {
  display:flex; align-items:center; justify-content:center;
  height:52px; background:var(--bg-tint); color:var(--text-primary);
  font-size:16px; font-weight:500; border-radius:12px;
  text-decoration:none; font-family:var(--font); transition:background 150ms;
}
.home-btn-secondary:hover { background:#EBEBED; color:var(--text-primary); text-decoration:none; }
.home-intake-paused {
  background:var(--warning-light); color:var(--warning-dark);
  border-radius:12px; padding:14px 20px; font-size:15px; font-weight:500;
}
.home-divider { height:1px; background:rgba(0,0,0,0.06); margin:0 -40px 24px; }
.home-support { font-size:13px; color:var(--text-secondary); line-height:1.8; }
.home-support a { color:var(--accent-ink); text-decoration:none; }
.home-support a:hover { text-decoration:underline; }
@media(max-width:520px) {
  .home-card { padding:36px 24px 32px; border-radius:16px; }
  .home-title { font-size:24px; }
  .home-divider { margin:0 -24px 20px; }
}

/* ── Payment Wizard ───────────────────────────────────────────────── */
body.pay-screen .page-wrap{padding:0;gap:0;max-width:100%;width:100%;}
body.pay-screen .flash-stack{max-width:var(--canvas-narrow-w);margin:16px auto 0;padding:0 20px;}
.pay-page {
  min-height:calc(100vh - 52px); background:var(--bg-base);
  display:flex; flex-direction:column; align-items:stretch; width:100%; max-width:none; padding:0;
}
.pay-progress { width:100%; height:3px; background:rgba(0,0,0,0.08); flex-shrink:0; }
.pay-progress-bar { width:33.33%; height:3px; background:var(--accent-fill); transition:width 400ms cubic-bezier(0.25,0.46,0.45,0.94); border-radius:0 2px 2px 0; }
.pay-page[data-step="1"] .pay-progress-bar{width:33.33%;}
.pay-page[data-step="2"] .pay-progress-bar{width:66.66%;}
.pay-page[data-step="3"] .pay-progress-bar,
.pay-page[data-step="complete"] .pay-progress-bar{width:100%;}
.pay-progress-label { font-size:11px; font-weight:700; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:.07em; width:min(100%,var(--canvas-narrow-w)); margin:0 auto; padding:14px 24px 0; }
.pay-step { display:none !important; width:100%; max-width:var(--canvas-narrow-w); margin:0 auto; padding:28px 20px 60px; }
.pay-step.active { display:block !important; animation:fadeUp 250ms cubic-bezier(.25,.46,.45,.94) both; }
.pay-step-title { font-size:26px; font-weight:700; color:var(--text-primary); letter-spacing:-0.02em; margin-bottom:4px; }
.pay-step-subtitle { font-size:15px; color:var(--text-secondary); margin-bottom:24px; }
.pay-back-btn { background:none; border:none; font-size:15px; font-weight:500; color:var(--accent-ink); cursor:pointer; padding:0; margin-bottom:20px; font-family:var(--font); display:block; }
.pay-back-btn:hover { color:var(--accent-fill-hover); }
.pay-options { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.pay-option {
  display:flex; align-items:center; background:#fff;
  border:2px solid var(--border); border-radius:14px;
  padding:16px 18px; cursor:pointer;
  transition:border-color 150ms,background 150ms;
}
.pay-option input[type="radio"] { display:none; }
.pay-option.selected { border-color:var(--accent-ink); background:var(--accent-light); }
.pay-option:focus-visible{outline:3px solid color-mix(in srgb, var(--accent-ink) 22%, transparent);outline-offset:2px;}
.pay-option-content { flex:1; }
.pay-option-label { font-size:15px; font-weight:600; color:var(--text-primary); }
.pay-option-amount { font-size:22px; font-weight:700; color:var(--text-primary); font-variant-numeric:tabular-nums; letter-spacing:-0.02em; margin-top:2px; }
.pay-option-note { font-size:13px; color:var(--text-secondary); margin-top:2px; }
.pay-option-note--green { color:var(--success-dark); }
.pay-option-check { width:24px; height:24px; border-radius:50%; background:var(--accent-fill); color:var(--accent-contrast); font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 150ms; flex-shrink:0; margin-left:12px; }
.pay-option.selected .pay-option-check { opacity:1; }
.pay-custom-wrap { display:none; background:#fff; border-radius:14px; padding:16px 18px; margin-bottom:12px; border:2px solid var(--accent-ink); }
.pay-custom-wrap.open { display:block; }
.pay-amount-row { display:flex; align-items:center; gap:4px; }
.pay-amount-dollar { font-size:28px; font-weight:700; color:var(--text-tertiary); line-height:1; }
.pay-amount-input { font-size:32px; font-weight:700; color:var(--text-primary); border:none; outline:none; background:transparent; width:100%; font-variant-numeric:tabular-nums; font-family:var(--font); }
.pay-amount-input::placeholder { color:var(--text-tertiary); }
.pay-amount-breakdown { margin-top:12px; padding-top:12px; border-top:1px solid rgba(0,0,0,0.06); font-size:13px; color:var(--text-secondary); display:flex; flex-direction:column; gap:4px; }
.pay-btn { display:flex; align-items:center; justify-content:center; width:100%; height:52px; background:var(--accent-fill); color:var(--accent-contrast); font-size:16px; font-weight:600; font-family:var(--font); border:none; border-radius:14px; cursor:pointer; margin-top:8px; transition:background 150ms,transform 150ms; position:relative; text-decoration:none; }
.pay-btn:hover { background:var(--accent-fill-hover); }
.pay-btn:active { transform:scale(0.97); }
.pay-btn:disabled { background:var(--text-tertiary); cursor:not-allowed; transform:none; }
.pay-btn.is-loading { pointer-events:none; color:transparent; }
.pay-btn.is-loading::after { content:""; position:absolute; width:20px; height:20px; border:2px solid rgba(255,255,255,0.4); border-top-color:#fff; border-radius:50%; animation:spin .6s linear infinite; top:50%; left:50%; transform:translate(-50%,-50%); }
.pay-btn--outline { background:transparent; color:var(--accent-fill); border:2px solid var(--accent-fill); }
.pay-btn--outline:hover { background:var(--accent-fill); color:var(--accent-contrast); }
.pay-btn--outline:disabled { background:transparent; color:var(--text-tertiary); border-color:var(--text-tertiary); }
.pay-method-option:focus-visible,.pay-add-btn:focus-visible{outline:3px solid color-mix(in srgb, var(--accent-ink) 22%, transparent);outline-offset:2px;}
.pay-methods { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.pay-method-option { display:flex; align-items:center; gap:14px; background:#fff; border:2px solid var(--border); border-radius:14px; padding:14px 16px; cursor:pointer; transition:border-color 150ms,background 150ms; }
.pay-method-option.selected { border-color:var(--accent-ink); background:var(--accent-light); }
.pay-method-icon { font-size:24px; flex-shrink:0; }
.pay-method-name { font-size:15px; font-weight:600; color:var(--text-primary); }
.pay-method-detail { font-size:13px; color:var(--text-secondary); margin-top:1px; }
.pay-method-check { width:24px; height:24px; border-radius:50%; background:var(--accent-fill); color:var(--accent-contrast); font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 150ms; flex-shrink:0; margin-left:auto; }
.pay-method-option.selected .pay-method-check { opacity:1; }
.pay-method-remove-form { display:contents; }
.pay-method-remove-btn { margin-left:6px; flex-shrink:0; background:none; border:none; cursor:pointer; color:var(--text-tertiary); font-size:15px; line-height:1; padding:4px 6px; border-radius:6px; transition:color 120ms,background 120ms; }
.pay-method-remove-btn:hover { color:var(--danger,#c0392b); background:rgba(192,57,43,.08); }
.pay-add-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--text-tertiary); margin-bottom:10px; margin-top:6px; }
.pay-add-groups { display:flex; flex-direction:column; gap:10px; }
.pay-add-group { display:flex; flex-direction:column; gap:10px; }
.pay-add-btn { display:flex; align-items:center; justify-content:space-between; width:100%; background:#fff; border:2px dashed var(--border-strong); border-radius:14px; padding:14px 16px; font-size:15px; font-weight:500; color:var(--text-primary); cursor:pointer; font-family:var(--font); transition:background 150ms,border-color 150ms; text-align:left; }
.pay-add-btn:hover { background:var(--bg-tint); border-color:rgba(0,0,0,0.2); }
.pay-badge { font-size:11px; font-weight:600; background:var(--success-light); color:var(--success-dark); padding:2px 8px; border-radius:var(--radius-pill); }
.pay-badge--warn { background:var(--warning-light); color:var(--warning-dark); }
.pay-method-form { background:#fff; border-radius:14px; padding:20px; display:none; flex-direction:column; gap:14px; border:1px solid rgba(0,0,0,0.06); }
.pay-method-form.open { display:flex; }
.pay-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pay-form-title { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-secondary); }
.pay-fee-notice { background:var(--warning-light); border-radius:10px; padding:10px 14px; font-size:13px; color:var(--warning-dark); font-weight:500; }
.pay-save-row { display:flex; align-items:center; justify-content:space-between; font-size:15px; font-weight:500; color:var(--text-primary); }
.field-hint{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-top:-4px;}
.pay-autopay-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:4px;
  padding:16px;
  border-radius:14px;
  border:1px solid rgba(0,113,227,0.16);
  background:linear-gradient(180deg,rgba(0,113,227,0.08) 0%,rgba(0,113,227,0.04) 100%);
}
.pay-autopay-fields{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-top:4px;
}
.pay-autopay-fields[hidden]{display:none !important;}
.pay-autopay-terms{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 14px;
  border-radius:12px;
  background:rgba(255,255,255,0.88);
  border:1px solid rgba(0,0,0,0.06);
  font-size:13px;
  line-height:1.5;
  color:var(--text-secondary);
}
.pay-autopay-terms input{
  margin-top:2px;
  flex-shrink:0;
}
.stripe-mount { border:1.5px solid var(--border-strong); border-radius:10px; padding:14px; background:var(--bg-tint); }
.stripe-errors { font-size:13px; color:var(--danger); min-height:18px; margin-top:4px; }
.pay-summary-card { background:#fff; border-radius:16px; padding:6px 0; margin-bottom:20px; overflow:hidden; box-shadow:var(--shadow-sm); }
.pay-summary-row { display:flex; justify-content:space-between; align-items:center; padding:14px 20px; font-size:15px; border-bottom:1px solid rgba(0,0,0,0.05); }
.pay-summary-row:last-child { border-bottom:none; }
.pay-summary-row span:first-child { color:var(--text-secondary); }
.pay-summary-row span:last-child { font-weight:600; color:var(--text-primary); }
.pay-fee-label{color:var(--warning) !important;}
.pay-fee-value{color:var(--warning-dark) !important;}
.pay-summary-big { font-size:30px !important; font-weight:700 !important; font-variant-numeric:tabular-nums; letter-spacing:-0.02em; }
.pay-auth-text {
  margin-bottom:20px;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(0,113,227,0.14);
  background:linear-gradient(180deg,rgba(0,113,227,0.08) 0%,rgba(0,113,227,0.04) 100%);
  font-size:14px;
  font-weight:600;
  color:var(--text-primary);
  line-height:1.65;
  text-align:left;
}
.pay-success { display:none; text-align:center; padding:60px 24px; width:100%; max-width:var(--canvas-narrow-w); margin:0 auto; }
.pay-success.active { display:block; animation:fadeUp 300ms ease both; }
.pay-success-link{text-decoration:none;display:inline-flex;width:auto;padding:0 32px;}
.pay-success-check { width:72px; height:72px; background:var(--success-light); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 24px; }
.pay-success-check svg { width:36px; height:36px; }
@keyframes checkDraw { to { stroke-dashoffset:0; } }
.pay-success-check svg path { stroke-dasharray:50; stroke-dashoffset:50; animation:checkDraw 400ms cubic-bezier(.16,1,.3,1) 100ms both; }
.pay-success h2 { font-size:24px; margin-bottom:8px; }
.pay-success p { font-size:15px; color:var(--text-secondary); margin-bottom:32px; }

/* ── SSN Reauth Modal ─────────────────────────────────────────────── */
.reauth-overlay {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,0.45); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.reauth-modal {
  background:#fff; border-radius:20px; padding:32px;
  width:100%; max-width:400px; box-shadow:0 12px 40px rgba(0,0,0,0.2);
  animation:modalIn 200ms cubic-bezier(0.25,0.46,0.45,0.94) both;
}
.reauth-modal h3 { font-size:20px; font-weight:700; color:var(--text-primary); margin-bottom:6px; letter-spacing:-0.02em; }
.reauth-modal p { font-size:14px; color:var(--text-secondary); margin-bottom:20px; }
.reauth-modal .input { margin-bottom:20px; height:52px; font-size:16px; }
.reauth-modal .textarea{min-height:112px;height:auto;resize:vertical;font-size:14px;line-height:1.5;padding-block:12px;}
.reauth-status{
  margin-bottom:14px;
  font-size:13px;
  line-height:1.5;
  color:var(--text-secondary);
}
.reauth-status[data-state="success"]{color:var(--success-dark);}
.reauth-status[data-state="error"]{color:var(--danger);}
.reauth-otp-input{
  text-align:center;
  letter-spacing:6px;
}
.reauth-secondary{
  display:flex;
  justify-content:flex-start;
  margin:-8px 0 18px;
}
.reauth-actions { display:flex; gap:10px; justify-content:flex-end; }

/* SSN toast */
.ssn-toast {
  position:fixed; bottom:80px; left:50%; transform:translateX(-50%) translateY(12px);
  background:rgba(30,30,30,0.92); color:#fff; padding:10px 20px;
  border-radius:var(--radius-pill); font-size:14px; font-weight:500;
  opacity:0; transition:opacity 180ms, transform 180ms; pointer-events:none;
  z-index:9001; white-space:nowrap;
}
.ssn-toast.is-visible { opacity:1; transform:translateX(-50%) translateY(0); }
.ssn-toast.is-error { background:var(--danger); }

/* ── Accessibility Utilities ──────────────────────────────────────── */

/* Screen-reader only text (visually hidden but available to assistive tech) */
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Skip-to-main link — visible only on keyboard focus */
.skip-link {
  position:absolute; top:-100%; left:0; z-index:9999;
  padding:12px 20px; background:var(--accent-fill); color:var(--accent-contrast);
  font-family:var(--font); font-size:14px; font-weight:600;
  text-decoration:none; border-radius:0 0 var(--radius-sm) 0;
  transition:none;
}
.skip-link:focus {
  top:0; outline:3px solid rgba(255,255,255,0.6); outline-offset:-3px;
}

/* Focus-visible for all interactive elements — consistent ring */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.admin-nav-item:focus-visible,
.navbar-link:focus-visible,
.tab-item:focus-visible,
.tab-btn:focus-visible,
summary:focus-visible {
  outline:3px solid var(--accent-ink);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}
/* Inputs already show a box-shadow focus ring; suppress the outline duplicate */
.input:focus-visible,
.input-group input:focus-visible,
.input-group select:focus-visible,
.input-group textarea:focus-visible {
  outline:none;
}

/* ── Step Stepper ─────────────────────────────────────────────────── */
.step-stepper {
  display:flex; align-items:center; gap:0; padding:var(--s2) 0;
  flex-shrink:0;
}
.step-dot {
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700;
  background:var(--bg-tint); color:var(--text-tertiary);
  border:2px solid var(--border-strong);
  transition:background 200ms, color 200ms, border-color 200ms;
  flex-shrink:0;
}
.step-dot.step-done {
  background:var(--success); color:#fff; border-color:var(--success);
}
.step-dot.step-current {
  background:var(--accent-fill); color:var(--accent-contrast); border-color:var(--accent-fill);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-ink) 18%, transparent);
}
.step-connector {
  flex:1; height:2px; background:var(--border-strong);
  min-width:8px; max-width:24px;
  transition:background 200ms;
}
.step-connector.step-done { background:var(--success); }

/* ── Clickable table rows ─────────────────────────────────────────── */
.data-table tbody tr.clickable-row { cursor:pointer; }
.data-table tbody tr.clickable-row:hover td { background:var(--accent-light) !important; }
.data-table tbody tr.clickable-row:focus-visible {
  outline:3px solid var(--accent-ink);
  outline-offset:-2px;
}
.data-table tbody tr.clickable-row:focus-visible td {
  background:var(--accent-light) !important;
}

/* ── Sticky table headers ─────────────────────────────────────────── */
/* Works when scrolling the page; inside overflow-x containers the
   header is fixed within that scrollable region */
.data-table thead th {
  position:sticky; top:56px; z-index:5;
  /* admin: topbar is 56px; user: navbar is 52px — use the larger value */
}
.app-shell:not(.has-sidebar) .data-table thead th { top:52px; }

/* ── User-edit details/summary ────────────────────────────────────── */
.user-edit-details summary { cursor:pointer; }
.user-edit-details summary::-webkit-details-marker { display:none; }
.user-edit-form {
  background:var(--bg-tint); border-radius:var(--radius-md);
  padding:var(--s4); margin-top:var(--s2);
  border:1px solid var(--border);
  min-width:260px;
}

/* ── Loan filter grid: wrap gracefully on small screens ──────────── */
.loan-filter-grid {
  display:flex; gap:var(--s3); align-items:flex-end; flex-wrap:wrap;
}
.loan-filter-grid .field-col { min-width:120px; }

/* ── Responsive: hide less critical loan table columns ──────────── */
@media(max-width:1100px) {
  #loans-table .col-officer,
  #loans-table th:nth-child(5),
  #loans-table td:nth-child(5) { display:none; }
}
@media(max-width:900px) {
  #loans-table th:nth-child(12),
  #loans-table td:nth-child(12),
  #loans-table th:nth-child(11),
  #loans-table td:nth-child(11) { display:none; }
}
@media(max-width:700px) {
  #loans-table th:nth-child(6),
  #loans-table td:nth-child(6),
  #loans-table th:nth-child(8),
  #loans-table td:nth-child(8),
  #loans-table th:nth-child(9),
  #loans-table td:nth-child(9) { display:none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   MISSING CLASS DEFINITIONS (global-banner, inline-grid, is-disabled,
   table header overlap fixes, announcement banner, etc.)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Global announcement banner ──────────────────────────────────────── */
.global-banner {
  background:var(--accent-fill);
  color:var(--accent-contrast);
  text-align:center;
  padding:10px 24px;
  font-size:14px;
  font-weight:500;
  line-height:1.4;
  z-index:200;
  position:relative;
  width:100%;
  flex:0 0 100%;
}

/* ── Inline grid (used in admin forms) ───────────────────────────────── */
.inline-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:var(--s3);
  align-items:end;
}

/* ── Disabled button state ───────────────────────────────────────────── */
.btn.is-disabled,
button.is-disabled,
.btn[disabled] {
  opacity:0.4;
  cursor:not-allowed;
  pointer-events:none;
  user-select:none;
}

/* ── Table header overlap fix ────────────────────────────────────────── */
/* For tables inside panels with overflow:hidden / padding:0,
   the sticky header's top offset can cover the first row.
   Inside overflow containers, reset sticky to top:0 so it
   sticks within the scrollable region, not the page. */
.table-scroll .data-table thead th,
.table-wrap .data-table thead th {
  top:0;
}

/* ── Pagination disabled state ───────────────────────────────────────── */
.review-actions .btn.is-disabled {
  opacity:0.35;
  pointer-events:none;
}

/* ── Audit log search bar ────────────────────────────────────────────── */
.audit-controls {
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:var(--s4);
  margin-bottom:var(--s5);
}
.audit-controls .field-col {
  flex:1;
  min-width:200px;
  max-width:360px;
}

/* ── Application review page ─────────────────────────────────────────── */
.review-panel { padding-top:var(--s4); }
.review-hero{
  padding-top:var(--s5);
  padding-bottom:var(--s5);
}
.review-hero-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--s5);
  flex-wrap:wrap;
}
.review-hero-copy{
  display:flex;
  flex-direction:column;
  gap:var(--s2);
  flex:1 1 320px;
  min-width:0;
}
.review-hero-copy h1{
  margin:0;
}
.review-subhead {
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--text-secondary);
  margin:var(--s5) 0 var(--s3);
  padding-bottom:var(--s2);
  border-bottom:1px solid var(--border);
}
.review-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:var(--s3) var(--s6);
}
.review-stack{
  display:flex;
  flex-direction:column;
  gap:var(--s3);
}
.review-tab-shell{
  display:grid;
  gap:var(--s4);
  padding:var(--s4);
}
.review-tab-head .subtext{
  max-width:76ch;
  margin-top:10px;
}
.review-tab-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s3);
}
.review-tab-list--three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.review-tab-btn{
  min-width:0;
  min-height:124px;
  padding:var(--s4);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--bg-surface) 0%,var(--bg-tint) 100%);
  color:var(--text-primary);
  text-align:left;
  display:grid;
  align-content:start;
  gap:8px;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
}
.review-tab-btn:hover{
  border-color:var(--border-strong);
  transform:translateY(-1px);
}
.review-tab-btn.is-active{
  background:linear-gradient(180deg,var(--accent-light) 0%,rgba(255,255,255,0.92) 100%);
  border-color:rgba(0,113,227,0.22);
  box-shadow:inset 0 0 0 1px rgba(0,113,227,0.08),var(--shadow-sm);
}
.review-tab-btn-danger{
  background:linear-gradient(180deg,var(--danger-light) 0%,var(--bg-surface) 100%);
  border-color:rgba(255,59,48,0.18);
}
.review-tab-btn-danger.is-active{
  background:linear-gradient(180deg,var(--danger-light) 0%,rgba(255,59,48,0.08) 100%);
  border-color:rgba(255,59,48,0.28);
}
.review-tab-btn-label{
  font-size:15px;
  font-weight:700;
  line-height:1.3;
  color:var(--text-primary);
}
.review-tab-btn-copy{
  font-size:13px;
  line-height:1.55;
  color:var(--text-secondary);
}
.review-tab-btn-meta{
  margin-top:auto;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent-ink);
}
.review-tab-btn-danger .review-tab-btn-meta{
  color:var(--danger-dark);
}
.review-card{
  padding:var(--s4);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--bg-surface);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.review-item {
  padding:var(--s3) 0;
}
.review-label {
  display:block;
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--text-tertiary);
  margin-bottom:2px;
}
.review-value {
  font-size:15px;
  font-weight:500;
  color:var(--text-primary);
  word-break:break-word;
}
.review-decision-form{
  display:grid;
  gap:var(--s6);
}
.review-decision-form .form-section{
  margin-bottom:0;
  display:grid;
  gap:var(--s4);
}
.review-decision-form .form-section h3{
  margin-bottom:0;
}
.review-decision-grid{
  max-width:760px;
  grid-template-columns:repeat(2,minmax(220px,1fr));
}
.status-picker{display:flex;flex-wrap:wrap;gap:var(--s2);}
.status-picker.is-locked{pointer-events:none;opacity:0.6;}
.status-picker-option{display:inline-flex;align-items:center;padding:6px 14px;font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;border-radius:var(--radius-pill);cursor:pointer;border:2px solid transparent;transition:opacity 0.12s,box-shadow 0.12s;}
.status-picker-option input[type="radio"]{position:absolute;opacity:0;width:0;height:0;}
.status-picker-option:not(.is-active){opacity:0.45;filter:saturate(0.5);}
.status-picker-option:not(.is-active):hover{opacity:0.75;filter:saturate(0.8);}
.status-picker-option.is-active{opacity:1;filter:none;box-shadow:0 0 0 2px currentColor;}
.status-picker-warning{background:var(--warning-light);color:var(--warning-dark);}
.status-picker-info{background:var(--accent-light);color:var(--accent-ink);}
.status-picker-success{background:var(--success-light);color:var(--success-dark);}
.status-picker-danger{background:var(--danger-light);color:var(--danger-dark);}
.status-picker-neutral{background:var(--bg-tint);color:var(--text-secondary);}
.review-offer-intro{
  margin:0;
  max-width:760px;
}
.review-offer-list{
  display:grid;
  gap:var(--s4);
  max-width:980px;
}
.offer-row{
  padding:var(--s4);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--bg-tint);
  display:grid;
  gap:var(--s4);
}
.offer-row-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s3);
}
.offer-row h4{
  margin:0;
  font-size:16px;
  font-weight:700;
  color:var(--text-primary);
}
.review-offer-grid{
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:var(--s3);
}
.review-submit-row{
  padding-top:var(--s2);
}
.review-submit-row .btn{
  width:100%;
}
.audit-controls form{display:flex;align-items:flex-end;gap:var(--s2);}
.audit-controls > .field-col:first-child{flex:2;max-width:400px;}
.audit-controls form .field-col{min-width:100px;}
#audit-table td:first-child{font-size:12px;white-space:nowrap;}
#audit-table td:nth-child(2),
#audit-table td:nth-child(4),
#audit-table td:nth-child(5){font-size:13px;}
#audit-table td:nth-child(4),
#audit-table td:nth-child(6){color:var(--text-secondary);}
#audit-table td:last-child{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#create-user-panel > summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:var(--s4) 0;}
#create-user-panel form{padding-top:var(--s4);border-top:1px solid var(--border);}
#create-user-panel .chevron{transition:transform 200ms;}
#create-user-panel[open] .chevron{transform:rotate(180deg);}
#users-table th:last-child{text-align:right;}
#users-table td:last-child{text-align:right;white-space:nowrap;}
#users-table th.users-id-col,
#users-table td.users-id-cell{width:88px;white-space:nowrap;}
#users-table td.users-id-cell{font-weight:600;}
#users-table td:nth-child(2) > div{display:flex;align-items:center;gap:10px;}
#users-table td:nth-child(2) > div > div:first-child{width:32px;height:32px;border-radius:50%;background:var(--accent-fill);color:var(--accent-contrast);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;}
#users-table td:nth-child(2) > div > div:last-child{min-width:0;}
#users-table td:nth-child(2) > div > div:last-child > div:first-child{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#users-table td:nth-child(2) > div > div:last-child > div:last-child{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-edit-form{position:absolute;right:0;z-index:10;min-width:320px;}

@media(max-width:767px){
  .review-hero-head{
    align-items:flex-start;
  }
  .review-hero-actions{
    width:100%;
  }
  .review-tab-list{
    width:100%;
    grid-template-columns:1fr;
  }
  .review-tab-btn{
    min-height:0;
  }
  .review-decision-grid,
  .review-offer-grid{
    grid-template-columns:1fr;
  }
  .review-offer-intro,
  .review-offer-list{
    max-width:none;
  }
}
.sensitive-inline {
  display:inline-flex;
  align-items:center;
  gap:var(--s2);
}
.panel-accent-warning{border-left:4px solid var(--warning);}
.section-title-spaced{margin-bottom:var(--s5);}
.inline-actions > *{min-width:0;}
.admin-loans-filter-title{font-size:16px;font-weight:600;margin-bottom:var(--s4);}
.admin-loans-actions{display:flex;gap:var(--s2);flex-wrap:wrap;}
.admin-loans-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s4);}
.admin-loans-heading{font-size:18px;font-weight:600;}
.admin-loans-count{margin-top:2px;}
#loans-table th:last-child,
#loans-table td.actions-cell{min-width:220px;}
.table-col-tight{width:40px;}
.loans-col-id,.users-col-id{font-size:13px;color:var(--text-tertiary);}
.loans-col-borrower{font-weight:500;}
.loans-col-officer,.users-date-cell{font-size:13px;color:var(--text-secondary);}
.loans-col-term,.loans-col-next-due{font-size:13px;}
.muted-inline{color:var(--text-tertiary);}
.debug-alert-gap{margin-top:var(--s4);}
.code-block-responsive{white-space:pre-wrap;overflow:auto;max-height:65vh;}
.details-summary-row{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:var(--s4) 0;}
.details-summary-row::-webkit-details-marker{display:none;}
.details-summary-title{margin:0;display:flex;align-items:center;gap:8px;}
.details-chevron{transition:transform 200ms;}
details[open] > .details-summary-row .details-chevron{transform:rotate(180deg);}
.panel-divider-top{padding-top:var(--s4);border-top:1px solid var(--border);}
.section-row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--s4);margin-bottom:var(--s5);}
.section-row-title{margin:0;}
.users-count-badge{margin-left:var(--s2);vertical-align:middle;font-size:12px;}
.users-search-col{flex:1;max-width:320px;margin-bottom:0;}
.users-col-actions{text-align:right;white-space:nowrap;}
.users-user-cell{display:flex;align-items:center;gap:10px;}
.users-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-fill);color:var(--accent-contrast);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;}
.users-user-meta{min-width:0;}
.users-user-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.users-user-email{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.users-edit-details{display:inline-block;}
.users-edit-summary{list-style:none;display:inline-flex;align-items:center;gap:4px;cursor:pointer;}
.user-edit-stack{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s2);}
.inline-form-compact{display:inline;}
.btn-text-danger{color:var(--danger);}
.muted-cell-center{padding:var(--s8);text-align:center;}
.eye-btn {
  background:none;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:2px 6px;
  cursor:pointer;
  font-size:14px;
  color:var(--text-secondary);
  transition:background 150ms,color 150ms;
}
.eye-btn:hover {
  background:var(--accent-light);
  color:var(--accent-ink);
}

/* ================================================================
   CMS / Admin Settings Tabs
   ================================================================ */

.settings-page{display:grid;gap:var(--s4);}
.settings-hero{margin-bottom:var(--s1);}
.settings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s4);}
.settings-toolbar-wrap{flex-wrap:wrap;}
.settings-split-row{display:flex;align-items:flex-end;gap:var(--s5);flex-wrap:wrap;}
.settings-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s4);}
.settings-logo-card{display:flex;flex-direction:column;gap:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-tint);}
.settings-grow{flex:1;min-width:220px;}
.settings-logo-current{display:grid;gap:var(--s2);}
.settings-logo-preview{max-width:120px;max-height:48px;border-radius:var(--radius-sm);border:1px solid var(--border);padding:8px;background:var(--bg-surface);}
.settings-logo-preview-dark{background:linear-gradient(180deg,rgba(11,16,32,0.92),rgba(17,24,39,0.96));}
.settings-subtext-gap{margin-top:var(--s2);}
.settings-section-title{margin-bottom:var(--s3);}
.settings-field-gap{margin-bottom:var(--s3);}
.settings-field-gap-lg{margin-bottom:var(--s4);}
.settings-field-align-end{align-self:end;}
.settings-actions-gap{margin-top:var(--s4);}
.settings-card-gap{margin-top:var(--s3);}
.settings-stack-md{display:flex;flex-direction:column;gap:var(--s3);}
.settings-inline-form{display:inline;}
.settings-inline-actions{display:flex;gap:var(--s2);flex-wrap:wrap;}
.settings-role-form{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;}
.settings-dialog-form{display:grid;gap:0;}
.settings-dialog-title{margin-bottom:var(--s4);}
.settings-danger-button{color:var(--danger);}
.settings-badge-sm{font-size:11px;}
.settings-table-email{font-size:13px;}
.settings-table-timestamp{font-size:12px;white-space:nowrap;}
.settings-table-ip{font-size:11px;}
.settings-table-summary{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.settings-role-select{min-width:130px;}
.settings-role-submit{white-space:nowrap;}
.settings-color-row{display:flex;gap:var(--s2);align-items:center;padding:var(--s2);background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--radius-sm);}
.settings-color-input{width:48px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:2px;background:var(--bg-surface);}
.settings-color-hex{width:110px;font-family:var(--font-mono);font-size:13px;background:#fff;}
.settings-preview-label{margin-bottom:var(--s2);font-weight:600;}
.settings-preview-navbar{background:linear-gradient(135deg,var(--preview-primary),color-mix(in srgb, var(--preview-primary) 80%, #ffffff));color:#fff;padding:12px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;box-shadow:0 10px 24px rgba(0,0,0,0.08);}
.settings-preview-navbar-logo{display:block;max-width:132px;max-height:36px;width:auto;height:auto;object-fit:contain;}
.settings-preview-actions{display:flex;gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;}
.settings-preview-button{appearance:none;background:var(--preview-primary);color:#fff;border:none;padding:9px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:13px;cursor:default;box-shadow:0 8px 18px rgba(0,0,0,0.08);}
.settings-preview-badge{display:inline-flex;align-items:center;background:var(--preview-accent);color:#fff;padding:5px 12px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;letter-spacing:.02em;}
.settings-preview-card{margin-top:var(--s1);background:#fff;border-radius:var(--radius);padding:var(--s4);border:1px solid var(--border);box-shadow:0 12px 30px rgba(15,23,42,0.05);}
.settings-preview-title{font-weight:700;font-size:16px;color:var(--text-primary);}
.settings-preview-copy{font-size:13px;color:var(--text-secondary);margin-top:4px;}
.settings-preview-progress-track{margin-top:var(--s3);height:6px;background:rgba(15,23,42,0.08);border-radius:999px;overflow:hidden;}
.settings-preview-progress-fill{width:35%;height:100%;background:linear-gradient(90deg,var(--preview-primary),var(--preview-accent));border-radius:999px;}
.settings-font-preview{margin-top:var(--s3);padding:var(--s4);background:var(--bg-tint);border-radius:var(--radius-sm);border:1px solid var(--border);}
.settings-font-preview-heading{font-size:18px;font-weight:700;margin-bottom:4px;}
.settings-font-preview-body{font-size:14px;color:var(--text-secondary);}
.settings-email-body{min-height:280px;resize:vertical;font-family:var(--font);}
.settings-helper-card{background:var(--bg-tint);border-radius:var(--radius-sm);padding:var(--s3);border:1px solid var(--border);}
.settings-helper-title{font-weight:600;margin-bottom:var(--s2);}
.settings-radio-row{display:flex;gap:var(--s4);margin-top:var(--s2);flex-wrap:wrap;}
.settings-sso-list{display:grid;gap:var(--s4);}
.settings-sso-card{display:grid;gap:var(--s4);}
.settings-sso-fields{display:grid;gap:var(--s3);}
.settings-sso-fields.is-hidden{display:none;}
.settings-mono-sm{font-family:var(--font-mono);font-size:12px;line-height:1.45;word-break:break-word;}
.it-asset-panel{position:relative;overflow:hidden;}
.it-asset-panel.is-locked{border-color:color-mix(in srgb, var(--warning) 45%, var(--border));box-shadow:0 10px 26px rgba(15,23,42,0.05);}
.it-asset-panel.is-unlocked{border-color:color-mix(in srgb, var(--success) 35%, var(--border));}
.it-asset-panel.is-setup{border-style:dashed;}
.it-asset-banner{display:grid;gap:4px;padding:var(--s3) var(--s4);border:1px solid color-mix(in srgb, var(--warning) 38%, var(--border));background:linear-gradient(180deg, rgba(255,248,225,0.92), rgba(255,255,255,0.98));border-radius:var(--radius-sm);margin-bottom:var(--s4);}
.it-asset-banner.is-unlocked{border-color:color-mix(in srgb, var(--success) 35%, var(--border));background:linear-gradient(180deg, rgba(232,245,233,0.96), rgba(255,255,255,0.98));}
.it-asset-banner.is-setup{border-color:var(--border);background:linear-gradient(180deg, rgba(248,250,252,0.96), rgba(255,255,255,0.98));}
.it-asset-banner strong{font-size:13px;font-weight:700;color:var(--text-primary);}
.it-asset-body{display:grid;gap:var(--s4);}
.it-asset-body[hidden]{display:none !important;}

/* Tab bar */
.cms-tabs{display:flex;gap:0;border:1px solid var(--border);margin-bottom:var(--s4);background:linear-gradient(180deg,#ffffff,#fbfbfd);border-radius:var(--radius-lg);padding:0 var(--s2);overflow-x:auto;box-shadow:var(--shadow-xs);}
.cms-tab{background:none;border:none;border-bottom:2px solid transparent;padding:14px 16px 12px;font-family:var(--font);font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:color 150ms,border-color 150ms;}
.cms-tab:hover{color:var(--text-primary);}
.cms-tab.active{color:var(--accent-ink);border-bottom-color:var(--accent-ink);font-weight:600;}

/* CMS panel containers */
.cms-panel{display:grid;gap:var(--s4);animation:fadeIn 200ms ease;}
.cms-panel > form{display:grid;gap:var(--s4);}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* Branding preview */
.branding-preview{margin-top:var(--s4);padding:var(--s4);background:linear-gradient(180deg, rgba(0,113,227,0.05), rgba(52,199,89,0.03));border:1px solid rgba(15,23,42,0.08);border-radius:var(--radius-lg);}

/* Email editor layout */
.email-editor-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s5);align-items:start;}
@media(max-width:768px){.email-editor-layout{grid-template-columns:1fr;}}
.email-sidebar{padding:var(--s4);display:flex;flex-direction:column;gap:4px;}
.email-template-btn{display:block;width:100%;text-align:left;background:none;border:none;padding:8px var(--s3);border-radius:var(--radius-sm);font-family:var(--font);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background 150ms,color 150ms;}
.email-template-btn:hover{background:rgba(0,0,0,0.04);color:var(--text-primary);}
.email-template-btn.active{background:var(--accent-light);color:var(--accent-ink);}
.email-editor-main{min-width:0;overflow:visible;}
.email-editor-main [data-email-template-form]{position:relative;overflow:visible;}
.settings-template-header{display:grid;gap:6px;}
.settings-template-eyebrow{margin:0;}

/* Token chips */
.token-chips{display:flex;flex-wrap:wrap;gap:var(--s1);}
.token-chip{display:inline-block;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;font-family:var(--font-mono);font-size:11px;color:var(--accent-ink);cursor:pointer;transition:background 150ms;}
.token-chip:hover{background:var(--accent-light);}
.settings-helper-copy{margin-bottom:var(--s3);}
.token-groups{display:grid;gap:var(--s3);}
.token-group{display:grid;gap:var(--s2);}
.token-group-title{margin:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);}
.token-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s2);}
.token-chip-rich{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;font-family:var(--font);font-size:12px;text-align:left;}
.token-chip-rich.is-popular{border-color:color-mix(in srgb, var(--accent-fill) 24%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-fill) 12%, transparent);}
.token-chip-label{font-size:12px;font-weight:700;color:var(--text-primary);}
.token-chip-code{font-family:var(--font-mono);font-size:11px;color:var(--accent-ink);word-break:break-all;}
.email-variable-autocomplete{position:absolute;z-index:60;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;display:grid;gap:4px;max-height:min(360px, 50vh);overflow:auto;}
.email-variable-option{width:100%;display:grid;gap:2px;text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:10px 12px;cursor:pointer;}
.email-variable-option:hover,.email-variable-option.is-active{background:var(--accent-light);}
.email-variable-option-label{font-size:13px;font-weight:700;color:var(--text-primary);}
.email-variable-option-token{font-family:var(--font-mono);font-size:11px;color:var(--accent-ink);word-break:break-all;}
.email-variable-option-description{font-size:12px;color:var(--text-secondary);}

/* iOS-style toggle */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:var(--s2) 0;border-bottom:1px solid var(--border-subtle);}
.toggle-row:last-child{border-bottom:none;}
.ios-toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;}
.ios-toggle input{opacity:0;width:0;height:0;}
.ios-toggle-slider{position:absolute;inset:0;background:var(--text-tertiary);border-radius:12px;cursor:pointer;transition:background 200ms;}
.ios-toggle-slider::before{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform 200ms;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.ios-toggle input:checked+.ios-toggle-slider{background:var(--accent-fill);}
.ios-toggle input:checked+.ios-toggle-slider::before{transform:translateX(20px);}

/* Email chips input */
.chips-input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--s1) var(--s2);background:var(--bg-surface);min-height:40px;}
.chips-container{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center;}
.chip{display:inline-flex;align-items:center;gap:4px;background:var(--accent-light);color:var(--accent-ink);border-radius:var(--radius-pill);padding:2px 8px 2px 10px;font-size:12px;font-weight:500;}
.chip-remove{background:none;border:none;color:var(--accent-ink);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;font-weight:700;}
.chip-remove:hover{color:var(--danger);}
.chip-input{border:none;outline:none;background:transparent;font-family:var(--font);font-size:13px;min-width:120px;flex:1;padding:4px;}

/* Audit filters */
.audit-filters{margin-bottom:var(--s3);}

/* CMS modal (dialog) */
.cms-modal{border:none;border-radius:var(--radius-lg);padding:var(--s6);box-shadow:var(--shadow-lg);max-width:440px;width:90vw;}
.cms-modal::backdrop{background:rgba(0,0,0,0.4);}

@media (max-width: 900px){
  .settings-toolbar{align-items:flex-start;}
}

@media (max-width: 768px){
  .settings-split-row,
  .settings-preview-actions,
  .settings-radio-row,
  .settings-inline-actions{gap:var(--s3);}
  .settings-toolbar{flex-direction:column;align-items:flex-start;}
  .settings-table-summary{max-width:220px;}
}
