/* Kaaverie Login: matches the Kaaverie Luxe theme (maroon, blush, rounded). */
.kja-box { --kja-maroon: #832729; --kja-line: #E8D9D5; --kja-blush: #FBF4F2; box-sizing: border-box; max-width: 440px; margin: 0 auto 28px; padding: 28px; border: 1px solid var(--kja-line); border-radius: 20px; background: #fff; box-shadow: 0 10px 30px -18px rgba(61, 12, 20, .25); font-size: 14px; }
.kja-box *, .kja-box *::before, .kja-box *::after { box-sizing: border-box; }
.kja-box[hidden], .kja-step[hidden] { display: none !important; }
.kja-title { font-family: var(--wp--preset--font-family--display, Georgia, serif); font-size: 24px; line-height: 1.2; margin: 0 0 16px !important; color: #1E1416; }
.kja-intro { color: #6E6264; margin: -8px 0 16px !important; }
.kja-step { display: flex; flex-direction: column; gap: 10px; }
.kja-step label { font-weight: 600; font-size: 13px; }
.kja-phone { display: flex; align-items: stretch; border: 1px solid var(--kja-line); border-radius: 12px; overflow: hidden; background: #fff; transition: border-color .2s, box-shadow .2s; }
.kja-phone:focus-within, .kja-code:focus { border-color: var(--kja-maroon); box-shadow: 0 0 0 3px rgba(131, 39, 41, .1); outline: none; }
.kja-cc { display: grid; place-items: center; padding: 0 14px; background: var(--kja-blush); border-right: 1px solid var(--kja-line); font-weight: 600; color: #4E4245; }
.kja-phone input { flex: 1; min-width: 0; border: 0 !important; outline: none; padding: 0 14px; height: 48px; font: inherit; font-size: 16px; letter-spacing: .04em; background: transparent; box-shadow: none !important; }
.kja-code { width: 100%; height: 52px; border: 1px solid var(--kja-line); border-radius: 12px; padding: 0 14px; font: inherit; font-size: 22px; letter-spacing: .5em; text-align: center; }
.kja-btn, .kja-google, .kja-apple { width: 100%; min-height: 48px; border-radius: 999px; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s, border-color .2s, opacity .2s; }
.kja-btn { background: var(--kja-maroon); color: #fff; border: 0; }
.kja-btn:hover { background: #6B1D22; }
.kja-google { display: flex; align-items: center; justify-content: center; gap: 10px; background: #fff; color: #1E1416; border: 1px solid var(--kja-line); }
.kja-google:hover { border-color: #1E1416; }
.kja-apple { display: flex; align-items: center; justify-content: center; gap: 10px; background: #000; color: #fff; border: 1px solid #000; }
.kja-apple:hover { background: #222; }
.kja-google + .kja-apple { margin-top: 10px; }
.kja-btn:disabled, .kja-google:disabled, .kja-apple:disabled { opacity: .6; cursor: wait; }
.kja-or { display: flex; align-items: center; gap: 12px; color: #9A8D8F; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; margin: 18px 0 !important; }
.kja-or::before, .kja-or::after { content: ""; flex: 1; height: 1px; background: var(--kja-line); }
.kja-links { margin: 0 !important; text-align: center; font-size: 13px; color: #9A8D8F; }
.kja-link { background: none; border: 0; padding: 0; color: var(--kja-maroon); font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.kja-link:disabled { color: #9A8D8F; text-decoration: none; cursor: default; }
.kja-msg { margin: 12px 0 0 !important; font-size: 13px; min-height: 0; }
.kja-msg:empty { display: none; }
.kja-msg.is-error { color: #B42318; }
.kja-msg.is-ok { color: #1E7B45; }
.kja-fine { margin: 16px 0 0 !important; font-size: 12px; color: #9A8D8F; text-align: center; }
.kja-fine a { color: inherit; }
.kja-captcha:empty { display: none; }
.kja-alt { text-align: center; color: #6E6264; font-size: 13px; text-transform: uppercase; letter-spacing: .12em; margin: 8px 0 24px !important; }
.kja-details { max-width: 520px; margin: 0 auto 28px; }
.kja-details summary { cursor: pointer; padding: 14px 18px; border-radius: 14px; background: var(--kja-blush, #FBF4F2); font-weight: 600; color: #832729; list-style: none; text-align: center; }
.kja-details summary::-webkit-details-marker { display: none; }
.kja-details[open] summary { margin-bottom: 16px; }
.kja-verified { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kja-verified span { font-size: 12px; font-weight: 600; color: #1E7B45; background: #E7F5EC; border-radius: 999px; padding: 3px 10px; }
.kja-account { border: 0; padding: 0; margin: 24px 0 8px; }
.kja-account legend { font-weight: 600; margin-bottom: 8px; }
.kja-account + .kja-box { margin-left: 0; }
