:root{color:#292344;background:#f5f3fb;font-family:Pretendard,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}main{max-width:42rem;min-height:100dvh;margin:auto;padding:2rem 1rem}.eyebrow{color:#665a9a;letter-spacing:.1em;font-size:.8rem;font-weight:700}h1{margin:.5rem 0 1.5rem;font-size:2rem}.app-header,.lesson-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.menu-button{flex:none;align-items:center;gap:.4rem;display:flex}.date-filter,.login-card label{gap:.4rem;display:grid}input,button{min-height:44px;color:inherit;font:inherit;background:#fff;border:1px solid #b8b1d0;border-radius:.65rem;padding:.65rem 1rem}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}.lessons{gap:.8rem;padding:0;list-style:none;display:grid}article{background:#fff;border:1px solid #e1dced;border-radius:1rem;padding:1.2rem}article h2{font-size:1.2rem}.detail-button{width:100%}.badge{background:#ece8f7;border-radius:1rem;padding:.3rem .6rem;font-size:.8rem}.detail-panel{background:#fff;border:1px solid #c9c1de;border-radius:1rem;margin-top:1rem;padding:1.2rem;box-shadow:0 1rem 3rem #332b571f}.detail-panel h2{margin:0}.detail-panel dl{grid-template-columns:max-content 1fr;gap:.7rem 1rem;display:grid}.detail-panel dt{color:#665a9a;font-weight:700}.detail-panel dd{margin:0}.materials{border-top:1px solid #e1dced;margin-top:1.25rem}.materials ul{gap:.7rem;padding:0;list-style:none;display:grid}.materials li{background:#f5f3fb;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex}.materials li div{gap:.25rem;min-width:0;display:grid}.materials li span{overflow-wrap:anywhere;color:#665a9a;font-size:.85rem}.materials li button{flex:none}.preparation-actions{border-top:1px solid #e1dced;margin-top:1.25rem;padding-top:1rem}.preparation-actions h3{margin:0 0 .6rem;font-size:1rem}.status-actions{flex-wrap:wrap;gap:.5rem;display:flex}.status-actions button{flex:1;min-width:6rem}.status-actions button[aria-pressed=true]{color:#fff;background:#332b57;border-color:#332b57}.offline-banner{color:#7a4a12;text-align:center;background:#fbe9d5;border-radius:.6rem;margin:0 0 1rem;padding:.7rem 1rem}.notification-settings{z-index:20;background:#fff;width:min(100%,26rem);padding:1.25rem;position:fixed;inset:0 0 0 auto;overflow:auto;box-shadow:-1rem 0 2rem #332b5729}.notification-heading,.notification-actions{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.notification-settings fieldset{border:1px solid #e1dced;border-radius:.7rem;gap:.7rem;margin:1rem 0;display:grid}.notification-settings fieldset label{align-items:center;gap:.5rem;display:flex}.notification-settings fieldset input{min-height:0;padding:0}.notification-list{gap:.5rem;padding:0;list-style:none;display:grid}.notification-list li{background:#f5f3fb;border-radius:.6rem;gap:.2rem;padding:.7rem;display:grid}.notification-list li.unread{border-left:.3rem solid #332b57}.notification-list span{color:#665a9a;font-size:.88rem}.primary-nav{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1.25rem;display:grid}.primary-nav button[aria-pressed=true]{color:#fff;background:#332b57;border-color:#332b57}.section-heading h2{margin:.2rem 0}.privacy-notice{color:#514879;background:#ebe7f5;border-radius:.7rem;padding:.8rem;font-size:.88rem}.score-list{gap:.7rem;padding:0;list-style:none;display:grid}.score-list button{text-align:left;justify-content:space-between;align-items:center;width:100%;display:flex}.score-list button span{gap:.2rem;display:grid}.score-list small{color:#665a9a}.score-value{text-align:right;font-size:1.15rem;font-weight:700}.assessment-list{gap:1rem;padding:0;list-style:none;display:grid}.assessment-list>li{background:#f5f3fb;border-radius:.8rem;padding:1rem}.assessment-list>li>div{justify-content:space-between;display:flex}.assessment-list dl{grid-template-columns:1fr;gap:.4rem}.assessment-list dl div{justify-content:space-between;display:flex}.login-page{place-items:center;display:grid}.login-card{background:#fff;border:1px solid #e1dced;border-radius:1rem;gap:1rem;width:min(100%,24rem);padding:1.5rem;display:grid}.login-card button[type=submit],.primary-button{color:#fff;background:#332b57;border-color:#332b57}.preparation-modal-trigger{width:100%;margin-bottom:.6rem;font-weight:700}.notification-item-button{text-align:left;background:0 0;border:0;gap:.25rem;width:100%;padding:0;display:grid}.notification-item-button small{color:#665a9a;font-size:.78rem}.notification-list li.selected{outline:2px solid #332b57}.notification-detail{background:#faf8ff;border:1px solid #c9c1de;border-radius:.85rem;margin:1rem 0;padding:1rem}.notification-detail h3{margin:.6rem 0 .4rem;font-size:1.05rem}.notification-detail__body{white-space:pre-wrap;margin:0 0 .5rem}.notification-detail__time{color:#665a9a;margin-bottom:.75rem;display:block}.notification-detail__meta dl{grid-template-columns:max-content 1fr;gap:.45rem .8rem;margin:.7rem 0;display:grid}.notification-detail__meta dt{color:#665a9a;font-weight:700}.notification-detail__meta dd{overflow-wrap:anywhere;margin:0}.notification-sublist{border-top:1px solid #e1dced;margin-top:.8rem;padding-top:.8rem}.notification-sublist ul{gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.notification-sublist li{background:#fff;border-radius:.6rem;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem;display:flex}.notification-sublist li div{gap:.2rem;display:grid}.notification-detail__actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.modal-backdrop{z-index:40;background:#19142d85;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.preparation-modal{background:#fff;border-radius:1rem;width:min(100%,28rem);max-height:90dvh;padding:1.25rem;overflow:auto;box-shadow:0 1.5rem 4rem #19142d47}.preparation-modal h2{margin:0;font-size:1.25rem}.preparation-modal__form{gap:1rem;margin-top:1rem;display:grid}.preparation-modal__summary{background:#f5f3fb;border-radius:.75rem;grid-template-columns:max-content 1fr;gap:.55rem .9rem;margin:0;padding:.85rem;display:grid}.preparation-modal__summary dt{color:#665a9a;font-weight:700}.preparation-modal__summary dd{margin:0}.preparation-modal__field{gap:.45rem;font-weight:600;display:grid}.preparation-modal__field textarea{width:100%;font:inherit;resize:vertical;border:1px solid #b8b1d0;border-radius:.65rem;padding:.75rem}.preparation-modal__actions{justify-content:flex-end;gap:.6rem;display:flex}.menu-backdrop{z-index:80;background:#19142d7a;border:0;border-radius:0;width:100%;position:fixed;inset:0}.instructor-menu{z-index:90;background:#fff;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(100%,390px);display:grid;position:fixed;inset:0 0 0 auto;box-shadow:-1rem 0 3rem #19142d33}.instructor-menu__header{color:#fff;background:#332b57;justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.instructor-menu__header>div,.instructor-menu__account{gap:.25rem;display:grid}.instructor-menu__header span{color:#ffffffa6;letter-spacing:.13em;font-size:.68rem;font-weight:700}.instructor-menu__header button{color:#fff;background:0 0;border:0;min-height:40px;padding:.5rem}.instructor-menu__account{background:#ece8f7;border-radius:.8rem;margin:1.1rem;padding:1rem}.instructor-menu__account span{color:#665a9a;overflow-wrap:anywhere;font-size:.78rem}.instructor-menu__nav{align-content:start;gap:.5rem;padding:0 1.1rem;display:grid;overflow-y:auto}.instructor-menu__nav button{text-align:left;gap:.25rem;width:100%;display:grid}.instructor-menu__nav small{color:#665a9a}.instructor-menu__footer{padding:1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom));border-top:1px solid #e1dced;gap:.75rem;display:grid}.instructor-menu__status-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.connection-status{color:#665a9a;align-items:center;gap:.45rem;font-size:.75rem;display:flex}.connection-status i{background:#ef4444;border-radius:50%;width:.45rem;height:.45rem}.connection-status--online i{background:#10b981}.app-version{color:#665a9a;font-variant-numeric:tabular-nums;font-size:.75rem}.instructor-menu__logout{color:#b91c1c;background:#fff7f7;border-color:#fecaca;font-weight:700}
