/* Finance360 application form – small layer on top of Bootstrap 5.3 */
:root {
  --f360: #0a6c93;
  --f360-dark: #07506d;
  --bs-primary: var(--f360);
  --bs-primary-rgb: 10, 108, 147;
  --bs-link-color: var(--f360);
  --bs-link-hover-color: var(--f360-dark);
}
body { background: #f2f5f8; }

.btn-primary {
  --bs-btn-bg: var(--f360); --bs-btn-border-color: var(--f360);
  --bs-btn-hover-bg: var(--f360-dark); --bs-btn-hover-border-color: var(--f360-dark);
  --bs-btn-active-bg: var(--f360-dark); --bs-btn-active-border-color: var(--f360-dark);
  --bs-btn-disabled-bg: var(--f360); --bs-btn-disabled-border-color: var(--f360);
}
.btn-outline-primary {
  --bs-btn-color: var(--f360); --bs-btn-border-color: var(--f360);
  --bs-btn-hover-bg: var(--f360); --bs-btn-hover-border-color: var(--f360);
  --bs-btn-active-bg: var(--f360-dark); --bs-btn-active-border-color: var(--f360-dark);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #5aa6c4; box-shadow: 0 0 0 .25rem rgba(10, 108, 147, .18);
}
.form-check-input:checked { background-color: var(--f360); border-color: var(--f360); }

.f360-hero { background: linear-gradient(135deg, #07506d 0%, #0a6c93 55%, #2a9bc6 100%); padding: 2.25rem 0 5.5rem; }
.f360-brand { letter-spacing: .18em; opacity: .8; margin-bottom: .35rem; }
.f360-main { margin-top: -3.5rem; max-width: 880px; padding-bottom: 1rem; }

.f360-card { border: 0; border-radius: 1rem; box-shadow: 0 .25rem 1.25rem rgba(16, 42, 67, .08); }
.f360-card .form-floating > label { color: #5b6b7a; }
.f360-card .form-floating > label .text-danger { margin-left: .1rem; }
.f360-grp-title { letter-spacing: .06em; font-size: .75rem; }
.f360-group + .f360-group { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px dashed #d8e0e7; }

/* progress + stepper */
.f360-progress { height: .4rem; background: #dbe4eb; }
.f360-progress .progress-bar { background: var(--f360); transition: width .35s ease; }
.f360-steps { display: flex; justify-content: space-between; margin-top: .75rem; gap: .25rem; }
.f360-steps li { flex: 1 1 0; text-align: center; }
.f360-stepbtn { all: unset; cursor: default; display: inline-flex; flex-direction: column; align-items: center; gap: .3rem; color: #7b8a98; font-size: .8rem; }
.f360-num { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; font-weight: 600; background: #e5ebf0; color: #5b6b7a; transition: all .2s; }
li.is-current .f360-num { background: var(--f360); color: #fff; box-shadow: 0 0 0 .3rem rgba(10, 108, 147, .15); }
li.is-current .f360-lbl { color: #1b2a38; font-weight: 600; }
li.is-done .f360-num { background: #198754; color: #fff; }
li.is-done .f360-stepbtn { cursor: pointer; }
li.is-done .f360-num::before { content: "✓"; }
li.is-done .f360-num { font-size: 0; }
li.is-done .f360-num::before { font-size: .95rem; }
@media (max-width: 575.98px) { .f360-lbl { display: none; } li.is-current .f360-lbl { display: block; } }

/* step transitions */
.f360-step:not([hidden]) { animation: f360in .28s ease; }
@keyframes f360in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .f360-step:not([hidden]) { animation: none; } .f360-progress .progress-bar { transition: none; } }

.f360-actions { display: flex; gap: .75rem; align-items: center; margin: 1.5rem 0 2rem; }
@media (max-width: 575.98px) {
  .f360-actions { position: sticky; bottom: 0; z-index: 5; margin: 0 -12px; padding: .75rem 12px; background: rgba(242, 245, 248, .96); backdrop-filter: blur(6px); border-top: 1px solid #dbe4eb; }
  .f360-actions .btn { flex: 1; }
}

.f360-terms { max-height: 260px; overflow-y: auto; background: #fafbfc; font-size: .875rem; }
.f360-terms p, .f360-terms li { margin-bottom: .6rem; }

.f360-tick { width: 4rem; height: 4rem; border-radius: 50%; background: #198754; color: #fff; display: grid; place-items: center; font-size: 2rem; }
.f360-debug pre { max-height: 420px; overflow: auto; background: #101820; color: #cfe3f1; padding: 1rem; border-radius: .5rem; white-space: pre-wrap; word-break: break-word; }
.f360-lookup-note { margin-top: .25rem; }
.pac-container { z-index: 2000; border-radius: .5rem; font-family: inherit; }
.input-group > .form-floating:not(:first-child) > .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group > .form-floating:not(:last-child) > .form-control { border-top-right-radius: 0; border-bottom-right-radius: 0; }
