.layout{display:flex;flex-direction:column;min-height:100vh;position:relative;overflow:hidden}.layout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0c0707c7,#100806f2),radial-gradient(circle at top,rgba(255,193,94,.18),transparent 28%),url(/prophet-games-bg.png) center top / cover no-repeat;opacity:.9;pointer-events:none;z-index:0}.container{max-width:1200px;margin:0 auto;padding:0 20px;width:100%}.header{position:sticky;top:0;z-index:10;background:#140a09b8;border-bottom:1px solid rgba(255,181,92,.2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:1rem 0 1.25rem}.header .container{display:flex;justify-content:space-between;align-items:center;gap:2rem;position:relative;z-index:1}.logo-link{display:flex;align-items:center;gap:1.25rem;text-decoration:none;min-height:60px;flex:1}.logo{height:112px;width:auto;max-width:320px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(162,93,255,.35))}.brand-copy{display:flex;flex-direction:column;gap:.2rem;min-width:180px}.brand-kicker{color:#ffd7a3c2;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase}.brand-name{color:#fff7eb;font-size:1.6rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;font-family:Cinzel Decorative,serif}.logo-fallback{font-size:1.5rem;color:#fff7eb;font-weight:700}.nav{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.nav a{color:#ffe7ccc7;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s,transform .2s;padding:.65rem 1rem;border-radius:999px;border:1px solid rgba(255,179,95,.12);background:#ffffff05;font-size:.95rem}.nav a:hover{color:#fffaf2;background:#ffab421f;border-color:#ffab4240;transform:translateY(-1px)}.nav a.active{color:#ffe6c0;font-weight:700;background:linear-gradient(135deg,#f07a2647,#a25dff2e);border-color:#ffab4266;box-shadow:0 8px 22px #f07a262e}.main{flex:1;padding:2.75rem 0 4rem;position:relative;z-index:1}.footer{background:#0f0808d6;border-top:1px solid rgba(255,181,92,.15);padding:1.25rem 0;text-align:center;color:#ffddb9ad;position:relative;z-index:1}.footer .container{display:flex;flex-direction:column;align-items:center;gap:.6rem}.footer-admin-link{color:#ffe7ccb8;text-decoration:none;font-size:.9rem;border:1px solid rgba(255,179,95,.16);border-radius:999px;padding:.4rem .85rem;background:#ffffff08;transition:color .2s,background-color .2s,border-color .2s}.footer-admin-link:hover,.footer-admin-link.active{color:#fff7eb;background:#ffab421f;border-color:#ffab424d}@media (max-width: 768px){.header .container{flex-direction:column;gap:1rem}.logo-link{width:100%;flex-direction:column;align-items:flex-start}.logo{max-width:240px;height:auto}.nav{flex-direction:row;gap:.5rem;width:100%;justify-content:flex-start}.nav a{width:calc(50% - .25rem);text-align:center}}.helmet{background-image:url(/helmets.png);background-repeat:no-repeat;display:inline-block;vertical-align:middle}.helmet-sm{width:30px;height:30px;background-size:867px 30px}.helmet-md{width:45px;height:45px;background-size:1302px 45px}.helmet-lg{width:60px;height:60px;background-size:1734px 60px}.helmet-49ers.helmet-lg{background-position:0px 0}.helmet-bears.helmet-lg{background-position:-62px 0}.helmet-bengals.helmet-lg{background-position:-124px 0}.helmet-bills.helmet-lg{background-position:-186px 0}.helmet-broncos.helmet-lg{background-position:-248px 0}.helmet-browns.helmet-lg{background-position:-310px 0}.helmet-buccaneers.helmet-lg{background-position:-372px 0}.helmet-cardinals.helmet-lg{background-position:-434px 0}.helmet-chargers.helmet-lg{background-position:-496px 0}.helmet-chiefs.helmet-lg{background-position:-558px 0}.helmet-colts.helmet-lg{background-position:-620px 0}.helmet-cowboys.helmet-lg{background-position:-682px 0}.helmet-dolphins.helmet-lg{background-position:-744px 0}.helmet-eagles.helmet-lg{background-position:-806px 0}.helmet-falcons.helmet-lg{background-position:-868px 0}.helmet-giants.helmet-lg{background-position:-930px 0}.helmet-jets.helmet-lg{background-position:-992px 0}.helmet-lions.helmet-lg{background-position:-1054px 0}.helmet-oilers.helmet-lg{background-position:-1116px 0}.helmet-packers.helmet-lg{background-position:-1178px 0}.helmet-patriots.helmet-lg{background-position:-1240px 0}.helmet-raiders.helmet-lg{background-position:-1302px 0}.helmet-rams.helmet-lg{background-position:-1364px 0}.helmet-redskins.helmet-lg{background-position:-1426px 0}.helmet-saints.helmet-lg{background-position:-1488px 0}.helmet-seahawks.helmet-lg{background-position:-1550px 0}.helmet-steelers.helmet-lg{background-position:-1612px 0}.helmet-vikings.helmet-lg{background-position:-1674px 0}.helmet-49ers.helmet-md{background-position:0px 0}.helmet-bears.helmet-md{background-position:-46.5px 0}.helmet-bengals.helmet-md{background-position:-93px 0}.helmet-bills.helmet-md{background-position:-139.5px 0}.helmet-broncos.helmet-md{background-position:-186px 0}.helmet-browns.helmet-md{background-position:-232.5px 0}.helmet-buccaneers.helmet-md{background-position:-279px 0}.helmet-cardinals.helmet-md{background-position:-325.5px 0}.helmet-chargers.helmet-md{background-position:-372px 0}.helmet-chiefs.helmet-md{background-position:-418.5px 0}.helmet-colts.helmet-md{background-position:-465px 0}.helmet-cowboys.helmet-md{background-position:-511.5px 0}.helmet-dolphins.helmet-md{background-position:-558px 0}.helmet-eagles.helmet-md{background-position:-604.5px 0}.helmet-falcons.helmet-md{background-position:-651px 0}.helmet-giants.helmet-md{background-position:-697.5px 0}.helmet-jets.helmet-md{background-position:-744px 0}.helmet-lions.helmet-md{background-position:-790.5px 0}.helmet-oilers.helmet-md{background-position:-837px 0}.helmet-packers.helmet-md{background-position:-883.5px 0}.helmet-patriots.helmet-md{background-position:-930px 0}.helmet-raiders.helmet-md{background-position:-976.5px 0}.helmet-rams.helmet-md{background-position:-1023px 0}.helmet-redskins.helmet-md{background-position:-1069.5px 0}.helmet-saints.helmet-md{background-position:-1116px 0}.helmet-seahawks.helmet-md{background-position:-1162.5px 0}.helmet-steelers.helmet-md{background-position:-1209px 0}.helmet-vikings.helmet-md{background-position:-1255.5px 0}.helmet-49ers.helmet-sm{background-position:0px 0}.helmet-bears.helmet-sm{background-position:-31px 0}.helmet-bengals.helmet-sm{background-position:-62px 0}.helmet-bills.helmet-sm{background-position:-93px 0}.helmet-broncos.helmet-sm{background-position:-124px 0}.helmet-browns.helmet-sm{background-position:-155px 0}.helmet-buccaneers.helmet-sm{background-position:-186px 0}.helmet-cardinals.helmet-sm{background-position:-217px 0}.helmet-chargers.helmet-sm{background-position:-248px 0}.helmet-chiefs.helmet-sm{background-position:-279px 0}.helmet-colts.helmet-sm{background-position:-310px 0}.helmet-cowboys.helmet-sm{background-position:-341px 0}.helmet-dolphins.helmet-sm{background-position:-372px 0}.helmet-eagles.helmet-sm{background-position:-403px 0}.helmet-falcons.helmet-sm{background-position:-434px 0}.helmet-giants.helmet-sm{background-position:-465px 0}.helmet-jets.helmet-sm{background-position:-496px 0}.helmet-lions.helmet-sm{background-position:-527px 0}.helmet-oilers.helmet-sm{background-position:-558px 0}.helmet-packers.helmet-sm{background-position:-589px 0}.helmet-patriots.helmet-sm{background-position:-620px 0}.helmet-raiders.helmet-sm{background-position:-651px 0}.helmet-rams.helmet-sm{background-position:-682px 0}.helmet-redskins.helmet-sm{background-position:-713px 0}.helmet-saints.helmet-sm{background-position:-744px 0}.helmet-seahawks.helmet-sm{background-position:-775px 0}.helmet-steelers.helmet-sm{background-position:-806px 0}.helmet-vikings.helmet-sm{background-position:-837px 0}.helmet:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){width:60px;height:60px;background-size:1734px 60px}.helmet-49ers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:0px 0}.helmet-bears:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-62px 0}.helmet-bengals:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-124px 0}.helmet-bills:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-186px 0}.helmet-broncos:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-248px 0}.helmet-browns:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-310px 0}.helmet-buccaneers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-372px 0}.helmet-cardinals:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-434px 0}.helmet-chargers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-496px 0}.helmet-chiefs:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-558px 0}.helmet-colts:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-620px 0}.helmet-cowboys:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-682px 0}.helmet-dolphins:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-744px 0}.helmet-eagles:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-806px 0}.helmet-falcons:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-868px 0}.helmet-giants:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-930px 0}.helmet-jets:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-992px 0}.helmet-lions:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1054px 0}.helmet-oilers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1116px 0}.helmet-packers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1178px 0}.helmet-patriots:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1240px 0}.helmet-raiders:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1302px 0}.helmet-rams:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1364px 0}.helmet-redskins:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1426px 0}.helmet-saints:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1488px 0}.helmet-seahawks:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1550px 0}.helmet-steelers:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1612px 0}.helmet-vikings:not(.helmet-sm):not(.helmet-md):not(.helmet-lg){background-position:-1674px 0}.user-avatar{border-radius:999px;flex-shrink:0}.user-avatar-sm{width:2rem;height:2rem}.user-avatar-md{width:2.25rem;height:2.25rem}.user-avatar-lg{width:3rem;height:3rem}.user-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:#646cff2e;color:#fff;font-weight:700;border:1px solid rgba(255,255,255,.16)}img.user-avatar{object-fit:cover;border:1px solid rgba(255,255,255,.16)}.dashboard{text-align:center}.dashboard-hero{display:flex;justify-content:center;align-items:center;margin-bottom:2.5rem;padding:2rem;border:1px solid rgba(255,188,110,.18);border-radius:24px;background:linear-gradient(135deg,#ff7a2a1f,#d49cff14),#1d100ebd;box-shadow:0 24px 60px #0000003d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.dashboard-hero-art{display:flex;justify-content:center;align-items:center}.dashboard-hero-logo-wrap{justify-content:center;width:100%}.dashboard-hero-logo{width:100%;max-width:720px;border-radius:24px;overflow:hidden;box-shadow:0 16px 34px #00000047}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin:2rem 0}.stat-card{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:2rem;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #646cff4d}.stat-card h3{margin:0 0 1rem;color:#aaa;font-size:1rem;font-weight:500}.stat-card.clickable{cursor:pointer}.stat-card.clickable:hover{transform:translateY(-4px);box-shadow:0 6px 16px #646cff66}.stat-value{font-size:3rem;font-weight:700;margin:0;color:#646cff}.stat-hint{font-size:.85rem;color:#646cff;margin-top:.5rem;opacity:.8;font-style:italic}.goat-card{display:flex;flex-direction:column}.goat-info{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.goat-avatar{width:72px;height:72px;border-radius:50%;border:2px solid #646cff}.goat-avatar-placeholder{width:72px;height:72px;border-radius:50%;background-color:#333;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#646cff;border:2px solid #646cff}.goat-details{flex:1}.goat-name{font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 .25rem}.goat-record{font-size:.9rem;color:#aaa;margin:0}.goat-differential{margin:.35rem 0 0;font-size:.85rem;color:#d8b38a}.progress-meta{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem;color:#cdb199;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.progress-track{width:100%;height:12px;margin-top:.75rem;border-radius:999px;overflow:hidden;background:#ffffff14;border:1px solid rgba(255,188,110,.14)}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff7a2a,#ffb760);box-shadow:0 0 16px #ff7a2a52}.actions{display:flex;gap:1rem;justify-content:center;margin-top:3rem}.recent-games-section{margin-top:3rem;text-align:left;width:min(100%,468px);margin-left:auto;margin-right:auto}.recent-games-section h2{margin-bottom:.5rem;color:#fff}.section-hint{color:#aaa;font-size:.9rem;margin-bottom:1rem}.inline-link{color:#646cff;text-decoration:none}.inline-link:hover{text-decoration:underline}.recent-game-card{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:.95rem 1.05rem .85rem;display:flex;flex-direction:column;gap:.55rem;transition:all .2s}.recent-game-card.clickable{cursor:pointer}.recent-game-card.clickable:hover{background-color:#222;border-color:#646cff;transform:translateY(-2px);box-shadow:0 4px 12px #646cff33}.recent-game-card.empty{align-items:center;justify-content:center;color:#888}.recent-game-card .teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.65rem}.recent-game-card .team{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0}.recent-game-card .team-header{display:flex;align-items:center;gap:.55rem;min-width:0}.recent-game-card .team-header .team-helmet{flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.recent-game-card .team-info{display:flex;flex-direction:column;gap:.08rem;flex:1;min-width:0}.recent-game-card .coach-row,.recent-game-card .team-only-row{display:flex;align-items:center;gap:.55rem;min-width:0}.recent-game-card .latest-game-avatar{width:30px;height:30px;flex:0 0 30px;box-shadow:0 2px 6px #00000052}.recent-game-card .team-abbreviation{font-size:.68rem;color:#646cff;font-weight:600;text-transform:uppercase;letter-spacing:.1em;line-height:1}.recent-game-card .coach-name,.recent-game-card .team-only-name{font-size:.98rem;color:#fff;font-weight:700;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-game-card .player1-badge,.recent-game-card .player2-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.recent-game-card .player1-badge{background-color:#646cff33;color:#646cff;border:1px solid rgba(100,108,255,.4)}.recent-game-card .player2-badge{background-color:#ffffff1a;color:#ccc;border:1px solid rgba(255,255,255,.2)}.recent-game-card .team-score{font-size:2rem;font-weight:700;color:#646cff;text-align:center;line-height:1;min-width:2.6rem;letter-spacing:-.03em}.recent-game-card .vs{font-size:.7rem;font-weight:600;color:#888;min-width:1rem;text-align:center;text-transform:uppercase;letter-spacing:.12em}.recent-game-card .game-meta{display:flex;flex-wrap:wrap;gap:.5rem;color:#888;font-size:.68rem;margin-top:0;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.06)}.recent-game-card .game-meta.players{flex-direction:column;gap:.35rem;margin-top:-.5rem}.recent-game-card .game-meta.players strong{color:#fff}.message-error{background-color:#f4433626;border:1px solid #f44336;color:#f44336;padding:1rem;border-radius:8px;margin-bottom:1rem}.btn{padding:1rem 2rem;border-radius:8px;text-decoration:none;font-weight:600;transition:all .2s;display:inline-block}.btn-primary{background-color:#646cff;color:#fff}.btn-primary:hover{background-color:#535bf2;transform:translateY(-2px)}.loading{text-align:center;padding:3rem;font-size:1.2rem}@media (max-width: 768px){.dashboard-hero{padding:1.25rem}.dashboard-hero-logo-wrap{justify-content:center}.dashboard-hero-logo{max-width:100%}.actions{flex-direction:column}.stats-grid{grid-template-columns:1fr}.recent-game-card .teams{grid-template-columns:1fr;align-items:stretch}.recent-game-card .team{min-width:0}.recent-game-card .team-score{font-size:1.8rem}.recent-game-card .vs{min-width:0;padding:.1rem 0}.recent-game-card .coach-name,.recent-game-card .team-only-name{white-space:normal}.recent-games-section{width:100%}}.upload{max-width:800px;margin:0 auto}.upload h1{margin-bottom:2rem;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.upload-container{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:2rem}.game-upload-section{margin-top:0}.game-upload-section h2{margin-bottom:1.5rem;color:#fff;font-size:1.5rem}.upload-form{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.file-input-wrapper{display:flex;flex-direction:column;gap:.5rem}.file-label{padding:1rem;background-color:#242424;border:2px dashed #555;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s;color:#aaa}.file-label:hover{border-color:#646cff;background-color:#2a2a2a}.file-input{display:none}.message{padding:1rem;border-radius:8px;margin-bottom:1rem}.message-success{background-color:#4caf5033;border:1px solid #4caf50;color:#4caf50}.message-error{background-color:#f4433633;border:1px solid #f44336;color:#f44336}.upload-info{margin-top:2rem;padding-top:2rem;border-top:1px solid #333}.upload-info h3{margin-bottom:1rem;color:#aaa}.upload-info ul{text-align:left;color:#aaa;line-height:1.8}.upload-info li{margin-bottom:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.player-stats{margin-top:2rem}.player-stats h4{margin-bottom:1rem;color:#aaa;text-align:left}.player-table-wrapper{overflow-x:auto}.player-table{width:100%;border-collapse:collapse;color:#fff;background:#1a1a1a;border:1px solid #333;border-radius:8px;overflow:hidden}.player-table th,.player-table td{padding:.75rem 1rem;border-bottom:1px solid #333;text-align:left;white-space:nowrap}.player-table th{background:#242424;color:#aaa;font-weight:600}.player-table tbody tr:hover{background:#646cff14}.player-table td:first-child,.player-table th:first-child{font-weight:600;color:#fff;white-space:normal}.player-table td:last-child,.player-table th:last-child{white-space:normal}@media (max-width: 768px){.player-table th,.player-table td{padding:.5rem .75rem;font-size:.85rem}}.player-assignment{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #333;text-align:left}.player-assignment h4{margin-bottom:.5rem;color:#fff}.assignment-hint{color:#888;font-size:.9rem;margin-bottom:1rem}.assignment-controls{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem}.assignment-field{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.assignment-field label{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.assignment-field select{padding:.75rem 1rem;border-radius:8px;border:1px solid #444;background:#1a1a1a;color:#fff}.assignment-field select:focus{outline:none;border-color:#646cff}.player-slot-field{min-width:240px;max-width:320px}.field-note{font-size:.8rem;color:#777}.assign-btn{margin-top:.5rem;align-self:flex-start}@media (max-width: 768px){.assignment-controls{flex-direction:column}}.game-summary{margin-top:2rem;padding:2rem;border:1px solid #333;border-radius:8px;background:#111}.game-summary h3{margin-bottom:1.5rem;text-align:left;color:#aaa}.scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.team-card{background:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1.5rem}.team-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}.team-name{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:#646cff}.team-name .team-helmet{flex-shrink:0;filter:drop-shadow(0 0 4px rgba(0,0,0,.4))}.team-name span:last-child{display:inline-flex;align-items:center}.team-score{font-size:2.5rem;font-weight:700}.team-stats-grid{display:grid;gap:.75rem;color:#ccc}.team-stats-grid .label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#777}.team-stats-grid .value{font-size:1.1rem;font-weight:600;color:#fff}.quarter-summary table{width:100%;border-collapse:collapse;color:#fff;background:#1a1a1a;border:1px solid #333;border-radius:8px;overflow:hidden}.quarter-summary th,.quarter-summary td{padding:.75rem 1rem;text-align:center;border-bottom:1px solid #333}.quarter-summary th:first-child,.quarter-summary td:first-child{text-align:left;font-weight:600;color:#aaa}.quarter-summary thead{background:#242424;color:#aaa}.quarter-summary tbody tr:last-child td{border-bottom:none}.quarter-summary .total{font-weight:700;color:#646cff}@media (max-width: 640px){.scoreboard{grid-template-columns:1fr}}.standings{max-width:1200px;margin:0 auto}.standings h1{margin-bottom:.75rem;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.standings-subtitle{margin:0 0 2rem;color:#d6bda7;text-align:center}.standings-table-wrapper{overflow-x:auto;background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1rem}.standings-table{width:100%;border-collapse:collapse;color:#fff}.standings-table thead{background-color:#242424}.standings-table th{padding:1rem;text-align:left;font-weight:600;border-bottom:2px solid #333;color:#aaa}.standings-table td{padding:1rem;border-bottom:1px solid #333}.standings-table tbody tr:hover{background-color:#242424}.standings-table .player-name{font-weight:600;color:#646cff}.team-info{display:flex;align-items:center;gap:.75rem}.team-badge{width:38px;height:38px;border-radius:50%;background:#ffb7601f;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;border:2px solid #ffb760}.team-details{display:flex;flex-direction:column;gap:.25rem}.team-name{font-weight:600;color:#fff}.team-meta{font-size:.85rem;color:#888}.team-member-name{color:#d7c1af;font-size:.9rem;font-weight:500}.team-member-identity{display:flex;align-items:center;gap:.65rem}.team-member-diff{font-size:.84rem;font-weight:600;white-space:nowrap}.team-member-subrow td{padding-top:.65rem;padding-bottom:.65rem;color:#d7c1af;background:#ffffff05}.team-member-name-cell{padding-left:3.5rem!important}.team-member-diff{color:#ffb760}.team-member-empty{color:#888;font-size:.88rem}.team-member-empty-row td{color:#888}@media (max-width: 768px){.standings-table{font-size:.9rem}.standings-table th,.standings-table td{padding:.5rem}.team-member-name-cell{padding-left:1.5rem!important}}.stats-page{text-align:left}.stats-page h1{margin-bottom:1.5rem;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.section{background:#111;border:1px solid #333;border-radius:12px;padding:2rem}.section+.section{margin-top:2rem}.section header{margin-bottom:1.5rem}.section-subtitle{color:#aaa;margin-top:.25rem}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #2a2a2a}.tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;color:#aaa;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-2px;position:relative}.tab:hover{color:#fff;background:#646cff1a}.tab.active{color:#646cff;border-bottom-color:#646cff;background:#646cff0d}.tab-content{animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.table-wrapper{overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;border:1px solid #333;border-radius:12px;overflow:hidden;background:#1a1a1a;color:#f0f0f0}.stats-table th,.stats-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid #2a2a2a;white-space:nowrap}.stats-table th{background:#242424;color:#bbb;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;-webkit-user-select:none;user-select:none}.stats-table th.sortable{cursor:pointer;transition:background-color .2s,color .2s;position:relative;padding-right:1.5rem}.stats-table th.sortable:hover{background:#2a2a2a;color:#fff}.stats-table th.sortable:active{background:#333}.sort-icon{display:inline-block;margin-left:.5rem;font-size:.85rem;color:#646cff;font-weight:700;position:absolute;right:.5rem}.sort-icon-inactive{color:#555;opacity:.5}.stats-table tbody tr:hover{background:#646cff14}.stats-table tbody tr:last-child td{border-bottom:none}.user-cell{display:flex;align-items:center;gap:.75rem}.user-avatar,.user-avatar-placeholder{width:2.25rem;height:2.25rem;border-radius:999px;flex:0 0 2.25rem}.user-avatar{object-fit:cover;border:1px solid rgba(255,255,255,.16)}.user-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:#646cff2e;color:#fff;font-size:.95rem;font-weight:700}.user-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.user-display{font-weight:600}.user-username{color:#888;font-size:.85rem}.info-message{color:#aaa}@media (max-width: 768px){.section{padding:1.5rem}.tabs{gap:.25rem}.tab{padding:.6rem 1rem;font-size:.85rem}.stats-table th,.stats-table td{padding:.6rem .75rem;font-size:.85rem}}.account{max-width:800px;margin:0 auto;text-align:left}.account h1{margin-bottom:.5rem;text-align:center;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.account-subtitle{text-align:center;color:#aaa;margin-bottom:2rem}.account-card{background-color:#1a1a1a;border:1px solid #333;border-radius:12px;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.account-loading{text-align:center;padding:2rem 0;color:#aaa}.account-auth-options{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center}.account-profile{display:flex;gap:1.5rem;align-items:center}.account-avatar{width:96px;height:96px;border-radius:50%;border:2px solid #646cff}.account-avatar-placeholder{width:96px;height:96px;border-radius:50%;background-color:#333;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;color:#fff}.account-profile-details h2{margin:0;font-size:1.8rem}.account-muted{color:#888;margin-top:.25rem}.account-actions{margin-top:1.5rem}.account-actions .btn{min-width:140px}.account-message{padding:1rem;border-radius:8px;font-weight:500}.account-message-success{background-color:#4caf5033;border:1px solid #4caf50;color:#4caf50}.account-message-error{background-color:#f4433633;border:1px solid #f44336;color:#f44336}.account-info{border-top:1px solid #333;padding-top:1.5rem}.account-info h3{margin-bottom:.75rem;color:#fff}.account-info ul{margin:0;padding-left:1.25rem;color:#aaa;line-height:1.7}.account-info li{margin-bottom:.5rem}@media (max-width: 600px){.account-card{padding:1.5rem}.account-info ul{padding-left:1rem}.account-profile{flex-direction:column;text-align:center}.account-actions,.account-actions .btn{width:100%}}.game-details{max-width:1400px;margin:0 auto}.game-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.game-header h1{margin:0;flex:1;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.game-details .loading{text-align:center;padding:3rem;font-size:1.2rem}.game-details .error-message{background-color:#f4433626;border:1px solid #f44336;color:#f44336;padding:1rem;border-radius:8px;margin-bottom:1rem}.scoreboard{display:flex;gap:2rem;margin-bottom:2rem;align-items:flex-start}.team-card{flex:1;background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:2rem}.team-header-large{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem}.team-helmet-large{flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.team-info-large{flex:1}.team-name-large{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.5rem}.coach-info{font-size:1rem;color:#aaa;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.coach-avatar{box-shadow:0 2px 8px #00000052}.player-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;background-color:#646cff33;color:#646cff;border:1px solid rgba(100,108,255,.4);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.team-score-large{font-size:3.5rem;font-weight:700;color:#646cff}.vs-large{font-size:1.5rem;font-weight:600;color:#888;align-self:center;padding:0 1rem}.team-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;color:#ccc}.team-stats-grid .label{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#777;margin-bottom:.25rem}.team-stats-grid .value{font-size:1.25rem;font-weight:600;color:#fff}.quarter-summary{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.quarter-summary h3{margin-top:0;margin-bottom:1rem;color:#fff}.quarter-summary table{width:100%;border-collapse:collapse}.quarter-summary table th,.quarter-summary table td{padding:.75rem;text-align:center;border-bottom:1px solid #333}.quarter-summary table th{background-color:#222;color:#aaa;font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em}.quarter-summary table td{color:#fff}.quarter-summary table td:first-child{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.quarter-helmet{flex-shrink:0}.quarter-summary table td.total{font-weight:700;color:#646cff;font-size:1.1rem}.game-meta-info{display:flex;gap:2rem;margin-bottom:2rem;padding:1rem;background-color:#1a1a1a;border:1px solid #333;border-radius:8px}.meta-item{display:flex;flex-direction:column;gap:.25rem}.meta-label{font-size:.85rem;color:#777;text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:1rem;color:#fff;font-weight:500}.player-stats{margin-bottom:3rem}.player-stats h4{margin-bottom:1rem;color:#fff;font-size:1.5rem}.player-table-wrapper{overflow-x:auto;background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1rem}.player-table{width:100%;border-collapse:collapse;font-size:.9rem}.player-table th{background-color:#222;color:#aaa;padding:.75rem .5rem;text-align:left;font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.05em;border-bottom:2px solid #333;white-space:nowrap}.player-table td{padding:.75rem .5rem;border-bottom:1px solid #2a2a2a;color:#ccc;white-space:nowrap}.player-table tbody tr:hover{background-color:#222}.player-table td:first-child,.player-table th:first-child{white-space:normal;min-width:120px}@media (max-width: 1024px){.scoreboard{flex-direction:column}.vs-large{align-self:center;padding:1rem 0}.team-stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.team-header-large{flex-wrap:wrap}.team-score-large{font-size:2.5rem}.player-table-wrapper{font-size:.8rem}.player-table th,.player-table td{padding:.5rem .25rem;font-size:.75rem}}.games-list{max-width:1200px;margin:0 auto}.games-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.games-header h1{margin:0;flex:1;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.back-btn{padding:.5rem 1rem;font-size:.9rem}.btn{padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:600;transition:all .2s;display:inline-block;border:none;cursor:pointer;font-size:1rem}.btn-secondary{background-color:#333;color:#fff;border:1px solid #555}.btn-secondary:hover{background-color:#444;transform:translateY(-2px)}.games-list .loading{text-align:center;padding:3rem;font-size:1.2rem}.games-list .error-message{background-color:#f4433626;border:1px solid #f44336;color:#f44336;padding:1rem;border-radius:8px;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem;color:#888}.games-container{display:flex;flex-direction:column;gap:1rem}.game-card{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:all .2s}.game-card.clickable{cursor:pointer}.game-card.clickable:hover{background-color:#222;border-color:#646cff;transform:translateY(-2px);box-shadow:0 4px 12px #646cff33}.game-card .teams{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.game-card .team{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;min-width:200px;flex:1}.game-card .team-header{display:flex;align-items:center;gap:.75rem;flex:1}.game-card .team-header .team-helmet{flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.game-card .team-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.game-card .team-name{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:600;color:#fff;flex-wrap:wrap}.game-card .coach-avatar{box-shadow:0 2px 6px #00000047}.game-card .team-abbreviation{font-size:.8rem;color:#aaa;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.game-card .player1-badge,.game-card .player2-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:3px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.game-card .player1-badge{background-color:#646cff33;color:#646cff;border:1px solid rgba(100,108,255,.4)}.game-card .player2-badge{background-color:#ffffff1a;color:#ccc;border:1px solid rgba(255,255,255,.2)}.game-card .team-score{font-size:2rem;font-weight:700;color:#646cff;text-align:center;min-width:3rem}.game-card .vs{font-size:1rem;font-weight:600;color:#888;padding:0 .5rem}.game-card .game-meta{display:flex;flex-wrap:wrap;gap:1rem;color:#aaa;font-size:.85rem;margin-top:.25rem}@media (max-width: 768px){.game-card{padding:.75rem 1rem}.game-card .teams{flex-direction:column;align-items:stretch;gap:.5rem}.game-card .team{min-width:auto;flex-direction:row}.game-card .team-header{flex-wrap:wrap}.game-card .team-score{font-size:1.75rem}.game-card .team-name{font-size:1rem}.game-card .vs{font-size:.9rem;padding:.25rem 0}}.competitors-page{max-width:1380px;margin:0 auto;text-align:center;overflow-x:hidden}.competitors-page h1{margin-bottom:1.5rem;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.competitors-board{position:relative;width:100%;min-height:1040px;background:url(/competitors-scroll-bg.png) center center / 96% 100% no-repeat}.competitors-overlay{position:absolute;top:21%;bottom:22%;left:14%;right:14%;padding:0;display:flex;align-items:stretch}.competitors-grid{display:grid;width:100%;height:100%;align-content:center;justify-items:center;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem .75rem}.competitor-name{color:#60331e;font-family:Cinzel Decorative,serif;font-size:.92rem;font-weight:700;line-height:1.18;letter-spacing:.02em;text-shadow:0 1px 0 rgba(255,248,230,.7),0 2px 10px rgba(91,52,28,.08)}@media (max-width: 1100px){.competitors-board{min-height:960px;background-size:100% 100%}.competitors-overlay{top:19%;bottom:20%;left:12.5%;right:12.5%}.competitors-grid{gap:.45rem .65rem}.competitor-name{font-size:.84rem}}@media (max-width: 820px){.competitors-board{min-height:auto;background-size:cover;border-radius:24px;overflow:hidden}.competitors-overlay{position:static;width:100%;padding:3rem 2rem;background:#fff3e17a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.competitors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.competitors-overlay{padding:2rem 1.25rem}.competitors-grid{grid-template-columns:1fr}}.rss-feed{max-width:1000px;margin:0 auto;padding:2rem}.rss-feed h1{margin-bottom:1rem;color:#fff}.rss-description{color:#aaa;margin-bottom:.5rem}.rss-copyright{color:#777;font-size:.9rem;margin-bottom:2rem}.rss-items{display:flex;flex-direction:column;gap:1.5rem}.rss-item{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1.5rem;transition:border-color .2s}.rss-item:hover{border-color:#646cff}.rss-item-content{display:flex;flex-direction:column;gap:.75rem}.rss-item-title{margin:0;font-size:1.1rem;color:#fff}.rss-item-title a{color:#646cff;text-decoration:none;transition:color .2s}.rss-item-title a:hover{color:#535bf2;text-decoration:underline}.rss-item-description{color:#ccc;margin:0;line-height:1.6}.rss-item-date{color:#888;font-size:.9rem;margin:0}.rss-raw{margin-top:3rem;padding-top:2rem;border-top:1px solid #333}.rss-raw details{color:#aaa;cursor:pointer}.rss-raw summary{margin-bottom:1rem;color:#aaa;font-size:.9rem}.rss-xml{background-color:#111;border:1px solid #333;border-radius:4px;padding:1rem;overflow-x:auto;font-size:.85rem;color:#ccc;font-family:Courier New,monospace;white-space:pre-wrap;word-wrap:break-word}.error-message{background-color:#f4433633;border:1px solid #f44336;color:#f44336;padding:1rem;border-radius:8px;margin:1rem 0}.admin-page h1{margin-bottom:1.25rem;font-family:Cinzel Decorative,serif;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff7eb}.admin-card{background:#1a0d0ae0;border:1px solid rgba(255,181,92,.18);border-radius:16px;padding:1.5rem}.admin-card+.admin-card{margin-top:1.5rem}.admin-card-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.admin-card-header h2{margin:0}.admin-subtitle{margin:.35rem 0 0;color:#cdb199}.admin-page .message{margin-bottom:1rem}.admin-table-wrapper{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.85rem .9rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;color:#f7ead9;vertical-align:top}.admin-table th{color:#d6bda7;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.admin-game-title{color:#fff7eb}.admin-game-meta{margin-top:.2rem;color:#cdb199;font-size:.9rem}.admin-team-assignment{display:flex;align-items:center;gap:.65rem;min-width:280px}.admin-team-assignment select{flex:1 1 auto;min-width:0}.admin-team-save{flex:0 0 auto;min-width:5.5rem}@media (max-width: 768px){.admin-card-header{flex-direction:column}.admin-table th,.admin-table td{padding:.65rem}.admin-team-assignment{min-width:220px;flex-direction:column;align-items:stretch}}.app{width:100%;min-height:100vh}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#fff4e8;background-color:#0f0908;--pg-bg: #0f0908;--pg-surface: rgba(29, 16, 14, .76);--pg-surface-strong: rgba(24, 12, 10, .88);--pg-surface-alt: rgba(50, 24, 18, .76);--pg-border: rgba(255, 188, 110, .18);--pg-border-strong: rgba(255, 188, 110, .3);--pg-text: #fff4e8;--pg-muted: #d6bda7;--pg-muted-strong: #a48b77;--pg-accent: #ffb760;--pg-accent-strong: #ff7a2a;--pg-accent-soft: #d49cff;--pg-success: #77d986;--pg-danger: #ff7b72;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--pg-accent);text-decoration:inherit}a:hover{color:#ffd29b}body{margin:0;min-width:320px;min-height:100vh;background:var(--pg-bg);color:var(--pg-text)}h1{font-size:clamp(2.4rem,4vw,3.8rem);line-height:1.02;letter-spacing:.01em;color:var(--pg-text);text-shadow:0 10px 30px rgba(0,0,0,.38);margin-top:0}h2,h3,h4{color:var(--pg-text)}button{border-radius:999px;border:1px solid var(--pg-border);padding:.7em 1.35em;font-size:1em;font-weight:700;font-family:inherit;background:linear-gradient(135deg,#ff7a2a29,#a25dff1f);color:var(--pg-text);cursor:pointer;transition:border-color .25s,transform .2s,box-shadow .2s,background-color .2s}button:hover{border-color:var(--pg-border-strong);transform:translateY(-1px);box-shadow:0 10px 22px #ff7a2a29}button:focus,button:focus-visible{outline:2px solid rgba(255,183,96,.72);outline-offset:2px}p{color:var(--pg-muted)}#root{width:100%;min-height:100vh}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background:linear-gradient(135deg,var(--pg-accent-strong),#ffb760);color:#230f08;border-color:#ffd8a847;box-shadow:0 16px 36px #ff7a2a33}.btn-primary:hover{color:#230f08}.btn-secondary{background:#ffffff0a;color:var(--pg-text)}.loading,.error{text-align:center;padding:3rem 1rem}.message,.error-message,.account-message{border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.message-success,.account-message-success{background-color:#77d9861f!important;border:1px solid rgba(119,217,134,.4)!important;color:var(--pg-success)!important}.message-error,.account-message-error,.error-message,.error{background-color:#ff7b721f!important;border:1px solid rgba(255,123,114,.4)!important;color:var(--pg-danger)!important}:is(.stat-card,.recent-game-card,.standings-table-wrapper,.section,.account-card,.game-card,.upload-container,.game-summary,.team-card,.quarter-summary,.game-meta-info,.player-table-wrapper,.empty-state){background:var(--pg-surface)!important;border-color:var(--pg-border)!important;box-shadow:0 18px 40px #0000002e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:is(.standings-table,.stats-table,.player-table,.quarter-summary table){background:transparent!important;color:var(--pg-text)!important}:is(.standings-table thead,.stats-table th,.player-table th,.quarter-summary thead,.quarter-summary table th){background:var(--pg-surface-alt)!important}:is(.stat-value,.stat-hint,.inline-link,.standings-table .player-name,.game-card .team-score,.recent-game-card .team-score,.recent-game-card .team-abbreviation,.player-badge,.team-score-large,.quarter-summary .total,.sort-icon,.tab.active,.team-name){color:var(--pg-accent)!important}:is(.user-avatar,.goat-avatar,.account-avatar){border-color:var(--pg-accent)!important}:is(.user-avatar-placeholder,.goat-avatar-placeholder,.account-avatar-placeholder){border-color:var(--pg-accent)!important;color:var(--pg-text)!important;background:#ffb7601a!important}:is(.section-subtitle,.section-hint,.account-subtitle,.assignment-hint,.field-note){color:var(--pg-muted)!important}:is(.coach-name,.goat-record,.user-discord,.account-muted,.game-card .game-meta,.recent-game-card .coach-name,.meta-label,.team-stats-grid .label){color:var(--pg-muted-strong)!important}:is(.assignment-field select,.file-label){background:#ffffff0a!important;border-color:var(--pg-border)!important;color:var(--pg-text)!important}:is(.assignment-field select:focus,.file-label:hover){border-color:var(--pg-accent)!important}::selection{background:#ffb76047;color:var(--pg-text)}
