*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #1a365d;--navy-light: #2a4a7f;--blue: #3182ce;--blue-light: #63b3ed;--gold: #d69e2e;--gold-light: #ecc94b;--red: #e53e3e;--green: #38a169;--gray-50: #f7fafc;--gray-100: #edf2f7;--gray-200: #e2e8f0;--gray-300: #cbd5e0;--gray-500: #718096;--gray-700: #4a5568;--gray-900: #1a202c;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08);--shadow-md: 0 4px 6px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--gray-900);line-height:1.6;min-height:100vh}.navbar{background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 2rem;height:56px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-md)}.nav-brand{font-size:1.25rem;font-weight:700;margin-right:2rem;white-space:nowrap}.nav-links{display:flex;gap:.25rem}.nav-links a{color:#ffffffbf;text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.nav-links a:hover{background:var(--navy-light);color:#fff}.nav-links a.active{background:var(--blue);color:#fff}.nav-user{margin-left:auto;display:flex;align-items:center;gap:.75rem}.nav-username{font-size:.85rem;color:#fffc}.user-menu{position:relative}.user-menu-trigger{background:none;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);color:#ffffffd9;cursor:pointer;font-size:.85rem;font-weight:500;padding:.3rem .7rem;transition:background .15s,border-color .15s}.user-menu-trigger:hover{background:#ffffff1a;border-color:#fff6}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:var(--radius);box-shadow:0 8px 24px #00000026;min-width:160px;z-index:200;overflow:hidden}.user-menu-dropdown button{display:block;width:100%;text-align:left;padding:.6rem 1rem;border:none;background:none;font-size:.85rem;color:var(--gray-700);cursor:pointer;transition:background .1s}.user-menu-dropdown button:hover{background:var(--gray-100)}.menu-divider{height:1px;background:var(--gray-200);margin:.25rem 0}[data-theme=dark] .user-menu-dropdown{background:#2d3748;box-shadow:0 8px 24px #0006}[data-theme=dark] .user-menu-dropdown button{color:#e2e8f0}[data-theme=dark] .user-menu-dropdown button:hover,[data-theme=dark] .menu-divider{background:#4a5568}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%)}.login-card{background:#fff;border-radius:12px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d;text-align:center}.login-card h1{color:var(--navy);font-size:2rem;margin-bottom:.25rem}.login-subtitle{color:var(--gray-500);font-size:.9rem;margin-bottom:2rem}.login-card .form-group{text-align:left;margin-bottom:1rem}.login-card label{display:block;font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.3rem}.login-card input{width:100%;padding:.6rem .75rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.95rem;transition:border-color .15s}.login-card input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #3182ce26}.login-btn{width:100%;padding:.7rem;font-size:1rem;margin-top:.5rem}.login-error{background:#fff5f5;color:var(--red);padding:.5rem .75rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:.5rem}.login-toggle{margin-top:1.5rem;font-size:.85rem;color:var(--gray-500)}.link-btn{background:none;border:none;color:var(--blue);cursor:pointer;font-size:.85rem;font-weight:600;padding:0}.link-btn:hover{text-decoration:underline}.main-content{max-width:1200px;margin:0 auto;padding:2rem}h1{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;color:var(--navy)}.dashboard-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem}.dashboard-header h1{margin-bottom:0}.dashboard-tagline{color:var(--gray-500);font-size:.95rem;font-style:italic;margin:0}.year-filter{padding:.4rem .75rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.95rem;font-weight:600;background:#fff;cursor:pointer;color:var(--navy)}.year-filter:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #3182ce33}.distance-btn-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.distance-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.distance-btn{padding:.4rem .85rem;border:1px solid var(--gray-300);border-radius:20px;background:#fff;font-size:.85rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .15s}.distance-btn:hover{border-color:var(--blue);color:var(--blue);background:#ebf8ff}.distance-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.set-default-btn{padding:.35rem .7rem;border:1px dashed var(--gold);border-radius:20px;background:#fdf8e6;font-size:.8rem;font-weight:600;color:#8b6914;cursor:pointer;transition:all .15s}.set-default-btn:hover{background:var(--gold);color:#fff;border-style:solid}h2{font-size:1.35rem;font-weight:600;margin-bottom:1rem;color:var(--navy)}h3{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;color:var(--gray-700)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);display:flex;flex-direction:column;border-left:4px solid var(--blue)}.stat-card.pb{border-left-color:var(--gold)}.stat-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);font-weight:600}.stat-value{font-size:1.75rem;font-weight:700;color:var(--navy);margin:.25rem 0}.stat-date{font-size:.8rem;color:var(--gray-500)}.charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.chart-card{background:#fff;border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chart-header h3{margin:0}.toggle-group{display:flex;border:1px solid #cbd5e0;border-radius:var(--radius);overflow:hidden}.toggle-btn{padding:.25rem .75rem;font-size:.8rem;border:none;background:#fff;color:#4a5568;cursor:pointer}.toggle-btn:not(:last-child){border-right:1px solid #cbd5e0}.toggle-btn.active{background:#3182ce;color:#fff}.toggle-btn:hover:not(.active){background:#edf2f7}.yoy-comparison{margin:.75rem 0 0;padding:.75rem 1rem;border-radius:var(--radius);font-size:.9rem;line-height:1.5}.yoy-comparison.ahead{background:#f0fff4;border-left:4px solid #38a169;color:#276749}.yoy-comparison.behind{background:#fff5f5;border-left:4px solid #e53e3e;color:#9b2c2c}.yoy-comparison.even{background:#ebf8ff;border-left:4px solid #3182ce;color:#2a4365}.distance-filter{padding:.35rem .6rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.85rem;background:#fff;cursor:pointer}.distance-filter:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #3182ce33}.btn-primary{background:var(--blue);color:#fff;border:none;padding:.6rem 1.25rem;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--navy-light)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--gray-200);color:var(--gray-700);border:none;padding:.6rem 1.25rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--gray-300)}.btn-danger{background:var(--red);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:600;transition:opacity .15s}.btn-danger:hover{opacity:.85}.btn-sm{padding:.25rem .6rem;font-size:.8rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}thead{background:var(--navy);color:#fff}th{padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}td{padding:.65rem 1rem;border-bottom:1px solid var(--gray-100);font-size:.9rem;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--gray-50)}.source-badge{display:inline-block;padding:.15rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.source-badge.manual{background:#ebf8ff;color:var(--blue)}.source-badge.csv{background:#fefcbf;color:#975a16}.source-badge.concept2{background:#f0fff4;color:var(--green)}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem}.pagination button{background:var(--gray-200);border:none;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-weight:500}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:.9rem;color:var(--gray-500)}.list-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.list-header h1{margin-bottom:0}.list-header-actions{display:flex;gap:.5rem}.filters{display:flex;gap:1rem;align-items:end;margin-bottom:1.5rem;flex-wrap:wrap}.filters label{display:flex;flex-direction:column;font-size:.8rem;font-weight:600;color:var(--gray-500);text-transform:uppercase}.filters input[type=date]{margin-top:.25rem;padding:.4rem .6rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem}.workout-form{max-width:700px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.workout-form label,.workout-form .full-width{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;color:var(--gray-700)}.workout-form input,.workout-form select,.workout-form textarea{margin-top:.25rem;padding:.5rem .75rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.95rem;font-family:inherit;transition:border-color .15s}.workout-form input:focus,.workout-form select:focus,.workout-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #3182ce26}.workout-form .full-width{margin-bottom:1rem}.split-display{display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--gray-50);border-radius:var(--radius);border:2px dashed var(--gray-300);padding:.75rem}.split-display .stat-value{font-size:1.5rem}.form-actions{display:flex;gap:.75rem;margin-top:1rem}.import-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.import-card{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.import-card h2{margin-bottom:1rem}.drop-zone{border:2px dashed var(--gray-300);border-radius:var(--radius);padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:1rem;color:var(--gray-500)}.drop-zone:hover,.drop-zone.dragging{border-color:var(--blue);background:#ebf8ff}.drop-zone.has-file{border-color:var(--green);background:#f0fff4;color:var(--gray-700)}.c2-status{background:var(--gray-50);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.c2-status p{margin-bottom:.25rem}.import-result{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);border-left:4px solid var(--green)}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-top:.75rem}.result-item{text-align:center}.result-item span{display:block;font-size:.8rem;color:var(--gray-500);text-transform:uppercase}.result-item strong{font-size:1.5rem;color:var(--navy)}.loading{text-align:center;padding:3rem;color:var(--gray-500);font-size:1.1rem}.empty{text-align:center;padding:2rem;color:var(--gray-500)}.error-msg{background:#fff5f5;border:1px solid #feb2b2;color:var(--red);padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.pb-section{margin-top:1rem}.targets-section{margin-top:2rem}.targets-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.targets-header h2{margin-bottom:0}.target-card{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem}.target-card h3{margin-bottom:.5rem}.motivation-banner{background:linear-gradient(135deg,#ebf8ff,#f0fff4);border-radius:var(--radius);padding:.6rem 1rem;font-size:.9rem;font-weight:500;color:var(--gray-700);margin-bottom:1rem;line-height:1.4}.progress-track{margin-bottom:1rem}.progress-bg{position:relative;height:28px;background:var(--gray-100);border-radius:14px;overflow:visible;margin-bottom:2rem}.progress-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-light));border-radius:14px;transition:width .6s ease;min-width:4px}.tier-marker{position:absolute;top:-4px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.tier-marker:before{content:"";width:3px;height:36px;border-radius:2px}.tier-marker.bronze:before{background:#cd7f32}.tier-marker.silver:before{background:#a8a8a8}.tier-marker.gold:before{background:#d4a017}.tier-label{font-size:.7rem;font-weight:700;text-transform:uppercase;margin-top:2px}.tier-val{font-size:.7rem;color:var(--gray-500)}.progress-current{font-size:1.1rem;font-weight:700;color:var(--navy)}.tier-badges{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.tier-badge{padding:.35rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;border:2px solid}.tier-badge.bronze{border-color:#cd7f32;color:#8b5a2b;background:#fdf2e6}.tier-badge.silver{border-color:#a8a8a8;color:#666;background:#f5f5f5}.tier-badge.gold{border-color:#d4a017;color:#8b6914;background:#fdf8e6}.tier-badge.achieved{font-weight:800}.tier-badge.bronze.achieved{background:#cd7f32;color:#fff}.tier-badge.silver.achieved{background:#a8a8a8;color:#fff}.tier-badge.gold.achieved{background:#d4a017;color:#fff}.tier-badge{display:flex;flex-direction:column;gap:.15rem}.tier-date{font-size:.7rem;font-weight:500;opacity:.85}.split-targets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.split-target-tier{background:var(--gray-50);border-radius:var(--radius);padding:1rem;border-left:4px solid}.split-target-tier.bronze{border-left-color:#cd7f32}.split-target-tier.silver{border-left-color:#a8a8a8}.split-target-tier.gold{border-left-color:#d4a017}.split-target-tier.achieved{background:#f0fff4}.split-tier-header{display:flex;justify-content:space-between;font-weight:700;margin-bottom:.25rem}.split-tier-ratio{font-size:1.1rem;color:var(--navy)}.split-tier-desc{font-size:.8rem;color:var(--gray-500);margin-bottom:.5rem}.mini-progress-bg{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden;margin-bottom:.4rem}.mini-progress-fill{height:100%;border-radius:4px;transition:width .6s ease}.mini-progress-fill.bronze{background:#cd7f32}.mini-progress-fill.silver{background:#a8a8a8}.mini-progress-fill.gold{background:#d4a017}.achieved-badge{font-size:.8rem;font-weight:700;color:var(--green)}.remaining{font-size:.8rem;color:var(--gray-500)}.targets-editor{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);margin-top:2rem}.targets-editor h3{font-size:1.35rem;color:var(--navy);margin-bottom:1rem}.target-group{margin-bottom:1.5rem}.target-group h4{font-size:1rem;margin-bottom:.75rem;color:var(--gray-700)}.target-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.tier{display:flex;flex-direction:column;gap:.35rem}.tier-medal{font-weight:700;font-size:.85rem}.tier input{padding:.45rem .6rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem}.tier input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #3182ce33}.tier-unit{font-size:.8rem;color:var(--gray-500)}.distance-select-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.75rem}.distance-select-label select{padding:.35rem .6rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.85rem}.split-inputs{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--gray-500)}.split-inputs input{width:70px}.split-time-input{width:80px!important}.split-tiers{grid-template-columns:1fr;gap:.75rem}.action-btns{display:flex;gap:.3rem;justify-content:center}.btn-edit{background:var(--blue);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:600;transition:opacity .15s}.btn-edit:hover{opacity:.85}.btn-save{background:var(--green);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:700;transition:opacity .15s}.btn-save:hover{opacity:.85}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:var(--gray-500);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-weight:700;transition:opacity .15s}.btn-cancel:hover{opacity:.85}tr.editing-row{background:#ebf8ff}.edit-input{padding:.25rem .4rem;border:1px solid var(--gray-300);border-radius:4px;font-size:.85rem;font-family:inherit;width:100%;min-width:0}.edit-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #3182ce26}.edit-input-num,.edit-input-time{width:80px}.edit-input-sm{width:55px}.weekly-summary{margin-bottom:1.5rem}.weekly-summary h2{margin-bottom:.75rem}.weekly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.weekly-card{background:#fff;border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow);display:flex;flex-direction:column;border-left:4px solid var(--blue)}[data-theme=dark] .weekly-card{background:#1a202c}.weekly-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);font-weight:600}.weekly-value{font-size:1.5rem;font-weight:700;color:var(--navy);margin:.15rem 0}.weekly-compare{font-size:.8rem;font-weight:500}.weekly-compare.up{color:#38a169}.weekly-compare.down{color:#e53e3e}.weekly-compare.even{color:var(--gray-500)}.weekly-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.weekly-header h2{margin-bottom:0}.weekly-plan-form{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1rem;padding:1rem;background:var(--gray-50);border-radius:var(--radius);flex-wrap:wrap}[data-theme=dark] .weekly-plan-form{background:#2d3748}.weekly-plan-form label{display:flex;flex-direction:column;font-size:.8rem;font-weight:600;color:var(--gray-500)}.weekly-plan-form input{margin-top:.25rem;padding:.4rem .6rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.9rem;width:120px}.weekly-plan-form input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px #3182ce33}[data-theme=dark] .weekly-plan-form input{background:#1a202c;color:#e2e8f0;border-color:#4a5568}.weekly-plan-actions{display:flex;gap:.5rem}.weekly-progress{margin:.25rem 0}.weekly-progress-bg{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;margin-bottom:.2rem}.weekly-progress-fill{height:100%;background:var(--blue);border-radius:3px;transition:width .4s ease}.weekly-progress-fill.complete{background:#38a169}.weekly-progress-text{font-size:.75rem;color:var(--gray-500);font-weight:500}.streak-bar{display:flex;gap:2rem;margin-bottom:1.5rem;padding:1rem 1.5rem;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}[data-theme=dark] .streak-bar{background:#1a202c}.streak-item{display:flex;align-items:center;gap:.5rem}.streak-icon{font-size:1.5rem}.streak-count{font-size:1.75rem;font-weight:800;color:var(--navy)}.streak-label{font-size:.85rem;color:var(--gray-500);font-weight:500}.calendar-page h1{margin-bottom:0}.calendar-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.calendar-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.calendar-heatmap-wrap{background:#fff;border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);overflow-x:auto}.calendar-heatmap{display:flex;gap:.35rem}.calendar-day-labels{display:flex;flex-direction:column;gap:3px;padding-top:22px}.calendar-day-label{width:28px;height:14px;font-size:.7rem;color:var(--gray-500);line-height:14px}.calendar-grid{display:flex;flex-direction:column;gap:.25rem}.calendar-month-labels{display:grid;grid-auto-columns:17px;gap:3px;height:18px}.calendar-month-label{font-size:.7rem;color:var(--gray-500);white-space:nowrap}.calendar-weeks{display:flex;gap:3px}.calendar-week{display:flex;flex-direction:column;gap:3px}.calendar-cell{width:14px;height:14px;border-radius:3px;background:var(--gray-100);cursor:pointer;transition:outline .1s}.calendar-cell:hover{outline:2px solid var(--gray-500);outline-offset:-1px}.calendar-cell.outside{background:transparent;cursor:default}.calendar-cell.outside:hover{outline:none}.calendar-cell.today{outline:2px solid var(--navy);outline-offset:-1px}.calendar-cell.intensity-1{background:#bee3f8}.calendar-cell.intensity-2{background:#63b3ed}.calendar-cell.intensity-3{background:#3182ce}.calendar-cell.intensity-4{background:#1a365d}[data-theme=dark] .calendar-cell{background:#2d3748}[data-theme=dark] .calendar-cell.outside{background:transparent}[data-theme=dark] .calendar-cell.intensity-1{background:#2b6cb0}[data-theme=dark] .calendar-cell.intensity-2{background:#4299e1}[data-theme=dark] .calendar-cell.intensity-3{background:#63b3ed}[data-theme=dark] .calendar-cell.intensity-4{background:#90cdf4}[data-theme=dark] .calendar-cell.today{outline-color:#63b3ed}[data-theme=dark] .calendar-heatmap-wrap{background:#1a202c}.calendar-tooltip{display:flex;flex-direction:column;gap:.2rem;background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius);padding:.6rem .9rem;margin-top:.75rem;font-size:.85rem;color:var(--gray-700);max-width:200px;box-shadow:var(--shadow)}.calendar-tooltip strong{color:var(--navy)}.calendar-tooltip .rest-day{color:var(--gray-500);font-style:italic}[data-theme=dark] .calendar-tooltip{background:#2d3748;border-color:#4a5568}.calendar-legend{display:flex;align-items:center;gap:4px;margin-top:1rem;justify-content:flex-end}.calendar-legend .calendar-cell{cursor:default}.calendar-legend .calendar-cell:hover{outline:none}.legend-label{font-size:.7rem;color:var(--gray-500);margin:0 .25rem}.rest-insight{display:flex;align-items:flex-start;gap:.75rem;margin-top:1.25rem;padding:.85rem 1rem;border-radius:var(--radius);font-size:.9rem;line-height:1.4}.rest-insight-icon{font-size:1.3rem;flex-shrink:0;margin-top:.1rem}.rest-insight-text{margin:0}.rest-insight.rest-warning{background:#fff5f5;border-left:4px solid #e53e3e;color:#9b2c2c}.rest-insight.rest-caution{background:#fffaf0;border-left:4px solid #d69e2e;color:#975a16}.rest-insight.rest-encourage{background:#ebf8ff;border-left:4px solid #3182ce;color:#2a4365}.rest-insight.rest-good{background:#f0fff4;border-left:4px solid #38a169;color:#276749}[data-theme=dark] .rest-insight.rest-warning{background:#2d202a;color:#fc8181}[data-theme=dark] .rest-insight.rest-caution{background:#2d2a1a;color:#ecc94b}[data-theme=dark] .rest-insight.rest-encourage{background:#1a2838;color:#90cdf4}[data-theme=dark] .rest-insight.rest-good{background:#1a2c28;color:#68d391}.tip-of-the-day{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,#ebf8ff,#f0fff4);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow);border-left:4px solid var(--blue)}.tip-icon{font-size:1.75rem;flex-shrink:0}.tip-content{display:flex;flex-direction:column;gap:.15rem}.tip-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--blue)}.tip-text{margin:0;font-size:.95rem;color:var(--gray-700);line-height:1.4}[data-theme=dark] .tip-of-the-day{background:linear-gradient(135deg,#1a2838,#1a2c28);border-left-color:#63b3ed}.df-badge{white-space:nowrap}.df-warn{color:var(--accent, #e53e3e)}.df-alert{font-size:.75rem;margin-left:2px}.df-hint{display:block;font-size:.8rem;margin-top:4px;line-height:1.3}.df-hint-ok{color:#38a169}.df-hint-warn{color:#e53e3e}.df-range-selector{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.df-range-selector .tag-btn{font-size:.85rem;padding:6px 12px}.df-settings-desc{font-size:.9rem;color:var(--gray-500);margin-top:4px}.df-settings-current{font-size:.85rem;color:var(--gray-500);margin-top:8px}.settings-page{max-width:700px}.settings-page .import-card{margin-bottom:1.5rem}.settings-page h3{margin-bottom:.25rem}[data-theme=dark]{--navy: #e2e8f0;--navy-light: #cbd5e0;--blue: #63b3ed;--blue-light: #90cdf4;--gray-50: #1a202c;--gray-100: #2d3748;--gray-200: #4a5568;--gray-300: #718096;--gray-500: #a0aec0;--gray-700: #e2e8f0;--gray-900: #f7fafc;--shadow: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 6px rgba(0,0,0,.25), 0 2px 4px rgba(0,0,0,.15)}[data-theme=dark] body{background:#0f1117;color:#e2e8f0}[data-theme=dark] .navbar{background:#171923}[data-theme=dark] .login-card{background:#1a202c;box-shadow:0 20px 60px #00000080}[data-theme=dark] .login-card h1{color:#63b3ed}[data-theme=dark] .login-error{background:#2d202a;color:#fc8181}[data-theme=dark] .stat-card,[data-theme=dark] .chart-card,[data-theme=dark] .import-card,[data-theme=dark] .target-card,[data-theme=dark] .targets-editor,[data-theme=dark] .import-result,[data-theme=dark] table{background:#1a202c}[data-theme=dark] thead{background:#2d3748}[data-theme=dark] td{border-bottom-color:#2d3748}[data-theme=dark] tr.clickable:hover{background:#2d3748}[data-theme=dark] tr.editing-row{background:#2a3040}[data-theme=dark] .distance-btn.active{background:#63b3ed;color:#1a202c;border-color:#63b3ed}[data-theme=dark] .distance-btn{background:#2d3748;color:#e2e8f0;border-color:#4a5568}[data-theme=dark] .distance-btn:hover{background:#2a4365;border-color:#63b3ed;color:#63b3ed}[data-theme=dark] .year-filter,[data-theme=dark] .distance-filter{background:#2d3748;color:#e2e8f0;border-color:#4a5568}[data-theme=dark] .set-default-btn{background:#2d2a1a;color:#ecc94b;border-color:#d69e2e}[data-theme=dark] .set-default-btn:hover{background:#d69e2e;color:#1a202c}[data-theme=dark] .toggle-btn{background:#2d3748;color:#a0aec0;border-color:#4a5568}[data-theme=dark] .toggle-btn:not(:last-child){border-right-color:#4a5568}[data-theme=dark] .toggle-btn.active{background:#63b3ed;color:#1a202c}[data-theme=dark] .toggle-btn:hover:not(.active){background:#4a5568}[data-theme=dark] .toggle-group{border-color:#4a5568}[data-theme=dark] .motivation-banner{background:linear-gradient(135deg,#1a2838,#1a2c28)}[data-theme=dark] .split-target-tier{background:#2d3748}[data-theme=dark] .split-target-tier.achieved{background:#1a2c28}[data-theme=dark] .drop-zone{border-color:#4a5568;color:#a0aec0}[data-theme=dark] .drop-zone:hover,[data-theme=dark] .drop-zone.dragging{border-color:#63b3ed;background:#1a2838}[data-theme=dark] .drop-zone.has-file{border-color:#38a169;background:#1a2c28}[data-theme=dark] .c2-status{background:#2d3748}[data-theme=dark] .source-badge.manual{background:#1a2838;color:#63b3ed}[data-theme=dark] .source-badge.csv{background:#2d2a1a;color:#ecc94b}[data-theme=dark] .source-badge.concept2{background:#1a2c28;color:#68d391}[data-theme=dark] .yoy-comparison.ahead{background:#1a2c28;border-left-color:#38a169;color:#68d391}[data-theme=dark] .yoy-comparison.behind{background:#2d202a;border-left-color:#fc8181;color:#fc8181}[data-theme=dark] .yoy-comparison.even{background:#1a2838;border-left-color:#63b3ed;color:#90cdf4}[data-theme=dark] .pagination button{background:#2d3748;color:#e2e8f0}[data-theme=dark] .btn-secondary{background:#4a5568;color:#e2e8f0}[data-theme=dark] .btn-secondary:hover{background:#718096}[data-theme=dark] .workout-form input,[data-theme=dark] .workout-form select,[data-theme=dark] .workout-form textarea,[data-theme=dark] .login-card input,[data-theme=dark] .tier input,[data-theme=dark] .edit-input,[data-theme=dark] .filters input[type=date]{background:#2d3748;color:#e2e8f0;border-color:#4a5568}[data-theme=dark] .split-display{background:#2d3748;border-color:#4a5568}[data-theme=dark] .error-msg{background:#2d202a;border-color:#fc8181;color:#fc8181}.theme-toggle{background:none;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);color:#ffffffd9;cursor:pointer;font-size:1.1rem;padding:.2rem .5rem;transition:background .15s,border-color .15s;line-height:1;margin-left:.75rem}.theme-toggle:hover{background:#ffffff1a;border-color:#fff6}.tag-selector{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.25rem}.tag-btn{padding:.3rem .7rem;border:1px solid var(--gray-300);border-radius:20px;background:#fff;font-size:.8rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .15s}.tag-btn:hover{border-color:var(--blue);color:var(--blue)}.tag-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}[data-theme=dark] .tag-btn{background:#2d3748;color:#e2e8f0;border-color:#4a5568}[data-theme=dark] .tag-btn:hover{border-color:#63b3ed;color:#63b3ed}[data-theme=dark] .tag-btn.active{background:#63b3ed;color:#1a202c;border-color:#63b3ed}[data-theme=dark] .df-hint-ok{color:#68d391}[data-theme=dark] .df-hint-warn,[data-theme=dark] .df-warn{color:#fc8181}.pace-calculator{max-width:900px}.pace-subtitle{color:var(--gray-500);font-size:.9rem;margin-bottom:1.5rem}.pace-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.pace-field label{display:block;font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.3rem}.pace-field input{width:100%;padding:.6rem .75rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1.1rem;font-weight:600;transition:border-color .15s}.pace-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #3182ce26}[data-theme=dark] .pace-field input{background:#2d3748;color:#e2e8f0;border-color:#4a5568}.pace-reference{margin-top:2.5rem}.pace-reference h2{margin-bottom:.25rem}.share-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300}.share-modal{display:flex;flex-direction:column;align-items:center;gap:1rem}.share-card{width:420px;background:linear-gradient(135deg,#1a365d,#2a4a7f,#3182ce);border-radius:16px;padding:2rem;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.share-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.share-brand{font-size:1.3rem;font-weight:800}.share-date{font-size:.85rem;opacity:.8}.share-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}.share-stat{text-align:center}.share-stat-value{display:block;font-size:1.5rem;font-weight:800}.share-stat-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-top:.2rem}.share-card-extras{display:flex;gap:1rem;justify-content:center;font-size:.85rem;opacity:.85;margin-bottom:1.25rem;flex-wrap:wrap}.share-card-footer{text-align:center;font-size:.8rem;font-style:italic;opacity:.6;border-top:1px solid rgba(255,255,255,.2);padding-top:.75rem}.share-actions{display:flex;gap:.75rem}.hamburger{display:none;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:.25rem;line-height:1}.pb-celebration{position:fixed;top:0;left:0;right:0;z-index:400;display:flex;justify-content:center;padding:1rem;pointer-events:none}.pb-banner{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,#d69e2e,#ecc94b);color:#1a202c;padding:1rem 1.5rem;border-radius:12px;box-shadow:0 8px 32px #d69e2e66;pointer-events:auto;animation:slideDown .5s ease;max-width:500px}.pb-emoji{font-size:2rem}.pb-banner strong{font-size:1.1rem;display:block;margin-bottom:.15rem}.pb-banner p{margin:0;font-size:.85rem;opacity:.85}.pb-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#1a202c;opacity:.6;padding:.25rem}.pb-close:hover{opacity:1}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.hamburger{display:block}.nav-links{display:none;position:absolute;top:56px;left:0;right:0;background:var(--navy);flex-direction:column;padding:.5rem 1rem;box-shadow:0 4px 8px #0003;z-index:99}.nav-links.open{display:flex}.nav-links a{padding:.75rem 1rem;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1)}.nav-links a:last-child{border-bottom:none}[data-theme=dark] .nav-links{background:#171923}.navbar{padding:0 1rem;position:relative}.nav-brand{font-size:1rem;margin-right:auto}.main-content{padding:1rem}.form-grid,.charts-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.pace-inputs{grid-template-columns:1fr}.list-header{flex-direction:column;align-items:stretch}.list-header-actions{justify-content:flex-end}}
