:root{--brand:#0047BA;--brand-dark:#003b9b;--accent:#FFC629;--ink:#172c3c;--muted:#50616e;--paper:#fff;--canvas:#f3f6f8;--line:#d7e0e7;--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--canvas);font-size:100%;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--brand);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}button,select{font:inherit}button,summary,select,a{-webkit-tap-highlight-color:transparent}button,select{min-height:44px}a:focus-visible,summary:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #a44d00;outline-offset:4px}button{cursor:pointer}.skip-link{position:absolute;top:-100px;left:1rem;background:#fff;color:var(--brand);padding:1rem;z-index:10}.skip-link:focus{top:1rem}.school-header{background:var(--brand);color:#fff;border-bottom:5px solid var(--accent);padding:max(1.5rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) 1.5rem max(1.25rem,env(safe-area-inset-left))}.header-inner{max-width:1100px;margin:auto;display:flex;flex-direction:column;gap:1.5rem}.school-header a{color:#fff}.school-name{font-size:1.8rem;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;gap:1rem;line-height:1.2}.school-logo{object-fit:contain;width:88px;height:88px}address{font-style:normal;margin-top:1rem;font-size:1rem}.school-contact{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.school-contact a{display:inline-flex;align-items:center;min-height:44px;width:fit-content}.school-contact span{font-size:.875rem;color:#fff}main{max-width:1100px;margin:auto;padding:2rem max(1.25rem,env(safe-area-inset-right)) 3rem max(1.25rem,env(safe-area-inset-left));min-height:50vh}.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1.5rem}.eyebrow{font-size:.875rem;font-weight:700;letter-spacing:.09em;color:var(--muted);margin:0 0 .5rem}h1{font-size:clamp(1.75rem,5vw,2.5rem);line-height:1.15;letter-spacing:-.025em;margin:0}#language-control label{display:block;font-size:.875rem}select{background:#fff;border:1px solid var(--line);padding:.5rem;border-radius:4px}.categories{display:grid;gap:.75rem;align-items:start}.category{background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden}.category summary{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.125rem 1.25rem;cursor:pointer;list-style:none;font-weight:650}.category summary::-webkit-details-marker{display:none}.category summary:hover{background:#edf3f7}.category summary h2{margin:0;font-size:1rem;line-height:1.4}.toggle-icon{font-size:1.5rem;font-weight:400;flex-shrink:0;width:24px;line-height:1;text-align:center}.category[open] .toggle-icon{font-size:0}.category[open] .toggle-icon:after{content:"−";font-size:1.5rem}.resource-list{padding:0 1.25rem 1rem;margin:0;list-style:none}.resource-list li{border-top:1px solid var(--line)}.resource-link,.pending-link{display:block;padding:.875rem 0;min-height:48px}.resource-link{font-weight:600;text-decoration:none}.resource-link:hover .resource-label{text-decoration:underline}.resource-label{display:block;overflow-wrap:anywhere}.resource-description{display:block;font-weight:400;color:var(--muted);font-size:.875rem;margin-top:.2rem}.pending-link{color:var(--muted)}footer{max-width:1100px;margin:auto;padding:1.5rem max(1.25rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.875rem}footer a{display:inline-flex;align-items:center;min-height:44px}.error-page{padding-block:3rem}.error-page p{max-width:38rem}.home-link{display:inline-flex;align-items:center;min-height:48px;background:var(--brand);color:#fff;padding:.75rem 1.25rem;border-radius:4px;font-weight:600;text-decoration:none}.error-number{color:var(--muted);font-weight:700;font-size:1rem}@media(min-width:760px){.header-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:2rem}.school-header{padding-block:2rem}.weather{width:340px;flex-shrink:0}.school-contact{flex-direction:row;align-items:center;flex-wrap:wrap;column-gap:1.25rem}.categories{grid-template-columns:1fr 1fr;gap:1rem}.school-name{font-size:2rem}main{padding-top:2.5rem}}@media print{.weather,.skip-link,#language-control,footer{display:none}.school-header{background:#fff;color:#000}.school-header a{color:#000}.categories{display:block}.category{break-inside:avoid;margin-bottom:1rem}.category .resource-list{display:block!important}.toggle-icon{display:none}body{background:#fff}}.school-header a:focus-visible,.school-header button:focus-visible{outline-color:var(--accent)}[hidden]{display:none!important}.weather{position:relative;overflow:hidden;isolation:isolate;border:1px solid #ffffff40;border-radius:22px;padding:1.1rem 1.25rem;background:linear-gradient(160deg,#225a9c,#153968);color:#fff;box-shadow:0 12px 32px #001e5030;min-width:0}.weather[data-day=true][data-sky=clear]{background:linear-gradient(155deg,#21609e,#194978)}.weather[data-day=false]{background:linear-gradient(155deg,#172749,#09172f)}.weather[data-sky=cloud],.weather[data-sky=fog]{background:linear-gradient(155deg,#405b76,#263d56)}.weather[data-sky=rain],.weather[data-sky=storm]{background:linear-gradient(155deg,#354d68,#172b45)}.weather[data-sky=snow]{background:linear-gradient(155deg,#476785,#2a4561)}.weather[data-day=false]:not([data-sky=clear]){background:linear-gradient(155deg,#26364d,#101f35)}.weather-scene{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.weather-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:1rem;font-weight:600}#weather-current{text-align:center;padding:.75rem 0 1rem;text-shadow:0 1px 5px #071e4450}#weather-current p{margin:0}.current-temperature{font-size:4.5rem;font-weight:300;line-height:1.1;letter-spacing:-.04em}.current-condition{font-size:1.125rem;font-weight:600}.current-details{font-size:.875rem;padding-top:.25rem}.weather-updated{font-size:.75rem;padding-top:.35rem}.weather-days{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-top:1px solid #ffffff35;padding-top:.8rem}.forecast+.forecast{border-left:1px solid #ffffff35;padding-left:1rem}.forecast p{margin:0}.forecast-label{font-size:.875rem}.forecast .temperature{font-size:1.125rem;font-weight:600}.forecast .condition{font-size:.875rem}.weather-source{display:inline-block;font-size:.75rem;margin-top:.8rem}#weather-status{padding:1.5rem 0}@media(min-width:760px){.weather{width:360px}}@media(max-width:380px){.weather{padding:1rem}.weather-heading{font-size:.875rem}.current-temperature{font-size:4rem}}@media(max-width:759px){.school-header{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.header-inner{gap:1rem}address{margin-top:.5rem;font-size:.875rem}address br{display:none}.school-contact{flex-direction:row;align-items:center;flex-wrap:wrap;column-gap:1rem;row-gap:0;margin-top:.15rem}.school-contact a,.school-contact span{font-size:.875rem}.weather{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:1rem;border-radius:16px;padding:.85rem 1rem}.weather-heading,#weather-status,.weather-source{grid-column:1/-1}.weather-heading{font-size:.875rem}#weather-current{padding:.35rem 0 .15rem;text-align:left}.current-temperature{font-size:3rem;line-height:1.05;letter-spacing:-.03em}.current-condition{font-size:1rem}.current-details{font-size:.875rem}.weather-days{grid-template-columns:1fr;gap:.4rem;border-top:0;border-left:1px solid #ffffff35;padding:0 0 0 1rem;margin-top:.5rem}.forecast+.forecast{border-left:0;border-top:1px solid #ffffff35;padding:.4rem 0 0}.forecast .temperature{font-size:1rem}.forecast .condition{font-size:.875rem}.weather-source{margin-top:.4rem}.weather-updated{padding-top:.15rem}}.school-name{align-items:center}.school-title{display:flex;flex-direction:column;justify-content:center;gap:.4rem;min-width:0}.bell-schedule{font-size:.5em;line-height:1.2;font-weight:400;letter-spacing:normal}@media(max-width:759px){.school-name{font-size:1.8rem;line-height:1}.school-title{gap:.5rem}.bell-schedule{line-height:1}}@media(min-width:760px)and (max-width:959px){.header-inner{flex-direction:column;align-items:stretch}.weather{width:100%}}.school-logo{width:88px;height:88px;flex-shrink:0}
