*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#000;color:#b8b8b8;font-size:16px;line-height:1.5;overflow-x:hidden;width:100%}#root{min-height:100vh;overflow-x:hidden;width:100%}.nav{background-color:#000;border-bottom:1px solid #1a1a1a;position:sticky;top:0;z-index:1000}.nav-container{max-width:1600px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 48px}.nav-title{font-size:18px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:24px 0}.nav-links{display:flex;gap:0;list-style:none;align-items:center}.nav-links a{color:#707070;text-decoration:none;transition:all .2s ease;padding:24px 32px;display:block;font-size:12px;font-weight:600;letter-spacing:2px;border-bottom:3px solid transparent}.nav-links a:hover{color:#b8b8b8}.nav-links a.active{color:#00ff41;border-bottom:3px solid #00ff41}.nav-logout-btn{background:none;border:none;color:#707070;cursor:pointer;padding:24px 32px;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;transition:color .2s ease}.nav-logout-btn:hover{color:#b8b8b8}.nav-right{display:flex;align-items:center;gap:16px}.nav-logout-btn-circular{width:32px;height:32px;border-radius:50%;background:transparent;border:1px solid #333;color:#707070;font-size:14px;font-weight:400;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}.nav-logout-btn-circular:hover{border-color:#ff3b3b;color:#ff3b3b;background:#ff3b3b0d;transform:rotate(90deg)}.nav-user{font-size:14px;color:#707070}.training-plan{max-width:1600px;margin:0 auto;padding:48px 48px 120px;position:relative;overflow-x:hidden;width:100%}.training-plan:before,.race-history-page:before,.profile-page:before{content:"";position:fixed;left:0;bottom:0;width:100%;height:100%;background:linear-gradient(135deg,transparent 0%,transparent 45%,rgba(0,255,65,.08) 47%,rgba(0,255,65,.15) 50%,rgba(0,255,65,.08) 53%,transparent 55%,transparent 100%);z-index:0;pointer-events:none;opacity:.7}.training-plan>*,.race-history-page>*,.profile-page>*{position:relative;z-index:1}.greeting{margin-bottom:24px}.greeting h1{font-size:42px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:#fff;line-height:1}.hero-metrics{display:flex;gap:24px;margin-bottom:40px;max-width:400px}.metric-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:24px;text-align:center;transition:border-color .2s ease;position:relative}.metric-card:hover{border-color:#333}.metric-label{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070;margin-bottom:12px}.metric-value{font-size:42px;font-weight:700;line-height:1;margin-bottom:6px;color:#00ff41}.metric-subtitle{font-size:13px;color:#b8b8b8;margin-bottom:0}.btn-primary{background:#fff;color:#000;border:none;padding:16px 32px;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#eee;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-increment{background:transparent;color:#707070;border:1px solid #333;width:32px;height:32px;font-size:20px;font-weight:300;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:absolute;top:16px;left:16px}.btn-increment:hover{background:#00ff411a;color:#00ff41;border-color:#00ff41}.btn-increment:active{transform:scale(.95);background:#00ff4126}.weekly-plan h2{font-size:18px;font-weight:700;letter-spacing:3px;margin-bottom:32px;color:#fff}.week-list{display:flex;flex-direction:column;gap:12px;margin-bottom:48px}.day-list-card{background:#0a0a0a;border:1px solid #1a1a1a;display:flex;flex-direction:row;align-items:center;padding:16px 20px;transition:all .2s ease;gap:24px}.day-list-card:hover{border-color:#333;background:#0f0f0f}.day-list-card.logged{border-left:3px solid #00ff41}.day-list-left{display:flex;flex-direction:column;gap:4px;min-width:100px;padding-right:20px;border-right:1px solid #1a1a1a}.day-list-name{font-size:10px;font-weight:700;letter-spacing:2px;color:#707070;text-transform:uppercase}.day-list-date{font-size:20px;font-weight:700;color:#fff;letter-spacing:.5px;line-height:1}.day-list-number{font-size:9px;font-weight:700;letter-spacing:1px;color:#4a4a4a;text-transform:uppercase}.day-list-right{flex:1;display:flex;flex-direction:row;align-items:center;gap:16px;justify-content:space-between}.day-list-planned{display:flex;align-items:center;gap:12px;flex:1}.planned-label-inline{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#4a4a4a;text-transform:uppercase}.planned-workout-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workout-type-inline{font-size:14px;font-weight:700;color:#fff;letter-spacing:.3px}.workout-detail-inline{font-size:13px;color:#b8b8b8;letter-spacing:.3px}.workout-time-inline{font-size:11px;color:#707070;font-weight:600;padding:2px 8px;background:#ffffff0d;border-radius:0}.day-list-logged,.logged-workout-inline{display:flex;align-items:center;gap:12px;flex:1}.logged-badge-inline{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#00ff41;padding:4px 8px;background:#00ff411a;white-space:nowrap}.logged-stats-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#b8b8b8}.logged-stats-inline span:not(:last-child):after{content:" •";margin-left:8px;color:#4a4a4a}.day-list-rest{font-size:13px;color:#4a4a4a;font-weight:600;letter-spacing:1px;text-transform:uppercase;flex:1}.day-list-actions{display:flex;gap:6px;align-items:center}.action-btn-inline{background:transparent;border:1px solid #333;color:#707070;padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.action-btn-inline:hover{border-color:#707070;color:#b8b8b8}.action-btn-inline.log-btn:hover{border-color:#00ff41;color:#00ff41;background:#00ff410d}.action-btn-inline.delete-btn:hover{border-color:#ff3b3b;color:#ff3b3b;background:#ff3b3b0d}.action-btn-inline.add-btn{border-style:dashed}.action-btn-inline.add-btn:hover{border-style:solid;border-color:#b8b8b8;color:#b8b8b8}.completed-weeks{margin-top:64px;margin-bottom:64px}.completed-weeks h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:24px}.week-card{background:#0a0a0a;border:1px solid #1a1a1a;margin-bottom:12px;transition:all .2s ease}.week-card:hover{border-color:#333}.week-card-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;cursor:pointer;-webkit-user-select:none;user-select:none}.week-card-left{display:flex;flex-direction:column;gap:8px;flex:1}.week-date-range{font-size:14px;font-weight:700;color:#fff;letter-spacing:.5px}.week-completion{display:flex;align-items:center;gap:8px;font-size:12px}.completion-count{font-size:13px;font-weight:700;color:#b8b8b8}.completion-count.complete{color:#00ff41}.completion-label{font-size:11px;color:#707070;text-transform:uppercase;letter-spacing:1px}.completion-percent{font-size:12px;font-weight:700;color:#00ff41;padding:2px 8px;background:#00ff411a}.week-card-right{display:flex;align-items:center;gap:24px}.week-categories{display:flex;gap:12px;flex-wrap:wrap}.week-category{display:flex;align-items:center;gap:6px}.category-badge{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 8px;background:#ffffff0d}.category-badge.run{color:#ff6b6b;background:#ff6b6b1a}.category-badge.ride{color:#4dabf7;background:#4dabf71a}.category-badge.swim{color:#51cf66;background:#51cf661a}.category-badge.gym{color:#ffd43b;background:#ffd43b1a}.category-badge.elliptical,.category-badge.recovery{color:#999;background:#9999991a}.category-count{font-size:12px;font-weight:700;color:#b8b8b8}.week-expand-btn{background:transparent;border:none;padding:8px;cursor:pointer;color:#707070;transition:color .2s ease}.week-expand-btn:hover{color:#fff}.expand-icon{display:inline-block;transition:transform .2s ease;font-size:10px}.expand-icon.expanded{transform:rotate(180deg)}.week-card-body{border-top:1px solid #1a1a1a;padding:16px 24px;display:flex;flex-direction:column;gap:12px}.week-workout-item{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.03)}.week-workout-item:last-child{border-bottom:none}.week-workout-date{min-width:100px;font-size:11px;color:#707070;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.week-workout-type{min-width:80px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.week-workout-type.run{color:#ff6b6b}.week-workout-type.ride{color:#4dabf7}.week-workout-type.swim{color:#51cf66}.week-workout-type.gym{color:#ffd43b}.week-workout-type.elliptical,.week-workout-type.recovery{color:#999}.week-workout-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:#b8b8b8}.week-workout-stats span:not(:last-child):after{content:" •";margin-left:12px;color:#4a4a4a}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#1a1a1a;margin-bottom:48px}.day-card{background:#0a0a0a;padding:16px 14px;min-height:200px;display:flex;flex-direction:column;transition:border .2s ease}.day-card.logged{border-left:2px solid #00ff41}.day-header{margin-bottom:14px;display:flex;flex-direction:column;gap:6px;padding-bottom:10px;border-bottom:1px solid #1a1a1a}.day-header-top{display:flex;justify-content:space-between;align-items:center}.day-name{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070;text-transform:uppercase}.day-number{font-size:9px;font-weight:700;letter-spacing:1px;color:#4a4a4a;text-transform:uppercase}.day-date{font-size:14px;font-weight:600;color:#fff;letter-spacing:.3px}.logged-badge{font-size:8px;font-weight:700;letter-spacing:1px;color:#00ff41;background:#00ff411a;padding:3px 6px;border-radius:0;display:inline-block}.workout-plan{text-align:center;margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.workout-plan.rest{color:#4a4a4a;font-size:12px;margin-top:32px}.workout-info{flex:1}.workout-type{font-size:14px;font-weight:700;margin-bottom:4px;color:#b8b8b8}.workout-detail{font-size:12px;color:#b8b8b8;margin-bottom:8px}.workout-actions{display:flex;gap:4px;justify-content:center;margin-top:8px}.action-btn{background:#000;border:1px solid #333;border-radius:0;color:#707070;padding:4px 8px;cursor:pointer;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:all .15s ease}.action-btn:hover{border-color:#fff;color:#fff;background:#1a1a1a}.action-btn.delete-btn:hover{border-color:#ff3b3b;color:#ff3b3b;background:#000}.add-plan-btn{width:100%;background:transparent;border:1px dashed #333;color:#707070;padding:12px;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;margin-top:auto}.add-plan-btn:hover{border-color:#b8b8b8;border-style:solid;color:#b8b8b8;background:#ffffff05}.workout-checkbox{font-size:20px;margin-top:8px}.planned-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #1a1a1a}.planned-label{font-size:8px;font-weight:700;letter-spacing:1.5px;color:#4a4a4a;margin-bottom:8px;text-transform:uppercase}.planned-text{font-size:13px;color:#fff;line-height:1.6;font-weight:500;letter-spacing:.3px}.logged-section{flex:1;display:flex;flex-direction:column;gap:12px}.logged-workout{display:flex;flex-direction:column;gap:8px;padding:12px;background:#4caf500d;border-left:2px solid #4CAF50}.logged-header{display:flex;align-items:center;gap:6px}.logged-icon{color:#4caf50;font-size:14px;font-weight:700}.logged-label{font-size:8px;font-weight:700;letter-spacing:1.5px;color:#4caf50}.workout-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:#b8b8b8;line-height:1.4}.workout-stats span{white-space:nowrap}.workout-stats span:not(:last-child):after{content:" •";margin-left:8px;color:#4a4a4a}.workout-actions-logged{display:flex;gap:4px;margin-top:4px}.workout-actions-logged .action-btn{font-size:8px;padding:3px 6px}.today-workout{background:#0a0a0a;border:2px solid #1a1a1a;padding:32px;margin-bottom:64px;text-align:center}.today-workout h3{font-size:14px;font-weight:700;letter-spacing:2px;color:#707070;margin-bottom:16px}.planned-workout{font-size:16px;margin-bottom:24px;color:#b8b8b8}.btn-log-workout{background:#c00;color:#fff;border:none;padding:20px 48px;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn-log-workout:hover{background:red;transform:scale(1.02)}.training-log{margin-top:64px}.workout-cards{display:flex;flex-direction:column;gap:16px}.workout-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:20px 24px;transition:all .3s ease;position:relative;display:flex;flex-direction:row;gap:24px;align-items:flex-start}.workout-card:hover{border-color:#333;background:#0f0f0f;transform:translateY(-2px)}.workout-card-header{min-width:100px}.workout-card-date-section{display:flex;flex-direction:column;gap:8px}.workout-card-date{display:flex;flex-direction:column;gap:2px}.workout-date-day{font-size:9px;font-weight:700;letter-spacing:2px;color:#707070}.workout-date-num{font-size:24px;font-weight:700;line-height:1;color:#fff}.workout-date-month{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070}.workout-card-type{display:flex;align-items:center}.workout-card-body{display:flex;flex-direction:column;gap:10px;flex:1}.workout-card-stats{display:flex;gap:20px;flex-wrap:wrap}.workout-stat{display:flex;flex-direction:column;gap:6px}.workout-stat-label{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#707070;text-transform:uppercase}.workout-stat-value{font-size:16px;font-weight:700;line-height:1;color:#fff;letter-spacing:-.3px}.workout-stat-value .unit{font-size:11px;font-weight:600;color:#b8b8b8;margin-left:4px;letter-spacing:0}.workout-card-notes{font-size:12px;color:#b8b8b8;line-height:1.5;padding:8px 10px;background:#000;border-left:2px solid #333;font-style:italic}.workout-card-actions{display:flex;gap:8px;opacity:0;transition:opacity .2s ease;align-items:center}.workout-card:hover .workout-card-actions{opacity:1}.workout-card-action-btn{background:transparent;border:1px solid #333;color:#707070;padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.workout-card-action-btn:hover{border-color:#707070;color:#b8b8b8}.workout-card-action-btn.delete:hover{border-color:#ff3b3b;color:#ff3b3b}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.section-header h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff}.week-subtitle{font-size:12px;font-weight:400;letter-spacing:1px;color:#4a4a4a;margin-left:12px}.btn-secondary{background:transparent;color:#b8b8b8;border:1px solid #707070;padding:12px 24px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{border-color:#b8b8b8;background:#0a0a0a;color:#fff}.workout-table{width:100%;border-collapse:collapse;border:1px solid #1a1a1a}.workout-table thead{background:#0a0a0a}.workout-table th{text-align:left;padding:16px 24px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#707070;border-bottom:1px solid #1a1a1a}.workout-table td{padding:20px 24px;border-bottom:1px solid #0a0a0a;font-size:14px;color:#b8b8b8}.notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#707070}.workout-table tbody tr{transition:background .2s ease}.workout-table tbody tr:hover{background:#0a0a0a}.workout-badge{display:inline-block;padding:6px 12px;font-size:10px;font-weight:700;letter-spacing:1px;border-radius:2px}.workout-badge.run{background:#ff6b6b33;color:#ff6b6b}.workout-badge.ride{background:#4dabf733;color:#4dabf7}.workout-badge.swim{background:#51cf6633;color:#51cf66}.workout-badge.gym,.workout-badge.strength{background:#ffd43b33;color:#ffd43b}.workout-badge.elliptical,.workout-badge.recovery{background:#9993;color:#999}.profile-page{max-width:1600px;margin:0 auto;padding:48px 48px 120px;position:relative;overflow-x:hidden;width:100%}.athlete-info{margin-bottom:48px}.athlete-info .section-header{margin-bottom:24px}.athlete-info h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff}.btn-edit{background:transparent;color:#707070;border:1px solid #333;border-radius:0;padding:8px 16px;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn-edit:hover{color:#b8b8b8;border-color:#707070}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#1a1a1a}.info-card{background:#0a0a0a;padding:20px 24px;text-align:center}.info-label{font-size:9px;font-weight:700;letter-spacing:2px;color:#707070;margin-bottom:8px}.info-value{font-size:32px;font-weight:700;color:#fff;line-height:1}.race-schedule{margin-bottom:64px}.race-schedule h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:32px}.races-timeline{display:flex;flex-direction:column;gap:16px}.race-card{background:#0a0a0a;border:1px solid #1a1a1a;border-radius:0;padding:24px 28px;cursor:pointer;transition:all .2s ease;position:relative}.race-card:after{content:"CLICK TO EDIT";position:absolute;top:12px;right:16px;font-size:8px;font-weight:700;letter-spacing:1.5px;color:#4a4a4a;opacity:0;transition:opacity .2s ease}.race-card:hover{border-color:#333;background:#0f0f0f}.race-card:hover:after{opacity:1}.race-card.primary{border-left:3px solid #ff3b3b;background:#ff3b3b08}.race-card.primary:hover{background:#ff3b3b0d}.race-header{display:flex;flex-direction:column;gap:8px}.race-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.race-date{font-size:12px;font-weight:700;letter-spacing:1px;color:#707070}.race-countdown{font-size:10px;font-weight:700;letter-spacing:2px;color:#4a4a4a;background:#000;padding:4px 8px;border-radius:0}.race-card.primary .race-countdown{color:#ff3b3b;background:#ff3b3b1a}.race-name{font-size:18px;font-weight:700;letter-spacing:2px;color:#fff;margin-bottom:4px}.primary-star{color:#ff3b3b;font-size:16px}.race-location{font-size:12px;color:#707070;letter-spacing:.5px}.race-body{margin-top:12px;display:flex;flex-direction:column;gap:8px}.race-goal{font-size:13px;line-height:1.5;color:#b8b8b8}.race-status{font-size:11px;font-weight:700;letter-spacing:1px;color:#707070;text-transform:uppercase}.assessment-section{margin-bottom:64px}.assessment-section h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:32px}.assessment-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#1a1a1a}.assessment-card{background:#0a0a0a;padding:32px}.assessment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.assessment-header h3{font-size:14px;font-weight:700;letter-spacing:2px;color:#707070}.btn-add{background:transparent;color:#b8b8b8;border:1px solid #333;border-radius:0;padding:6px 12px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn-add:hover{color:#fff;border-color:#707070}.assessment-list{list-style:none}.assessment-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #0a0a0a;font-size:13px;color:#b8b8b8;line-height:1.5}.assessment-item:last-child{border-bottom:none}.item-icon{font-size:14px;font-weight:700;min-width:20px;text-align:center}.limiter-item .item-icon{color:#ff3b3b}.strength-item .item-icon{color:#4caf50}.item-text{flex:1}.btn-delete{background:#000;border:1px solid #333;border-radius:0;color:#707070;font-size:9px;font-weight:700;letter-spacing:1px;cursor:pointer;padding:4px 8px;transition:all .2s ease;opacity:0}.assessment-item:hover .btn-delete{opacity:1}.btn-delete:hover{color:#ff3b3b;border-color:#ff3b3b}.add-form{display:flex;gap:8px;margin-top:16px}.add-form input{flex:1;background:#000;border:1px solid #333;border-radius:0;padding:12px 16px;color:#b8b8b8;font-size:14px}.add-form button{background:#fff;color:#000;border:none;border-radius:0;padding:12px 24px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.add-form button:hover{background:#e0e0e0}.race-history-page{max-width:1600px;margin:0 auto;padding:48px 48px 120px;position:relative;overflow-x:hidden;width:100%}.stats-section{margin-bottom:48px}.stats-section h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:24px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#1a1a1a}.stats-grid-compact{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px}.stat-card{background:#0a0a0a;padding:32px;text-align:center;min-height:160px;display:flex;flex-direction:column;justify-content:center;transition:background .2s ease}.stat-card:hover{background:#0f0f0f}.stat-label{font-size:10px;font-weight:700;letter-spacing:2px;color:#707070;margin-bottom:16px}.stat-value{font-size:42px;font-weight:700;color:#fff;line-height:1;margin-bottom:12px}.stat-detail{font-size:13px;color:#707070;line-height:1.4;margin-top:4px}.upcoming-races-section{margin-bottom:48px}.upcoming-races-section h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:24px}.upcoming-races-timeline{display:flex;flex-direction:column;gap:16px}.upcoming-race-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:20px 24px;cursor:pointer;transition:all .2s ease;position:relative;display:flex;flex-direction:row;gap:24px;align-items:flex-start}.upcoming-race-card:hover{border-color:#333;background:#0f0f0f}.upcoming-race-card.primary{border-left:3px solid #ff3b3b;background:#ff3b3b08}.upcoming-race-card.primary:hover{background:#ff3b3b0d}.upcoming-race-card-header{display:flex;flex-direction:column;gap:8px;min-width:100px}.upcoming-race-card-date{display:flex;flex-direction:column;gap:2px}.upcoming-race-date-month{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070}.upcoming-race-date-day{font-size:24px;font-weight:700;line-height:1;color:#fff}.upcoming-race-countdown-badge{padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:#4e9bff26;color:#4e9bff;border-radius:0}.upcoming-race-card.primary .upcoming-race-countdown-badge{color:#ff3b3b;background:#ff3b3b26}.upcoming-race-card-body{display:flex;flex-direction:column;gap:10px;flex:1}.upcoming-race-name{font-size:18px;font-weight:700;letter-spacing:.5px;color:#fff;line-height:1.3}.primary-star{color:#ff3b3b;font-size:18px}.upcoming-race-location{font-size:13px;color:#707070;letter-spacing:.5px;margin-bottom:4px}.upcoming-race-goal{font-size:13px;line-height:1.5;color:#b8b8b8}.upcoming-race-status{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#707070;text-transform:uppercase}.race-history-section{margin-bottom:48px}.race-history-cards{display:flex;flex-direction:column;gap:16px}.race-history-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:20px 24px;transition:all .3s ease;display:flex;flex-direction:row;gap:24px;align-items:flex-start}.race-history-card:hover{border-color:#333;background:#0f0f0f;transform:translateY(-2px)}.race-history-card-header{display:flex;flex-direction:column;gap:8px;min-width:100px}.race-history-card-date{display:flex;flex-direction:column;gap:2px}.race-history-date-month{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070}.race-history-date-year{font-size:24px;font-weight:700;line-height:1;color:#fff}.race-type-badge{padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-radius:0}.race-type-badge.running{background:#ff6b6b33;color:#ff6b6b}.race-type-badge.cycling{background:#4dabf733;color:#4dabf7}.race-type-badge.swimming{background:#51cf6633;color:#51cf66}.race-type-badge.triathlon{background:#ffd43b33;color:#ffd43b}.race-history-card-body{display:flex;flex-direction:column;gap:10px;flex:1}.race-history-event-name{font-size:18px;font-weight:700;color:#fff;line-height:1.3;letter-spacing:.5px;margin-bottom:4px}.race-history-stats{display:flex;gap:20px;flex-wrap:wrap}.race-history-stat{display:flex;flex-direction:column;gap:6px}.race-history-stat-label{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#707070;text-transform:uppercase}.race-history-stat-value{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.3px}.race-history-notes{font-size:12px;color:#b8b8b8;line-height:1.5;padding:8px 10px;background:#000;border-left:2px solid #333;font-style:italic}.race-history-card-actions{display:flex;gap:8px;opacity:0;transition:opacity .2s ease;align-items:center}.race-history-card:hover .race-history-card-actions{opacity:1}.race-history-action-btn{background:transparent;border:1px solid #333;color:#707070;padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;white-space:nowrap}.race-history-action-btn:hover{border-color:#707070;color:#b8b8b8}.race-history-action-btn.delete:hover{border-color:#ff3b3b;color:#ff3b3b}.race-history-table{width:100%;border-collapse:collapse;border:1px solid #1a1a1a}.race-history-table thead{background:#0a0a0a}.race-history-table th{text-align:left;padding:16px 24px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#707070;border-bottom:1px solid #1a1a1a}.race-history-table td{padding:20px 24px;border-bottom:1px solid #0a0a0a;font-size:14px;color:#b8b8b8;vertical-align:top}.race-history-table tbody tr{transition:background .2s ease}.race-history-table tbody tr:hover{background:#0a0a0a}.event-cell{display:flex;flex-direction:column;gap:6px}.event-name{font-size:14px;font-weight:600;color:#fff}.event-notes{font-size:12px;color:#707070;font-style:italic;line-height:1.5}.race-actions{display:flex;gap:6px;justify-content:flex-end}.empty-state{text-align:center;padding:64px 24px;color:#4a4a4a;font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#0a0a0a;border:1px solid #333;padding:48px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2{font-size:24px;font-weight:700;margin-bottom:32px;letter-spacing:1px;color:#fff}.form-group{margin-bottom:24px}.form-group label{display:block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#707070;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{width:100%;background:#000;border:1px solid #333;padding:14px 16px;color:#b8b8b8;font-size:15px;font-family:inherit;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#707070}.form-group textarea{resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#4a4a4a;opacity:1}.modal-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:32px}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px}.login-box{background:#0a0a0a;border:1px solid #1a1a1a;padding:64px 48px;max-width:400px;width:100%}.login-box h1{font-size:28px;font-weight:700;letter-spacing:2px;text-align:center;margin-bottom:48px;color:#fff}.loading{text-align:center;padding:120px 24px;font-size:14px;color:#4a4a4a;letter-spacing:2px;text-transform:uppercase}.container{max-width:1600px;margin:0 auto;padding:48px}.grid{display:grid;gap:24px}.grid-4{grid-template-columns:repeat(4,1fr)}.card{background:#0a0a0a;border:1px solid #1a1a1a;padding:32px}.card-title{font-size:18px;font-weight:700;letter-spacing:3px;color:#707070;margin-bottom:24px;text-transform:uppercase}.stat{text-align:center;transition:border-color .2s ease}.stat:hover{border-color:#333}.stat-value{font-size:48px;font-weight:700;color:#fff;line-height:1;margin-bottom:8px}.stat-label{font-size:11px;font-weight:700;letter-spacing:2px;color:#707070;margin-bottom:12px;text-transform:uppercase}.stat-subtitle{font-size:13px;color:#b8b8b8;margin-top:8px}.section-title{font-size:28px;font-weight:700;letter-spacing:2px;color:#fff;margin-bottom:32px;text-transform:uppercase}.progress-bar-container{margin-top:16px}.progress-bar-bg{background:#1a1a1a;height:6px;width:100%;position:relative;overflow:hidden}.progress-bar-fill{background:#4caf50;height:100%;transition:width .3s ease}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:#707070;margin-top:8px}.workout-type-badge{display:inline-block;padding:6px 12px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;border-radius:2px}.workout-type-badge.swim{background:#51cf6633;color:#51cf66}.workout-type-badge.bike{background:#4dabf733;color:#4dabf7}.workout-type-badge.run{background:#ff6b6b33;color:#ff6b6b}.workout-type-badge.strength{background:#ffd43b33;color:#ffd43b}.workout-type-badge.rest{background:#9993;color:#999}.login-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:64px 48px;max-width:400px;width:100%}.login-logo{font-size:28px;font-weight:700;letter-spacing:3px;text-align:center;margin-bottom:8px;color:#fff;text-transform:uppercase}.login-subtitle{font-size:13px;text-align:center;color:#707070;letter-spacing:1px;margin-bottom:48px}.login-form{display:flex;flex-direction:column;gap:24px}.login-error{background:#ff3b3b1a;border:1px solid #ff3b3b;color:#ff3b3b;padding:12px 16px;font-size:13px;text-align:center}.login-btn{width:100%}.login-footer{margin-top:32px;text-align:center}.login-hint{font-size:11px;color:#707070;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.login-hint-text{font-size:13px;color:#b8b8b8}.upload-area{border:2px dashed #333;padding:48px 32px;text-align:center;cursor:pointer;transition:border-color .2s ease}.upload-area:hover{border-color:#707070}.upload-area input[type=file]{display:none}.upload-label{font-size:14px;font-weight:700;color:#b8b8b8;margin-bottom:8px}.upload-sublabel{font-size:12px;color:#707070;margin-top:8px}.upload-status{margin-top:16px;padding:12px 16px;font-size:13px;text-align:center}.upload-status.success{background:#4caf501a;border:1px solid #4CAF50;color:#4caf50}.upload-status.error{background:#ff3b3b1a;border:1px solid #ff3b3b;color:#ff3b3b}.training-log-page{max-width:1600px;margin:0 auto;padding:48px 48px 120px;position:relative;overflow-x:hidden;width:100%}.log-stats-section{margin-bottom:64px}.log-stats-section h2{font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;margin-bottom:24px}.log-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.log-stat-card{background:#0a0a0a;border:1px solid #1a1a1a;padding:24px;min-height:140px;display:flex;flex-direction:column;gap:16px}.log-stat-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.log-stat-label.run{color:#ff6b6b}.log-stat-label.ride{color:#4dabf7}.log-stat-label.swim{color:#51cf66}.log-stat-label.gym{color:#ffd43b}.log-stat-label.elliptical,.log-stat-label.recovery{color:#999}.log-stat-values{display:flex;flex-direction:column;gap:16px}.log-stat-metric{display:flex;flex-direction:column;gap:6px}.log-stat-metric-value{font-size:32px;font-weight:700;color:#fff;line-height:1}.log-stat-metric-label{font-size:10px;font-weight:600;letter-spacing:1.5px;color:#707070;text-transform:uppercase}.log-stat-breakdown{display:flex;flex-direction:column;gap:12px}.log-stat-row{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #1a1a1a}.log-stat-row:last-child{border-bottom:none;padding-bottom:0}.log-stat-type{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.log-stat-type.run{color:#ff6b6b}.log-stat-type.ride{color:#4dabf7}.log-stat-type.swim{color:#51cf66}.log-stat-type.gym,.log-stat-type.strength{color:#ffd43b}.log-stat-value{font-size:13px;color:#b8b8b8}.log-stat-empty{font-size:13px;color:#4a4a4a;font-style:italic}.log-stat-highlight{display:flex;flex-direction:column;gap:8px}.log-stat-highlight-value{font-size:42px;font-weight:700;color:#fff;line-height:1}.log-stat-highlight-detail{font-size:13px;color:#707070}.log-workouts-section{margin-bottom:64px}.log-count{font-size:12px;color:#707070;font-weight:600;letter-spacing:1px;text-transform:uppercase}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-label{display:block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#707070;margin-bottom:8px}.form-input,.form-select,.form-textarea{width:100%;background:#000;border:1px solid #333;padding:14px 16px;color:#b8b8b8;font-size:15px;font-family:inherit;transition:border-color .2s ease}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#707070}.form-textarea{resize:vertical}.form-input::placeholder,.form-textarea::placeholder{color:#4a4a4a;opacity:1}.form-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:32px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container table{width:100%;min-width:800px}.schedule-add-btn{background:transparent;color:#b8b8b8;border:1px solid #333;padding:6px 12px;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.schedule-add-btn:hover{color:#fff;border-color:#b8b8b8;background:#0a0a0a}.schedule-edit-btn{background:transparent;color:#707070;border:1px solid #333;padding:6px 10px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.schedule-edit-btn:hover{color:#b8b8b8;border-color:#707070}.schedule-delete-btn{background:transparent;color:#707070;border:1px solid #333;padding:6px 10px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.schedule-delete-btn:hover{color:#ff3b3b;border-color:#ff3b3b}.schedule-workout-item:hover{border-left:2px solid #333;background:#ffffff05}.schedule-select,.schedule-input{background:#000;border:1px solid #333;padding:8px 12px;color:#b8b8b8;font-size:13px;font-family:inherit}.schedule-select:focus,.schedule-input:focus{outline:none;border-color:#707070}.calendar{margin-bottom:48px}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#1a1a1a;margin-bottom:1px}.calendar-day-label{background:#0a0a0a;padding:12px;text-align:center;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#707070}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#1a1a1a}.calendar-cell{background:#0a0a0a;padding:12px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;transition:all .2s ease}.calendar-cell.clickable{cursor:pointer}.calendar-cell.clickable:hover{background:#0f0f0f;border:1px solid #333}.calendar-cell.other-month{opacity:.3}.calendar-cell.today{background:#ffffff0d;border:1px solid #333}.calendar-date{font-size:14px;font-weight:600;color:#fff}.calendar-workouts{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.workout-dot{width:6px;height:6px;border-radius:50%}.workout-dot.run{background:#ff6b6b}.workout-dot.ride,.workout-dot.bike{background:#4dabf7}.workout-dot.swim{background:#51cf66}.workout-dot.strength,.workout-dot.gym{background:#ffd43b}.btn{background:#fff;color:#000;border:none;padding:16px 32px;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.btn:hover{background:#e0e0e0;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-red{background:#ff3b3b;color:#fff}.btn-red:hover{background:#ff5252}@media (max-width: 1200px){.hero-metrics{flex-direction:column;max-width:100%}.week-grid{grid-template-columns:repeat(4,1fr)}.info-grid{grid-template-columns:repeat(2,1fr)}.assessment-grid{grid-template-columns:1fr}.grid-4,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.week-grid{grid-template-columns:repeat(3,1fr)}.workout-table{font-size:13px}.workout-table th,.workout-table td{padding:12px 16px}.grid-4,.stats-grid{grid-template-columns:1fr}.workout-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}}@media (max-width: 768px){body{font-size:14px}.nav-container{padding:0 16px;flex-wrap:wrap}.nav-title{font-size:14px;letter-spacing:2px;padding:16px 0}.nav-links{width:100%;justify-content:center;border-top:1px solid #1a1a1a}.nav-links a,.nav-logout-btn{padding:16px 20px;font-size:10px}.nav-user{display:none}.training-plan,.profile-page,.race-history-page,.container{padding:24px 16px 80px}.greeting h1{font-size:36px;letter-spacing:2px}.hero-metrics{gap:16px;margin-bottom:48px}.metric-card{padding:32px 24px}.metric-label{font-size:10px}.metric-value{font-size:56px}.metric-subtitle{font-size:12px}.btn-primary{padding:14px 28px;font-size:11px;width:100%}.weekly-plan h2{font-size:16px;margin-bottom:24px}.week-list{gap:8px}.day-list-card{flex-direction:row;padding:14px 16px;gap:16px;align-items:flex-start}.day-list-left{min-width:70px;padding-right:12px}.day-list-date{font-size:18px}.day-list-right{flex-direction:column;align-items:flex-start;gap:10px}.day-list-planned,.day-list-logged{flex-direction:column;align-items:flex-start;gap:6px}.planned-workout-inline,.logged-workout-inline{flex-direction:column;align-items:flex-start;gap:4px}.logged-stats-inline{flex-direction:row;flex-wrap:wrap}.day-list-actions{width:100%;flex-wrap:wrap}.action-btn-inline{font-size:9px;padding:6px 10px}.week-grid{grid-template-columns:1fr;gap:1px;margin-bottom:48px}.day-card{padding:20px;min-height:auto;display:flex;flex-direction:column;gap:16px}.day-header{margin-bottom:0;padding-bottom:12px}.day-date{font-size:18px}.workout-plan{text-align:left;margin-bottom:0}.workout-type{font-size:15px}.workout-detail{font-size:13px}.today-workout{padding:24px 20px;margin-bottom:48px}.today-workout h3{font-size:12px}.planned-workout{font-size:14px}.btn-log-workout{padding:18px 40px;font-size:12px;width:100%}.training-log{margin-top:48px}.section-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}.section-header h2{font-size:16px}.btn-secondary{width:100%;padding:14px 24px;font-size:11px}.workout-cards{grid-template-columns:1fr;gap:16px}.workout-card{padding:20px}.workout-card-header{margin-bottom:20px;padding-bottom:16px}.workout-date-num{font-size:42px}.workout-card-stats{grid-template-columns:repeat(2,1fr);gap:16px}.workout-stat-value{font-size:20px}.workout-card-actions{opacity:1}.athlete-info h2,.race-schedule h2,.assessment-section h2{font-size:16px}.info-grid{grid-template-columns:1fr 1fr;gap:1px}.info-card{padding:24px 16px}.info-label{font-size:9px}.info-value{font-size:32px}.race-card{grid-template-columns:1fr;padding:24px 20px;gap:16px}.race-icon{font-size:24px}.race-name{font-size:18px}.race-date,.race-section{font-size:12px}.assessment-card{padding:24px 20px}.assessment-header h3{font-size:12px}.assessment-item{font-size:13px;padding:12px 0}.modal-content{padding:32px 24px;width:95%;max-height:85vh}.modal-content h2{font-size:20px;margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{font-size:10px}.form-group input,.form-group select,.form-group textarea{padding:12px 14px;font-size:14px}.modal-actions{flex-direction:column-reverse;gap:12px}.modal-actions button{width:100%}.login-box,.login-card{padding:48px 32px}.grid-4{grid-template-columns:1fr}.card{padding:24px 20px}.card-title{font-size:16px}.stat-value{font-size:42px}.section-title{font-size:24px;margin-bottom:24px}.stats-grid{grid-template-columns:1fr}.stats-grid-compact{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:48px}.stat-card{padding:24px 20px}.training-log-page{padding:24px 16px 80px}.log-stats-grid{grid-template-columns:1fr;gap:16px}.log-stat-card{padding:20px;min-height:auto}.log-stat-highlight-value{font-size:36px}.completed-weeks{margin-top:48px}.week-card-header{flex-direction:column;align-items:flex-start;padding:16px;gap:16px}.week-card-right{width:100%;flex-direction:column;align-items:flex-start;gap:12px}.week-categories{width:100%;gap:8px}.week-expand-btn{align-self:flex-end;position:absolute;top:16px;right:16px}.week-card-body{padding:12px 16px}.week-workout-item{flex-direction:column;align-items:flex-start;gap:8px}.week-workout-date,.week-workout-type{min-width:auto}.race-history-cards{grid-template-columns:1fr;gap:16px}.race-history-card{padding:20px}.race-history-card-actions{opacity:1}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse;gap:12px}.form-actions button{width:100%}.upload-area{padding:32px 24px}.race-history-table,.workout-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.race-history-table thead,.race-history-table tbody,.race-history-table tr,.workout-table thead,.workout-table tbody,.workout-table tr{display:table;width:100%;table-layout:fixed}.race-history-table{min-width:700px}.schedule-add-btn,.schedule-edit-btn,.schedule-delete-btn{font-size:9px;padding:8px 10px;min-height:36px}.schedule-select,.schedule-input{font-size:12px;padding:10px 12px}.calendar-cell{min-height:60px;padding:8px}.calendar-date{font-size:12px}.workout-dot{width:5px;height:5px}.workout-card,.race-history-card,.upcoming-race-card{flex-direction:column!important;gap:16px!important}.workout-card-header{min-width:auto!important;width:auto!important}.workout-card-date-section{flex-direction:row!important;gap:12px!important;align-items:center}.race-history-card-header,.upcoming-race-card-header{flex-direction:row!important;justify-content:space-between;align-items:center;min-width:auto!important;width:100%}.workout-card-body,.race-history-card-body,.upcoming-race-card-body{gap:12px!important}.workout-card-actions,.race-history-card-actions{width:100%;justify-content:flex-start}}@media (max-width: 390px){.nav-title{font-size:12px}.nav-links a,.nav-logout-btn{padding:14px 12px;font-size:9px;letter-spacing:1px}.metric-value{font-size:48px}.info-grid{grid-template-columns:1fr}.info-value{font-size:36px}.day-card{grid-template-columns:1fr;text-align:center}.day-header{text-align:center;margin-bottom:8px}.workout-plan{text-align:center}.workout-table th,.workout-table td{padding:12px 8px;font-size:11px}}@supports (-webkit-touch-callout: none){body{-webkit-tap-highlight-color:rgba(0,0,0,0)}input,select,textarea,button{-webkit-appearance:none;border-radius:0}.training-plan,.profile-page{padding-bottom:env(safe-area-inset-bottom,80px)}.modal-content,.workout-table{-webkit-overflow-scrolling:touch}}@media (hover: none) and (pointer: coarse){button,a,.btn-primary,.btn-secondary,.btn-edit,.btn-add,.btn-delete{min-height:44px;min-width:44px}.nav-links a,.workout-table tr{min-height:48px}.race-card,.assessment-item{min-height:60px}}@media (max-width: 900px) and (orientation: landscape){.metric-card{padding:24px}.metric-value{font-size:48px}.week-grid{grid-template-columns:repeat(7,1fr)}.day-card{grid-template-columns:1fr;padding:16px;min-height:120px}.day-header,.workout-plan{text-align:center}}
