*{box-sizing:border-box;margin:0;padding:0}:root{--beg-lime: #c8ff00;--beg-lime-dark: #a8d900;--beg-black: #1a1a1a;--beg-gray: #333}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f5f5f5;color:var(--beg-gray);line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:20px}.header{background:var(--beg-black);color:#fff;padding:20px 30px;margin-bottom:20px;border-radius:8px;display:flex;align-items:center;gap:20px}.header-logo{width:80px;height:80px;object-fit:cover;border-radius:50%;border:3px solid var(--beg-lime)}.header-text h1{font-size:2rem;margin-bottom:2px;letter-spacing:2px}.header-text h1 span{color:var(--beg-lime)}.header-text p{opacity:.8;font-size:.95rem}.header-text{flex:1}.header-goal-inline{margin-top:4px}.header-goal-display{font-size:1.4rem;font-weight:700;color:var(--beg-lime)}.header-goal-display.editable{cursor:pointer;padding:2px 8px;border-radius:6px;transition:background-color .2s}.header-goal-display.editable:hover{background-color:#c8ff0033}.header-actions{margin-left:auto}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.card h2{margin-bottom:15px;color:var(--beg-black);font-size:1.2rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px}.stat-box{text-align:center;padding:15px;background:#f8f9fa;border-radius:6px;border-left:3px solid var(--beg-lime)}.stat-value{font-size:1.5rem;font-weight:700;color:var(--beg-black)}.stat-label{font-size:.85rem;color:#666;margin-top:5px}.stats-row{display:flex;justify-content:space-between;gap:8px}.stat-item{flex:1;text-align:center;padding:12px 8px;background:#f8f9fa;border-radius:8px}.stat-item .stat-value{font-size:1.4rem;font-weight:700;color:var(--beg-black)}.stat-item .stat-label{font-size:.75rem;color:#888;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th,.leaderboard-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #eee;height:52px}.leaderboard-table th{background:var(--beg-black);color:#fff;font-weight:600;cursor:pointer}.leaderboard-table th:hover{background:#333}.leaderboard-table tr:hover{background:#f8f9fa}.leaderboard-table tr.current-user{background:#c8ff0026}.leaderboard-table tr.current-user:hover{background:#c8ff0040}.leaderboard-table tr.current-user .runner-name{font-weight:700}.rank{font-weight:700;color:var(--beg-black);width:40px}.rank-1{color:gold}.rank-2{color:silver}.rank-3{color:#cd7f32}.clickable-row{cursor:pointer}.clickable-row:hover{background:#c8ff001a}.runner-info{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--beg-lime)}.runner-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sort-buttons{display:flex;gap:8px;margin-bottom:15px;flex-wrap:wrap}.sort-btn{padding:8px 16px;border:2px solid var(--beg-black);background:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.sort-btn.active{background:var(--beg-lime);color:var(--beg-black);border-color:var(--beg-lime)}.sort-btn:hover:not(.active){background:#f0f0f0}.connect-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:var(--beg-lime);color:var(--beg-black);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s}.connect-btn:hover{background:var(--beg-lime-dark)}.sync-btn{padding:10px 20px;background:var(--beg-black);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.sync-btn:hover{background:#333}.sync-btn:disabled{background:#ccc;cursor:not-allowed}.loading{text-align:center;padding:40px;color:#666}.error{background:#fee;color:#c00;padding:15px;border-radius:6px;margin-bottom:20px}.nav-tabs{display:flex;gap:10px;margin-bottom:20px}.nav-tab{padding:10px 20px;background:#fff;border:2px solid var(--beg-black);border-radius:6px;text-decoration:none;color:var(--beg-black);font-weight:500}.nav-tab:hover,.nav-tab.active{background:var(--beg-lime);border-color:var(--beg-lime)}.chart-container{height:300px;margin-top:20px}.profile-header-link{text-decoration:none;color:inherit;display:block;margin-bottom:20px}.profile-header-link:hover .profile-avatar{border-color:#fc4c02}.profile-header-link:hover .profile-name{color:#fc4c02}.profile-header{display:flex;align-items:center;gap:20px;transition:all .2s;margin-bottom:20px}.profile-avatar{width:80px;height:80px;border-radius:50%;border:3px solid var(--beg-lime);transition:border-color .2s}.profile-name{margin:0;font-size:1.5rem;font-weight:700;line-height:1.2;transition:color .2s}.back-link{display:inline-block;margin-bottom:15px;color:var(--beg-black);text-decoration:none;font-weight:500}.back-link:hover{color:var(--beg-lime-dark)}.progress-bar{height:20px;background:#e9ecef;border-radius:10px;overflow:hidden;position:relative}.progress-fill{height:100%;background:var(--beg-lime);border-radius:10px;transition:width .3s ease}.progress-marker{position:absolute;top:0;bottom:0;width:3px;background:var(--beg-black);transform:translate(-50%)}.goal-cell{display:flex;flex-direction:column;gap:2px;min-width:100px}.goal-cell-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.mini-progress-bar{width:100%;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.mini-progress-fill{height:100%;background:var(--beg-lime);border-radius:3px}.goal-percent{font-size:.8rem;font-weight:600;color:var(--beg-black);line-height:1.2}.goal-text{font-size:.7rem;color:#888;line-height:1}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.card-header h2{margin:0}.week-tabs{display:flex;gap:4px}.week-tab{padding:6px 12px;border:none;background:#e9ecef;font-size:.85rem;font-weight:500;color:#666;cursor:pointer;border-radius:4px;transition:all .2s}.week-tab:hover{color:var(--beg-black);background:#ddd}.week-tab.active{color:var(--beg-black);background:var(--beg-lime)}.leaderboards-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 1200px){.leaderboards-grid{grid-template-columns:1fr}}@media (max-width: 768px){.container{padding:8px;max-width:100%;overflow-x:hidden}.header{padding:12px;gap:10px}.header-logo{width:45px;height:45px}.header-text h1{font-size:1.2rem}.header-goal-inline{margin-top:2px}.header-goal-display{font-size:1rem!important}.goal-input{width:70px!important;padding:4px 6px!important;font-size:.9rem!important}.goal-btn{padding:4px 8px!important;font-size:.8rem!important}.connect-btn{padding:6px 12px;font-size:.8rem}.card{padding:10px;margin-bottom:10px;width:100%;box-sizing:border-box}.card h2{font-size:.95rem}.leaderboard-table{font-size:.75rem}.leaderboard-table th,.leaderboard-table td{padding:4px 6px;font-size:.75rem;height:auto}.leaderboard-table .hide-mobile{display:none}.avatar{width:24px;height:24px}.runner-info{gap:4px}.runner-name{max-width:80px}.goal-cell{min-width:60px;gap:2px}.goal-percent{font-size:.75rem}.goal-text{font-size:.6rem}.mini-progress-bar{height:4px}.week-tab{padding:3px 6px;font-size:.7rem}.card-header{margin-bottom:8px;flex-wrap:wrap;gap:8px}.summary-grid{grid-template-columns:repeat(2,1fr);gap:6px}.stat-box{padding:8px}.stat-value{font-size:1.1rem}.stat-label{font-size:.7rem}.goal-progress{padding:8px;width:100%;box-sizing:border-box}.goal-progress>div{font-size:.8rem}.progress-bar{width:100%;height:16px}.chart-container{height:200px;width:100%}.profile-header{flex-wrap:wrap}.profile-avatar{width:50px;height:50px}.profile-name{font-size:1.1rem}.back-link{font-size:.85rem;margin-bottom:10px}.refresh-btn{width:24px;height:24px;font-size:.9rem}}.stat-box.highlight{background:var(--beg-lime);border-left-color:var(--beg-black)}.stat-box.highlight .stat-value{color:var(--beg-black)}.goal-progress{padding:15px;background:#f8f9fa;border-radius:8px}.goal-text-editable{cursor:pointer;padding:2px 6px;border-radius:4px;transition:background-color .2s}.goal-text-editable:hover{background-color:#c8ff004d}.goal-input-inline{width:70px;padding:4px 8px;border:1px solid #ccc;border-radius:4px;font-size:.85rem}.goal-btn-inline{padding:4px 10px;border:none;border-radius:4px;font-size:.8rem;cursor:pointer}.goal-btn-inline.save{background:var(--beg-lime);color:var(--beg-black)}.goal-btn-inline.cancel{background:#ddd;color:#333}.header-sync{color:#fff!important;margin-left:auto;margin-right:12px}.strava-link{color:#fc4c02;text-decoration:none;font-weight:500}.strava-link:hover{text-decoration:underline}.strava-link-name{color:inherit;text-decoration:none}.strava-link-name:hover{color:#fc4c02}.profile-avatar-link{display:block;border-radius:50%;transition:transform .2s,box-shadow .2s}.profile-avatar-link:hover{transform:scale(1.05)}.profile-avatar-link:hover .profile-avatar{border-color:#fc4c02}.runner-cell{display:flex;align-items:center;gap:8px}.strava-external-link{display:flex;align-items:center;justify-content:center;color:#999;padding:4px;border-radius:4px;transition:all .2s;opacity:0}.leaderboard-table tr:hover .strava-external-link{opacity:1}.strava-external-link:hover{color:#fc4c02;background:#fc4c021a}.goal-input{width:100px;padding:6px 10px;border:2px solid var(--beg-black);border-radius:4px;font-size:.9rem;text-align:right}.goal-btn{padding:6px 12px;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.goal-btn.edit{background:var(--beg-lime);color:var(--beg-black)}.goal-btn.edit:hover{background:var(--beg-lime-dark)}.goal-btn.save{background:var(--beg-lime);color:var(--beg-black)}.goal-btn.save:hover{background:var(--beg-lime-dark)}.goal-btn.cancel{background:#e9ecef;color:#666}.goal-btn.cancel:hover{background:#ddd}.login-page{display:flex;align-items:center;justify-content:center;min-height:80vh}.login-card{background:#fff;border-radius:12px;padding:40px;text-align:center;box-shadow:0 4px 12px #0000001a;max-width:400px}.login-logo{width:100px;height:100px;border-radius:8px;margin-bottom:20px}.login-card h1{font-size:1.8rem;margin-bottom:10px;color:var(--beg-black)}.login-card h1 span{color:var(--beg-lime)}.login-card p{color:#666;margin-bottom:25px}.login-card .error-message{color:#c00;font-weight:500;margin-bottom:10px}.login-card .access-hint{color:#666;font-size:.9rem}.login-card .strava-id{font-family:monospace;font-size:1.2rem;font-weight:700;color:var(--beg-black);background:var(--beg-lime);padding:8px 16px;border-radius:4px;display:inline-block}.refresh-btn{width:28px;height:28px;padding:0;border:none;background:transparent;color:#999;font-size:1.1rem;cursor:pointer;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.refresh-btn:hover:not(:disabled){background:var(--beg-lime);color:var(--beg-black)}.refresh-btn:disabled{cursor:not-allowed;opacity:.5}
