/* Account forms are intentionally independent of the theme's legacy registration dialog. */
.kvw-account-page { width:100%; max-width:1240px; margin:0 auto; padding:28px 0 44px; color:#102e2b; }
.kvw-account-page-header { margin:0 0 24px; }
.kvw-account-page-header h1 { margin:0 0 8px; font-size:clamp(28px,3.5vw,40px); line-height:1.15; letter-spacing:-.035em; }
.kvw-account-page-header p { margin:0; color:#3f5350; font-size:17px; }
.kvw-account-layout { display:grid; grid-template-columns:230px minmax(0,1fr); align-items:start; gap:28px; }
.kvw-account-sidebar { display:grid; border:1px solid #dce4d9; border-radius:14px; overflow:hidden; background:#fffefa; }
.kvw-account-sidebar a { display:block; padding:16px 18px; color:#102e2b; text-decoration:none; font-size:16px; font-weight:650; line-height:1.35; }
.kvw-account-sidebar a+a { border-top:1px solid #dce4d9; }
.kvw-account-sidebar a:hover,.kvw-account-sidebar a[aria-current=page] { background:#e6f0e5; color:#0f5548; }
.kvw-account-content { min-width:0; border:1px solid #dce4d9; border-radius:16px; background:#fffefa; padding:clamp(20px,3vw,32px); }
.kvw-account-content h2 { margin:0 0 12px; font-size:25px; line-height:1.3; }
.kvw-account-content p { line-height:1.6; font-size:16px; color:#3f5350; }
.kvw-account-content a:not(.kvw-button) { color:#0f5548; text-underline-offset:3px; }
.kvw-account-form { max-width:540px; display:grid; gap:18px; margin:22px 0; }
.kvw-account-field { display:grid; gap:7px; font-size:16px; font-weight:650; }
.kvw-account-field input { display:block; width:100%; min-width:0; box-sizing:border-box; border:1px solid #b6c8bc; border-radius:8px; background:#fff; color:#102e2b; padding:12px 14px; font:inherit; font-weight:400; line-height:1.5; min-height:48px; }
.kvw-account-field input:focus { outline:2px solid #0f5548; outline-offset:2px; }
.kvw-account-check { display:flex; align-items:flex-start; gap:10px; font-size:15px; line-height:1.5; }
.kvw-account-check input { flex:0 0 19px; width:19px; height:19px; margin:2px 0 0; accent-color:#0f5548; }
.kvw-account-form .kvw-button { justify-self:start; background:#0f5548; border:1px solid #0f5548; border-radius:8px; color:#fff; padding:13px 20px; min-height:48px; font:inherit; font-size:16px; font-weight:700; cursor:pointer; }
.kvw-account-form .kvw-button:hover { background:#0a4037; }
.kvw-account-auth-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; padding:0 0 16px; border-bottom:1px solid #dce4d9; }
.kvw-account-auth-tabs a { padding:9px 14px; border-radius:7px; font-weight:650; font-size:16px; }
.kvw-account-auth-tabs a[aria-current=page] { background:#e6f0e5; text-decoration:none; }
.kvw-account-notice { margin:0 0 20px; padding:14px 16px; border-radius:8px; border:1px solid #b2ccb5; background:#edf5e9; color:#174831; font-size:16px; line-height:1.55; }
.kvw-account-notice.is-error { border-color:#e2b6a8; background:#fff0e9; color:#7d2f1c; }
.kvw-account-section+.kvw-account-section { margin-top:30px; padding-top:28px; border-top:1px solid #dce4d9; }
.kvw-account-trap[hidden] { display:none !important; }
@media(max-width:700px) { .kvw-account-layout { grid-template-columns:minmax(0,1fr); gap:18px; } .kvw-account-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); } .kvw-account-sidebar a { padding:12px; font-size:15px; } .kvw-account-sidebar a+a { border-top:0; } .kvw-account-content { padding:20px 16px; } .kvw-account-form .kvw-button { width:100%; justify-self:stretch; } }

/* Public login, registration and recovery share one quiet, branded layout. */
body.kvw-auth-route { background:#f8f5ed; }
.kvw-auth-main { min-height:100vh; min-height:100svh; }
.kvw-auth-shell { box-sizing:border-box; display:flex; flex-direction:column; width:100%; max-width:1200px; min-height:100vh; min-height:100svh; margin:0 auto; padding:32px 40px 24px; color:#102e2b; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.kvw-auth-shell * { box-sizing:border-box; }
.kvw-auth-header { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.kvw-auth-brand { display:inline-flex; align-items:center; gap:10px; color:#102e2b; font-size:22px; font-weight:800; line-height:1.2; letter-spacing:-.045em; text-decoration:none; }
.kvw-auth-brand__mark { flex-shrink:0; width:48px; height:30px; color:#0f5548; }
.kvw-auth-back { display:inline-flex; align-items:center; gap:8px; padding:9px 0; color:#3f5350; font-size:14px; font-weight:550; line-height:1.4; text-decoration:none; }
.kvw-auth-back:hover { color:#0f5548; text-decoration:underline; text-underline-offset:4px; }
.kvw-auth-layout { flex:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,480px); align-items:center; gap:clamp(40px,7vw,104px); padding:64px 0; }
.kvw-auth-intro { align-self:center; max-width:380px; }
.kvw-auth-eyebrow { display:block; margin:0 0 18px; color:#0f5548; font-size:12px; font-weight:750; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.kvw-auth-intro h2 { margin:0 0 22px; color:#103b34; font-family:Georgia,"Times New Roman",serif; font-size:clamp(32px,3.5vw,46px); font-weight:700; line-height:1.08; letter-spacing:-.035em; }
.kvw-auth-intro p { margin:0; max-width:340px; color:#3f5350; font-size:17px; line-height:1.7; }
.kvw-auth-intro ul { display:grid; gap:17px; margin:30px 0 0; padding:0; list-style:none; }
.kvw-auth-intro li { display:flex; align-items:center; gap:12px; color:#244740; font-size:15px; line-height:1.5; }
.kvw-auth-intro li svg { width:27px; height:27px; flex:0 0 27px; padding:4px; border-radius:50%; color:#0f5548; background:#e1ecdd; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.kvw-auth-panel.kvw-account-content { width:100%; padding:36px; border:1px solid #dce4d9; border-radius:20px; background:#fffefa; box-shadow:0 12px 40px rgba(16,46,43,.055); }
.kvw-auth-panel h1 { margin:0 0 24px; color:#102e2b; font-size:30px; font-weight:750; line-height:1.2; letter-spacing:-.035em; }
/* account.php keeps its H2s for its other consumers; this layout supplies the H1. */
.kvw-auth-panel > h2 { display:none; }
.kvw-auth-panel > p { margin:18px 0; font-size:15px; line-height:1.65; }
.kvw-auth-panel > p:last-child { margin-bottom:0; }
.kvw-auth-panel .kvw-account-auth-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; margin:0 0 24px; padding:4px; border:1px solid #dce4d9; border-radius:10px; background:#f3f5ef; }
.kvw-auth-panel .kvw-account-auth-tabs a { display:flex; align-items:center; justify-content:center; min-height:42px; padding:8px 6px; border:1px solid transparent; border-radius:7px; color:#3f5350; font-size:14px; font-weight:650; line-height:1.4; text-align:center; text-decoration:none; }
.kvw-auth-panel .kvw-account-auth-tabs a[aria-current=page] { color:#0f5548; background:#fffefa; border-color:#dce4d9; box-shadow:0 1px 3px rgba(16,46,43,.04); }
.kvw-auth-panel .kvw-account-auth-tabs a:only-child { grid-column:1/-1; }
.kvw-auth-panel .kvw-account-form { gap:19px; max-width:none; margin:24px 0 20px; }
.kvw-auth-panel .kvw-account-field { gap:8px; font-size:14px; font-weight:650; }
.kvw-auth-panel .kvw-account-field input { min-height:50px; font-size:16px; border-color:#becfc4; border-radius:9px; }
.kvw-auth-panel .kvw-account-form .kvw-button { width:100%; justify-self:stretch; min-height:50px; border-radius:9px; }
.kvw-auth-panel .kvw-account-check { font-size:14px; font-weight:400; }
.kvw-auth-panel .kvw-account-notice { font-size:14px; }
.kvw-auth-shell a:focus-visible,.kvw-auth-shell button:focus-visible { outline:2px solid #0f5548; outline-offset:4px; }
.kvw-auth-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:16px; border-top:1px solid #dce4d9; color:#586b65; font-size:12px; line-height:1.5; }
.kvw-auth-footer nav { display:flex; gap:24px; }
.kvw-auth-footer a { color:#3f5350; text-decoration:none; }
.kvw-auth-footer a:hover { text-decoration:underline; text-underline-offset:3px; }
/* Compatibility when Core is installed before the matching theme update. */
.kvw-auth-route .kvw-site-header,.kvw-auth-route .kvw-site-footer,.kvw-auth-route .kvw-page-hero,.kvw-auth-route .kvw-sidebar-card { display:none; }
.kvw-auth-route .kvw-container { width:100%; max-width:none; }
.kvw-auth-route .kvw-page-body { padding:0; }
.kvw-auth-route .kvw-content-layout { display:block; }
.kvw-auth-route .kvw-entry-card { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
@media(max-width:820px) {
	.kvw-auth-shell { max-width:560px; padding:28px 24px 22px; }
	.kvw-auth-header { align-items:flex-start; flex-direction:column; gap:14px; }
	.kvw-auth-layout { grid-template-columns:minmax(0,1fr); padding:30px 0 38px; gap:0; }
	.kvw-auth-intro { display:none; }
	.kvw-auth-panel.kvw-account-content { padding:30px; }
	.kvw-auth-brand { font-size:22px; }
}
@media(max-width:420px) {
	.kvw-auth-shell { padding:24px 16px 20px; }
	.kvw-auth-brand { font-size:20px; gap:8px; }
	.kvw-auth-brand__mark { width:40px; height:26px; }
	.kvw-auth-panel.kvw-account-content { padding:25px 20px; border-radius:15px; }
	.kvw-auth-panel h1 { font-size:27px; }
	.kvw-auth-panel .kvw-account-auth-tabs a { font-size:13px; }
	.kvw-auth-footer nav { gap:18px; }
}
