.ag-week-grid-header {
    min-width: 2032px;
    display: grid;
    grid-template-columns: 72px repeat(7, minmax(280px, 1fr));
    border-bottom: 1px solid var(--color-gray-100);
    background: var(--color-gray-50);
}

.ag-week-grid-time-cell {
    border-right: 1px solid var(--color-gray-100);
    padding: .5rem;
    font-size: 11px;
    color: var(--color-gray-500);
}

.ag-week-grid-day-cell {
    border-right: 1px solid var(--color-gray-100);
    text-align: center;
    padding: .5rem .25rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-500);
    text-transform: uppercase;
}

.ag-week-grid-day-cell:last-child {
    border-right: none;
}

.ag-week-grid {
    --ag-slot-height: 28px;
    min-width: 2032px;
    display: grid;
    grid-template-columns: 72px repeat(7, minmax(280px, 1fr));
}

.ag-week-grid-time-col,
.ag-week-grid-day-col {
    min-height: calc(var(--ag-slot-height) * 1);
    border-right: 1px solid var(--color-gray-100);
}

.ag-week-grid-time-col {
    background-color: var(--color-gray-50);
}

.ag-week-grid-day-col {
    position: relative;
}

.ag-week-grid-day-col--today {
    background-color: color-mix(in oklab, var(--color-blue-50) 60%, transparent);
}

.ag-week-grid-time-row,
.ag-week-grid-day-slot {
    height: var(--ag-slot-height);
    border-bottom: 1px solid var(--color-gray-100);
    box-sizing: border-box;
}

.ag-week-grid-hour-line {
    border-top: 1px solid var(--color-gray-300);
}

.ag-week-grid-time-row {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    text-align: right;
    color: var(--color-gray-400);
    font-size: 11px;
    padding-right: 0.5rem;
    padding-top: .25rem;
}

.ag-week-grid-course-item {
    --ag-lane-left: 0%;
    --ag-lane-width: 100%;
    --ag-course-x-gap: .125rem;
    position: absolute;
    box-sizing: border-box;
    left: calc(var(--ag-course-x-gap) + var(--ag-lane-left));
    width: calc(var(--ag-lane-width) - (var(--ag-course-x-gap) * 2));
    top: calc(var(--ag-slot-start) * var(--ag-slot-height));
    height: calc(var(--ag-slot-span) * var(--ag-slot-height));
    border: 1px solid var(--color-blue-200);
    background-color: var(--color-blue-100);
    border-radius: 0.375rem;
    padding: .3rem;
    overflow: hidden;
    z-index: 10;
    cursor: pointer;
    text-align: left;
}

.ag-lane-count-2.ag-lane-1 { --ag-lane-left: 50%; }
.ag-lane-count-2 { --ag-lane-width: 50%; }

.ag-lane-count-3.ag-lane-1 { --ag-lane-left: 33.3333%; }
.ag-lane-count-3.ag-lane-2 { --ag-lane-left: 66.6666%; }
.ag-lane-count-3 { --ag-lane-width: 33.3333%; }

.ag-lane-count-4.ag-lane-1 { --ag-lane-left: 25%; }
.ag-lane-count-4.ag-lane-2 { --ag-lane-left: 50%; }
.ag-lane-count-4.ag-lane-3 { --ag-lane-left: 75%; }
.ag-lane-count-4 { --ag-lane-width: 25%; }

.ag-lane-count-5.ag-lane-1 { --ag-lane-left: 20%; }
.ag-lane-count-5.ag-lane-2 { --ag-lane-left: 40%; }
.ag-lane-count-5.ag-lane-3 { --ag-lane-left: 60%; }
.ag-lane-count-5.ag-lane-4 { --ag-lane-left: 80%; }
.ag-lane-count-5 { --ag-lane-width: 20%; }

.ag-lane-count-6.ag-lane-1 { --ag-lane-left: 16.6667%; }
.ag-lane-count-6.ag-lane-2 { --ag-lane-left: 33.3333%; }
.ag-lane-count-6.ag-lane-3 { --ag-lane-left: 50%; }
.ag-lane-count-6.ag-lane-4 { --ag-lane-left: 66.6667%; }
.ag-lane-count-6.ag-lane-5 { --ag-lane-left: 83.3333%; }
.ag-lane-count-6 { --ag-lane-width: 16.6667%; }

