body { padding: 40px 20px; background-color: var(--bg-body); color: var(--text-color); }
.timeline-viewer-container { max-width: 1000px; margin: 0 auto; background: var(--bg-card); padding: 30px; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.viewer-header { text-align: center; margin-bottom: 25px; }
.viewer-header h1 { margin: 0 0 10px 0; color: var(--primary-color); font-size: 24px; }
.viewer-header p { margin: 0; color: var(--text-muted); font-size: 16px; font-weight: 500;}
.timeline-table th:last-child, .timeline-table td:last-child { border-right: none; }
.timeline-table tbody tr:hover { background-color: transparent !important; }
.tag-midterm:hover, .tag-final:hover, .tag-rescheduled:hover { background-color: transparent !important; }
.tag-midterm td, .tag-final td, .tag-rescheduled td { background-color: transparent !important; }
.viewer-header { display: flex; flex-direction: column; align-items: center; border-bottom: 2px dashed rgba(0,0,0,0.06); padding-bottom: 25px; margin-bottom: 25px; }
.viewer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.viewer-brand img { width: 36px; height: auto; filter: drop-shadow(0 2px 4px rgba(148, 40, 58, 0.2)); }
.viewer-stats { display: flex; gap: 12px; margin-top: 15px; flex-wrap: wrap; justify-content: center; }
.stat-pill { background: var(--bg-elevated); padding: 8px 18px; border-radius: 20px; font-size: 0.85rem; color: var(--text-secondary); font-weight: 500; border: 1px solid var(--border-color); box-shadow: var(--shadow-sm); display: flex; align-items: center; gap: 6px; }
.stat-pill strong { color: var(--accent-primary); font-size: 1rem; }
.viewer-footer { text-align: center; margin-top: 35px; padding-top: 20px; border-top: 1px solid var(--border-color); font-size: 0.8rem; color: var(--text-muted); }
