*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fa;color:#1b2733}.topbar{background:#102a43;color:white;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;position:sticky;top:0;z-index:2}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:700}.brand img{height:44px;background:white;border-radius:8px;padding:3px}.topbar nav{display:flex;gap:14px;flex-wrap:wrap}.topbar nav a{color:white;text-decoration:none;font-size:14px}.container{max-width:1180px;margin:0 auto;padding:28px 18px}.login-card{max-width:430px;margin:60px auto;background:white;border-radius:20px;padding:32px;box-shadow:0 10px 30px #0001;text-align:center}.login-card h1{margin-top:0}.panel,.card,table{background:white;border-radius:16px;box-shadow:0 6px 20px #00000010}.panel{padding:20px;margin:18px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:18px 0}.card{padding:20px}.card strong{display:block;font-size:28px;color:#0b6b53}.card span{color:#5a6b7b}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.btn,button{display:inline-block;border:0;background:#0b6bcb;color:white;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}button{width:auto}input,select,textarea{width:100%;padding:10px;border:1px solid #c8d3df;border-radius:10px;margin:4px 0 12px;background:white}label{font-weight:700}table{width:100%;border-collapse:collapse;overflow:hidden;margin:14px 0}th,td{text-align:left;border-bottom:1px solid #e7edf3;padding:11px;vertical-align:top}th{background:#eaf2f8;color:#20384f}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.messages{margin-bottom:14px}.msg{padding:12px;border-radius:12px;margin:8px 0;background:#d9edf7}.msg.error{background:#fde2e1}.msg.success{background:#ddf4df}.progress{height:12px;background:#dce6ef;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:#0b6b53}.timeline{display:grid;gap:12px}.timeline-item{background:white;border-left:5px solid #0b6bcb;border-radius:12px;padding:15px;box-shadow:0 4px 14px #0000000e}.timeline-item h3{margin:6px 0}.school-preview{background:white;border-radius:18px;overflow:hidden;box-shadow:0 6px 20px #0001;margin-bottom:18px;text-align:center}.school-preview .banner{width:100%;height:220px;object-fit:cover;display:block}.school-preview .avatar{width:110px;height:110px;object-fit:contain;border-radius:50%;background:white;border:5px solid white;margin-top:-55px;box-shadow:0 6px 18px #0002}.form-panel{max-width:760px}@media(max-width:720px){.topbar{align-items:flex-start;flex-direction:column}.brand img{height:36px}.container{padding:18px 12px}th,td{font-size:14px}.cards{grid-template-columns:1fr}.school-preview .banner{height:140px}}

.form-row{margin-bottom:14px}
.form-errors{background:#fde2e1;border:1px solid #f7b4b0;border-radius:12px;padding:10px 14px;margin-bottom:14px}
.field-error{color:#9b1c1c;background:#fde2e1;border-radius:8px;padding:7px 9px;margin:4px 0 10px;font-size:14px}
.help{display:block;color:#607080;margin-top:-6px;margin-bottom:10px}
.has-error input,.has-error select,.has-error textarea{border-color:#c62828;background:#fff8f8}
.inline-form{display:inline-block;margin:2px}
.btn.secondary{background:#607080}
.btn.danger{background:#b42318}
.school-profile-card{background:white;border-radius:18px;overflow:hidden;box-shadow:0 6px 20px #0001;margin:18px 0}
.school-banner{width:100%;height:220px;object-fit:cover;display:block;background:#dce6ef}
.school-profile-body{display:flex;gap:18px;align-items:flex-start;padding:18px}
.school-logo{width:100px;height:100px;object-fit:contain;border-radius:50%;background:white;border:4px solid white;box-shadow:0 4px 14px #0002;flex:0 0 auto}
@media(max-width:720px){.school-profile-body{flex-direction:column}.school-banner{height:140px}}

/* Painel compacto da escola no painel do aluno */
.school-card-compact{
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 6px 20px #0001;
  margin:14px 0 18px;
}

.school-card-banner{
  width:100%;
  height:130px;
  object-fit:cover;
  display:block;
  background:#dce6ef;
}

.school-card-main{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
}

.school-card-logo{
  width:64px;
  height:64px;
  object-fit:contain;
  border-radius:50%;
  background:white;
  border:3px solid white;
  box-shadow:0 4px 14px #0002;
  flex:0 0 auto;
}

.school-card-title h2{
  margin:0 0 4px;
  font-size:20px;
}

.school-card-title p{
  margin:0;
  color:#506070;
  font-size:14px;
}

.school-card-details{
  border-top:1px solid #e8edf2;
  padding:0 14px 12px;
}

.school-card-details summary{
  cursor:pointer;
  color:#1f5f8b;
  font-weight:600;
  padding:10px 0 0;
}

.school-card-details-body{
  padding-top:8px;
  color:#405060;
}

.school-card-details-body p{
  margin:6px 0;
}

.highlight-panel{
  border-left:5px solid #1f7a4d;
}

@media(max-width:720px){
  .school-card-banner{
    height:95px;
  }

  .school-card-main{
    padding:10px 12px;
  }

  .school-card-logo{
    width:54px;
    height:54px;
  }

  .school-card-title h2{
    font-size:17px;
  }

  .school-card-title p{
    font-size:13px;
  }
}
