@font-face{font-family:Noto Sans SC Local;src:url(/fonts/NotoSansSC-VF.otf)format("opentype");font-style:normal;font-weight:100 900;font-display:swap}:root{color:#000;font-synthesis:none;text-rendering:geometricprecision;background:#fff;font-family:Noto Sans SC Local,Noto Sans,sans-serif;font-weight:500}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:#fff;overflow:hidden}button{color:inherit;font:inherit;border-radius:0}.viewport-shell{background:#fff;place-items:center;width:100vw;height:100vh;display:grid;overflow:hidden}.scaled-board{background:#fff;position:relative;overflow:hidden}.board-frame{background:#fff;flex-direction:column;gap:24px;width:1404px;height:1872px;padding:64px;display:flex;overflow:hidden}.board-header{flex:none;justify-content:space-between;align-items:center;width:1276px;height:128px;display:flex;overflow:hidden}.today-block{flex-direction:column;gap:8px;width:760px;height:108px;display:flex;overflow:hidden}.today-block p{margin:0;font-size:24px;font-weight:550;line-height:34px}.today-block h1{white-space:nowrap;height:66px;margin:0;font-size:42px;font-weight:550;line-height:66px}.text-button,.icon-button{cursor:pointer;background:#fff;border:2px solid #000;flex:none;place-items:center;height:72px;font-weight:600;display:grid}.text-button{width:168px;padding:0 8px;font-size:28px;line-height:40px}.icon-button{width:72px;padding:18px}.icon-button img{width:32px;height:32px;display:block}.header-buttons,.button-pair,.calendar-controls{gap:16px;display:flex}button:focus-visible{outline-offset:4px;outline:4px double #000}button:disabled{cursor:default;opacity:.45}.header-rule{background:#000;flex:none;width:1276px;height:2px}.board-main{flex-direction:column;flex:none;width:1276px;height:1492px;display:flex;overflow:hidden}.section-heading{justify-content:space-between;align-items:center;width:1276px;height:64px;display:flex;overflow:hidden}.section-heading h2{width:660px;margin:0;font-size:36px;font-weight:700;line-height:50px}.section-heading>span{text-align:right;width:260px;font-size:24px;font-weight:550;line-height:36px}.homework-panel{flex:none;width:1276px;height:500px;overflow:hidden}.homework-labels,.homework-row{grid-template-columns:760px 266px 202px;column-gap:24px;display:grid}.homework-labels{align-items:start;width:1276px;height:40px;font-size:24px;font-weight:550;line-height:34px;overflow:hidden}.homework-labels span:nth-child(n+2){text-align:right}.homework-list{width:1276px;height:304px;overflow:hidden}.homework-row{border-bottom:2px solid #000;align-items:center;width:1276px;height:76px;overflow:hidden}.homework-title{white-space:normal;overflow-wrap:anywhere;max-height:60px;font-size:25px;font-weight:600;line-height:30px;overflow:hidden}.homework-title.is-complete{text-decoration:line-through;text-decoration-thickness:2px}.homework-due{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;height:66px;font-size:25px;line-height:32px;display:flex;overflow:hidden}.homework-due span+span{font-size:21px;line-height:28px}.homework-due .overdue{font-weight:700}.homework-status{text-align:right;max-height:70px;font-size:26px;font-weight:550;line-height:34px;overflow:hidden}.empty-message{place-items:center;width:1276px;height:304px;font-size:28px;display:grid}.homework-pagination{justify-content:space-between;align-items:flex-start;width:1276px;height:92px;padding-top:20px;font-size:24px;line-height:34px;display:flex}.homework-pagination>span,.class-pagination>span{flex:auto;padding-top:18px}.section-divider{flex:none;width:1276px;height:24px;padding:11px 0}.section-divider span{background:#000;width:1276px;height:2px;display:block}.class-panel{flex:none;width:1276px;height:300px;overflow:hidden}.class-list{width:1276px;height:160px;overflow:hidden}.class-row{grid-template-columns:104px 1fr;align-items:center;column-gap:24px;width:1276px;height:80px;display:grid;overflow:hidden}.class-date{font-size:26px;font-weight:550;line-height:36px}.class-details{flex-direction:column;justify-content:center;height:76px;display:flex;overflow:hidden}.class-title{white-space:nowrap;text-overflow:ellipsis;height:42px;font-size:30px;font-weight:600;line-height:42px;overflow:hidden}.class-meta{white-space:nowrap;text-overflow:ellipsis;height:34px;font-size:24px;line-height:34px;overflow:hidden}.class-empty{place-items:center;width:1276px;height:160px;font-size:28px;display:grid}.class-pagination{justify-content:space-between;align-items:flex-start;width:1276px;height:76px;padding-top:4px;font-size:24px;line-height:34px;display:flex;overflow:hidden}.personal-area{flex:none;grid-template-columns:758px 478px;column-gap:40px;width:1276px;height:644px;display:grid;overflow:hidden}.calendar-panel{width:758px;height:644px;overflow:hidden}.month-navigation{justify-content:space-between;align-items:center;width:758px;height:72px;display:flex;overflow:hidden}.month-navigation h2{white-space:nowrap;width:382px;margin:0;font-size:40px;font-weight:700;line-height:56px}.calendar-controls{width:344px}.weekday-headings{text-align:center;grid-template-columns:repeat(7,1fr);align-items:center;width:758px;height:52px;font-size:24px;font-weight:550;line-height:34px;display:grid}.calendar-grid{border-top:1px solid #000;border-left:1px solid #000;grid-template-columns:repeat(7,1fr);width:758px;height:480px;display:grid;overflow:hidden}.calendar-day{background:#fff;border-bottom:1px solid #000;border-right:1px solid #000;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;overflow:hidden}.date-indicator{place-items:center;width:56px;height:56px;font-size:32px;font-weight:600;line-height:44px;display:grid}.date-indicator.is-today{border:3px solid #000}.event-marker{width:10px;height:10px;display:block}.calendar-key{align-items:center;width:758px;height:40px;font-size:24px;line-height:34px;display:flex}.calendar-key span{width:50%}.calendar-key span:last-child{text-align:right}.personal-panel{flex-direction:column;gap:16px;width:478px;height:644px;display:flex;overflow:hidden}.personal-panel h2{align-items:center;width:478px;height:88px;margin:0;font-size:30px;font-weight:550;line-height:42px;display:flex;overflow:hidden}.personal-list{flex:none;width:478px;height:300px}.personal-row{grid-template-columns:132px 322px;align-items:center;column-gap:24px;width:478px;height:150px;display:grid;overflow:hidden}.personal-when{flex-direction:column;justify-content:center;height:70px;display:flex;overflow:hidden}.personal-day{white-space:nowrap;font-size:22px;line-height:28px}.personal-time{white-space:nowrap;font-size:26px;font-weight:650;line-height:36px}.personal-title{white-space:normal;overflow-wrap:anywhere;max-height:136px;font-size:30px;font-weight:550;line-height:34px;overflow:hidden}.personal-empty{text-align:center;place-items:center;width:478px;height:176px;font-size:28px;display:grid}.personal-pagination{justify-content:space-between;align-items:center;width:478px;height:72px;font-size:24px;display:flex}.board-frame>footer{flex:none;align-items:center;width:1276px;height:46px;font-size:24px;font-weight:550;line-height:34px;display:flex;overflow:hidden}.setup-state{text-align:center;justify-content:center;align-items:center;gap:32px}.setup-state h1{margin:0;font-size:48px}.setup-state p{margin:0;font-size:30px}.pairing-form{text-align:left;grid-template-columns:1fr 168px;gap:16px;width:880px;display:grid}.pairing-form label{grid-column:1/-1;font-size:26px;font-weight:650}.pairing-form input{min-width:0;height:72px;font:inherit;border:2px solid #000;border-radius:0;padding:0 20px;font-size:28px;font-weight:600}.setup-error{max-width:1000px;font-weight:700}.setup-actions{gap:20px;display:flex}@media (prefers-reduced-motion:no-preference){button:active:not(:disabled){transform:translateY(1px)}}
