.training-calendar{flex-direction:column;width:100%;max-width:36rem;margin:0 auto;padding:2rem;display:flex}.cal-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0 1rem;display:flex}.cal-month-title{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:600}.cal-header-actions{align-items:center;gap:.5rem;display:flex}.cal-nav-btn{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s,background-color .2s;display:flex}.cal-nav-btn:hover{color:var(--accent);background-color:var(--accent-soft)}.cal-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-mode-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:4rem;height:2.25rem;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0 .875rem;font-size:.8125rem;font-weight:600;transition:border-color .2s,color .2s,background-color .2s;display:flex}.cal-mode-btn:hover,.cal-mode-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.cal-mode-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-edit-bar{flex-direction:column;flex-shrink:0;gap:.5rem;padding:0 0 1rem;animation:.2s ease-out cal-slide-in;display:flex}@keyframes cal-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes cal-fade-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.cal-workout-entry{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cal-input-wrap{display:flex;position:relative}.cal-input-wrap input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font-family:var(--font-sans);padding:.625rem .75rem;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.cal-placeholder{color:var(--text-faint);font-family:var(--font-sans);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.5;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 1.5rem);font-size:.9375rem;animation:.35s ease-out cal-fade-in;position:absolute;top:50%;left:.75rem;overflow:hidden;transform:translateY(-50%)}.cal-input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.cal-input-wrap input[aria-invalid=true]{border-color:#cc243d;border-color:lab(45.6635% 64.2059 31.2074)}.cal-entry-preview{border-radius:var(--radius-sm);background:var(--accent-soft);width:100%;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;overflow:hidden}.cal-error{border-radius:var(--radius-sm);color:#cc243d;color:lab(45.6635% 64.2059 31.2074);background:#cc243d1a;background:lab(45.6635% 64.2059 31.2074/.1);margin-bottom:.75rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:500}.cal-loading{color:var(--text-muted);justify-content:center;align-items:center;padding:2rem;font-size:.875rem;display:flex}.cal-grid{flex-shrink:0;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}@keyframes cal-cell-enter{0%{opacity:0;transform:scale(.88)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes cal-badge-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.cal-grid .calendar-cell{animation:.35s ease-out both cal-cell-enter;animation-delay:calc(var(--i,0) * 25ms)}.cal-grid .calendar-cell .cal-cell-badge{animation:.25s ease-out both cal-badge-pop;animation-delay:calc(var(--i,0) * 25ms + .2s)}.cal-day-name{text-align:center;font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);-webkit-user-select:none;user-select:none;padding:.5rem 0;font-size:.625rem;font-weight:600}.calendar-cell{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.9375rem;font-weight:500;transition:background-color .15s,color .15s,transform .2s ease-out;display:flex;position:relative}.calendar-cell:hover{background-color:var(--accent-soft)}.calendar-cell-has-sessions:hover{transform:scale(1.05)}.calendar-cell:active{transition:transform 80ms ease-out;transform:scale(.95)}.calendar-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.calendar-cell-other-month{color:var(--text-faint);opacity:.4}.calendar-cell-today{color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);font-weight:700;animation:3s ease-in-out infinite cal-pulse-today}@keyframes cal-pulse-today{0%,to{box-shadow:inset 0 0 0 2px var(--accent)}50%{box-shadow:inset 0 0 0 2px var(--accent), 0 0 0 4px var(--accent-glow)}}.calendar-cell-has-sessions{background-color:#ce45221f;background-color:lab(49.6868% 54.0385 50.3606/.12)}body.dark .calendar-cell-has-sessions{background-color:#f87b5c2e;background-color:lab(66.1731% 47.1284 40.0578/.18)}.calendar-cell-day{line-height:1}.cal-cell-badge{border-radius:var(--radius-pill);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:2px 5px;font-size:.5rem;font-weight:700;line-height:1;overflow:hidden}.cal-badge-easy{color:#187e36;color:lab(46.032% -41.3288 30.3835);background:#13702f29;background:lab(41.2689% -38.3841 28.2365/.16)}.cal-badge-recovery{color:#006aa1;color:lab(41.6799% -11.3338 -43.2887);background:#005e9029;background:lab(37.1218% -10.5157 -37.1892/.16)}.cal-badge-tempo{color:#b24400;color:lab(44.1897% 47.2156 70.4108);background:#9a3c0029;background:lab(38.4517% 44.6219 66.2938/.16)}.cal-badge-interval{color:#b7162d;color:lab(40.0011% 60.7611 33.4379);background:#a50b2529;background:lab(35.4619% 57.5883 32.0274/.16)}.cal-badge-long-run{color:#714ca6;color:lab(39.8846% 30.373 -43.3873);background:#64439529;background:lab(35.3898% 28.2594 -40.2794/.16)}body.dark .cal-badge-easy{color:#90c897;color:lab(75.6411% -26.1866 18.4076);background:#66ab7138;background:lab(64.2759% -32.121 22.8273/.22)}body.dark .cal-badge-recovery{color:#7bb9e5;color:lab(72.1707% -12.0183 -28.6283);background:#549ac938;background:lab(60.5252% -12.3518 -31.5639/.22)}body.dark .cal-badge-tempo{color:#f2a07c;color:lab(73.79% 28.361 32.3167);background:#d97c5038;background:lab(62.0148% 34.3333 40.0235/.22)}body.dark .cal-badge-interval{color:#eb817f;color:lab(66.2101% 41.1697 20.1439);background:#d15b5c38;background:lab(54.3878% 47.6691 23.9456/.22)}body.dark .cal-badge-long-run{color:#baa4e2;color:lab(71.0343% 17.1837 -28.5373);background:#9d82cc38;background:lab(59.1039% 21.8437 -34.5662/.22)}.cal-session-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.cal-add-confirm{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.cal-pending-workout{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);padding:.75rem;font-size:.875rem;font-weight:600;line-height:1.4}.cal-empty-day{color:var(--text-muted);margin:0 0 1rem;font-size:.875rem}.cal-session-item{border-radius:var(--radius-md);background:var(--bg-subtle);justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.75rem;display:flex}.cal-session-info{color:var(--text-muted);flex-direction:column;gap:.125rem;font-size:.8125rem;display:flex}.cal-session-type{color:var(--accent);text-transform:capitalize;font-size:.875rem;font-weight:600}.cal-session-delete{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--text-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,background-color .2s;display:flex}.cal-session-delete:hover{color:#cc243d;color:lab(45.6635% 64.2059 31.2074);background:#cc243d1a;background:lab(45.6635% 64.2059 31.2074/.1)}.cal-add-btn{border:2px dashed var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;padding:.75rem;font-size:.875rem;font-weight:500;transition:border-color .2s,color .2s;display:block}.cal-add-btn:hover{border-color:var(--accent);color:var(--accent)}.cal-add-btn:disabled{opacity:.55;cursor:not-allowed}.cal-form{flex-direction:column;gap:.75rem;display:flex}.cal-form-field{flex-direction:column;gap:.25rem;display:flex}.cal-form-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:.625rem;font-weight:600}.cal-form-field select,.cal-form-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-sans);padding:.5rem .75rem;font-size:.875rem;transition:border-color .2s}.cal-form-field select:focus,.cal-form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.cal-form-field select[aria-invalid=true],.cal-form-field input[aria-invalid=true]{border-color:#cc243d;border-color:lab(45.6635% 64.2059 31.2074)}.cal-form-error{color:#cc243d;color:lab(45.6635% 64.2059 31.2074);font-size:.75rem;line-height:1.3}.cal-form-actions{gap:.5rem;margin-top:.5rem;display:flex}.cal-form-cancel{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s}.cal-form-cancel:hover{background:var(--bg-subtle)}.cal-form-submit{border-radius:var(--radius-sm);background:var(--accent);color:var(--surface);cursor:pointer;border:none;flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:600;transition:opacity .2s}.cal-form-submit:hover{opacity:.9}.cal-delete-confirm{text-align:center}.cal-delete-confirm p{color:var(--text);margin-bottom:1rem;font-size:.9375rem}@media (max-width:640px){.cal-workout-entry{min-width:auto}}@media (prefers-reduced-motion:reduce){.calendar-cell,.cal-nav-btn,.cal-mode-btn,.cal-workout-entry input,.cal-session-delete,.cal-add-btn,.cal-form-cancel,.cal-form-submit{transition:none}.calendar-cell:active{transform:none}.calendar-cell-today,.cal-edit-bar,.cal-placeholder{animation:none}.calendar-cell-has-sessions:hover{transform:none}.cal-grid .calendar-cell,.cal-grid .calendar-cell .cal-cell-badge{animation:none}}
