.profile-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1.25rem}
.profile-card,.security-summary,.wizard,.policy-panel,.recovery-panel{border:1px solid rgba(21,49,43,.09);box-shadow:0 14px 42px rgba(16,48,42,.07)}
.profile-identity{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid #e8efed}
.profile-identity h2,.profile-identity p{margin:.15rem 0}
.profile-avatar{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#153d35,#2c7464);color:#fff;font-size:1.7rem;font-weight:800}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-form{display:grid;gap:1rem}
.profile-form small,.security-key small,.wizard-steps span,.policy-option span,.recovery-state span{display:block;color:#64756f;margin-top:.3rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.security-summary{align-self:start}
.security-score{display:grid;gap:.25rem;padding:1rem;margin:1rem 0;border-radius:16px;background:#edf8f4}
.security-score strong{font-size:1.25rem;color:#12614f}
.security-summary .button{width:100%;text-align:center}
.security-summary dl{display:grid;grid-template-columns:1fr auto;gap:.7rem;margin:1.3rem 0 0}
.security-summary dt{color:#64756f}.security-summary dd{margin:0;font-weight:700}
.wizard-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0 1.25rem}
.wizard-steps article{display:flex;gap:.75rem;padding:1rem;border:1px solid #dfe8e5;border-radius:16px;background:#fafcfb}
.wizard-steps article>b{flex:0 0 30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e9efed;color:#48615b}
.wizard-steps article.current{border-color:#2d806c;background:#f0faf7}.wizard-steps article.current>b{background:#186b59;color:#fff}
.wizard-steps article.done>b{background:#d9f3e9;color:#12614f}.wizard-steps article.done>b:after{content:"✓";font-size:0}.wizard-steps article strong{display:block}
.register-passkey{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap}
.register-passkey label{flex:1 1 250px}.register-passkey .button{margin-bottom:0}
.key-list{display:grid;gap:.75rem}
.security-key{display:grid;grid-template-columns:auto minmax(180px,1fr) auto minmax(300px,auto);align-items:center;gap:1rem;padding:1rem;border:1px solid #e2eae8;border-radius:16px}
.key-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#e8f5f1;color:#196d5b}
.key-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.key-actions input{min-width:150px}
.danger-link{border:0;background:transparent;color:#ad3030;font-weight:700;cursor:pointer;padding:.6rem}
.policy-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.policy-option{display:flex;gap:.7rem;padding:1rem;border:1px solid #dfe8e5;border-radius:16px;cursor:pointer}
.policy-option:has(input:checked){border-color:#287963;background:#f0faf7;box-shadow:0 0 0 2px rgba(40,121,99,.1)}
.policy-option input{width:auto;margin-top:.2rem}.policy-options>.button{grid-column:1/-1;justify-self:start}
.recovery-state{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-radius:14px;background:#f4f7f6}
.recovery-codes pre{columns:2;padding:1rem;border-radius:14px;background:#102a25;color:#e9fff8;font-size:1rem;line-height:1.8}
.auth-divider{display:flex;align-items:center;gap:1rem;margin:1rem 0;color:#73837f}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#dce5e2}
.passkey-button{width:100%;background:#173f37}.recovery-login{margin-top:1rem}.recovery-login summary{cursor:pointer;color:#526660}
.customer-auth-card{width:min(100%,520px)}.vipps-login{display:block;width:100%;text-align:center;text-decoration:none;background:#ff5b24}
.security-explainer,.auth-trust{display:grid;gap:.35rem;padding:1rem;margin:1rem 0;border-radius:14px;background:#edf8f4;color:#31564d}
.security-explainer span,.auth-trust span{font-size:.9rem}.auth-trust{background:#f4f7f6}.customer-auth-card details form{margin-top:1rem}
@media(max-width:950px){.profile-layout{grid-template-columns:1fr}.wizard-steps,.policy-options{grid-template-columns:1fr}.security-key{grid-template-columns:auto 1fr auto}.key-actions{grid-column:1/-1}}
@media(max-width:620px){.form-grid{grid-template-columns:1fr}.security-key{grid-template-columns:auto 1fr}.security-key>.badge{grid-column:2}.key-actions{flex-wrap:wrap;justify-content:stretch}.key-actions input{width:100%}.recovery-codes pre{columns:1}.register-passkey .button{width:100%}}
