.day-wrap { width:100%; max-width:none; margin:0; padding:18px 24px 36px; font-size:.92rem; background:var(--card); }
.crumb { color:var(--text-secondary); font-size:.8rem; }
.day-head { display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px; margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.day-head h1 { font-family:var(--font-reading); font-size:1.45rem; }
#kindday { color:var(--text-secondary); font-size:.83rem; }
.day-navigation { display:flex; align-items:center; gap:4px; padding:0; border:0; }
.day-wrap a { color:var(--primary-dark); text-underline-offset:3px; }
.day-navigation a { min-height:var(--ctl-h); min-width:var(--ctl-h); justify-content:center; display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:var(--ctl-r); text-decoration:none; }
.day-navigation label { display:flex; align-items:center; gap:8px; }
.day-navigation input { font:var(--ctl-font); min-height:var(--ctl-h); border-radius:var(--ctl-r); color:var(--text); background:var(--card); padding:0 8px; border:1px solid var(--border); max-width:100%; }
.day-section { padding:14px 0; border-bottom:1px solid var(--border); }
.day-section h2 { font-size:1rem; font-weight:700; margin-bottom:8px; }
.day-section h3 { font-size:.94rem; font-weight:700; margin:8px 0 4px; }
.day-columns {display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:36px;align-items:start;}
.day-columns:not(:has(.day-agenda)) {grid-template-columns:minmax(0,1fr);}
.day-lesson {display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:18px 0;border-top:1px solid var(--border);}
.day-lesson .lesson-heading{margin-bottom:4px}
.lesson-heading {min-width:0;}
.lesson-heading h3 {margin:3px 0 6px;font-size:1.05rem;overflow-wrap:anywhere;}
.lesson-subject {font-size:.8rem;color:var(--text-secondary);margin:0;}
.lesson-subject a {text-decoration:none;}
.lesson-materials {display:flex;gap:6px 16px;flex-wrap:wrap;align-items:center;max-width:370px;flex-shrink:0;}
.lesson-materials a {display:inline-flex;align-items:center;min-height:var(--pill-h);font:var(--pill-font);font-weight:600;}
.lesson-materials a:first-child {background:var(--action);color:var(--on-action);padding:0 14px;min-height:var(--pill-h);display:inline-flex;align-items:center;border-radius:var(--ctl-r);text-decoration:none;font-weight:700;}
.day-agenda .day-list li {display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--border);}
.activity-time {font-size:.83rem;white-space:nowrap;}
.visually-hidden {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.day-wrap [hidden] {display:none;}
@media(max-width:1050px) {.day-lesson{align-items:start;flex-direction:column;gap:8px;}.lesson-materials{max-width:none;}}
@media(max-width:760px) {.day-columns{grid-template-columns:minmax(0,1fr);gap:0;}}
.day-list { list-style:none; padding:0; margin:0; }
.day-list li { padding:7px 0; }
.day-item-title { font-weight:700; overflow-wrap:anywhere; }
.day-meta,.day-empty { color:var(--text-secondary); font-size:.83rem; line-height:1.5; overflow-wrap:anywhere; }
.day-course { display:grid; grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) minmax(170px,2fr); gap:8px 16px; padding:8px 0; border-bottom:1px solid var(--border); align-items:baseline; }
.day-course:last-child { border-bottom:0; }
.day-course h3 { margin:0; }
.day-teachers { padding:10px 0; border-bottom:1px solid var(--border); }
.day-teachers summary { min-height:var(--ctl-h); align-content:center; cursor:pointer; font-weight:700; }
.day-teachers summary:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
.day-room { color:var(--text-secondary); margin-left:8px; }
.day-note { padding:8px 0; line-height:1.5; max-width:80ch; overflow-wrap:anywhere; }
.day-note strong { font-size:.85rem; }
.day-error { color:var(--text); padding:12px 0; font-size:.88rem; }
#day-loading { padding-top:12px; color:var(--text-secondary); }
@media (max-width:600px) { .day-wrap {padding:12px 16px 28px;} .day-course {grid-template-columns:1fr; gap:3px;} .day-navigation {gap:4px 12px;} .day-head {gap:4px 10px;} .day-head #selected-date {flex-basis:100%;} }

/* Today row internals: folded Lessons/More, test badge. */
.lesson-line{display:flex;gap:12px;align-items:baseline;margin-top:8px}
.lesson-line-label{flex:0 0 78px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#6b625b)}
.lesson-line .lesson-materials{flex:1;display:flex;flex-wrap:wrap;gap:6px 14px}
@media(max-width:640px){.lesson-line{flex-direction:column;gap:4px}.lesson-line-label{flex:none}}

.lesson-fold{margin-top:6px}.lesson-fold summary{cursor:pointer;font-size:.86rem;font-weight:700;color:var(--primary,#1f4f7a);list-style:none;display:inline-flex;align-items:center;gap:6px}
.lesson-fold summary::-webkit-details-marker{display:none}.lesson-fold summary::before{content:'▸';font-size:.8em}.lesson-fold[open] summary::before{content:'▾'}
.lesson-fold .count{font-size:.72rem;font-weight:700;background:var(--card-alt,#eee);border-radius:10px;padding:1px 7px;color:var(--text-secondary,#555)}
.lesson-fold .lesson-materials{margin:6px 0 0 14px;display:flex;flex-wrap:wrap;gap:6px 14px}
.lesson-fold.more summary{color:var(--muted,#6b625b);font-weight:600}

.test-badge{display:inline-block;margin-left:10px;vertical-align:middle;font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:10px;background:var(--card-alt,#eef1f0);color:var(--text-secondary,#555)}
.test-badge.soon{background:var(--card-alt,#eef1f0);color:var(--text-secondary,#555)}

/* Announced exams. One card per exam; an exam spanning two units nests both. */
.exam-card{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin:14px 0;background:var(--card)}
.exam-card.past{opacity:.6}
.exam-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.exam-head h3{margin:2px 0 4px;font-size:1.1rem}
.exam-subject{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}
.exam-when{text-align:right;white-space:nowrap}
.exam-rel{display:block;font-weight:800;font-size:1rem;color:var(--text)}
.exam-card.now .exam-rel{color:var(--text)}
.exam-date{display:block;font-size:.8rem;color:var(--text-secondary)}
.exam-scope{margin:8px 0 0;padding-left:18px;font-size:.9rem;color:var(--text-secondary)}
.exam-scope li{margin:2px 0}
.exam-note{margin:8px 0 0;padding:8px 12px;background:var(--card-alt);border-radius:8px;font-size:.86rem}
.exam-empty{margin:10px 0 0;font-size:.88rem;color:var(--text-secondary)}
.exam-card .day-lesson{border-top:1px solid var(--border);margin-top:10px;padding-top:12px}
.exam-card .day-lesson:first-of-type{margin-top:12px}
@media(max-width:640px){.exam-head{flex-direction:column}.exam-when{text-align:left}}
.exam-card .test-badge{display:none}

/* One header line: date stepper, title, facts, Today. */
.day-head h1 { margin:0; }
.day-facts { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:0; font-size:.83rem; color:var(--text-secondary); }
.day-facts > span:not(:first-child)::before { content:'·'; margin-right:10px; color:var(--border); }
.day-facts > span:empty { display:none; }
.day-head #today { font-size:.86rem; }
.app-nav-menu-meta { border-top:1px solid var(--border); margin-top:6px; padding-top:8px; display:flex; flex-direction:column; gap:8px; }
.app-nav-menu-meta .app-build-badge { font-size:.75rem; color:var(--text-secondary); }
.app-nav-menu-meta .theme-control { display:flex; align-items:center; gap:8px; font-size:.85rem; }
@media (max-width:600px) { .day-head #today { margin-left:0; } }
.day-head #today { font-weight:700; padding-left:2px; }
@media (max-width:700px) {
  /* Dot separators look broken once the facts wrap; fall back to plain spacing. */
  .day-facts > span:not(:first-child)::before { content:none; }
  .day-facts { gap:2px 12px; }
}

/* Exam card material: teacher's handouts vs what StudyPal made, one line each. */
.mat-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}
.mat-label{flex:0 0 120px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.mat-label small{display:none} /* 'start here', 'keep closed', the teacher again: the chips already say it */
.mat-body{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mat-chip{display:inline-flex;align-items:center;min-height:var(--pill-h);padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);font:var(--pill-font);text-decoration:none;color:var(--text);white-space:nowrap}
.mat-chip:hover{border-color:var(--primary);color:var(--primary)}
.mat-chip.go{background:var(--action);color:var(--on-action);border-color:var(--action);font-weight:700}
.mat-chip.doc{background:var(--card-alt);border-style:dashed}
.mat-chip.quiet{opacity:.8}
.mat-none{font-size:.84rem;color:var(--text-secondary);font-style:italic}
/* Closed it is one more pill in the row. Open, it takes its own full-width row so
   the pills beside it do not get shoved out of line by the expanded list. */
.mat-more{display:inline-block;align-self:flex-start}
.mat-more[open]{flex:1 0 100%;width:100%;margin-top:2px}
.mat-more[open] .mat-body{margin:6px 0 0;padding-left:12px;border-left:2px solid var(--border)}
.mat-more summary{cursor:pointer;font:var(--pill-font);color:var(--primary);min-height:var(--pill-h);display:inline-flex;align-items:center;gap:5px;padding:0 12px;border:1px dashed var(--primary);border-radius:999px;list-style:none}
.mat-more summary::-webkit-details-marker{display:none}
.mat-more summary::after{content:'\25BE';font-size:.7em}
.mat-more[open] summary::after{content:'\25B4'}
@media(max-width:640px){.mat-line{flex-direction:column;gap:4px}.mat-label{flex:none}}
.rest-fold{margin-top:18px;border-top:1px solid var(--border);padding-top:10px}
.rest-fold summary{cursor:pointer;font:var(--ctl-font);font-weight:700;color:var(--text-secondary);list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:var(--ctl-h)}
.rest-fold summary::-webkit-details-marker{display:none}
.rest-fold summary::before{content:'▸'}.rest-fold[open] summary::before{content:'▾'}
.rest-fold .count{font-size:.72rem;background:var(--card-alt);border-radius:10px;padding:1px 7px}

/* Control sizes come from palette.css (--ctl-*, --pill-*). */
.mat-chip.go{font-weight:700}
.day-head #today{min-height:var(--ctl-h);display:inline-flex;align-items:center;font:var(--ctl-font)}

.app-nav .app-nav-add{padding:0 14px!important;min-height:var(--ctl-h)!important;height:var(--ctl-h);align-self:center;font-size:.875rem}

/* Focus bar: one subject at a time. Small, clear pills. */
.focus-bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.focus-pill{display:inline-flex;align-items:baseline;gap:6px;min-height:var(--pill-h);padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font:var(--ctl-font);cursor:pointer}
.focus-pill span{font-weight:400;font-size:.75rem;color:var(--text-secondary)}
.focus-pill[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.focus-pill[aria-pressed=true] span{color:#fff;opacity:.85}
.focus-pill.all{border-style:dashed}
.focus-pill.done{opacity:.6}

/* Buttons that read cleanly: every lesson link is the same pill (first one filled),
   text centred, no wrapping inside a pill; focus pills centred too. */
.lesson-materials{gap:8px}
.lesson-materials a{min-height:var(--pill-h);padding:0 12px;border:1px solid var(--primary);border-radius:999px;background:var(--card);color:var(--primary-dark);text-decoration:none;white-space:nowrap;justify-content:center}
.lesson-materials a:first-child{border-radius:999px;border-color:var(--action)}
.focus-pill{align-items:center;justify-content:center;padding:0 12px;line-height:1.2}
.focus-pill b{white-space:nowrap}.focus-pill span{white-space:nowrap}

/* Homework status row */
.hw-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:.85rem}
.hw-select{font:var(--ctl-font);font-weight:500;min-height:max(32px,calc(var(--ctl-h) - 4px));padding:0 8px;border:1px solid var(--border);border-radius:var(--ctl-r);background:var(--card);color:var(--text)}
.hw-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-weight:700;font-size:.8rem;background:var(--card-alt);color:var(--text-secondary)}
.hw-badge.submitted{background:var(--primary);color:#fff}
.hw-badge.done{background:var(--primary-light);color:var(--primary-dark)}
.hw-badge.fixed{background:var(--card-alt);color:var(--warning)}
.hw-date{display:inline-flex;gap:6px;align-items:center}
.hw-date input{font:inherit;min-height:32px;padding:0 6px;border:1px solid var(--border);border-radius:var(--ctl-r)}
.hw-date button{font:var(--ctl-font);min-height:32px;padding:0 12px;border-radius:var(--ctl-r);border:1px solid var(--primary);background:var(--card);color:var(--primary-dark);cursor:pointer}
.hw-msg{color:var(--text-secondary)}

/* Day arrows carry the day name, so they read as 'go to that day', not 'go back'. */
.day-navigation a#prev,.day-navigation a#next{padding:0 10px;white-space:nowrap;font:var(--ctl-font)}

/* Handed-in homework steps back: muted, compact, no due badge. */
.day-lesson.is-done{opacity:.62}
.day-lesson.is-done .day-meta{display:none}
.day-lesson.is-done h3{font-size:1rem}
/* A parent can remove a note added by mistake. */
.note-remove{float:right;min-width:var(--pill-h);min-height:var(--pill-h);padding:0;border:1px solid var(--border);border-radius:var(--ctl-r);background:var(--card);color:var(--text-secondary);font-size:1rem;line-height:1;cursor:pointer}
.note-remove:hover{border-color:var(--primary);color:var(--primary)}

/* Focused on one subject: hide the calendar column only where it would stack below. */
@media(max-width:760px){.day-agenda.focus-off{display:none}}

/* Long lesson titles wrap inside their chip instead of pushing the page wider. */
.mat-chip{max-width:100%;white-space:normal;text-align:left;height:auto}

/* Every pixel earns its place. */
.day-columns .day-section{border-bottom:0}            /* rule under the last card drew a line to nowhere */
.exam-card.now .exam-date{display:none}               /* "today · Thursday, Oct 1" repeats the page date */
.exam-head h3{font-family:var(--font-head);font-weight:600}
.exam-rel{font:var(--ctl-font)}
.day-head h1{font-family:var(--font-head)}
@media(max-width:640px){.exam-head .day-meta{display:none}} /* source line: nobody reads it on a phone */
