.academic-timetable-grid{--academic-timetable-course-category-theory-color:var(--course-category-theory-color);--academic-timetable-course-category-theory-bg:var(--course-category-theory-bg-muted);--academic-timetable-course-category-practice-color:var(--course-category-practice-color);--academic-timetable-course-category-practice-bg:var(--course-category-practice-bg-muted);--academic-timetable-course-category-integrated-color:var(--course-category-integrated-color);--academic-timetable-course-category-integrated-bg:var(--course-category-integrated-bg-muted);--academic-timetable-entry-base-layer:0;--academic-timetable-entry-hover-layer:2;--academic-timetable-slot-layer:1;background:var(--ant-color-bg-container);display:grid;position:relative}.academic-timetable-shell{background:var(--ant-color-bg-container);border:1px solid var(--ant-color-border-secondary);border-radius:var(--radius-block)}.academic-timetable-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:32px;display:flex}.academic-timetable-week-navigator{color:var(--ant-color-text-secondary);flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.academic-timetable-week-stepper{align-items:center;gap:6px;display:inline-flex}.academic-timetable-week-value{color:var(--ant-color-text);text-align:center;white-space:nowrap;min-width:64px;font-size:13px;font-weight:600}.academic-timetable-current-week-dot{background:var(--ant-color-success);box-shadow:0 0 0 3px var(--ant-color-success-bg);border-radius:999px;width:8px;height:8px;display:inline-flex}.academic-timetable-week-range{color:var(--ant-color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.academic-timetable-header-cell,.academic-timetable-period-cell,.academic-timetable-base-cell{border-block-end:1px solid var(--ant-color-border-secondary);border-inline-end:1px solid var(--ant-color-border-secondary)}.academic-timetable-header-cell,.academic-timetable-period-cell{color:var(--ant-color-text-secondary);justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.academic-timetable-header-cell{background:var(--ant-color-fill-quaternary)}.academic-timetable-period-cell{background:var(--ant-color-bg-container)}.academic-timetable-header-corner{background:var(--ant-color-fill-quaternary)}.academic-timetable-header-date{color:var(--ant-color-text-tertiary);font-weight:500}.academic-timetable-base-cell{background:var(--ant-color-bg-container)}.academic-timetable-weekend-cell{background:var(--ant-color-warning-bg)}.academic-timetable-header-cell.academic-timetable-weekend-cell{color:var(--ant-color-warning-text)}.academic-timetable-slot-group{z-index:var(--academic-timetable-slot-layer);flex-direction:column;align-self:stretch;gap:4px;min-height:100%;display:flex;position:relative}.academic-timetable-slot-group-item{flex:auto;min-height:0;display:flex}.academic-timetable-slot-group-item>.academic-timetable-entry{flex:auto}.academic-timetable-entry{--academic-timetable-entry-accent-color:var(--ant-color-primary);--academic-timetable-entry-accent-bg:color-mix(in srgb, var(--ant-color-primary-bg) 66%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--academic-timetable-entry-accent-bg) 72%, transparent) 0%, color-mix(in srgb, var(--academic-timetable-entry-accent-bg) 92%, transparent) 100%);border:1px solid color-mix(in srgb, var(--academic-timetable-entry-accent-color) 20%, transparent);box-shadow:none;color:var(--ant-color-text);cursor:default;text-align:left;min-height:0;z-index:var(--academic-timetable-entry-base-layer);border-radius:0;flex-direction:column;flex:1;justify-content:flex-start;gap:8px;padding:10px 11px;transition:box-shadow .15s,transform .15s;display:flex;position:relative}.academic-timetable-entry:after{background:color-mix(in srgb, var(--ant-color-bg-container) 26%, transparent);border-radius:var(--ant-border-radius-sm);content:"";opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;position:absolute;inset:4px}.academic-timetable-entry:hover{box-shadow:var(--shadow-card-hover);z-index:var(--academic-timetable-entry-hover-layer);transform:translateY(-1px)}.academic-timetable-entry:hover:after{opacity:1;transform:translateY(-1px)}.academic-timetable-entry-inactive{background:linear-gradient(180deg, var(--ant-color-fill-quaternary) 0%, var(--ant-color-fill-tertiary) 100%);border-color:var(--ant-color-border);box-shadow:none}.academic-timetable-entry-semester{box-shadow:none}.academic-timetable-slot-group-stacked{align-self:start;min-height:auto;padding:4px}.academic-timetable-slot-group-stacked .academic-timetable-slot-group-item,.academic-timetable-slot-group-stacked .academic-timetable-entry{flex:none}.academic-timetable-entry-title{margin:0;font-size:.875rem;font-weight:700;line-height:1.35}.academic-timetable-entry-title-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.academic-timetable-course-category-theory{color:var(--academic-timetable-course-category-theory-color)}.academic-timetable-course-surface-theory{--academic-timetable-entry-accent-color:var(--academic-timetable-course-category-theory-color);--academic-timetable-entry-accent-bg:var(--academic-timetable-course-category-theory-bg)}.academic-timetable-course-category-practice{color:var(--academic-timetable-course-category-practice-color)}.academic-timetable-course-surface-practice{--academic-timetable-entry-accent-color:var(--academic-timetable-course-category-practice-color);--academic-timetable-entry-accent-bg:var(--academic-timetable-course-category-practice-bg)}.academic-timetable-course-category-integrated{color:var(--academic-timetable-course-category-integrated-color)}.academic-timetable-course-surface-integrated{--academic-timetable-entry-accent-color:var(--academic-timetable-course-category-integrated-color);--academic-timetable-entry-accent-bg:var(--academic-timetable-course-category-integrated-bg)}.academic-timetable-entry-status-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:absolute;bottom:8px;right:10px}.academic-timetable-entry-badge-cluster{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:inline-flex}.academic-timetable-entry-status{white-space:nowrap;border-radius:999px;padding:.25rem .5rem;font-size:.8125rem;font-weight:600;line-height:1}.academic-timetable-entry-status-default{background:var(--ant-color-primary-bg);color:var(--ant-color-primary)}.academic-timetable-entry-status-active{background:var(--ant-color-success-bg);color:var(--ant-color-success-text)}.academic-timetable-entry-status-inactive{background:var(--ant-color-fill-tertiary);color:var(--ant-color-text-secondary)}.academic-timetable-entry-date{color:var(--ant-color-text-tertiary);white-space:nowrap;font-size:.8125rem;line-height:1.2}.academic-timetable-entry-week-pattern{text-align:right;text-overflow:ellipsis;overflow:hidden}.academic-timetable-entry-main-group,.academic-timetable-entry-center-group,.academic-timetable-entry-footer-group{flex-direction:column;gap:4px;min-height:0;display:flex}.academic-timetable-entry-center-group{flex:auto;justify-content:center}.academic-timetable-entry-footer-group{margin-top:auto}.academic-timetable-entry-class,.academic-timetable-entry-meta{margin:0;line-height:1.4}.academic-timetable-entry-class{color:var(--ant-color-text);text-overflow:ellipsis;font-size:.9375rem;font-weight:700;overflow:hidden}.academic-timetable-entry-meta{color:var(--ant-color-text-secondary);text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}@media (width<=768px){.academic-timetable-slot-group{gap:3px}.academic-timetable-entry-title-wrap{gap:6px}.academic-timetable-entry{padding:8px 10px}}.semester-timetable-query-state{padding:24px}.semester-timetable-query-content{flex-direction:column;display:flex}.semester-timetable-query-panel{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:stretch;display:grid}.semester-timetable-summary{flex-direction:column;justify-content:space-between;gap:24px;min-width:0;padding:24px;display:flex}.semester-timetable-summary-heading{min-width:0}.semester-timetable-summary-eyebrow{color:var(--ant-color-text-tertiary);font-size:12px;font-weight:600;line-height:1.4;display:block}.semester-timetable-summary-title{color:var(--ant-color-text);text-overflow:ellipsis;white-space:nowrap;margin:8px 0 0;font-size:24px;font-weight:700;line-height:1.25;overflow:hidden}.semester-timetable-summary-meta{border-top:1px solid var(--ant-color-border-secondary);grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:16px;display:grid}.semester-timetable-summary-meta-item{min-width:0}.semester-timetable-summary-meta-item span{color:var(--ant-color-text-tertiary);font-size:12px;line-height:1.4;display:block}.semester-timetable-summary-meta-item strong{color:var(--ant-color-text);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:14px;font-weight:600;line-height:1.4;display:block;overflow:hidden}.semester-timetable-controls{background:var(--ant-color-fill-quaternary);flex-direction:column;gap:16px;min-width:280px;padding:24px;display:flex}.semester-timetable-control-field{flex-direction:column;gap:8px;min-width:0;display:flex}.semester-timetable-control-input,.semester-timetable-control-input :where(.ant-select){width:100%}.semester-timetable-control-help{color:var(--ant-color-warning);min-height:18px;font-size:12px;line-height:18px}.semester-timetable-control-help-hidden{visibility:hidden}.semester-timetable-control-action{margin-top:auto}@media (width<=860px){.semester-timetable-query-panel{grid-template-columns:minmax(0,1fr)}.semester-timetable-summary{padding:24px}.semester-timetable-summary-meta{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}}.weekly-timetable-page{flex-direction:column;gap:24px;display:flex}.weekly-timetable-query-state{padding:24px}.weekly-timetable-query-content{grid-template-columns:minmax(0,1fr) minmax(280px,320px);display:grid}.weekly-timetable-summary{flex-direction:column;justify-content:space-between;gap:24px;min-width:0;padding:24px;display:flex}.weekly-timetable-summary-heading{min-width:0}.weekly-timetable-summary-eyebrow{color:var(--ant-color-text-tertiary);font-size:12px;font-weight:600;line-height:1.4;display:block}.weekly-timetable-summary-title{color:var(--ant-color-text);text-overflow:ellipsis;white-space:nowrap;margin:8px 0 0;font-size:24px;font-weight:700;line-height:1.25;overflow:hidden}.weekly-timetable-summary-meta{border-top:1px solid var(--ant-color-border-secondary);grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:16px;display:grid}.weekly-timetable-summary-meta-item{min-width:0}.weekly-timetable-summary-meta-item span{color:var(--ant-color-text-tertiary);font-size:12px;line-height:1.4;display:block}.weekly-timetable-summary-meta-item strong{color:var(--ant-color-text);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:14px;font-weight:600;line-height:1.4;display:block;overflow:hidden}.weekly-timetable-controls{background:var(--ant-color-fill-quaternary);flex-direction:column;gap:16px;min-width:280px;padding:24px;display:flex}.weekly-timetable-control-field{flex-direction:column;gap:8px;min-width:0;display:flex}.weekly-timetable-control-input{width:100%;min-width:0}.weekly-timetable-control-input :where(.ant-select),.weekly-timetable-control-input :where(.ant-input-number),.weekly-timetable-control-input :where(.ant-select-auto-complete){width:100%}.weekly-timetable-control-help{color:var(--ant-color-warning);min-height:18px;font-size:12px;line-height:18px}.weekly-timetable-control-help-hidden{visibility:hidden}.weekly-timetable-control-action{margin-top:auto}.weekly-timetable-query-alert{grid-column:1/-1;padding:0 24px 24px}.weekly-timetable-result{flex-direction:column;gap:16px;display:flex}@media (width<=860px){.weekly-timetable-query-content{grid-template-columns:minmax(0,1fr)}.weekly-timetable-summary{padding:24px}.weekly-timetable-summary-meta{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}}