.ag-lane-count-7.ag-lane-1 { --ag-lane-left: 14.2857%; }
.ag-lane-count-7.ag-lane-2 { --ag-lane-left: 28.5714%; }
.ag-lane-count-7.ag-lane-3 { --ag-lane-left: 42.8571%; }
.ag-lane-count-7.ag-lane-4 { --ag-lane-left: 57.1428%; }
.ag-lane-count-7.ag-lane-5 { --ag-lane-left: 71.4285%; }
.ag-lane-count-7.ag-lane-6 { --ag-lane-left: 85.7142%; }
.ag-lane-count-7 { --ag-lane-width: 14.2857%; }

.ag-lane-count-8.ag-lane-1 { --ag-lane-left: 12.5%; }
.ag-lane-count-8.ag-lane-2 { --ag-lane-left: 25%; }
.ag-lane-count-8.ag-lane-3 { --ag-lane-left: 37.5%; }
.ag-lane-count-8.ag-lane-4 { --ag-lane-left: 50%; }
.ag-lane-count-8.ag-lane-5 { --ag-lane-left: 62.5%; }
.ag-lane-count-8.ag-lane-6 { --ag-lane-left: 75%; }
.ag-lane-count-8.ag-lane-7 { --ag-lane-left: 87.5%; }
.ag-lane-count-8 { --ag-lane-width: 12.5%; }

.ag-week-grid-course-item:focus-visible {
    outline: 2px solid var(--color-club-primary);
    outline-offset: 2px;
}

