:root {
    --league-navy: #0a2d59;
    --league-navy-2: #061f3f;
    --league-blue: #0d6efd;
    --league-red: #e0162b;
    --league-light: #f4f7fb;
    --league-border: #dce4ee;
}
body { background: #f7f9fc; color: #152238; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { text-decoration: none; }
.league-nav { min-height: 74px; }
.brand-mark { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 3px solid var(--league-navy); color: var(--league-red); font-size: 1.55rem; }
.brand-text { display: flex; flex-direction: column; line-height: .95; color: var(--league-navy); letter-spacing: .03em; }
.brand-text strong { font-size: 1.05rem; }
.brand-text small { color: var(--league-red); font-size: .62rem; font-weight: 800; letter-spacing: .11em; margin-top: .25rem; }
.nav-link { color: #172f50; font-weight: 600; }
.nav-link.active { color: var(--league-blue); border-bottom: 3px solid var(--league-blue); }
.hero { min-height: 390px; color: white; position: relative; background: linear-gradient(90deg, rgba(5,29,59,.94) 0%, rgba(5,29,59,.78) 38%, rgba(5,29,59,.20) 72%), url('../img/hero-baseball.png') center center / cover no-repeat; display: flex; align-items: center; }
.hero::after { content: ''; position: absolute; inset: auto 0 0; height: 5px; background: var(--league-red); }
.hero-content { position: relative; z-index: 2; max-width: 720px; padding: 4rem 0; }
.hero-eyebrow { text-transform: uppercase; letter-spacing: .28em; font-size: .72rem; font-weight: 800; opacity: .85; }
.hero h1 { font-size: clamp(2.4rem, 5vw, 4.8rem); font-weight: 850; line-height: .95; margin: 1rem 0; }
.hero p { font-size: 1.18rem; max-width: 580px; color: rgba(255,255,255,.9); }
.section-title { color: var(--league-navy); font-weight: 800; }
.info-card, .feature-card, .portal-card { background: #fff; border: 1px solid var(--league-border); border-radius: 14px; box-shadow: 0 7px 25px rgba(10,45,89,.06); }
.info-card { padding: 1.25rem; height: 100%; }
.info-card .icon { width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center; color: var(--league-blue); background: #eef5ff; font-size: 1.2rem; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: .35rem; }
.status-open { background: #20a65a; }
.status-limited { background: #e0a800; }
.table-league thead th { color: #52647a; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; border-bottom-width: 1px; }
.badge-soft-success { background: #e8f7ee; color: #167444; }
.badge-soft-danger { background: #fde9ec; color: #b2162a; }
.badge-soft-warning { background: #fff5db; color: #946f00; }
.quick-grid .feature-card { padding: 1.35rem; color: var(--league-navy); transition: transform .15s ease, box-shadow .15s ease; }
.quick-grid .feature-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(10,45,89,.12); }
.quick-grid i { font-size: 1.6rem; color: var(--league-red); }
.site-footer { background: var(--league-navy-2); color: white; }
.page-header { background: linear-gradient(135deg, var(--league-navy), #174c85); color: white; padding: 2.7rem 0; }
.portal-shell { min-height: calc(100vh - 74px); }
.portal-sidebar { background: var(--league-navy-2); color: white; min-height: calc(100vh - 74px); }
.portal-sidebar a { color: rgba(255,255,255,.78); display: flex; gap: .75rem; align-items: center; padding: .72rem .9rem; border-radius: 9px; margin-bottom: .25rem; }
.portal-sidebar a.active, .portal-sidebar a:hover { color: white; background: #0c61b8; }
.metric { font-size: 2rem; font-weight: 850; color: var(--league-navy); }
.login-wrap { min-height: calc(100vh - 74px); background: linear-gradient(115deg, rgba(5,29,59,.96), rgba(5,29,59,.76)), url('../img/hero-baseball.png') center / cover no-repeat; }
.login-card { max-width: 460px; margin: auto; border: 0; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.25); }
.header-logo { width: 100px; height: 100px; object-fit: contain; flex: 0 0 auto; }
.game-status-line { border-left: 4px solid var(--league-blue); padding-left: .85rem; }
.schedule-card { border: 1px solid var(--league-border); border-radius: 12px; background: #fff; }
.schedule-card .game-time { min-width: 92px; font-weight: 800; color: var(--league-navy); }
.result-score { font-size: 1.75rem; font-weight: 850; color: var(--league-navy); }
.deadline-overdue { color: #b2162a; font-weight: 800; }
.deadline-urgent { color: #946f00; font-weight: 800; }
@media (max-width: 991.98px) {
    .nav-link.active { border-bottom: 0; }
    .portal-sidebar { min-height: auto; }
    .hero { min-height: 480px; background-position: 68% center; }
}
.portal-topline{background:#fff;border-bottom:1px solid var(--league-border)}.form-section{border:1px solid var(--league-border);border-radius:14px;padding:1.25rem;background:#fff}.form-section-title{font-weight:800;color:var(--league-navy);margin-bottom:1rem}.roster-row:hover{background:#f7f9fc}.avatar-circle{width:38px;height:38px;border-radius:50%;background:#e9f2ff;color:var(--league-navy);display:grid;place-items:center;font-weight:800}.sidebar-brand{font-weight:800;letter-spacing:.04em}.logo-watermark{opacity:.05;position:absolute;right:2rem;bottom:2rem;width:220px}.badge-role{background:#e8f1ff;color:#174c85}.public-logo-lockup{max-height:110px;width:auto}.card-stat{border-left:4px solid var(--league-blue)}

/* Phase 5/6 operational UI */
.roster-builder select { min-width: 180px; }
.status-note { font-size: .875rem; color: var(--bs-secondary-color); }
