html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* Portal styles (from index.html.txt) */
:root {
  --navy: #0d1f3c;
  --navy-mid: #162d52;
  --navy-light: #1e3a6a;
  --green: #1a5c2a;
  --green-bright: #22762f;
  --green-accent: #2ecc52;
  --gold: #c99700;
  --gold-soft: #e3bf65;
  --white: #ffffff;
  --gray: #c2cee2;
  --card-bg: #162d52;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Source Sans 3', sans-serif; font-size: 1.06rem; background: var(--navy); color: var(--white); min-height: 100vh; }
header { background: var(--navy); border-bottom: 3px solid var(--green-bright); position: sticky; top: 0; z-index: 100; box-shadow: 0 4px 20px rgba(0,0,0,0.5); }
.header-inner { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; height: 72px; }
.logo-area { display: flex; align-items: center; gap: 1rem; }
.logo-area-link { text-decoration: none; color: inherit; cursor: pointer; }
.logo-area-link:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 3px; border-radius: 4px; }
.logo-shield-image { width: 56px; height: 56px; object-fit: contain; display: block; flex-shrink: 0; border-radius: 4px; }
.logo-text h1 { font-family: 'Oswald', sans-serif; font-size: 1.2rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; line-height: 1.1; color: var(--gold-soft); }
.logo-text span { font-size: 0.7rem; color: var(--gold-soft); letter-spacing: 3px; text-transform: uppercase; }
nav { display: flex; gap: 0.25rem; }
nav a { color: #d7e1f0; text-decoration: none; font-family: 'Oswald', sans-serif; font-size: 0.85rem; letter-spacing: 1.5px; text-transform: uppercase; padding: 0.5rem 0.9rem; border-radius: 4px; transition: all 0.2s; }
nav a:hover { color: var(--white); background: var(--navy-light); }
nav a.active { color: var(--green-accent); background: var(--navy-light); }
nav a.spring-schedule-nav {
    background: linear-gradient(135deg, rgba(26, 92, 42, 0.95), rgba(34, 118, 47, 0.95));
    border: 1px solid rgba(227, 191, 101, 0.7);
    color: var(--gold-soft);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 10px rgba(227, 191, 101, 0.2);
}
nav a.spring-schedule-nav:hover,
nav a.spring-schedule-nav.active {
    color: var(--white);
    border-color: var(--gold-soft);
    background: linear-gradient(135deg, var(--green), var(--green-bright));
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2) inset, 0 0 14px rgba(46, 204, 82, 0.25);
}
.notice { background: linear-gradient(90deg, var(--green), var(--navy-light)); padding: 0.6rem 2rem; text-align: center; font-size: 0.75rem; letter-spacing: 1.5px; text-transform: uppercase; }
.hero { background: linear-gradient(135deg, var(--navy) 0%, #152a45 22%, var(--navy-mid) 44%, #174038 58%, #145236 72%, var(--green) 86%, #0f4a34 100%); padding: 4rem 2rem 1.5rem; text-align: center; position: relative; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(-45deg, transparent, transparent 40px, rgba(255,255,255,0.015) 40px, rgba(255,255,255,0.015) 80px); pointer-events: none; }
.hero-badge { display: inline-block; background: linear-gradient(135deg, #002f1c 0%, var(--green) 55%, #0d4a2e 100%); color: var(--gold-soft); font-family: 'Oswald', sans-serif; font-size: 0.7rem; letter-spacing: 3px; text-transform: uppercase; padding: 0.4rem 1.2rem; border-radius: 2px; margin-bottom: 1.2rem; border: 1px solid var(--green-bright); box-shadow: 0 0 0 1px rgba(0,0,0,0.35) inset, 0 1px 0 rgba(255,255,255,0.06) inset; }
.hero h2 { font-family: 'Oswald', sans-serif; font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; letter-spacing: 3px; text-transform: uppercase; line-height: 1.05; margin-bottom: 0.75rem; }
.hero h2 span { color: var(--gold-soft); }
.hero p { color: var(--gray); font-size: 1rem; max-width: 560px; margin: 0 auto 2rem; line-height: 1.6; }
.spring-schedule-callout-wrap { padding-top: 0.3rem; padding-bottom: 1rem; max-width: 900px; margin: 0 auto; position: relative; z-index: 1; }
.spring-schedule-callout { display: flex; flex-direction: column; gap: 0.45rem; padding: 1rem 1.2rem; border-radius: 10px; border: 1px solid rgba(46, 204, 82, 0.5); background: linear-gradient(135deg, rgba(20, 82, 54, 0.35), rgba(15, 56, 94, 0.25)); text-decoration: none; }
.spring-schedule-callout-text { font-family: 'Source Sans 3', sans-serif; font-size: clamp(1rem, 2.2vw, 1.25rem); letter-spacing: 0.2px; text-transform: none; color: var(--gold-soft); }
.spring-schedule-callout:hover { border-color: rgba(46, 204, 82, 0.8); background: linear-gradient(135deg, rgba(20, 82, 54, 0.45), rgba(15, 56, 94, 0.35)); }
.hero-stats { display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap; }
.stat-item .num { font-family: 'Oswald', sans-serif; font-size: 2.2rem; font-weight: 700; color: var(--gold-soft); display: block; line-height: 1; }
.stat-item .label { font-size: 0.72rem; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-soft); margin-top: 0.3rem; }
.section { max-width: 1200px; margin: 0 auto; padding: 3rem 2rem; }
.section-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; }
.section-header h3 { font-family: 'Oswald', sans-serif; font-size: 1.4rem; letter-spacing: 3px; text-transform: uppercase; font-weight: 600; white-space: nowrap; }
.section-header .line { flex: 1; height: 2px; background: linear-gradient(to right, #002f1c, var(--green-bright), #0d4a2e, transparent); border-radius: 1px; }
.section-header .tag { font-size: 0.65rem; letter-spacing: 2px; color: var(--gold-soft); text-transform: uppercase; background: rgba(212,175,55,0.12); padding: 0.3rem 0.8rem; border-radius: 2px; border: 1px solid rgba(212,175,55,0.4); white-space: nowrap; }
.roster-filter-title { margin: 0 0 1rem; font-family: 'Oswald', sans-serif; font-size: 0.92rem; letter-spacing: 1.2px; text-transform: uppercase; color: var(--gray); line-height: 1.45; }
.filter-bar { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 2rem; background: var(--navy-mid); padding: 1rem 1.5rem; border-radius: 8px; border: 1px solid var(--navy-light); align-items: center; }
.filter-bar label { font-size: 0.9rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gray); margin-right: 0.5rem; }
.filter-btn { background: transparent; border: 1px solid rgba(255,255,255,0.26); color: #e3eaf5; font-family: 'Oswald', sans-serif; font-size: 0.95rem; letter-spacing: 1px; text-transform: uppercase; padding: 0.5rem 1.1rem; border-radius: 4px; cursor: pointer; transition: all 0.2s; }
.filter-btn:hover, .filter-btn.active { background: linear-gradient(135deg, #002f1c 0%, var(--green) 55%, #0d4a2e 100%); border-color: var(--green-bright); color: var(--white); box-shadow: 0 0 0 1px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.05) inset; }
.player-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
.player-card { background: var(--card-bg); border-radius: 10px; border: 1px solid rgba(255,255,255,0.14); overflow: hidden; transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; animation: fadeUp 0.4s ease both; }
.player-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.4); border-color: var(--gold); }
.card-top { background: linear-gradient(135deg, #002f1c 0%, var(--green) 55%, #0d4a2e 100%); padding: 1.25rem 1.25rem 0; position: relative; min-height: 90px; box-shadow: 0 0 0 1px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.05) inset; }
.jersey-number { font-family: 'Oswald', sans-serif; font-size: 3.5rem; font-weight: 700; color: rgba(255,255,255,0.15); position: absolute; top: 0.5rem; right: 1rem; line-height: 1; }
.position-badge { background: linear-gradient(135deg, var(--gold), var(--gold-soft)); color: #1c1f27; font-family: 'Oswald', sans-serif; font-size: 0.75rem; font-weight: 700; letter-spacing: 2px; padding: 0.3rem 0.8rem; border-radius: 3px; margin-bottom: 0.4rem; display: inline-block; }
.player-name-block { padding-bottom: 0.75rem; }
.player-name-block h4 { font-family: 'Oswald', sans-serif; font-size: 1.3rem; font-weight: 600; letter-spacing: 1px; line-height: 1.1; }
.player-name-block .grad { font-size: 0.72rem; color: rgba(255,255,255,0.84); letter-spacing: 2px; text-transform: uppercase; margin-top: 0.2rem; }
.card-body { padding: 1.25rem; }
.player-bio { font-size: 1.1rem; color: #e5edf9; line-height: 1.75; margin-bottom: 1rem; padding: 0.85rem; background: rgba(255,255,255,0.06); border-left: 2px solid var(--green-bright); border-radius: 0 4px 4px 0; font-style: italic; }
.measurables { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin-bottom: 1rem; }
.meas-item { background: rgba(255,255,255,0.06); border-radius: 6px; padding: 0.5rem 0.4rem; text-align: center; border: 1px solid rgba(255,255,255,0.12); }
.meas-val { font-family: 'Oswald', sans-serif; font-size: 1.05rem; font-weight: 600; color: var(--white); display: block; line-height: 1; }
.meas-lbl { font-size: 0.6rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gray); margin-top: 0.2rem; display: block; }
.academic-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin-bottom: 1rem; }
.acad-chip { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 6px; padding: 0.5rem 0.4rem; display: flex; flex-direction: column; align-items: center; gap: 0.2rem; text-align: center; }
.acad-chip-label { font-size: 0.6rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gray); font-weight: 600; line-height: 1.2; }
.acad-chip-value { font-family: 'Oswald', sans-serif; font-size: 1.05rem; font-weight: 600; color: var(--white); letter-spacing: 0.4px; line-height: 1.1; }
.interests { margin-bottom: 1rem; }
.verified-label { font-size: 0.78rem; letter-spacing: 1.5px; color: var(--gold-soft); text-transform: uppercase; margin-bottom: 0.4rem; }
.interest-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.4rem; }
.int-tag { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 3px; padding: 0.2rem 0.6rem; font-size: 0.68rem; color: var(--gray); letter-spacing: 0.5px; }
.card-footer { display: flex; gap: 0.5rem; padding-top: 0.75rem; border-top: 1px solid rgba(255,255,255,0.06); }
.btn-hudl { flex: 0 0 auto; background: linear-gradient(135deg, var(--green), var(--green-bright)); color: var(--white); border: none; font-family: 'Oswald', sans-serif; font-size: 0.8rem; letter-spacing: 1.5px; text-transform: uppercase; padding: 0.65rem 1rem; border-radius: 5px; cursor: pointer; text-decoration: none; text-align: center; display: flex; align-items: center; justify-content: center; gap: 0.4rem; transition: opacity 0.2s; }
.btn-hudl:hover { opacity: 0.85; }
.btn-contact { background: transparent; color: #dce6f5; border: 1px solid rgba(255,255,255,0.28); font-family: 'Oswald', sans-serif; font-size: 0.8rem; letter-spacing: 1px; padding: 0.65rem 0.9rem; border-radius: 5px; cursor: pointer; transition: all 0.2s; text-decoration: none; display: flex; align-items: center; gap: 0.3rem; }
.btn-contact:hover { border-color: var(--green-accent); color: var(--green-accent); }
.staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.staff-card { background: var(--navy-mid); border-radius: 8px; padding: 1.5rem; border: 1px solid var(--navy-light); text-align: center; }
.staff-avatar { width: 60px; height: 60px; background: linear-gradient(135deg, var(--green), var(--navy-light)); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Oswald', sans-serif; font-size: 1.3rem; font-weight: 700; margin: 0 auto 1rem; color: white; }
.staff-name { font-family: 'Oswald', sans-serif; font-size: 1.2rem; letter-spacing: 1px; margin-bottom: 0.25rem; }
.staff-title { font-size: 0.82rem; color: var(--gold-soft); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 0.85rem; }
.staff-contact { font-size: 1.08rem; color: var(--gray); line-height: 1.75; }
.staff-contact a { color: var(--gray); text-decoration: none; }
.staff-contact a:hover { color: var(--green-accent); }
footer { background: #080f1e; border-top: 2px solid var(--gold); padding: 2rem; text-align: center; margin-top: 2rem; }
footer .footer-logo { font-family: 'Oswald', sans-serif; font-size: 1rem; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 0.5rem; }
footer p { font-size: 0.75rem; color: var(--gray); letter-spacing: 1px; line-height: 2; }
footer a { color: var(--gold-soft); text-decoration: none; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 600px) { nav { display: none; } .hero-stats { gap: 1.5rem; } .player-grid { grid-template-columns: 1fr; } .filter-bar label { flex-basis: 100%; margin-right: 0; } }

/* Extra portal bits used by the HTML */
.college-offers { margin-top: 0.35rem; }
.offers-label { font-size: 0.82rem; letter-spacing: 1.5px; color: var(--gray); text-transform: uppercase; margin-bottom: 0.3rem; }
.offers-list { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.offer { font-size: 0.9rem; color: var(--gray); letter-spacing: 0.8px; text-transform: none; }

.schedule-section { margin-top: 1rem; }
.schedule-empty { color: var(--gray); font-size: 0.9rem; padding: 0.5rem 0; }
.schedule-table-wrap { border-radius: 8px; overflow: hidden; border: 1px solid rgba(255,255,255,0.18); }
.schedule-table { font-size: 0.85rem; }
.schedule-table thead th { font-family: 'Oswald', sans-serif; letter-spacing: 1px; text-transform: uppercase; font-size: 0.72rem; color: var(--green-accent); border-color: rgba(255,255,255,0.1); }
.schedule-table td { border-color: rgba(255,255,255,0.06); vertical-align: middle; }
