:root{
  --bg1:#071a2f;
  --bg2:#0b2f55;
  --card: rgba(255,255,255,.07);
  --card2: rgba(255,255,255,.06);
  --stroke: rgba(255,255,255,.12);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.72);
  --accent1:#24d6ff;
  --accent2:#7b7cff;
}

*{box-sizing:border-box}

/* Base + overflow guard */
html,body{
  margin:0;
  padding:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  max-width:100%;
  overflow-x:hidden;
}

/* Footer stick */
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background: radial-gradient(1200px 600px at 20% 10%, rgba(36,214,255,.14), transparent 60%),
              radial-gradient(900px 600px at 90% 20%, rgba(123,124,255,.14), transparent 55%),
              linear-gradient(160deg, var(--bg1), var(--bg2));
}

/* NAV */
#tmt-nav{padding:18px 18px 0}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  border:1px solid var(--stroke);
  background: rgba(255,255,255,.05);
  border-radius:18px;
  backdrop-filter: blur(10px);
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--text);
}
.logo{
  width:36px;
  height:36px;
  border-radius:12px;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 10px 30px rgba(36,214,255,.18);
}
.brand-title{font-weight:800;letter-spacing:.2px}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}

.nav-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:34px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--stroke);
  background: rgba(0,0,0,.10);
  color:var(--text);
  text-decoration:none;
  font-weight:650;
  font-size:13px;
}

.pill.active{
  background: linear-gradient(135deg, rgba(36,214,255,.35), rgba(123,124,255,.35));
  border-color: rgba(255,255,255,.22);
}

.hello{cursor:default}

/* PAGE WRAPPER */
.wrap{
  max-width:1100px;
  margin:0 auto;
  padding:18px;
  width:100%;
  flex:1 0 auto;
}

/* HERO */
.hero{
  margin-top:18px;
  border:1px solid var(--stroke);
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border-radius:22px;
  padding:34px 28px;
  backdrop-filter: blur(10px);
}

.hero h1{
  margin:0 0 10px;
  font-size:44px;
  line-height:1.05;
}

.hero p{
  margin:0;
  color:var(--muted);
  max-width:70ch;
}

/* CARDS */
.section{margin-top:18px}

.card{
  border:1px solid var(--stroke);
  background: rgba(255,255,255,.05);
  border-radius:20px;
  padding:22px;
  backdrop-filter: blur(10px);
}

/* FORMS */
.form-shell{
  max-width:820px;
  margin:18px auto 0;
}

.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}

.form-grid .full{grid-column:1 / -1}

label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:rgba(255,255,255,.82);
  margin:10px 0 8px;
}

input,textarea{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  color:var(--text);
  outline:none;
}

textarea{
  min-height:110px;
  resize:vertical;
}

.small-note{
  color:var(--muted);
  font-size:12px;
  margin-top:8px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:44px;
  border:none;
  border-radius:999px;
  font-weight:800;
  color:#061523;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  cursor:pointer;
  margin-top:14px;
}

.btn:active{
  transform: translateY(1px);
}

.error{
  color:#ffb4b4;
  font-weight:700;
  margin-top:10px;
}

/* homepage feature cards */
.features{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  margin-top:16px;
}

.feature{
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.04);
  border-radius:18px;
  padding:18px;
}

.feature h3{
  margin:0 0 8px;
  font-size:16px;
}

.feature p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

/* FOOTER */
.tmt-footer{
  width:100%;
  padding:18px;
  flex:0 0 auto;
}

.tmt-footer .inner{
  max-width:1100px;
  margin:0 auto;
  padding:14px 16px;
  border:1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  border-radius:18px;
  backdrop-filter: blur(10px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.tmt-footer .muted{
  color:var(--muted);
  font-size:13px;
}

.tmt-footer .links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* Responsive */
@media (max-width: 900px){
  .hero h1{font-size:36px}
  .features{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}

/* ========================================================= */
/* ✅ TEACHERS PAGE MOBILE OVERFLOW FIX (TARGETED + SAFE) */
/* ========================================================= */

#teachersList,
#teachersList * {
  max-width:100%;
  box-sizing:border-box;
}

#teachersList > * {
  width:100%;
  overflow:hidden;
}

#teachersList a,
#teachersList button {
  max-width:100%;
  white-space:normal;
}
/* ========================================================= */
/* ✅ TEACHER PROFILE (teacher.html) MOBILE PORTRAIT FIX      */
/* Prevent avatar/initials from overlapping the name          */
/* ========================================================= */

#tPhoto,
#tInitials{
  width:72px !important;
  height:72px !important;
  border-radius:14px !important; /* match your square style */
}

#tPhoto{
  object-fit:cover !important;
}

#tInitials{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:26px !important;
  font-weight:900 !important;
  line-height:1 !important;
  letter-spacing:.5px !important;
  position:relative !important;
  overflow:hidden !important;
}

/* Make sure long names don’t collide and can wrap */
#tName{
  word-break:break-word;
}

/* On small portrait screens, reduce heading size a bit */
@media (max-width: 520px){
  #tName{
    font-size:34px !important;
    line-height:1.08 !important;
  }

