/* Idiomate Campus — Auth UI V9.0
   Scoped to .campus-auth-page so it cannot affect dashboard/admin/course screens. */
.campus-auth-page{
  --auth-ink:#1f1832;
  --auth-muted:#746f80;
  --auth-green:#95b446;
  --auth-green-dark:#567522;
  --auth-coral:#ff7e59;
  --auth-line:#dfe7d0;
  --auth-soft:#f7f9f2;
  --auth-white:#fff;
  min-height:100vh;
  margin:0;
  color:var(--auth-ink);
  background:
    radial-gradient(circle at 8% 5%,rgba(149,180,70,.14),transparent 24rem),
    radial-gradient(circle at 94% 88%,rgba(255,126,89,.08),transparent 25rem),
    linear-gradient(135deg,#f7f9f2 0%,#fbfcf8 48%,#f4f7ed 100%);
}
.campus-auth-page *{box-sizing:border-box}
.campus-auth-page .auth-shell{
  width:min(100%,1180px);
  min-height:100vh;
  margin:0 auto;
  padding:42px 24px;
  display:grid;
  place-items:center;
}
.campus-auth-page .auth-card{
  width:min(100%,520px);
  background:rgba(255,255,255,.96);
  border:1px solid rgba(223,231,208,.95);
  border-radius:28px;
  box-shadow:0 24px 70px rgba(31,24,50,.09);
  padding:42px;
}
.campus-auth-page .auth-card.auth-card-wide{width:min(100%,760px)}
.campus-auth-page .auth-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:30px;
}
.campus-auth-page .auth-logo{
  width:72px;
  height:72px;
  object-fit:contain;
  flex:0 0 auto;
}
.campus-auth-page .auth-brand-copy{display:grid;gap:2px;min-width:0}
.campus-auth-page .auth-brand-copy strong{font-size:18px;line-height:1.1;color:var(--auth-green-dark)}
.campus-auth-page .auth-brand-copy span{font-size:13px;color:var(--auth-muted)}
.campus-auth-page .auth-eyebrow{
  margin:0 0 10px;
  color:var(--auth-coral);
  font-size:12px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.campus-auth-page .auth-title{
  margin:0;
  font-size:clamp(34px,4vw,46px);
  line-height:1.04;
  letter-spacing:-.045em;
  color:var(--auth-ink);
}
.campus-auth-page .auth-subtitle{
  margin:12px 0 28px;
  color:var(--auth-muted);
  font-size:16px;
  line-height:1.55;
  max-width:620px;
}
.campus-auth-page .auth-form{display:grid;gap:18px}
.campus-auth-page .auth-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.campus-auth-page .auth-field{display:grid;gap:8px;margin:0;font-weight:800;font-size:14px;color:var(--auth-ink)}
.campus-auth-page .auth-input-wrap{position:relative;display:flex;align-items:center}
.campus-auth-page .auth-input-icon{
  position:absolute;
  left:15px;
  width:19px;
  height:19px;
  color:#8b8794;
  pointer-events:none;
}
.campus-auth-page .auth-input{
  width:100%;
  min-height:52px;
  padding:13px 15px 13px 46px;
  border:1px solid var(--auth-line);
  border-radius:14px;
  background:#fff;
  color:var(--auth-ink);
  font:inherit;
  font-weight:600;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.campus-auth-page .auth-input.no-icon{padding-left:15px}
.campus-auth-page .auth-input.has-toggle{padding-right:48px}
.campus-auth-page .auth-input::placeholder{color:#aaa6b1;font-weight:500}
.campus-auth-page .auth-input:focus{
  border-color:#aac767;
  box-shadow:0 0 0 4px rgba(149,180,70,.13);
}
.campus-auth-page .auth-password-toggle{
  position:absolute;
  right:8px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#7d7888;
  cursor:pointer;
  margin:0;
  padding:0;
  box-shadow:none;
}
.campus-auth-page .auth-password-toggle:hover{background:#f2f5eb;color:var(--auth-green-dark)}
.campus-auth-page .auth-password-toggle svg{width:18px;height:18px}
.campus-auth-page .auth-submit{
  width:100%;
  min-height:52px;
  margin-top:4px;
  padding:13px 18px;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,#8eb03e,#b8d26c);
  color:#1c2810;
  font:inherit;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 12px 26px rgba(149,180,70,.23);
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.campus-auth-page .auth-submit:hover{transform:translateY(-1px);box-shadow:0 15px 30px rgba(149,180,70,.28);filter:saturate(1.03)}
.campus-auth-page .auth-submit:active{transform:translateY(0)}
.campus-auth-page .auth-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:24px 0 16px;
  color:#9b97a2;
  font-size:12px;
}
.campus-auth-page .auth-divider::before,.campus-auth-page .auth-divider::after{content:"";height:1px;background:#e9ede0;flex:1}
.campus-auth-page .auth-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.campus-auth-page .auth-link{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:9px 12px;
  border-radius:11px;
  color:var(--auth-green-dark);
  text-decoration:none;
  font-size:14px;
  font-weight:800;
  transition:background .15s ease,color .15s ease;
}
.campus-auth-page .auth-link:hover{background:#f1f5e8;color:#3f5e12}
.campus-auth-page .auth-link.outline{border:1px solid var(--auth-line);padding-inline:14px}
.campus-auth-page .auth-link svg{width:17px;height:17px;flex:0 0 auto}
.campus-auth-page .auth-note{
  margin:18px 0 0;
  padding:13px 15px;
  border-radius:13px;
  background:#f7f9f2;
  color:#6d687a;
  font-size:13px;
  line-height:1.5;
}
.campus-auth-page .alert{
  margin:0 0 20px;
  padding:13px 15px;
  border-radius:13px;
  font-size:14px;
  line-height:1.5;
  font-weight:650;
}
.campus-auth-page .alert.error{background:#fff1f2;border:1px solid #ffcdd2;color:#9b2f3e}
.campus-auth-page .alert.success{background:#f0f7df;border:1px solid #d9e8ae;color:#446119}
.campus-auth-page .auth-success-actions{margin-top:18px}
@media(max-width:760px){
  .campus-auth-page .auth-shell{padding:20px 14px;align-items:start}
  .campus-auth-page .auth-card,.campus-auth-page .auth-card.auth-card-wide{padding:28px 22px;border-radius:22px;margin-top:10px}
  .campus-auth-page .auth-grid-2{grid-template-columns:1fr}
  .campus-auth-page .auth-brand{margin-bottom:24px}
  .campus-auth-page .auth-logo{width:62px;height:62px}
  .campus-auth-page .auth-title{font-size:34px}
  .campus-auth-page .auth-subtitle{font-size:15px;margin-bottom:24px}
  .campus-auth-page .auth-actions{align-items:stretch}
  .campus-auth-page .auth-link{flex:1 1 auto;text-align:center}
}
@media(max-width:430px){
  .campus-auth-page .auth-shell{padding:12px}
  .campus-auth-page .auth-card,.campus-auth-page .auth-card.auth-card-wide{padding:24px 18px;border-radius:20px}
  .campus-auth-page .auth-brand-copy span{font-size:12px}
  .campus-auth-page .auth-title{font-size:31px}
  .campus-auth-page .auth-actions{display:grid;grid-template-columns:1fr}
  .campus-auth-page .auth-link{width:100%}
}

/* V9.1 */
.auth-select{appearance:auto!important;padding-right:16px!important}.auth-card-wide .auth-grid-2{align-items:end}
@media(max-width:640px){.auth-card-wide .auth-grid-2{grid-template-columns:1fr!important}}
