/* The Bastion Vault & Shipping - authentication pages */
.bv-auth { background: var(--bv-parchment); }
.bv-auth-shell { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 100vh; }

.bv-auth-art { position: relative; overflow: hidden; color: var(--bv-parchment); isolation: isolate; }
.bv-auth-art > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; animation: bv-kenburns 30s ease-in-out infinite alternate; }
.bv-auth-art::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgba(0, 22, 47, .92), rgba(0, 33, 71, .78) 55%, rgba(0, 22, 47, .95)); }
.bv-auth-art::after { content: ''; position: absolute; inset: 22px; border: 1px solid rgba(192, 162, 97, .35); border-radius: 18px; pointer-events: none; }
.bv-auth-art-inner { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; padding: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.bv-auth-crest img { width: 150px; height: auto; filter: drop-shadow(0 16px 30px rgba(0, 0, 0, .5)); transition: transform .5s var(--bv-ease); }
.bv-auth-crest:hover img { transform: rotate(-4deg) scale(1.03); }
.bv-auth-quote { color: var(--bv-parchment); font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1.25; max-width: 520px; margin: .5rem 0 1.5rem; }
.bv-auth-points { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.bv-auth-points li { display: flex; align-items: center; gap: .75rem; color: #d3ccbc; }
.bv-auth-points .bv-icon { color: var(--bv-gold); --bv-icon-soft: rgba(245, 240, 230, .08); }
@keyframes bv-kenburns { from { transform: scale(1.02); } to { transform: scale(1.12) translate(-1.5%, -1%); } }

.bv-auth-panel { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: clamp(1.5rem, 1rem + 3vw, 4rem) 1rem; }
.bv-auth-card { width: 100%; max-width: 480px; background: var(--bv-white); border: 1px solid var(--bv-line); border-radius: var(--bv-radius-xl); padding: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); box-shadow: var(--bv-shadow-lg); position: relative; }
.bv-auth-card.wide { max-width: 640px; }
.bv-auth-card::before { content: ''; position: absolute; left: 2rem; right: 2rem; top: 0; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, transparent, var(--bv-gold), transparent); }
.bv-auth-title { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem); margin-bottom: .35rem; }
.bv-auth-sub { color: var(--bv-text-muted); margin-bottom: 1.75rem; }
.bv-auth-mobile-brand { display: none; align-items: center; gap: .6rem; text-decoration: none; margin-bottom: 1.25rem; font: 600 1.05rem/1 var(--bv-font-heading); color: var(--bv-navy); letter-spacing: .05em; }
.bv-auth-mobile-brand img { width: 56px; height: auto; }
.bv-auth-foot { margin-top: 1.5rem; font-size: .8rem; color: var(--bv-text-muted); text-align: center; }

.bv-input-icon { position: relative; }
.bv-input-icon > .bv-icon, .bv-input-icon > svg.lucide { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: var(--bv-gold-dark); pointer-events: none; }
.bv-input-icon > .form-control { padding-left: 2.7rem; }
.bv-input-icon > .bv-eye { position: absolute; right: .35rem; top: 50%; transform: translateY(-50%); border: 0; background: transparent; width: 38px; height: 38px; border-radius: 50%; color: var(--bv-text-muted); display: grid; place-items: center; }
.bv-input-icon > .bv-eye:hover { background: var(--bv-parchment); color: var(--bv-navy); }
.bv-input-icon.has-eye > .form-control { padding-right: 2.9rem; }

.bv-strength { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: .5rem; }
.bv-strength span { height: 4px; border-radius: 2px; background: var(--bv-line); transition: background .3s; }
.bv-strength[data-score="1"] span:nth-child(-n+1) { background: var(--bv-danger); }
.bv-strength[data-score="2"] span:nth-child(-n+2) { background: var(--bv-warning); }
.bv-strength[data-score="3"] span:nth-child(-n+3) { background: var(--bv-gold); }
.bv-strength[data-score="4"] span { background: var(--bv-success); }

.bv-divider { display: flex; align-items: center; gap: .75rem; color: var(--bv-text-muted); font-size: .8rem; margin: 1.5rem 0; }
.bv-divider::before, .bv-divider::after { content: ''; flex: 1; height: 1px; background: var(--bv-line); }
.bv-code-input { letter-spacing: .5em; text-align: center; font: 600 1.6rem/1 var(--bv-font-heading); }
.alert .bv-icon { width: 20px; height: 20px; flex: none; margin-top: 1px; }

@media (max-width: 991.98px) {
  .bv-auth-shell { grid-template-columns: 1fr; }
  .bv-auth-art { display: none; }
  .bv-auth-mobile-brand { display: inline-flex; }
  .bv-auth-panel { justify-content: flex-start; min-height: 100vh; background: radial-gradient(circle at top, rgba(192, 162, 97, .18), transparent 60%); }
}
