
.auth-wrap{
	max-width:460px;
	margin:56px auto 72px;
	padding:0 24px;
}

.auth-card{
	background:var(--surface);
	border:1px solid var(--line);
	border-radius:16px;
	box-shadow:0 20px 45px -28px rgba(16,26,48,.35);
	padding:36px 32px;
}

.auth-card h1{
	font-family:'Zilla Slab',Georgia,serif;
	font-size:1.6rem;
	font-weight:600;
	color:var(--ink);
	margin:0 0 8px;
	text-align:center;
}

.auth-card .auth-sub{
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	color:var(--muted);
	font-size:.95rem;
	text-align:center;
	margin:0 0 28px;
	line-height:1.5;
}

.auth-alert{
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:.9rem;
	padding:12px 14px;
	border-radius:10px;
	margin:0 0 20px;
	line-height:1.5;
}
.auth-alert-error{
	background:#fbe9e7;
	color:#8c2a20;
	border:1px solid #f2c4bc;
}
.auth-alert-notice{
	background:var(--accent-soft);
	color:var(--accent-ink);
	border:1px solid var(--accent-soft);
}

.auth-field{margin:0 0 18px;}
.auth-field label{
	display:block;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-weight:600;
	font-size:.85rem;
	color:var(--ink-soft);
	margin:0 0 6px;
}
.auth-field input[type="email"],
.auth-field input[type="password"],
.auth-field input[type="text"]{
	width:100%;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:1rem;
	color:var(--ink);
	background:var(--paper);
	border:1px solid var(--line);
	border-radius:10px;
	padding:11px 14px;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.auth-field input:focus-visible{
	outline:none;
	border-color:var(--brand);
	box-shadow:0 0 0 3px var(--brand-soft);
}

.auth-password-wrap{position:relative;}
.auth-password-wrap input{padding-right:44px;}
.auth-password-toggle{
	position:absolute;
	right:8px;
	top:50%;
	transform:translateY(-50%);
	background:none;
	border:none;
	padding:6px;
	display:flex;
	color:var(--muted);
	cursor:pointer;
	border-radius:6px;
}
.auth-password-toggle:hover{color:var(--ink);}
.auth-password-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:1px;}
.auth-password-toggle svg{width:20px;height:20px;}

.auth-forgot{
	text-align:right;
	margin:8px 0 0;
}
.auth-forgot a{
	font-size:.8rem;
	font-weight:600;
	color:var(--brand);
	text-decoration:none;
}
.auth-forgot a:hover{text-decoration:underline;}

.auth-btn{
	display:block;
	width:100%;
	text-align:center;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-weight:700;
	font-size:1rem;
	padding:12px 20px;
	border-radius:999px;
	border:none;
	cursor:pointer;
	text-decoration:none;
	transition:background-color .2s ease, transform .2s ease;
}
.auth-btn-primary{
	background:var(--accent);
	color:#fff;
	margin-top:6px;
}
.auth-btn-primary:hover{background:var(--accent-ink);transform:translateY(-1px);}
.auth-btn-primary:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px;}

.auth-btn-secondary{
	background:var(--paper);
	color:var(--ink);
	border:1px solid var(--line);
}
.auth-btn-secondary:hover{background:var(--brand-soft);}
.auth-btn-secondary:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px;}

.auth-divider{
	display:flex;
	align-items:center;
	gap:12px;
	margin:24px 0;
	color:var(--muted);
	font-size:.8rem;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
}
.auth-divider::before,
.auth-divider::after{content:"";flex:1;height:1px;background:var(--line);}

.auth-google-btn{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	width:100%;
	background:#fff;
	color:var(--ink);
	border:1px solid var(--line);
	border-radius:999px;
	padding:11px 20px;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-weight:600;
	font-size:.95rem;
	text-decoration:none;
	transition:background-color .15s ease, box-shadow .15s ease;
}
.auth-google-btn:hover{background:var(--paper);}
.auth-google-btn:focus-visible{outline:3px solid var(--brand-soft);outline-offset:2px;}
.auth-google-btn svg{width:18px;height:18px;flex-shrink:0;}

.auth-footer-link{
	text-align:center;
	margin:24px 0 0;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:.9rem;
	color:var(--muted);
}
.auth-footer-link a{color:var(--brand);font-weight:600;text-decoration:none;}
.auth-footer-link a:hover{text-decoration:underline;}

.auth-recaptcha-note{
	text-align:center;
	font-size:.75rem;
	color:var(--muted);
	margin:16px 0 0;
	line-height:1.5;
}
.auth-recaptcha-note a{color:var(--muted);}

