:root{--school-ink:#172c2b;--school-muted:#64736e;--school-line:#d7dfd8;--school-gold:#8a682e}
.school-page [hidden],.account-dialog [hidden]{display:none!important}
.school-page{margin:0;background:#f1f3ee;color:var(--school-ink);font-family:Arial,'Malgun Gothic',sans-serif;line-height:1.65;overflow:auto}
.school-page *{box-sizing:border-box}.school-page button,.school-page input,.school-page select,.school-page textarea,.account-dialog button,.account-dialog input,.account-dialog select,.account-dialog textarea{font:inherit}
.school-page button,.school-page .school-link,.account-dialog button,.account-dialog .school-link{cursor:pointer;min-height:44px;border:1px solid var(--school-line);border-radius:4px;background:#fff;color:var(--school-ink);padding:10px 16px;text-decoration:none;display:inline-block}
.school-page button:hover,.account-dialog button:hover{background:#eef2ed}.school-page .primary,.account-dialog .primary{background:#203f3c;color:#fff;border-color:#203f3c}.school-page :focus-visible,.account-dialog :focus-visible{outline:3px solid #b48a41;outline-offset:3px}
.school-page button:disabled,.account-dialog button:disabled{opacity:.5;cursor:wait}.school-page header{flex-wrap:wrap;border-bottom:1px solid var(--school-line);background:#fcfdf9;padding:20px max(24px,calc((100vw - 1240px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.school-page header a{color:inherit;text-decoration:none}.school-brand{font-size:12px;letter-spacing:.18em;font-weight:bold}.school-page main{max-width:1240px;margin:0 auto;padding:38px 24px 70px}.school-page h1{font-size:32px;line-height:1.3;margin:8px 0 14px}.school-page h2,.account-dialog h2{margin:0 0 14px;font-size:24px}.school-page h3{font-size:17px}.school-page p{margin:8px 0 16px}.school-page .muted,.account-dialog .muted{color:var(--school-muted);font-size:13px}.school-page .row,.account-dialog .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.school-page label,.account-dialog label{display:block;margin:16px 0 8px;font-size:14px;font-weight:600}.school-page input,.school-page select,.school-page textarea,.account-dialog input,.account-dialog select,.account-dialog textarea{display:block;width:100%;margin:7px 0;background:#fff;color:#172c2b;border:1px solid #aebdb5;border-radius:3px;padding:11px;min-height:44px}.school-page textarea,.account-dialog textarea{resize:vertical;line-height:1.7}.check{display:flex!important;align-items:center;gap:10px}.check input{width:18px!important;margin:0!important;min-height:18px!important}.school-page .auth-box{max-width:480px;margin:20px auto;background:#fff;padding:32px;border:1px solid var(--school-line)}
.dashboard-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:26px;margin-top:28px}.school-card{min-width:0;background:#fff;border:1px solid var(--school-line);border-radius:6px;padding:24px}.class-list{display:grid;gap:8px;margin-bottom:30px}.class-list button{text-align:left;width:100%}.class-list button.selected{border-left:4px solid #a68443;background:#eef3ef}.class-list small{display:block;color:var(--school-muted)}.stat-strip{display:flex;gap:32px;border-block:1px solid var(--school-line);margin:22px 0;padding:18px 0}.stat-strip b{font-size:27px;display:block;line-height:1.3}.stat-strip span{font-size:12px;color:var(--school-muted)}.class-code{font-family:monospace;letter-spacing:.15em;font-size:20px}.table-wrap{overflow-x:auto}table.roster{width:100%;border-collapse:collapse;text-align:left;font-size:14px}table.roster th{font-size:12px;color:var(--school-muted);font-weight:500;background:#f5f7f2}table.roster th,table.roster td{padding:13px 10px;border-bottom:1px solid #e3e8e0;white-space:nowrap}table.roster small{display:block;font-size:11px;color:var(--school-muted)}.status-chip{padding:4px 8px;background:#eef3ef;color:#36554c;border-radius:3px;font-size:12px}.school-page .toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.toolbar label{flex:1;min-width:150px}.notice{background:#f5efdf;border-left:3px solid #ac8744;padding:14px;font-size:13px}.empty{padding:32px 8px;color:var(--school-muted);text-align:center}
.account-dialog{border:1px solid #becabe;border-radius:6px;background:#fcfdf9;color:#172c2b;box-shadow:0 20px 100px #0007;width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 30px);padding:24px;overflow:auto;font-family:Arial,'Malgun Gothic',sans-serif;line-height:1.6;z-index:200}.account-dialog::backdrop{background:#071110b8}.dialog-top{display:flex;justify-content:flex-end;margin-bottom:12px}.account-dialog .dialog-top button{min-width:44px;padding:6px 14px}.account-bar{position:absolute;top:22px;right:5vw;z-index:4;display:flex;gap:10px;align-items:center}.account-bar button,.account-bar a{font:inherit;font-size:13px;background:#101c20a8;border:1px solid #d0c7ab66;color:#e6ddc7;padding:10px 16px;min-height:44px;text-decoration:none}.save-status{position:fixed;left:18px;bottom:8px;z-index:11;color:#d2d9d1;text-shadow:0 1px 5px #000;background:#101c20bd;padding:4px 8px;font-size:11px;pointer-events:none;max-width:80vw}.school-page [role=status],.account-dialog [role=status]{font-size:14px;color:#30584b}.school-page [role=alert],.account-dialog [role=alert]{color:#a03928}.reflection-copy{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;background:#f1f4ef;border-left:3px solid #82998d;font-size:14px}.school-page dialog{max-width:800px;width:calc(100vw - 28px)}
@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.school-page main{padding:22px 16px}.school-page header{padding:14px 16px}.school-card{padding:18px}.school-page h1{font-size:27px}.class-list{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.account-bar{top:12px;right:16px}.account-bar button,.account-bar a{padding:7px 10px;font-size:11px}.stat-strip{gap:22px}.account-dialog{padding:18px}.save-status{bottom:2px;left:6px;max-width:90vw;font-size:10px}}
@media(max-height:500px){.account-bar{top:8px}.account-bar button,.account-bar a{padding:6px 10px}.title-actions button{min-height:44px!important;padding-block:7px!important}}

.school-card,.account-dialog{overflow-wrap:anywhere}.class-list button{min-width:0}
