:root { color-scheme: light; }
:root.dark { color-scheme: dark; }
html { scroll-behavior: smooth; }
button, a, input, select, textarea, [role="button"] { touch-action: manipulation; }
button, select, [role="button"] { min-height: 44px; }
:focus-visible { outline: 3px solid #3b74f6 !important; outline-offset: 3px; }
.workspace-intro { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0 8px; }
.workspace-intro h2 { font-size: clamp(23px, 3vw, 32px); font-weight: 800; letter-spacing: -.04em; margin: 5px 0; }
.workspace-intro p { color: #64748b; font-size: 13px; }
.workspace-intro .eyebrow { font-size: 10px; letter-spacing: .16em; color: #2557eb; font-weight: 700; }
.workspace-intro a { color: #2557eb; font-size: 13px; font-weight: 600; white-space: nowrap; padding: 10px; }
.dark .workspace-intro p { color: #94a3b8; }
.dark .workspace-intro a, .dark .workspace-intro .eyebrow { color: #9cbefe; }
#global-timetable-body td { padding-top: 14px; padding-bottom: 14px; }
#global-timetable-body tr:focus-visible { outline-offset: -3px; }
#details-modal > div, #import-modal > div { max-height: 90dvh; overflow-y: auto; }
#toast { bottom: max(24px, env(safe-area-inset-bottom)); }
button:disabled { opacity: .5; cursor: wait; }
.calendar-event { min-height: 0; }
@media (max-width: 767px) {
  .workspace-intro { align-items: flex-start; flex-direction: column; gap: 4px; }
  .workspace-intro a { padding-left: 0; }
  #toast { bottom: calc(84px + env(safe-area-inset-bottom)); left: 16px; right: 16px; max-width: none; }
  #mobile-timeline-container .flex-1 { min-width: 0; overflow-wrap: anywhere; }
  input, textarea, select { font-size: 16px !important; }
  #content-dashboard > :first-child { max-height: 340px; }
  header > div { gap: 8px !important; padding-left: 12px !important; padding-right: 12px !important; }
  #data-status-badge { display: none; }
  #btn-open-import { white-space: nowrap; flex-shrink: 0; }
  #mobile-day-pills .day-pill { min-width: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  #desktop-grid-wrapper { display: block !important; overflow: visible !important; }
  #desktop-grid-wrapper > div { min-width: 0 !important; }
  #mobile-timeline-container, #mobile-day-pills, #toast { display: none !important; }
  #content-dashboard > div { height: auto !important; }
  #content-dashboard .overflow-y-auto { overflow: visible !important; }
}
