/* North Axis Loan Application — all selectors namespaced .nac- to avoid theme collisions */

.nac-wrap{--nac-navy:#062a45;--nac-blue:#0f5a89;--nac-green:#1aac7a;--nac-ink:#0f2438;--nac-muted:#6b7b88;--nac-line:#dfe6ec;--nac-bg:#f4f7f9;--nac-field:#fff;--nac-r:2px;
  font-family:'Rubik',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--nac-ink);
  -webkit-font-smoothing:antialiased;max-width:860px;margin:0 auto;padding:0 12px;box-sizing:border-box}
.nac-wrap *,.nac-wrap *:before,.nac-wrap *:after{box-sizing:border-box}

.nac-shell{background:#fff;border:1px solid var(--nac-line);border-radius:var(--nac-r)}

/* Header */
.nac-head{background:var(--nac-navy);color:#fff;position:relative}
.nac-head-bar{height:4px;background:var(--nac-green);width:78px;position:absolute;bottom:0;left:0}
.nac-head-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:26px 28px 22px;flex-wrap:wrap}
.nac-kicker{display:block;font-size:11px;letter-spacing:1.4px;font-weight:600;color:#8fb4cf;text-transform:uppercase;margin-bottom:8px}
.nac-title{margin:0;font-size:26px;line-height:1.15;font-weight:700;color:#fff}
.nac-sub{margin:8px 0 0;font-size:13.5px;color:#c2d5e2;line-height:1.5}
.nac-secure{font-size:11.5px;color:#8fb4cf;white-space:nowrap}

/* Progress */
.nac-progress{display:flex;align-items:center;gap:14px;padding:14px 28px;border-bottom:1px solid var(--nac-line);background:var(--nac-bg)}
.nac-progress-track{flex:1;height:5px;background:#dbe4ea;border-radius:0;overflow:hidden}
.nac-progress-fill{height:100%;width:0;background:var(--nac-green);transition:width .3s ease}
.nac-progress-text{font-size:12px;font-weight:600;color:var(--nac-blue);white-space:nowrap}

/* Steps */
.nac-form{padding:26px 28px 0}
.nac-step{display:none}
.nac-step.is-active{display:block;animation:nac-in .22s ease}
@keyframes nac-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.nac-step-head{margin-bottom:20px}
.nac-step-kicker{display:block;font-size:10.5px;letter-spacing:1.3px;font-weight:600;color:var(--nac-blue);text-transform:uppercase;margin-bottom:6px}
.nac-step-title{margin:0;font-size:21px;font-weight:600;line-height:1.25}
.nac-step-intro{margin:8px 0 0;font-size:14px;color:var(--nac-muted);line-height:1.55}

/* Grid */
.nac-grid{display:flex;flex-wrap:wrap;margin:0 -8px}
.nac-field{padding:0 8px 18px;width:100%}
.nac-w-half{width:50%}
.nac-w-quarter{width:25%}
.nac-field[hidden]{display:none}

.nac-label{display:block;font-size:12.5px;font-weight:500;color:#3d5060;margin-bottom:6px}
.nac-opt{color:#93a1ab;font-weight:400;font-size:11.5px}
.nac-req{color:#b3261e}
.nac-help{display:block;font-size:11.5px;color:var(--nac-muted);margin-top:5px;line-height:1.4}

.nac-input,.nac-wrap select.nac-input,.nac-wrap textarea.nac-input{
  width:100%;font-family:inherit;font-size:15px;color:var(--nac-ink);background:var(--nac-field);
  border:1px solid #c7d2da;border-bottom-width:2px;border-radius:var(--nac-r);padding:11px 12px;line-height:1.35;
  transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;appearance:none;min-height:44px}
.nac-wrap select.nac-input{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7b88' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.nac-input:focus{outline:none;border-color:var(--nac-blue);box-shadow:0 0 0 3px rgba(15,90,137,.13)}
.nac-wrap textarea.nac-input{resize:vertical;min-height:84px}
.nac-field.has-error .nac-input{border-color:#b3261e}
.nac-error{display:none;font-size:12px;color:#b3261e;margin-top:5px}
.nac-field.has-error .nac-error{display:block}

.nac-prefixed,.nac-suffixed{position:relative}
.nac-prefix,.nac-suffix{position:absolute;top:0;height:100%;display:flex;align-items:center;font-size:15px;color:var(--nac-muted);pointer-events:none}
.nac-prefix{left:12px}
.nac-prefixed .nac-input{padding-left:26px}
.nac-suffix{right:12px}
.nac-suffixed .nac-input{padding-right:28px}

/* Radios */
.nac-choices{display:flex;gap:10px;flex-wrap:wrap}
.nac-choice{position:relative;display:flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid #c7d2da;border-radius:var(--nac-r);
  cursor:pointer;font-size:14.5px;background:#fff;min-height:44px;transition:border-color .15s,background .15s}
.nac-choice input{position:absolute;opacity:0;width:0;height:0}
.nac-choice-dot{width:16px;height:16px;border:1.5px solid #a3b1bb;border-radius:50%;flex:0 0 auto;position:relative}
.nac-choice input:checked~.nac-choice-dot{border-color:var(--nac-blue);border-width:5px}
.nac-choice:has(input:checked){border-color:var(--nac-blue);background:#f0f6fa}
.nac-choice.is-checked{border-color:var(--nac-blue);background:#f0f6fa}

/* Big cards */
.nac-cards{display:flex;flex-direction:column;gap:10px}
.nac-wrap .nac-card,
.nac-wrap button.nac-card{width:100%;text-align:left;font-family:inherit;font-size:16px;font-weight:500;
  color:var(--nac-ink)!important;background-color:#fff!important;background-image:none!important;
  border:1px solid #c7d2da!important;border-radius:var(--nac-r);padding:18px 18px;cursor:pointer;min-height:56px;
  box-shadow:none!important;text-transform:none;letter-spacing:normal;-webkit-appearance:none;appearance:none;
  transition:border-color .15s,background-color .15s}
.nac-wrap .nac-card:hover,
.nac-wrap .nac-card:focus{border-color:var(--nac-blue)!important;background-color:#fff!important;color:var(--nac-ink)!important}
.nac-wrap .nac-card.is-selected{border-color:var(--nac-blue)!important;border-width:2px!important;background-color:#f0f6fa!important;padding:17px}

/* Legal block */
.nac-legal{max-height:230px;overflow-y:auto;border:1px solid var(--nac-line);background:var(--nac-bg);
  padding:18px 20px;margin-bottom:22px;font-size:13px;line-height:1.6;color:#26384a;border-radius:var(--nac-r)}
.nac-legal p{margin:0 0 12px}
.nac-legal p:last-child{margin-bottom:0}
.nac-legal-note{color:var(--nac-muted);font-size:12.5px;border-top:1px solid var(--nac-line);padding-top:12px}

/* Consent */
.nac-consent{display:flex;gap:11px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:1.5}
.nac-consent input{position:absolute;opacity:0;width:0;height:0}
.nac-consent-box{flex:0 0 auto;width:20px;height:20px;border:1.5px solid #a3b1bb;border-radius:var(--nac-r);margin-top:1px;position:relative;background:#fff}
.nac-consent input:checked~.nac-consent-box{background:var(--nac-blue);border-color:var(--nac-blue)}
.nac-consent input:checked~.nac-consent-box:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
  border:solid #fff;border-width:0 2.2px 2.2px 0;transform:rotate(43deg)}
.nac-field.has-error .nac-consent-box{border-color:#b3261e}

/* Signature */
.nac-sig{position:relative;border:1px solid #c7d2da;border-bottom-width:2px;border-radius:var(--nac-r);background:#fff;height:170px;overflow:hidden;touch-action:none}
.nac-sig.has-error,.nac-field.has-error .nac-sig{border-color:#b3261e}
.nac-sig-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}
.nac-sig-baseline{position:absolute;left:26px;right:26px;bottom:44px;border-bottom:1px solid #c7d2da;pointer-events:none}
.nac-sig-hint{position:absolute;left:26px;bottom:22px;font-size:12px;color:#93a1ab;pointer-events:none;transition:opacity .2s}
.nac-sig.is-signed .nac-sig-hint{opacity:0}
.nac-wrap .nac-sig-clear,
.nac-wrap button.nac-sig-clear{position:absolute;top:10px;right:10px;font-family:inherit;font-size:12px;font-weight:500;
  color:var(--nac-blue)!important;background-color:#fff!important;background-image:none!important;box-shadow:none!important;
  border:1px solid #c7d2da!important;border-radius:var(--nac-r);padding:6px 12px;cursor:pointer;min-height:0;
  text-transform:none;letter-spacing:normal;-webkit-appearance:none;appearance:none}
.nac-wrap .nac-sig-clear:hover{border-color:var(--nac-blue)!important;background-color:#fff!important;color:var(--nac-blue)!important}

/* Nav */
.nac-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0 24px;margin-top:6px;border-top:1px solid var(--nac-line)}
.nac-nav-right{display:flex;gap:10px;align-items:center}
/* Buttons are locked down against theme button styling — themes commonly repaint
   bare <button> elements, so colour properties are declared explicitly on every state. */
.nac-wrap .nac-btn,
.nac-wrap button.nac-btn,
.nac-wrap a.nac-btn{font-family:inherit;font-size:15px;font-weight:500;border-radius:var(--nac-r);padding:13px 26px;cursor:pointer;
  border:1px solid transparent;min-height:48px;transition:background-color .15s,border-color .15s,color .15s;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;
  background-image:none!important;box-shadow:none!important;text-transform:none;letter-spacing:normal;
  -webkit-appearance:none;appearance:none;line-height:1.2}

.nac-wrap .nac-btn-primary,
.nac-wrap button.nac-btn-primary,
.nac-wrap a.nac-btn-primary,
.nac-wrap .nac-btn-primary:link,
.nac-wrap .nac-btn-primary:visited{background-color:var(--nac-blue)!important;color:#fff!important;border-color:var(--nac-blue)!important;font-weight:600}
.nac-wrap .nac-btn-primary:hover,
.nac-wrap .nac-btn-primary:focus,
.nac-wrap .nac-btn-primary:active,
.nac-wrap button.nac-btn-primary:hover,
.nac-wrap a.nac-btn-primary:hover{background-color:#0c4a73!important;color:#fff!important;border-color:#0c4a73!important;text-decoration:none}
.nac-wrap .nac-btn-primary:focus-visible{outline:3px solid rgba(15,90,137,.35);outline-offset:2px}
.nac-wrap .nac-btn-primary[disabled]{opacity:.55;cursor:default}

.nac-wrap .nac-btn-back,
.nac-wrap button.nac-btn-back{background-color:transparent!important;color:var(--nac-muted)!important;border-color:transparent!important;padding:13px 8px}
.nac-wrap .nac-btn-back:hover,
.nac-wrap .nac-btn-back:focus,
.nac-wrap .nac-btn-back:active{background-color:transparent!important;color:var(--nac-ink)!important;border-color:transparent!important}
.nac-wrap .nac-btn-back[hidden]{visibility:hidden}

.nac-wrap .nac-btn-ghost,
.nac-wrap button.nac-btn-ghost{background-color:#fff!important;color:var(--nac-blue)!important;border-color:#c7d2da!important}
.nac-wrap .nac-btn-ghost:hover,
.nac-wrap .nac-btn-ghost:focus,
.nac-wrap .nac-btn-ghost:active{background-color:#f4f7f9!important;color:var(--nac-blue)!important;border-color:var(--nac-blue)!important}

.nac-wrap .nac-btn.is-busy{opacity:.6;pointer-events:none}

.nac-alert{background:#fdecea;border:1px solid #f1c4be;color:#8c1d18;font-size:13.5px;line-height:1.5;padding:12px 14px;border-radius:var(--nac-r);margin-bottom:16px}

/* Done */
.nac-done{text-align:center;padding:14px 0 8px}
.nac-done-mark{color:var(--nac-green);margin-bottom:16px}
.nac-done-title{font-size:24px}
.nac-done-body{max-width:460px;margin:10px auto 0}
.nac-ref{font-size:13px;color:var(--nac-muted);margin:14px 0 20px;letter-spacing:.4px}
.nac-download{margin-bottom:26px}
.nac-copy{max-width:460px;margin:0 auto;text-align:left;border-top:1px solid var(--nac-line);padding-top:22px}
.nac-copy-row{display:flex;gap:10px}
.nac-copy-row .nac-input{flex:1}
.nac-copy-msg{display:block;font-size:13px;margin-top:10px;color:var(--nac-green);font-weight:500}
.nac-copy-msg.is-error{color:#b3261e}

.nac-foot{font-size:11.5px;color:var(--nac-muted);line-height:1.6;padding:0 28px 22px;margin:0}
.nac-foot a{color:var(--nac-blue)}

@media (max-width:700px){
  .nac-wrap{padding:0}
  .nac-shell{border-left:none;border-right:none}
  .nac-head-inner{padding:22px 18px 20px}
  .nac-title{font-size:22px}
  .nac-progress,.nac-form,.nac-foot{padding-left:18px;padding-right:18px}
  .nac-w-half,.nac-w-quarter{width:100%}
  .nac-nav{padding-bottom:20px}
  .nac-btn{flex:0 0 auto}
  .nac-btn-next{flex:1}
  .nac-copy-row{flex-direction:column}
}

/* ---------------------------------------------------------- schedule tables */
/* Repeating schedules (marketable securities, loans, business interests).
   Stacked row cards, not a literal table — a 5-column grid is unusable on a phone. */
.nac-table{padding-bottom:4px}
.nac-trow{position:relative;border:1px solid var(--nac-line);border-radius:var(--nac-r);
  padding:16px 16px 2px 40px;margin-bottom:12px;background:#fcfdfe}
.nac-trow-num{position:absolute;left:12px;top:16px;width:20px;height:20px;line-height:20px;text-align:center;
  font-size:11.5px;font-weight:600;color:#fff;background:var(--nac-blue);border-radius:var(--nac-r)}
.nac-tgrid{display:flex;flex-wrap:wrap;margin:0 -8px}
.nac-tgrid .nac-field{width:33.333%;padding-bottom:14px}
.nac-table-note{margin:2px 0 0}

/* Computed / read-only totals */
.nac-wrap input.nac-computed{background-color:#eef3f7!important;color:var(--nac-ink)!important;
  border-color:#cdd8e0!important;font-weight:600;cursor:default}
.nac-wrap input.nac-computed:focus{box-shadow:none;border-color:#cdd8e0!important}
.nac-emphasis .nac-label{color:var(--nac-blue);font-weight:600}
.nac-wrap .nac-emphasis input.nac-computed{background-color:#e4eef6!important;border-color:var(--nac-blue)!important;font-size:16px}

@media (max-width:900px){
  .nac-tgrid .nac-field{width:50%}
}
@media (max-width:700px){
  .nac-trow{padding:14px 12px 2px 12px}
  .nac-trow-num{position:static;display:inline-block;margin-bottom:10px}
  .nac-tgrid .nac-field{width:100%}
}

/* ------------------------------------------------------- address autocomplete */
.nac-ac-wrap{position:relative}
.nac-ac-list{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:40;margin:0;padding:4px 0;
  list-style:none;background:#fff;border:1px solid #c7d2da;border-radius:var(--nac-r);
  box-shadow:0 6px 20px rgba(6,42,69,.13);max-height:250px;overflow-y:auto}
.nac-wrap .nac-ac-item{padding:11px 14px;font-size:14px;line-height:1.35;color:var(--nac-ink);cursor:pointer;
  list-style:none;margin:0;border:none;background:transparent}
.nac-wrap .nac-ac-item:hover,.nac-wrap .nac-ac-item.is-active{background:#eef4f9;color:var(--nac-ink)}
.nac-ac-status{display:block;font-size:11.5px;color:var(--nac-muted);margin-top:5px;min-height:1px}
