@import "https://fonts.googleapis.com/css2?family=Patrick+Hand&display=swap";
@import "https://fonts.googleapis.com/css2?family=Pacifico&display=swap";
:root{--breakpoint-mobile:480px;--breakpoint-tablet:768px;--breakpoint-desktop:979px}.trainingCalendar .tcTopScroll{margin-bottom:4px;overflow:auto hidden}.trainingCalendar .tcTopScrollSpacer{height:1px}.trainingCalendar .tcTimelineScroll{background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:72vh;overflow:hidden auto}.trainingCalendar .tcBottomScroll{margin-top:4px;overflow:auto hidden}.trainingCalendar .tcTopScroll,.trainingCalendar .tcBottomScroll,.trainingCalendar .tcTimelineScroll{scrollbar-width:auto;scrollbar-color:#cbd5e1 #f1f5f9}.trainingCalendar .tcTopScroll::-webkit-scrollbar{width:12px;height:12px}.trainingCalendar .tcBottomScroll::-webkit-scrollbar{width:12px;height:12px}.trainingCalendar .tcTimelineScroll::-webkit-scrollbar{width:12px;height:12px}.trainingCalendar .tcTopScroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px}.trainingCalendar .tcBottomScroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px}.trainingCalendar .tcTimelineScroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px}.trainingCalendar .tcTopScroll::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f1f5f9;border-radius:6px}.trainingCalendar .tcBottomScroll::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f1f5f9;border-radius:6px}.trainingCalendar .tcTimelineScroll::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f1f5f9;border-radius:6px}.trainingCalendar .tcTopScroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.trainingCalendar .tcBottomScroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.trainingCalendar .tcTimelineScroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.trainingCalendar .tcTimeline{position:relative}.trainingCalendar .tcHead{z-index:3;background:#f1f5f9;border-bottom:1px solid #cbd5e1;display:flex;position:sticky;top:0}.trainingCalendar .tcHeadLabel{z-index:4;color:#334155;background:#f1f5f9;border-right:1px solid #cbd5e1;flex:none;justify-content:space-between;align-items:center;gap:.25rem;padding:0 .4rem;font-size:.75rem;font-weight:700;display:flex;position:sticky;left:0}.trainingCalendar .tcHeadLabel .tcHeadLabelText{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.trainingCalendar .tcHeadLabel .tcLabelResizer{cursor:col-resize;z-index:6;width:9px;height:100%;position:absolute;top:0;right:-4px}.trainingCalendar .tcHeadLabel .tcLabelResizer:after{content:"";background:#cbd5e1;border-radius:1px;width:2px;position:absolute;top:20%;bottom:20%;left:50%;transform:translate(-50%)}.trainingCalendar .tcHeadLabel .tcLabelResizer:hover:after,.trainingCalendar .tcHeadLabel .tcLabelResizer:active:after{background:#0369a1;top:0;bottom:0}.trainingCalendar .tcHeadLabel .tcNav{color:#0369a1;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:5px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:1rem;font-weight:700;line-height:1;display:flex}.trainingCalendar .tcHeadLabel .tcNav:hover{background:#e0f2fe}.trainingCalendar .tcHeadTime{flex:none;position:relative}.trainingCalendar .tcBand{color:#475569;white-space:nowrap;border-left:1px solid #cbd5e1;align-items:center;padding-left:5px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:0;overflow:hidden}.trainingCalendar .tcTick{color:#94a3b8;border-left:1px solid #e2e8f0;flex-direction:column;justify-content:center;align-items:center;font-size:.6rem;line-height:1.05;display:flex;position:absolute;overflow:hidden}.trainingCalendar .tcTick span{white-space:nowrap;padding:0 2px}.trainingCalendar .tcTick .tcTickSub{color:#b0bec5;font-size:.52rem}.trainingCalendar .tcTick .tcTickNum{border-radius:4px}.trainingCalendar .tcTick .tcTickNum.tcTickNum--school{color:#075985;background:#38bdf838;font-weight:600}.trainingCalendar .tcTick .tcTickNum.tcTickNum--public{color:#475569;background:#94a3b852;font-weight:600}.trainingCalendar .tcTick.tcMajor{color:#475569;border-left:1px solid #cbd5e1;font-weight:600}.trainingCalendar .tcTick.tcWeekend{color:#cbd5e1;background:#f8fafc}.trainingCalendar .tcRows{position:relative}.trainingCalendar .tcGrid{z-index:0;pointer-events:none;position:absolute;top:0;bottom:0}.trainingCalendar .tcGridLine{border-left:1px solid #f1f5f9;width:0;position:absolute;top:0;bottom:0}.trainingCalendar .tcGridLine.tcGridMajor{border-left:1px solid #dbe2ea}.trainingCalendar .tcWeekendBand{background:#fafbfc;position:absolute;top:0;bottom:0}.trainingCalendar .tcToday{z-index:1;border-left:2px solid #ef4444;width:0;position:absolute;top:0;bottom:0}.trainingCalendar .tcRow{z-index:1;border-bottom:1px solid #f1f5f9;align-items:center;display:flex;position:relative}.trainingCalendar .tcRow:hover .tcRowLabel{background:#eff6ff}.trainingCalendar .tcRowLabel{z-index:2;color:#0f172a;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-right:1px solid #e2e8f0;flex:none;align-items:center;height:100%;padding:0 .6rem;font-size:.75rem;display:flex;position:sticky;left:0;overflow:hidden}.trainingCalendar .tcRowLabelBtn{cursor:pointer;-webkit-user-select:none;user-select:none;gap:.25rem}.trainingCalendar .tcRowLabelBtn:hover{background:#eff6ff}.trainingCalendar .tcRowLabelBtn.tcOpen{background:#eff6ff;font-weight:600}.trainingCalendar .tcRowLabelBtn .tcCaret{color:#0369a1;flex:none;width:.9rem;font-size:.7rem}.trainingCalendar .tcRowLabelBtn .tcRowLabelText{white-space:nowrap;text-overflow:ellipsis;flex:auto;overflow:hidden}.trainingCalendar .tcRowTrack{flex:none;height:100%;position:relative}.trainingCalendar .tcModFlagged{background:#fef2f2}.trainingCalendar .tcModFlagged .tcModCode{color:#b91c1c}.trainingCalendar .tcModRow{background:#fcfdff;border-bottom:1px solid #f1f5f9;align-items:stretch;display:flex;position:relative}.trainingCalendar .tcModLabel{z-index:7;color:#475569;white-space:normal;background:#f8fafc;border-right:1px solid #e2e8f0;flex-direction:column;flex:none;justify-content:center;align-items:flex-start;gap:.1rem;height:100%;padding:.25rem .5rem .25rem 1.6rem;font-size:.7rem;line-height:1.25;display:flex;position:sticky;left:0;overflow:hidden}.trainingCalendar .tcModCode{color:#0f172a;font-weight:700}.trainingCalendar .tcModName{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.trainingCalendar .tcModRow .tcRowTrack{align-self:stretch;height:auto}.trainingCalendar .tcModMuted .tcModLabel{color:#94a3b8;font-style:italic}.trainingCalendar .tcModBar{opacity:.85;border-radius:3px;position:absolute;top:5px;bottom:5px;box-shadow:inset 0 0 0 1px #0000001f}.trainingCalendar .tcBar{cursor:grab;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;padding:0 5px;display:flex;position:absolute;top:5px;bottom:5px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.trainingCalendar .tcBarDragging{cursor:grabbing;opacity:.9;z-index:5;overflow:visible;box-shadow:0 2px 8px #00000047,inset 0 0 0 1px #0003}.trainingCalendar .tcDragBadge{color:#fff;white-space:nowrap;pointer-events:none;background:#0f172a;border-radius:4px;padding:1px 5px;font-size:.62rem;font-weight:700;position:absolute;top:-18px;right:0}.trainingCalendar .tcBarLabel{color:#fff;white-space:nowrap;text-shadow:0 1px 1px #00000059;font-size:.65rem;font-weight:700}.trainingCalendar .tcPaxWrap{flex:none;margin-left:5px;display:inline-flex;position:relative}.trainingCalendar .tcPaxPill{white-space:nowrap;color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:3px;padding:3px 6px;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex}.trainingCalendar .tcPaxPill:hover{border-color:#94a3b8}.trainingCalendar .tcPaxWarn{color:#92400e;background:#fef3c7;border-color:#f59e0b}.trainingCalendar .tcPaxOver{color:#991b1b;background:#fee2e2;border-color:#ef4444}.trainingCalendar .tcPaxHard{font-weight:800}.trainingCalendar .tcPaxLock{font-size:.6rem}.trainingCalendar .tcPaxPop{z-index:1000;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-direction:column;gap:6px;width:150px;padding:10px;display:flex;position:fixed;box-shadow:0 6px 20px #0000002e}.trainingCalendar .tcPaxPop label{color:#475569;justify-content:space-between;align-items:center;gap:6px;font-size:.7rem;font-weight:600;display:flex}.trainingCalendar .tcPaxPop input[type=number]{border:1px solid #cbd5e1;border-radius:4px;width:64px;padding:3px 5px;font-size:.72rem}.trainingCalendar .tcPaxHardToggle{justify-content:flex-start!important}.trainingCalendar .tcPaxHardToggle input{margin-right:4px}.trainingCalendar .tcPaxPopBtns{justify-content:flex-end;gap:6px;margin-top:2px;display:flex}.trainingCalendar .tcPaxPopBtns button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:5px;padding:3px 8px;font-size:.68rem}.trainingCalendar .tcPaxPopBtns .tcPaxSave{color:#fff;background:#2563eb;border-color:#2563eb}.trainingCalendar .tcPaxFields{gap:8px;display:flex}.trainingCalendar .tcPaxFields input[type=number]{flex:1;min-width:0}.trainingCalendar .tcPaxInlineHard{align-items:center;gap:6px;flex-direction:row!important}.trainingCalendar .tcSessionRow{z-index:1;background:#fbfcfe;border-bottom:1px solid #f1f5f9;align-items:center;display:flex;position:relative}.trainingCalendar .tcSessionLabel{z-index:2;color:#64748b;background:#fbfcfe;border-right:1px solid #e2e8f0;flex:none;justify-content:space-between;align-items:center;gap:.25rem;height:100%;padding:0 .4rem 0 1.4rem;font-size:.66rem;font-weight:600;display:flex;position:sticky;left:0}.trainingCalendar .tcSessAdd{color:#0369a1;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:4px;flex:none;padding:1px 5px;font-size:.62rem;font-weight:700}.trainingCalendar .tcSessAdd:hover{border-color:#94a3b8}.trainingCalendar .tcSessMuted{color:#94a3b8;font-size:.66rem;font-style:italic;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.trainingCalendar .tcSessCell{cursor:pointer;border:0;border-radius:3px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:3px;bottom:3px;box-shadow:inset 0 0 0 1px #0000001f}.trainingCalendar .tcSessSpecial{box-shadow:inset 0 0 0 2px #0f172a}.trainingCalendar .tcSessCellWide{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 1px #ffffffeb}.trainingCalendar .tcSessCellWide:hover{z-index:5}.trainingCalendar .tcSessCode{color:#fff;text-shadow:0 1px 1px #0006;font-size:.6rem;font-weight:800}.trainingCalendar .tcSessPop{z-index:1000;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-direction:column;gap:6px;width:210px;padding:10px;display:flex;position:fixed;box-shadow:0 6px 20px #0000002e}.trainingCalendar .tcSessPop label{color:#475569;flex-direction:column;gap:3px;font-size:.7rem;font-weight:600;display:flex}.trainingCalendar .tcSessPop select,.trainingCalendar .tcSessPop input{border:1px solid #cbd5e1;border-radius:4px;padding:3px 5px;font-size:.72rem}.trainingCalendar .tcSessPopBtns{justify-content:flex-end;gap:6px;margin-top:2px;display:flex}.trainingCalendar .tcSessPopBtns button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:5px;padding:3px 8px;font-size:.68rem}.trainingCalendar .tcSessPopBtns .tcSessSave{color:#fff;background:#2563eb;border-color:#2563eb}.trainingCalendar .tcLegend{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex-wrap:wrap;align-items:flex-start;gap:.35rem .9rem;margin-bottom:.6rem;padding:.4rem .6rem;font-size:.68rem;display:flex}.trainingCalendar .tcLegendGroup{flex-wrap:wrap;align-items:center;gap:.3rem;min-width:min-content;display:flex}.trainingCalendar .tcLegendHead{flex-basis:100%}.trainingCalendar .tcLegendBreak{flex-basis:100%;height:0;margin:0}.trainingCalendar .tcLegendTitle{color:#334155;font-weight:700}.trainingCalendar .tcLegendItem{align-items:center;gap:3px;display:inline-flex}.trainingCalendar .tcLegendSwatch{border-radius:3px;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000026}.trainingCalendar .tcLegendMarker{color:#0f172a;font-weight:800}.trainingCalendar .tcLegendSep{background:#cbd5e1;align-self:stretch;width:1px;margin:0 .2rem}.trainingCalendar .tcLegendDraggable{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1px 6px}.trainingCalendar .tcLegendDraggable:hover{border-color:#94a3b8}.trainingCalendar .tcLegendDraggable:active{cursor:grabbing}.trainingCalendar .tcSessHint{color:#94a3b8;font-style:italic;font-weight:400}.trainingCalendar .tcSessDropOver{background:#2563eb14;box-shadow:inset 0 0 0 2px #93c5fd}.trainingCalendar .tcModSpan{opacity:.22;border-radius:3px;position:absolute;top:7px;bottom:7px}.trainingCalendar .tcModHandle{z-index:3;cursor:ew-resize;background:#0f172a8c;border-radius:2px;width:6px;position:absolute;top:4px;bottom:4px}.trainingCalendar .tcModHandle:hover{background:#0f172ad9}.trainingCalendar .tcModGroup{position:relative}.trainingCalendar .tcDayBand{z-index:3;cursor:pointer;color:#fff;border:0;justify-content:center;align-items:center;height:100%;padding:0;display:flex;position:absolute;top:0;box-shadow:inset 0 0 0 1px #0003}.trainingCalendar .tcDayBandText{writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;text-shadow:0 1px 1px #00000059;font-size:.62rem;font-weight:700}.trainingCalendar .tcDropCol{z-index:6;pointer-events:none;background:#2563eb1f;border-left:2px solid #2563eb;border-right:2px solid #2563eb;height:100%;position:absolute;top:0}.trainingCalendar .tcSessTile{border-radius:4px;align-items:stretch;display:flex;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #0000002e}.trainingCalendar .tcSessTileDragging{z-index:5;transition:none;box-shadow:inset 0 0 0 1px #00000059,0 2px 8px #00000040}.trainingCalendar .tcSessTileBody{min-width:0;color:inherit;font:inherit;cursor:grab;white-space:nowrap;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:.3rem;padding:0 .2rem;display:flex;overflow:hidden}.trainingCalendar .tcSessTileTime{color:#fff;text-shadow:0 1px 2px #000000a6;font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:600}.trainingCalendar .tcSessHandle{cursor:ew-resize;touch-action:none;background:#00000047;flex:0 14px;min-width:4px;position:relative}.trainingCalendar .tcSessHandle:after{content:"";pointer-events:none;border-left:1px solid #ffffffd9;border-right:1px solid #ffffffd9;position:absolute;inset:35% 4px}.trainingCalendar .tcSessHandle:before{content:"";width:5px;position:absolute;top:0;bottom:0}.trainingCalendar .tcSessHandle:hover,.trainingCalendar .tcSessHandle:active{background:#0000008c}.trainingCalendar .tcSessHandleStart:before{left:-5px}.trainingCalendar .tcSessHandleEnd:before{right:-5px}.trainingCalendar .tcZoomWrap{color:#475569;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:600;display:flex}.trainingCalendar .tcZoom{border:1px solid #cbd5e1;border-radius:6px;display:inline-flex;overflow:hidden}.trainingCalendar .tcZoom button{cursor:pointer;background:#fff;border:0;border-left:1px solid #e2e8f0;padding:.4rem .7rem;font-size:.8rem}.trainingCalendar .tcZoom button:first-child{border-left:0}.trainingCalendar .tcZoom button.active{color:#fff;background:#0369a1}.trainingCalendar .tcZoom button:hover:not(.active){background:#f1f5f9}.trainingCalendar .tcViewControls{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.5rem;margin-bottom:.75rem;padding:.65rem 1rem;display:flex}.tcMarquee{pointer-events:none;z-index:3;background:#2563eb2e;border-left:1px solid #2563eb8c;border-right:1px solid #2563eb8c;position:absolute;top:0;bottom:0}.tcRowTrackMarquee{cursor:crosshair}.tcLegendCustom{border:1px dashed #94a3b8;border-radius:4px;padding:0 .35rem}.tcModLabelClickable{cursor:pointer}.tcModLabelClickable:hover{background:#f0f9ff}
