.schedule-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-md);
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-size: var(--fs-lg);
    font-weight: 600;
    color: var(--text-primary);
}

.schedule-timeline {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--sp-xs);
}

.sched-event {
    display: flex;
    align-items: center;
    gap: var(--sp-md);
    padding: var(--sp-sm) var(--sp-md);
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition: all var(--duration) var(--ease);
}

.sched-event:hover {
    border-color: var(--accent-dim);
}

.sched-event.disabled {
    opacity: 0.5;
}

.sched-time {
    min-width: 70px;
    text-align: right;
    flex-shrink: 0;
}

.sched-hour {
    font-family: var(--font-mono);
    font-size: var(--fs-lg);
    font-weight: 700;
    color: var(--accent);
    display: block;
}

.sched-rec {
    font-size: var(--fs-xs);
    color: var(--text-muted);
}

.sched-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--text-disabled);
    flex-shrink: 0;
}

.sched-dot.active {
    background: var(--accent);
    box-shadow: 0 0 6px var(--accent-glow);
}

.sched-body {
    flex: 1;
    min-width: 0;
}

.sched-name {
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-primary);
    display: block;
}

.sched-detail {
    font-size: var(--fs-xs);
    color: var(--text-muted);
}

/* Week view */
.schedule-week-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: var(--sp-sm);
    flex: 1;
}

.week-day {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.week-day.today {
    border-color: var(--accent);
    box-shadow: 0 0 8px var(--accent-glow);
}

.week-day-header {
    padding: var(--sp-sm);
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text-secondary);
    text-align: center;
    border-bottom: 1px solid var(--border);
    background: var(--bg-tertiary);
}

.week-day.today .week-day-header {
    color: var(--accent);
}

.week-day-events {
    flex: 1;
    overflow-y: auto;
    padding: var(--sp-xs);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.week-empty {
    color: var(--text-disabled);
    font-size: var(--fs-xs);
    text-align: center;
    padding: var(--sp-md);
}

.week-event {
    padding: 2px 4px;
    border-radius: var(--radius-sm);
    background: var(--accent-dim);
    font-size: var(--fs-xs);
    line-height: 1.3;
    cursor: default;
}

.week-event.disabled {
    opacity: 0.4;
}

.week-event-time {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--accent);
    margin-right: 4px;
}

.week-event-name {
    color: var(--text-primary);
}
