:root{--ink:#35272e;--muted:#75686e;--paper:#f7f3ed;--card:#fffdfa;--line:rgba(63,42,52,.14);--plum:#7d3f5c;--plum-dark:#623047;--gold:#c78b43;--danger:#a33d47;--success:#28745d}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--paper)}body{min-height:100vh}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(420px,620px)}.auth-art{position:relative;min-height:100vh;background:#2d1b29 url('../images/generated/spiritual-portal-hero.png') 64% center/cover no-repeat;overflow:hidden}.auth-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,16,26,.12),rgba(27,16,26,.78))}.art-copy{position:absolute;z-index:1;left:clamp(28px,5vw,72px);right:32px;bottom:clamp(34px,7vh,78px);max-width:520px;color:#fff}.art-copy small{display:block;margin-bottom:12px;color:#f2c77f;font-size:12px;font-weight:750;letter-spacing:.15em;text-transform:uppercase}.art-copy h2{margin:0 0 12px;font:500 clamp(30px,4vw,52px)/1.04 Georgia,serif;letter-spacing:-.04em}.art-copy p{margin:0;color:rgba(255,255,255,.76);font-size:15px;line-height:1.65}.auth-panel{display:flex;align-items:center;justify-content:center;padding:36px clamp(24px,5vw,70px);background:var(--card)}.auth-card{width:100%;max-width:430px}.brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:36px;color:var(--ink);font:700 19px Georgia,serif;text-decoration:none}.brand img{width:34px;height:34px;object-fit:contain}.auth-card h1{margin:0 0 9px;font:600 34px/1.1 Georgia,serif;letter-spacing:-.035em}.intro{margin:0 0 28px;color:var(--muted);font-size:14px;line-height:1.55}.field{margin-bottom:18px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field label{display:block;margin-bottom:8px;font-size:13px;font-weight:650}.field input,.field select{width:100%;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-size:14px;outline:none;transition:.18s}.field input:focus,.field select:focus{border-color:var(--plum);box-shadow:0 0 0 3px rgba(125,63,92,.1)}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover{background:#f5eee9;color:var(--ink)}.form-tools{display:flex;justify-content:space-between;align-items:center;margin:-2px 0 20px;font-size:12.5px}.remember{display:flex;align-items:center;gap:7px;color:var(--muted)}.remember input{accent-color:var(--plum)}a{color:var(--plum);text-underline-offset:3px}.submit{width:100%;height:50px;border:0;border-radius:999px;background:var(--plum);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:.18s}.submit:hover{background:var(--plum-dark);transform:translateY(-1px)}.submit:disabled{opacity:.65;cursor:wait}.auth-footer{margin-top:22px;text-align:center;color:var(--muted);font-size:13px}.legal-note{margin-top:18px;color:#91858a;font-size:11.5px;line-height:1.55;text-align:center}.notice{margin:0 0 20px;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.45}.notice.error{color:#7e2833;background:#fbeaec}.notice.success{color:#205f4c;background:#e7f5ef}.password-hint{display:block;margin-top:6px;color:var(--muted);font-size:11.5px;line-height:1.4}
@media(max-width:860px){.auth-shell{display:block}.auth-art{display:none}.auth-panel{min-height:100vh}.auth-card{max-width:460px}}
@media(max-width:520px){.auth-panel{padding:28px 20px;align-items:flex-start}.brand{margin-bottom:40px}.auth-card h1{font-size:30px}.field-row{grid-template-columns:1fr}}
.otp-input{height:62px!important;text-align:center;font-size:24px!important;font-weight:700;letter-spacing:.45em;padding-left:calc(14px + .45em)!important;font-variant-numeric:tabular-nums}.otp-meta{display:flex;justify-content:center;gap:8px;margin:-8px 0 22px;color:var(--muted);font-size:12px}.otp-resend{width:100%;margin-top:12px;padding:11px;border:0;background:transparent;color:var(--plum);font-size:13px;font-weight:650;cursor:pointer}.otp-resend:disabled{color:#9a8e93;cursor:not-allowed}.security-note{display:flex;gap:10px;margin-top:24px;padding:13px 14px;border-radius:11px;background:#f5eee9;color:var(--muted);font-size:11.5px;line-height:1.5}.security-note svg{width:17px;height:17px;flex:0 0 17px;color:var(--plum)}

/* Compact same-origin Community authentication popup. */
.auth-embedded .auth-shell{display:block;min-height:0}.auth-embedded .auth-art{display:none}.auth-embedded .auth-panel{display:block;padding:28px;min-height:0}.auth-embedded .auth-card{width:100%;max-width:none}.auth-embedded .field input{font-size:16px}.auth-embedded .intro{font-size:14px}.auth-embedded .auth-footer,.auth-embedded .legal-note{font-size:12px}
