.success-modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#17203380}.success-modal[hidden]{display:none}.success-dialog{width:min(100%,390px);padding:30px;background:var(--paper);border-radius:20px;text-align:center;box-shadow:0 22px 60px #1720334d}.success-dialog h2{margin:13px 0 5px}.success-dialog p{margin:0 0 22px}.success-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#dcf6e7;color:#15613d;font-size:28px;font-weight:800}
.photo-modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#111827dd}.photo-modal[hidden]{display:none}.photo-modal img{max-width:min(100%,980px);max-height:calc(100vh - 48px);object-fit:contain}.photo-close{position:fixed;top:16px;right:16px;width:44px;height:44px;padding:0;border-radius:50%;font-size:30px;line-height:1;background:#fff;color:var(--ink)}.homework-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.homework-photo{width:88px;height:88px;padding:0;background:#e8ecf6;overflow:hidden}.homework-photo img{display:block;width:100%;height:100%;object-fit:cover}.attachment-label{max-width:100%;padding:8px 10px;border-radius:8px;background:#f4f7fb;color:var(--muted);overflow-wrap:anywhere}
:root{--ink:#172033;--muted:#65708a;--paper:#fff;--wash:#f4f7fb;--accent:#5b52e8;--line:#e5e9f2}*{box-sizing:border-box}body{margin:0;background:var(--wash);color:var(--ink);font:16px Inter,system-ui,sans-serif}.shell{max-width:1050px;margin:auto;padding:48px 22px}.login-card{max-width:500px;margin:8vh auto;background:var(--paper);padding:42px;border-radius:24px;box-shadow:0 18px 45px #243b5b18}h1{font-size:clamp(28px,4vw,42px);margin:7px 0 11px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:750}p{color:var(--muted);line-height:1.55}form{display:grid;gap:15px;margin-top:27px}label{font-weight:650;display:grid;gap:7px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit}button{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:12px 17px;font:inherit;font-weight:700;cursor:pointer}.ghost{color:var(--accent);background:#eeedff}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}nav{display:flex;gap:9px;overflow:auto;margin-bottom:21px}.child-tab{background:#e8ecf6;color:var(--ink);white-space:nowrap}.child-tab.active{background:var(--ink);color:#fff}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.card{background:var(--paper);border-radius:17px;padding:21px;border:1px solid var(--line)}.card h2{font-size:17px;margin:0 0 13px}.wide{grid-column:span 2}.value{font-size:30px;font-weight:800}.teacher{font-size:18px;font-weight:700}.list{display:grid;gap:10px}.item{border-top:1px solid var(--line);padding-top:10px}.meta{font-size:13px;color:var(--muted);margin-top:3px}.notice{margin:18px 0;padding:12px 14px;border-radius:10px;background:#e8f8ef;color:#17683d}.error{color:#b21d36;margin:0}.schedule-heading,.week-controls{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-heading p{margin:0}.week-controls{justify-content:flex-start;margin:20px 0}.week-controls button{font-size:14px;padding:9px 12px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.week-day{min-height:136px;padding:12px;border-right:1px solid var(--line);background:#fbfcff;display:grid;align-content:start;gap:9px}.week-day:last-child{border:0}.week-day>b{text-transform:capitalize;font-size:13px}.lesson{background:#e9e7ff;color:#332b9a;border-radius:8px;padding:8px;display:grid;gap:2px}.lesson strong{font-size:14px}.lesson span,.empty{font-size:12px;color:var(--muted)}.schedule{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.schedule h2{margin-bottom:2px}@media(max-width:700px){.shell{padding:25px 15px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}header{align-items:flex-start;gap:14px}.login-card{padding:28px}.week-grid{grid-template-columns:1fr}.week-day{min-height:0;border-right:0;border-bottom:1px solid var(--line)}.week-day:last-child{border-bottom:0}.schedule-heading{align-items:flex-start}.week-controls{flex-wrap:wrap}}
