:root{
  --student-primary:#2f7a59;
  --student-primary-dark:#215842;
  --student-primary-soft:#e8f5ee;
  --student-accent:#dff3e9;
  --student-border:#d6e5dc;
  --student-border-strong:#9ab9aa;
  --student-text:#173126;
  --student-muted:#556a5f;
  --student-surface:#ffffff;
  --student-bg:#f4f8f5;
  --student-danger:#b42318;
  --student-shadow:0 18px 48px rgba(28,58,43,.11);
}

*{box-sizing:border-box}

body.student-body{
  margin:0;
  min-height:100vh;
  font-family:Segoe UI,Arial,sans-serif;
  color:var(--student-text);
  background:
    radial-gradient(circle at top left, rgba(215,241,226,.95) 0, rgba(215,241,226,0) 22%),
    radial-gradient(circle at top right, rgba(231,243,248,.92) 0, rgba(231,243,248,0) 28%),
    linear-gradient(180deg,#f1f7f3 0,#f8fbf9 38%,#f2f7f3 100%);
}

.student-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px 16px;
}

.student-card{
  width:min(100%,460px);
  background:var(--student-surface);
  border:1px solid var(--student-border);
  border-radius:22px;
  box-shadow:var(--student-shadow);
  overflow:hidden;
}

.student-card.wide{
  width:min(100%,1120px);
}

.student-card-header{
  padding:28px 32px 18px;
  border-bottom:1px solid #edf3ef;
}

.student-brand{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:14px;
}

.student-brand img{
  width:74px;
  height:74px;
  object-fit:contain;
  padding:6px;
  border-radius:20px;
  border:1px solid var(--student-border-strong);
  background:#fff;
}

.student-kicker{
  color:#5b7391;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.student-title{
  margin:2px 0 0;
  font-size:30px;
  line-height:1.05;
}

.student-subtitle{
  margin:8px 0 0;
  color:var(--student-muted);
  font-size:15px;
  line-height:1.6;
}

.student-card-body{
  padding:28px 32px 32px;
}

.student-form{
  display:grid;
  gap:18px;
}

.student-field{
  display:grid;
  gap:8px;
}

.student-password-row{
  position:relative;
}

.student-field label{
  font-size:13px;
  font-weight:700;
  color:#234536;
}

.student-field input{
  width:100%;
  border:1px solid #c9d8cf;
  border-radius:14px;
  padding:14px 16px;
  font-size:15px;
  color:var(--student-text);
  background:#fff;
  outline:none;
}

.student-password-row input{
  padding-right:112px;
}

.student-password-toggle{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  border:none;
  background:transparent;
  color:var(--student-primary-dark);
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}

.student-field input:focus{
  border-color:var(--student-primary);
  box-shadow:0 0 0 4px rgba(47,122,89,.12);
}

