.student-calendar-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 22px;display:grid}.student-calendar-tabs button{border:1px solid var(--line,#d6d5d5);color:#171a19;cursor:pointer;background:#fff;min-height:44px;padding:10px;font-size:11px}.student-calendar-tabs button.active{color:#fff;background:#171a19;border-color:#171a19}.student-week,.calendar-availability,.annual-calendar{background:#fff;border:1px solid #e5e2dc;width:100%;max-width:100%}.week-toolbar{border-bottom:1px solid #e5e2dc;justify-content:space-between;align-items:center;padding:18px;display:flex}.week-toolbar button{cursor:pointer;background:#fff;border:1px solid #d6d5d5;width:44px;height:44px;font-size:24px}.week-toolbar div{text-align:center;gap:5px;display:grid}.week-toolbar span{letter-spacing:1.5px;color:#777;font-size:8px}.week-toolbar b{font-size:14px}.student-week-list article{border-bottom:1px solid #ebe8e2;border-left:4px solid #bb9846;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:18px;display:grid}.student-week-list article.attended,.student-week-list article.recovery_completed{background:#f7fbf8;border-left-color:#47725e}.student-week-list article.lost{background:#fbf7f5;border-left-color:#9d5b45}.student-week-list article.holiday{background:#f4f8fc;border-left-color:#47739d}.student-week-list article.checkout_pending{background:#fffaf0;border-left-color:#bb9846}.student-week-list time{color:#666;gap:5px;font-size:10px;display:grid}.student-week-list time b{text-transform:capitalize;color:#171a19}.student-week-list div>span{color:#4d6f60;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px;font-size:8px;font-weight:800;display:inline-block}.student-week-list h3{margin:0 0 5px;font-size:15px}.student-week-list p,.student-week-list small{color:#747474;font-size:9px}.calendar-help{background:#f6f1e6;border-bottom:1px solid #e1d4b4;padding:17px 20px;font-size:10px;line-height:1.6}.calendar-help b{color:var(--forest);font-size:11px;display:block}.calendar-availability .month-toolbar{margin-top:0}.annual-calendar{overflow:hidden}.annual-month-toolbar{background:#fbfaf7;border-bottom:1px solid #e5e2dc;grid-template-columns:minmax(72px,1fr) minmax(160px,2fr) minmax(72px,1fr);align-items:center;gap:8px;min-height:84px;padding:14px 16px;display:grid}.annual-month-toolbar>div{text-align:center;min-width:0}.annual-month-toolbar>div>span{color:#747a76;letter-spacing:1.5px;font-size:8px;font-weight:800;display:block}.annual-month-toolbar h2{color:var(--forest);margin:5px 0 0;font:500 24px Georgia,serif}.annual-month-toolbar button{min-width:44px;min-height:44px;color:var(--forest);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:5px;display:flex}.annual-month-toolbar button:last-child{justify-content:flex-end}.annual-month-toolbar button span{font-size:27px;line-height:1}.annual-month-toolbar button small{text-overflow:ellipsis;color:#6e746f;text-transform:capitalize;max-width:76px;font-size:9px;overflow:hidden}.annual-month-toolbar button:disabled{opacity:.24;cursor:default}.annual-legend{color:#5f6661;border-bottom:1px solid #e5e2dc;flex-wrap:wrap;gap:14px;padding:14px 18px;font-size:9px;display:flex}.annual-legend span{align-items:center;gap:7px;display:flex}.annual-legend i{background:#fff;border:1px solid #0000;border-radius:50%;width:16px;height:16px;position:relative}.annual-legend .today-day{border:2px solid var(--forest)}.annual-legend .personal-day{background:#efe5c9}.annual-legend .personal-day:after{content:"";background:#9a792a;border-radius:50%;width:5px;height:5px;position:absolute;bottom:2px;left:5px}.annual-legend .closed-day{background:#dbe8f0}.annual-month-viewport{overscroll-behavior-x:contain;touch-action:pan-y;width:100%;padding:18px;overflow:hidden}.annual-month{width:min(100%,680px);margin:0 auto;animation:.2s ease-out annual-month-in}@keyframes annual-month-in{0%{opacity:.45;transform:translate(10px)}to{opacity:1;transform:none}}.annual-weekdays,.annual-days{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.annual-weekdays{margin-bottom:6px}.annual-weekdays b{color:#787d79;letter-spacing:.5px;padding:5px 0;font-size:8px}.annual-day,.annual-day-empty{aspect-ratio:1;min-width:0}.annual-day{color:#242825;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:10px;align-content:center;place-items:center;gap:4px;padding:2px;font:500 13px Georgia,serif;display:grid;position:relative}.annual-day:hover{border-color:#b7c2bc}.annual-day.closed{color:#557080;background:#edf3f7}.annual-day.has-class{color:#3f351f;background:#efe5c9}.annual-day.selected{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}.annual-day-number{border-radius:50%;place-items:center;width:27px;height:27px;display:grid}.annual-day.today .annual-day-number{outline:2px solid var(--forest);outline-offset:1px;font-weight:800}.personal-class-dot{background:#9a792a;border-radius:50%;width:6px;height:6px}.annual-swipe-hint{color:#7a807b;text-align:center;margin:0;padding:0 18px 16px;font-size:9px}.annual-day-detail{border-top:3px solid var(--forest);background:#f8f6f1;margin:0 18px 18px;padding:18px}.annual-day-detail header>span{color:#8b6c2e;letter-spacing:1.3px;font-size:8px;font-weight:800}.annual-day-detail h3{color:var(--forest);margin:5px 0 14px;font:500 18px Georgia,serif}.annual-personal-sessions{gap:9px;display:grid}.annual-personal-sessions article{background:#fff;border:1px solid #ddd7cb;gap:5px;padding:13px 14px;display:grid}.annual-personal-sessions article>span{color:#527060;letter-spacing:1px;text-transform:uppercase;font-size:8px;font-weight:800}.annual-personal-sessions article>b{color:#202622;font:500 14px Georgia,serif}.annual-personal-sessions p,.annual-personal-sessions small,.annual-closed-detail p,.annual-general-detail p{color:#6c736e;font-size:10px;line-height:1.5}.annual-personal-sessions small{display:block}.annual-closed-detail,.annual-general-detail{background:#edf3f7;border:1px solid #d5e1e8;padding:14px}.annual-general-detail{background:#fff;border-color:#d9ddda}.annual-closed-detail b,.annual-general-detail b{color:var(--forest);margin-bottom:4px;font:500 14px Georgia,serif;display:block}.annual-detail-loading{color:#747a76;text-align:center;background:#f8f6f1;margin:0 18px 18px;padding:16px;font-size:10px}.student-week>.empty-state,.student-week>.class-calendar-loading{margin:20px}@media (max-width:700px){.student-calendar-tabs{gap:4px}.student-calendar-tabs button{padding:8px 5px;font-size:10px}.student-week-list article{grid-template-columns:1fr;gap:9px;padding:15px}.calendar-availability{background:0 0;border:0}.week-toolbar{padding:13px}.annual-month-toolbar{grid-template-columns:72px minmax(145px,1fr) 72px;padding:10px 8px}.annual-month-toolbar h2{font-size:20px}.annual-month-toolbar button{grid-template-columns:auto 1fr;gap:3px;display:grid}.annual-month-toolbar button:last-child{grid-template-columns:1fr auto}.annual-month-toolbar button small{font-size:7px}.annual-month-viewport{padding:12px 9px 14px}.annual-weekdays,.annual-days{gap:3px}.annual-day{border-radius:7px;font-size:12px}.annual-day-number{width:24px;height:24px}.annual-day-detail{margin:0 10px 14px;padding:15px}.annual-legend{justify-content:center;padding:12px 8px}}@media (max-width:380px){.student-calendar-tabs button{font-size:9px}.annual-month-toolbar{grid-template-columns:52px minmax(150px,1fr) 52px}.annual-month-toolbar button small{display:none}}@media (prefers-reduced-motion:reduce){.annual-month{animation:none}}.push-settings .push-actions{justify-self:end;gap:8px;display:flex}.push-settings .push-test{color:#173a31;background:#fff;border:1px solid #173a31}.push-settings button:disabled{cursor:wait;opacity:.6}@media (max-width:800px){.push-settings .push-actions{flex-direction:column;justify-self:stretch;width:100%}}
