/* Client banking interface. Loaded after the shared component primitives. */
:root {
  --nx-surface-base:#f5f6f8; --nx-surface-card:#fff; --nx-surface-raised:#f0f3f2;
  --nx-surface-sunken:#f8f9fa; --nx-border-subtle:#e6e9e8; --nx-border-default:#858f8c;
  --nx-text-primary:#192823; --nx-text-secondary:#65716c;
  --nx-brand-fill:#145c44; --nx-brand-fill-hover:#0c4733; --nx-brand-fill-active:#083b2a;
  --nx-brand-text:#145c44; --nx-brand-surface:#eaf3ed; --nx-brand-identity:#26825c;
  --nx-accent-text:#145c44; --nx-chart-line:#26825c; --nx-chart-alt:#a0b878;
  --nx-chart-axis:#65716c; --nx-chart-grid:#e8ede9;
  --nx-sidebar-width:238px; --nx-topbar-height:86px; --nx-container-max:1600px;
  --nx-radius-md:10px; --nx-radius-lg:18px; --nx-radius-xl:24px;
  --nx-shadow-sm:0 2px 5px rgb(21 43 32 / 2%);
  --nx-text-display:600 1.85rem/1.25 var(--nx-font-sans);
}
:root[data-theme='dark'] {
  --nx-surface-base:#111c18; --nx-surface-card:#1a2922; --nx-surface-raised:#25372e;
  --nx-surface-sunken:#15221b; --nx-border-subtle:#31463b; --nx-border-default:#82968b;
  --nx-text-primary:#eef4ef; --nx-text-secondary:#adbbb2; --nx-brand-text:#a8d9b3;
  --nx-brand-surface:#253e2e; --nx-chart-line:#94cfaa; --nx-chart-axis:#adbbb2; --nx-chart-grid:#31463b;
  --nx-accent-text:#a8d9b3;
}
body.nx { line-height:1.6; }
.nx [hidden] { display:none !important; }
.nx button,.nx input,.nx select,.nx textarea { font-family:inherit; }
.nx-content { padding:32px 36px 48px; }
.nx-page-header { margin-bottom:26px; gap:20px; }
.nx h1.nx-page-title { letter-spacing:-1px; margin-bottom:8px; }
.nx-page-subtitle { font-size:13px; }
.nx-sidebar { padding:28px 18px 20px; gap:12px; }
.nx-sidebar__brand { padding:0 14px 26px; }
.nx-sidebar__brand img { height:36px; max-width:155px; object-fit:contain; }
.nx-workspace { display:flex; align-items:center; gap:10px; border:1px solid var(--nx-border-subtle); border-radius:12px; padding:12px; margin:0 2px 18px; }
.nx-workspace__icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--nx-brand-surface); color:var(--nx-brand-text); }
.nx-workspace strong { display:block; font-size:12px; font-weight:600; }
.nx-workspace small { display:block; color:var(--nx-text-secondary); font-size:10px; }
.nx-nav { gap:6px; }
.nx .nx-nav__item { padding:12px 14px; gap:13px; color:var(--nx-text-secondary); font-size:13px; font-weight:500; min-height:46px; }
.nx .nx-nav__item[aria-current='page'] { background:var(--nx-brand-surface); box-shadow:none; color:var(--nx-brand-text); }
.nx .nx-nav__item[aria-current='page'] * { color:inherit; }
.nx .nx-nav__item[aria-current='page']::after { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; margin-left:auto; }
.nx-nav__section { font-size:10px; letter-spacing:1.4px; padding:24px 14px 8px; }
.nx-sidebar-help { margin:32px 2px 22px; padding:18px 14px; border:1px solid var(--nx-border-subtle); border-radius:14px; background:var(--nx-surface-sunken); }
.nx-sidebar-help > i { color:var(--nx-brand-text); font-size:20px; margin-bottom:12px; }
.nx-sidebar-help strong { display:block; font-size:12px; }
.nx-sidebar-help p { font-size:11px; line-height:1.7; color:var(--nx-text-secondary); margin:6px 0 12px; }
.nx-sidebar__footer { margin-top:auto; }
.nx-topbar { padding:0 36px; background:var(--nx-surface-base); position:relative; }
.nx-topbar__title { font-size:12px; color:var(--nx-text-secondary); }
.nx-topbar__title b { color:var(--nx-text-primary); font-weight:500; }
.nx-topbar__actions { gap:10px; flex-wrap:wrap; }
.nx-icon-btn { width:38px; height:38px; border:1px solid var(--nx-border-subtle); background:var(--nx-surface-card); border-radius:50%; padding:0; }
.nx-profile { display:flex; gap:10px; align-items:center; padding-left:16px; border-left:1px solid var(--nx-border-subtle); }
.nx-profile .nx-avatar { background:#e1ead8; color:#265d40; width:36px; height:36px; }
.nx-profile__name { font-size:12px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--nx-text-primary); }
.nx-profile small { display:block; color:var(--nx-text-secondary); font-size:10px; }
.nx-btn { min-height:42px; font-size:12px; padding:10px 17px; font-weight:600; }
.nx-btn--sm { min-height:34px; font-size:11px; padding:6px 12px; }
.nx-btn--lg { min-height:50px; font-size:13px; }
.nx .nx-btn--secondary { background:var(--nx-surface-card); border-color:var(--nx-border-subtle); color:var(--nx-text-primary); }
.nx .nx-btn--secondary:hover { border-color:var(--nx-brand-text); background:var(--nx-brand-surface); }
.nx-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:20px; }
.nx-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.nx-card { padding:24px; box-shadow:var(--nx-shadow-sm); }
.nx-card__header { margin-bottom:22px; gap:12px; flex-wrap:wrap; }
.nx-card__title { font-size:14px; font-weight:600; }
.nx-card--metric { padding:23px; gap:10px; min-width:0; }
.nx-card--metric .nx-metric__label { font-size:12px; line-height:1.5; margin:0; }
.nx-card--metric .nx-metric__value { font-size:clamp(22px,2.1vw,32px); font-weight:600; letter-spacing:-1px; line-height:1.3; overflow-wrap:anywhere; }
.nx-metric__caption { font-size:11px; line-height:1.6; }
.nx-card--metric .nx-metric__footer { margin-top:auto; padding-top:10px; }
.nx-metric-icon { width:36px; height:36px; display:grid; place-items:center; background:var(--nx-brand-surface); color:var(--nx-brand-text); border-radius:11px; margin-bottom:5px; }
.nx-overview { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr); gap:22px; margin-bottom:24px; }
.nx-balance { position:relative; overflow:hidden; background:#164c39; border-radius:20px; padding:28px 30px; color:#fff; min-height:235px; display:flex; flex-direction:column; align-items:flex-start; }
.nx-balance::after { content:''; position:absolute; width:310px; height:310px; border:1px solid #ffffff16; border-radius:50%; right:-130px; top:-55px; box-shadow:0 0 0 35px #ffffff05,0 0 0 70px #ffffff04,0 0 0 105px #ffffff03; pointer-events:none; }
.nx-balance__top { display:flex; align-items:center; justify-content:space-between; width:100%; position:relative; z-index:1; color:#d2e7db; font-size:12px; }
.nx-balance__value { font-size:clamp(30px,3.1vw,46px); letter-spacing:-1.8px; font-weight:500; line-height:1.25; margin:10px 0 8px; position:relative; z-index:1; overflow-wrap:anywhere; max-width:100%; }
.nx-balance p { font-size:11px; color:#c0d9cb; max-width:340px; }
.nx-balance__bottom { display:flex; gap:18px; flex-wrap:wrap; align-items:center; margin-top:auto; position:relative; z-index:1; width:100%; padding-top:10px; }
.nx .nx-balance__bottom a { color:#fff; font-size:11px; }
.nx .nx-balance__bottom .nx-btn { background:#d8e9ac; color:#1c3b2a; border:0; }
.nx-balance .nx-icon-btn { background:#ffffff12; border-color:#ffffff20; color:#fff; width:32px; height:32px; }
.nx-quick { padding:25px; background:var(--nx-surface-card); border:1px solid var(--nx-border-subtle); border-radius:20px; }
.nx-quick h2 { font-size:14px; font-weight:600; }
.nx-quick > p { font-size:12px; color:var(--nx-text-secondary); margin-bottom:22px; }
.nx-quick__links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nx .nx-quick__links a { display:flex; flex-direction:column; gap:12px; align-items:center; color:var(--nx-text-primary); font-size:11px; text-align:center; }
.nx-quick__links i { display:grid; place-items:center; width:50px; height:50px; border-radius:16px; background:var(--nx-surface-raised); color:var(--nx-brand-text); font-size:18px; transition:background .2s; }
.nx-quick__links a:hover i { background:var(--nx-brand-surface); }
.nx-dashboard-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.nx-dashboard-metrics .nx-spark { display:none; }
.nx-chart-card { padding:24px; min-height:240px; }
.nx-chart-card .nx-spark { height:190px; }
.nx-chart__legend { font-size:10px; }
.nx-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:28px 0 16px; }
.nx-section-heading h2 { font-size:16px; font-weight:600; margin:0; }
.nx-filters { background:var(--nx-surface-card); border:1px solid var(--nx-border-subtle); border-bottom:0; padding:20px 22px; border-radius:16px 16px 0 0; margin-bottom:0; gap:16px; }
.nx-filters__field .nx-input,.nx-filters__field .nx-select { min-height:38px; min-width:0; font-size:12px; }
.nx-filters__field { min-width:140px; }
.nx-filters__search { min-width:180px; }
.nx-table-wrap { border-radius:16px; }
.nx-table { font-size:12px; }
.nx-table thead th { padding:14px 22px; text-transform:none; letter-spacing:0; font-size:11px; font-weight:500; background:var(--nx-surface-sunken); color:var(--nx-text-secondary); }
.nx-table tbody td { padding:19px 22px; border-color:var(--nx-border-subtle); }
.nx-table td:first-child { font-weight:500; }
.nx-table td.nx-numeric { font-weight:600; white-space:nowrap; }
.nx-table__sort { font-size:inherit; }
.nx-badge { font-size:10px; font-weight:500; padding:5px 9px; border-radius:6px; white-space:nowrap; }
.nx-pagination { padding:16px 22px; font-size:11px; }
.nx-label { font-size:12px; margin-bottom:4px; color:var(--nx-text-primary); }
.nx-field { gap:5px; margin-bottom:20px; }
.nx-input,.nx-select,.nx-textarea { min-height:46px; font-size:13px; border-color:var(--nx-border-default); background:var(--nx-surface-card); padding:11px 13px; }
.nx-input::placeholder,.nx-textarea::placeholder { color:var(--nx-text-secondary); opacity:.85; }
.nx-input-group__addon { padding:0 14px; }
.nx-field__hint { line-height:1.6; font-size:11px; }
.nx-form-grid { gap:0 22px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.nx-check { padding:12px; background:var(--nx-surface-sunken); border:1px solid var(--nx-border-subtle); border-radius:10px; font-size:12px; align-items:center; }
.nx-check:has(input:checked) { border-color:var(--nx-brand-text); background:var(--nx-brand-surface); }
.nx-alert,.nx .alert { padding:16px 20px; border-radius:12px; font-size:12px; margin-bottom:20px; line-height:1.7; }
.nx .alert-danger { color:var(--nx-danger-text); background:var(--nx-danger-surface); }
.nx .alert-success { color:var(--nx-success-text); background:var(--nx-success-surface); }
.nx .alert-warning { color:var(--nx-warning-text); background:var(--nx-warning-surface); }
.nx-empty { min-height:210px; gap:14px; padding:40px 24px; }
.nx-empty__icon { width:58px; height:58px; display:grid; place-items:center; background:var(--nx-brand-surface); border-radius:18px; color:var(--nx-brand-text); opacity:1; font-size:23px; }
.nx-empty__text { line-height:1.7; font-size:12px; }
.nx-intro { display:flex; align-items:center; gap:22px; padding:26px; border:1px solid var(--nx-border-subtle); background:var(--nx-surface-card); border-radius:18px; margin-bottom:24px; }
.nx-intro__icon { display:grid; place-items:center; width:54px; height:54px; flex-shrink:0; border-radius:16px; color:var(--nx-brand-text); background:var(--nx-brand-surface); font-size:22px; }
.nx-intro h2 { font-size:16px; font-weight:600; margin-bottom:5px; }
.nx-intro p { margin:0; font-size:12px; color:var(--nx-text-secondary); max-width:640px; }
.nx-plan { position:relative; padding:26px; }
.nx-plan .nx-metric__value { margin:8px 0; }
.nx-plan dl { padding:18px 0; border-top:1px solid var(--nx-border-subtle); font-size:12px; }
.nx-plan .nx-metric__label { text-transform:uppercase; letter-spacing:1px; font-size:10px; }
.nx-plan .nx-metric__footer { padding-top:22px; }
.nx-settings-form { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:24px; align-items:start; }
.nx-settings-form > .nx-settings-actions { grid-column:1/-1; }
.nx-settings-form > .nx-card:nth-child(2) .nx-form-grid { grid-template-columns:1fr; }
.nx-thread { max-width:900px; }
.nx-thread li.nx-card { border-radius:16px; line-height:1.8; }
.nx-footer { display:flex; justify-content:space-between; gap:16px; padding:0 36px 24px; color:var(--nx-text-secondary); font-size:10px; margin-top:auto; }
.nx-footer a { color:var(--nx-text-secondary); }
/* Shared entry experience for login, registration and account recovery. */
.nx-auth { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; padding:0; min-height:100vh; background:var(--nx-surface-card); }
.nx-auth-story { padding:48px clamp(32px,5vw,84px); background:#123e30; color:#fff; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; min-height:100vh; }
.nx-auth-story::after { content:''; position:absolute; width:620px; height:620px; bottom:-370px; left:-210px; border:1px solid #ffffff20; border-radius:50%; box-shadow:0 0 0 65px #ffffff04,0 0 0 130px #ffffff03; pointer-events:none; }
.nx-auth-story__brand { display:flex; gap:12px; align-items:center; color:#fff; font-size:21px; font-weight:600; letter-spacing:-.5px; }
.nx-auth-story__brand img { width:37px; height:37px; object-fit:contain; }
.nx-auth-story__body { position:relative; z-index:1; padding:65px 0; max-width:460px; }
.nx-auth-story__eyebrow { color:#c1d9a2; font-size:10px; letter-spacing:2px; text-transform:uppercase; margin-bottom:22px; display:block; }
.nx .nx-auth-story h2 { color:#fff; font-size:clamp(32px,3.6vw,54px); font-weight:500; line-height:1.14; letter-spacing:-2px; margin-bottom:24px; }
.nx-auth-story h2 em { color:#d4e8aa; font-style:normal; }
.nx-auth-story p { font-size:14px; color:#b8cfc2; line-height:1.85; max-width:360px; }
.nx-auth-visual { margin:36px 0 0; padding:24px; border:1px solid #ffffff26; border-radius:20px; background:#ffffff08; max-width:340px; transform:rotate(-3deg); }
.nx-auth-visual__top { display:flex; justify-content:space-between; font-size:11px; color:#d0e1d6; }
.nx-auth-visual strong { display:block; font-size:24px; font-weight:500; padding:18px 0; letter-spacing:-.8px; }
.nx-auth-visual__bars { display:flex; align-items:flex-end; gap:9px; height:64px; }
.nx-auth-visual__bars span { flex:1; background:#a9c789; border-radius:5px 5px 2px 2px; }
.nx-auth-story__footer { color:#bdd2c5; font-size:10px; position:relative; z-index:1; }
.nx-auth-form { padding:48px clamp(24px,5vw,80px); display:flex; flex-direction:column; justify-content:center; min-width:0; }
.nx-auth__card { border:0; border-radius:0; box-shadow:none; padding:0; max-width:410px; margin:auto; width:100%; background:transparent; }
.nx-auth__card--wide { max-width:560px; }
.nx-auth__brand { justify-content:flex-start; margin-bottom:36px; }
.nx-auth__brand img { width:110px; height:auto; }
.nx .nx-auth__title { text-align:left; font-size:30px; font-weight:600; letter-spacing:-1px; margin-bottom:10px; }
.nx-auth__subtitle { text-align:left; font-size:13px; margin-bottom:30px; line-height:1.7; }
.nx-auth__footer { text-align:center; border-top:1px solid var(--nx-border-subtle); padding-top:22px; margin-top:26px; font-size:12px; line-height:2; }
.nx-auth__footer a { font-weight:600; }
.nx-auth .nx-check { background:transparent; padding:0; border:0; margin:6px 0 22px; color:var(--nx-text-secondary); }
.nx-auth details { margin-top:24px; padding:15px; border:1px solid var(--nx-border-subtle); border-radius:12px; font-size:12px; }
.nx-auth details summary { cursor:pointer; color:var(--nx-brand-text); font-weight:600; }
.nx-auth details[open] summary { margin-bottom:20px; }
.nx-auth-form__note { text-align:center; font-size:10px; color:var(--nx-text-secondary); padding-top:30px; }
/* Tablet and mobile keep every action reachable, without shrinking text. */
@media(min-width:1600px) { .nx-content { padding-top:40px; } }
@media(max-width:1200px) {
  :root { --nx-sidebar-width:218px; }
  .nx-content { padding:28px 24px 40px; }
  .nx-topbar { padding:0 24px; }
  .nx-dashboard-metrics { gap:14px; }
  .nx-card--metric { padding:20px; }
}
@media(max-width:1024px) {
  .nx-shell { grid-template-columns:minmax(0,1fr); }
  .nx-sidebar { position:fixed; width:260px; z-index:var(--nx-z-modal); }
  .nx-menu-toggle { display:inline-flex; }
  .nx-topbar { position:sticky; }
  .nx-auth-story { padding:40px 30px; }
  .nx-auth-form { padding:40px 28px; }
}
@media(max-width:760px) {
  .nx-content { padding:24px 18px 36px; }
  .nx-topbar { padding:0 18px; height:72px; }
  .nx-topbar__title { font-size:11px; }
  .nx-topbar__title > span { display:none; }
  .nx-profile { padding-left:8px; }
  .nx-profile__name { display:none; }
  .nx-overview,.nx-grid--2,.nx-settings-form { grid-template-columns:minmax(0,1fr); }
  .nx-overview { gap:16px; }
  .nx-dashboard-metrics { grid-template-columns:minmax(0,1fr); gap:12px; }
  .nx-dashboard-metrics .nx-card { display:grid; grid-template-columns:38px minmax(0,1fr); gap:4px 14px; }
  .nx-dashboard-metrics .nx-metric-icon { grid-row:1/4; }
  .nx-dashboard-metrics .nx-metric__value { font-size:26px; }
  .nx-dashboard-metrics .nx-metric__footer { grid-column:2; padding-top:4px; }
  .nx-quick { padding:22px; }
  .nx h1.nx-page-title { font-size:26px; }
  .nx-page-header > .nx-topbar__actions { width:100%; }
  .nx-page-header .nx-btn { flex:1; }
  .nx-table-wrap { overflow-x:auto; }
  .nx-table { min-width:570px; }
  .nx-filters { flex-wrap:wrap; padding:16px; }
  .nx-filters__field,.nx-filters__search { flex:1 1 150px; min-width:0; }
  .nx-filters__spacer { display:none; }
  .nx-intro { padding:20px; gap:16px; align-items:flex-start; }
  .nx-intro__icon { width:42px; height:42px; font-size:17px; }
  .nx-footer { padding:0 18px 22px; }
  .nx-auth { grid-template-columns:minmax(0,1fr); }
  .nx-auth-story { min-height:0; padding:24px; }
  .nx-auth-story__body { padding:26px 0 0; max-width:100%; }
  .nx .nx-auth-story h2 { font-size:30px; letter-spacing:-1px; margin-bottom:8px; }
  .nx-auth-story__body > p,.nx-auth-story__eyebrow,.nx-auth-visual,.nx-auth-story__footer { display:none; }
  .nx-auth-story__brand { font-size:18px; }
  .nx-auth-story__brand img { width:28px; height:28px; }
  .nx-auth-form { padding:32px 24px; }
  .nx-auth__brand { display:none; }
}
@media(max-width:440px) {
  .nx-form-grid { grid-template-columns:minmax(0,1fr); }
  .nx-balance { padding:24px; }
  .nx-topbar__actions { gap:6px; }
  .nx-icon-btn { width:34px; height:34px; }
  .nx-card { padding:20px; }
  .nx-footer { flex-wrap:wrap; }
}
@media print {
  .nx-sidebar,.nx-topbar,.nx-footer,.nx-quick,.nx-btn { display:none !important; }
  .nx-shell { display:block; } .nx-content { padding:0; }
  .nx-balance { background:#fff; color:#000; border:1px solid #aaa; }
  .nx-balance p,.nx-balance__top { color:#333; }
}

/* Final cascade and intrinsic sizing: shared primitives also target anchors. */
.nx .nx-btn--primary,.nx .nx-btn--primary:hover,.nx .nx-btn--primary:focus { color:var(--nx-brand-on-fill); }
.nx .nx-btn--danger,.nx .nx-btn--danger:hover { color:var(--nx-white); }
.nx .nx-menu-toggle { display:none; }
.nx-auth { justify-items:stretch; }
.nx-grid > *, .nx-grid > div > *, .nx-card, .nx-field, .nx-form-grid > * { min-width:0; }
.nx-table-wrap { position:relative; max-width:100%; min-width:0; }
.nx-input-group .nx-input { min-width:0; }
.nx-intro > div { min-width:0; }
.nx-intro p,.nx-card li,.nx-thread { overflow-wrap:anywhere; }
.nx-card__header .nx-card__title { font-size:15px; }
.nx .nx-metric__label { text-transform:none; letter-spacing:0; }
.nx .nx-plan .nx-metric__label { text-transform:uppercase; letter-spacing:1px; }
.nx .nx-badge--success { color:var(--nx-success-text); }
.nx .nx-badge--warning { color:var(--nx-warning-text); }
.nx .nx-badge--danger { color:var(--nx-danger-text); }
.nx .nx-badge--info { color:var(--nx-info-text); }
@media(max-width:1024px) { .nx .nx-menu-toggle { display:inline-flex; } }
@media(max-width:760px) { .nx-card .nx-table { min-width:0; } }

/* Keep the balance decoration behind content in full-page and print rendering. */
.nx-balance { isolation:isolate; background-image:repeating-radial-gradient(circle at 110% 20%,transparent 0,transparent 44px,#ffffff05 45px,#ffffff05 80px); }
.nx-balance::after { display:none; }
.nx-balance__top,.nx-balance__value,.nx-balance__bottom { z-index:auto; }