.agenda-course-item-title {
    color: var(--color-gray-900);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.agenda-course-detail {
    align-items: center;
    background-color: rgb(17 24 39 / 0.45);
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    padding: 1rem;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 50;
}

.agenda-course-detail.hidden {
    display: none;
}

.agenda-course-detail-panel {
    background: var(--color-white);
    border-radius: 0.5rem;
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    max-width: 420px;
    padding: 1rem;
    width: min(100%, 420px);
}

.agenda-course-detail-list {
    display: grid;
    gap: .75rem;
}

.agenda-course-detail-list dt {
    color: var(--color-gray-500);
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.agenda-course-detail-list dd {
    color: var(--color-gray-900);
    font-size: .95rem;
    margin: .125rem 0 0;
}

.agenda-course-detail-groups {
    display: grid;
    gap: .35rem;
    list-style: disc;
    margin: .25rem 0 0;
    padding-left: 1.25rem;
}

.agenda-course-detail-group-details {
    display: grid;
    gap: .65rem;
    list-style: none;
    margin: .25rem 0 0;
    padding-left: 0;
}

.agenda-course-detail-group-detail-lines {
    color: var(--color-gray-700);
    display: grid;
    gap: .2rem;
    list-style: disc;
    margin: .25rem 0 0;
    padding-left: 1.25rem;
}

.agenda-course-detail-group-detail-label {
    color: var(--color-gray-700);
    font-weight: 600;
}

.ag-slot-start-0 { --ag-slot-start: 0; }
.ag-slot-start-1 { --ag-slot-start: 1; }
.ag-slot-start-2 { --ag-slot-start: 2; }
.ag-slot-start-3 { --ag-slot-start: 3; }
.ag-slot-start-4 { --ag-slot-start: 4; }
.ag-slot-start-5 { --ag-slot-start: 5; }
.ag-slot-start-6 { --ag-slot-start: 6; }
.ag-slot-start-7 { --ag-slot-start: 7; }
.ag-slot-start-8 { --ag-slot-start: 8; }
.ag-slot-start-9 { --ag-slot-start: 9; }
.ag-slot-start-10 { --ag-slot-start: 10; }
.ag-slot-start-11 { --ag-slot-start: 11; }
.ag-slot-start-12 { --ag-slot-start: 12; }
.ag-slot-start-13 { --ag-slot-start: 13; }
.ag-slot-start-14 { --ag-slot-start: 14; }
.ag-slot-start-15 { --ag-slot-start: 15; }
.ag-slot-start-16 { --ag-slot-start: 16; }
.ag-slot-start-17 { --ag-slot-start: 17; }
.ag-slot-start-18 { --ag-slot-start: 18; }
.ag-slot-start-19 { --ag-slot-start: 19; }
.ag-slot-start-20 { --ag-slot-start: 20; }
.ag-slot-start-21 { --ag-slot-start: 21; }
.ag-slot-start-22 { --ag-slot-start: 22; }
.ag-slot-start-23 { --ag-slot-start: 23; }
.ag-slot-start-24 { --ag-slot-start: 24; }
.ag-slot-start-25 { --ag-slot-start: 25; }
.ag-slot-start-26 { --ag-slot-start: 26; }
.ag-slot-start-27 { --ag-slot-start: 27; }
.ag-slot-start-28 { --ag-slot-start: 28; }
.ag-slot-start-29 { --ag-slot-start: 29; }
.ag-slot-start-30 { --ag-slot-start: 30; }
.ag-slot-start-31 { --ag-slot-start: 31; }
.ag-slot-start-32 { --ag-slot-start: 32; }
.ag-slot-start-33 { --ag-slot-start: 33; }
.ag-slot-start-34 { --ag-slot-start: 34; }
.ag-slot-start-35 { --ag-slot-start: 35; }
.ag-slot-start-36 { --ag-slot-start: 36; }
.ag-slot-start-37 { --ag-slot-start: 37; }
.ag-slot-start-38 { --ag-slot-start: 38; }
.ag-slot-start-39 { --ag-slot-start: 39; }
.ag-slot-start-40 { --ag-slot-start: 40; }
.ag-slot-start-41 { --ag-slot-start: 41; }
.ag-slot-start-42 { --ag-slot-start: 42; }
.ag-slot-start-43 { --ag-slot-start: 43; }
.ag-slot-start-44 { --ag-slot-start: 44; }
.ag-slot-start-45 { --ag-slot-start: 45; }
.ag-slot-start-46 { --ag-slot-start: 46; }
.ag-slot-start-47 { --ag-slot-start: 47; }
.ag-slot-start-48 { --ag-slot-start: 48; }
.ag-slot-start-49 { --ag-slot-start: 49; }
.ag-slot-start-50 { --ag-slot-start: 50; }
.ag-slot-start-51 { --ag-slot-start: 51; }
.ag-slot-start-52 { --ag-slot-start: 52; }
.ag-slot-start-53 { --ag-slot-start: 53; }
.ag-slot-start-54 { --ag-slot-start: 54; }
.ag-slot-start-55 { --ag-slot-start: 55; }
.ag-slot-start-56 { --ag-slot-start: 56; }
.ag-slot-start-57 { --ag-slot-start: 57; }
.ag-slot-start-58 { --ag-slot-start: 58; }
.ag-slot-start-59 { --ag-slot-start: 59; }
.ag-slot-start-60 { --ag-slot-start: 60; }
.ag-slot-start-61 { --ag-slot-start: 61; }
.ag-slot-start-62 { --ag-slot-start: 62; }
.ag-slot-start-63 { --ag-slot-start: 63; }
.ag-slot-start-64 { --ag-slot-start: 64; }
.ag-slot-start-65 { --ag-slot-start: 65; }
.ag-slot-start-66 { --ag-slot-start: 66; }
.ag-slot-start-67 { --ag-slot-start: 67; }
.ag-slot-start-68 { --ag-slot-start: 68; }
.ag-slot-start-69 { --ag-slot-start: 69; }
.ag-slot-start-70 { --ag-slot-start: 70; }
.ag-slot-start-71 { --ag-slot-start: 71; }
.ag-slot-start-72 { --ag-slot-start: 72; }

.ag-slot-span-1 { --ag-slot-span: 1; }
.ag-slot-span-2 { --ag-slot-span: 2; }
.ag-slot-span-3 { --ag-slot-span: 3; }
.ag-slot-span-4 { --ag-slot-span: 4; }
.ag-slot-span-5 { --ag-slot-span: 5; }
.ag-slot-span-6 { --ag-slot-span: 6; }
.ag-slot-span-7 { --ag-slot-span: 7; }
.ag-slot-span-8 { --ag-slot-span: 8; }
.ag-slot-span-9 { --ag-slot-span: 9; }
.ag-slot-span-10 { --ag-slot-span: 10; }
.ag-slot-span-11 { --ag-slot-span: 11; }
.ag-slot-span-12 { --ag-slot-span: 12; }
.ag-slot-span-13 { --ag-slot-span: 13; }
.ag-slot-span-14 { --ag-slot-span: 14; }
.ag-slot-span-15 { --ag-slot-span: 15; }
.ag-slot-span-16 { --ag-slot-span: 16; }
.ag-slot-span-17 { --ag-slot-span: 17; }
.ag-slot-span-18 { --ag-slot-span: 18; }
.ag-slot-span-19 { --ag-slot-span: 19; }
.ag-slot-span-20 { --ag-slot-span: 20; }
.ag-slot-span-21 { --ag-slot-span: 21; }
.ag-slot-span-22 { --ag-slot-span: 22; }
.ag-slot-span-23 { --ag-slot-span: 23; }
.ag-slot-span-24 { --ag-slot-span: 24; }
.ag-slot-span-25 { --ag-slot-span: 25; }
.ag-slot-span-26 { --ag-slot-span: 26; }
.ag-slot-span-27 { --ag-slot-span: 27; }
.ag-slot-span-28 { --ag-slot-span: 28; }
.ag-slot-span-29 { --ag-slot-span: 29; }
.ag-slot-span-30 { --ag-slot-span: 30; }
.ag-slot-span-31 { --ag-slot-span: 31; }
.ag-slot-span-32 { --ag-slot-span: 32; }
.ag-slot-span-33 { --ag-slot-span: 33; }
.ag-slot-span-34 { --ag-slot-span: 34; }
.ag-slot-span-35 { --ag-slot-span: 35; }
.ag-slot-span-36 { --ag-slot-span: 36; }
.ag-slot-span-37 { --ag-slot-span: 37; }
.ag-slot-span-38 { --ag-slot-span: 38; }
.ag-slot-span-39 { --ag-slot-span: 39; }
.ag-slot-span-40 { --ag-slot-span: 40; }
.ag-slot-span-41 { --ag-slot-span: 41; }
.ag-slot-span-42 { --ag-slot-span: 42; }
.ag-slot-span-43 { --ag-slot-span: 43; }
.ag-slot-span-44 { --ag-slot-span: 44; }
.ag-slot-span-45 { --ag-slot-span: 45; }
.ag-slot-span-46 { --ag-slot-span: 46; }
.ag-slot-span-47 { --ag-slot-span: 47; }
.ag-slot-span-48 { --ag-slot-span: 48; }
.ag-slot-span-49 { --ag-slot-span: 49; }
.ag-slot-span-50 { --ag-slot-span: 50; }
.ag-slot-span-51 { --ag-slot-span: 51; }
.ag-slot-span-52 { --ag-slot-span: 52; }
.ag-slot-span-53 { --ag-slot-span: 53; }
.ag-slot-span-54 { --ag-slot-span: 54; }
.ag-slot-span-55 { --ag-slot-span: 55; }
.ag-slot-span-56 { --ag-slot-span: 56; }
.ag-slot-span-57 { --ag-slot-span: 57; }
.ag-slot-span-58 { --ag-slot-span: 58; }
.ag-slot-span-59 { --ag-slot-span: 59; }
.ag-slot-span-60 { --ag-slot-span: 60; }
.ag-slot-span-61 { --ag-slot-span: 61; }
.ag-slot-span-62 { --ag-slot-span: 62; }
.ag-slot-span-63 { --ag-slot-span: 63; }
.ag-slot-span-64 { --ag-slot-span: 64; }
.ag-slot-span-65 { --ag-slot-span: 65; }
.ag-slot-span-66 { --ag-slot-span: 66; }
.ag-slot-span-67 { --ag-slot-span: 67; }
.ag-slot-span-68 { --ag-slot-span: 68; }
.ag-slot-span-69 { --ag-slot-span: 69; }
.ag-slot-span-70 { --ag-slot-span: 70; }
.ag-slot-span-71 { --ag-slot-span: 71; }
.ag-slot-span-72 { --ag-slot-span: 72; }
