@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/Poppins-Regular.ttf') format('truetype'); }
.flux-portal .portal-debt-simulator{position:absolute;right:28px;top:28px;z-index:1;display:grid;grid-template-columns:100px auto;align-items:center;gap:3px 10px;width:158px}.flux-portal .portal-debt-simulator label{grid-column:1/-1;font-size:10px;color:#dbe7ff}.flux-portal .portal-debt-simulator input{width:100%;margin:0;accent-color:#a8c5ff;cursor:pointer;height:24px;padding:0;min-height:0}.flux-portal .portal-debt-simulator button{font:inherit;font-size:10px;background:transparent;color:#fff;border:0;padding:4px;cursor:pointer;text-decoration:underline}.flux-portal .portal-debt-simulator :focus-visible{outline:2px solid #fff;outline-offset:3px}.flux-portal .portal-debt-simulator .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.flux-portal .creditor-key-details{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--flux-border)}.flux-portal .creditor-key-details>div{min-width:0}.flux-portal .creditor-key-details dt{font-size:10px;color:var(--flux-muted);margin-bottom:4px}.flux-portal .creditor-key-details dd{margin:0;font-size:12px;font-weight:600;overflow-wrap:anywhere}.flux-portal .creditor-account{font-size:12px;overflow-wrap:anywhere}.flux-portal .portal-creditor-card h3{margin:18px 0 6px}.flux-portal .portal-creditor-card .creditor-balance{margin-top:18px}.flux-portal .portal-cost-before .cost-kicker{margin-right:165px}
@media(max-width:480px){.flux-portal .portal-debt-simulator{right:20px;top:22px;width:136px;grid-template-columns:85px auto}.flux-portal .portal-cost-before .cost-kicker{margin-right:130px}}
.portal-resource{border-top:3px solid var(--flux-primary)!important;overflow-wrap:anywhere}.portal-resource-icon{display:grid;place-items:center;background:var(--flux-primary-soft);color:var(--flux-primary);width:42px;height:42px;border-radius:12px;font-size:22px}.portal-files-empty{text-align:center;border-style:dashed!important;padding:32px!important}.portal-files-empty p{color:var(--flux-muted)}
@font-face { font-family: Poppins; font-style: normal; font-weight: 600 900; font-display: swap; src: url('fonts/Poppins-SemiBold.ttf') format('truetype'); }
.flux-portal { background: var(--flux-surface-soft); color: var(--flux-text); font-family: Poppins, sans-serif; --portal-ink: #122744; --portal-teal: #096b57; --portal-mint: #dcf7ed; }
.flux-portal input, .flux-portal button, .flux-portal select { font-family: inherit; }
.flux-portal .portal-brand { display: flex; align-items: center; min-width: 0; max-width: 65%; }
.flux-portal .portal-brand .portal-site-logo { display: block; width: auto; height: auto; max-height: 54px; max-width: min(280px,100%); object-fit: contain; }
.flux-portal .portal-brand .portal-site-name { font-size: 23px; letter-spacing: -.6px; line-height: 1.3; overflow-wrap: anywhere; color: var(--portal-ink); }
.flux-portal .portal-signout { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 10px 16px; border: 1px solid var(--flux-primary); border-radius: var(--flux-radius-sm); background: var(--flux-primary-soft); color: var(--flux-primary); font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; flex-shrink: 0; }
.flux-portal .portal-signout:hover, .flux-portal .portal-signout:focus-visible { background: var(--flux-primary); color: var(--flux-surface); text-decoration: none; }
.flux-portal .portal-card, .flux-portal .portal-auth, .flux-portal .portal-header, .flux-portal .portal-nav { background: var(--flux-surface); border-color: var(--flux-border); box-shadow: var(--flux-shadow); }
.flux-portal .portal-card, .flux-portal .portal-auth { border-radius: var(--flux-radius); }
.flux-portal .portal-debt, .flux-portal .portal-ring>div { background: var(--flux-primary-soft); }
.flux-portal .portal-brand, .flux-portal .flux-ui-eyebrow, .flux-portal .portal-nav a:focus, .flux-portal .portal-nav a:hover { color: var(--flux-primary); }
.flux-portal .portal-ring { background: conic-gradient(var(--flux-primary) var(--portion), var(--flux-border) 0); }
.flux-portal .portal-track i { background: var(--flux-primary); }
.flux-portal .portal-track.green i { background: var(--flux-success); }
.flux-portal .portal-status { background: var(--flux-success-soft); color: var(--flux-success); }
.flux-portal .portal-button, .flux-portal .portal-auth input[type=submit] { background: var(--flux-primary)!important; }
.flux-portal .portal-muted { color: var(--flux-muted); }
.flux-portal h1, .flux-portal h2, .flux-portal h3 { font-family: Poppins, sans-serif; font-weight: 600; }
.flux-portal .portal-intro { border-left: 4px solid var(--flux-primary); padding-left: 20px; }
.flux-portal .portal-cost-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; position: relative; }
.flux-portal .portal-cost-before, .flux-portal .portal-cost-after { padding: 30px; border: 0; border-radius: 16px; position: relative; overflow: hidden; }
.flux-portal .portal-cost-before { background: var(--portal-ink); color: var(--flux-surface); }
.flux-portal .portal-cost-after { background: var(--portal-teal); color: var(--flux-surface); }
.flux-portal .portal-cost-before:after, .flux-portal .portal-cost-after:after { content: ''; position: absolute; width: 260px; height: 260px; border: 1px solid #ffffff18; border-radius: 50%; right: -100px; top: -120px; box-shadow: 0 0 0 30px #ffffff06, 0 0 0 60px #ffffff04; pointer-events: none; }
.cost-kicker { display: inline-block; border: 1px solid #ffffff40; border-radius: 40px; padding: 5px 11px; font-size: 11px; font-weight: 600; letter-spacing: .4px; }
.cost-label { font-size: 14px; margin: 24px 0 8px; color: #ffffffdb; }
.cost-number { display: block; font-size: clamp(32px,4vw,48px); line-height: 1.25; font-weight: 600; letter-spacing: -1.5px; }
.cost-line { height: 7px; background: #ffffff24; border-radius: 10px; overflow: hidden; margin-top: 25px; }
.cost-line i { display: block; height: 100%; border-radius: 10px; background: #a7bad7; }
.portal-cost-after .cost-line i { background: #78e8bb; }
.cost-footnote { font-size: 11px; color: #ffffffdb; margin-bottom: 0; }
.cost-transition { position: absolute; z-index: 1; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; display: grid; place-items: center; border: 4px solid var(--flux-surface-soft); border-radius: 50%; background: var(--flux-surface); color: var(--portal-ink); font-size: 23px; }
.portal-difference { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; background: var(--portal-mint); border: 1px solid #b7e4d4; border-radius: var(--flux-radius); padding: 20px 26px; margin-top: 16px; }
.portal-difference>div { display: flex; align-items: center; gap: 16px; }
.portal-difference>div>span { color: var(--portal-teal); font-size: 13px; }
.portal-difference strong { color: var(--portal-teal); font-size: 28px; font-weight: 600; letter-spacing: -1px; }
.difference-percent { background: var(--flux-surface); color: var(--portal-teal); border-radius: 30px; padding: 7px 12px; font-size: 11px; font-weight: 600; }
.portal-difference p { margin: 0; flex-basis: 100%; font-size: 11px; color: #345e51; }
.portal-difference.is-additional { background: var(--flux-warning-soft); border-color: var(--flux-warning); }
.portal-difference.is-additional strong, .portal-difference.is-additional>div>span, .portal-difference.is-additional p { color: var(--flux-warning); }
.portal-program-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; padding: 20px 0 4px; }
.portal-program-strip>div { display: flex; align-items: center; gap: 16px; background: var(--flux-surface); border: 1px solid var(--flux-border); border-top: 3px solid var(--flux-primary); border-radius: 12px; padding: 20px; box-shadow: var(--flux-shadow); min-height: 100px; }
.portal-program-strip>div:nth-child(2) { border-top-color: var(--flux-warning); }
.portal-program-strip>div:nth-child(3) { border-top-color: var(--portal-teal); }
.strip-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--flux-primary-soft); color: var(--flux-primary); display: grid; place-items: center; font-size: 20px; }
.portal-program-strip>div:nth-child(2) .strip-icon { background: var(--flux-warning-soft); color: var(--flux-warning); }
.portal-program-strip>div:nth-child(3) .strip-icon { background: var(--portal-mint); color: var(--portal-teal); }
.portal-program-strip div div>span { font-size: 11px; color: var(--flux-muted); display: block; }
.portal-program-strip strong { display: block; font-size: 20px; font-weight: 600; margin-top: 4px; color: var(--portal-ink); }
.flux-portal .portal-profile-grid.is-single-client { grid-template-columns: 1fr; }
.portal-profile-card { border-top: 3px solid var(--flux-primary)!important; }
.is-single-client .profile-detail-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.portal-bank-details { margin-top: 20px; }
.portal-bank-details .profile-detail-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.has-co-client .portal-profile-card:last-child { border-top-color: var(--portal-teal)!important; }
.has-co-client .portal-details { margin-top: 8px; }
.portal-profile-card .portal-details>div { grid-template-columns: 1fr 1.5fr; padding: 9px 0; }
.portal-profile-card .portal-details dt { font-size: 11px; }
.portal-profile-card .portal-details dd { font-size: 13px; }
.flux-portal .portal-creditor-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; align-items: start; }
.flux-portal .portal-creditor-card { border-top: 3px solid var(--flux-primary); border-radius: 12px; }
.flux-portal .portal-creditor-card:nth-child(3n+2) { border-top-color: var(--portal-teal); }
.flux-portal .portal-creditor-card:nth-child(3n+3) { border-top-color: var(--flux-warning); }
.creditor-monogram { width: 40px; height: 40px; display: grid; place-items: center; background: var(--flux-primary-soft); color: var(--flux-primary); border-radius: 12px; font-size: 12px; font-weight: 600; }
.portal-creditor-card:nth-child(3n+2) .creditor-monogram { background: var(--portal-mint); color: var(--portal-teal); }
.portal-creditor-card:nth-child(3n+3) .creditor-monogram { background: var(--flux-warning-soft); color: var(--flux-warning); }
.creditor-count { color: var(--flux-primary); background: var(--flux-primary-soft); font-size: 12px; border-radius: 30px; padding: 8px 13px; white-space: nowrap; }
.creditor-balance { padding-top: 17px; margin-top: 18px; border-top: 1px solid var(--flux-border); }
.creditor-balance>span { font-size: 10px; color: var(--flux-muted); display: block; margin-bottom: 5px; }
.flux-portal .creditor-disclosure>summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; cursor: pointer; border-radius: 0 0 6px 6px; }
.creditor-disclosure>summary::-webkit-details-marker { display: none; }
.flux-portal .creditor-balance-value { min-width: 0; margin: 0; }
.creditor-balance-value>span { display: block; margin-bottom: 5px; font-size: 10px; color: var(--flux-muted); }
.creditor-balance-value .creditor-amount { overflow-wrap: anywhere; }
.flux-portal .creditor-info-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex-shrink: 0; padding: 9px 10px; margin: 0; border: 1px solid var(--flux-border); border-radius: 8px; background: var(--flux-primary-soft); color: var(--flux-primary); font-size: 11px; font-weight: 600; }
.creditor-disclosure>summary:hover .creditor-info-toggle { border-color: var(--flux-primary); }
.creditor-disclosure>summary:focus-visible { outline: 3px solid var(--flux-primary); outline-offset: 4px; }
.creditor-disclosure .creditor-show-less,.creditor-disclosure[open] .creditor-show-more { display: none; }
.creditor-disclosure[open] .creditor-show-less { display: inline; }
.creditor-disclosure[open] .creditor-info-toggle svg { transform: rotate(180deg); }
.creditor-disclosure:not([open])>.creditor-key-details { display: none; }
.creditor-owner { display: inline-block; background: var(--flux-surface-soft); border-radius: 6px; padding: 4px 8px; font-size: 10px; color: var(--flux-muted); }
.portal-budget-summary .portal-card:nth-child(1) { border-left: 3px solid var(--flux-primary); }
.portal-budget-summary .portal-card:nth-child(2) { border-left: 3px solid var(--flux-warning); }
.portal-budget-summary .portal-card:nth-child(3) { border-left: 3px solid var(--portal-teal); }
@media(max-width:1000px) { .flux-portal .portal-creditor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) {
  .flux-portal .portal-brand .portal-site-logo { max-height: 42px; max-width: 190px; }
  .flux-portal .portal-brand .portal-site-name { font-size: 17px; }
  .flux-portal .portal-signout { padding: 9px 11px; min-height: 40px; }
  .flux-portal .portal-cost-comparison, .is-single-client .profile-detail-columns, .flux-portal .portal-creditor-grid { grid-template-columns: 1fr; }
  .flux-portal .portal-cost-before, .flux-portal .portal-cost-after { padding: 24px; }
  .cost-transition { transform: translate(-50%,-50%) rotate(90deg); }
  .portal-difference { padding: 18px; gap: 10px; }
  .portal-difference>div { flex-wrap: wrap; gap: 8px; }
  .portal-difference strong { font-size: 25px; }
  .portal-program-strip { grid-template-columns: 1fr; gap: 14px; }
  .is-single-client .profile-detail-columns { gap: 0; }
  .portal-bank-details .profile-detail-columns { grid-template-columns: 1fr; gap: 0; }
  .portal-details { margin-top: 8px; }
  .creditor-count { font-size: 10px; }
}
.flux-portal .portal-update-status { position: fixed; bottom: 12px; right: 16px; z-index: 30; margin: 0; max-width: calc(100% - 32px); font-size: 12px; color: var(--flux-muted); background: var(--flux-surface); border-radius: var(--flux-radius-sm); padding: 6px 10px; box-shadow: var(--flux-shadow); }
.flux-portal .portal-update-status:empty { display: none; }
.flux-portal #documents .portal-card { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.flux-portal #documents .portal-card :is(.card-label,h3) { margin: 0; }
.flux-portal #documents .portal-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 11px 18px; font: 600 14px/1.5 Poppins,sans-serif; text-decoration: none; text-align: center; }
.flux-portal #documents .portal-button:hover,.flux-portal #documents .portal-button:focus-visible { background: var(--flux-primary-dark)!important; text-decoration: none; }
.flux-portal #documents .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.flux-portal .portal-access-banner { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-bottom:28px; padding:24px; border:1px solid var(--flux-primary); border-radius:var(--flux-radius); background:var(--flux-primary-soft); }
.flux-portal .portal-access-banner .portal-button { text-decoration:none; color:var(--flux-surface); white-space:nowrap; }
.flux-portal .portal-access-banner > div { flex:1 1 320px; }
.flux-portal .portal-access-banner h2 { margin:5px 0 8px; font-size:21px; }
.flux-portal .portal-access-banner p { margin:0; }
.flux-portal .portal-account-actions { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin-bottom:20px; }
.flux-portal .portal-pin-input { font-size:28px; letter-spacing:.3em; text-align:center; }
.flux-portal .portal-password-error { color:var(--flux-danger,#b91c1c); }
.flux-portal .screen-reader-text { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
.flux-portal .portal-credit-factors { --factor-payment:#7862b6; --factor-owed:#157c69; --factor-history:#293d60; --factor-new:#b48bd3; --factor-mix:#68b6ad; }
.flux-portal .portal-credit-factors > .portal-card { padding:32px clamp(24px,4vw,56px); }
.flux-portal .portal-credit-factors h2 { margin:4px 0 6px; font-size:clamp(24px,2.5vw,32px); line-height:1.25; }
.flux-portal .portal-factor-subtitle { margin:0; color:var(--flux-muted); font-weight:600; }
.flux-portal .portal-factor-layout { display:grid; grid-template-columns:240px minmax(0,1fr); align-items:center; gap:clamp(32px,7vw,100px); margin:28px 0; }
.flux-portal .portal-factor-donut { width:220px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--factor-payment) 0% 35%,var(--factor-owed) 35% 65%,var(--factor-history) 65% 80%,var(--factor-new) 80% 90%,var(--factor-mix) 90% 100%); }
.flux-portal .portal-factor-donut span { width:64%; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:var(--flux-surface,#fff); color:var(--flux-text); font-size:24px; font-weight:700; }
.flux-portal .portal-factor-legend { margin:0; display:grid; gap:18px; }
.flux-portal .portal-factor-legend > div { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.flux-portal .portal-factor-legend dt { display:flex; align-items:center; gap:14px; font-size:16px; font-weight:600; }
.flux-portal .portal-factor-legend dt span { width:13px; height:13px; flex-shrink:0; border-radius:50%; background:var(--factor-color); }
.flux-portal .portal-factor-legend dd { margin:0; color:var(--factor-color); font-size:17px; font-weight:700; font-variant-numeric:tabular-nums; }
.flux-portal .portal-factor-payment { --factor-color:var(--factor-payment); }
.flux-portal .portal-factor-owed { --factor-color:var(--factor-owed); }
.flux-portal .portal-factor-history { --factor-color:var(--factor-history); }
.flux-portal .portal-factor-new { --factor-color:#8054a0; }
.flux-portal .portal-factor-new dt span { background:var(--factor-new); }
.flux-portal .portal-factor-mix { --factor-color:#287c73; }
.flux-portal .portal-factor-mix dt span { background:var(--factor-mix); }
.flux-portal .portal-factor-note { margin:0 0 8px; font-size:12px; line-height:1.7; color:var(--flux-muted); }
.flux-portal .portal-factor-source { font-size:12px; }
.flux-portal .portal-fico-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.flux-portal .portal-fico-grid > .portal-card { padding:28px; min-width:0; }
.flux-portal .portal-fico-grid h3 { font-size:22px; line-height:1.35; margin:8px 0 6px; }
.flux-portal .portal-fico-grid .portal-score-card { background:var(--flux-primary-soft); border-color:#dce2fa; display:flex; flex-direction:column; }
.flux-portal .portal-score-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:34px 0; }
.flux-portal .portal-score-pair > div:last-child { padding-left:24px; border-left:1px solid var(--flux-border); }
.flux-portal .portal-score-pair span,.flux-portal .portal-score-pair small { display:block; font-size:12px; color:var(--flux-muted); }
.flux-portal .portal-score-pair strong { display:block; font-size:clamp(40px,4vw,58px); line-height:1.3; color:#233858; font-variant-numeric:tabular-nums; }
.flux-portal .portal-score-pair > div:last-child strong { color:#107866; }
.flux-portal .portal-score-track { position:relative; margin:10px 8px 0; }
.flux-portal .portal-score-track input { display:block; width:100%; height:22px; margin:0; accent-color:#107866; cursor:pointer; }
.flux-portal .portal-score-track input:focus-visible { outline:2px solid var(--flux-primary); outline-offset:5px; }
.flux-portal .portal-score-marker { position:absolute; z-index:1; left:var(--score-position); top:4px; width:4px; height:14px; background:var(--flux-primary); pointer-events:none; }
.flux-portal .portal-score-scale { display:flex; justify-content:space-between; margin:5px 8px 12px; font-size:11px; color:var(--flux-muted); }
.flux-portal .portal-score-reset { background:none; border:0; padding:8px 0; color:var(--flux-primary); font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; align-self:flex-start; }
.flux-portal .portal-score-note { font-size:12px; line-height:1.7; color:var(--flux-muted); margin:20px 0 0; }
.flux-portal .portal-fico-grid .portal-factor-layout { grid-template-columns:180px minmax(0,1fr); gap:clamp(32px,6vw,80px); margin:25px 0; }
.flux-portal .portal-fico-grid .portal-factor-donut { width:180px; }
.flux-portal .portal-fico-grid .portal-factor-donut span { font-size:18px; }
.flux-portal .portal-fico-grid .portal-factor-legend { gap:16px; }
.flux-portal .portal-fico-grid .portal-factor-legend dt { font-size:12px; gap:8px; }
.flux-portal .portal-fico-grid .portal-factor-legend dd { font-size:13px; }
@media(max-width:1100px) {
 .flux-portal .portal-fico-grid { grid-template-columns:1fr; }
 .flux-portal .portal-fico-grid .portal-factor-layout { grid-template-columns:180px minmax(0,1fr); gap:32px; }
 .flux-portal .portal-fico-grid .portal-factor-donut { width:180px; }
}
@media(max-width:640px) {
 .flux-portal .portal-factor-layout { grid-template-columns:1fr; gap:28px; }
 .flux-portal .portal-factor-donut { width:180px; justify-self:center; }
 .flux-portal .portal-factor-legend dt { font-size:14px; }
 .flux-portal .portal-factor-legend dd { font-size:15px; }
 .flux-portal .portal-fico-grid .portal-factor-layout { grid-template-columns:1fr; gap:24px; }
 .flux-portal .portal-fico-grid > .portal-card { padding:24px; }
 .flux-portal .portal-score-pair { gap:14px; }
 .flux-portal .portal-score-pair > div:last-child { padding-left:14px; }
}
