:root{color:#000;font-synthesis:none;background:#fff;font-family:Arial,sans-serif}*{box-sizing:border-box;border-radius:0}html,body,#root{min-height:100%;margin:0}body{background:#fff}a{color:#000}.home{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:24px;display:flex}h1{margin:0;font-size:2rem}.page{width:min(100%,960px);margin:0 auto;padding:24px}.page h1{margin:32px 0 24px}.back-link{font-size:1.5rem;line-height:1;text-decoration:none;display:inline-block}.box-list{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.home-actions{grid-template-columns:repeat(2,160px);place-items:center;gap:10px;display:grid}.home-actions .box-link{text-align:center;width:100%}.box-link{color:#000;font:inherit;background:#fff;border:1px solid #000;padding:10px 14px;text-decoration:none;display:inline-block}.box-link:hover,.box-link:focus-visible{color:#fff;background:#000}.back-link:focus-visible,.box-link:focus-visible{outline-offset:3px;outline:2px solid #000}.description{margin:0 0 24px}.table-scroll{width:100%;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:520px}.gallery-page{width:100%;max-width:none}.gallery-grid{column-count:4;column-gap:8px}.gallery-image{cursor:pointer;break-inside:avoid;background:#fff;border:0;width:100%;margin:0 0 8px;padding:0;display:block}.gallery-image img{width:100%;height:auto;display:block}.gallery-image:focus-visible{outline-offset:2px;outline:2px solid #000}.lightbox{z-index:10;background:#000;justify-content:center;align-items:center;padding:56px;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:100%;max-height:100%;display:block}.lightbox button{color:#fff;cursor:pointer;background:#000;border:1px solid #fff;width:44px;height:44px;padding:0;font:24px Arial,sans-serif;position:absolute}.lightbox button:hover,.lightbox button:focus-visible{color:#000;background:#fff;outline:0}.lightbox-close{top:12px;right:12px}.lightbox-previous{top:calc(50% - 22px);left:12px}.lightbox-next{top:calc(50% - 22px);right:12px}@media (width<=1000px){.gallery-grid{column-count:3}}@media (width<=700px){.gallery-grid{column-count:2}.lightbox{padding:56px 12px}.view-switch{display:flex}.view-switch button[data-view=week],.weekly-view,.weekly-view.active{display:none}.schedule-view-week .daily-view{display:block}.now-grid,.upcoming-list,.assignment-list,.detail-fields{grid-template-columns:1fr}.filters form{grid-template-columns:repeat(2,minmax(0,1fr))}}th,td{text-align:left;vertical-align:top;border:1px solid #000;padding:10px}button,input,select,textarea{font:inherit;border-radius:0}button,select,input[type=date]{min-height:44px}.simple-button,.view-switch button,.day-navigation button,.assignment-tabs a{color:#000;cursor:pointer;background:#fff;border:1px solid #000;justify-content:center;align-items:center;padding:9px 12px;text-decoration:none;display:inline-flex}.simple-button:hover,.simple-button:focus-visible,.view-switch button:hover,.view-switch button:focus-visible,.day-navigation button:hover,.day-navigation button:focus-visible,.assignment-tabs a:hover,.assignment-tabs a:focus-visible,.view-switch .selected,.day-selector .selected,.assignment-tabs .selected{color:#fff;background:#000}.academic-page{width:min(100%,1100px)}.academic-page>h1{text-transform:uppercase}.academic-section{margin-top:48px}.academic-section>h2,.section-heading h2,.history-group>h2{text-transform:uppercase;margin:0 0 20px;font-size:1.25rem}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.view-switch,.assignment-tabs,.filter-actions{flex-wrap:wrap;gap:8px;display:flex}.now-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.plain-box{border:1px solid #000;min-height:140px;padding:18px}.plain-box h2,.assignment-card h2,.upcoming-item h3,.schedule-row h3{margin:12px 0;font-size:1.1rem}.plain-box p,.assignment-card p,.upcoming-item p,.schedule-row p{margin:6px 0}.label,.text-tag,.detail-field h2{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.day-navigation{margin-bottom:16px}.date-navigation{text-align:center;text-transform:uppercase;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:8px;display:grid}.day-selector{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.day-selector button{text-transform:uppercase;min-width:0;padding:8px 4px}.today-button{margin-bottom:16px}.daily-view,.weekly-view{display:none}.daily-view.active,.weekly-view.active{display:block}.schedule-list{border-top:1px solid #000}.schedule-row{border-bottom:1px solid #000;grid-template-columns:90px minmax(0,1fr);gap:16px;padding:16px 0;display:grid}.schedule-row-wrapper:not(:last-child) .schedule-row{border-bottom:1px solid #000}.schedule-row.activity-row{border-bottom:3px double #000}.schedule-row.cancelled{text-decoration:line-through}.schedule-time{font-weight:700}.week-grid{border-top:1px solid #000;border-left:1px solid #000;grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.week-day{border-bottom:1px solid #000;border-right:1px solid #000;min-width:0}.week-day>h3{text-transform:uppercase;border-bottom:1px solid #000;margin:0;padding:12px;font-size:.9rem}.week-day>p{padding:12px}.week-day .schedule-list{border-top:0}.week-day .schedule-row{grid-template-columns:1fr;gap:4px;padding:12px}.upcoming-list,.assignment-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.upcoming-item,.assignment-card{color:#000;background:#fff;border:1px solid #000;padding:18px;text-decoration:none;display:block}.assignment-card:hover,.assignment-card:focus-visible{outline-offset:2px;outline:2px solid #000}.assignment-labels{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.assignment-excerpt{-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.text-tag{border:1px solid #000;padding:5px 7px;display:inline-block}.assignment-tabs{margin-bottom:24px}.filters{border:1px solid #000;margin-bottom:24px}.filters summary{cursor:pointer;padding:12px}.filters form{border-top:1px solid #000;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;display:grid}.filters label{gap:6px;font-size:.85rem;font-weight:700;display:grid}.filters select,.filters input{color:#000;background:#fff;border:1px solid #000;width:100%;padding:8px}.filter-actions{align-items:end}.history-group{margin-top:36px}.detail-subject{margin:32px 0 10px;font-weight:700}.detail-description{white-space:pre-wrap;overflow-wrap:anywhere;max-width:720px;margin-bottom:36px;line-height:1.6}.detail-fields{border-top:1px solid #000;border-left:1px solid #000;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.detail-field{border-bottom:1px solid #000;border-right:1px solid #000;min-height:110px;padding:16px}.detail-field h2{margin:0 0 14px}.detail-field p{margin:0}.assignment-resources{margin-top:42px}.assignment-resources>h2{text-transform:uppercase;margin:0 0 18px;font-size:1.1rem}.resource-list,.resource-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}.resource-file{color:#000;overflow-wrap:anywhere;background:#fff;border:1px solid #000;align-content:start;gap:8px;min-height:110px;padding:16px;text-decoration:none;display:grid}.resource-file:hover,.resource-file:focus-visible{color:#fff;background:#000}.resource-file span{font-size:.85rem}.resource-images button{color:#000;text-align:left;cursor:pointer;background:#fff;border:1px solid #000;gap:10px;padding:0 0 12px;display:grid;overflow:hidden}.resource-images img{object-fit:contain;background:#fff;width:100%;max-height:300px;display:block}.resource-images span{overflow-wrap:anywhere;padding:0 12px}.resource-video{margin:28px 0}.resource-video h3{margin:0 0 12px}.video-frame{background:#000;border:1px solid #000;width:100%;margin-bottom:10px;padding-top:56.25%;position:relative}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.calendar-controls{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:16px;display:grid}.calendar-month-navigation{text-align:center;grid-column:2;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;display:grid}.calendar-month-navigation strong{min-width:0}.calendar-month-navigation button{color:#000;cursor:pointer;background:#fff;border:1px solid #000;min-height:44px}.calendar-month-navigation button:hover,.calendar-month-navigation button:focus-visible{color:#fff;background:#000}.month-calendar{border-top:1px solid #000;border-left:1px solid #000;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{text-align:center;text-transform:uppercase;border-bottom:1px solid #000;border-right:1px solid #000;padding:10px 6px;font-size:.75rem;font-weight:700}.calendar-day{border-bottom:1px solid #000;border-right:1px solid #000;min-width:0;min-height:118px;padding:7px}.calendar-day>time{text-align:right;margin-bottom:6px;font-size:.8rem;display:block}.calendar-day.outside-month{background:#f5f5f5}.calendar-day.calendar-today{outline-offset:-4px;outline:3px double #000}.calendar-events{gap:4px;display:grid}.calendar-events button{color:#000;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #000;min-width:0;min-height:0;padding:5px;font-size:.72rem;overflow:hidden}.calendar-events button:hover,.calendar-events button:focus-visible{color:#fff;background:#000}.calendar-events button span{text-transform:uppercase;font-size:.6rem;font-weight:700;display:block}.calendar-mobile{display:none}.calendar-dialog-backdrop{z-index:20;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.calendar-dialog{color:#000;background:#fff;border:1px solid #000;width:min(100%,520px);max-height:calc(100vh - 40px);padding:28px;position:relative;overflow-y:auto}.calendar-dialog h2{margin:12px 48px 20px 0}.calendar-dialog p,.calendar-dialog time{margin:12px 0;line-height:1.5;display:block}.calendar-dialog .simple-button{margin-top:12px}.calendar-dialog-close{color:#000;cursor:pointer;background:#fff;border:1px solid #000;width:44px;padding:0;font-size:1.5rem;position:absolute;top:12px;right:12px}.calendar-dialog-close:hover,.calendar-dialog-close:focus-visible{color:#fff;background:#000}@media (width<=600px){.page{padding:20px}.box-link{max-width:100%}.academic-section{margin-top:36px}.day-selector{max-width:100%;display:flex;overflow-x:auto}.day-selector button{flex:0 0 76px}.schedule-row{grid-template-columns:68px minmax(0,1fr);gap:10px}}@media (width<=420px){.gallery-grid{column-count:1}.filters form{grid-template-columns:1fr}.home-actions{grid-template-columns:160px}}@media (width<=700px){.view-switch{display:flex}.view-switch button[data-view=week],.weekly-view,.weekly-view.active{display:none}.schedule-view-week .daily-view{display:block}.now-grid,.upcoming-list,.assignment-list,.detail-fields,.resource-list,.resource-images{grid-template-columns:1fr}.filters form{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-controls{grid-template-columns:1fr}.calendar-controls>.simple-button{justify-self:start}.calendar-month-navigation{grid-column:1;width:100%}.calendar-month-navigation strong{overflow-wrap:anywhere;padding:0 6px;font-size:.95rem}.month-calendar{display:none}.calendar-mobile{display:block}.calendar-mobile-day{margin-top:24px}.calendar-mobile-day h2{text-transform:capitalize;margin:0 0 8px;font-size:1rem}.calendar-mobile-day button{color:#000;text-align:left;cursor:pointer;background:#fff;border:1px solid #000;gap:7px;width:100%;margin-bottom:8px;padding:14px;display:grid}.calendar-mobile-day button:hover,.calendar-mobile-day button:focus-visible{color:#fff;background:#000}}@media (width<=420px){.filters form{grid-template-columns:1fr}}
