/* ===== login / register pages ===== */

.acc-bleed{
    position:relative;left:50%;right:50%;width:100vw;margin-left:-50vw;margin-right:-50vw;
    background:#f6f7fb;
}

.acc-split{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    min-height:640px;
}

/* ---------- Branding panel ---------- */
.acc-brand{
    position:relative;
    display:flex;flex-direction:column;justify-content:center;
    padding:56px 64px;
    background:linear-gradient(155deg, var(--brand-navy-dark) 0%, var(--brand-navy) 55%, var(--brand-navy-light) 100%);
    color:#fff;
    overflow:hidden;
}
.acc-brand::before{
    content:"";position:absolute;inset:0;
    background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0);
    background-size:24px 24px;
    opacity:.6;
}
.acc-brand-deco{
    position:absolute;right:-60px;bottom:-60px;width:340px;height:340px;
    opacity:.10;pointer-events:none;
}
.acc-brand-deco svg{width:100%;height:100%;stroke:#fff;fill:none;stroke-width:1;transform:rotate(35deg)}
.acc-brand-inner{position:relative;z-index:1;max-width:420px}
.acc-brand-logo{
    display:inline-flex;align-items:center;gap:9px;margin-bottom:44px;
    font-family:"Playfair Display",Georgia,serif;font-size:22px;font-weight:600;color:#fff;
}
.acc-brand-logo .icon{width:22px;height:22px;color:var(--brand-gold-bright)}
.acc-brand-logo .acc-logo-accent{color:var(--brand-gold-bright)}
.acc-brand-title{
    font-family:"Playfair Display",Georgia,serif;font-weight:600;
    font-size:34px;line-height:1.28;margin-bottom:16px;letter-spacing:.2px;
}
.acc-brand-sub{font-size:15px;line-height:1.6;color:rgba(255,255,255,.72);margin-bottom:34px}
.acc-brand-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.acc-brand-points li{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:rgba(255,255,255,.88)}
.acc-brand-points .icon{width:19px;height:19px;flex:none;color:var(--brand-gold-bright);margin-top:1px}
.acc-brand-quote{
    margin-top:46px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);
    font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;
}

