:root{--brand:#4f46e5;--brand2:#7c3aed;--ink:#1f2937;--mute:#6b7280;--line:#e5e7eb;--ok:#16a34a;--warn:#d97706;--bad:#dc2626}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:#f8fafc;line-height:1.55}
.top{background:linear-gradient(90deg,var(--brand),var(--brand2));color:#fff;padding:14px 16px}
.top .in{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-weight:800;font-size:1.15rem;color:#fff;text-decoration:none}
.top form{background:none;border:0;padding:0;margin:0;box-shadow:none}
.top button{margin:0;background:rgba(255,255,255,.2);padding:8px 14px;font-size:.9rem}
main{max-width:720px;margin:0 auto;padding:18px 16px 24px}
.card,main>form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:14px 0;box-shadow:0 2px 10px rgba(79,70,229,.08)}
.hero{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #e0e7ff;border-radius:16px;padding:22px;margin:14px 0}
.hero h2{margin:0 0 10px;font-size:1.35rem;line-height:1.3}
.ticks{list-style:none;margin:0;padding:0}.ticks li{padding:4px 0 4px 26px;position:relative}
.ticks li:before{content:"\2713";position:absolute;left:0;color:var(--ok);font-weight:800}
label{display:block;margin:12px 0 4px;font-weight:600}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd5e1;border-radius:12px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #c7d2fe;border-color:var(--brand)}
input[type=checkbox]{width:auto;margin-right:8px}
button,.btn{display:inline-block;margin-top:14px;padding:11px 18px;border:0;border-radius:12px;background:var(--brand);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{background:#4338ca}button:disabled{opacity:.6}
.btn.alt{background:#eef2ff;color:var(--brand)}
.danger{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}.danger:hover{background:#ffe4e6}
form.inline{display:inline;border:0;padding:0;margin:0;background:none;box-shadow:none}
.inline button{margin:0 0 0 8px;padding:4px 10px;font-size:.85rem}
.kid{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem}
.subj{border-left:6px solid #94a3b8;background:#f8fafc;border-radius:12px;padding:12px 14px;margin:12px 0}
.subj.attention{border-color:var(--bad);background:#fff7f7}.subj.strength{border-color:var(--ok);background:#f4fbf6}.subj.steady{border-color:#3b82f6}
.subj progress{display:block;width:100%;height:10px;margin:8px 0;border:0;border-radius:6px;appearance:none;-webkit-appearance:none;background:#e5e7eb}
.subj progress::-webkit-progress-bar{background:#e5e7eb;border-radius:6px}.subj progress::-webkit-progress-value{background:#3b82f6;border-radius:6px}
.subj.attention progress::-webkit-progress-value{background:var(--bad)}.subj.strength progress::-webkit-progress-value{background:var(--ok)}
.subj progress::-moz-progress-bar{background:#3b82f6}.subj.attention progress::-moz-progress-bar{background:var(--bad)}.subj.strength progress::-moz-progress-bar{background:var(--ok)}
.todo{margin:6px 0 0}
details.card summary{cursor:pointer;font-weight:600}
.err{background:#fee2e2;color:#7f1d1d;padding:12px 14px;border-radius:12px}
.note{color:var(--mute);font-size:.9rem}
footer{max-width:720px;margin:0 auto;padding:10px 16px 30px;color:var(--mute);font-size:.9rem}
a{color:var(--brand)}
.chk{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.chk:last-child{border:0}
.chk .ic{width:22px;flex:none;font-weight:800;text-align:center}.chk.ok .ic{color:var(--ok)}.chk.warn .ic{color:var(--warn)}.chk.bad .ic{color:var(--bad)}

.alert{display:flex;gap:10px;align-items:center;padding:14px 16px;border-radius:14px;margin:14px 0;font-weight:600;animation:pop .4s ease}
.alert.ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.alert.warn{background:#fff7ed;color:#9a3412;border:2px solid #fb923c}
.alert .ai{font-size:1.4rem}
@keyframes pop{from{transform:scale(.96);opacity:0}}
.ring{width:110px;height:110px;flex:none}.ring .bg{stroke:#e5e7eb}.ring .val{stroke:var(--brand);animation:grow 1.2s ease-out}
.ring.good .val{stroke:var(--ok)}.ring.mid .val{stroke:var(--warn)}.ring.low .val{stroke:var(--bad)}
.ring .rt{font-size:26px;font-weight:800;fill:#1f2937}
@keyframes grow{from{stroke-dasharray:0 326.7}}
.hero2,.glance{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#eef2ff,#faf5ff);border-radius:16px;padding:16px;margin:12px 0}
.glance{margin:8px 0}.big{font-size:1.5rem;font-weight:800}
.cheer{background:#fefce8;border:1px solid #fde68a;border-radius:12px;padding:12px 14px;font-weight:600}
.srow{display:flex;justify-content:space-between;align-items:center;gap:10px}
.stars{color:#f59e0b;letter-spacing:2px;white-space:nowrap}
.spark{height:40px;width:auto;max-width:120px;flex:none}.spark rect{fill:#c7d2fe}.spark rect.last{fill:var(--brand)}
.mood{font-size:1.6rem}
.steps{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.step{background:#eef2ff;color:var(--brand);border-radius:999px;padding:6px 12px;font-size:.9rem;font-weight:600}
.sky{position:relative;overflow:hidden;color:#fff;text-align:center;border-radius:20px;padding:26px 18px;margin:14px 0;background:radial-gradient(circle at 20% 30%,#fff 1px,transparent 2px),radial-gradient(circle at 70% 20%,#fff 1px,transparent 2px),radial-gradient(circle at 85% 70%,#fff 1.5px,transparent 2.5px),radial-gradient(circle at 35% 80%,#fff 1px,transparent 2px),radial-gradient(circle at 10% 60%,#fff 1px,transparent 2px),radial-gradient(circle at 55% 12%,#fff 1.5px,transparent 2.5px),radial-gradient(circle at 92% 35%,#fff 1px,transparent 2px),radial-gradient(circle at 60% 85%,#fff 1px,transparent 2px),radial-gradient(circle at 8% 15%,#fff 1.5px,transparent 2.5px),radial-gradient(circle at 45% 55%,#fff 1px,transparent 2px),linear-gradient(160deg,#1e1b4b,#4c1d95 60%,#6d28d9)}
.sky h2{margin:10px 0 4px;font-size:1.5rem}.sky p{margin:0 auto;max-width:480px;opacity:.95}
.orbit{display:flex;justify-content:center;align-items:center;gap:18px}
.sun{width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,#fde68a,#f59e0b);color:#78350f;font-size:3rem;display:flex;align-items:center;justify-content:center;box-shadow:0 0 36px rgba(251,191,36,.7);animation:float 4s ease-in-out infinite}
.moonic{font-size:3.4rem;animation:float 5s ease-in-out infinite .6s}
@keyframes float{50%{transform:translateY(-8px)}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;justify-content:inherit}
.sky .chips{justify-content:center}
.chip{border-radius:999px;padding:6px 14px;font-weight:600;font-size:.92rem;background:#eef2ff;color:#3730a3}
.chip.l{background:rgba(255,255,255,.18);color:#fff}.chip.c0{background:#fef3c7;color:#92400e}.chip.c1{background:#dcfce7;color:#166534}.chip.c2{background:#fce7f3;color:#9d174d}.chip.c3{background:#e0f2fe;color:#075985}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}.duo .card{margin:14px 0}
@media(max-width:560px){.duo{grid-template-columns:1fr}.hero2{flex-direction:column;text-align:center}}
.fact{background:linear-gradient(135deg,#ecfeff,#f0fdf4)}
.entry{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.band{display:flex;gap:6px;margin:10px 0}.seg{flex:1;text-align:center;padding:10px 6px;border-radius:12px;background:#f1f5f9;color:#64748b;font-weight:600;font-size:.92rem}
.seg.on{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 4px 12px rgba(79,70,229,.3)}
.cmp{margin:12px 0}.cmp progress{display:block;width:100%;height:10px;margin:6px 0 0;border:0;border-radius:6px;appearance:none;-webkit-appearance:none;background:#e5e7eb}
.cmp progress::-webkit-progress-bar{background:#e5e7eb;border-radius:6px}.cmp progress::-webkit-progress-value{background:#3b82f6;border-radius:6px}.cmp progress::-moz-progress-bar{background:#3b82f6}
.cmp progress.avg::-webkit-progress-value{background:#94a3b8}.cmp progress.avg::-moz-progress-bar{background:#94a3b8}
.gr{display:inline-block;min-width:34px;text-align:center;padding:1px 8px;border-radius:8px;font-weight:800;font-size:.9rem;color:#fff;background:#64748b}
.gr.A{background:#16a34a}.gr.B{background:#2563eb}.gr.C{background:#d97706}.gr.D{background:#ea580c}.gr.E{background:#dc2626}
.radar{width:100%;max-width:340px;display:block;margin:8px auto}.ringl{fill:none;stroke:#e5e7eb}.axis{stroke:#e5e7eb}
.pavg{fill:rgba(148,163,184,.25);stroke:#94a3b8;stroke-width:2}.pme{fill:rgba(79,70,229,.25);stroke:var(--brand);stroke-width:2.5}.rl{font-size:11px;fill:#374151}
.const{width:100%;display:block;margin:10px 0}.skybg{fill:#1e1b4b}.cl{stroke:#6366f1;stroke-width:1.5;stroke-dasharray:4 4;opacity:.7}
.st.bright{fill:#fde047}.st.mid{fill:#bae6fd}.st.dim{fill:#8b89b8;opacity:.85}.halo{fill:rgba(253,224,71,.22)}.sl{font-size:11px;fill:#e0e7ff;font-weight:600}.sp{font-size:10px;fill:#a5b4fc}
.card2{margin:14px 0}input[type=file]{padding:9px;background:#f8fafc}

:root{--navy:#0b1f4b;--navy2:#16327a;--gold:#f5b83d;--gold2:#e0a11f}
.top{background:linear-gradient(90deg,var(--navy),#3730a3)}
.brand{display:flex;align-items:center;gap:10px;letter-spacing:.2px}.logo{border-radius:9px;display:block}.brand .gold{color:var(--gold)}
.tag{margin:0 0 6px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--brand)}
body.parent button,body.parent .btn{background:var(--gold);color:var(--navy)}
body.parent button:hover,body.parent .btn:hover{background:var(--gold2)}
body.parent .btn.alt{background:#eef2ff;color:var(--brand)}
body.parent .danger{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}
body.parent .top button{background:rgba(255,255,255,.18);color:#fff}
body.school{--brand:#0b1f4b;--brand2:#16327a;background:#f1f4f9}
body.school .top{background:var(--navy);border-bottom:3px solid var(--gold)}
body.school .card,body.school main>form{border-radius:10px;box-shadow:none}
body.school button,body.school .btn{background:var(--navy);color:#fff;border-radius:8px}
body.school button:hover,body.school .btn:hover{background:var(--navy2)}
body.school .btn.alt{background:#e8edf7;color:var(--navy)}
body.school .danger{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}
body.school .top button{background:rgba(255,255,255,.15);color:#fff}
footer{text-align:center}
label.show{font-weight:400;font-size:.9rem;margin-top:8px;color:var(--mute)}
.entry{flex-wrap:wrap;gap:6px}
