:root { --school-blue: #2457a6; --school-ink: #1f2937; --school-soft: #eef4ff; }
.school-shell { max-width: 1180px; }
.school-header { display:flex; justify-content:space-between; gap:2rem; align-items:flex-start; padding:2rem 0 1rem; }
.school-header h1 { margin:.15rem 0 .4rem; color:var(--school-ink); }
.school-intro { margin:0; color:#536174; }
.school-nav { display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 1rem; }
.school-nav a { color:var(--school-blue); background:var(--school-soft); border-radius:999px; padding:.55rem .9rem; text-decoration:none; font-weight:700; }
.school-section { margin:2rem 0; scroll-margin-top:1rem; }
.profile-panel { background:#f7f9fc; border:1px solid #dce3ed; border-radius:14px; padding:1.2rem; margin:1.5rem 0; }
.profile-panel h2 { margin:.15rem 0 1rem; color:var(--school-ink); }
.profile-fields { display:flex; flex-wrap:wrap; gap:.8rem; align-items:end; }
.profile-fields label, .profile-form label { display:flex; flex-direction:column; gap:.3rem; color:#536174; font-weight:700; }
.profile-fields select, .profile-form input, .profile-form select { min-width:220px; border:1px solid #bcc9da; border-radius:8px; padding:.65rem; background:#fff; font:inherit; }
.profile-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid #dce3ed; }
.profile-form__actions { display:flex; gap:.6rem; align-items:end; }
.profile-summary { color:#536174; margin:.9rem 0 0; }
.cycle-badge { background:var(--school-soft); color:var(--school-blue); border-radius:999px; padding:.45rem .75rem; font-weight:700; }
.schedule-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.8rem; }
.schedule-card { border:1px solid #dce3ed; border-radius:12px; padding:.85rem; background:#fff; }
.schedule-card h3 { margin:0 0 .6rem; color:var(--school-blue); }
.schedule-card ul { list-style:none; padding:0; margin:0; }
.schedule-card li { padding:.35rem 0; border-top:1px solid #edf0f4; line-height:1.35; }
.schedule-card li span { display:block; color:#64748b; font-size:.85rem; }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:1rem; }
.section-heading h2 { margin:.15rem 0 0; color:var(--school-ink); }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.info-card { background:#fff; border:1px solid #dce3ed; border-radius:14px; padding:1rem 1.1rem; box-shadow:0 4px 16px rgba(31,41,55,.05); }
.upload-panel { background:#f7f9fc; border:1px solid #dce3ed; border-radius:14px; padding:1.1rem; margin:0 0 1rem; }
.upload-panel h3 { margin:.1rem 0 .35rem; color:var(--school-ink); }
.upload-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:.8rem; margin:1rem 0; }
.upload-fields label { display:flex; flex-direction:column; gap:.3rem; color:#536174; font-weight:700; }
.upload-fields select, .upload-fields input { min-width:0; border:1px solid #bcc9da; border-radius:8px; padding:.65rem; background:#fff; font:inherit; }
.upload-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; }
.info-card h3 { margin:.25rem 0 .55rem; color:var(--school-ink); }
.info-card p { line-height:1.5; }
.info-card a { color:var(--school-blue); font-weight:700; }
.card-meta { color:#64748b; font-size:.85rem; margin:0; }
.muted, .empty-state { color:#64748b; }
#calendar { min-height:120px; background:#fff; border-radius:14px; padding:.5rem; }
@media (max-width:600px) { .school-header { flex-direction:column; } .school-header button { width:100%; } }