.student-button{
  appearance:none;
  border:none;
  border-radius:14px;
  padding:14px 18px;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  transition:.18s ease;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.student-button.primary{
  background:var(--student-primary);
  color:#fff;
}

.student-button.primary:hover{background:var(--student-primary-dark)}

.student-button.secondary{
  background:#edf4ef;
  color:var(--student-text);
}

.student-button.secondary:hover{background:#e2ece5}

.student-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.student-help,
.student-alert,
.student-badge,
.student-meta,
.student-summary-grid,
.student-panel,
.student-toolbar{
  width:100%;
}

.student-help{
  margin-top:12px;
  font-size:13px;
  color:var(--student-muted);
  line-height:1.6;
}

.student-help a{
  color:var(--student-primary-dark);
  font-weight:600;
}

.student-alert{
  margin-bottom:18px;
  padding:14px 16px;
  border-radius:14px;
  font-size:14px;
  line-height:1.5;
}

.student-alert.info{
  background:#eef7ff;
  color:#184c7a;
  border:1px solid #cfe6fb;
}

.student-alert.error{
  background:#fff3f1;
  color:var(--student-danger);
  border:1px solid #f5d0cb;
}

.student-alert.success{
  background:#eef8f2;
  color:var(--student-primary-dark);
  border:1px solid #cfe8d9;
}

.student-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:auto;
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.student-badge.ok{
  background:#e8f6ee;
  color:#256747;
}

.student-badge.warning{
  background:#fff4e5;
  color:#9a6700;
}

.student-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:24px;
}

.student-summary-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.student-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.student-choice-card,
.student-panel{
  border:1px solid var(--student-border);
  border-radius:18px;
  padding:20px;
  background:#fff;
}

.student-choice-card{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.student-choice-card h3,
.student-panel h3{
  margin:0;
  font-size:18px;
}

.student-choice-card p,
.student-panel p{
  margin:0;
  color:var(--student-muted);
  font-size:14px;
  line-height:1.6;
}

.student-choice-meta{
  font-size:12px;
  color:var(--student-primary);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
}

.student-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.student-meta-item{
  padding:16px;
  border-radius:16px;
  background:#f8fbf9;
  border:1px solid #ebf2ee;
}

.student-meta-item span{
  display:block;
}

.student-meta-label{
  color:var(--student-muted);
  font-size:12px;
  margin-bottom:6px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.student-meta-value{
  font-size:15px;
  font-weight:700;
}

.student-entry-link{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  background:var(--student-primary);
  color:#fff;
  border-radius:999px;
  padding:14px 18px;
  font:600 14px/1.2 Segoe UI,Arial,sans-serif;
  box-shadow:0 14px 32px rgba(28,63,46,.24);
}

.student-entry-link:hover{
  background:var(--student-primary-dark);
}

.content-login{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px 16px;
  margin:0!important;
  background:
    radial-gradient(circle at top left, rgba(215,241,226,.95) 0, rgba(215,241,226,0) 22%),
    radial-gradient(circle at top right, rgba(231,243,248,.92) 0, rgba(231,243,248,0) 28%),
    linear-gradient(180deg,#f1f7f3 0,#f8fbf9 38%,#f2f7f3 100%)!important;
}

.content-login > div{
  width:min(100%,460px);
  margin-top:0!important;
}

.content-login .ant-card{
  border-radius:22px;
  border:1px solid var(--student-border);
  box-shadow:var(--student-shadow);
  overflow:hidden;
  background:#fff;
}

.content-login .ant-card-body{
  padding:28px 32px 32px;
}

.content-login [style*="marginTop:5%"]{
  margin-top:0!important;
  width:100%!important;
}

.content-login img{
  width:74px!important;
  height:74px!important;
  object-fit:contain;
  padding:6px;
  border-radius:20px;
  border:1px solid var(--student-border-strong);
  background:#fff;
}

.content-login .ant-typography{
  color:var(--student-text);
}

.content-login .ant-typography h5,
.content-login h5.ant-typography{
  font-size:30px;
  line-height:1.05;
  margin-bottom:8px;
}

.content-login .ant-form-item-label > label{
  color:#234536;
  font-weight:700;
}

.content-login .ant-input,
.content-login .ant-input-password{
  border-radius:14px;
  padding-top:8px;
  padding-bottom:8px;
}

.content-login .ant-input-affix-wrapper{
  border-radius:14px;
}

.content-login .ant-btn-primary.ant-btn-lg{
  border-radius:14px;
  height:50px;
  font-weight:700;
}

.staff-login-kicker{
  color:#5b7391;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.staff-login-footer-link{
  display:block;
  margin-top:12px;
  font-size:13px;
  color:var(--student-muted);
}

.staff-login-footer-link a{
  color:var(--student-primary-dark);
  font-weight:600;
}

@media (max-width: 768px){
  .student-card.wide{width:min(100%,620px)}
  .student-toolbar,
  .student-meta,
  .student-summary-grid,
  .student-choice-grid{
    grid-template-columns:1fr;
    display:grid;
  }
  .student-toolbar{
    gap:12px;
  }
  .student-card-header,
  .student-card-body{
    padding-left:22px;
    padding-right:22px;
  }
  .student-brand{
    align-items:flex-start;
  }
}
