:root {
  --ink:#172449;
  --muted:#5c7097;
  --navy:#172449;
  --navy-deep:#162853;
  --blue:#244bc5;
  --accent:#244bc5;
  --line:#dce4f3;
  --paper:#fff;
  --bg:#f5f8ff;
  --pale:#eaf0ff;
  --sand:#f7f4ed;
  --danger:#a33538;
  font-family: var(--nl-font);
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a,
input,
textarea,
select {
  touch-action: manipulation;
}
a {
  color: var(--blue);
  text-underline-offset: 4px;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: .65;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #77a9df;
  outline-offset: 3px;
}
button,
input,
select,
textarea {
  border-radius: 9px;
}
button {
  border: 0;
}
.topbar {
  height: 96px;
  padding: 0 5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: white;
  border-bottom: 1px solid var(--line);
}
.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
  color: var(--navy);
  font-weight: 650;
  font-size: 22px;
  letter-spacing: -.5px;
}

.brand small {
  display: block;
  font-size: 9px;
  letter-spacing: 1.8px;
  font-weight: 600;
  color: var(--muted);
  margin-top: 1px;
}
.top-actions {
  display: flex;
  align-items: center;
  gap: 28px;
}
.private-label {
  color: var(--muted);
  font-size: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.private-label span {
  color: var(--accent);
  font-size: 20px;
}
.text-button {
  background: none;
  color: var(--blue);
  padding: 10px;
}
.button {
  background: var(--navy);
  color: white;
  min-height: 46px;
  padding: 11px 23px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  gap: 12px;
}
.button:hover {
  background: #172449;
}
.button.secondary {
  background: white;
  color: var(--navy);
  border: 1px solid var(--line);
}
.button.light {
  background: var(--pale);
  color: var(--accent);
}
.button.danger {
  color: var(--danger);
  background: #fff0ed;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  margin: 0 0 14px;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font-family: var(--nl-font);
  font-weight: 750;
  font-size: 46px;
  line-height: 1.15;
  letter-spacing: -1.3px;
  margin-bottom: 18px;
}
h2 {
  font-size: 23px;
  letter-spacing: -.5px;
  line-height: 1.3;
  margin-bottom: 12px;
  font-weight: 600;
}
h3 {
  font-size: 16px;
  margin-bottom: 8px;
}
.muted,
.help {
  color: var(--muted);
}
.help {
  font-size: 12px;
  line-height: 1.6;
  margin: 7px 0 0;
}
.auth-layout {
  max-width: 1130px;
  min-height: 610px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 55px auto;
  padding: 0 24px;
  gap: 72px;
  align-items: center;
}
.auth-story {
  background: var(--navy);
  color: white;
  min-height: 570px;
  border-radius: 23px;
  padding: 55px 44px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.auth-story:after {
  content: "";
  position: absolute;
  right: -95px;
  bottom: -180px;
  width: 420px;
  height: 420px;
  border: 1px solid #65899a;
  border-radius: 50%;
  box-shadow: 0 0 0 38px #ffffff06, 0 0 0 78px #ffffff04;
  pointer-events: none;
}
.auth-story .eyebrow {
  color: #bcd1e7;
}
.auth-story h1 {
  font-size: 49px;
  max-width: 360px;
}
.auth-story p {
  color: #d4e2e8;
  max-width: 340px;
  font-size: 15px;
}
.story-footer {
  position: relative;
  z-index: 1;
  padding-top: 45px;
}
.story-footer span {
  display: block;
  color: #dce7f1;
  font-size: 12px;
}
.auth-form {
  max-width: 420px;
  width: 100%;
}
.auth-form h1 {
  font-size: 35px;
}
.auth-form .button {
  width: 100%;
  margin: 10px 0 16px;
}
.auth-tabs {
  display: flex;
  border-bottom: 1px solid var(--line);
  gap: 24px;
  margin-bottom: 28px;
}
.auth-tabs button {
  background: none;
  border-radius: 0;
  padding: 12px 0;
  color: var(--muted);
  border-bottom: 2px solid transparent;
}
.auth-tabs button.active {
  color: var(--navy);
  border-color: var(--accent);
}
.auth-back {
  margin-top: 15px;
  text-align: center;
}
.auth-message {
  border: 1px solid var(--line);
  padding: 22px;
  border-radius: 12px;
  background: white;
}
.shell {
  max-width: 1340px;
  margin: auto;
  padding: 35px 36px 65px;
}
.welcome {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin: 3px 0 31px;
}
.welcome h1 {
  font-size: 36px;
  margin: 0 0 6px;
}
.welcome p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.save-state {
  font-size: 12px;
  color: var(--accent);
  display: flex;
  gap: 7px;
  align-items: center;
}
.save-state.error {
  color: var(--danger);
}
.workspace-grid {
  display: grid;
  grid-template-columns: 215px minmax(0, 1fr) 258px;
  gap: 28px;
  align-items: start;
}
.step-nav {
  position: sticky;
  top: 24px;
}
.step-button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  background: none;
  text-align: left;
  padding: 14px 12px;
  margin-bottom: 6px;
  color: var(--muted);
  border: 1px solid transparent;
}
.step-button.active {
  color: var(--navy);
  background: white;
  border-color: var(--line);
  box-shadow: 0 4px 10px #17244904;
}
.step-number {
  font-size: 11px;
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1px solid #b6c6cd;
  border-radius: 50%;
  flex-shrink: 0;
}
.active .step-number {
  background: var(--accent);
  border-color: var(--accent);
  color: white;
}
.step-button strong {
  font-size: 13px;
  font-weight: 600;
}
.step-button small {
  display: block;
  font-size: 10px;
  margin-top: 1px;
  font-weight: 400;
}
.nav-note {
  font-size: 11px;
  color: var(--muted);
  padding: 16px 12px;
  line-height: 1.7;
}
.card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 3px 9px #17244903;
}
.section-head {
  padding-bottom: 23px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 25px;
}
.section-head p {
  color: var(--muted);
  margin: 9px 0 0;
  font-size: 14px;
  max-width: 530px;
}
.section-number {
  font-size: 10px;
  color: var(--accent);
  font-weight: 650;
  letter-spacing: 1.5px;
  margin-bottom: 9px;
  text-transform: uppercase;
}
.fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 19px 18px;
}
.field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.field.wide {
  grid-column: 1/-1;
}
.field label,
.field-label {
  font-size: 12px;
  font-weight: 600;
  color: #334d5f;
  display: block;
  margin-bottom: 7px;
}
.field .optional {
  font-weight: 400;
  color: var(--muted);
  font-size: 11px;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  background: #fff;
  border: 1px solid #cad8dd;
  min-height: 43px;
  padding: 9px 11px;
  color: var(--ink);
}
.field textarea {
  resize: vertical;
  min-height: 104px;
  line-height: 1.6;
}
.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--accent);
}
.field input::placeholder,
.field textarea::placeholder {
  color: #87979f;
  font-size: 13px;
}
.field input[type=checkbox] {
  width: 18px;
  min-height: 18px;
  accent-color: var(--accent);
}
.check-field {
  display: flex;
  gap: 11px;
  align-items: start;
  background: #f5f8ff;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 13px;
  font-size: 13px;
}
.check-field input {
  width: 17px;
  height: 17px;
  margin-top: 4px;
  accent-color: var(--accent);
  flex-shrink: 0;
}
.check-field span {
  display: block;
}
.group-title {
  font-size: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 29px 0 17px;
  padding-top: 23px;
  border-top: 1px solid var(--line);
}
.repeat-card {
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 20px;
  margin: 13px 0;
  background: #fcfdfd;
}
.repeat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.repeat-header h3 {
  font-size: 13px;
  margin: 0;
}
.repeat-header button {
  font-size: 11px;
  color: var(--muted);
  padding: 7px;
  background: none;
}
.section-actions {
  border-top: 1px solid var(--line);
  padding-top: 23px;
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.section-actions .skip-step {
  font-size: 12px;
  color: var(--muted);
  background: none;
  padding: 9px;
}
.aside-card {
  border: 1px solid var(--line);
  background: #eaf0ff;
  border-radius: 13px;
  padding: 22px;
  margin-bottom: 18px;
}
.aside-card h3 {
  font-size: 14px;
}
.aside-card p {
  font-size: 12px;
  color: #506975;
  margin-bottom: 0;
}
.advisor {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-bottom: 18px;
}
.avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--navy);
  color: white;
  display: grid;
  place-items: center;
  font-size: 12px;
}
.advisor strong {
  font-size: 12px;
  display: block;
}
.advisor small {
  font-size: 11px;
  color: var(--muted);
}
.side-link {
  display: block;
  margin-top: 15px;
  font-size: 12px;
  color: var(--accent);
  font-weight: 600;
  background: none;
  padding: 0;
}
.notice {
  background: #f0f5f9;
  border: 1px solid var(--line);
  padding: 14px 17px;
  border-radius: 10px;
  font-size: 12px;
  color: #506575;
  margin: 18px 0;
}
.notice.warning {
  background: #fff6e8;
  border-color: #eedcc0;
  color: #7e5f2f;
}
.notice.error {
  background: #fff0ed;
  border-color: #efcbc7;
  color: var(--danger);
}
.notice.success {
  background: var(--pale);
  color: #266960;
  border-color: #c9e1d8;
}
.progress-track {
  height: 4px;
  background: #e1e8e9;
  border-radius: 4px;
  overflow: hidden;
  margin: 14px 0 8px;
}
.progress-track span {
  display: block;
  background: var(--accent);
  height: 100%;
}
.mini-label {
  font-size: 11px;
  color: var(--muted);
}
.document-row {
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 20px;
  margin: 13px 0;
}
.document-top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 15px;
}
.document-row h3 {
  font-size: 14px;
}
.document-row p {
  font-size: 12px;
  color: var(--muted);
  margin: 7px 0 12px;
}
.badge {
  display: inline-flex;
  white-space: nowrap;
  border-radius: 30px;
  padding: 4px 9px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .2px;
  background: #edf2f4;
  color: #597080;
}
.badge.accepted,
.badge.ready {
  background: #e2f2e9;
  color: #246349;
}
.badge.needs_attention,
.badge.blocked {
  background: #fff0df;
  color: #925823;
}
.badge.submitted,
.badge.reviewing {
  background: #e9eefb;
  color: #53658f;
}
.upload-label {
  cursor: pointer;
  display: inline-flex;
  padding: 8px 13px;
  font-size: 12px;
  border: 1px solid #c6d8d8;
  border-radius: 7px;
  background: white;
  color: var(--accent);
  font-weight: 600;
  align-items: center;
  gap: 8px;
}
.upload-label input {
  max-width: 220px;
  font-size: 11px;
}
.file-list {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.file-list li {
  padding: 9px 0;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
}
.readiness-list {
  list-style: none;
  padding: 0;
  margin: 22px 0;
}
.readiness-list li {
  border-bottom: 1px solid var(--line);
  padding: 13px 0;
  display: flex;
  align-items: start;
  gap: 11px;
  font-size: 13px;
}
.readiness-list .state-icon {
  color: var(--accent);
  flex-shrink: 0;
}
.summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 17px;
}
.summary-item {
  padding: 15px;
  background: #f5f8ff;
  border-radius: 10px;
  font-size: 13px;
}
.summary-item small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-bottom: 5px;
}
.message-list {
  display: grid;
  gap: 15px;
  margin: 20px 0;
  max-height: 450px;
  overflow: auto;
}
.message {
  border-radius: 11px;
  padding: 16px 18px;
  background: #eaf0ff;
  font-size: 13px;
}
.message.from-team {
  background: #eef1f7;
}
.message-head {
  font-size: 10px;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}
