/* Scoped to the login illustration; recovery and registration keep their layouts. */
body:has(.security-campus) { background: #eef2ef; color: #203b43; }
body:has(.security-campus) .background,
body:has(.security-campus) .backdrop { display: none; }
.login-container:has(.security-campus) { position: relative; inset: auto; margin: 32px auto; width: calc(100% - 64px); max-width: 1340px; min-height: 780px; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(350px, 1fr); grid-template-rows: auto 1fr auto; background: #fff; border: 1px solid #dce5df; border-radius: 24px; box-shadow: 0 20px 70px #15392b0c; overflow: hidden; }
.security-campus { grid-column: 1; grid-row: 1 / 4; position: relative; overflow: hidden; display: flex; flex-direction: column; color: #eef4df; background: radial-gradient(ellipse at 55% 57%, #214a4c 0, #142f3a 58%, #112c36 100%); padding: 36px 38px 24px; }
.campus-masthead { display: flex; align-items: center; gap: 11px; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; line-height: 1.6; }
.campus-masthead small { font-size: 9px; font-weight: 400; letter-spacing: 2.1px; color: #9dbab8; }
.campus-emblem { display: grid; place-items: center; border: 1px solid #638b7d; border-radius: 11px; color: #d5dcb0; width: 39px; height: 43px; font-size: 23px; }
.campus-edition { margin-left: auto; font-size: 9px; font-weight: 400; letter-spacing: 1.3px; color: #94afaf; }
.campus-heading { margin-top: 43px; position: relative; z-index: 1; }
.campus-eyebrow { color: #abcbae; font-size: 9px; font-weight: 600; letter-spacing: 2.1px; }
.campus-heading h2 { font-size: clamp(28px, 3.1vw, 42px); font-weight: 600; letter-spacing: -1.6px; line-height: 1.18; margin: 15px 0 14px; color: #f0f2df; }
.campus-heading p { font-size: 12px; line-height: 1.8; color: #a4bcba; margin: 0; }
.campus-scene { margin: -12px -35px -12px; flex: 1; display: flex; align-items: center; }
.campus-scene svg { width: 100%; height: auto; display: block; overflow: visible; }
.campus-tag rect { fill: #183943; stroke: #537b79; stroke-width: .7; }
.campus-tag text { fill: #dce9df; font-family: 'Segoe UI', sans-serif; font-size: 10px; }
.campus-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid #a5c8bc26; font-size: 10px; color: #bed1c8; }
.campus-bottom .fa { margin-right: 5px; color: #d6dca9; }
.campus-motion { display: flex; align-items: center; gap: 6px; font-weight: 400; cursor: pointer; margin: 0; white-space: nowrap; }
.campus-motion input[type=checkbox] { appearance: auto; -webkit-appearance: checkbox; width: 13px; height: 13px; min-width: 13px; min-height: 13px !important; accent-color: #92c5a9; box-shadow: none; }
.campus-motion input:before { display: none; }
.campus-caption { color: #799b9d; font-size: 8px; letter-spacing: 1.7px; margin-top: 14px; }
.campus-route { animation: campus-route 8s linear infinite; }
.campus-patrol { animation: campus-patrol 18s ease-in-out infinite; }
.campus-barrier { animation: campus-barrier 10s ease-in-out infinite; }
.campus-sweep { transform-origin: 600px 303px; animation: campus-sweep 7s ease-in-out infinite; }
.campus-ping { transform-origin: 583px 354px; animation: campus-ping 3.5s ease-out infinite; }
@keyframes campus-route { to { stroke-dashoffset: -104; } }
@keyframes campus-patrol { 0%, 8%, 100% { transform: translate(0, 0); } 45%, 55% { transform: translate(158px, 90px); } }
@keyframes campus-barrier { 0%, 22%, 85%, 100% { transform: rotate(0deg); } 40%, 68% { transform: rotate(64deg); } }
@keyframes campus-sweep { 0%, 100% { transform: rotate(-12deg); opacity: .5; } 50% { transform: rotate(18deg); opacity: 1; } }
@keyframes campus-ping { 0% { transform: scale(.65); opacity: .65; } 100% { transform: scale(1.6); opacity: 0; } }
.security-campus:has(.campus-motion input:checked) svg * { animation-play-state: paused; }
.login-container:has(.security-campus) > .login-header { grid-column: 2; grid-row: 1; padding: 45px 40px 5px; background: transparent; border: 0; }
.login-container:has(.security-campus) .login-header img { max-height: 150px; max-width: 230px; width: auto; object-fit: contain; }
.login-container:has(.security-campus) > .login-body { grid-column: 2; grid-row: 2; padding: 28px clamp(28px, 4vw, 65px) 20px; align-self: center; }
.campus-welcome > span { font-size: 9px; letter-spacing: 2px; color: #58816d; font-weight: 700; }
.campus-welcome h1 { font-size: 29px; letter-spacing: -1px; margin: 12px 0; font-weight: 600; color: #1c3840; }
.campus-welcome p { font-size: 12px; color: #788885; line-height: 1.8; margin-bottom: 28px; }
.login-container:has(.security-campus) .input-group { background: #f7f9f7; border: 1px solid #dce5df; border-radius: 9px; overflow: hidden; }
.login-container:has(.security-campus) .input-group:focus-within { border-color: #438067; box-shadow: 0 0 0 3px #43806718; }
.login-container:has(.security-campus) .login-input { background: transparent; border: 0; height: 48px; font-size: 13px; }
.login-container:has(.security-campus) .input-group-text { color: #6d8b7b; padding-left: 16px; }
.login-container:has(.security-campus) .input-group:has(.checkbox) { background: transparent; border: 0; font-size: 12px; margin: 20px 0; }
.login-container:has(.security-campus) .btn { border-radius: 9px; background: #236b50; border-color: #236b50; height: 48px; font-size: 13px; box-shadow: 0 5px 12px #236b5018; }
.login-container:has(.security-campus) .btn:hover { background: #19543d; }
.login-container:has(.security-campus) .btn:focus-visible { outline: 3px solid #7bad92; outline-offset: 3px; }
.login-container:has(.security-campus) .login-footer { background: transparent; padding: 22px 0 0; font-size: 11px; line-height: 1.9; color: #75857e; }
.login-container:has(.security-campus) .login-footer a { color: #276b52; }
.login-container:has(.security-campus) > .copyright { grid-column: 2; grid-row: 3; color: #87958e; font-size: 9px; line-height: 1.8; margin: 0; padding: 15px 30px 28px; }
.login-container:has(.security-campus) .copyright a { color: #668474; }
.login-container:has(.security-campus) .copyright .login-footer-links { margin-top: 8px; }
.login-container:has(.security-campus) .copyright .login-footer-links a { background: #f4f7f3; border: 1px solid #e0e8df; color: #61766b !important; font-size: 9px; font-weight: 500; }
@media (min-width: 1500px) { .login-container:has(.security-campus) { margin-top: 6vh; } }
@media (min-width: 741px) and (max-height: 850px) {
	body:has(.security-campus) { overflow: hidden; }
	.login-container:has(.security-campus) {
		height: calc(100vh - 28px);
		min-height: 0;
		max-height: 760px;
		margin: 14px auto;
	}
	.security-campus { padding: 24px 30px 16px; }
	.campus-heading { margin-top: 24px; }
	.campus-heading h2 { font-size: clamp(27px, 2.7vw, 36px); margin: 10px 0; }
	.campus-heading p { line-height: 1.6; }
	.campus-scene { min-height: 0; margin: -16px -28px -18px; }
	.campus-scene svg { width: 100%; height: 100%; max-height: 430px; object-fit: contain; }
	.campus-bottom { padding-top: 11px; }
	.campus-caption { margin-top: 8px; }
	.login-container:has(.security-campus) > .login-header { padding: 22px 40px 0; }
	.login-container:has(.security-campus) .login-header img { max-height: 105px; }
	.login-container:has(.security-campus) > .login-body { padding-top: 12px; padding-bottom: 8px; }
	.campus-welcome h1 { font-size: 27px; margin: 8px 0; }
	.campus-welcome p { line-height: 1.5; margin-bottom: 20px; }
	.login-container:has(.security-campus) .input-group:has(.checkbox) { margin: 14px 0; }
	.login-container:has(.security-campus) .login-footer { padding-top: 14px; line-height: 1.6; }
	.login-container:has(.security-campus) > .copyright { padding-top: 8px; padding-bottom: 14px; }
}
@media (max-width: 1000px) { .login-container:has(.security-campus) { width: calc(100% - 32px); margin: 16px auto; grid-template-columns: minmax(0, 1.1fr) minmax(330px, 1fr); } .security-campus { padding: 28px 25px 22px; } .campus-edition { display: none; } .campus-bottom { align-items: flex-start; flex-direction: column; gap: 10px; } .campus-scene { margin-left: -24px; margin-right: -24px; } }
@media (max-width: 740px) { .login-container:has(.security-campus) { grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; max-width: 500px; min-height: 0; border-radius: 18px; } .security-campus { grid-column: 1; grid-row: 3; } .login-container:has(.security-campus) > .login-header { grid-column: 1; grid-row: 1; padding-top: 25px; } .login-container:has(.security-campus) .login-header img { max-height: 110px; } .login-container:has(.security-campus) > .login-body { grid-column: 1; grid-row: 2; padding: 24px 28px 30px; } .login-container:has(.security-campus) > .copyright { grid-column: 1; grid-row: 4; padding-top: 22px; } .campus-heading { margin-top: 25px; } .campus-heading h2 { font-size: 30px; } .campus-bottom { flex-direction: row; font-size: 9px; } }
@media (prefers-reduced-motion: reduce) { .security-campus svg * { animation: none !important; } .campus-motion { display: none; } }
