.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@keyframes progress-animation{0%{stroke-dashoffset:283}}@media (max-width: 768px){.dashboard-card{margin-bottom:1rem}.statistics-grid{grid-template-columns:1fr}}.unread-communication{background-color:#eff6ff;border-color:#93c5fd}.hover-lift:hover{transform:translateY(-2px);transition:transform .2s ease-in-out}.calendar-container .fc{font-family:inherit}.calendar-container .fc-toolbar{margin-bottom:1rem}.calendar-container .fc-toolbar-title{font-size:1.25rem;font-weight:600;color:#1f2937}.calendar-container .fc-button{background-color:#10b981;border-color:#10b981;color:#fff;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.calendar-container .fc-button:hover{background-color:#059669;border-color:#059669}.calendar-container .fc-button:focus{box-shadow:0 0 0 3px #10b9811a}.calendar-container .fc-button-active{background-color:#047857;border-color:#047857}.calendar-container .fc-event{border-radius:.375rem;border:none;padding:.25rem .5rem;margin:.125rem 0;font-size:.75rem;line-height:1.2}.calendar-container .fc-event-title{font-weight:500}.calendar-container .fc-event-time{font-weight:600;font-size:.75rem}.calendar-container .fc-event.status-completed{opacity:.8;border-left:4px solid #10b981}.calendar-container .fc-event.status-in_progress{border-left:4px solid #3b82f6;animation:pulse 2s infinite}.calendar-container .fc-event.status-cancelled{opacity:.6;text-decoration:line-through;border-left:4px solid #ef4444}.calendar-container .fc-event.status-not_started{border-left:4px solid #6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.calendar-container .fc-daygrid-day{min-height:100px}.calendar-container .fc-daygrid-day-number{font-weight:600;color:#374151}.calendar-container .fc-day-today{background-color:#f0fdf4!important}.calendar-container .fc-day-today .fc-daygrid-day-number{background-color:#10b981;color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin:.25rem}.calendar-container .fc-timegrid-slot{height:2rem}.calendar-container .fc-timegrid-axis{font-size:.75rem;color:#6b7280}.calendar-container .fc-non-business{background-color:#f9fafb}@media (max-width: 768px){.calendar-container .fc-toolbar{flex-direction:column;gap:.5rem}.calendar-container .fc-toolbar-chunk{display:flex;justify-content:center}.calendar-container .fc-button{padding:.375rem .75rem;font-size:.75rem}.calendar-container .fc-event{font-size:.625rem}}.statistics-chart{position:relative}.progress-bar{transition:width .3s ease-in-out}.progress-bar-container{background-color:#e5e7eb;border-radius:9999px;overflow:hidden}.today-course-item{transition:all .2s ease-in-out}.today-course-item:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.subject-color-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.filter-form select{transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.filter-form select:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.export-button{transition:all .2s ease-in-out}.export-button:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}
