*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--surface-0: #f5f5f3;--surface-1: #ebe9e0;--surface-2: #ffffff;--border: rgba(0,0,0,.1);--border-strong: rgba(0,0,0,.18);--text-primary: #1a1a18;--text-secondary: #5f5e5a;--text-muted: #888780;--green: #1a472a;--green-light: #eaf3de;--green-text: #3b6d11;--gold: #a06e00;--blue: #185fa5;--red: #a32d2d;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--surface-0);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}button{cursor:pointer}input,select,button{font-family:inherit}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .2s ease}.app{max-width:980px;margin:0 auto;padding:1.25rem 1rem 5rem}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:10px}.app-logo{display:flex;align-items:center;gap:10px}.app-logo-icon{width:40px;height:40px;background:var(--green);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}.app-logo h1{font-size:19px;font-weight:500}.app-logo p{font-size:11px;color:var(--text-secondary)}.tab-nav{display:flex;gap:3px;background:var(--surface-1);padding:3px;border-radius:10px;flex-wrap:wrap}.tab-btn{padding:6px 13px;border-radius:7px;border:none;background:transparent;font-size:13px;color:var(--text-secondary);transition:all .15s;white-space:nowrap}.tab-btn.active{background:var(--surface-2);color:var(--text-primary);font-weight:500;box-shadow:0 1px 3px #00000014}.tab-btn.admin{color:var(--blue)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface-2);border-top:.5px solid var(--border);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:50}.mobile-nav-inner{display:flex;justify-content:space-around;align-items:center;max-width:980px;margin:0 auto}.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 8px;border:none;background:transparent;color:var(--text-muted);font-size:10px;min-width:52px}.mobile-nav-btn.active{color:var(--green)}.mobile-nav-btn.admin-nav{color:var(--blue)}.mobile-nav-btn span{font-size:20px;line-height:1}.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin-bottom:1.25rem}.stat-card{background:var(--surface-2);border:.5px solid var(--border);border-radius:var(--radius-md);padding:13px 15px}.stat-label{font-size:11px;color:var(--text-secondary);margin-bottom:3px}.stat-value{font-size:21px;font-weight:500}.stat-value.green{color:var(--green-text)}.stat-value.gold{color:var(--gold)}.stat-value.blue{color:var(--blue)}.stat-value.red{color:var(--red)}.section-title{font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:7px;letter-spacing:.04em}.week-bar{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}.week-bar label{font-size:12px;color:var(--text-secondary)}.week-select,.admin-select{font-family:inherit;font-size:13px;padding:6px 10px;border:.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-primary);cursor:pointer}.player-table{background:var(--surface-2);border:.5px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1.25rem}.player-table-header{display:grid;grid-template-columns:28px 1.3fr 1.1fr 1.4fr 75px 60px 60px;gap:9px;padding:9px 13px;background:#f0ede4;border-bottom:.5px solid var(--border)}.player-table-header.with-paid{grid-template-columns:28px 1.3fr 1.1fr 1.4fr 75px 60px 60px 90px}.player-table-header span{font-size:10px;font-weight:500;color:var(--text-muted);letter-spacing:.04em}.player-row{display:grid;grid-template-columns:28px 1.3fr 1.1fr 1.4fr 75px 60px 60px;gap:9px;padding:10px 13px;align-items:center;border-bottom:.5px solid rgba(0,0,0,.06);transition:background .1s}.player-row.with-paid{grid-template-columns:28px 1.3fr 1.1fr 1.4fr 75px 60px 60px 90px}.player-row:last-child{border-bottom:none}.player-row:hover{background:#f8f7f3}.player-card-mobile{display:none;background:var(--surface-2);border:.5px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:8px}.player-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.player-card-name{display:flex;align-items:center;gap:8px;font-weight:500;font-size:15px}.player-card-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.player-card-stat{background:var(--surface-0);border-radius:8px;padding:7px 10px;text-align:center}.player-card-stat .pcs-label{font-size:10px;color:var(--text-muted);margin-bottom:2px}.player-card-stat .pcs-value{font-size:14px;font-weight:500}.player-card-matchup{display:flex;align-items:center;gap:5px;font-size:12px;margin-top:8px;padding-top:8px;border-top:.5px solid var(--border)}.dash-card{background:var(--green);border-radius:var(--radius-lg);padding:20px;margin-bottom:1.25rem;color:#fff;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}.dash-stats{display:flex;gap:12px;flex-wrap:wrap}.dash-stat{background:#ffffff1f;border-radius:10px;padding:10px 14px}.dash-stat .dl{font-size:10px;opacity:.7;margin-bottom:3px}.dash-stat .dv{font-size:18px;font-weight:500}.dash-raffle-box{background:#ffffff1a;border-radius:12px;padding:14px 16px;text-align:center;min-width:120px}.rank-badge{width:22px;height:22px;border-radius:50%;background:var(--surface-1);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;color:var(--text-secondary);flex-shrink:0}.rank-badge.r1{background:#fef3c7;color:#92400e}.rank-badge.r2{background:#e5e7eb;color:#374151}.rank-badge.r3{background:#fde8d3;color:#9a3412}.outcome-win{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;background:#eaf3de;color:#3b6d11}.outcome-loss{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;background:#fcebeb;color:#a32d2d}.outcome-live{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;background:#faeeda;color:#633806}.outcome-pending{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;background:var(--surface-1);color:var(--text-muted)}.espn-badge{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted);padding:4px 9px;background:var(--surface-1);border-radius:20px}.espn-dot{width:6px;height:6px;border-radius:50%;background:#639922;flex-shrink:0}.espn-dot.loading{background:#ba7517;animation:pulse 1s infinite}.espn-dot.err{background:#a32d2d}.btn{padding:7px 13px;border-radius:var(--radius-sm);border:.5px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);font-size:13px;transition:all .15s}.btn:hover{background:var(--surface-1)}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:#14391f}.btn.danger{color:var(--red);border-color:transparent;font-size:12px;padding:4px 7px}.btn.danger:hover{background:#fcebeb}.btn.sm{padding:5px 9px;font-size:11px}.toggle-wrap{position:relative;display:inline-block;width:34px;height:19px;flex-shrink:0}.toggle-wrap input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#d1d5db;border-radius:20px;transition:.2s}.toggle-slider:before{position:absolute;content:"";height:13px;width:13px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle-wrap input:checked+.toggle-slider{background:var(--green-text)}.toggle-wrap input:checked+.toggle-slider:before{transform:translate(15px)}.pin-dots{display:flex;gap:12px;justify-content:center;margin-bottom:6px}.pin-dot{width:13px;height:13px;border-radius:50%;background:var(--surface-1);border:.5px solid var(--border-strong);transition:all .15s}.pin-dot.filled{background:var(--green);border-color:var(--green)}.pin-dot.filled.adm{background:var(--blue);border-color:var(--blue)}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:13px 0 9px}.nb{padding:15px;border-radius:11px;border:.5px solid var(--border);background:var(--surface-2);color:var(--text-primary);font-size:17px;font-weight:500;transition:all .1s;-webkit-user-select:none;user-select:none}.nb:hover{background:var(--surface-1)}.nb:active{transform:scale(.96)}.nb.del{font-size:15px;color:var(--text-secondary)}.nb.empty{border-color:transparent;background:transparent;pointer-events:none}.raffle-section{background:var(--green);border-radius:14px;padding:18px;margin-bottom:1.25rem;color:#fff}.raffle-grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:9px}.raffle-stat{background:#ffffff1f;border-radius:9px;padding:11px 13px}.raffle-stat .rl{font-size:10px;opacity:.7;margin-bottom:3px}.raffle-stat .rv{font-size:18px;font-weight:500}.month-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.month-tab{padding:6px 14px;border-radius:20px;border:.5px solid var(--border-strong);background:var(--surface-2);color:var(--text-secondary);font-size:13px;transition:all .15s}.month-tab.active{background:var(--green);color:#fff;border-color:var(--green)}.admin-panel{background:var(--surface-2);border:.5px solid var(--border);border-radius:14px;padding:18px}.admin-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:.5px solid var(--border)}.admin-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.admin-section h3{font-size:13px;font-weight:500;margin-bottom:12px;color:var(--text-secondary)}.admin-input{font-family:inherit;font-size:13px;padding:7px 10px;border:.5px solid var(--border-strong);border-radius:7px;background:var(--surface-2);color:var(--text-primary);width:100%}.player-admin-row{display:grid;grid-template-columns:1.3fr 1.5fr 90px 65px;gap:9px;align-items:center;padding:8px 0;border-bottom:.5px solid rgba(0,0,0,.06)}.player-admin-row:last-child{border-bottom:none}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:11px}.setting-item label{font-size:11px;color:var(--text-secondary);display:block;margin-bottom:4px}.payment-table{background:var(--surface-2);border:.5px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1.25rem}.payment-row{display:grid;grid-template-columns:1.5fr 75px 95px 80px 85px;gap:11px;padding:9px 16px;align-items:center;border-bottom:.5px solid rgba(0,0,0,.06);font-size:12px}.payment-row:last-child{border-bottom:none}.payment-row:hover{background:var(--surface-0)}.sched-row{background:var(--surface-2);border:.5px solid var(--border);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.paid-pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:500}.paid-pill.yes{background:#eaf3de;color:#3b6d11}.paid-pill.no{background:#fcebeb;color:#a32d2d}.paid-pill.partial{background:#faeeda;color:#633806}.paid-pill.na{background:var(--surface-1);color:var(--text-muted)}@media (max-width: 640px){.app{padding:1rem .75rem 5.5rem}.tab-nav{display:none}.mobile-nav{display:block}.app-header{margin-bottom:1rem}.app-logo h1{font-size:16px}.app-logo p{font-size:10px}.stats-bar{grid-template-columns:1fr 1fr;gap:8px}.stat-value{font-size:18px}.dash-card{grid-template-columns:1fr;gap:12px}.dash-raffle-box{display:flex;align-items:center;gap:12px;text-align:left;min-width:unset}.dash-stat .dv{font-size:16px}.player-table{display:none}.player-card-mobile{display:block}.player-admin-row{grid-template-columns:1fr 1fr;gap:8px}.player-admin-row .btn.danger{grid-column:span 2;justify-self:start}.payment-table{overflow-x:auto}.payment-row{min-width:480px}.sched-row{padding:10px 12px;gap:10px}.section-title{font-size:10px}.month-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.month-tab{white-space:nowrap;flex-shrink:0}.settings-grid{grid-template-columns:1fr 1fr}}.recap-banner{background:linear-gradient(135deg,#1a472a,#2d6a4f);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:1.25rem;color:#fff}.recap-banner h3{font-size:14px;font-weight:500;opacity:.8;margin-bottom:4px}.recap-banner h2{font-size:20px;font-weight:500;margin-bottom:14px}.recap-results{display:flex;flex-direction:column;gap:7px}.recap-row{display:flex;align-items:center;justify-content:space-between;background:#ffffff1a;border-radius:10px;padding:8px 12px}.recap-row-left{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.recap-row-right{display:flex;align-items:center;gap:8px}.recap-win{background:#64dc8233;color:#8fffb4;font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px}.recap-loss{background:#ff646433;color:#faa;font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px}.recap-ticket{font-size:12px;opacity:.8}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.profile-modal{background:var(--surface-2);border-radius:20px;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:24px}.profile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-header h2{font-size:20px;font-weight:500}.profile-close{width:32px;height:32px;border-radius:50%;border:.5px solid var(--border);background:var(--surface-1);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.profile-stat{background:var(--surface-0);border-radius:12px;padding:12px;text-align:center}.profile-stat .ps-label{font-size:11px;color:var(--text-secondary);margin-bottom:4px}.profile-stat .ps-value{font-size:20px;font-weight:500}.streak-card{background:var(--green);color:#fff;border-radius:12px;padding:14px 16px;margin-bottom:18px;display:flex;align-items:center;gap:12px}.streak-icon{font-size:28px}.streak-text h4{font-size:13px;opacity:.8;margin-bottom:2px}.streak-text p{font-size:18px;font-weight:500}.profile-pick-history{display:flex;flex-direction:column;gap:6px}.profile-pick-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface-0);border-radius:10px}.profile-pick-row-left{display:flex;align-items:center;gap:8px;font-size:13px}.profile-week-label{font-size:11px;color:var(--text-secondary);width:50px}.season-hero{background:linear-gradient(135deg,#1a472a,#185fa5);border-radius:var(--radius-lg);padding:24px;color:#fff;margin-bottom:1.25rem;text-align:center}.season-hero h2{font-size:13px;opacity:.75;margin-bottom:4px}.season-hero h1{font-size:28px;font-weight:500;margin-bottom:16px}.season-hero-stats{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.season-hero-stat{text-align:center}.season-hero-stat .shs-val{font-size:22px;font-weight:500}.season-hero-stat .shs-label{font-size:11px;opacity:.7;margin-top:2px}.leaderboard-card{background:var(--surface-2);border:.5px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:1.25rem}.leaderboard-header{padding:14px 18px;border-bottom:.5px solid var(--border);font-size:13px;font-weight:500;background:var(--surface-1)}.leaderboard-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:.5px solid var(--border);cursor:pointer;transition:background .1s}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row:hover{background:var(--surface-0)}.leaderboard-row-info{flex:1}.leaderboard-row-name{font-size:14px;font-weight:500;margin-bottom:2px}.leaderboard-row-sub{font-size:12px;color:var(--text-secondary)}.leaderboard-row-right{text-align:right}.leaderboard-row-tickets{font-size:16px;font-weight:500;color:var(--gold)}.leaderboard-row-owes{font-size:12px;color:var(--red);margin-top:1px}.awards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:1.25rem}.award-card{background:var(--surface-2);border:.5px solid var(--border);border-radius:14px;padding:16px 18px}.award-icon{font-size:28px;margin-bottom:8px}.award-title{font-size:11px;color:var(--text-secondary);margin-bottom:3px;font-weight:500}.award-name{font-size:16px;font-weight:500;margin-bottom:2px}.award-value{font-size:12px;color:var(--text-secondary)}@media (max-width: 640px){.profile-stats-grid{grid-template-columns:repeat(3,1fr);gap:8px}.profile-stat .ps-value{font-size:17px}.season-hero-stats{gap:16px}.awards-grid{grid-template-columns:1fr 1fr}.recap-results{gap:6px}}
