/* =========================================================
   PARTEM-X BOS — Auth (Login / Register / Reset) Styles
   ========================================================= */

.ptx-auth{
	--ptx-a-purple-900:#1e1240;
	--ptx-a-purple-700:#3b1878;
	--ptx-a-indigo-600:#4c1fb0;
	--ptx-a-accent:#8b5cf6;
	--ptx-a-gold:#f5c451;
	min-height:80vh;
	width:100%;
	max-width:100%;
	display:flex; align-items:center; justify-content:center;
	padding:40px 16px;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	background:
		radial-gradient(circle at 15% 15%, rgba(139,92,246,.25), transparent 45%),
		radial-gradient(circle at 85% 85%, rgba(245,196,81,.12), transparent 40%),
		linear-gradient(160deg, var(--ptx-a-purple-900), var(--ptx-a-purple-700) 55%, var(--ptx-a-indigo-600));
	border-radius:24px;
	overflow-x:hidden;
}

.ptx-auth *{ box-sizing:border-box; min-width:0; }

.ptx-auth-card{
	width:100%; max-width:min(440px, 100%);
	background:rgba(255,255,255,.98);
	border-radius:20px;
	padding:clamp(22px, 5vw, 36px) clamp(18px, 5vw, 34px) clamp(18px, 4vw, 30px);
	box-shadow:0 30px 70px rgba(20,8,50,.45), 0 2px 0 rgba(255,255,255,.4) inset;
	position:relative;
}

