/* CXSol sign-in screen (all portals) */
@font-face { font-family: "CX Poppins"; font-weight: 500; font-display: swap; src: url("fonts/poppins-500.woff") format("woff"); }
@font-face { font-family: "CX Poppins"; font-weight: 700; font-display: swap; src: url("fonts/poppins-700.woff") format("woff"); }
@font-face { font-family: "CX Inter"; font-weight: 400; font-display: swap; src: url("fonts/inter-400.woff") format("woff"); }
@font-face { font-family: "CX Inter"; font-weight: 500; font-display: swap; src: url("fonts/inter-500.woff") format("woff"); }
@font-face { font-family: "CX Inter"; font-weight: 600; font-display: swap; src: url("fonts/inter-600.woff") format("woff"); }

.cx-login { --ink: #0A1128; --ink2: #0F1A3D; --blue: #2F6BFF; --aqua: #19D3C5; --text: #17213F; --muted: #5C6A8A; --line: #DCE3F1; --coral: #F2536B;
	margin: 0; font: 400 15px/1.5 "CX Inter", "Inter", "Segoe UI", system-ui, sans-serif; color: var(--text); background: var(--ink); -webkit-font-smoothing: antialiased; }
.cx-login *, .cx-login *:before, .cx-login *:after { box-sizing: border-box; }
.cx-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); }

/* left: brand */
.cx-hero { position: relative; overflow: hidden; padding: 44px 56px; color: #fff; display: flex; flex-direction: column; justify-content: space-between;
	background: radial-gradient(120% 80% at 10% 0%, #16245A 0%, var(--ink) 60%); }
.cx-hero-logo { position: relative; z-index: 2; height: 52px; width: auto; align-self: flex-start; }
.cx-hero-copy { position: relative; z-index: 2; max-width: 460px; }
.cx-hero-title { margin: 0 0 12px; font: 700 clamp(28px, 3.1vw, 42px)/1.12 "CX Poppins", "Poppins", system-ui, sans-serif; letter-spacing: -.02em; }
.cx-hero-sub { margin: 0; color: #A9B8DA; font-size: 16px; max-width: 400px; }
.cx-orbit { position: absolute; right: -90px; top: 50%; width: min(78vh, 720px); height: auto; transform: translateY(-50%); z-index: 1; opacity: .95; }
.cx-spin-a, .cx-spin-b { transform-origin: 260px 260px; }
.cx-spin-a { animation: cx-rot 48s linear infinite; }
.cx-spin-b { animation: cx-rot 90s linear infinite reverse; }
.cx-pulse { animation: cx-pulse 2.8s ease-in-out infinite; transform-origin: 53.5px 32px; }
@keyframes cx-rot { to { transform: rotate(360deg); } }
@keyframes cx-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* right: form */
.cx-panel { display: flex; align-items: center; justify-content: center; padding: 40px 28px; background: #F3F6FC; border-radius: 36px 0 0 36px; margin-left: -36px; position: relative; z-index: 3; }
.cx-card { width: 100%; max-width: 410px; }
.cx-card-logo { display: none; height: 48px; width: auto; margin-bottom: 18px; }
.cx-chip { display: inline-block; padding: 5px 12px; border-radius: 999px; background: rgba(47, 107, 255, .1); color: var(--blue); font: 600 12.5px/1 "CX Inter", sans-serif; margin-bottom: 16px; }
.cx-card h1 { margin: 0 0 6px; font: 700 30px/1.15 "CX Poppins", "Poppins", system-ui, sans-serif; color: var(--ink); letter-spacing: -.02em; }
.cx-hint { margin: 0 0 24px; color: var(--muted); }
.cx-alert { margin: 0 0 18px; padding: 12px 16px; border-radius: 14px; background: #FFF0F2; color: #B3263F; border: 1px solid #FFD0D8; font-weight: 500; font-size: 14px; }
.cx-field { display: block; margin-bottom: 16px; }
.cx-field > span:first-child { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13px; color: var(--text); }
.cx-field input { width: 100%; height: 50px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--text); font: 400 15px "CX Inter", sans-serif;
	transition: border-color .15s, box-shadow .15s; }
.cx-field input:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47, 107, 255, .15); }
.cx-pw { position: relative; display: block; }
.cx-pw input { padding-right: 78px; }
.cx-eye { position: absolute; right: 8px; top: 8px; height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: #EEF2F9; color: var(--muted); font: 600 12.5px "CX Inter", sans-serif; cursor: pointer; }
.cx-eye:hover { background: #E1E8F6; color: var(--text); }
.cx-go { width: 100%; height: 52px; margin-top: 8px; border: 0; border-radius: 999px; cursor: pointer; color: #fff; font: 600 16px "CX Poppins", "Poppins", system-ui, sans-serif; letter-spacing: .01em;
	background: linear-gradient(135deg, #2F6BFF 0%, #19D3C5 100%); box-shadow: 0 12px 28px rgba(47, 107, 255, .35); transition: transform .15s, box-shadow .15s; }
.cx-go:hover { transform: translateY(-1px); box-shadow: 0 16px 34px rgba(47, 107, 255, .45); }
.cx-go:active { transform: translateY(0); }
.cx-go:focus-visible, .cx-eye:focus-visible { outline: 3px solid var(--aqua); outline-offset: 2px; }
.cx-foot { margin: 28px 0 0; color: #8793AF; font-size: 12.5px; text-align: center; }

@media (max-width: 900px) {
	.cx-shell { grid-template-columns: 1fr; }
	.cx-hero { display: none; }
	.cx-panel { margin: 0; border-radius: 0; min-height: 100vh; background: linear-gradient(180deg, #F3F6FC 0%, #E8EEFA 100%); }
	.cx-card-logo { display: block; }
}
@media (prefers-reduced-motion: reduce) { .cx-spin-a, .cx-spin-b, .cx-pulse { animation: none; } .cx-go { transition: none; } }
.cx-hint a { color: var(--blue); font-weight: 600; }
