.auth-page { min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; padding: 24px 20px; background: radial-gradient(circle at 90% 3%, #d8ebdd 0, transparent 31%), var(--cream); }
.auth-logo { display:flex; align-items:center; gap:10px; margin-bottom:28px; color:var(--green-950); font-size:23px; font-weight:900; letter-spacing:-.8px; }
.auth-logo .brand-mark { width:40px; height:40px; font-size:20px; }
.auth-copy { color:var(--muted); font-size:13px; line-height:1.6; margin:-17px 0 22px; }
.form-card { background:var(--card); border-radius:23px; padding:20px; box-shadow:var(--shadow); }
.form-title { margin:0 0 4px; font-size:21px; letter-spacing:-.6px; }
.form-help { margin:0 0 18px; color:var(--muted); font-size:12px; line-height:1.5; }
.field { margin: 13px 0; }
.field label { display:block; margin-bottom:6px; color:#54675e; font-size:12px; font-weight:800; }
.field input, .field select { width:100%; border:1px solid var(--line); border-radius:12px; padding:12px; background:#fff; color:var(--ink); outline:0; }
.field input:focus, .field select:focus { border-color:var(--green-700); box-shadow:0 0 0 3px rgba(28,115,82,.11); }
.full-btn { width:100%; padding:13px; font-size:14px; }
.form-switch { width:100%; border:0; background:transparent; color:var(--green-700); padding:14px 4px 0; font-size:12px; font-weight:800; }
.auth-note { margin-top:17px; color:var(--muted); text-align:center; font-size:11px; line-height:1.55; }
.loading-page { min-height:100dvh; display:grid; place-items:center; background:var(--cream); }
.loading-box { text-align:center; color:var(--green-800); font-weight:800; font-size:13px; }
.loading-ball { width:45px; height:45px; border-radius:50%; display:grid; place-items:center; margin:0 auto 12px; background:var(--green-900); color:var(--gold); font-size:21px; animation:pulse 1.1s infinite alternate; }
@keyframes pulse { from { transform:scale(.92); } to { transform:scale(1.05); } }
.league-choice { padding:0 20px 105px; }
.league-choice .topbar { padding-left:0; padding-right:0; }
.welcome-title { margin:9px 0 5px; font-size:27px; letter-spacing:-1px; }
.welcome-text { margin:0 0 18px; color:var(--muted); font-size:13px; }
.league-list { display:grid; gap:10px; margin-bottom:20px; }
.league-card { width:100%; border:1px solid var(--line); border-radius:17px; display:flex; align-items:center; gap:12px; padding:14px; background:#fff; color:var(--ink); text-align:left; }
.league-card:active { background:var(--green-100); }
.league-icon { flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:var(--green-100); font-size:18px; }
.league-card strong { display:block; font-size:14px; }
.league-card small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.league-card b { margin-left:auto; color:var(--green-700); font-size:14px; }
.choice-divider { display:flex; align-items:center; gap:9px; margin:20px 0 14px; color:var(--muted); font-size:11px; font-weight:800; }
.choice-divider:before, .choice-divider:after { content:""; height:1px; flex:1; background:var(--line); }
.inline-form { display:grid; gap:9px; }
.inline-form input, .inline-form select { width:100%; padding:11px; border:1px solid var(--line); border-radius:11px; background:#fff; outline:0; }
.inline-form .primary-btn { min-height:42px; }
.small-title { margin:0 0 9px; font-size:15px; }
.topbar-user { border:0; display:flex; align-items:center; gap:8px; background:transparent; color:var(--ink); font-weight:800; }
.topbar-user .avatar { width:35px; height:35px; font-size:13px; }
.team-status { margin:0 20px; padding:12px 14px; border-radius:15px; background:#fff2cb; color:#785414; font-size:12px; line-height:1.55; }
.team-status b { color:#56380a; }
.empty-state { margin:19px 20px; padding:25px 18px; border:1px dashed #bdcec3; border-radius:20px; background:rgba(255,255,255,.62); text-align:center; }
.empty-icon { width:46px; height:46px; margin:0 auto 10px; border-radius:16px; display:grid; place-items:center; background:var(--green-100); font-size:23px; }
.empty-state h2 { margin:0 0 6px; font-size:16px; }
.empty-state p { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.empty-state .primary-btn { margin-top:15px; }
.quick-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 20px 0; }
.quick-card { min-height:92px; border:0; border-radius:17px; padding:13px; color:var(--ink); text-align:left; background:#fff; box-shadow:0 4px 14px rgba(17,36,29,.07); }
.quick-card span { display:block; font-size:20px; }
.quick-card b { display:block; margin-top:8px; font-size:13px; }
.quick-card small { display:block; margin-top:3px; color:var(--muted); font-size:10px; line-height:1.3; }
.admin-link { margin:0 20px; border:0; border-radius:14px; padding:11px 13px; width:calc(100% - 40px); display:flex; justify-content:space-between; background:#e8f5ec; color:var(--green-800); font-size:12px; font-weight:900; }
.profile-sheet { margin:0 20px; border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 3px 12px rgba(17,36,29,.06); }
.profile-row { width:100%; border:0; padding:14px; display:flex; align-items:center; justify-content:space-between; background:#fff; color:var(--ink); font-size:13px; text-align:left; border-bottom:1px solid var(--line); }
.profile-row:last-child { border:0; }
.profile-row span { color:var(--muted); font-size:11px; }
.profile-row.danger { color:var(--coral); }
.import-box { margin:14px 20px; border-radius:19px; padding:16px; background:#fff; box-shadow:0 3px 12px rgba(17,36,29,.06); }
.file-input { display:block; width:100%; padding:11px; border:1px dashed #aebfb3; border-radius:12px; color:var(--muted); font-size:11px; }
.summary-grid { margin:14px 20px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.summary-item { padding:13px 7px; border-radius:15px; background:#fff; text-align:center; }
.summary-item b { display:block; color:var(--green-800); font-size:19px; }
.summary-item span { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.player-result { width:100%; border:0; display:flex; align-items:center; gap:11px; padding:12px; background:#fff; color:var(--ink); text-align:left; border-bottom:1px solid #edf1ee; }
.player-result:last-child { border:0; }
.player-result-main { flex:1; min-width:0; }
.player-result-main b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.player-result-main small { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.player-result-rating { color:#b37318; font-size:17px; font-weight:900; }
.feature-label { display:inline-block; margin:15px 20px 0; border-radius:999px; padding:6px 9px; background:#e8f5ec; color:var(--green-800); font-size:10px; font-weight:900; }
.save-message { margin-top:9px; color:var(--muted); font-size:11px; line-height:1.5; }