/* 2FA pincode entry */
.auth-pincode{
	display:flex;
	justify-content:center;
	gap:10px;
	margin:0 0 24px;
}
.auth-pincode input{
	width:44px;
	height:52px;
	text-align:center;
	font-size:1.3rem;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	color:var(--ink);
	background:var(--paper);
	border:1px solid var(--line);
	border-radius:10px;
}
.auth-pincode input:focus-visible{
	outline:none;
	border-color:var(--brand);
	box-shadow:0 0 0 3px var(--brand-soft);
}
.auth-pincode input::-webkit-outer-spin-button,
.auth-pincode input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.auth-pincode input[type=number]{-moz-appearance:textfield;}

.auth-qr{
	text-align:center;
	margin:0 0 24px;
}
.auth-qr img{
	width:200px;
	height:200px;
	border:1px solid var(--line);
	border-radius:12px;
	padding:10px;
	background:#fff;
}
.auth-qr-secret{
	margin:12px 0 0;
	font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	font-size:.85rem;
	letter-spacing:.05em;
	color:var(--ink-soft);
	word-break:break-all;
}
.auth-qr-help{
	font-size:.85rem;
	color:var(--muted);
	text-align:center;
	margin:0 0 20px;
	line-height:1.5;
}

/* Password strength meter (forgot/reset password) */
.auth-strength-bar{
	margin:10px 0 0;
}
.auth-strength-segments{
	display:flex;
	gap:6px;
}
.auth-strength-segments span{
	display:block;
	flex:1;
	height:4px;
	border-radius:2px;
	background:var(--line);
	transition:background-color .2s ease;
}
.auth-strength-hint{
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:.8rem;
	color:var(--muted);
	margin:8px 0 0;
	line-height:1.5;
}

/* Inline field-level validation errors */
.auth-field-error{
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:.8rem;
	color:#8c2a20;
	margin:8px 0 0;
	line-height:1.4;
}

@media (max-width:480px){
	.auth-wrap{margin:32px auto 48px;padding:0 16px;}
	.auth-card{padding:26px 20px;}
	.auth-pincode{gap:6px;}
	.auth-pincode input{width:38px;height:46px;font-size:1.1rem;}
}

/* Simple management tables inside an auth-card (e.g. pending admin approvals) */
.pending-admins-table-wrap{
	overflow-x:auto;
	margin:0 0 8px;
}
.pending-admins-table{
	width:100%;
	border-collapse:collapse;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:.9rem;
}
.pending-admins-table th{
	text-align:left;
	font-size:.78rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.03em;
	color:var(--muted);
	padding:0 10px 8px;
	border-bottom:1px solid var(--line);
}
.pending-admins-table td{
	padding:10px;
	border-bottom:1px solid var(--line);
	color:var(--ink);
	vertical-align:middle;
}
.pending-admins-actions{
	display:flex;
	gap:8px;
	white-space:nowrap;
}
.pending-admins-actions form{margin:0;}
.pending-admins-btn{
	width:auto;
	padding:8px 16px;
	font-size:.85rem;
}

/* Wider card + paired-field rows for longer forms (e.g. associate
   registration, which collects a full address alongside login details). */
.auth-card-wide{max-width:640px;}
.auth-wrap:has(.auth-card-wide){max-width:640px;}

.auth-field-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:0 16px;
}
@media (max-width:600px){
	.auth-field-row{grid-template-columns:1fr;}
}

.auth-section-heading{
	font-family:'Zilla Slab',Georgia,serif;
	font-size:1.05rem;
	font-weight:600;
	color:var(--ink);
	margin:28px 0 14px;
}
.auth-section-heading:first-child{margin-top:0;}

.auth-field input[type="tel"],
.auth-field input[type="url"]{
	width:100%;
	font-family:'Karla',-apple-system,'Segoe UI',Arial,sans-serif;
	font-size:1rem;
	color:var(--ink);
	background:var(--paper);
	border:1px solid var(--line);
	border-radius:10px;
	padding:11px 14px;
	transition:border-color .15s ease, box-shadow .15s ease;
}

.auth-field-checkbox label{
	display:flex;
	align-items:flex-start;
	gap:10px;
	font-weight:400;
	font-size:.9rem;
	color:var(--ink-soft);
	cursor:pointer;
}
.auth-field-checkbox input[type="checkbox"]{
	width:18px;
	height:18px;
	margin-top:1px;
	flex-shrink:0;
	accent-color:var(--brand);
}
.auth-field-checkbox a{color:var(--brand);font-weight:600;}
.auth-field-checkbox a:hover{text-decoration:underline;}
