/* Calendar improvements approved 2026-09-15. Presentation uses existing aliases. */
.visually-hidden { position:absolute!important; left:0; top:0; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%); white-space:nowrap; border:0!important; }
@media screen {
  #calendarModeBadge,#calendarView .calendar-context-details { display:none!important; }
  html #calendarSidebar { display:none; }
  html #appShell:not([hidden]):has(#calendarView:not([hidden]))>#calendarSidebar:not([hidden]) { display:flex; }
  html #calendarSidebar {
    position:fixed; left:0; top:var(--calendar-sidebar-top,128px); bottom:var(--calendar-sidebar-bottom,32px); z-index:21;
    width:224px; max-width:calc(100vw - 48px); min-height:44px; flex-direction:column;
    border-right:1px solid var(--fliq-border-subtle); background:var(--fliq-surface); padding:4px;
    font-size:13px; line-height:1.4;
  }
  html #calendarSidebar.is-collapsed { width:48px; padding:0; }
  html #calendarSidebarToggle { display:flex; align-items:center; gap:8px; flex:none; min-height:44px; padding:4px; font-size:14px; }
  #calendarSidebarToggle>span[aria-hidden] { flex:none; width:32px; text-align:center; font-size:24px; }
  #calendarSidebarToggle .calendar-sidebar-title { font-weight:600; }
  #calendarSidebar.is-collapsed .calendar-sidebar-title { display:none; }
  #calendarSidebarContent { flex:1; min-height:0; overflow:auto; padding:4px; scrollbar-width:thin; }
  #calendarSidebarContent[hidden] { display:none; }
  html #appShell:has(#calendarView:not([hidden])):has(>#calendarSidebar:not([hidden]))>#mainContent { width:calc(100% - 224px); max-width:none; margin-left:224px; margin-right:0; }
  html #appShell:has(#calendarView:not([hidden])):has(>#calendarSidebar.is-collapsed:not([hidden]))>#mainContent { width:calc(100% - 48px); margin-left:48px; }
  html #calendarSidebar summary { min-height:44px; padding:8px; cursor:pointer; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
  .calendar-sidebar nav>details { margin-bottom:8px; }
  html #calendarSidebar button { width:100%; min-height:44px; border:0; background:transparent; color:var(--fliq-text-primary); padding:8px; text-align:left; font-size:13px; font-weight:500; line-height:1.4; overflow-wrap:anywhere; box-shadow:none; }
  html #calendarSidebar button[aria-pressed=true] { background:var(--fliq8-selected); box-shadow:inset 4px 0 var(--fliq-product-accent); font-weight:600; }
  html #calendarSidebar button:hover { background:var(--fliq8-muted); }
  .calendar-sidebar p { font-size:.75rem; margin:8px; }
  .sidebar-library { border-top:1px solid var(--fliq-border-subtle); margin-top:12px; }
  .sidebar-session { display:grid; gap:4px; cursor:grab; }
  .sidebar-session small { color:var(--fliq-text-secondary); }
  html #calendarSidebar .sidebar-session strong { font-size:13px; font-weight:600; }
  html #calendarSidebar .sidebar-session small { font-size:12px; }
  .calendar-sidebar .session-training-type { white-space:normal; }
  @media(min-width:981px) and (min-height:700px) {
    #calendarSidebarContent:not([hidden]) { display:flex; flex-direction:column; overflow:hidden; }
    #calendarSidebarContent>.sidebar-calendars { flex:1 1 60%; min-height:44px; overflow:auto; }
    #calendarSidebarContent>.sidebar-library { flex:1 1 40%; min-height:44px; overflow:auto; }
    #calendarSidebarContent>details:not([open]) { flex:none; }
  }
  html #trainingTimeline.has-range-actions .calendar-weekdays,html #trainingTimeline.has-range-actions .calendar-days { grid-template-columns:repeat(7,minmax(0,1fr)) 44px; }
  html #trainingTimeline .calendar-week { display:flex; flex-direction:column; flex:none; min-width:0; }
  html #trainingTimeline .calendar-week>.calendar-days { flex:none; }
  html #trainingTimeline .calendar-weekday { display:flex; align-items:center; justify-content:space-between; min-height:44px; gap:4px; padding:0 4px 0 8px; }
  html #trainingTimeline .calendar-weekday>span { min-width:0; overflow-wrap:anywhere; }
  html #trainingTimeline .calendar-week+.calendar-week .calendar-weekdays { border-radius:0; }
  .calendar-week-actions { border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--fliq-surface); }
  .calendar-day-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
  #calendarContextMenu [data-calendar-command="delete"] { margin-top:8px; border-top:1px solid var(--fliq-border-subtle); color:var(--fliq8-danger); }
  html .calendar-day-heading { align-items:flex-start; flex-wrap:wrap; gap:0; }
  html .calendar-day-heading .calendar-day-create { padding:8px 0; min-width:44px; }
  html #trainingTimeline :is(.calendar-add,.calendar-range-menu) { width:44px; min-width:44px; height:44px; min-height:44px; padding:4px; border:0; border-radius:6px; background:transparent; color:var(--fliq-text-primary); box-shadow:none; font-size:20px; }
  html #trainingTimeline :is(.calendar-add,.calendar-range-menu):hover { background:var(--fliq8-muted); }
  html #trainingTimeline .calendar-week-link { display:grid; place-items:center; min-width:44px; min-height:44px; padding:4px; border:0; background:transparent; box-shadow:none; }
  .calendar-count-badge { display:inline-flex; align-items:center; justify-content:center; min-width:32px; min-height:28px; padding:4px; border:1px solid var(--fliq8-control); border-radius:6px; background:var(--fliq8-selected); font-size:13px; line-height:1.2; }
  .calendar-week-link:hover .calendar-count-badge { background:var(--fliq8-muted); }
  html #trainingTimeline.month-view .calendar-day-units { display:grid; }
  html #trainingTimeline.month-view .calendar-days { flex:none; grid-auto-rows:minmax(144px,auto); }
  html #trainingTimeline.month-view .calendar-day { min-height:144px; }
  html #trainingTimeline.month-view .calendar-day .session-card { padding:4px; border-radius:6px; }
  html #trainingTimeline.month-view .calendar-day .session-card-trigger { padding:4px; min-height:44px; grid-template-columns:minmax(0,1fr); }
  html #trainingTimeline.month-view .calendar-day :is(.session-card-meta,.session-iqss,.session-card-timer-action,.session-open-icon,.session-menu-button,.unit-card-values,.unit-card-completion,.unit-video-badge) { display:none; }
  html #trainingTimeline.month-view .calendar-day .session-card-indicators { display:flex; }
  html #trainingTimeline.month-view .session-training-type { white-space:normal; font-size:.7rem; }
  html #calendarDayOverlay {
    position:fixed; z-index:25; display:flex; flex-direction:column; width:min(360px,calc(100vw - 16px));
    min-height:0; margin:0; padding:12px; border:1px solid var(--fliq8-control); border-radius:8px;
    background:var(--fliq8-surface); color:var(--fliq8-text); box-shadow:var(--fliq-ui-depth);
  }
  .calendar-day-overlay-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; flex:none; margin-bottom:8px; }
  html #calendarDayOverlayTitle { margin:0; font:600 16px/1.4 Inter,Arial,sans-serif; overflow-wrap:anywhere; }
  html #calendarDayOverlayClose { width:44px; height:44px; min-width:44px; min-height:44px; flex:none; }
  .calendar-day-overlay-entries { display:grid; gap:8px; overflow:auto; overscroll-behavior:contain; min-height:0; padding:4px; }
  html #calendarDayOverlay .session-card { flex:none; }
  html #calendarDayOverlay :is(.session-title,.session-iqss) { white-space:normal; overflow-wrap:anywhere; }
  html #calendarDayOverlay .session-training-type { font-size:.75rem; }
  html #trainingTimeline .session-card-indicators { grid-column:1/-1; }
  html #trainingTimeline.week-view .session-card-trigger { padding:8px; }
  html #trainingTimeline.week-view .session-card:has(>.session-menu-button) .session-title { padding-right:32px; }
  html #trainingTimeline.week-view .session-card :is(.session-title,.session-card-meta,.unit-card-values,.unit-card-completion) { grid-column:1/-1; }
  html #trainingTimeline.week-view .session-open-icon { display:none; }
  html #trainingTimeline.week-view .session-iqss { white-space:normal; overflow-wrap:anywhere; }
  html .planning-event-card.all-day { grid-template-columns:minmax(0,1fr); }
  html .planning-event-card.all-day time { grid-row:auto; }
  html .analysis-development-chart .chart-line { stroke-width:2; vector-effect:non-scaling-stroke; }
  html .analysis-development-chart .analysis-point { r:2.5px; stroke-width:1.25; vector-effect:non-scaling-stroke; }
  html .analysis-development-chart .analysis-point.is-best { r:4px; stroke-width:2; }
  .analysis-best-value { color:var(--fliq-text-primary); font-size:.875rem; margin:8px 0; }
  .analysis-best-marker { fill:var(--analysis-accent); stroke:var(--fliq-surface); stroke-width:1; vector-effect:non-scaling-stroke; }
  @media(min-width:981px) and (min-height:700px) {
    html #calendarView>#trainingTimeline { flex:1; overflow:auto; }
    html #calendarView>#trainingTimeline.week-view { flex:0 1 auto; }
    html #trainingTimeline .calendar-weekdays { position:sticky; top:0; z-index:2; }
  }
  @media(max-width:1100px) {
    html #trainingTimeline.week-view .calendar-week { display:grid; grid-template-columns:minmax(0,1fr); }
    html #trainingTimeline.week-view :is(.calendar-weekdays,.calendar-days) { display:contents; }
    html #trainingTimeline.week-view .calendar-weekday { grid-row:calc(var(--calendar-day-index) * 2 + 1); background:var(--surface-muted); border:1px solid var(--line); }
    html #trainingTimeline.week-view .calendar-day { grid-row:calc(var(--calendar-day-index) * 2 + 2); border-left:1px solid var(--line); }
    html #trainingTimeline.week-view .calendar-actions-label { display:none; }
    html #trainingTimeline.week-view .calendar-week-actions { grid-row:15; text-align:right; border-left:1px solid var(--line); }
  }
  @media(max-width:980px) {
    html #appShell:has(#calendarView:not([hidden])):has(>#calendarSidebar:not([hidden]))>#mainContent { width:calc(100% - 48px); margin-left:48px; padding-inline:16px; }
    html #calendarSidebar:not(.is-collapsed) { box-shadow:var(--fliq-ui-depth); }
  }
}
@media print { #calendarSidebar,#calendarDayOverlay,.calendar-week-actions,.calendar-day-actions,.calendar-range-menu { display:none!important; } }
#calendarScopeField, #calendarTrainingTypeField { display:none !important; }
#calendarSidebar .sidebar-group-calendars { margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--fliq-border-subtle); }
#calendarSidebar :is(.sidebar-group-calendars,.sidebar-athlete-calendars)>h3 { margin:8px 0; padding:0 8px; font-size:12px; line-height:20px; color:var(--fliq-text-secondary); }
#calendarSidebar .sidebar-athlete-calendars>details>[data-sidebar-calendar] { padding-inline-start:20px; }

/* One active calendar and one scrollable library, approved 2026-09-25. */
@media screen {
  html #calendarSidebar:not(.is-collapsed) { width:288px; padding:8px; }
  html #calendarSidebarContent:not([hidden]) { display:block; overflow:auto; padding:8px; }
  html #calendarSidebarContent>.sidebar-library { overflow:visible; margin-top:20px; padding-top:20px; }
  html #calendarSidebar .sidebar-active-calendar { display:grid; gap:8px; padding-bottom:16px; }
  html #calendarSidebar h3 { font-size:14px; line-height:20px; margin:0 0 12px; }
  html #calendarSidebar .sidebar-active-calendar h3,html #calendarSidebar small { color:var(--fliq-text-secondary); }
  html #calendarSidebar #sidebarCalendarSelect { width:100%; min-width:0; max-width:100%; }
  html:root[data-fliq-ci="8.1"] #calendarSidebar #sidebarCalendarSelect {
    display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left;
    border:1px solid var(--fliq8-control); background:var(--fliq8-surface); white-space:normal;
  }
  html #calendarSidebar #sidebarCalendarName { min-width:0; overflow-wrap:anywhere; }
  html #calendarSidebar .calendar-picker-chevron {
    display:block; width:16px; height:16px; flex:0 0 16px; background:currentColor;
    mask:url("ci-8.1/icons/chevron-down.svg") center/16px 16px no-repeat;
  }
  html #calendarSidebar #sidebarCalendarSelect[aria-expanded="true"] .calendar-picker-chevron { transform:rotate(180deg); }
  html #calendarSidebar #sidebarCalendarPicker { min-width:0; padding-top:8px; }
  html #calendarSidebar #sidebarCalendarPicker [hidden],html #calendarSidebar #sidebarCalendarPicker[hidden] { display:none!important; }
  html #calendarSidebar .calendar-picker-search { display:grid; gap:4px; min-width:0; margin:0 0 8px; }
  html #calendarSidebar #sidebarCalendarSearch { width:100%; min-width:0; max-width:100%; }
  html #calendarSidebar #sidebarCalendarResults { display:grid; gap:8px; min-width:0; }
  html #calendarSidebar #sidebarCalendarResults section { min-width:0; }
  html #calendarSidebar #sidebarCalendarResults h4 { margin:0; padding:8px; font-size:12px; font-weight:600; }
  html:root[data-fliq-ci="8.1"] #calendarSidebar #sidebarCalendarResults button {
    display:flex; align-items:center; gap:8px; width:100%; min-width:44px; min-height:44px;
    padding:8px; text-align:left; white-space:normal; overflow-wrap:anywhere;
  }
  html:root[data-fliq-ci="8.1"] #calendarSidebar #sidebarCalendarResults .calendar-picker-section {
    font-weight:600; background:var(--fliq8-surface); border:1px solid var(--fliq8-control);
  }
  html #calendarSidebar .calendar-picker-section>span:not([aria-hidden]) { flex:1; min-width:0; }
  html #calendarSidebar .calendar-picker-section>small { flex:none; font-variant-numeric:tabular-nums; }
  html #calendarSidebar .calendar-picker-section[aria-expanded="false"] .calendar-picker-chevron { transform:rotate(-90deg); }
  html:root[data-fliq-ci="8.1"] #calendarSidebar #sidebarCalendarResults [data-sidebar-calendar][aria-pressed="true"] {
    font-weight:600; color:var(--fliq81-plan-accent); background:var(--fliq8-surface);
  }
  html #calendarSidebar #sidebarCalendarResults [aria-pressed="true"]::after {
    content:""; width:16px; height:16px; flex:0 0 16px; margin-left:auto; background:currentColor;
    mask:url("ci-8.1/icons/check.svg") center/16px 16px no-repeat;
  }
  html #calendarSidebar #sidebarCalendarEmpty { margin:8px 0; font-size:13px; overflow-wrap:anywhere; }
  @media(pointer:coarse) { html:root[data-fliq-ci="8.1"] #calendarSidebar #sidebarCalendarSearch { font-size:16px; } }
  html #calendarSidebar :is([data-new-library-folder],[data-sidebar-schedule]) { border:1px solid var(--fliq-border-control); border-radius:var(--fliq-radius-control); }
  html #calendarSidebar .sidebar-library-actions { display:grid; gap:4px; margin-bottom:16px; }
  html #calendarSidebar .sidebar-library-actions button { text-decoration:underline; text-underline-offset:4px; }
  html #calendarSidebar .sidebar-library-field { display:grid; gap:8px; margin:16px 0; min-width:0; }
  html #calendarSidebar .sidebar-library-field>span { font-size:12px; font-weight:600; }
  html #calendarSidebar .sidebar-library-field :is(input,select) { width:100%; min-width:0; max-width:100%; min-height:56px; }
  html #calendarSidebar .sidebar-library-path { display:flex; flex-wrap:wrap; gap:4px 8px; align-items:center; margin-block:8px; }
  html #calendarSidebar .sidebar-library-path button { width:auto; text-decoration:underline; text-underline-offset:4px; padding:8px 0; }
  html #calendarSidebar .sidebar-library-folders { margin-block:12px; }
  html #calendarSidebar .sidebar-library-folders button { display:block; border-bottom:1px solid var(--fliq-border-subtle); }
  html #calendarSidebar .sidebar-session { display:grid; gap:8px; padding:16px 0; border-top:1px solid var(--fliq-border-subtle); }
  html #calendarSidebar .sidebar-session-actions { display:flex; flex-wrap:wrap; gap:8px; }
  html #calendarSidebar .sidebar-session-actions button { flex:1 1 80px; width:auto; text-align:center; }
  html #calendarSidebar .library-folder-add { width:100%; height:auto; min-height:44px; white-space:normal; }
  @media(min-width:981px){ html #appShell:has(#calendarView:not([hidden])):has(>#calendarSidebar:not(.is-collapsed):not([hidden]))>#mainContent { width:calc(100% - 288px); margin-left:288px; } }
}
html .session-library-dialog .library-folder-row { display:flex; flex-wrap:wrap; gap:8px; }
html .session-library-dialog .library-folder-add { flex:0 1 auto; width:auto; max-width:100%; height:auto; min-width:44px; min-height:44px; white-space:normal; overflow-wrap:anywhere; font-size:12px; padding:8px 12px; }
html :is(.calendar-choice-dialog,.calendar-schedule-dialog) { width:min(640px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); overflow:auto; padding:24px; }
.calendar-choice-list { display:grid; gap:8px; border:0; padding:0; margin:20px 0; }
.calendar-choice-list>label { display:flex; gap:12px; align-items:center; min-height:56px; border:1px solid var(--fliq-border-control); border-radius:var(--fliq-radius-control); padding:12px; }
.calendar-choice-list>label[hidden] { display:none!important; }
.calendar-choice-list>label:has(:checked) { background:var(--fliq8-selected); border:2px solid var(--fliq-focus); padding:11px; }
.calendar-choice-list input[type=radio] { width:20px; min-width:20px; height:20px; min-height:20px; flex:none; }
.calendar-choice-list>label>span { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.calendar-choice-list small { color:var(--fliq-text-secondary); }
.calendar-schedule-dialog .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
html :is(.calendar-choice-dialog,.calendar-schedule-dialog) :is(input:not([type=radio]),select) { width:100%; min-width:0; max-width:100%; min-height:56px; }
html :is(.calendar-choice-dialog,.calendar-schedule-dialog) .dialog-heading { flex-wrap:wrap; }
@media(max-width:600px){ html :is(.calendar-choice-dialog,.calendar-schedule-dialog) { padding:16px; } .calendar-schedule-dialog .form-grid { grid-template-columns:minmax(0,1fr); } }
