:root{color-scheme:light;--bg:#f5f5f7;--surface:#fff;--subtle:#f2f2f7;--ink:#1d1d1f;--secondary:#65656c;--muted:#85858d;--line:#e7e7eb;--accent:#007aff;--tint:#edf5ff;--button:#eaeaef;--header:rgba(245,245,247,.94);--shadow:0 2px 8px #00000005}
:root[data-theme="dark"]{color-scheme:dark;--bg:#000;--surface:#1c1c1e;--subtle:#252528;--ink:#f5f5f7;--secondary:#b1b1b8;--muted:#919199;--line:#38383b;--accent:#6ab0ff;--tint:#192d45;--button:#323236;--header:rgba(0,0,0,.94);--shadow:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 'SUITE Variable',-apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.25px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button,select,summary{cursor:pointer}button,a,input,select,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button{border:0;background:var(--subtle)}button:active{opacity:.65}button:hover{filter:brightness(.97)}a:hover{color:var(--accent)}
header{max-width:1120px;margin:auto;min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:12px 32px;gap:20px}.brand{font-size:23px;font-weight:800;letter-spacing:-.9px;display:flex;align-items:center;gap:16px;white-space:nowrap}.brand span{font-size:12px;font-weight:500;letter-spacing:0;color:var(--secondary)}nav{display:flex;align-items:center;gap:12px;font-size:14px}nav a{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}.school-link{font-size:12px;color:var(--secondary);margin-left:12px}
main{max-width:1120px;margin:auto;padding:28px 32px 24px}.intro{display:flex;align-items:center;gap:14px;margin-bottom:24px}.intro h1{font-size:30px;line-height:1.3;font-weight:800;letter-spacing:-1px;margin:0}.intro p{font-size:13px;color:var(--secondary);margin:0}.theme-control{margin-left:auto;flex-shrink:0}.theme-control select{min-height:44px;padding:0 12px;border:0;border-radius:12px;font-size:14px;background:var(--button);color:var(--secondary)}
.date-bar{background:var(--surface);border-radius:18px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;box-shadow:var(--shadow)}.date-title>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.date-title div>span{font-size:18px;font-weight:750}.date-title small{font-size:13px;color:var(--secondary)}.date-controls{display:flex;align-items:center;gap:6px}.date-controls button{min-height:44px;min-width:44px;border-radius:12px;padding:0 14px;font-size:14px;font-weight:650;color:var(--accent)}#prev,#next{border-radius:50%;padding:0;width:44px;height:44px;font-size:28px;font-weight:500;background:transparent}.date-picker{display:flex;align-items:center;margin:0 6px;min-width:0}.date-picker span{display:none}.date-picker input{background:var(--subtle);border:0;min-height:44px;border-radius:12px;padding:0 10px;width:148px;font-size:14px;color:var(--ink)}
.dashboard{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start}.card{min-width:0;background:var(--surface);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.section-head{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.section-head h2{font-size:21px;font-weight:800;letter-spacing:-.6px;margin:0}.pill{font-size:12px;font-weight:600;color:var(--secondary);background:var(--subtle);padding:4px 10px;border-radius:8px}.meal-menu{list-style:none;margin:0;padding:4px 0 14px}.meal-menu li{min-height:48px;padding:12px 0;display:flex;justify-content:space-between;align-items:baseline;gap:5px 12px;border-bottom:1px solid var(--line);font-size:15px;flex-wrap:wrap;overflow-wrap:anywhere}.meal-menu li:last-child{border-bottom:0}.meal-menu sup{color:var(--muted);font-size:11px;line-height:1.5;vertical-align:baseline}.nutrition{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--secondary);padding:0 0 12px}.nutrition b{font-weight:650;color:var(--ink)}.allergy{border-top:1px solid var(--line);font-size:12px;color:var(--secondary)}.allergy summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;list-style:none}.allergy summary::-webkit-details-marker{display:none}.allergy summary span{font-size:16px}.allergy[open] summary span{transform:rotate(45deg)}.allergy p{font-size:12px;line-height:1.9;margin:4px 0 0}
.class-select{display:flex;gap:6px}.class-select select{background:var(--subtle);border:0;border-radius:10px;font-size:14px;padding:0 9px;min-height:44px}.week-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:66px}.week-tools>div{display:flex;align-items:center;gap:10px}.week-tools button{border:0;background:transparent;width:44px;height:44px;padding:0;border-radius:50%;font-size:28px;color:var(--accent)}.week-tools span{font-size:13px;color:var(--secondary)}.week-tools .remember{font-size:11px;color:var(--muted)}
.table-scroll{overflow-x:auto;width:100%;min-width:0;border:1px solid var(--line);border-radius:12px}table{width:100%;min-width:0;border-collapse:separate;border-spacing:0;table-layout:fixed;text-align:center;font-size:13px}th,td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px 4px;word-break:keep-all}th:last-child,td:last-child{border-right:0}tbody tr:last-child td{border-bottom:0}th{font-size:13px;font-weight:600;height:56px;color:var(--secondary);background:var(--subtle)}th:first-child{width:30px;font-size:10px}th small{display:block;font-size:10px;font-weight:500;margin-top:3px;color:var(--muted)}th.active{color:var(--accent);background:var(--tint)}th.active small{color:var(--accent)}td{height:64px;font-size:13px}td:first-child{font-size:11px;color:var(--muted);background:var(--subtle)}td.active{background:var(--tint)}.subject{display:block;font-size:inherit;font-weight:500;padding:3px 0;overflow-wrap:anywhere;word-break:normal;line-height:1.6}.table-note{font-size:11px;line-height:1.7;color:var(--muted);margin:14px 0 0}
.empty{text-align:center;padding:48px 8px;color:var(--secondary);font-size:14px;line-height:1.9}.empty button{display:block;margin:14px auto 0;min-height:44px;border-radius:12px;background:var(--subtle);color:var(--accent);padding:0 16px;font-size:14px}
footer{margin:30px 4px 0;display:flex;align-items:center;gap:16px;font-size:11px;color:var(--muted);line-height:1.8}footer p{margin:0}.footer-brand{font-size:13px;font-weight:650;color:var(--secondary);white-space:nowrap}footer a{text-decoration:underline;text-underline-offset:2px}#updated{margin-left:auto;white-space:nowrap;font-size:11px}
@media(max-width:1000px){.dashboard{grid-template-columns:280px minmax(0,1fr);gap:18px}.school-link,.week-tools .remember{display:none}.date-bar{align-items:flex-start;flex-direction:column;gap:12px}.date-controls{width:100%}.date-picker{margin-left:auto}}
@media(max-width:760px){
 header{min-height:64px;padding:8px 20px;gap:10px}.brand{font-size:22px;gap:10px}.brand span{display:none}nav{gap:4px;font-size:14px}
 main{padding:20px 16px max(24px,env(safe-area-inset-bottom))}.intro{margin:0 4px 20px;gap:12px}.intro h1{font-size:27px}.intro p{display:none}.theme-control select{font-size:16px;min-width:75px;padding:0 10px}
 .date-bar{padding:16px;border-radius:18px;margin-bottom:20px;gap:12px}.date-title div>span{font-size:18px}.date-title small{font-size:12px}
 .date-controls{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px;gap:6px}.date-controls button{min-height:44px;min-width:44px;font-size:15px;padding:0 8px}#prev{order:1}#today{order:2}#tomorrow{order:3}#next{order:4}#prev,#next{font-size:28px}
 .date-picker{order:5;grid-column:1/-1;margin:4px 0 0;gap:12px;min-width:0}.date-picker span{display:block;font-size:13px;color:var(--secondary);white-space:nowrap}.date-picker input{flex:1;min-width:0;width:100%;font-size:16px;min-height:44px}
 .dashboard{grid-template-columns:minmax(0,1fr);gap:20px}.card{padding:16px;border-radius:18px}.section-head{min-height:44px;margin-bottom:6px}.section-head h2{font-size:21px}.meal-menu li{font-size:15px;line-height:1.6;padding:11px 0;min-height:46px}.meal-menu sup{font-size:11px}.class-select select{font-size:16px;min-width:67px;padding:0 6px}
 .week-tools{min-height:62px}.week-tools>div{width:100%;justify-content:space-between;gap:6px}.week-tools span{font-size:13px}
 th,td{padding:7px 2px}th{height:54px;font-size:13px}th:first-child{width:24px;font-size:9px}th small{font-size:10px}td{height:66px;font-size:12px}td:first-child{font-size:10px}.table-note{font-size:11px}
 footer{margin:24px 4px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.footer-brand{font-size:13px}footer p{grid-column:1/-1;grid-row:2;font-size:11px;overflow-wrap:anywhere}#updated{grid-column:2;grid-row:1;font-size:10px;margin:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.brand{flex-direction:column;align-items:flex-start;gap:3px;line-height:1.25}.brand span{display:block;font-size:11px;font-weight:450;color:var(--muted);line-height:1.5;letter-spacing:-.2px}@media(max-width:760px){header{padding-top:12px;padding-bottom:12px}.brand span{display:block;font-size:10px}}
[hidden]{display:none!important}.view-switch{margin-left:auto;display:flex;background:var(--button);padding:3px;border-radius:12px;flex-shrink:0}.view-switch button{min-height:38px;padding:0 15px;border-radius:9px;font-size:13px;background:transparent;color:var(--secondary);font-weight:650}.view-switch button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #00000012}.calendar-card{margin-bottom:24px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-heading h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.5px}.calendar-actions{display:flex;align-items:center;gap:4px}.calendar-actions button{min-height:44px;min-width:44px;background:transparent;color:var(--accent);border-radius:12px;font-size:26px}.calendar-actions #calendarToday{font-size:13px;padding:0 10px}.calendar-hint{font-size:12px;color:var(--secondary);margin:8px 0 18px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:12px;color:var(--muted);padding-bottom:10px}.calendar-weekdays span:first-child{color:#df6868}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{min-width:0;min-height:100px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:8px;background:transparent;border:1px solid transparent;border-radius:10px;text-align:left}.calendar-day:hover{background:var(--subtle)}.calendar-day.selected{background:var(--tint);border-color:var(--accent)}.day-number{font-size:14px;font-weight:650;display:grid;place-items:center;width:26px;height:26px;border-radius:50%}.sunday .day-number{color:#df6868}.is-today .day-number{background:var(--accent);color:var(--surface)}.day-menu{width:100%;font-size:11px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.day-menu.has-meal{color:var(--secondary)}.calendar-status{margin-top:16px;font-size:11px;line-height:1.7;color:var(--muted)}.calendar-status button{background:transparent;color:var(--accent);min-height:44px;padding:0 8px;font-size:12px}@media(max-width:760px){.intro{flex-wrap:wrap;gap:10px}.intro h1{font-size:25px}.view-switch button{min-height:38px;padding:0 12px;font-size:13px}.calendar-card{padding:16px 10px;margin-bottom:20px}.calendar-heading{padding:0 6px}.calendar-heading h2{font-size:19px}.calendar-actions #calendarToday{padding:0 4px;font-size:12px}.calendar-hint{margin:8px 6px 16px;font-size:11px}.calendar-grid{gap:2px}.calendar-day{min-height:78px;padding:5px 2px;gap:5px;border-radius:8px}.day-number{font-size:13px;width:24px;height:24px}.day-menu{font-size:10px;-webkit-line-clamp:2;line-height:1.4}.calendar-weekdays{font-size:11px}.calendar-status{margin:12px 6px 0;font-size:10px}}

@media(max-width:760px){.calendar-day{align-items:center;text-align:center;min-height:70px}.day-menu{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.6;font-size:10px}}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0}.calendar-type{margin-left:0}.calendar-type button{min-width:64px}.lessons-calendar .calendar-weekdays,.lessons-calendar .calendar-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.lessons-calendar .calendar-weekdays span:first-child{color:var(--muted)}.lessons-calendar .calendar-day{min-height:180px}.day-lessons{width:100%;display:flex;flex-direction:column;gap:5px}.day-lesson{display:flex;gap:5px;font-size:12px;line-height:1.5;color:var(--ink);text-align:left}.lesson-period{color:var(--muted);font-size:10px;min-width:9px;flex-shrink:0}.day-lesson>span:last-child{min-width:0;overflow-wrap:anywhere;word-break:normal}@media(max-width:760px){.calendar-toolbar{margin:8px 6px 12px}.calendar-type button{padding:0 10px;min-width:50px}.calendar-toolbar .class-select{gap:4px}.calendar-toolbar .class-select select{min-width:60px;font-size:16px}.lessons-calendar .calendar-day{min-height:150px;padding:5px 3px}.day-lesson{font-size:11px;gap:3px;line-height:1.5}.day-lessons{gap:4px}.lesson-period{min-width:7px;font-size:9px}}

#today,#tomorrow{color:var(--secondary)}#today[aria-pressed="true"],#tomorrow[aria-pressed="true"]{background:#0069dd;color:#fff}header .theme-control{margin:0 0 0 6px}header .theme-control select{background:transparent;color:var(--secondary);min-height:44px;width:84px;padding:0 6px;font-size:14px;border-radius:8px}@media(max-width:760px){header{padding-left:16px;padding-right:16px;gap:8px}.brand{flex:1;min-width:0;white-space:normal}.brand span{word-break:keep-all}header nav{gap:0;flex-shrink:0}header .theme-control{margin-left:4px}header .theme-control select{width:76px;min-width:0;padding:0 4px;font-size:16px}}
