/* Scoped to the daily checklist; shared semester UI owns its surrounding navigation. */
.ss { --ss-paper: var(--sm-surface, #fff); --ss-ink: var(--sm-ink, #383443); --ss-muted: var(--sm-muted, #706b7b); --ss-line: var(--sm-line, #e8e5ed); color: var(--ss-ink); max-width: 1150px; margin: 0 auto; }
.ss *, .ss *::before, .ss *::after { box-sizing: border-box; }
.ss button, .ss input, .ss textarea, .ss select { font: inherit; }
.ss button, .ss summary, .ss input[type=checkbox], .ss-task-copy label { cursor: pointer; }
.ss button:disabled { cursor: default; opacity: .4; }
.ss button:focus-visible, .ss input:focus-visible, .ss select:focus-visible, .ss textarea:focus-visible, .ss summary:focus-visible { outline: 3px solid #77699f; outline-offset: 3px; }
.ss-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.ss-eyebrow { color: var(--ss-muted); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; margin: 0 0 10px !important; }
.ss h1 { font: 600 38px/1.1 'Segoe UI', sans-serif; margin: 0 0 12px; }
.ss-heading > div > p:last-child { font-size: 13px; color: var(--ss-muted); margin: 0; }
.ss-timezone { font-size: 11px; color: var(--ss-muted); margin-top: 12px; }
.ss-day-nav { display: flex; align-items: center; gap: 20px; padding: 25px 30px; border: 1px solid var(--ss-line); background: var(--sm-subtle, #faf8ff); border-radius: 12px; }
.ss-day-title { flex: 1; }
.ss-day-title > span { display: block; font-size: 11px; color: var(--ss-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
.ss-day-title h2 { font: 600 28px/1.2 'Segoe UI', sans-serif; margin: 0 0 8px; }
.ss-day-title small { color: var(--ss-muted); font-size: 11px; }
.ss-arrow { border: 1px solid var(--ss-line); border-radius: 50%; width: 40px; height: 40px; flex: 0 0 40px; background: var(--sm-subtle, #faf8ff); color: var(--ss-muted); font-size: 20px !important; }
.ss-today, .ss-action { border: 1px solid var(--ss-line); border-radius: 6px; color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); padding: 10px 16px; font-size: 12px !important; }
.ss-today:hover, .ss-action:hover { background: var(--sm-subtle, #faf8ff); }
.ss-notice { padding: 12px 16px; border-radius: 7px; font-size: 13px; margin: 16px 0; background: var(--sm-subtle, #faf8ff); }
.ss-notice.error { color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); border: 1px solid var(--ss-line); }
.ss-notice[hidden] { display: none; }
.ss-calendar-note { color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); padding: 11px 15px; border-radius: 6px; font-size: 12px; line-height: 1.5; margin: 16px 0 0; }
.ss-progress { display: flex; align-items: center; gap: 30px; padding: 25px 3px; }
.ss-progress > div:first-child { min-width: 235px; }
.ss-progress strong { font-size: 19px; }
.ss-progress strong span { font-weight: 400; font-size: 13px; color: var(--ss-muted); }
.ss-progress small { display: block; font-size: 11px; color: var(--ss-muted); margin-top: 6px; }
.ss-progress-track { background: var(--sm-subtle, #faf8ff); height: 7px; border-radius: 8px; flex: 1; overflow: hidden; }
.ss-progress-track > span { display: block; height: 100%; background: var(--sm-subtle, #faf8ff); border-radius: inherit; transition: width .25s; }
.ss-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr); gap: 25px; align-items: start; }
.ss-checklist { display: grid; gap: 14px; }
.ss-task { border: 1px solid var(--ss-line); border-left: 4px solid var(--sm-purple, #6e56cf); border-radius: 9px; background: var(--ss-paper); overflow: hidden; }
.ss-task-main { display: flex; align-items: flex-start; gap: 15px; padding: 20px 18px; }
.ss-task input[type=checkbox] { accent-color: var(--ss-muted); width: 22px; height: 22px; margin: 4px 0 0; flex: 0 0 22px; }
.ss-task-copy { flex: 1; min-width: 0; }
.ss-task-copy label { display: block; line-height: 1.5; }
.ss-course-tag { font-size: 11px; color: var(--sm-purple, #6e56cf); display: block; font-weight: 600; letter-spacing: .8px; margin-bottom: 5px; }
.ss-task-copy strong { font: 600 20px/1.2 'Segoe UI', sans-serif; overflow-wrap: anywhere; }
.ss-task-copy p { font-size: 13px; color: var(--ss-muted); line-height: 1.55; margin: 8px 0 5px; }
.ss-task-copy small { display: block; font-size: 11px; color: var(--ss-muted); line-height: 1.6; }
.ss-state { font-size: 11px; color: var(--ss-muted); padding: 5px 7px; background: var(--sm-subtle, #faf8ff); border-radius: 4px; flex: 0 0 auto; white-space: nowrap; }
.ss-state.done { color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); }
.ss-state.unfinished, .ss-state.skipped { color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); }
.ss-task.done { background: var(--sm-subtle, #faf8ff); }
.ss-task.done .ss-task-copy strong { color: var(--ss-muted); }
.ss-task.done .ss-course-tag { opacity: .65; }
.ss-coming { font-size: 11px; line-height: 1.5; color: var(--ss-muted); margin-top: 10px; }
.ss-condition { color: var(--ss-muted); }
.ss-later { color: var(--ss-muted); }
.ss-task-options { border-top: 1px solid var(--ss-line); }
.ss-task-options > summary { list-style: none; color: var(--ss-muted); font-size: 11px; padding: 9px 18px 9px 55px; }
.ss-task-options > summary::before { content: '+ '; }
.ss-task-options[open] > summary::before { content: '− '; }
.ss-options-body { padding: 8px 18px 17px 55px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; }
.ss-options-body label { color: var(--ss-muted); font-size: 11px; display: grid; gap: 6px; flex: 1 1 180px; }
.ss-options-body select, .ss-options-body textarea { border: 1px solid var(--ss-line); border-radius: 5px; padding: 8px; color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); font-size: 11px; width: 100%; min-width: 0; }
.ss-options-body textarea { resize: vertical; }
.ss-note-field { flex-basis: 100% !important; }
.ss-small-button { color: var(--ss-muted); background: var(--sm-subtle, #faf8ff); border: 1px solid var(--ss-line); border-radius: 5px; padding: 7px 10px; font-size: 11px !important; }
.ss-small-button:hover { background: var(--sm-subtle, #faf8ff); }
.ss-course-link { background: none; border: 0; color: var(--ss-muted); font-size: 11px !important; padding: 8px; }
.ss-conditional-section { margin-top: 18px; border: 1px dashed var(--ss-line); padding: 16px; border-radius: 8px; }
.ss-conditional-section > summary { font-size: 12px; color: var(--ss-muted); }
.ss-conditional-section > p { font-size: 11px; color: var(--ss-muted); line-height: 1.6; margin: 12px 0; }
.ss-conditional-section .ss-task { margin-top: 12px; }
.ss-catchup { border: 1px solid var(--ss-line); border-radius: 9px; background: var(--sm-subtle, #faf8ff); padding: 23px; }
.ss-catchup-heading { border-bottom: 1px solid var(--ss-line); padding-bottom: 18px; margin-bottom: 16px; }
.ss-catchup-heading .ss-eyebrow { color: var(--ss-muted); }
.ss-catchup h2 { font: 600 24px/1.4 'Segoe UI', sans-serif; color: var(--ss-muted); margin: 0 0 8px; }
.ss-catchup-heading small { color: var(--ss-muted); font-size: 11px; }
.ss-catchup-intro { font-size: 12px; line-height: 1.7; color: var(--ss-muted); margin: 0 0 18px; }
.ss-catchup-empty { text-align: center; padding: 20px 5px; }
.ss-catchup-empty > span { color: var(--ss-muted); font: 30px Georgia, serif; }
.ss-catchup-empty h3 { color: var(--ss-muted); font: 600 17px/1.4 'Segoe UI', sans-serif; margin: 14px 0; }
.ss-catchup-empty p { color: var(--ss-muted); font-size: 11px; line-height: 1.7; margin: 0; }
.ss-backlog-group { border-top: 1px solid var(--ss-line); }
.ss-backlog-group > summary { display: flex; align-items: baseline; gap: 8px; padding: 15px 0; list-style: none; }
.ss-backlog-group > summary strong { font: 600 16px/1.3 'Segoe UI', sans-serif; flex: 1; }
.ss-backlog-group > summary > span:last-child { color: var(--ss-muted); font-size: 11px; white-space: nowrap; }
.ss-backlog-dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 7px; }
.ss-backlog-dates > div { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--ss-line); }
.ss-backlog-dates > div > span { flex: 1; min-width: 0; }
.ss-backlog-dates strong { color: var(--ss-muted); font-size: 11px; font-weight: 500; }
.ss-backlog-dates small { display: block; color: var(--ss-muted); font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; margin-top: 4px; }
.ss-backlog-dates .ss-small-button { flex: 0 0 auto; font-size: 11px !important; }
.ss-footnote { font-size: 11px; line-height: 1.8; color: var(--ss-muted); margin: 20px 0; }
.ss-loading { color: var(--ss-muted); padding: 30px; font-size: 13px; }
@media (max-width: 1000px) { .ss-layout { grid-template-columns: 1fr; } .ss-catchup { margin-bottom: 20px; } }
@media (max-width: 600px) {
  .ss-heading { flex-direction: column; gap: 5px; } .ss-timezone { margin: 0; font-size: 11px; }
  .ss h1 { font-size: 32px; } .ss-day-nav { gap: 10px; padding: 18px 14px; flex-wrap: wrap; }
  .ss-day-title { min-width: 150px; text-align: center; } .ss-day-title h2 { font-size: 22px; }
  .ss-today { flex-basis: 100%; margin: 4px 40px 0; } .ss-arrow { width: 35px; height: 35px; flex-basis: 35px; }
  .ss-progress { gap: 15px; } .ss-progress > div:first-child { min-width: 0; flex: 1; } .ss-progress-track { flex: 0 0 30%; }
  .ss-task-main { padding: 17px 12px; gap: 10px; flex-wrap: wrap; } .ss-task-copy { flex-basis: calc(100% - 32px); }
  .ss-state { margin-left: 32px; } .ss-task-copy strong { font-size: 18px; }
  .ss-task-options > summary { padding-left: 44px; } .ss-options-body { padding-left: 44px; }
  .ss-conditional-section { padding: 12px; } .ss-catchup { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) { .ss-progress-track > span { transition: none; } }

/* Checklist shares the surrounding dashboard's surfaces and violet controls. */
.ss h1 { font-size: clamp(28px, 3vw, 34px); letter-spacing: -.8px; }
.ss-eyebrow { color: var(--sm-purple-hover); font-size: 11px; letter-spacing: 1.25px; }
.ss-timezone { font-size: 11px; }
.ss-day-nav { background: var(--ss-paper); border-radius: 12px; padding: 22px 26px; }
.ss-day-title h2 { font-size: 25px; color: var(--ss-ink); }
.ss-day-title > span, .ss-course-tag { color: #6550b9; }
.ss-day-title small { font-size: 12px; }
.ss-arrow { background: var(--ss-paper); border-radius: 8px; color: var(--sm-purple); }
.ss-arrow:hover { background: var(--sm-soft); border-color: var(--sm-accent-border); }
.ss-today, .ss-action { background: var(--sm-purple); color: white; border-color: var(--sm-purple); border-radius: 8px; font-size: 13px !important; }
.ss-today:hover, .ss-action:hover { background: var(--sm-purple-hover); }
.ss-progress-track { background: var(--sm-soft); }
.ss-progress-track > span { background: var(--sm-purple); }
.ss-progress small { font-size: 12px; }
.ss-task { background: var(--ss-paper); border-left-width: 3px; border-left-color: var(--sm-accent-border); border-radius: 12px; }
.ss-task-copy strong { font-size: 18px; color: var(--ss-ink); }
.ss-course-tag { font-size: 11px; }
.ss-state { background: var(--sm-subtle); color: var(--ss-muted); font-size: 11px; border: 1px solid var(--ss-line); border-radius: 6px; }
.ss-state.done { background: var(--sm-soft); color: #6550b9; border-color: var(--sm-accent-border); }
.ss-task.done { background: var(--sm-subtle); }
.ss-task.done .ss-task-copy strong { color: var(--ss-muted); }
.ss-state.unfinished, .ss-state.skipped { background: var(--ss-paper); border-style: dashed; }
.ss-task-options { border-color: var(--ss-line); }
.ss-task-options > summary { font-size: 12px; color: #6550b9; }
.ss-options-body label, .ss-options-body select, .ss-options-body textarea { font-size: 12px; }
.ss-small-button { color: #6550b9; background: var(--ss-paper); border-color: var(--sm-accent-border); border-radius: 7px; font-size: 12px !important; }
.ss-small-button:hover { background: var(--sm-soft); }
.ss-course-link { color: #6550b9; font-size: 12px !important; }
.ss-catchup { background: var(--ss-paper); border-color: var(--ss-line); border-radius: 12px; }
.ss-catchup h2 { font-size: 20px; color: var(--ss-ink); letter-spacing: -.4px; }
.ss-catchup-heading .ss-eyebrow { color: var(--sm-purple-hover); }
.ss-catchup-intro { color: var(--ss-muted); font-size: 13px; }
.ss-backlog-dot { background: var(--sm-purple) !important; }
.ss-backlog-group > summary strong { font-size: 14px; color: var(--ss-ink); }
.ss-backlog-dates strong { font-size: 12px; color: var(--ss-ink); }
.ss-backlog-dates small { font-size: 11px; }
.ss-backlog-dates .ss-small-button { font-size: 11px !important; white-space: normal; }
.ss-footnote { font-size: 12px; }
.ss-calendar-note, .ss-notice { color: #6550b9; background: var(--sm-soft); }
.ss-notice.error { color: #a23d48; background: #fff3f3; border-color: #f0d6da; }
@media (max-width: 600px) { .ss-day-nav { padding: 18px 14px; } .ss h1 { font-size: 30px; } .ss-day-title h2 { font-size: 22px; } .ss-task-copy strong { font-size: 17px; } }
