.portal-root{padding:38px 4vw 70px;max-width:1380px;margin:auto}.portal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.portal-toolbar h1{font-size:27px;margin-top:8px}.portal-toolbar>div:last-child{display:flex;align-items:end;gap:14px}.portal-toolbar label{font-size:12px;display:grid;gap:7px}.portal-toolbar select{padding:10px;border:1px solid #dce5e1;border-radius:9px;background:#fff}.portal-toolbar a,.portal-login-card a{text-decoration:none;display:inline-block}.portal-login-card{max-width:560px;margin:38px auto;padding:46px;background:white;border:1px solid #dce7e3;border-radius:24px;text-align:center;box-shadow:0 12px 50px #173f4608}.portal-login-card h1{font-size:32px;margin:20px 0}.portal-login-card p{line-height:1.8;color:#617e80}.portal-login-card small{line-height:1.7;margin-top:22px;font-size:11px}.portal-login-icon{width:84px;height:84px;display:grid;place-items:center;background:#e5f3ec;color:#167c75;border-radius:24px;margin:0 auto 24px}.portal-login-icon svg{width:54px}.portal-signout{display:block!important;margin-top:22px;font-size:12px;color:#6a8183}.portal-error{color:#9b4437!important}.site-nav nav .portal-nav-login{background:var(--teal);color:white;padding:11px 14px;border-radius:8px}.site-nav nav .portal-nav-staff{font-size:11px;opacity:.85}.site-nav nav{flex-wrap:wrap;justify-content:flex-end}.swim-pass{max-width:1150px;margin:auto;color:#17434b}.pass-cover{position:relative;overflow:hidden;background:linear-gradient(115deg,#123e48,#176b73 64%,#2a9690);border-radius:28px;color:white;padding:32px 42px 40px;isolation:isolate}.pass-cover-top{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1}.pass-cover-top>span:first-child{font-weight:800;font-size:29px;letter-spacing:-1px}.pass-cover-top small{color:#c3e5df;font-size:8px;letter-spacing:2px;display:inline-block;margin-left:10px}.pass-serial{font-size:9px;letter-spacing:2px;color:#b3dbd4}.pass-cover-copy{position:relative;z-index:1;margin-top:34px;max-width:650px}.pass-kicker{font-size:9px;font-weight:750;letter-spacing:2px;color:#568985}.pass-cover .pass-kicker{color:#a2dacc}.pass-cover h1{font-size:clamp(30px,4vw,48px);font-weight:650;line-height:1.15;letter-spacing:-1.4px;margin:16px 0 25px}.pass-child{display:flex;gap:16px;align-items:center}.pass-avatar{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:#d7efb8;color:#174d50;font-size:27px;font-weight:650;box-shadow:0 0 0 5px #ffffff13}.pass-child h2{font-size:20px;margin:0 0 5px;color:#fff}.pass-child p{font-size:12px;margin:0;color:#c3e2dc;max-width:450px}.pass-cover-art{position:absolute;right:8%;top:32%;color:#b3e2d2;opacity:.7;transform:rotate(-8deg);z-index:0}.pass-cover-art svg{width:210px}.pass-water-rings{position:absolute;width:520px;height:520px;right:-160px;top:-60px;border-radius:50%;border:1px solid #ffffff20;box-shadow:0 0 0 45px #ffffff05,0 0 0 90px #ffffff05,0 0 0 135px #ffffff05;z-index:-1}.pass-stat-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:24px;background:#eaf2e8;border-radius:0 0 20px 20px;margin:-5px 18px 35px}.pass-stat-strip>div{display:flex;align-items:center;justify-content:center;gap:13px;border-right:1px solid #ccddd3}.pass-stat-strip>div:last-child{border:0}.pass-stat-strip strong{font-size:27px;letter-spacing:-1px}.pass-stat-strip span{font-size:11px;color:#607e79}.pass-section{background:#fff;border:1px solid #e0e9e3;border-radius:22px;padding:30px;margin-bottom:26px}.pass-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.pass-section-heading h2{font-size:25px!important;letter-spacing:-.6px;margin:10px 0 0}.pass-soft-tag{font-size:10px;padding:8px 12px;background:#edf5ee;border-radius:30px;color:#5c7b75;display:inline-block}.pass-badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:28px}.pass-badge{text-align:center;padding:10px 14px;max-width:320px;margin:auto}.pass-medallion{width:116px;height:116px;border-radius:50%;display:grid;place-items:center;position:relative;background:var(--badge-bg);color:var(--badge-ink);border:7px solid var(--badge-edge);box-shadow:0 0 0 3px #fff,0 0 0 4px var(--badge-edge),0 10px 20px #183f4814;margin:0 auto 25px}.pass-medallion:before{content:'';position:absolute;inset:5px;border:1px dashed currentColor;border-radius:50%;opacity:.5}.pass-medallion svg{width:60px;height:60px;filter:drop-shadow(0 1px 0 #ffffff60)}.pass-medallion>span{position:absolute;bottom:-6px;right:-6px;background:#fff;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;color:#297f6e;box-shadow:0 4px 10px #0001}.teal{--badge-bg:#d9efe7;--badge-edge:#8dbfae;--badge-ink:#227566}.coral{--badge-bg:#fff0df;--badge-edge:#efb391;--badge-ink:#d76a42}.blue{--badge-bg:#deedf8;--badge-edge:#99bed8;--badge-ink:#417ba3}.gold{--badge-bg:#fff2ba;--badge-edge:#e0c36c;--badge-ink:#9b7519}.bronze{--badge-bg:#f2ddc3;--badge-edge:#be9064;--badge-ink:#91613c}.silver{--badge-bg:#e8edf1;--badge-edge:#b6c5d0;--badge-ink:#6c8294}.pass-badge h3{font-size:17px;margin:0 0 8px}.pass-badge time,.pass-skill time{font-size:10px;color:#71918e}.pass-badge p{font-size:12px;color:#6d8583;line-height:1.7}.pass-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pass-skill{display:flex;align-items:start;gap:16px;padding:22px;background:#f7f9f5;border:1px solid #e7eee7;border-radius:15px;position:relative}.pass-skill h3{font-size:15px;line-height:1.5;margin:6px 12px 5px 0}.pass-skill p{font-size:11px;margin:0;color:#708783}.pass-skill-icon{width:53px;height:53px;display:grid;place-items:center;flex-shrink:0;background:var(--badge-bg);color:var(--badge-ink);border-radius:16px}.pass-skill-icon svg{width:34px;height:34px}.pass-check{color:#5d9d84;font-size:13px;margin-left:auto}.pass-learning-teaser{display:flex;align-items:center;gap:24px;background:#eaf0ed;border-radius:20px;padding:30px}.pass-learning-teaser h2{font-size:22px;margin-top:9px}.pass-learning-teaser p{font-size:12px;margin-bottom:0;color:#69837d;max-width:620px}.pass-learning-icon{width:75px;height:75px;display:grid;place-items:center;background:#d2e4df;border-radius:22px;color:#608d83;flex-shrink:0}.pass-learning-icon svg{width:45px}.pass-learning-teaser>.pass-soft-tag{margin-left:auto;white-space:nowrap}.pass-privacy-note{text-align:center;font-size:10px;color:#8aa19b;margin:25px}.pass-empty-art{text-align:center;padding:20px;color:#70958b}.pass-empty-art svg{width:75px;height:75px;margin-bottom:20px}.pass-empty-art p,.pass-empty{font-size:12px;color:#78918b}@media(max-width:900px){.pass-cover{padding:28px}.pass-cover-art{right:-10px;opacity:.25}.pass-skill-grid{grid-template-columns:1fr}.pass-cover-top small{display:block;margin-left:0}.pass-learning-teaser{flex-wrap:wrap}.pass-learning-teaser>.pass-soft-tag{margin-left:0}.portal-toolbar{align-items:start}}@media(max-width:600px){.portal-root{padding:24px 4vw}.portal-toolbar{display:block}.portal-toolbar>div:last-child{margin-top:18px;justify-content:space-between}.portal-toolbar h1{font-size:23px}.pass-cover{padding:24px;border-radius:20px}.pass-cover h1{font-size:31px}.pass-serial{display:none}.pass-cover-top>span:first-child{font-size:25px}.pass-child h2{font-size:17px}.pass-child p{font-size:10px}.pass-avatar{width:48px;height:48px;flex-shrink:0;font-size:23px}.pass-stat-strip{margin:0 8px 22px;padding:20px 10px}.pass-stat-strip>div{display:block;text-align:center;padding:0 8px}.pass-stat-strip span{display:block;font-size:9px;margin-top:5px}.pass-stat-strip strong{font-size:23px}.pass-section{padding:22px}.pass-section-heading{display:block}.pass-section-heading>.pass-soft-tag{margin-top:15px}.pass-section-heading h2{font-size:22px!important}.pass-skill{padding:18px;gap:12px}.pass-learning-teaser{padding:24px;gap:18px}.portal-login-card{padding:28px;margin-top:14px}.portal-login-card h1{font-size:27px}.pass-badge-grid{grid-template-columns:1fr}.pass-privacy-note{font-size:10px;line-height:1.8}}
.public-site .site-nav nav .portal-nav-login{color:var(--portal-login-text,#fff)}
.portal-toolbar>div:last-child{flex-wrap:wrap}.portal-toolbar select{max-width:100%}.portal-toolbar label{min-width:0;max-width:100%}
