.my-course { cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .15s; }
.my-course:hover { border-color:var(--primary); box-shadow:0 3px 10px rgba(4,120,87,.12); transform:translateY(-1px); }
.slot-timeline-card { margin-bottom:16px; }
.timeline-help { margin-left:8px; color:var(--text-tertiary); font-size:11px; font-weight:400; }
.slot-timeline-scroll { overflow:auto; max-height:620px; border:1px solid var(--border); border-radius:var(--radius-sm); background:#f8fafc; }
.slot-timeline { position:relative; min-width:520px; margin-left:64px; background:repeating-linear-gradient(to bottom,#fff 0,#fff 19px,#f1f5f9 20px); }
.slot-timeline-track { position:absolute; inset:0 18px 0 8px; }
.slot-timeline-tick { position:absolute; left:-64px; right:0; height:1px; border-top:1px solid #dbe3ec; pointer-events:none; }
.slot-timeline-tick.half { border-top-style:dashed; border-top-color:#e8edf3; }
.slot-timeline-tick span { position:absolute; left:7px; top:-7px; width:46px; color:var(--text-tertiary); font-size:10px; text-align:right; }
.slot-timeline-block { position:absolute; left:0; right:0; min-height:8px; z-index:2; border:1px solid #6ee7b7; border-left:4px solid var(--primary); border-radius:5px; background:linear-gradient(90deg,#ecfdf5,#f0fdfa); cursor:grab; touch-action:none; user-select:none; box-shadow:0 1px 3px rgba(15,23,42,.08); }
.slot-timeline-block:active { cursor:grabbing; z-index:5; }
.slot-timeline-block.has-draft { border-color:#38bdf8; border-left-color:#0284c7; background:#f0f9ff; }
.slot-timeline-content { display:flex; align-items:center; justify-content:space-between; gap:10px; height:100%; min-height:18px; padding:2px 10px; overflow:hidden; }
.slot-timeline-content strong { color:#065f46; font-size:12px; white-space:nowrap; }
.slot-timeline-content span { color:var(--text-secondary); font-size:10px; white-space:nowrap; }
.slot-resize-handle { position:absolute; left:0; width:100%; height:8px; z-index:3; padding:0; border:0; background:transparent; cursor:ns-resize; touch-action:none; }
.slot-resize-handle.top { top:-4px; }
.slot-resize-handle.bottom { bottom:-4px; }
.slot-resize-handle:hover::after { content:''; position:absolute; left:45%; right:45%; top:3px; border-top:2px solid #0284c7; }
.adjustment-log-card { margin-top:18px; }
.adjustment-log-card .card-title { display:flex; justify-content:space-between; align-items:center; }
.adjustment-log-card .card-title span { color:var(--text-tertiary); font-size:11px; font-weight:500; }
.adjustment-log-row { cursor:pointer; }
.adjustment-log-row:hover td { background:#f0fdf4; }
.adjustment-log-row.is-cancelled { opacity:.58; }
.adjustment-log-row.is-cancelled td { text-decoration-color:var(--text-tertiary); }
.status-pill.muted { color:#64748b; background:#e2e8f0; }
.adjustment-detail { margin-top:16px; padding:12px 14px; border:1px solid var(--border-light); border-radius:var(--radius-sm); background:#f8fafc; }
.adjustment-detail p { margin:7px 0; color:var(--text-secondary); font-size:13px; }
.temporary-course-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.schedule-v2-controls{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.schedule-v2-controls label:first-child{display:grid;gap:5px}.switch-row{display:flex;align-items:center;gap:7px}.my-course.is-current-class{outline:3px solid var(--primary);outline-offset:-3px;box-shadow:inset 5px 0 0 var(--primary),0 0 0 2px color-mix(in srgb,var(--primary) 24%,transparent)}
.temporary-course-summary>div,.temporary-target-preview{padding:11px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-muted)}
.temporary-course-summary span{display:block;margin-bottom:4px;color:var(--text-tertiary);font-size:10px}.temporary-course-summary strong{color:var(--text-primary);font-size:13px}
.temporary-target-preview{margin-top:8px;color:var(--text-secondary);font-size:12px}

@media (max-width:600px) {
  .timeline-help { display:block; margin:3px 0 0; }
  .slot-timeline-card .card-title { align-items:flex-start; flex-direction:column; }
  .slot-timeline { min-width:400px; }
  .temporary-course-summary{grid-template-columns:1fr}
}
