.training-calendar-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.training-calendar-legend{color:var(--text-secondary);flex-wrap:wrap;gap:18px;font-size:12px;display:flex}.training-calendar-legend li{align-items:center;gap:7px;display:flex}.training-calendar-legend i{border-radius:50%;width:7px;height:7px}.legend-plan{background:#c4b5fd}.training-sport-cycling{--sport-color:#6ee7b7;--sport-rgb:52, 211, 153}.training-sport-running{--sport-color:#fdba74;--sport-rgb:251, 146, 60}.training-sport-gym{--sport-color:#93c5fd;--sport-rgb:96, 165, 250}.training-sport-other{--sport-color:#f9a8d4;--sport-rgb:244, 114, 182}.training-calendar-legend [class*=training-sport-]{color:var(--sport-color)}.legend-context{background:#fcd34d}.calendar-add-button{background:var(--accent-primary);color:#241b39;border-radius:12px;align-items:center;gap:8px;padding:10px 15px;font-size:13px;font-weight:650;display:flex}.calendar-date-input{border:1px solid var(--border-default);background:var(--bg-glass);border-radius:12px;min-width:130px;padding:8px 10px;font-size:12px}.calendar-more{position:relative}.calendar-more summary{cursor:pointer;list-style:none}.calendar-more>div{z-index:20;border:1px solid var(--border-strong);background:#191721;border-radius:12px;width:190px;padding:6px;position:absolute;top:44px;right:0;box-shadow:0 12px 40px #0006}.calendar-more button{text-align:left;border-radius:8px;width:100%;padding:10px;font-size:13px}.calendar-more button:hover{background:var(--bg-glass)}.training-calendar-panel{border:1px solid var(--border-default);background:linear-gradient(145deg,#ffffff04,#ffffff01),#101017;border-radius:20px;padding:24px;box-shadow:0 16px 48px #0002}.training-calendar-panel .fc{--fc-border-color:#ffffff0e;--fc-page-bg-color:#14131c;--fc-neutral-bg-color:#ffffff04;--fc-neutral-text-color:#b6b4bf;--fc-today-bg-color:#c4b5fd09;--fc-button-bg-color:#ffffff06;--fc-button-border-color:#ffffff12;--fc-button-text-color:#c6c2d3;--fc-button-hover-bg-color:#ffffff0e;--fc-button-hover-border-color:#ffffff25;--fc-button-active-bg-color:#c4b5fd20;--fc-button-active-border-color:#c4b5fd45;--fc-list-event-hover-bg-color:#ffffff06;font-family:inherit;font-size:13px}.training-calendar-panel .fc .fc-toolbar{gap:12px;margin-bottom:24px}.training-calendar-panel .fc .fc-toolbar-title{letter-spacing:-.035em;font-size:21px;font-weight:650}.training-calendar-panel .fc .fc-button{text-transform:capitalize;box-shadow:none;padding:8px 12px;font-family:inherit;font-size:12px}.training-calendar-panel .fc .fc-button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.training-calendar-panel .fc .fc-scrollgrid{border-radius:12px;overflow:hidden}.training-calendar-panel .fc .fc-col-header-cell-cushion{color:var(--text-secondary);padding:14px 4px;font-weight:550}.training-calendar-panel .fc .fc-day-today .fc-col-header-cell-cushion{color:var(--accent-primary)}.training-calendar-panel .fc .fc-daygrid-day-number{color:var(--text-secondary);padding:10px 12px}.training-calendar-panel .fc .fc-daygrid-day{cursor:pointer}.training-calendar-panel .fc .fc-daygrid-day:hover{background-color:#ffffff02}.training-calendar-panel .fc-dayGridWeek-view .fc-daygrid-day-frame{min-height:420px}.training-calendar-panel .fc-dayGridMonth-view .fc-daygrid-day-frame{min-height:135px}.training-calendar-panel .fc .fc-daygrid-event{white-space:normal;cursor:pointer;border-radius:9px;margin:4px 6px;padding:0}.training-calendar-panel .fc .fc-h-event{border:1px solid #ffffff0a}.training-calendar-panel .fc .fc-event:hover{filter:brightness(1.2)}.training-calendar-panel .fc .training-event-plan{color:#ddd6fe;background:#a78bfa15;border-color:#a78bfa30}.training-calendar-panel .fc .training-rest-day{opacity:1;pointer-events:none;background:#ef444426}.training-calendar-panel .fc .training-event-activity{background:rgba(var(--sport-rgb), .13);border-color:rgba(var(--sport-rgb), .35);border-left:3px solid var(--sport-color);color:var(--sport-color)}.training-calendar-panel .fc .training-event-context{color:#fde68a;background:#fbbf2410;border-color:#fbbf2430}.training-calendar-panel .training-event-cancelled{opacity:.45;text-decoration:line-through}.training-event-content{flex-direction:column;gap:5px;padding:10px;display:flex;overflow:hidden}.training-event-label{text-transform:uppercase;letter-spacing:.08em;opacity:.8;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;height:15px;font-size:9px;font-weight:650;display:flex;overflow:hidden}.training-event-label svg{flex-shrink:0}.training-event-activity .training-event-label{color:var(--sport-color);opacity:1}.training-event-content strong{color:#f3f0fa;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-shrink:0;height:2.8em;font-size:12px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.training-event-meta{opacity:.75;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;flex-shrink:0;height:3em;font-size:10px;line-height:1.5;display:-webkit-box;overflow:hidden}.training-event-tags{flex-shrink:0;height:18px}.training-priority-tag{white-space:nowrap;text-overflow:ellipsis;border:1px solid;border-radius:5px;max-width:100%;padding:1px 6px;font-size:9px;line-height:14px;display:inline-block;overflow:hidden}.training-priority-key{color:#fcd34d;background:#fcd34d18}.training-priority-normal{color:#c4b5fd;background:#c4b5fd12}.training-priority-optional{color:#94a3b8;background:#94a3b812}.training-calendar-panel .fc .fc-list-day-cushion{background:#ffffff03;padding:12px 16px}.training-calendar-panel .fc .fc-list-event-time{display:none}.training-calendar-panel .fc .fc-list-event-title{cursor:pointer;padding:0}.training-calendar-panel .fc .fc-list-event-dot{border-color:currentColor}.calendar-footnote{color:var(--text-muted);margin-top:16px;font-size:11px}.training-editor{width:min(640px,100vw - 24px);max-width:640px;max-height:85dvh;overflow-y:auto}.calendar-editor-tab{border:1px solid var(--border-default);color:var(--text-secondary);border-radius:10px;padding:8px 16px;font-size:13px}.calendar-editor-tab.is-active{color:var(--accent-primary);background:#c4b5fd10;border-color:#c4b5fd35}.activity-details{margin-bottom:20px}.activity-detail-subtitle{color:#6ee7b7;flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.activity-detail-subtitle span{border:1px solid #6ee7b725;border-radius:7px;padding:3px 8px}.activity-detail-date{color:var(--text-secondary);margin-top:12px;font-size:13px}.activity-strava-link{color:var(--accent-primary);margin-top:8px;font-size:12px;display:inline-block}.activity-detail-status{color:var(--text-secondary);margin-top:12px;font-size:12px}.activity-detail-status button{color:var(--accent-primary);margin-left:8px;text-decoration:underline}.activity-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px;display:grid}.activity-metrics>div{border:1px solid var(--border-default);background:#ffffff03;border-radius:12px;padding:12px}.activity-metrics dt{color:var(--text-secondary);font-size:11px}.activity-metrics dd{margin-top:5px;font-size:18px;font-weight:600}.activity-description{white-space:pre-wrap;margin-top:16px;font-size:13px}.activity-equipment{color:var(--text-secondary);margin-top:12px;font-size:12px}.activity-segments{border-top:1px solid var(--border-default);margin-top:20px;padding-top:16px;font-size:13px}.activity-segments summary{cursor:pointer;font-weight:600}.activity-segments li{border-bottom:1px solid var(--border-default);padding:10px 0}.activity-segments a{color:var(--accent-primary);display:block}.activity-segments span{color:var(--text-secondary);margin-top:4px;font-size:12px;display:block}.activity-notes-heading{border-top:1px solid var(--border-default);margin-top:20px;padding-top:20px;font-size:14px;font-weight:600}@media (max-width:767px){.activity-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.training-calendar-panel{border-radius:16px;padding:14px}.training-calendar-panel .fc .fc-toolbar{flex-wrap:wrap;justify-content:space-between}.training-calendar-panel .fc .fc-toolbar-chunk:nth-child(2){order:-1;width:100%}.training-calendar-panel .fc .fc-toolbar-title{font-size:20px}.training-calendar-panel .fc .fc-button{padding:8px 9px}.training-calendar-legend{width:100%}.training-calendar-panel .fc-dayGridWeek-view .fc-daygrid-day-frame{min-height:300px}.training-event-content{padding:7px}}.calendar-loading{color:#ddd6fe;background:#c4b5fd12;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.calendar-context-list{background:#fcd34d08;border:1px solid #fcd34d33;border-radius:16px;margin-bottom:20px;padding:20px}.calendar-context-row{text-align:left;border-bottom:1px solid #ffffff12;width:100%;padding:14px 0;font-size:13px;display:block}.calendar-context-row strong{color:#fcd34d;margin-right:12px}.calendar-context-row span{color:var(--text-secondary)}.calendar-context-row p{white-space:pre-wrap;margin-top:6px}.training-home-switch{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.training-view-tabs{border:1px solid var(--border-default);background:#ffffff03;border-radius:14px;gap:4px;padding:5px;display:flex}.training-view-tabs button{color:var(--text-secondary);border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;display:flex}.training-view-tabs button[aria-pressed=true]{color:#ddd6fe;background:#c4b5fd20}.training-coach-link{color:#c4b5fd;align-items:center;gap:8px;font-size:13px;display:flex}.training-floating-add{z-index:40;color:#251c3d;background:#c4b5fd;border-radius:20px;place-items:center;width:58px;height:58px;transition:transform .15s,background .15s;display:grid;position:fixed;bottom:32px;right:32px;box-shadow:0 8px 32px #09090e80,0 0 0 1px #ddd6fe40}.training-floating-add:hover{background:#ddd6fe;transform:translateY(-3px)}.training-floating-add svg{width:26px;height:26px}.training-feed{max-width:1000px;padding-bottom:70px}.feed-day{border:1px solid var(--border-subtle);background:#ffffff02;border-radius:20px;grid-template-columns:150px minmax(0,1fr);gap:24px;margin-bottom:16px;padding:24px;display:grid}.feed-day-today{background:linear-gradient(120deg,#c4b5fd0c,#c4b5fd02);border-color:#c4b5fd40}.feed-day-rest{background:#ef444410;border-color:#ef444430}.feed-day-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.feed-day-heading p{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:11px}.feed-day-today .feed-day-heading p{color:#c4b5fd}.feed-day-heading h2{letter-spacing:-.03em;margin-top:6px;font-size:17px;font-weight:600}.feed-day-add{border:1px solid var(--border-default);width:28px;height:28px;color:var(--text-muted);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.feed-day-add:hover{color:#ddd6fe;background:#c4b5fd15}.feed-day-entries{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.feed-entry{text-align:left;color:#ddd6fe;background:#a78bfa10;border:1px solid #a78bfa30;border-left:3px solid #a78bfa;border-radius:12px;width:100%;transition:background .15s}.feed-entry:hover{filter:brightness(1.2)}.feed-entry .training-event-content{gap:8px;padding:16px}.feed-entry .training-event-content strong{font-size:15px}.feed-entry .training-event-meta{font-size:12px}.feed-entry.training-event-activity{background:rgba(var(--sport-rgb), .1);border-color:rgba(var(--sport-rgb), .3);border-left-color:var(--sport-color);color:var(--sport-color)}.feed-entry.training-event-context{color:#fde68a;background:#fbbf240a;border-color:#fbbf2425 #fbbf2425 #fbbf2425 #fbbf24}.feed-empty{min-height:60px;color:var(--text-muted);align-items:center;font-size:13px;display:flex}.feed-load-more{border:1px solid var(--border-default);width:100%;color:var(--text-secondary);border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:13px;display:flex}.feed-load-more:disabled{opacity:.5}.feed-error{color:#fda4af;padding:16px;font-size:13px}.feed-error button{margin-left:8px;text-decoration:underline}@media (max-width:767px){.training-floating-add{right:20px;bottom:calc(20px + env(safe-area-inset-bottom))}.feed-day{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px}.feed-day-entries{grid-template-columns:minmax(0,1fr)}.training-view-tabs button{gap:6px;padding:9px 10px;font-size:12px}.training-home-switch{flex-wrap:wrap}.training-coach-link{font-size:12px}}
