/* Teacher public profile — aligned with courses catalog + instructors */
.gl-tp { background: var(--bg, #F4F7FC); }
.gl-tp-hero { padding-bottom: clamp(40px, 6vw, 56px); }
.gl-tp-hero .sana-cat-hero__breadcrumb i { font-size: 0.6rem; opacity: 0.5; }
.gl-tp-hero .sana-cat-hero__title {
  font-size: clamp(1.55rem, 4vw, 2.25rem);
  margin-bottom: .35rem;
}
.gl-tp-hero__row {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.gl-tp-hero__ring {
  width: 112px;
  height: 112px;
  flex-shrink: 0;
  border-radius: 50%;
  padding: 4px;
  background: linear-gradient(135deg, var(--p-light), var(--gold));
  box-shadow: 0 16px 40px -18px rgba(0, 0, 0, .45);
}
.gl-tp-hero__ring img,
.gl-tp-hero__ring .av {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 900 2rem Cairo, sans-serif;
  color: #fff;
  background: linear-gradient(135deg, var(--p-dark), var(--p-light));
}
.gl-tp-hero__copy { min-width: 0; flex: 1; }
.gl-tp-hero__headline {
  margin: 0;
  max-width: 36rem;
  font: 700 .98rem/1.6 Tajawal, sans-serif;
  color: rgba(255, 255, 255, .86);
}
.gl-tp-hero .sana-inst-hero__eyebrow { margin-bottom: .65rem; }
.gl-tp-hero .sana-inst-hero__actions { margin-top: 1rem; }
.gl-tp-wrap { max-width: 1120px; padding-top: 1.5rem; padding-bottom: 3.5rem; }
.gl-tp-stack { display: grid; gap: 1rem; }
.gl-tp-layout { display: grid; gap: 1.25rem; }
@media (min-width: 992px) {
  .gl-tp-layout {
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 360px);
    align-items: start;
    gap: 1.5rem;
  }
}
.gl-tp-private {
  background: #fff;
  border: 1px solid #E8EEF8;
  border-radius: 18px;
  padding: 1.15rem 1.2rem;
  box-shadow: 0 10px 28px -20px rgba(11, 61, 145, .28);
}
.gl-tp-private__head { margin-bottom: .75rem; }
.gl-tp-private__head h2 {
  margin: 0 0 .25rem;
  font-family: Cairo, sans-serif;
  font-weight: 900;
  color: #0B1220;
  font-size: 1.15rem;
}
.gl-tp-private__head p { margin: 0; font: 600 .85rem Tajawal, sans-serif; color: #5B6577; }
.gl-tp-private__rail {
  display: flex;
  gap: .75rem;
  overflow-x: auto;
  padding-bottom: .35rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.gl-tp-private__rail::-webkit-scrollbar { height: 6px; }
.gl-tp-private__rail::-webkit-scrollbar-thumb { background: rgba(11, 61, 145, .25); border-radius: 999px; }
.gl-tp-private__card {
  flex: 0 0 min(260px, 78vw);
  scroll-snap-align: start;
  display: grid;
  gap: .45rem;
  text-decoration: none;
  color: inherit;
  background: #F4F7FC;
  border: 1px solid #E8EEF8;
  border-radius: 16px;
  padding: 1rem;
}
.gl-tp-private__card:hover { border-color: rgba(11, 61, 145, .28); }
.gl-tp-private__card strong { font: 800 .95rem Cairo, sans-serif; color: #0B1220; line-height: 1.35; }
.gl-tp-private__badge {
  display: inline-flex;
  width: fit-content;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: rgba(245, 184, 0, .18);
  color: #7A5A00;
  font: 800 .68rem Tajawal, sans-serif;
}
.gl-tp-private__meta { font: 700 .75rem Tajawal, sans-serif; color: #5B6577; }
.gl-tp-private__price { font: 800 .9rem Tajawal, sans-serif; color: #0B3D91; }
.gl-tp-card .gl-tp-private__rail { margin-top: .15rem; }
.gl-tp-modal[hidden] { display: none !important; }
.gl-tp-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 1rem;
}
.gl-tp-modal__backdrop { position: absolute; inset: 0; background: rgba(11, 18, 32, .62); }
.gl-tp-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(880px, 100%);
  border-radius: 18px;
  overflow: hidden;
  background: #0B1220;
  box-shadow: 0 24px 64px -24px rgba(0, 0, 0, .55);
}
.gl-tp-modal__close {
  position: absolute;
  top: .65rem;
  inset-inline-end: .65rem;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255, 255, 255, .14);
  color: #fff;
}
.gl-tp-video {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  background: #0B1220;
  aspect-ratio: 16/9;
  box-shadow: 0 14px 36px -20px rgba(11, 61, 145, .4);
}
.gl-tp-modal .gl-tp-video { border-radius: 0; box-shadow: none; }
.gl-tp-video iframe,
.gl-tp-video video,
.gl-tp-video img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  display: block;
}
.gl-tp-video video { object-fit: contain; background: #0B1220; }
.gl-tp-bio {
  margin: 0;
  font: 600 .95rem/1.85 Tajawal, sans-serif;
  color: #5B6577;
  white-space: pre-line;
}
.gl-tp-card {
  background: #fff;
  border: 1px solid #E8EEF8;
  border-radius: 18px;
  padding: 1.15rem 1.2rem;
  box-shadow: 0 10px 28px -20px rgba(11, 61, 145, .28);
}
.gl-tp-card h2,
.gl-tp-card h3 {
  margin: 0 0 .75rem;
  font-family: Cairo, sans-serif;
  font-weight: 900;
  color: #0B1220;
}
.gl-tp-card h2 { font-size: 1.15rem; }
.gl-tp-card h3 { font-size: 1rem; }
.gl-tp-aside { display: grid; gap: 1rem; }
@media (min-width: 992px) {
  .gl-tp-aside { position: sticky; top: 88px; }
}
.gl-tp-book-card .gl-tp-note { margin: .85rem 0; }
.gl-tp-cal + .gl-tp-bio,
.gl-tp-bio + .gl-tp-note { margin-top: .85rem; }
.gl-tp-book { display: grid; gap: .75rem; }
.gl-tp-style { display: grid; gap: .5rem; }
.gl-tp-choice {
  display: flex;
  gap: .55rem;
  align-items: flex-start;
  border: 1.5px solid #D7DDE6;
  border-radius: 14px;
  padding: .7rem .8rem;
  cursor: pointer;
  background: #F4F7FC;
}
.gl-tp-choice input { margin-top: .15rem; accent-color: #0B3D91; }
.gl-tp-choice:has(input:checked),
.gl-tp-choice:focus-within {
  border-color: #0B3D91;
  background: #EEF3FB;
}
.gl-tp-choice strong { display: block; font: 800 .82rem Tajawal, sans-serif; color: #0B1220; }
.gl-tp-choice small { display: block; margin-top: 3px; font: 600 .72rem Tajawal, sans-serif; color: #5B6577; }
.gl-tp-fields { display: grid; gap: .55rem; }
.gl-tp-fields[hidden],
.gl-tp-slots[hidden],
.gl-tp-book-pane[hidden] { display: none !important; }
.gl-tp-book-pane { display: grid; gap: .55rem; }
.gl-tp-field {
  display: block;
  font: 800 .78rem Tajawal, sans-serif;
  color: #0B3D91;
}
.gl-tp-field select {
  width: 100%;
  margin-top: .3rem;
  height: 42px;
  border-radius: 12px;
  border: 1.5px solid #D7DDE6;
  padding: 0 .75rem;
  font: 700 .82rem Tajawal, sans-serif;
  color: #0B1220;
  background: #fff;
}
.gl-tp-cal { display: grid; gap: .65rem; }
.gl-tp-cal__day {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: .55rem;
  align-items: start;
  padding: .55rem .65rem;
  border-radius: 12px;
  background: #F4F7FC;
}
@media (max-width: 420px) {
  .gl-tp-cal__day { grid-template-columns: 1fr; }
}
.gl-tp-cal__label { font: 800 .78rem Tajawal, sans-serif; color: #0B3D91; }
.gl-tp-cal__times { display: flex; flex-wrap: wrap; gap: 5px; }
.gl-tp-cal__t {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid rgba(11, 61, 145, .12);
  font: 700 .68rem Tajawal, sans-serif;
  color: #334155;
}
.gl-tp-note {
  margin: 0 0 1rem;
  padding: .75rem .85rem;
  border-radius: 12px;
  background: #FFF8E6;
  border: 1px solid #F5D98A;
  font: 700 .78rem/1.65 Tajawal, sans-serif;
  color: #7A5A00;
}
.gl-tp-note.is-ok { background: #ECFDF5; border-color: #A7F3D0; color: #065F46; }
.gl-tp-note.is-err { background: #FEF2F2; border-color: #FECACA; color: #991B1B; }
.gl-tp-slots { display: grid; gap: .45rem; max-height: 280px; overflow: auto; }
.gl-tp-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  text-align: start;
  padding: .55rem .7rem;
  border-radius: 10px;
  border: 1px solid rgba(11, 61, 145, .14);
  background: #F4F7FC;
  font: 700 .78rem Tajawal, sans-serif;
  color: #0B1220;
  cursor: pointer;
}
.gl-tp-slot input { margin: 0; accent-color: #0B3D91; }
.gl-tp-slot i { color: #0B3D91; }
.gl-tp-slot:hover { border-color: #0B3D91; background: #EEF3FB; }
.gl-tp-skills { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-tp-skill {
  padding: 6px 12px;
  border-radius: 999px;
  background: #EEF3FB;
  color: #0B3D91;
  border: 1px solid #E8EEF8;
  font: 800 .74rem Tajawal, sans-serif;
}
.gl-tp-exp { margin: 0; padding: 0; list-style: none; display: grid; gap: .55rem; }
.gl-tp-exp--after-skills { margin-top: .85rem; }
.gl-tp-exp li {
  display: flex;
  gap: .55rem;
  padding: .65rem .75rem;
  border-radius: 12px;
  background: #F4F7FC;
  font: 600 .86rem/1.65 Tajawal, sans-serif;
  color: #334155;
}
.gl-tp-exp li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #F5B800;
  margin-top: .45rem;
  flex-shrink: 0;
}
.gl-tp-actions { display: grid; gap: .45rem; }
.gl-tp-actions .sana-btn,
.gl-tp-book .sana-btn { justify-content: center; width: 100%; }

@media (max-width: 640px) {
  .gl-tp-hero__row { align-items: flex-start; }
  .gl-tp-hero__ring { width: 84px; height: 84px; }
}

/* Tutor apply */
.ta-page { background: var(--bg, #F4F7FC); }
.ta-wrap { max-width: 760px; margin: 0 auto; padding: 1.25rem 1.15rem 3.5rem; }
.ta-chip {
  display: inline-block;
  background: rgba(11, 61, 145, .1);
  color: #0B3D91;
  font: 800 .8rem Tajawal, sans-serif;
  padding: .35rem .75rem;
  border-radius: 999px;
  margin-bottom: 1rem;
}
.ta-title {
  margin: 0 0 .65rem;
  font-family: Cairo, sans-serif;
  font-weight: 900;
  font-size: clamp(1.45rem, 3.5vw, 2rem);
  color: #0B1220;
  line-height: 1.3;
}
.ta-sub { margin: 0 0 1.25rem; color: #5B6577; font: 600 .92rem/1.8 Tajawal, sans-serif; }
.ta-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 16px;
  padding: 1.15rem 1.2rem;
  margin-bottom: 1rem;
  box-shadow: 0 10px 28px -20px rgba(15, 23, 42, .22);
}
.ta-card h2 {
  margin: 0 0 .85rem;
  font-family: Cairo, sans-serif;
  font-weight: 900;
  font-size: 1.05rem;
  color: #0B1220;
}
.ta-grid { display: grid; gap: .85rem; }
@media (min-width: 640px) { .ta-grid--2 { grid-template-columns: 1fr 1fr; } }
.ta-field label {
  display: block;
  margin-bottom: .35rem;
  font: 800 .78rem Tajawal, sans-serif;
  color: #334155;
}
.ta-field label .req { color: #DC2626; }
.ta-field input,
.ta-field select,
.ta-field textarea {
  width: 100%;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 12px;
  padding: .7rem .85rem;
  font: 600 .88rem Tajawal, sans-serif;
  color: #0B1220;
  background: #fff;
}
.ta-field textarea { min-height: 110px; resize: vertical; }
.ta-field input[type=file] { padding: .55rem; background: #F4F7FC; font-size: .8rem; }
.ta-hint { margin: .35rem 0 0; font: 600 .72rem Tajawal, sans-serif; color: #8A94A6; }
.ta-err { margin: .3rem 0 0; color: #DC2626; font: 700 .75rem Tajawal, sans-serif; }
.ta-note {
  background: #FFF8E6;
  border: 1px solid #F5D98A;
  border-radius: 12px;
  padding: .75rem 1rem;
  margin-bottom: 1rem;
  font: 700 .84rem/1.7 Tajawal, sans-serif;
  color: #7A5A00;
}
.ta-ok {
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  border-radius: 12px;
  padding: .85rem 1rem;
  margin-bottom: 1rem;
  font: 700 .88rem/1.7 Tajawal, sans-serif;
  color: #065F46;
}
@media (max-width: 480px) {
  .ta-wrap { padding-inline: .9rem; }
  .ta-card { padding: 1rem .95rem; }
}
