:root { --site-ink: #223a57; --site-muted: #576d87; --site-blue: #225eb8; --site-navy: #102f59; --site-gold: #f4bf4f; --site-border: #d7e3f2; --site-bg: #f0f5fc; }
* { box-sizing: border-box; }
html { font-size: 18px; scroll-behavior: smooth; scroll-padding-top: 6rem; }
body.public-site { --default-font: 'Nunito', sans-serif; --heading-font: 'Nunito', sans-serif; --nav-font: 'Nunito', sans-serif; margin: 0; color: var(--site-ink); font-family: 'Nunito', sans-serif; line-height: 1.6; background: var(--site-bg); }
.public-site h1,.public-site h2,.public-site h3,.public-site h4 { font-family: inherit; color: var(--site-ink); line-height: 1.25; font-weight: 800; }
.public-site a { color: inherit; text-decoration: none; }
.public-site a:hover { color: inherit; }
.public-site button,.public-site input,.public-site select { font: inherit; }
.public-site img { max-width: 100%; }
.public-site [hidden] { display: none !important; }
.public-site a:focus-visible,.public-site button:focus-visible,.public-site summary:focus-visible,.public-site input:focus-visible,.public-site select:focus-visible { outline: 3px solid #8db4ee; outline-offset: 4px; }
.site-container { width: min(1240px,calc(100% - 3rem)); margin: 0 auto; }
.public-skip { position: absolute; top: -5rem; left: 1rem; padding: .7rem 1rem; background: white; border-radius: .5rem; z-index: 100; }.public-skip:focus { top: 1rem; }
.public-header { position: sticky; top: 0; z-index: 50; background: linear-gradient(110deg,#102f59,#193f72); border-bottom: 3px solid var(--site-gold); box-shadow: 0 3px 16px #102f591a; }
.public-header-inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; min-height: 5rem; }
.public-brand { display: inline-flex; align-items: center; gap: .75rem; flex-shrink: 0; color: #183d72; }
.public-brand:hover { color: #183d72; }.public-brand img { width: 2.3rem; height: 2.9rem; object-fit: contain; }
.public-header .public-brand,.public-header .public-brand:hover { color: #fff; }.public-header .public-brand small { color: #f6cd79; }
.public-brand strong { display: block; font-size: 1.5rem; font-weight: 900; letter-spacing: .025em; line-height: 1.1; }.public-brand small { display: block; font-size: .56rem; font-weight: 800; letter-spacing: .11em; margin-top: .25rem; }
.public-navigation { display: flex; align-items: center; gap: .4rem; }.public-navigation > a { font-size: .8rem; padding: .65rem .75rem; border-radius: .45rem; color: #fff; font-weight: 700; white-space: nowrap; }.public-navigation > a:hover { color: #fff; background: #ffffff14; }.public-navigation > a[aria-current="page"] { color: #fff; background: #ffffff18; box-shadow: inset 0 -3px var(--site-gold); }
.public-navigation .nav-login { margin-left: .6rem; padding: .6rem 1rem; }
.public-menu-toggle { display: none; border: 1px solid #ffffff4d; color: #fff; background: #ffffff12; border-radius: .5rem; width: 2.6rem; height: 2.6rem; font-size: 1.5rem; }
.site-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1.2rem; border: 1px solid transparent; border-radius: .5rem; font-size: .86rem; font-weight: 800; line-height: 1.5; white-space: normal; }
.public-site .site-button-primary { background: var(--site-gold); border-color: var(--site-gold); color: #183456; box-shadow: 0 4px 12px #102f5912; }.public-site .site-button-primary:hover { background: #eeb13a; border-color: #eeb13a; color: #183456; }
.public-site .site-button-secondary { background: #e1ebfc; color: #254d80; border-color: #bacfec; }.public-site .site-button-secondary:hover { background: #d2e2fa; color: #254d80; border-color: #a7c2e8; }
.public-site .site-button { font-family: inherit; font-size: .86rem; font-weight: 800; line-height: 1.5; }.public-site .site-button-small { padding: .45rem .8rem; font-size: .78rem; }
.site-eyebrow { color: #315b8b; font-size: .68rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; margin: 0 0 .7rem; }
.site-lead { color: var(--site-muted); font-size: 1rem; line-height: 1.75; }
.public-hero { padding: 4rem 0 3.5rem; background: radial-gradient(ellipse at 5% 0%,#fff0cb 0,transparent 45%),radial-gradient(ellipse at 95% 100%,#cce8ee 0,transparent 50%),#e5effd; border-bottom: 1px solid #cbdcf1; }
.public-hero .site-eyebrow { display: inline-block; padding: .4rem .65rem; border-radius: .4rem; background: #d6e4f7; color: #254d80; }.hero-title-accent { color: #225eb8; }
.hero-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: 3.5rem; align-items: center; }
.public-hero h1 { font-size: clamp(2rem,3.55vw,3rem); line-height: 1.13; letter-spacing: -.035em; margin: 0 0 1.3rem; }.public-hero .site-lead { max-width: 34rem; margin-bottom: 1.5rem; }
.hero-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin: 1.5rem 0; }.hero-note { font-size: .78rem; color: #526b88; margin: 0; }.hero-note i { margin-right: .35rem; }
.hero-visual { position: relative; min-width: 0; padding-bottom: 1.5rem; }.hero-visual > img { width: 100%; height: 27rem; border-radius: 1rem; object-fit: cover; border: 7px solid white; box-shadow: 0 15px 50px #24446d14; }
.hero-progress-card { position: absolute; bottom: 0; left: -1.4rem; width: calc(100% - 1rem); background: var(--site-navy); color: #fff; border: 1px solid #234b7d; border-top: 3px solid var(--site-gold); border-radius: .8rem; padding: 1.15rem 1.4rem; box-shadow: 0 8px 30px #24446d26; }.hero-progress-card > strong { display: block; font-size: .9rem; margin-bottom: .75rem; }.hero-progress-card ol { display: flex; gap: .8rem; padding: 0; list-style: none; margin: 0; }.hero-progress-card li { flex: 1; font-size: .7rem; color: #e1ebf9; }.hero-progress-card li span { display: block; width: 1.5rem; height: 1.5rem; color: #183456; background: var(--site-gold); border-radius: 50%; text-align: center; line-height: 1.5rem; font-weight: 900; margin-bottom: .45rem; }.hero-progress-card li:nth-child(2) span { background: #a9d2ff; }.hero-progress-card li:nth-child(3) span { background: #8cdecb; }
.public-section { padding: 3.4rem 0; }.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1.7rem; }.section-heading h2 { font-size: 1.75rem; margin: 0 0 .5rem; letter-spacing: -.02em; }.section-heading p { margin: 0; color: var(--site-muted); font-size: .92rem; }
.feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; }.site-card { min-width: 0; background: white; border: 1px solid var(--site-border); border-radius: .85rem; padding: 1.5rem; }.site-card h2 { font-size: 1.25rem; }.site-card h3 { font-size: 1.08rem; margin: 1rem 0 .65rem; }.site-card p { font-size: .9rem; color: #62768f; margin-bottom: 0; line-height: 1.75; }.site-card .feature-icon { display: inline-flex; justify-content: center; align-items: center; width: 2.7rem; height: 2.7rem; background: #edf3fd; color: #4779ba; border-radius: .65rem; font-size: 1.3rem; }.site-card:nth-child(2) .feature-icon { color: #8065b9; background: #f1edfb; }.site-card:nth-child(3) .feature-icon { color: #338c77; background: #eaf6f2; }.site-card .card-link { display: inline-flex; gap: .6rem; align-items: center; font-size: .8rem; font-weight: 800; color: #405b7b; margin-top: 1.1rem; }
.public-banner { background: #123f7e; color: white; border-radius: .95rem; padding: 2rem 2.3rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }.public-banner h2 { color: white; font-size: 1.6rem; margin: 0 0 .6rem; }.public-banner p { color: #c6d6ec; font-size: .9rem; margin: 0; }.public-banner .site-button { flex-shrink: 0; }
.feature-grid > .site-card { background: #e8f0ff; border-color: #c5d8f5; border-top: 4px solid #225eb8; }.feature-grid > .site-card:nth-child(2) { background: #f0ebfa; border-color: #d9ccef; border-top-color: #7552a5; }.feature-grid > .site-card:nth-child(3) { background: #e2f3ed; border-color: #b9ddd0; border-top-color: #18745f; }
.feature-grid .site-card p { color: #4c617c; }.feature-grid .site-card .feature-icon { color: #fff; background: #225eb8; }.feature-grid .site-card:nth-child(2) .feature-icon { color: #fff; background: #7552a5; }.feature-grid .site-card:nth-child(3) .feature-icon { color: #fff; background: #18745f; }
.public-banner { background: var(--site-blue); border-top: 4px solid #194c97; }.public-banner p { color: #e2ecfc; }.public-banner .site-button-secondary { background: var(--site-gold); border-color: var(--site-gold); color: #183456; }.public-banner .site-button-secondary:hover { background: #eeb13a; border-color: #eeb13a; color: #183456; }
.public-page-hero { background: radial-gradient(ellipse at 100% 100%,#17655f66,transparent 65%),linear-gradient(110deg,#143761,#204e85); border-bottom: 4px solid #d4a64b; padding: 2.8rem 0; }.public-page-hero h1 { color: #fff; font-size: clamp(1.7rem,3vw,2.45rem); margin: 0 0 .75rem; letter-spacing: -.03em; }.public-page-hero .site-eyebrow { color: #f6cd79; }.public-page-hero p:last-child { max-width: 42rem; color: #d4e3f7; font-size: .95rem; margin: 0; }
.public-content-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 1.5rem; align-items: start; }.objective-copy { padding: 2rem; }.objective-copy h2 { font-size: 1.45rem; margin-bottom: 1.1rem; }.objective-copy p { margin: 0 0 1rem; text-align: left; }.objective-copy p:last-child { margin-bottom: 0; }.objective-aside { display: grid; gap: 1.2rem; }.objective-aside > img { width: 100%; height: 14rem; object-fit: cover; border-radius: .85rem; border: 1px solid var(--site-border); }.objective-aside .site-card h2 { font-size: 1.15rem; margin-bottom: .7rem; }
.objective-copy { border-top: 4px solid #225eb8; }.objective-aside .site-card { background: #fff4d9; border-color: #e7d4a4; }.objective-aside .site-card:last-child { background: #e2f3ed; border-color: #b9ddd0; }
.guide-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 1.5rem; align-items: start; }.guide-index { display: flex; gap: .6rem; flex-wrap: wrap; margin: 0 0 1.4rem; }.guide-index a { background: white; border: 1px solid #dce6f3; border-radius: .45rem; padding: .5rem .85rem; font-size: .8rem; font-weight: 800; color: #506b90; }
.guide-details { background: white; border: 1px solid var(--site-border); border-radius: .75rem; margin-bottom: 1rem; overflow: hidden; }.guide-details summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .8rem; padding: 1.2rem; font-size: .95rem; font-weight: 800; }.guide-details summary::-webkit-details-marker { display: none; }.guide-details summary > i:first-child { color: #6c8ebc; font-size: 1.15rem; }.guide-details summary > i:last-child { margin-left: auto; color: #7f95b2; font-size: .7rem; }.guide-details[open] summary { border-bottom: 1px solid #e8eef6; }.guide-details[open] summary > i:last-child { transform: rotate(180deg); }
.guide-steps { counter-reset: guide-step; list-style: none; padding: .5rem 1.3rem 1rem; margin: 0; }.guide-steps li { position: relative; padding: 1rem 0 1rem 2.65rem; counter-increment: guide-step; border-bottom: 1px solid #edf1f7; }.guide-steps li:last-child { border: 0; }.guide-steps li::before { content: counter(guide-step); position: absolute; left: 0; top: 1.1rem; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; background: #eef3fc; color: #5c7eab; border-radius: .45rem; font-size: .75rem; font-weight: 900; }.guide-steps h3 { font-size: .95rem; margin: 0 0 .4rem; }.guide-steps p { font-size: .86rem; color: #657b96; margin: 0; }.guide-video { position: sticky; top: 6.5rem; }.guide-video h2 { font-size: 1.15rem; margin-bottom: .5rem; }.guide-video p { margin: 0 0 1rem; }.video-frame { position: relative; aspect-ratio: 16/9; border-radius: .6rem; overflow: hidden; background: #eef2f8; }.video-frame iframe { width: 100%; height: 100%; border: 0; }.guide-note { margin-top: 1rem; padding: 1rem; background: #f3f7fd; border: 1px solid #e2eaf5; border-radius: .5rem; font-size: .8rem; color: #657b96; }
.team-intro { max-width: 50rem; margin-bottom: 2rem; }.team-intro h2 { font-size: 1.6rem; }.team-intro p { color: #657b96; font-size: .92rem; }.team-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.1rem; }.team-card { background: white; border: 1px solid var(--site-border); border-radius: .85rem; overflow: hidden; }.team-card img { display: block; width: 100%; height: 16rem; object-fit: cover; object-position: center 25%; background: #edf2f9; }.team-card > div { padding: 1.25rem; }.team-card h3 { font-size: 1rem; margin: 0 0 .35rem; }.team-card p { font-size: .7rem; letter-spacing: .08em; color: #7b8faa; margin: 0; font-weight: 800; }.team-story { max-width: 56rem; margin: 2rem auto 0; }.team-story p { margin-bottom: 1rem; }.team-story p:last-child { margin-bottom: 0; }
.repository-shell { background: white; border: 1px solid var(--site-border); border-radius: .85rem; overflow: hidden; }.repository-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; padding: 1.4rem; border-bottom: 1px solid #e7edf6; }.repository-toolbar form { display: flex; gap: .75rem; align-items: end; }.repository-toolbar label,.repository-controls label { display: block; font-size: .75rem; font-weight: 800; color: #687e9a; margin-bottom: .35rem; }.public-site .form-control,.public-site .form-select { font-size: .88rem; border-color: #dce5f1; border-radius: .45rem; color: #415d7e; padding: .65rem .85rem; }.repository-toolbar select { min-width: 10rem; }.repository-summary { font-size: .8rem; color: #6b819e; margin: 0; }.repository-controls { display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.4rem; background: #fafcfe; }.repository-controls .repository-search { flex: 0 1 25rem; }.repository-controls .repository-program { flex: 0 1 16rem; }.repository-scroll { overflow-x: auto; }.repository-table { width: 100%; min-width: 800px; border-collapse: collapse; }.repository-table th { padding: .9rem 1.3rem; font-size: .74rem; color: #6a7f9b; font-weight: 800; background: #f4f7fb; border-bottom: 1px solid #e1e8f2; white-space: nowrap; }.repository-table td { padding: 1.1rem 1.3rem; border-bottom: 1px solid #edf1f7; font-size: .9rem; vertical-align: middle; }.repository-table tr:last-child td { border: 0; }.repository-person { display: flex; gap: .75rem; align-items: center; min-width: 13rem; }.repository-person img { width: 2.5rem; height: 2.5rem; border-radius: .6rem; object-fit: cover; }.repository-table strong { display: block; color: #365473; font-size: .9rem; }.repository-table small { display: block; color: #6a7f9a; font-size: .76rem; margin-top: .25rem; max-width: 20rem; }.repository-table .site-button { white-space: nowrap; }.repository-footer { padding: .9rem 1.4rem; border-top: 1px solid #e5ecf5; font-size: .78rem; color: #7286a0; }
.site-empty { text-align: center; padding: 3rem 1.2rem; }.site-empty > i { display: block; color: #9db3d0; font-size: 2.3rem; margin-bottom: 1rem; }.site-empty h2,.site-empty h3 { font-size: 1.15rem; margin-bottom: .6rem; }.site-empty p { color: #6f839c; font-size: .88rem; }
.public-profile-shell.portal-app { background: transparent; }.public-profile-shell .profile-hero { margin-top: 0; }.public-profile-shell .information-list dd { font-size: .95rem; }.public-profile-record { border: 1px solid #e2eaf4; border-radius: .6rem; margin-bottom: .8rem; background: #fff; }.public-profile-record summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; cursor: pointer; list-style: none; }.public-profile-record summary::-webkit-details-marker { display: none; }.public-profile-record summary strong { display: block; font-size: 1rem; }.public-profile-record summary small { display: block; color: #6d829d; font-size: .76rem; margin-top: .35rem; }.public-record-body { border-top: 1px solid #e5ecf5; padding: 1.2rem; }.public-record-body p { white-space: pre-line; overflow-wrap: anywhere; margin: 0 0 .8rem; }.public-record-body p:last-child { margin-bottom: 0; }.public-profile-record .approved-label { background: #eaf6f0; color: #26795f; border-radius: .4rem; padding: .3rem .6rem; font-size: .73rem; font-weight: 800; white-space: nowrap; }
.public-footer { background: #102f59; color: #cad8ea; padding-top: 2.7rem; margin-top: 1rem; }.public-footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 2rem; padding-bottom: 2.2rem; }.public-footer .public-brand,.public-footer .public-brand:hover { color: white; margin-bottom: .9rem; }.public-footer h2 { color: white; font-size: .85rem; margin-bottom: 1rem; }.public-footer p { font-size: .8rem; color: #adc0d9; line-height: 1.8; max-width: 18rem; }.public-footer a:not(.public-brand) { display: block; font-size: .78rem; margin: .55rem 0; color: #c2d2e7; }.public-footer a:not(.public-brand):hover { color: #c2d2e7; text-decoration: underline; }.public-footer-bottom { padding-top: 1.1rem; padding-bottom: 1.1rem; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #ffffff16; font-size: .68rem; color: #9eb3cf; }
@media (max-width:1199px) { .public-header-inner { position: relative; }.public-menu-toggle { display: grid; place-items: center; }.public-navigation { display: none; position: absolute; left: 0; right: 0; top: calc(100% + .4rem); padding: .7rem; border: 1px solid var(--site-border); border-radius: .65rem; background: white; box-shadow: 0 12px 35px #203d6515; }.public-navigation.is-open { display: flex; flex-direction: column; align-items: stretch; }.public-navigation > a { padding: .8rem 1rem; }.public-navigation .nav-login { margin-left: 0; }.hero-grid { gap: 2rem; }.public-hero { padding-top: 3rem; }.public-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.team-card img { height: 20rem; } }
@media (max-width:991px) { .hero-grid,.public-content-grid,.guide-layout { grid-template-columns: minmax(0,1fr); }.hero-grid { gap: 2.5rem; }.hero-visual { width: 100%; max-width: 38rem; margin: 0 auto; }.hero-visual > img { height: 22rem; }.hero-progress-card { left: 1rem; width: calc(100% - 2rem); }.feature-grid { grid-template-columns: minmax(0,1fr); }.site-card h3 { margin-top: .8rem; }.guide-video { position: static; }.public-banner { flex-direction: column; align-items: flex-start; }.public-section { padding: 2.6rem 0; }.public-hero h1 { max-width: 40rem; } }
@media (max-width:767px) { .site-container { width: calc(100% - 2rem); }.public-header-inner { min-height: 4.5rem; }.public-page-hero { padding: 2rem 0; }.public-hero { padding: 2.2rem 0 2.6rem; }.public-hero h1 { font-size: 2rem; }.hero-visual > img { height: 19rem; }.hero-progress-card { padding: 1rem; }.hero-progress-card ol { gap: .4rem; }.hero-progress-card li { font-size: .64rem; }.public-section { padding: 2.1rem 0; }.section-heading { flex-direction: column; align-items: flex-start; }.section-heading h2 { font-size: 1.4rem; }.site-card,.objective-copy { padding: 1.25rem; }.public-banner { padding: 1.5rem; }.public-banner h2 { font-size: 1.35rem; }.public-footer-grid { gap: 1.5rem; }.public-footer-bottom { flex-direction: column; gap: .4rem; }.repository-toolbar,.repository-controls { padding: 1rem; flex-direction: column; align-items: stretch; }.repository-toolbar form { flex-direction: column; align-items: stretch; }.repository-toolbar select { min-width: 0; }.repository-controls .repository-search,.repository-controls .repository-program { flex: auto; }.repository-table,.repository-table tbody,.repository-table tr,.repository-table td { display: block; min-width: 0; width: 100%; }.repository-table thead { display: none; }.repository-table tbody { padding: 0 1rem; }.repository-table tr { padding: 1rem 0; border-bottom: 1px solid #e4ebf4; }.repository-table td { border: 0; padding: .5rem 0; }.repository-table td[data-label]::before { content: attr(data-label); display: block; color: #70849f; font-size: .7rem; margin-bottom: .35rem; }.repository-scroll { overflow: visible; }.repository-person { min-width: 0; }.repository-table small { max-width: none; }.public-profile-record summary { align-items: flex-start; flex-direction: column; } }
@media (max-width:479px) { .hero-actions { flex-direction: column; }.hero-actions .site-button { width: 100%; }.hero-visual > img { height: 17rem; }.team-grid,.public-footer-grid { grid-template-columns: minmax(0,1fr); }.team-card img { height: 22rem; }.public-footer-grid { gap: 1rem; }.public-header .public-brand strong { font-size: 1.35rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }
.public-legacy .page-title { padding: 2.5rem 0 !important; background-image: none !important; background-color: #edf3fc !important; }
.public-legacy .page-title::before { display: none; }
.public-legacy .page-title h1 { color: #223a57; font-size: 2rem; font-weight: 800; }
.public-legacy .page-title p { color: #62768f; }
.public-legacy .section { background: transparent; padding: 2.5rem 0; }
.public-legacy .admissions-info, .public-legacy .admissions-form { background: #fff; border: 1px solid #e0e8f2; border-radius: .85rem; box-shadow: none; }
.public-legacy .contact-form-wrapper { background: #fff; border: 1px solid #e0e8f2; border-radius: .85rem; box-shadow: none; }
.public-legacy .form-control, .public-legacy .form-select { border-color: #dce5f1; background: #fff; color: #415d7e; }
.public-legacy .main { min-height: 50vh; }
.public-footer details { font-size: .78rem; color: #c2d2e7; }
.public-footer summary { cursor: pointer; font-weight: 700; }

/* Carry the public palette through guides, directories and registration. */
.public-site .guide-index a,.public-site .guide-index a:hover { background: #dce9fc; border-color: #bacfec; color: #254d80; }
.public-site .guide-index a:nth-child(2),.public-site .guide-index a:nth-child(2):hover { background: #e3f2ed; border-color: #b9ddd0; color: #216551; }
.public-site .guide-index a:nth-child(3),.public-site .guide-index a:nth-child(3):hover { background: #eee6f9; border-color: #d9ccef; color: #684693; }
.public-site .guide-index a:nth-child(4),.public-site .guide-index a:nth-child(4):hover { background: #fff1ce; border-color: #e7d4a4; color: #795b19; }
.guide-details { border-left: 4px solid #225eb8; }.guide-details summary { background: #eaf1fd; }.guide-details summary > i:first-child { color: #225eb8; }
.guide-details:nth-child(3) { border-left-color: #18745f; }.guide-details:nth-child(3) summary { background: #e7f4ef; }.guide-details:nth-child(3) summary > i:first-child { color: #18745f; }
.guide-details:nth-child(4) { border-left-color: #7552a5; }.guide-details:nth-child(4) summary { background: #f0ebfa; }.guide-details:nth-child(4) summary > i:first-child { color: #7552a5; }
.guide-steps li::before { background: #22528e; color: #fff; }.guide-video { border-top: 4px solid #d4a64b; }.guide-note { background: #fff3d6; border-color: #e7d4a4; color: #6e5723; }.guide-note a { text-decoration: underline; text-underline-offset: .15rem; }
.team-card { border-color: #cbd9ec; }.team-card > div { background: #163e70; border-top: 3px solid var(--site-gold); }.team-card h3 { color: #fff; }.team-card p { color: #f6cd79; }.team-story { background: #e8f0ff; border-color: #c5d8f5; }
.repository-toolbar { background: #e4eefc; }.repository-toolbar label,.repository-controls label { color: #355981; }.repository-summary { color: #4d6789; }.repository-controls { background: #f1f6fd; }.repository-table th { background: #1c4579; color: #fff; border-color: #31588a; }.repository-footer { background: #eaf1fb; color: #4d6789; }
.public-profile-shell .profile-hero { border-top: 4px solid #d4a64b; }.public-profile-record summary { background: #edf4fd; }
.public-footer { border-top: 4px solid var(--site-gold); }.public-footer .public-brand small { color: #f6cd79; }
.public-legacy .page-title { background: linear-gradient(110deg,#143761,#204e85) !important; border-bottom: 4px solid #d4a64b; }.public-legacy .page-title h1 { color: #fff; }.public-legacy .page-title p { color: #d4e3f7; }
.public-legacy .admissions-info,.public-legacy .admissions-form,.public-legacy .contact-form-wrapper { border-top: 4px solid #225eb8; }
.public-legacy .btn-primary { background-color: #225eb8 !important; color: #fff !important; }.public-legacy .btn-primary:hover { background-color: #194c97 !important; color: #fff !important; }
.public-legacy .engagement-card { background: #e8f0ff; border: 1px solid #c5d8f5; border-top: 4px solid #225eb8; }.public-legacy .engagement-card .card-icon { background: #225eb8; color: #fff; }
.public-legacy .engagement-card .card-link,.public-legacy .engagement-card .card-link:hover { background: #225eb8; color: #fff; }
@media (max-width:1199px) { .public-header .public-navigation { background: #143761; border-color: #42628c; box-shadow: 0 12px 35px #102f5933; } }

/* Account access follows the public navigation, color and type system. */
.auth-main { background: radial-gradient(ellipse at 0 0,#fff0cb,transparent 45%),#eaf1fc; }
.auth-shell { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); max-width: 1080px; margin: 0 auto; border: 1px solid #c9d9ee; border-radius: 1rem; overflow: hidden; box-shadow: 0 16px 45px #163e7014; background: #fff; }
.auth-intro { background: #173e70; color: #e1ebf9; padding: 2rem; border-top: 4px solid var(--site-gold); }
.auth-intro .site-eyebrow { color: #f6cd79; }.auth-intro h2 { color: #fff; font-size: 2rem; letter-spacing: -.025em; margin: 0 0 1rem; }.auth-intro > p:not(.site-eyebrow) { font-size: .9rem; margin-bottom: 1.2rem; }
.auth-benefits { padding: 0; margin: 0 0 1.4rem; list-style: none; display: grid; gap: .7rem; font-size: .83rem; }.auth-benefits li { display: flex; gap: .65rem; align-items: center; }.auth-benefits i { color: #f6cd79; font-size: 1.05rem; }
.auth-intro > img { display: block; width: 100%; height: 10rem; border-radius: .6rem; object-fit: cover; border: 1px solid #ffffff33; }.auth-intro > small { display: block; margin-top: .9rem; color: #d0dff2; font-size: .68rem; }
.auth-content { padding: 2.2rem; align-self: center; min-width: 0; }.auth-content h1 { font-size: 1.85rem; margin: 0 0 .65rem; letter-spacing: -.025em; }.auth-description { color: #576d87; font-size: .88rem; margin-bottom: 1.5rem; }
.auth-form { display: grid; gap: 1.15rem; }.auth-field label,.registration-field label { display: block; color: #294b74; font-size: .8rem; font-weight: 800; margin: 0 0 .4rem; }.auth-label-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .35rem; }.public-site .auth-label-row a { color: #254d80; font-size: .74rem; font-weight: 800; }
.auth-field .form-control { background: #f7faff; min-height: 2.8rem; border-color: #c9d9ee; }.public-site .auth-submit { width: 100%; min-height: 2.8rem; margin-top: .2rem; }
.auth-field-help { color: #576d87; font-size: .72rem; margin: .4rem 0 0; }.auth-code { letter-spacing: .25em; font-size: 1.25rem !important; font-weight: 800; text-align: center; }
.auth-next { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid #e0e8f2; text-align: center; }.auth-next p { color: #576d87; font-size: .8rem; margin-bottom: .6rem; }.auth-next .site-button { width: 100%; }
.public-site .auth-back { display: flex; justify-content: center; align-items: center; gap: .5rem; margin-top: 1.4rem; font-size: .78rem; color: #405e83; font-weight: 800; }.public-site .auth-back:hover,.public-site .auth-label-row a:hover { color: #254d80; text-decoration: underline; text-underline-offset: .2rem; }
.auth-help { display: flex; align-items: flex-start; gap: .7rem; padding: .9rem; margin: 1.1rem 0; background: #eaf1fd; border: 1px solid #cbdcf4; border-radius: .5rem; color: #355981; font-size: .78rem; }.auth-help p { margin: 0; overflow-wrap: anywhere; }.auth-help > i { font-size: 1.1rem; }
.auth-alert { background: #fff0ee; color: #963f34; border: 1px solid #ebc2bc; border-left: 4px solid #b64d40; border-radius: .5rem; padding: .85rem; margin-bottom: 1.2rem; font-size: .82rem; }.auth-notice { background: #e2f3ed; color: #216551; border-color: #b9ddd0; }
.registration-layout { display: grid; grid-template-columns: minmax(14rem,.85fr) minmax(0,2.2fr); align-items: start; gap: 1.5rem; }.registration-aside { background: #173e70; color: #d9e6f7; border-radius: .85rem; border-top: 4px solid var(--site-gold); padding: 1.5rem; }.registration-aside .site-eyebrow { color: #f6cd79; }.registration-aside h2 { color: #fff; font-size: 1.45rem; margin-bottom: 1.4rem; }
.registration-aside ol { counter-reset: registration-step; list-style: none; padding: 0; margin: 0; display: grid; gap: 1.3rem; }.registration-aside li { counter-increment: registration-step; padding-left: 2.3rem; position: relative; }.registration-aside li::before { content: counter(registration-step); position: absolute; left: 0; top: .1rem; background: #f4bf4f; color: #183456; width: 1.6rem; height: 1.6rem; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; font-weight: 900; }.registration-aside strong { display: block; color: #fff; font-size: .85rem; margin-bottom: .3rem; }.registration-aside li span { display: block; font-size: .78rem; }.registration-aside-footer { border-top: 1px solid #ffffff33; padding-top: 1rem; margin-top: 1.4rem; }.registration-aside-footer p { font-size: .8rem; margin: 0 0 .6rem; }
.registration-card { border-top: 4px solid #225eb8; padding: 1.7rem; }.registration-card-heading { display: flex; gap: .85rem; align-items: center; margin-bottom: 1.6rem; }.registration-card-heading .feature-icon { flex-shrink: 0; background: #e1ebfc; color: #225eb8; }.registration-card-heading h2 { font-size: 1.3rem; margin: 0 0 .3rem; }.registration-card-heading p { font-size: .8rem; margin: 0; }
.registration-card .form-control { background: #f7faff; min-height: 2.8rem; border-color: #c9d9ee; }.registration-card select.form-control { padding-right: 1.5rem; }.public-site .registration-submit { margin-top: .7rem; width: 100%; min-height: 2.8rem; }.registration-roles .site-card { display: flex; flex-direction: column; }.registration-roles h2 { margin-top: 1rem; }.registration-roles p { margin: 0 0 1.4rem; }.registration-roles .site-button { margin-top: auto; }.registration-login { margin: 1.8rem 0 0; text-align: center; font-size: .86rem; color: #576d87; }.public-site .registration-login a,.public-site .registration-login a:hover { color: #254d80; font-weight: 800; }
.team-story { width: 100%; max-width: none; margin: 2rem 0 0; }.team-intro { max-width: none; }.public-site .repository-apply { font-weight: 900; }
.public-site .scroll-top { border: 0; background: #225eb8; color: #fff; }.public-site .scroll-top:hover { background: #194c97; color: #fff; }
@media (max-width:991px) { .auth-shell { grid-template-columns: minmax(0,1fr); max-width: 38rem; }.auth-intro { padding: 1.6rem; }.auth-intro h2 { font-size: 1.6rem; }.auth-intro h2 br { display: none; }.auth-intro > img,.auth-intro > small,.auth-benefits { display: none; }.auth-intro > p:not(.site-eyebrow) { margin-bottom: 0; }.auth-content { padding: 1.8rem; }.registration-layout { grid-template-columns: minmax(0,1fr); }.registration-aside ol { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }.registration-aside-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.registration-aside-footer p { margin: 0; } }
@media (max-width:575px) { .auth-section { padding: 1.5rem 0; }.auth-intro { padding: 1.25rem; }.auth-content { padding: 1.4rem 1.15rem; }.auth-content h1 { font-size: 1.6rem; }.registration-card { padding: 1.2rem; }.registration-aside { padding: 1.25rem; }.registration-aside ol { grid-template-columns: minmax(0,1fr); gap: 1rem; }.registration-card-heading { align-items: flex-start; }.registration-card-heading h2 { font-size: 1.15rem; } }
@media (max-width:991px) { .registration-card { grid-row: 1; }.registration-aside { grid-row: 2; } }
