*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#1a56db;--primary-light:#e8f0fe;--accent:#f59e0b;--green:#10b981;--red:#ef4444;--bg:#f3f4f6;--card:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--radius:12px;--shadow:0 1px 4px #00000014}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}.header{background:var(--primary);color:#fff;z-index:100;justify-content:space-between;align-items:center;gap:.5rem;height:56px;padding:0 1rem;display:flex;position:sticky;top:0}.header-title{white-space:nowrap;flex:1;align-items:center;gap:.4rem;font-size:1rem;font-weight:700;display:flex}.header-logo{font-size:1.3rem}.header-nav{gap:.5rem;display:flex}.header-nav a{color:#fffc;white-space:nowrap;border-radius:6px;padding:.3rem .7rem;font-size:.9rem;text-decoration:none;transition:background .15s}.header-nav a.active,.header-nav a:hover{color:#fff;background:#fff3}.header-user{white-space:nowrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.header-user span{display:none}.btn-logout{color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:6px;padding:.25rem .6rem;font-size:.82rem}.btn-logout:hover{background:#ffffff59}.main{max-width:960px;margin:0 auto;padding:1rem}.login-page{background:linear-gradient(135deg,#1a56db 0%,#3b82f6 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:20px;width:min(360px,90vw);padding:2.5rem 2rem;box-shadow:0 8px 32px #0000002e}.login-logo{margin-bottom:.5rem;font-size:3rem}.login-card h1{margin-bottom:.25rem;font-size:1.4rem}.login-card p{color:var(--muted);margin-bottom:1.5rem}.btn-login{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s}.btn-login:hover{background:#1444b8}.dashboard-summary{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.summary-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.25rem;padding:.9rem 1rem;display:flex}.summary-label{color:var(--muted);font-size:.78rem}.summary-value{color:var(--primary);font-size:1.3rem;font-weight:700}.top-three{justify-content:center;align-items:flex-end;gap:.75rem;margin-bottom:1.5rem;display:flex}.podium{background:var(--card);border-radius:var(--radius);text-align:center;cursor:pointer;box-shadow:var(--shadow);border:2px solid #0000;flex:1;max-width:200px;padding:.9rem .75rem;transition:transform .15s,box-shadow .15s}.podium:hover{transform:translateY(-3px);box-shadow:0 4px 16px #0000001f}.podium-1{border-color:#f59e0b}.podium-2{border-color:#9ca3af}.podium-3{border-color:#b45309}.podium-medal{font-size:2rem}.podium-name{margin:.25rem 0;font-size:.9rem;font-weight:700}.podium-km{color:var(--primary);font-size:.95rem;font-weight:700}.section-title{color:var(--text);margin-bottom:.75rem;font-size:1rem;font-weight:700}.leaderboard-table,.log-table,.detail-table{border-collapse:collapse;background:var(--card);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);font-size:.875rem;overflow:hidden}.leaderboard-table th,.log-table th,.detail-table th{background:var(--primary);color:#fff;text-align:left;white-space:nowrap;padding:.6rem .75rem;font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:#1444b8}.sort-arrow{opacity:.7;margin-left:2px;font-size:.7rem}.leaderboard-table td,.log-table td,.detail-table td{border-bottom:1px solid var(--border);padding:.6rem .75rem}.leaderboard-table tbody tr:last-child td,.log-table tbody tr:last-child td{border-bottom:none}.leaderboard-table tbody tr:hover{background:var(--primary-light)}.rank-cell{text-align:center;font-size:1.1rem}.rank-num{color:var(--muted);font-weight:700}.name-cell{font-weight:600}.total-cell{color:var(--primary);font-weight:700}.row-rank-1 td{background:#fffbeb}.row-rank-2 td{background:#f9fafb}.row-rank-3 td{background:#fef3c7}.detail-page{max-width:600px}.btn-back{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.95rem;font-weight:600}.member-name{margin-bottom:.5rem;font-size:1.5rem;font-weight:800}.total-eq-badge{background:var(--primary);color:#fff;border-radius:20px;margin-bottom:1.25rem;padding:.3rem 1rem;font-weight:700;display:inline-block}.eq-cell{color:var(--primary);font-weight:700}.total-row td{background:var(--primary-light);font-weight:700}.total-eq{color:var(--primary);font-size:1.1rem}.input-page{max-width:600px}.input-form{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;display:flex}.form-row{grid-template-columns:130px 1fr;align-items:center;gap:.5rem;display:grid}.form-row label{color:var(--muted);font-size:.9rem;font-weight:600}.form-row select,.form-row input[type=number],.form-row input[type=date]{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:.5rem .75rem;font-size:.95rem;transition:border-color .15s}.form-row select:focus,.form-row input:focus{border-color:var(--primary);outline:none}.eq-preview .eq-value{color:var(--primary);font-size:1.3rem;font-weight:800}.form-message{border-radius:8px;padding:.5rem .75rem;font-size:.9rem;font-weight:600}.form-message.success{color:#065f46;background:#d1fae5}.form-message.error{color:#991b1b;background:#fee2e2}.btn-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem;font-size:1rem;font-weight:600;transition:background .15s}.btn-submit:hover:not(:disabled){background:#1444b8}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-delete{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.2rem .6rem;font-size:.8rem}.btn-delete:hover{background:#dc2626}.loading{text-align:center;color:var(--muted);padding:3rem;font-size:1.1rem}.challenge-header{flex-wrap:wrap;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.challenge-title{font-size:1.4rem;font-weight:800}.challenge-dates{color:var(--muted);font-size:.85rem}.team-scores{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.team-card{background:var(--card);border-radius:var(--radius);text-align:center;min-width:100px;box-shadow:var(--shadow);border:2px solid;flex:1;padding:.9rem 1rem}.team-label{margin-bottom:.25rem;font-size:.8rem;font-weight:700}.team-eq{font-size:1.6rem;font-weight:800}.team-eq-label{color:var(--muted);font-size:.72rem}.team-tag{color:#fff;border-radius:20px;padding:.1rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.podium-team{margin:.1rem 0;font-size:.75rem;font-weight:700}.challenge-select-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.btn-challenge{border:2px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:20px;padding:.4rem 1rem;font-size:.9rem;font-weight:600;transition:all .15s}.btn-challenge.active,.btn-challenge:hover{background:var(--primary);color:#fff}.manage-page{max-width:800px}.manage-members-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:1.5rem 0 .75rem;display:flex}.btn-outline{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:.35rem .75rem;font-size:.85rem}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-shuffle{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.35rem .9rem;font-size:.85rem;font-weight:700}.btn-shuffle:disabled{opacity:.5;cursor:not-allowed}.member-grid{flex-wrap:wrap;gap:.5rem;display:flex}.member-chip{border:2px solid var(--border);background:var(--card);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;flex-direction:column;align-items:flex-start;padding:.4rem .75rem;transition:all .15s;display:flex}.member-chip.selected{border-color:var(--primary);background:var(--primary-light)}.member-chip:hover{border-color:var(--primary)}.chip-team{color:#fff;border-radius:10px;margin-bottom:.1rem;padding:0 .4rem;font-size:.65rem;font-weight:700}.chip-name{font-size:.85rem;font-weight:600}.team-preview{flex-wrap:wrap;gap:.75rem;display:flex}.team-preview-card{background:var(--card);border-radius:var(--radius);min-width:140px;box-shadow:var(--shadow);border:2px solid;flex:1;padding:.75rem}.team-preview-label{margin-bottom:.5rem;font-size:1rem;font-weight:800}.team-preview-member{border-bottom:1px solid var(--border);padding:.15rem 0;font-size:.85rem}.team-preview-member:last-child{border-bottom:none}@media (width<=640px){.header{flex-wrap:wrap;height:auto;min-height:56px;padding:.5rem .75rem}.header-title{font-size:.82rem}.header-user span{display:none}.main{padding:.75rem}.dashboard-summary{gap:.5rem}.summary-card{padding:.6rem .5rem}.summary-label{font-size:.7rem}.summary-value{font-size:1rem}.top-three{gap:.4rem}.podium{max-width:none;padding:.6rem .4rem}.podium-medal{font-size:1.4rem}.podium-name{font-size:.72rem}.podium-km{font-size:.75rem}.leaderboard-table th:nth-child(3),.leaderboard-table td:nth-child(3),.leaderboard-table th:nth-child(4),.leaderboard-table td:nth-child(4),.leaderboard-table th:nth-child(5),.leaderboard-table td:nth-child(5){display:none}.log-table-wrap,.detail-table-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius);overflow-x:auto}.form-row{grid-template-columns:1fr}.form-row label{margin-bottom:-.25rem}.input-form{padding:.9rem}}
