:root{--facility-portal-navy:#102c50;--facility-portal-blue:#1769aa;--facility-portal-blue-dark:#0d4f88;--facility-portal-green:#168957;--facility-portal-line:#d9e4ef;--facility-portal-ink:#17243a}
.facility-public-portal-header{position:sticky;z-index:90;top:0;width:100%;border-bottom:1px solid rgba(207,220,233,.94);background:rgba(255,255,255,.96);box-shadow:0 5px 24px rgba(15,35,65,.07);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.facility-public-portal-header__inner{width:min(1320px,calc(100vw - 28px));min-height:76px;margin:0 auto;display:grid;grid-template-columns:minmax(235px,auto) minmax(420px,1fr) auto;align-items:center;gap:20px}
.facility-public-portal-brand{min-width:0;display:flex;align-items:center;gap:11px;color:var(--facility-portal-ink);text-decoration:none}.facility-public-portal-brand img{width:45px;height:45px;flex:0 0 45px;object-fit:contain}.facility-public-portal-brand span,.facility-public-portal-brand b,.facility-public-portal-brand small{display:block;min-width:0}.facility-public-portal-brand b{overflow:hidden;font-size:14px;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.facility-public-portal-brand small{margin-top:3px;color:var(--facility-portal-blue);font-size:11px;font-weight:800;letter-spacing:.015em}
.facility-public-portal-nav{justify-self:center;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #9fc7e8;border-radius:13px;background:linear-gradient(135deg,#e4f2ff 0%,#edf8f4 100%);box-shadow:0 7px 18px rgba(23,105,170,.14),inset 0 1px 0 rgba(255,255,255,.82)}.facility-public-portal-nav a{min-height:38px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;color:#345674;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap;transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.facility-public-portal-nav a:hover,.facility-public-portal-nav a:focus-visible{border-color:rgba(23,105,170,.18);color:var(--facility-portal-blue-dark);background:rgba(255,255,255,.9);transform:translateY(-1px);box-shadow:0 4px 10px rgba(27,77,119,.09)}.facility-public-portal-nav a:focus-visible{outline:2px solid rgba(23,105,170,.34);outline-offset:2px}.facility-public-portal-nav a.active{border-color:#0f5f9f;background:linear-gradient(135deg,#1976bd,#0d568f);color:#fff;box-shadow:0 5px 13px rgba(23,105,170,.27)}.facility-public-portal-nav .ui-icon{width:15px;height:15px}.facility-public-portal-nav__short{display:none}
.facility-public-portal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.facility-public-portal-request{min-height:40px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #117747;border-radius:9px;background:linear-gradient(135deg,#1b9a62,#117747);color:#fff;font:inherit;font-size:12px;font-weight:850;line-height:1;text-decoration:none;white-space:nowrap;box-shadow:0 8px 20px rgba(22,137,87,.2);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.facility-public-portal-request:hover,.facility-public-portal-request:focus-visible{color:#fff;transform:translateY(-2px);box-shadow:0 12px 25px rgba(22,137,87,.27)}.facility-public-portal-request .ui-icon{width:16px;height:16px}
.facility-public-portal-user-menu{z-index:95}.facility-public-portal-account-link{min-width:0;display:flex;align-items:center;gap:7px;color:#263b56;font-size:11px;font-weight:800;text-decoration:none}.facility-public-portal-account-link>span:last-child{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facility-public-portal-account-link .event-portal-avatar{width:34px;height:34px;min-width:34px}
.facility-public-impersonation-banner{position:relative;z-index:89;width:100%;min-height:48px;padding:8px max(14px,calc((100vw - 1280px)/2));display:flex;align-items:center;gap:10px;border-bottom:1px solid #d69b29;background:linear-gradient(135deg,#fff5ce,#ffe8aa);color:#573a05;box-shadow:0 4px 14px rgba(112,73,4,.12)}.facility-public-impersonation-banner>span{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:9px;background:#915d06;color:#fff}.facility-public-impersonation-banner>span .ui-icon{width:17px;height:17px}.facility-public-impersonation-banner>div{min-width:0;display:grid;gap:2px}.facility-public-impersonation-banner b{font-size:12px}.facility-public-impersonation-banner small{font-size:10px;line-height:1.35}.facility-public-impersonation-banner form{margin:0 0 0 auto}.facility-public-impersonation-banner button{min-height:32px;padding:7px 11px;border:1px solid #805000;border-radius:8px;background:#fffaf0;color:#684300;font:inherit;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}
.facility-public-page-banner{min-height:78px;padding:13px 17px;display:flex;align-items:center;gap:13px;border:1px solid #d8e4ef;border-radius:13px;background:radial-gradient(circle at 88% 5%,rgba(25,169,199,.12),transparent 30%),linear-gradient(135deg,#fff,#f3f8fd);box-shadow:0 12px 30px rgba(21,54,83,.08)}.facility-public-page-banner>span{width:45px;height:45px;flex:0 0 45px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--facility-portal-blue),var(--facility-portal-blue-dark));color:#fff;box-shadow:0 8px 18px rgba(23,105,170,.2)}.facility-public-page-banner>span .ui-icon{width:21px;height:21px}.facility-public-page-banner>div{min-width:0}.facility-public-page-banner small{display:block;color:var(--facility-portal-blue);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.facility-public-page-banner h1{margin:2px 0;color:var(--facility-portal-navy);font-size:23px;line-height:1.12;letter-spacing:-.02em}.facility-public-page-banner p{margin:0;color:#607187;font-size:11px;font-weight:650}
.facility-public-portal-footer{min-height:76px;padding:22px 20px;display:flex;align-items:center;justify-content:center;border-top:1px solid #e2e9f0;background:linear-gradient(180deg,#fff,#f8fafc);color:#52637a;text-align:center}.facility-public-portal-footer span{font-size:12px;font-weight:750;letter-spacing:.025em}
body.facility-portal-leaving-forward .facility-portal-main{pointer-events:none;animation:facilityPortalLeaveForward .27s cubic-bezier(.4,0,.2,1) both}body.facility-portal-leaving-back .facility-portal-main{pointer-events:none;animation:facilityPortalLeaveBack .27s cubic-bezier(.4,0,.2,1) both}body.facility-portal-leaving-forward:after,body.facility-portal-leaving-back:after{content:"";position:fixed;z-index:1000;top:0;left:0;width:100%;height:3px;transform-origin:left;background:linear-gradient(90deg,var(--facility-portal-blue),#19a9c7,var(--facility-portal-green));animation:facilityPortalProgress .27s ease-out both}.facility-portal-arrive-forward .facility-portal-main{animation:facilityPortalEnterForward .38s cubic-bezier(.2,.75,.25,1) both}.facility-portal-arrive-back .facility-portal-main{animation:facilityPortalEnterBack .38s cubic-bezier(.2,.75,.25,1) both}
@keyframes facilityPortalLeaveForward{to{opacity:0;transform:translateX(-34px) scale(.992)}}@keyframes facilityPortalLeaveBack{to{opacity:0;transform:translateX(34px) scale(.992)}}@keyframes facilityPortalEnterForward{from{opacity:0;transform:translateX(42px) scale(.992)}to{opacity:1;transform:none}}@keyframes facilityPortalEnterBack{from{opacity:0;transform:translateX(-42px) scale(.992)}to{opacity:1;transform:none}}@keyframes facilityPortalProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1080px){.facility-public-portal-header__inner{grid-template-columns:minmax(210px,1fr) auto;gap:10px;padding:9px 0}.facility-public-portal-nav{grid-column:1/-1;grid-row:2;width:100%;justify-self:stretch}.facility-public-portal-nav a{flex:1}.facility-public-portal-actions{grid-column:2;grid-row:1}.facility-public-portal-header{position:relative}}
@media(max-width:900px){.events-public-calendar-card>.events-section-head{grid-template-columns:minmax(0,1fr);gap:13px}.events-public-calendar-card .events-section-actions{width:100%;justify-self:stretch;align-items:stretch}.events-public-calendar-card .events-calendar-nav-actions{max-width:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}.events-public-calendar-card .events-public-view-switch{width:100%;max-width:100%}.events-public-calendar-card .events-public-view-switch a{min-width:74px;flex:1 0 auto}}
@media(max-width:620px){.facility-public-portal-header__inner{width:calc(100vw - 20px);grid-template-columns:minmax(0,1fr) auto}.facility-public-portal-brand img{width:39px;height:39px;flex-basis:39px}.facility-public-portal-brand b{font-size:12px}.facility-public-portal-brand small{font-size:9px}.facility-public-portal-request{min-height:38px;padding:8px 10px;font-size:10px}.facility-public-portal-nav{gap:2px;padding:3px;border-radius:10px}.facility-public-portal-nav a{min-width:0;min-height:36px;padding:7px 5px;gap:5px;font-size:9px}.facility-public-portal-nav__full{display:none}.facility-public-portal-nav__short{display:inline}.facility-public-portal-actions .event-portal-user-menu,.facility-public-portal-account-link{display:none}.facility-public-page-banner{min-height:70px;padding:11px 13px}.facility-public-page-banner>span{width:39px;height:39px;flex-basis:39px}.facility-public-page-banner h1{font-size:19px}.facility-public-page-banner p{font-size:10px}.events-public-calendar-card .events-public-view-switch a{min-width:62px;padding-left:7px;padding-right:7px;font-size:10px}}
@media(max-width:620px){.facility-public-impersonation-banner{padding:9px 10px;align-items:flex-start;flex-wrap:wrap}.facility-public-impersonation-banner>div{flex:1}.facility-public-impersonation-banner small{display:block}.facility-public-impersonation-banner form{width:100%;margin:0}.facility-public-impersonation-banner button{width:100%}}
@media(prefers-reduced-motion:reduce){.facility-public-portal-nav a,.facility-public-portal-request{transition:none}.facility-public-portal-nav a:hover,.facility-public-portal-request:hover{transform:none}body.facility-portal-leaving-forward .facility-portal-main,body.facility-portal-leaving-back .facility-portal-main,.facility-portal-arrive-forward .facility-portal-main,.facility-portal-arrive-back .facility-portal-main{animation:none}body.facility-portal-leaving-forward:after,body.facility-portal-leaving-back:after{display:none}}