.message p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 0;
}
.empty-state {
  padding: 35px 18px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.empty-state strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  margin-bottom: 9px;
}
.applications {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  margin: 25px 0;
}
.application-card {
  padding: 25px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  text-align: left;
  color: var(--ink);
}
.application-card h2 {
  font-size: 21px;
  margin: 15px 0 8px;
}
.application-card p {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 20px;
}
.site-foot {
  max-width: 1280px;
  padding: 23px 34px 35px;
  margin: auto;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  border-top: 1px solid var(--line);
  font-size: 10px;
  color: var(--muted);
}
.site-foot a {
  color: var(--muted);
}
.loading {
  min-height: 65vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: 13px;
}
.loader {
  width: 25px;
  height: 25px;
  border: 2px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 14px;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.skip {
  position: absolute;
  top: -100px;
  left: 15px;
  padding: 10px;
  background: white;
  z-index: 20;
}
.skip:focus {
  top: 10px;
}
.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;
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  max-width: min(90vw, 580px);
  padding: 13px 22px;
  background: var(--navy);
  color: white;
  border-radius: 11px;
  box-shadow: 0 9px 30px #1628532b;
  font-size: 13px;
  z-index: 30;
}
[hidden] {
  display: none !important;
}
@media (max-width: 1120px) {
  .workspace-grid {
    grid-template-columns: 185px minmax(0, 1fr);
  }
  .workspace-aside {
    grid-column: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .auth-layout {
    gap: 40px;
  }
  .auth-story {
    padding: 38px 30px;
  }
}
@media (max-width: 760px) {
  .topbar {
    height: 80px;
    padding: 0 20px;
  }
  .brand {
    font-size: 19px;
  }
  .brand small {
    font-size: 7px;
  }
  .private-label {
    display: none;
  }
  .top-actions {
    gap: 5px;
  }
  .text-button {
    font-size: 12px;
  }
  .shell {
    padding: 25px 18px 40px;
  }
  .welcome {
    align-items: start;
    gap: 12px;
  }
  .welcome h1 {
    font-size: 30px;
  }
  .welcome p {
    font-size: 12px;
  }
  .save-state {
    font-size: 10px;
    white-space: nowrap;
    margin-top: 7px;
  }
  .workspace-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
  .step-nav {
    min-width: 0;
    position: static;
    display: flex;
    overflow: auto;
    gap: 5px;
    margin: 0 -18px;
    padding: 0 18px 5px;
  }
  .step-button {
    width: auto;
    min-width: 122px;
    padding: 10px;
    gap: 8px;
    margin: 0;
  }
  .step-button small,
  .nav-note {
    display: none;
  }
  .step-button strong {
    font-size: 11px;
  }
  .step-number {
    width: 21px;
    height: 21px;
  }
  .card {
    padding: 22px 18px;
  }
  .workspace-aside {
    grid-column: 1;
    grid-template-columns: 1fr;
  }
  .workspace-aside .aside-card {
    margin-bottom: 0;
  }
  .workspace-aside .aside-card:last-child {
    display: none;
  }
  .fields {
    gap: 17px 12px;
  }
  .field {
    grid-column: 1/-1;
  }
  .field.half {
    grid-column: auto;
  }
  h2 {
    font-size: 21px;
  }
  .section-head p {
    font-size: 13px;
  }
  .auth-layout {
    display: flex;
    flex-direction: column;
    margin: 23px auto 42px;
    padding: 0 23px;
    gap: 28px;
    min-height: 0;
  }
  .auth-story {
    min-height: 0;
    padding: 27px;
    width: 100%;
    border-radius: 15px;
  }
  .auth-story h1 {
    font-size: 33px;
    max-width: 400px;
    margin-bottom: 12px;
  }
  .auth-story p {
    font-size: 12px;
    max-width: 100%;
    margin-bottom: 0;
  }
  .auth-story .story-footer {
    display: none;
  }
  .auth-story .eyebrow {
    font-size: 9px;
    margin-bottom: 12px;
  }
  .auth-form {
    max-width: none;
  }
  .auth-form h1 {
    font-size: 30px;
  }
  .site-foot {
    padding: 22px;
    gap: 9px;
    flex-direction: column;
  }
  .document-top {
    flex-wrap: wrap;
    gap: 5px;
  }
  .summary-grid {
    gap: 10px;
  }
  .summary-item {
    font-size: 12px;
  }
  .section-actions {
    flex-wrap: wrap;
  }
  .section-actions .button {
    padding: 10px 15px;
    font-size: 13px;
  }
  .auth-tabs {
    margin-bottom: 20px;
  }
  .aside-card {
    padding: 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

/* Shared Nick's Lending brand, with layout safeguards for real file names. */
.topbar { background: white; color: var(--nl-ink); min-height: 80px; height: auto; padding-block: 14px; gap: 16px; }
.topbar .brand { color: #101820; font-family: var(--nl-heading); font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.topbar .brand small { color: var(--nl-blue); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.topbar .private-label, .topbar .text-button { color: var(--nl-blue); }
.topbar .text-button { border: 1px solid #a7bad0; padding: 9px 12px; }
.button:not(.secondary) { background: var(--nl-blue); color: white; }
.button:not(.secondary):hover { background: var(--nl-blue-hover); }
.auth-story { background: #e6edff; color: var(--nl-ink); }
.auth-story h1 { font-size: clamp(32px, 3.4vw, 46px); font-weight: 750; letter-spacing: -.035em; }
.auth-story::after { display: none; }
.card, .application-card, .aside-card { border-color: var(--nl-line); }
.step-button.active { color: var(--nl-navy-deep); background: var(--nl-sky); }
.step-button.active .step-number { background: var(--nl-blue); border-color: var(--nl-blue); }
.file-list li, .doc-header, .message-head { flex-wrap: wrap; }
.file-list li > *, .doc-card, .message, .summary-item, .application-card, .field, .card { min-width: 0; overflow-wrap: anywhere; }
.upload-label { flex-wrap: wrap; max-width: 100%; }
.upload-label input { max-width: 100%; min-width: 0; }
input, select, textarea { min-width: 0; max-width: 100%; }
button, a { overflow-wrap: anywhere; }
@media(max-width:760px) { .topbar { padding: 14px 18px; gap: 12px; flex-wrap: wrap; } .top-actions { margin-left: auto; } .topbar .brand small { font-size: 8px; } .topbar .text-button { font-size: 12px; } }
@media(max-width:380px) { .topbar .brand { font-size: 19px; } .welcome { flex-wrap: wrap; gap: 10px; } .auth-form h1 { font-size: 30px; } .section-actions { flex-wrap: wrap; } .site-foot { overflow-wrap: anywhere; } }
@media(max-width:760px) {
  .step-nav { align-items: center; }
  .step-nav > button { flex: 0 0 auto; min-height: 48px; }
  .step-nav > .step-button { width: 142px; }
  .step-nav > .text-button { width: auto; white-space: nowrap; }
  .step-button strong { overflow-wrap: normal; }
  .topbar .brand small { text-transform: uppercase; }
}

/* Live brand typography and quiet workspace surfaces. */
h1, h2, h3 { font-family: var(--nl-heading); font-weight: 700; }
.auth-story p, .story-footer span { color: var(--nl-muted); }
.auth-story .eyebrow { color: var(--nl-blue); }
.auth-story h1 em { color: var(--nl-blue); }
.card, .application-card { box-shadow: none; }
.aside-card { background: var(--nl-sky); }

/* Readable, goal-first application choices. */
.field label, .field-label { font-size: 15px; line-height: 1.5; }
.field .optional, .help { font-size: 13px; }
.field input, .field select, .field textarea { font-size: 16px; min-height: 48px; }
.section-head p, .notice, .section-actions .skip-step { font-size: 15px; }
.group-title { font-size: 18px; }
.loan-paths { border: 0; padding: 0; margin: 0; min-width: 0; }
.loan-paths legend { font-family: var(--nl-heading); font-size: 22px; font-weight: 700; line-height: 1.4; }
.loan-path-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin: 20px 0 28px; }
.loan-path { position: relative; display: flex; flex-direction: column; gap: 8px; text-align: left; padding: 19px 40px 19px 18px; min-height: 128px; border: 1px solid var(--nl-line); background: white; color: var(--ink); border-radius: 13px; }
.loan-path strong { font-size: 16px; line-height: 1.35; font-family: var(--nl-heading); }
.loan-path > span:not(.path-check) { font-size: 14px; line-height: 1.5; color: var(--muted); }
.loan-path:hover { background: #f8faff; border-color: var(--nl-blue); }
.loan-path.selected { background: var(--nl-sky); border-color: var(--nl-blue); box-shadow: inset 0 0 0 1px var(--nl-blue); }
.path-check { position: absolute; right: 14px; top: 17px; color: var(--nl-blue); font-size: 20px; }
@media(max-width:480px) { .loan-path-grid { grid-template-columns: 1fr; gap: 10px; } .loan-path { min-height: 100px; } .field label { font-size: 15px; } }

.field textarea { min-height: 104px; }

/* Dedicated path selection: compact choices and a calmer support column. */
.loan-path-grid { gap: 10px; margin: 0; }
.loan-path { min-height: 64px; padding: 11px 34px 11px 14px; gap: 4px; }
.loan-path strong { font-size: 15px; line-height: 1.35; }
.loan-path > span:not(.path-check) { font-size: 13px; line-height: 1.4; }
.path-check { top: 10px; right: 12px; font-size: 18px; }
.card:has(.loan-paths) .section-head { margin-bottom: 20px; padding-bottom: 18px; }
.card:has(.loan-paths) .section-actions { justify-content: flex-end; margin-top: 20px; padding-top: 18px; }
.card:has(.loan-paths) button:disabled { cursor: default; }
.card:has(#field-loan-occupancy) > .group-title:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.workspace-aside .aside-card { background: white; padding: 20px; border-radius: 15px; }
.workspace-aside .advisor { align-items: center; gap: 12px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--nl-line); }
.workspace-aside .avatar { flex: 0 0 40px; background: var(--nl-sky); color: var(--nl-blue); }
.workspace-aside .advisor strong { font-size: 14px; line-height: 1.4; }
.workspace-aside .advisor small { font-size: 12px; margin-top: 3px; display: block; }
.workspace-aside h3 { font-size: 17px; line-height: 1.45; margin-bottom: 10px; }
.workspace-aside p { font-size: 14px; line-height: 1.6; }
.workspace-aside .side-link { width: 100%; display: block; text-align: left; padding: 10px 12px; border: 1px solid var(--nl-line); border-radius: 9px; font-size: 13px; margin-top: 12px; line-height: 1.5; }
.workspace-aside .side-link:hover { background: var(--nl-sky); }
.workspace-aside .eyebrow { font-size: 10px; letter-spacing: 1.4px; margin: 0 0 8px; }
.workspace-aside .mini-label { font-size: 12px; display: block; line-height: 1.5; }
.workspace-aside .progress-track { margin: 16px 0 10px; height: 5px; background: var(--nl-sky); }
.workspace-aside .progress-note { border-top: 1px solid var(--nl-line); margin-top: 16px; padding-top: 14px; font-size: 12px; }
@media(max-width:480px) { .loan-path { min-height: 64px; } }

/* Currency/percentage entry without number spinners. */
.amount-control { position: relative; }
.amount-control > span { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; font-size: 16px; }
.amount-control input { padding-left: 30px; font-variant-numeric: tabular-nums; }
.amount-control.percent > span { left: auto; right: 14px; }
.amount-control.percent input { padding-left: 12px; padding-right: 32px; }
.loan-estimate + .help { margin: 14px 0 0; line-height: 1.6; }

.refinance-estimates { margin-top: 24px; padding: 20px; background: var(--nl-bg); border: 1px solid var(--nl-line); border-radius: 12px; }
.refinance-estimates .eyebrow { margin-bottom: 14px; font-size: 11px; }
.refinance-estimates dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 0; }
.refinance-estimates dt { font-size: 13px; color: var(--muted); margin-bottom: 5px; }
.refinance-estimates dd { font-size: 18px; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
@media(max-width:480px) { .refinance-estimates dl { grid-template-columns: 1fr; gap: 16px; } }

/* Readable application navigation on desktop and mobile. */
.step-nav .step-button strong { font-size: 16px; line-height: 1.4; }
.step-nav .step-button small { font-size: 13px; line-height: 1.5; margin-top: 4px; }
.step-nav .step-number { font-size: 13px; width: 28px; height: 28px; }
.step-nav .nav-note { font-size: 14px; line-height: 1.65; }
.step-nav #all-applications { font-size: 15px; line-height: 1.5; }
@media(max-width:760px) {
  .step-nav > .step-button { width: 170px; }
  .step-nav .step-button strong { font-size: 15px; }
}

.plan-context { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--nl-line); }

.card > .group-title:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }

.repeat-card > summary { cursor: pointer; font-size: 16px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.repeat-card > summary span { display: block; font-size: 13px; font-weight: 400; color: var(--muted); margin-top: 4px; }
.repeat-card[open] > summary { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.debt-guidance { margin: 28px 0 18px; padding: 22px; background: var(--nl-sky); border: 1px solid var(--line); border-radius: 12px; }
.debt-guidance h3 { font-size: 19px; margin-bottom: 16px; }
.debt-guidance p { font-size: 15px; line-height: 1.65; }
.debt-guidance .help { font-size: 13px; }

.debt-entry-action { display: flex; align-items: flex-start; gap: 20px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--nl-sky); }
.debt-entry-action > button { flex-shrink: 0; background: white; }
.debt-entry-action strong { display: block; font-size: 17px; line-height: 1.45; }
.debt-entry-action p { margin: 7px 0 0; font-size: 15px; line-height: 1.6; }
@media (max-width: 600px) { .debt-entry-action { flex-direction: column; gap: 14px; } .debt-entry-action > button { order: 2; } }

.finance-tabs { display:flex; gap:8px; margin:0 0 18px; flex-wrap:wrap; }
.finance-tabs button { flex:1; padding:10px; border:1px solid var(--line); border-radius:9px; background:white; color:var(--ink); font:inherit; font-size:15px; cursor:pointer; }
.finance-tabs button[aria-current=step] { background:var(--nl-sky); border-color:#284bcc; font-weight:700; }
.history-compact { margin:0 0 12px; font-size:14px; color:var(--muted); }
.finance-part[hidden] { display:none; }
.finance-part .repeat-card { padding:16px; }
.finance-part .repeat-card .fields { gap:14px 18px; }
.finance-part .repeat-header { margin-bottom:12px; }
.employment-current, .employment-income { grid-column:1 / -1; }
.employment-current .check-field { padding:0; border:0; background:none; min-height:0; align-items:center; }
.employment-current input[type=checkbox] { width:16px; height:16px; flex:0 0 16px; }
.employment-income { border-top:1px solid var(--line); padding-top:14px; }
.employment-income h4 { margin:0 0 12px; font-size:16px; }
.employment-income .help { margin:8px 0 0; }

/* Application files stay together on phones; previews never leave the workspace. */
.application-files { border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:22px; background:var(--nl-bg); }
.file-actions { display:flex; flex-wrap:wrap; gap:12px; margin:14px 0; }
.generated-file { border-top:1px solid var(--line); padding-top:14px; margin-top:14px; overflow-wrap:anywhere; }
.file-preview { width:min(1100px,96vw); max-width:96vw; height:92dvh; max-height:92dvh; padding:20px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:white; }
.file-preview::backdrop { background:#152442aa; }
.file-preview-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.file-preview-head h2 { margin:0; font-size:20px; overflow-wrap:anywhere; }
.file-preview-head button { flex-shrink:0; }
.file-preview iframe { width:100%; height:calc(100% - 150px); display:block; margin-top:12px; border:1px solid var(--line); }
.file-preview img { max-width:100%; max-height:75dvh; object-fit:contain; display:block; margin:12px auto; }
@media(max-width:600px) {
  .topbar .brand small { font-size:10px; letter-spacing:.4px; }
  .topbar .brand { font-size:20px; }
  .application-files { padding:14px; }
  .file-actions .button { width:100%; justify-content:center; }
  .file-list li { align-items:flex-start; gap:10px; }
  .file-list li > div { min-width:0; overflow-wrap:anywhere; }
  .file-list .text-button { text-align:left; }
  .file-preview { padding:12px; }
  .file-preview-head h2 { font-size:16px; }
}