.ptx-auth-brand{ display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.ptx-auth-brand .ptx-brand-mark{
	width:38px; height:38px; border-radius:11px;
	background:linear-gradient(135deg,var(--ptx-a-accent),var(--ptx-a-indigo-600));
	color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800;
	flex-shrink:0;
}
.ptx-auth-brand .ptx-brand-logo-img{
	width:var(--ptx-logo-w-desktop, 38px);
	height:var(--ptx-logo-h-desktop, 38px);
	object-fit:contain; border-radius:8px; flex-shrink:0;
}
.ptx-auth-brand .ptx-brand-text{
	font-weight:800; font-size:clamp(13px, 3.6vw, 16px); line-height:1.1; color:#241148;
	max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.ptx-auth-invite-note{
	display:flex; align-items:center; gap:8px;
	background:#f5f0ff; border:1px solid #e4d8ff; color:#5b21b6;
	padding:10px 12px; border-radius:10px; font-size:clamp(11px, 3vw, 12.5px); margin-bottom:16px;
}

.ptx-auth-message{ display:none; padding:10px 12px; border-radius:10px; font-size:clamp(11px, 3vw, 12.5px); margin-bottom:14px; word-break:break-word; }
.ptx-auth-message.is-error{ display:block; background:#fee2e2; color:#b91c1c; }
.ptx-auth-message.is-success{ display:block; background:#dcfce7; color:#15803d; }

.ptx-auth-tabs{ display:flex; gap:6px; background:#f3f0fb; border-radius:12px; padding:4px; margin-bottom:20px; }
.ptx-auth-tab{
	flex:1; background:none; border:0; padding:9px 6px; border-radius:9px;
	font-size:clamp(11px, 3vw, 12.5px); font-weight:700; color:#6b7089; cursor:pointer;
	white-space:nowrap;
}
.ptx-auth-tab.is-active{ background:#fff; color:var(--ptx-a-accent); box-shadow:0 4px 10px rgba(20,8,50,.08); }
.ptx-staff-login-hint{ margin-top:16px; margin-bottom:0; text-align:center; }

.ptx-auth-panel h2{ margin:0 0 4px; font-size:clamp(17px, 4.6vw, 22px); color:#1f1130; }
.ptx-auth-sub{ margin:0 0 20px; font-size:clamp(11.5px, 3vw, 13px); color:#6b7089; line-height:1.5; }

.ptx-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ptx-auth .ptx-form-row{ margin-bottom:14px; }
.ptx-auth .ptx-form-row label{ display:block; font-size:clamp(11px, 3vw, 12px); font-weight:700; color:#3b3155; margin-bottom:5px; }
.ptx-auth .ptx-form-row input{
	width:100%; padding:11px 13px; border:1.5px solid #e6e2f5; border-radius:11px;
	font-size:clamp(13px, 3.4vw, 13.5px); transition:border-color .15s ease, box-shadow .15s ease;
}
.ptx-auth .ptx-form-row input:focus{ outline:none; border-color:var(--ptx-a-accent); box-shadow:0 0 0 3px rgba(139,92,246,.15); }

.ptx-password-wrap{ position:relative; display:flex; align-items:center; }
.ptx-password-wrap input{ padding-right:40px !important; }
.ptx-pw-toggle{
	position:absolute; right:4px; top:50%; transform:translateY(-50%);
	background:none; border:0; padding:6px; cursor:pointer; color:#9691ad; line-height:0; border-radius:8px;
}
.ptx-pw-toggle:hover{ color:var(--ptx-a-accent); background:rgba(139,92,246,.08); }
.ptx-pw-toggle .dashicons{ font-size:18px; width:18px; height:18px; }

.ptx-auth .ptx-btn-primary{
	background:linear-gradient(135deg,var(--ptx-a-accent),var(--ptx-a-indigo-600));
	border:0; color:#fff; padding:12px 18px; border-radius:11px; font-weight:700; font-size:clamp(12.5px, 3.4vw, 14px);
	box-shadow:0 10px 22px rgba(139,92,246,.35);
	width:100%; max-width:100%;
}
.ptx-auth .ptx-btn-primary:hover{ filter:brightness(1.06); }
.ptx-btn-block{ width:100%; }

.ptx-auth-links{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; flex-wrap:wrap; gap:8px; }
.ptx-link-btn{ background:none; border:0; color:#6b7089; font-size:clamp(11px, 3vw, 12.5px); cursor:pointer; padding:0; }
.ptx-link-btn-strong{ color:var(--ptx-a-accent); font-weight:700; }
.ptx-link-btn:hover{ text-decoration:underline; }

.ptx-auth-notice{ text-align:center; padding:60px 20px; color:#fff; }

/* ---------------- Radar "processing" indicator ----------------
   Shared component: a fast rotating sweep beam + expanding ping
   rings + a bright center blip, used while auth forms (login,
   staff login, registration, password reset) are submitting. */

.ptx-radar{
	--ptx-radar-color: var(--ptx-a-accent, #8b5cf6);
	width:46px; height:46px; border-radius:50%; position:relative; display:inline-block;
	border:1.5px solid color-mix(in srgb, var(--ptx-radar-color) 35%, transparent);
	background:radial-gradient(circle, transparent 58%, color-mix(in srgb, var(--ptx-radar-color) 10%, transparent) 60%);
}
.ptx-radar::before{
	content:''; position:absolute; inset:0; border-radius:50%;
	background:conic-gradient(from 0deg, transparent 0deg, transparent 250deg, color-mix(in srgb, var(--ptx-radar-color) 85%, transparent) 300deg, transparent 360deg);
	animation:ptxRadarSweep .55s linear infinite;
}
.ptx-radar::after{
	content:''; position:absolute; top:50%; left:50%; width:7px; height:7px; margin:-3.5px;
	border-radius:50%; background:var(--ptx-radar-color);
	box-shadow:0 0 10px 3px color-mix(in srgb, var(--ptx-radar-color) 70%, transparent);
	animation:ptxRadarBlip 1s ease-in-out infinite;
}
@keyframes ptxRadarSweep{ to{ transform:rotate(360deg); } }
@keyframes ptxRadarBlip{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }

.ptx-auth-radar-overlay{
	position:absolute; inset:0; z-index:20; border-radius:inherit;
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
	background:rgba(255,255,255,.82); backdrop-filter:blur(1px);
}
.ptx-auth-radar-text{ font-size:12px; font-weight:700; color:#3b1878; letter-spacing:.2px; }

@media (max-width:480px){
	.ptx-auth{ padding:24px 12px; }
	.ptx-auth-card{ padding:22px 16px 18px; }
	.ptx-auth-brand .ptx-brand-logo-img{ width:var(--ptx-logo-w-mobile, 30px); height:var(--ptx-logo-h-mobile, 30px); }
	.ptx-auth-brand .ptx-brand-text{ max-width:160px; }
	.ptx-form-grid{ grid-template-columns:1fr; }
	.ptx-auth-links{ justify-content:center; text-align:center; }
}

@media (max-width:360px){
	.ptx-auth{ padding:16px 8px; }
	.ptx-auth-card{ padding:18px 14px 16px; border-radius:16px; }
	.ptx-auth-tabs{ padding:3px; }
	.ptx-auth-tab{ padding:8px 4px; }
	.ptx-radar{ width:38px; height:38px; }
}

@media (min-width:1200px){
	.ptx-auth-card{ max-width:460px; }
}