/* ---------- Form panel ---------- */
.acc-formside{
    display:flex;align-items:center;justify-content:center;
    padding:56px 24px;background:#f6f7fb;
}
.acc-card{
    width:100%;max-width:400px;
    background:#fff;border:1px solid #e4e7ee;border-radius:16px;
    padding:36px 34px;box-shadow:0 18px 44px rgba(11,31,58,.10);
    animation:acc-rise .45s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes acc-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.acc-title{font-family:"Playfair Display",Georgia,serif;font-size:25px;font-weight:600;color:var(--brand-navy);margin-bottom:5px}
.acc-sub{font-size:13.5px;color:#6b7385;margin-bottom:26px}

.acc-error{
    display:flex;align-items:flex-start;gap:9px;
    background:#fdeceb;border:1px solid #f3b9b4;color:#a33;border-radius:9px;
    padding:11px 13px;font-size:13px;margin-bottom:18px;
    animation:acc-shake .4s ease;
}
.acc-error .icon{width:16px;height:16px;flex:none;margin-top:1px}
@keyframes acc-shake{
    10%,90%{transform:translateX(-1px)}
    20%,80%{transform:translateX(2px)}
    30%,50%,70%{transform:translateX(-4px)}
    40%,60%{transform:translateX(4px)}
}

.acc-field{margin-bottom:16px}
.acc-field label{display:block;font-size:12.5px;font-weight:600;color:var(--brand-navy);margin-bottom:6px}

.acc-input-wrap{position:relative;display:flex;align-items:center}
.acc-input-icon{
    position:absolute;left:12px;display:flex;color:#9aa1b3;pointer-events:none;transition:color .15s ease;
}
.acc-input-icon .icon{width:17px;height:17px}
.acc-input-wrap input{
    width:100%;padding:11px 12px 11px 38px;border:1px solid #d7dbe4;border-radius:9px;
    font-size:14px;color:var(--brand-navy);background:#fff;transition:.15s ease;
}
.acc-input-wrap input::placeholder{color:#b3b8c6}
.acc-input-wrap input:focus{outline:none;border-color:var(--brand-gold);box-shadow:0 0 0 3px var(--brand-gold-soft)}
.acc-input-wrap input:focus ~ .acc-input-icon,
.acc-input-wrap:focus-within .acc-input-icon{color:var(--brand-gold)}
.acc-input-wrap input.input-validation-error{border-color:#d9534f}
.acc-input-wrap input.input-validation-error:focus{box-shadow:0 0 0 3px rgba(217,83,79,.14)}
.acc-input-wrap input.valid:not([type=checkbox]){border-color:#3f9f6b}

.acc-input-wrap input[type=password],
.acc-input-wrap input[data-pw-field]{padding-right:40px}
.acc-toggle-pw{
    position:absolute;right:8px;display:flex;align-items:center;justify-content:center;
    width:28px;height:28px;border-radius:7px;color:#9aa1b3;background:transparent;transition:.15s ease;
}
.acc-toggle-pw:hover{color:var(--brand-navy);background:#f1f2f6}
.acc-toggle-pw .icon{width:17px;height:17px}
.acc-toggle-pw span[hidden]{display:none}

.acc-strength{margin-top:9px}
.acc-strength-bar{height:4px;border-radius:3px;background:#e7e9ef;overflow:hidden}
.acc-strength-bar span{display:block;height:100%;width:0%;border-radius:3px;transition:width .2s ease,background-color .2s ease}
.acc-strength-label{font-size:11.5px;font-weight:600;margin-top:5px;transition:color .15s ease}

.acc-terms{display:flex;align-items:flex-start;gap:9px;margin:6px 0 6px}
.acc-terms input[type=checkbox]{margin-top:3px;width:15px;height:15px;flex:none;accent-color:var(--brand-navy)}
.acc-terms label{font-size:12.5px;color:#6b7385;line-height:1.5;font-weight:400}
.acc-terms a{color:var(--brand-gold);font-weight:600}
.acc-terms a:hover{text-decoration:underline}
.acc-terms.acc-terms-error label{color:#c0392b}
.acc-terms.acc-terms-error{animation:acc-shake .4s ease}
#termsHint{margin-bottom:14px}

.acc-submit{
    width:100%;padding:12px;border-radius:9px;background:var(--brand-navy);color:#fff;
    font-weight:700;font-size:14.5px;transition:.15s ease;margin-top:6px;
    display:flex;align-items:center;justify-content:center;gap:9px;
}
.acc-submit:hover{background:var(--brand-navy-dark)}
.acc-submit:disabled{opacity:.75;cursor:default}
.acc-submit .acc-spinner{display:none;width:15px;height:15px;border-radius:50%;
    border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:acc-spin .7s linear infinite}
.acc-submit.is-loading .acc-spinner{display:inline-block}
.acc-submit.is-loading .acc-submit-text::after{content:"\2026"}
@keyframes acc-spin{to{transform:rotate(360deg)}}

.acc-switch{text-align:center;font-size:13px;color:#6b7385;margin-top:22px}
.acc-switch a{color:var(--brand-gold);font-weight:600}
.acc-switch a:hover{text-decoration:underline}

.text-danger{color:#c0392b;font-size:12px;display:block;margin-top:5px}
.field-validation-valid{display:none}

/* ---------- Profile page ---------- */
.prof-page{max-width:900px;margin:40px auto 64px;padding:0 16px}
.prof-head{margin-bottom:24px}
.prof-head h1{font-family:"Playfair Display",Georgia,serif;font-size:26px;color:var(--brand-navy);margin-bottom:4px}
.prof-head p{color:#6b7385;font-size:14px;margin:0}
.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.prof-grid .acc-card{max-width:none;animation:none}
.prof-detail-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef1f6;font-size:14px}
.prof-detail-row:last-of-type{border-bottom:none}
.prof-detail-row span:first-child{color:#6b7385}
.prof-detail-row span:last-child{color:var(--brand-navy);font-weight:600;text-align:right}
.prof-success{
    display:flex;align-items:center;gap:9px;
    background:#e9f7ee;border:1px solid #b9e4c6;color:#2e7d46;border-radius:9px;
    padding:11px 13px;font-size:13px;margin-bottom:18px;
}
.prof-success .icon{width:16px;height:16px;flex:none}
.prof-links{display:flex;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid #eef1f6}
.prof-links a{font-size:13px;font-weight:600;color:var(--brand-gold);display:inline-flex;align-items:center;gap:5px}
.prof-links a:hover{text-decoration:underline}
.prof-links .icon{width:15px;height:15px}
@media (max-width:800px){.prof-grid{grid-template-columns:1fr}}

/* ---------- Responsive ---------- */
@media (max-width:900px){
    .acc-split{grid-template-columns:1fr;min-height:0}
    .acc-brand{padding:38px 28px 46px}
    .acc-brand-title{font-size:26px}
    .acc-brand-points{display:none}
    .acc-brand-quote{display:none}
    .acc-brand-deco{width:220px;height:220px}
    .acc-formside{padding:34px 20px 56px}
}
@media (max-width:420px){
    .acc-card{padding:28px 22px}
}
