:root{font-family:Arial,Helvetica,sans-serif;color:#0f172a;background:#eef1f5;--navy:#0b1f3a;--navy-2:#132a4a;--gold:#d4a72c;--gold-soft:#f6ecd0;--ink:#0f172a;--muted:#667085;--line:#d9dee7;--panel:#ffffff;--soft:#f7f8fa}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f3f5f8,#e9edf2);color:var(--ink)}a{color:inherit;text-decoration:none}.shell{width:min(1160px,calc(100% - 32px));margin:0 auto}.site-header{background:var(--navy);color:white;border-bottom:3px solid var(--gold);box-shadow:0 5px 20px rgba(11,31,58,.15)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:900;letter-spacing:-.025em;font-size:18px}.brand:before{content:"●";color:var(--gold);margin-right:9px}.nav{display:flex;flex-wrap:wrap;gap:8px;font-size:14px}.nav a{opacity:.9;padding:9px 11px;border-radius:8px;font-weight:700}.nav a:hover{opacity:1;background:rgba(255,255,255,.08);color:#fff3c4}.page-stack{display:grid;grid-gap:24px;gap:24px;padding:38px 0 64px}.hero{padding:28px 4px 6px}.hero h1,.page-header h1{margin:6px 0 12px;max-width:800px;font-size:clamp(36px,5vw,60px);line-height:.98;letter-spacing:-.05em;color:var(--navy)}.hero-copy,.page-copy{max-width:720px;margin:0;font-size:18px;color:#526070;line-height:1.6}.page-header{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:24px 4px 4px}.eyebrow{margin:0 0 6px;font-size:12px;font-weight:900;letter-spacing:.13em;color:#7a8492}.gold-eyebrow{color:#a5790d}.summary-pill{white-space:nowrap;background:#dde3ea;border-radius:999px;padding:9px 12px;color:#435066;font-size:13px;font-weight:800}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(15,23,42,.06)}.premium-card{border-top:4px solid var(--gold)}.filters-card,.games-card,.roster-card,.roster-rules-card{padding:24px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px}h2,h3{margin:0;color:var(--navy)}h2{font-size:30px;letter-spacing:-.025em}h3{font-size:21px}.muted{color:var(--muted)}.date-form,.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.date-form label,.field label{display:block;width:100%;margin-bottom:6px;font-size:12px;font-weight:800;color:#667085}input[type=date],input[type=search],select{border:1px solid #cfd6df;border-radius:9px;padding:10px 11px;background:white;font:inherit;min-height:42px;color:var(--ink)}input:focus,select:focus{outline:3px solid rgba(212,167,44,.22);border-color:var(--gold)}.field{min-width:170px}.field-grow{flex:1 1 260px}.field-grow input{width:100%}.filter-actions{display:flex;gap:8px}.button,button{border:0;border-radius:9px;padding:10px 14px;font:inherit;font-weight:800;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button{background:var(--navy);color:white}.button:hover,button:hover{transform:translateY(-1px)}.button.secondary{background:#e8ecf1;color:var(--navy)}.gold-button{background:var(--gold);color:#172033;box-shadow:0 6px 16px rgba(212,167,44,.2)}.gold-button:hover{background:#e0b53d}.date-nav{display:flex;gap:8px;margin:22px 0 14px;flex-wrap:wrap}.game-list{border-top:1px solid var(--line)}.game-row{display:grid;grid-template-columns:130px 1fr 130px;grid-gap:20px;gap:20px;align-items:center;padding:18px 4px;border-bottom:1px solid #e7ebf0}.game-row:hover{background:#fbfcfd}.game-time{font-weight:900;color:var(--navy)}.matchup{display:grid;grid-gap:6px;gap:6px}.matchup>div:not(.at){font-weight:800}.team-code{display:inline-block;min-width:58px;margin-right:10px;color:#7b8492;font-size:12px}.at{color:#9ca3af;font-size:12px;margin-left:68px}.game-status{justify-self:end;text-transform:capitalize;font-size:13px;color:#667085}.empty-state{border-top:1px solid var(--line);margin-top:18px;padding:28px 4px 8px;color:#667085}.empty-state.no-border{border-top:0;margin:0;padding:28px}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.compact-card{padding:22px;min-height:150px}.compact-card .muted{line-height:1.55}.table-card{overflow:hidden}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);background:#f3f5f7;color:#6b7280;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.data-table td{padding:15px 16px;border-bottom:1px solid #e9edf2;vertical-align:middle}.data-table tbody tr:hover{background:#fbfcfd}.data-table tr:last-child td{border-bottom:0}.player-name{font-weight:900;color:var(--navy)}.table-subtext{margin-top:3px;color:#8a94a3;font-size:12px}.position-badge,.status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900}.position-badge{min-width:32px;background:var(--navy);color:white}.status-badge.pending{background:#f1f3f6;color:#667085}.status-badge.open{background:var(--gold-soft);color:#7e5b00}.roster-page-header{align-items:center}.roster-summary-card{min-width:220px;display:flex;align-items:center;gap:14px;background:var(--navy);color:white;border-radius:14px;padding:16px 18px;box-shadow:0 10px 26px rgba(11,31,58,.16)}.roster-summary-number{font-size:34px;line-height:1;font-weight:900;color:var(--gold)}.roster-summary-card span,.roster-summary-card strong{display:block}.roster-summary-card span{margin-top:3px;color:#c7d1df;font-size:12px}.lineup-alert{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:16px;gap:16px;background:#fffaf0;border:1px solid #ead9a6;border-left:5px solid var(--gold);border-radius:14px;padding:18px 20px}.lineup-alert p{margin:5px 0 0;color:#685d46;line-height:1.5}.lock-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-size:13px}.roster-groups{display:grid;grid-gap:22px;gap:22px}.roster-card-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.roster-title-block{display:flex;align-items:center;gap:14px}.roster-title-block p{margin:4px 0 0;color:#7b8492}.position-large{width:48px;height:48px;border-radius:12px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-size:18px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.filled-meter{display:flex;align-items:center;gap:10px;min-width:190px;color:#667085;font-size:12px;font-weight:800}.meter-track{flex:1 1;height:7px;background:#e6eaf0;border-radius:999px;overflow:hidden}.meter-fill{height:100%;background:var(--gold)}.lineup-board{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);grid-gap:14px;gap:14px;padding-top:20px;align-items:stretch}.lineup-column{border:1px solid #dce2e9;border-radius:13px;background:#fafbfc;overflow:hidden}.lineup-column.active{background:#f8fbff;border-color:#cbd7e6}.lineup-column.bench{background:#fbfbfc}.lineup-column-header{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;border-bottom:1px solid #e2e6eb;background:rgba(255,255,255,.7);color:var(--navy)}.lineup-column-header>div{display:flex;align-items:center;gap:8px}.lineup-column-header span{color:#7b8492;font-size:12px;font-weight:800}.lineup-dot{width:9px;height:9px;border-radius:50%}.lineup-dot.active{background:var(--gold);box-shadow:0 0 0 4px rgba(212,167,44,.14)}.lineup-dot.bench{background:#9aa4b2}.lineup-list{display:grid;grid-gap:8px;gap:8px;padding:10px}.roster-player-row{display:grid;grid-template-columns:36px 1fr auto;grid-gap:10px;gap:10px;align-items:center;min-height:62px;padding:10px;border:1px solid #e2e6eb;border-radius:10px;background:white}.roster-player-row:hover{border-color:#c9d1dc;box-shadow:0 4px 12px rgba(15,23,42,.05)}.empty-player-row{border-style:dashed;background:rgba(255,255,255,.68)}.player-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900}.empty-avatar{background:#edf0f4;color:#8791a0}.roster-player-main{min-width:0}.slot-name{font-weight:900;color:var(--navy)}.roster-action{border-radius:8px;padding:8px 9px;font-size:12px;font-weight:900;white-space:nowrap}.add-action{background:var(--gold-soft);color:#805e06}.add-action:hover{background:#f1dfab}.lineup-divider{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--navy)}.lineup-divider span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold);font-weight:900}.lineup-divider small{font-size:9px;color:#7b8492;font-weight:900;letter-spacing:.08em;text-align:center}.roster-help-card{padding:22px;display:grid;grid-template-columns:240px 1fr;grid-gap:26px;gap:26px;align-items:start}.help-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.help-steps>div{background:#f7f8fa;border:1px solid #e2e6eb;border-radius:12px;padding:14px}.help-steps span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:var(--gold);font-size:12px;font-weight:900;margin-bottom:10px}.help-steps strong{display:block;color:var(--navy)}.help-steps p{margin:5px 0 0;color:#6f7886;font-size:13px;line-height:1.45}@media (max-width:900px){.lineup-board{grid-template-columns:1fr}.lineup-divider{flex-direction:row;padding:2px 0}.lineup-divider small{text-align:left}.roster-help-card{grid-template-columns:1fr}}@media (max-width:760px){.header-inner,.page-header,.roster-card-header,.roster-rules-card,.section-heading{align-items:flex-start;flex-direction:column}.header-inner{padding:16px 0}.nav{gap:4px}.nav a{padding:7px 8px}.game-row{grid-template-columns:1fr;gap:8px}.game-status{justify-self:start}.dashboard-grid{grid-template-columns:1fr}.filters{align-items:stretch}.field,.field select{width:100%}.lineup-alert{grid-template-columns:auto 1fr}.lineup-alert .gold-button{grid-column:1/-1;text-align:center}.help-steps{grid-template-columns:1fr}.roster-summary-card{width:100%}}.brand-lockup{display:flex;flex-direction:column;gap:1px;line-height:1}.brand-lockup:before{display:none}.brand-main{color:#fff;font-size:20px;font-weight:950;letter-spacing:-.035em}.brand-sub{color:#d8b44a;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.nav-login{border:1px solid rgba(212,167,44,.55);color:#f6dc8d}.nav-login:hover{background:#d4a72c!important;color:#0b1f3a!important}.northside-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:end;grid-gap:42px;gap:42px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-stat-card{background:#0b1f3a;color:white;border-radius:18px;padding:22px;border-bottom:4px solid #d4a72c;box-shadow:0 14px 30px rgba(11,31,58,.16)}.hero-stat-card strong{display:block;margin:5px 0 18px;font-size:15px;line-height:1.35}.hero-stat-card>span:last-child{color:#bdc9d8;font-size:12px}.hero-stat-label{color:#d4a72c;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.hero-stat-number{color:#d4a72c;font-size:54px;line-height:.95;font-weight:950;letter-spacing:-.05em}.exhibition-status{color:#8a6b17;background:#f6ecd0;padding:5px 9px;border-radius:999px;font-weight:800}.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.action-card{display:flex;gap:16px;align-items:flex-start;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.action-card:hover{transform:translateY(-2px);border-color:#c9ab4d;box-shadow:0 12px 30px rgba(11,31,58,.1)}.action-icon{flex:0 0 42px;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#0b1f3a;color:#d4a72c;font-weight:950}.action-card p:last-child{margin-bottom:0}.site-footer{margin-top:28px;background:#07182e;color:#b9c4d2;border-top:3px solid #d4a72c}.footer-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.footer-inner div{display:flex;flex-direction:column;gap:2px}.footer-inner strong{color:white;font-size:15px}.footer-inner div span{color:#d4a72c;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:900}.auth-shell{min-height:calc(100vh - 163px);display:grid;place-items:center;padding:54px 0 70px}.auth-card{width:min(100%,470px);padding:34px}.signup-choice-card{width:min(100%,760px)}.auth-brand{color:#0b1f3a;font-size:30px;font-weight:950;letter-spacing:-.045em;margin-bottom:4px}.auth-card h1{margin:8px 0 12px;color:#0b1f3a;font-size:38px;letter-spacing:-.04em}.auth-form{display:grid;grid-gap:16px;gap:16px;margin-top:26px}.auth-form .field{width:100%}.auth-form input{width:100%;min-height:44px;border:1px solid #cfd6df;border-radius:9px;padding:10px 11px;font:inherit}.auth-secondary,.auth-submit{width:100%;text-align:center;display:block}.auth-submit{margin-top:4px;min-height:45px}.auth-submit:disabled,.mini-add-button:disabled,.roster-action:disabled{opacity:.55;cursor:wait;transform:none}.auth-divider{display:flex;align-items:center;gap:12px;margin:23px 0 14px;color:#7b8492;font-size:12px}.auth-divider:after,.auth-divider:before{content:"";height:1px;background:#d9dee7;flex:1 1}.auth-note{margin:16px 0 0;color:#929ba8;font-size:11px;text-align:center}.form-message{padding:11px 12px;border:1px solid #e5d49d;background:#fff8e7;color:#6f5715;border-radius:9px;font-size:13px;line-height:1.45}.form-message.error{border-color:#efc5c5;background:#fff3f3;color:#9b2c2c}.wide-message{margin:0}.optional-label{color:#929ba8;font-size:10px;font-weight:700}.signup-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:28px}.signup-choice{position:relative;display:grid;grid-template-columns:46px 1fr auto;grid-gap:14px;gap:14px;align-items:start;min-height:190px;padding:20px;border:1px solid #d9dee7;border-radius:14px;background:#fff;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.signup-choice:hover{transform:translateY(-2px);border-color:#d4a72c;box-shadow:0 10px 24px rgba(11,31,58,.08)}.signup-choice-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#0b1f3a;color:#d4a72c;font-weight:950}.signup-choice h2{margin:4px 0 8px;font-size:24px}.signup-choice p{margin:0;color:#667085;line-height:1.5}.choice-kicker{color:#9a7314;font-size:10px;font-weight:900;letter-spacing:.12em}.choice-arrow{color:#0b1f3a;font-size:24px;font-weight:900}.landing-shell{min-height:calc(100vh - 163px)}.landing-card{text-align:center}.landing-actions{display:grid;grid-gap:10px;gap:10px;margin-top:28px}.landing-primary,.landing-secondary{display:block;width:100%;text-align:center;padding:13px 16px}.roster-row-actions{display:flex;gap:5px;align-items:center}.switch-action{background:#f6ecd0;color:#76580a}.drop-action{background:#edf0f4;color:#6b7280}.drop-action:hover{background:#f8dddd;color:#8a3030}.player-avatar:not(.empty-avatar){background:#0b1f3a;color:#d4a72c;font-size:11px}.auth-required-card,.loading-card{padding:32px}.auth-required-card{max-width:620px}.player-add-control{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.mini-add-button{border:1px solid #d7ba5c;background:#fff8e7;color:#72560b;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:900}.mini-add-button:hover{background:#f6ecd0}.mini-add-button.added{background:#edf8ef;border-color:#b9d8bf;color:#2f6f3e}.mini-action-message{color:#497553;font-size:10px;max-width:160px;line-height:1.25}.mini-action-message.error{color:#9b2c2c}.inline-link{color:#8a6812;font-weight:900;text-decoration:underline}.rank-badge{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:50%;background:#e8ecf1;color:#0b1f3a;font-weight:900}.rank-badge.leader{background:#d4a72c;color:#0b1f3a}.points-cell{color:#0b1f3a;font-size:18px;font-weight:950}.invite-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px}.invite-card h2{margin:3px 0 8px;color:#0b1f3a;font-size:38px;letter-spacing:.08em}.league-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.league-list-card{overflow:hidden}.league-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid #e1e5eb}.league-list-heading>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#0b1f3a;color:#d4a72c;font-weight:900}.league-list{display:grid}.league-list-row{padding:14px 20px;border-bottom:1px solid #edf0f4}.league-list-row:last-child{border-bottom:0}.league-list-row span,.league-list-row strong{display:block}.league-list-row strong{color:#0b1f3a}.league-list-row span{margin-top:3px;color:#7d8795;font-size:12px}@media (max-width:820px){.northside-hero{grid-template-columns:1fr;gap:24px}.hero-stat-card{max-width:340px}.dashboard-actions,.league-columns{grid-template-columns:1fr}}@media (max-width:760px){.brand-lockup{margin-bottom:5px}.footer-inner{padding:20px 0;align-items:flex-start;flex-direction:column;min-height:auto}.auth-card{padding:25px}.auth-shell{padding-top:30px}.signup-choice-grid{grid-template-columns:1fr}.roster-row-actions{flex-direction:column;align-items:stretch}.roster-row-actions .roster-action{width:100%}.invite-card{align-items:flex-start;flex-direction:column}}.nav-account-button{border:1px solid rgba(212,167,44,.55);background:transparent;color:#f6dc8d;padding:9px 11px;border-radius:8px;font-size:14px;font-weight:700;box-shadow:none}.nav-account-button:hover{background:#d4a72c;color:#0b1f3a}.commissioner-card{padding:24px}.commissioner-search{margin-top:20px}.commissioner-search input[type=number],.commissioner-search input[type=text]{width:100%;min-height:42px;border:1px solid #cfd6df;border-radius:9px;padding:10px 11px;font:inherit}.commissioner-player-list{display:grid;margin-top:20px;border-top:1px solid #e1e5eb}.commissioner-player-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #edf0f4}.commissioner-player-row span,.commissioner-player-row strong{display:block}.commissioner-player-row strong{color:#0b1f3a}.commissioner-player-row span{margin-top:3px;color:#7d8795;font-size:12px}.commissioner-actions{display:flex;gap:7px}@media (max-width:700px){.commissioner-player-row{align-items:flex-start;flex-direction:column}.commissioner-actions{width:100%}.commissioner-actions button{flex:1 1}}