/* Four linked calendar scales use the existing lesson frame and native controls. */
.calendar-overview-page .lesson-heading{margin-bottom:12px}.calendar-overview-page .date-title h1{font-size:clamp(28px,2.3vw,38px)}
.overview-board{padding:18px 20px;border:1.5px solid var(--line);border-radius:20px;background:white}
.scale-view{min-width:0;border-radius:12px;scroll-margin-block:20px 110px}.scale-view.explained{outline:3px solid #76590b;outline-offset:6px}
.overview-board h2,.overview-board h3{margin:0;line-height:1.15}.scale-label{font:inherit;font-size:32px;font-weight:950;background:transparent;color:var(--navy);padding:0 4px;border:0;min-height:44px}.scale-label[aria-pressed=true]{color:var(--blue)}.scale-label:hover{background:var(--pale)}
.year-view{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 20px;align-items:start;padding-bottom:12px;border-bottom:1.5px solid var(--line)}.year-summary p{line-height:1.2;font-size:24px;font-weight:900;margin:0}.year-summary .year-number{font-size:50px;line-height:1.2;margin:4px 0}.month-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.month-tiles button{min-width:0;min-height:60px;padding:6px 3px;border:1.5px solid var(--line);border-radius:9px;background:#edf6ff;font-size:16px;font-weight:850;line-height:1.2;color:var(--navy);overflow-wrap:anywhere}.month-tiles button.past{background:#f4effb;border-color:#b8a3d4}.month-tiles button.future{background:#edf8f3;border-color:#8dbbad}.month-tiles button.this-month{border:3px solid var(--blue);background:#e5f2ff}.month-tiles button[aria-pressed=true]{outline:2px solid #76590b;outline-offset:2px}.month-badge{display:flex;align-items:center;justify-content:center;gap:3px;border-radius:5px;background:var(--blue);color:white;font-size:12px;margin:5px 2px 0;padding:2px 0}.past .month-badge{background:#e9def6;color:#503879}.future .month-badge{background:#dcefe8;color:#1b5c49}.calendar-overview-page .direction-arrow{width:14px;height:14px;flex-shrink:0}.calendar-overview-page .past .direction-arrow{transform:rotate(180deg)}.year-notes{grid-column:1/3;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 32px}.year-stats{line-height:1.2;margin:0;text-align:center;font-size:18px;font-weight:850}.leap-note{line-height:1.2;margin:0;text-align:center;color:#44658b;font-size:15px}
.year-connector{height:20px;padding-left:40px}.year-connector img{width:20px;height:20px;transform:rotate(90deg)}
.closer-views{display:grid;grid-template-columns:minmax(0,2.2fr) 26px minmax(0,1.05fr) 26px minmax(0,.9fr);gap:10px;align-items:start}.scale-arrow{width:26px;height:26px;margin-top:9px}.overview-month h3{font-size:25px;margin:6px 0 0}.month-count,.week-count{line-height:1.2;font-size:23px;font-weight:900;margin:4px 0 6px}.overview-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.weekday-header{display:grid;place-items:center;min-width:0;height:28px;font-size:13px;font-weight:850}.month-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--navy);padding:2px;font-size:19px;line-height:1.15}.month-date.past{background:#f0eafb;border-color:#b8a3d4}.month-date.future{background:#e4f5ef;border-color:#8dbbad}.month-date.in-week{border:2px solid #79aeff}.month-date.outside-month{border-style:dashed}.month-date.today{background:var(--blue);color:white;border-color:var(--blue)}.month-date[aria-pressed=true]:not(.today){outline:2px solid #76590b;outline-offset:-2px}.cell-note{font-size:11px;line-height:1.2;font-weight:800}.cross-month-note{font-size:14px;text-align:center;background:#edf6ff;color:#44658b;padding:8px 4px;margin:10px 0 0;border-radius:6px}
.overview-week-list{display:flex;flex-direction:column;gap:4px}.week-date{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;min-height:44px;padding:7px 6px;border:1px solid transparent;border-radius:7px;font-size:14px;text-align:left;color:var(--navy);line-height:1.2}.week-date.past{background:#f0eafb}.week-date.future{background:#e4f5ef}.week-date.today{grid-template-columns:minmax(0,1fr) auto auto;background:var(--blue);color:white}.week-date[aria-pressed=true]:not(.today){border:2px solid #76590b}.week-date span:nth-child(2){white-space:nowrap}.week-badge{justify-self:end;background:white;color:var(--blue);font-size:11px;font-weight:850;padding:1px 5px;border-radius:4px}
.overview-day.explained{outline:none}.overview-day.explained .overview-day-tile{outline:3px solid #76590b;outline-offset:4px}.overview-day-tile{display:block;color:var(--navy);padding:0 0 14px;margin-top:48px;border-width:3px;border-radius:17px;min-width:0;cursor:pointer}.overview-day-tile .board-weekday{display:block;font-size:22px;padding:24px 3px 14px;overflow-wrap:anywhere;border-radius:13px 13px 0 0}.overview-day-tile .board-day{display:block;font-size:clamp(74px,7.5vw,118px);line-height:1.15;margin:0}.overview-day-tile .board-month-year{display:block;font-size:19px;margin:6px 3px 10px;line-height:1.3;overflow-wrap:anywhere}.day-badge{display:inline-flex;align-items:center;gap:6px;background:var(--blue);color:white;border-radius:6px;font-size:16px;font-weight:900;padding:4px 9px}.overview-day-tile::before,.overview-day-tile::after{height:32px;width:13px;top:-17px}
.month-lengths{font-size:23px;font-weight:900;text-align:center;line-height:1.3;border-radius:10px;background:#edf6ff;padding:12px 8px;margin:16px 0 0}#date-error:empty{display:none}#date-error{font-size:17px;color:#78500e;margin:16px 0 0}
.overview-practice{margin:18px 0;padding:20px;border:1.5px solid var(--line);border-radius:15px;background:white;text-align:center}.overview-practice h2{font-size:24px;margin:0}.overview-practice .date-answers{max-width:520px;margin:16px auto}.overview-practice .date-feedback{font-size:20px;font-weight:850;margin:16px 0 0;scroll-margin-bottom:110px}.overview-practice .date-feedback:empty{display:none}.calendar-overview-page .lesson-footer{margin-top:8px}
.date-legend{display:flex;justify-content:center;gap:6px;margin:8px 0;font-size:12px;font-weight:850}.date-legend>span{display:flex;align-items:center;gap:3px;padding:3px 5px;border-radius:5px}.date-legend .past{background:#f0eafb;color:#503879}.date-legend .future{background:#e4f5ef;color:#1b5c49}.date-legend .today{background:var(--blue);color:white}.date-cue{display:flex;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:850;line-height:1.2;min-height:14px}.month-date.past .date-cue{color:#503879}.month-date.future .date-cue{color:#1b5c49}.overview-day-tile.past{background:#f4effb;border-color:#b8a3d4}.overview-day-tile.future{background:#edf8f3;border-color:#8dbbad}.overview-day-tile.today{border-color:var(--blue)}.overview-day-tile.past .board-weekday,.overview-day-tile.past .day-badge{background:#e9def6;color:#503879}.overview-day-tile.future .board-weekday,.overview-day-tile.future .day-badge{background:#dcefe8;color:#1b5c49}.day-badge .direction-arrow{width:18px;height:18px}
@media(max-width:1399px){.year-view{grid-template-columns:120px minmax(0,1fr);gap:12px}.year-summary .year-number{font-size:48px}.year-summary p{font-size:22px}.month-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.month-tiles button{font-size:15px;min-height:48px}.closer-views{grid-template-columns:minmax(0,1.5fr) 24px minmax(0,1fr);gap:12px}.overview-day{grid-column:3}.closer-views>.scale-arrow:nth-of-type(2){grid-column:3;justify-self:center;transform:rotate(90deg);margin:0}.overview-day-tile{width:180px;margin:28px auto 0}.scale-label{font-size:28px}.overview-board{padding:20px 16px}}
@media(max-width:900px){.year-view{grid-template-columns:minmax(0,1fr);text-align:center}.year-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px}.year-summary .year-number{font-size:40px;margin:0}.year-notes{grid-column:1}.month-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.closer-views{grid-template-columns:minmax(0,1fr)}.closer-views>.scale-arrow{justify-self:center;transform:rotate(90deg);margin:0}.overview-day,.closer-views>.scale-arrow:nth-of-type(2){grid-column:1}.overview-week,.overview-day{border-top:1px solid var(--line);padding-top:8px}.overview-week-list{max-width:400px;margin:auto}.week-date{font-size:18px;padding:8px 12px}.week-badge{grid-column:auto;justify-self:end}.week-date.today{grid-template-columns:minmax(0,1fr) auto auto}.overview-day-tile{max-width:220px;width:100%;margin:30px auto 0}.overview-day-tile .board-weekday{font-size:28px}.overview-day-tile .board-day{font-size:110px}.overview-day-tile .board-month-year{font-size:22px}.month-lengths{font-size:21px}.year-connector{padding-left:20px}}
@media(max-width:640px){.month-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-board{padding:18px 12px}.scale-label{font-size:27px}.month-tiles button{min-height:56px;font-size:14px}.month-badge{font-size:11px}.month-date{min-height:48px;font-size:22px}.weekday-header{font-size:13px}.year-stats{font-size:17px;line-height:1.4}.year-summary p{font-size:22px}.year-summary .year-number{font-size:38px}.cross-month-note{font-size:14px}.overview-practice{padding:16px 12px}.overview-practice h2{font-size:22px}.overview-practice .date-answers button{font-size:22px}.week-date{font-size:16px}.month-lengths{font-size:20px;padding:12px 6px}.month-date.today{padding-inline:0}.cell-note{font-size:10px}}

.overview-month{container-type:inline-size}
@container(max-width:370px){.overview-calendar .date-cue .cue-word{display:none}.overview-calendar .today .date-cue .cue-word{display:inline}}
@media(max-width:640px){.overview-calendar .date-cue .direction-arrow{width:16px;height:16px}.month-date.today .date-cue{font-size:10px}}
