@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap";
:root{--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--border-2:#cbd5e1;--ink:#0f172a;--ink-2:#334155;--ink-3:#4b5563;--green:#15803d;--green-bg:#f0fdf4;--green-border:#86efac;--red:#b91c1c;--red-bg:#fef2f2;--red-border:#fca5a5;--amber:#92400e;--amber-bg:#fffbeb;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -1px #0000000a;--radius:14px;--radius-sm:10px;--font:"DM Sans", system-ui, sans-serif;--mono:"DM Mono", ui-monospace, monospace;--gutter:clamp(16px, 4vw, 48px);--focus-ring:0 0 0 3px #0f172a40}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--ink);min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit}.nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;box-shadow:var(--shadow-sm);position:sticky;top:0}.nav-inner{max-width:1080px;padding:0 var(--gutter);align-items:center;gap:8px;height:56px;margin:0 auto;display:flex}.nav-logo{color:var(--ink);flex-shrink:0;align-items:center;gap:8px;margin-right:8px;font-size:17px;font-weight:600;display:flex}.nav-logo-icon{object-fit:contain;flex-shrink:0;width:28px;height:28px}.nav-links{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:2px;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-link{color:var(--ink-3);white-space:nowrap;border-radius:8px;flex-shrink:0;min-height:44px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.nav-link:hover{background:var(--surface-2);color:var(--ink-2)}.nav-link.active{background:var(--bg);color:var(--ink)}.nav-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.nav-user{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.nav-username{color:var(--ink-2);font-size:13px;font-weight:500;font-family:var(--mono)}.nav-logout{color:var(--ink-3);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;min-height:44px;padding:10px 12px;font-size:13px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.nav-logout:hover{border-color:var(--border-2);color:var(--ink);background:var(--surface-2)}.nav-logout:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.nav-burger{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:6px;transition:background .15s,border-color .15s;display:none}.nav-burger:hover{background:var(--surface-2);border-color:var(--border-2)}.nav-burger:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.nav-burger span{background:var(--ink);border-radius:2px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.nav-burger.open span:first-child{transform:translateY(7px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-mobile-menu{background:var(--surface);border-bottom:1px solid var(--border);padding:8px var(--gutter) 20px;z-index:49;box-shadow:var(--shadow-md);flex-direction:column;gap:2px;display:flex;position:fixed;top:56px;left:0;right:0}.nav-mobile-link{color:var(--ink-2);border-radius:10px;padding:13px 16px;font-size:16px;font-weight:500;transition:background .15s,color .15s;display:block}.nav-mobile-link:hover{background:var(--surface-2);color:var(--ink)}.nav-mobile-link.active{background:var(--bg);color:var(--ink);font-weight:600}.nav-mobile-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.nav-mobile-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:6px;padding:14px 16px 0;display:flex}.nav-mobile-user{font-family:var(--mono);color:var(--ink-3);font-size:13px}.page{max-width:1080px;padding:40px var(--gutter) 80px;margin:0 auto}.page-narrow{max-width:600px}.page-header{margin-bottom:32px}.page-title{color:var(--ink);letter-spacing:-.5px;font-size:clamp(24px,3.5vw,36px);font-weight:700;line-height:1.1}.page-sub{color:var(--ink-3);margin-top:8px;font-size:15px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(20px,3vw,32px)}.card-sm{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:16px 18px}.btn{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 22px;font-size:15px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:var(--ink-2)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.btn-green{background:var(--green)}.btn-green:hover:not(:disabled){background:#166534}.btn-outline{color:var(--ink);border:1.5px solid var(--border-2);background:0 0}.btn-outline:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-3)}.btn-full{width:100%}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--ink-2);font-size:13px;font-weight:600}.field-input{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--ink);outline:none;padding:10px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.field-input:focus,.field-input:focus-visible{border-color:var(--ink);box-shadow:var(--focus-ring)}.field-input::placeholder{color:var(--ink-3);font-size:14px}.form{flex-direction:column;gap:18px;display:flex}.form-error{background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-sm);color:var(--red);padding:11px 14px;font-size:14px}.auth-shell{min-height:100vh;padding:32px var(--gutter);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px}.auth-header{text-align:center;margin-bottom:28px}.auth-icon{margin-bottom:12px;font-size:44px;display:block}.auth-title{color:var(--ink);letter-spacing:-.3px;font-size:26px;font-weight:700}.auth-sub{color:var(--ink-3);margin-top:6px;font-size:14px}.auth-footer{text-align:center;color:var(--ink-3);margin-top:22px;font-size:14px}.auth-link{color:var(--green);font-weight:500}.auth-link:hover{text-decoration:underline}.auth-link:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:2px}.entry-note{background:var(--amber-bg);border-radius:var(--radius-sm);color:var(--amber);border:1px solid #fcd34d;align-items:center;gap:10px;margin-top:18px;padding:12px 14px;font-size:14px;font-weight:500;display:flex}.stat-strip{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:32px;padding:20px 24px;display:flex}.stat-rank{color:var(--green);font-size:42px;font-weight:700;font-family:var(--mono);text-align:center;min-width:60px;line-height:1}.stat-info{flex:1;min-width:140px}.stat-name{color:var(--ink);font-size:16px;font-weight:600}.stat-sub{color:var(--ink-3);margin-top:2px;font-size:13px}.stat-pts{text-align:right}.stat-pts-num{font-family:var(--mono);color:var(--ink);font-size:36px;font-weight:600;line-height:1;display:block}.stat-pts-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.8px;font-size:12px;font-weight:500}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.section-title{color:var(--ink);font-size:18px;font-weight:700}.section-more{color:var(--green);flex-shrink:0;font-size:13px;font-weight:500}.section-more:hover{text-decoration:underline}.section-more:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:2px}.dashboard-grid{grid-template-columns:1fr 360px;align-items:start;gap:28px;display:grid}.table-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;background:var(--surface);width:100%;min-width:360px;font-size:14px}.table th{text-transform:uppercase;letter-spacing:.8px;color:var(--ink-3);text-align:left;border-bottom:1px solid var(--border);background:var(--surface-2);font-size:11px;font-weight:600;font-family:var(--mono);padding:12px 16px}.table td{border-bottom:1px solid var(--border);color:var(--ink-2);padding:12px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table-me{background:var(--green-bg)!important}.table-me td{color:var(--ink)!important}.table-rank{font-family:var(--mono);color:var(--ink-3);width:48px;font-weight:600}.table-name{color:var(--ink);font-weight:600}.table-num{font-family:var(--mono);text-align:center;color:var(--ink-3)}.table-pts{font-family:var(--mono);color:var(--ink);text-align:right;font-size:16px;font-weight:700}.table-empty{text-align:center;color:var(--ink-3);padding:32px;font-size:14px}.match-list{flex-direction:column;gap:8px;display:flex}.match-link{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.match-link:hover{border-color:var(--border-2);box-shadow:var(--shadow)}.match-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.match-date{font-family:var(--mono);color:var(--ink-3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;font-size:11px}.match-teams{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.match-team{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.match-team-away{text-align:right}.match-vs{font-family:var(--mono);color:var(--ink-3);text-align:center;font-size:12px}.match-cta{color:var(--green);margin-top:8px;font-size:12px;font-weight:600}.match-tip-preview{color:var(--ink-3);margin-top:8px;font-size:13px}.score{font-family:var(--mono);color:var(--ink);font-size:14px;font-weight:600}.score-result{color:var(--green);font-size:16px}.pts-badge{font-family:var(--mono);border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pts-3{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.pts-1{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.pts-0{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.matches-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px;display:grid}@media (max-width:900px){.matches-grid{grid-template-columns:1fr}}.filter-btn{border:1.5px solid var(--border);background:var(--surface);min-height:44px;color:var(--ink-3);cursor:pointer;border-radius:100px;padding:11px 16px;font-size:13px;font-weight:500;transition:all .15s}.filter-btn:hover{border-color:var(--border-2);color:var(--ink-2)}.filter-btn.active{border-color:var(--ink);background:var(--ink);color:#fff}.filter-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.stage-group{margin-bottom:12px}.stage-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:8px;padding:12px 16px;transition:background .15s,border-color .15s;display:flex}.stage-toggle:hover{background:var(--surface-2);border-color:var(--border-2)}.stage-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.stage-toggle-left{align-items:center;gap:10px;display:flex}.stage-toggle-arrow{color:var(--ink-3);flex-shrink:0;width:12px;font-size:10px}.stage-toggle-name{color:var(--ink);font-size:16px;font-weight:700}.stage-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.8px;border-radius:100px;padding:2px 8px;font-size:10px;font-weight:600}.stage-badge-done{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--border)}.stage-toggle-meta{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;font-size:12px}.matchday-group{margin-bottom:8px}.matchday-label{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:11px;font-weight:600}.matchday-toggle{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:6px;padding:8px 12px;transition:background .15s;display:flex}.matchday-toggle:hover{background:var(--bg)}.matchday-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.matchday-toggle-left{align-items:center;gap:8px;display:flex}.matchday-toggle-label{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.match-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.match-row-main{flex:1;min-width:200px}.match-row-side{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;display:flex}.tip-inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.edit-link{color:var(--green);font-size:12px;font-weight:600}.edit-link:hover{text-decoration:underline}.edit-link:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:2px}.no-tip-label{font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.tip-stage{font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;font-size:11px}.tip-matchup{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;padding:28px 0 20px;display:flex}.tip-team{flex-direction:column;flex:1;align-items:center;gap:8px;min-width:110px;display:flex}.tip-flag{font-size:38px}.tip-teamname{color:var(--ink);text-align:center;font-size:15px;font-weight:700}.tip-dash{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;font-size:24px}.tip-result{text-align:center;color:var(--ink-2);background:var(--green-bg);border:1px solid var(--green-border);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px;font-size:15px}.tip-closed{text-align:center;background:var(--surface-2);border:1px dashed var(--border-2);border-radius:var(--radius-sm);color:var(--ink-3);flex-direction:column;align-items:center;gap:10px;padding:28px;font-size:15px;display:flex}.tip-closed-icon{font-size:32px}.tip-edit-note{color:var(--ink-3);text-align:center;font-size:13px}.score-inputs{justify-content:center;align-items:center;gap:16px;display:flex}.score-team{flex-direction:column;flex:1;align-items:center;gap:12px;display:flex}.score-team-name{color:var(--ink);text-align:center;font-size:14px;font-weight:700}.score-control{border:1.5px solid var(--border-2);background:var(--surface);border-radius:12px;align-items:center;display:flex;overflow:hidden}.score-btn{width:48px;height:56px;color:var(--ink-2);cursor:pointer;font-size:22px;font-family:var(--mono);background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s;display:flex}.score-btn:hover{background:var(--surface-2)}.score-btn:active{background:var(--bg)}.score-btn:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.score-input{text-align:center;width:64px;height:56px;font-family:var(--mono);color:var(--ink);border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);-moz-appearance:textfield;outline:none;font-size:28px;font-weight:600}.score-input:focus-visible{background:var(--surface-2);box-shadow:inset var(--focus-ring)}.score-input::-webkit-outer-spin-button{-webkit-appearance:none}.score-input::-webkit-inner-spin-button{-webkit-appearance:none}.score-colon{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;padding-bottom:32px;font-size:32px;font-weight:500}.tip-success{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:48px 24px;display:flex}.tip-success-circle{background:var(--green-bg);border:2px solid var(--green-border);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:36px;display:flex}.tip-success-text{color:var(--green);font-size:18px;font-weight:600}.scoring-card{margin-top:18px}.scoring-row{border-bottom:1px solid var(--border);color:var(--ink-2);align-items:center;gap:14px;padding:8px 0;font-size:14px;display:flex}.scoring-row:last-child{border-bottom:none}.scoring-pts{font-family:var(--mono);color:var(--ink);flex-shrink:0;min-width:56px;font-weight:700}.tip-row{flex-direction:column;gap:6px;display:flex}.tip-row-teams{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.tip-row-scores{flex-wrap:wrap;gap:14px;display:flex}.tip-row-pts{margin-top:2px}.empty-state{text-align:center;color:var(--ink-3);padding:28px;font-size:14px}@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width:768px){.nav-username{display:none}.match-row{flex-direction:column;align-items:flex-start}.match-row-side{align-self:flex-end}.tip-matchup{gap:12px}.tip-flag{font-size:30px}.stat-strip{gap:12px}.stat-rank{min-width:44px;font-size:32px}.stat-pts-num{font-size:28px}}@media (max-width:640px){.nav-burger{display:flex}.nav-links,.nav-desktop-only,.nav-username{display:none}}@media (max-width:480px){.score-btn{width:40px}.score-input{width:52px;font-size:24px}.nav-logo-icon{width:24px;height:24px}.match-link{padding:12px}.match-team{font-size:13px}.page{padding-top:24px}}.live-skeleton{background:var(--surface);border-radius:14px;height:96px;margin-bottom:24px;animation:1.4s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.45}}.live-widget{margin-bottom:24px}.live-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.live-badge{font-family:var(--mono);letter-spacing:1.8px;text-transform:uppercase;border-radius:100px;align-items:center;gap:7px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-flex}.live-badge--live{color:#991b1b;background:#fee2e2;border:1.5px solid #f87171}.live-badge--paused{color:#713f12;background:#fef9c3;border:1.5px solid #facc15}.live-badge--finished{background:var(--surface);color:var(--ink-3);border:1.5px solid var(--border)}.live-badge--upcoming{letter-spacing:1.2px;color:var(--ink-3);background:0 0;border:none;padding:0;font-size:11px}.live-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.2s ease-in-out infinite live-blink;display:inline-block}@keyframes live-blink{0%,to{opacity:1}50%{opacity:.2}}.live-refreshing{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-3);font-size:10px}.live-no-data{color:var(--ink-3);text-align:center;margin:0 0 8px;font-size:11px}.live-matchup{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:4px 0;display:grid}.live-team{align-items:center;gap:10px;display:flex}.live-team--home{justify-content:flex-start}.live-team--away{justify-content:flex-end}.live-flag{flex-shrink:0;font-size:26px;line-height:1}.live-teamname{color:var(--ink);font-size:15px;font-weight:600;line-height:1.2}.live-center{text-align:center;flex-shrink:0}.live-score{font-family:var(--mono);color:var(--ink);letter-spacing:2px;white-space:nowrap;font-size:34px;font-weight:500}.live-vs{font-family:var(--mono);color:var(--ink-3);font-size:18px}.live-cards{flex-wrap:wrap;align-items:center;gap:3px;display:inline-flex}.live-card{border-radius:2px;flex-shrink:0;width:10px;height:14px;display:inline-block}.live-card--yellow{background:#facc15}.live-card--red{background:#ef4444}.live-tips{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.live-tips-title{color:var(--ink);margin:0 0 10px;font-size:16px;font-weight:600}@media (max-width:480px){.live-score{font-size:26px}.live-teamname{font-size:13px}.live-flag{font-size:20px}}
