/* Yuitor Smart Classes — violet, gold and ivory brand system */
:root {
  color-scheme: light;
  --yu-brand-plum: #281a38;
  --yu-brand-violet: #65408a;
  --yu-brand-violet-deep: #4e2f70;
  --yu-brand-gold: #d9a638;
  --yu-brand-cream: #fbfaf7;
  --yu-brand-lavender: #f3eff7;
  --yu-brand-line: #e5deeb;
  --yu-brand-copy: #4d4558;
  --yu-brand-muted: #776f82;
}

:root:has(.yu-home), #root:has(.yu-home), #root, #root.dark {
  color-scheme: light;
  --background: 42 33% 98%;
  --foreground: 267 27% 17%;
  --card: 0 0% 100%;
  --card-foreground: 267 27% 17%;
  --card-border: 267 19% 89%;
  --border: 267 19% 89%;
  --input: 267 17% 84%;
  --ring: 269 37% 43%;
  --primary: 269 37% 39%;
  --primary-foreground: 0 0% 100%;
  --secondary: 39 69% 38%;
  --secondary-foreground: 0 0% 100%;
  --muted: 270 27% 96%;
  --muted-foreground: 267 12% 43%;
  --accent: 42 80% 51%;
  --accent-foreground: 267 27% 17%;
  --sidebar: 42 33% 98%;
  --sidebar-foreground: 267 27% 17%;
  --sidebar-border: 267 19% 89%;
  --sidebar-primary: 269 37% 39%;
  --sidebar-primary-foreground: 0 0% 100%;
  --sidebar-accent: 270 27% 96%;
  --sidebar-accent-foreground: 267 27% 17%;
  --sidebar-ring: 269 37% 43%;
}

html { scroll-behavior: smooth; background: var(--yu-brand-cream); }
body, #root {
  min-height: 100%;
  background: var(--yu-brand-cream) !important;
  color: var(--yu-brand-plum);
  font-family: "DM Sans", "Manrope", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#root :is(h1,h2,h3,h4,h5,h6) {
  color: var(--yu-brand-plum);
  font-family: "Manrope", "DM Sans", Arial, sans-serif;
  letter-spacing: -0.035em;
}
#root ::selection { color: #fff; background: var(--yu-brand-violet); }
#root a:focus-visible, #root button:focus-visible, #root input:focus-visible,
#root select:focus-visible, #root textarea:focus-visible {
  outline: 3px solid #d9a638 !important;
  outline-offset: 3px;
}
#root main.yu-monochrome-main:not(:has(.yu-home)) {
  background: var(--yu-brand-cream) !important;
  color: var(--yu-brand-copy) !important;
}
#root main:not(.yu-home) :is(h1,h2,h3,h4) { color: var(--yu-brand-plum); }
#root main:not(.yu-home) :is(input,select,textarea) {
  border-color: #dcd3e5;
  border-radius: 12px;
  background-color: #fff;
  color: var(--yu-brand-plum);
  box-shadow: 0 1px 2px rgb(40 26 56 / 4%);
}
#root main:not(.yu-home) :is(input,select,textarea)::placeholder { color: #91899a; }
#root main:not(.yu-home) table { border-color: var(--yu-brand-line); }
#root main:not(.yu-home) thead { background: #eee7f4 !important; }
#root main:not(.yu-home) thead th { color: var(--yu-brand-plum) !important; }
#root main:not(.yu-home) tbody tr:nth-child(even) { background: #faf8fc; }
#root main:not(.yu-home) a:not([class*="bg-"]) { text-underline-offset: 3px; }

/* Shared desktop header */
#root .yu-shared-header { top: 8px; font-family: "DM Sans", sans-serif; }
#root .yu-shared-header > div:first-child {
  background: linear-gradient(90deg, #281a38, #3b2850 52%, #281a38) !important;
  border-color: rgb(255 255 255 / 13%) !important;
}
#root .yu-shared-header > div:first-child .container :is(a,span) {
  color: #f5eff9 !important;
  font-size: 12px !important;
  letter-spacing: .015em;
}
#root .yu-shared-header > div:first-child svg { color: #e4bb61 !important; }
#root .yu-shared-header > div:nth-child(2) {
  background: rgb(255 255 255 / 97%) !important;
  border-color: #e8e1ed !important;
  box-shadow: 0 9px 28px rgb(40 26 56 / 8%);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
#root .yu-shared-header [data-testid="link-logo"] > div:first-child,
#root footer.yu-shared-footer a.group > div:first-child {
  border-color: #e8dfef !important;
  background: #f6f1fa !important;
  box-shadow: 0 5px 15px rgb(40 26 56 / 8%);
}
#root .yu-shared-header [data-testid="link-logo"] span:first-of-type,
#root .yu-shared-header [data-testid="link-logo"] p:first-of-type {
  background: none !important;
  background-image: none !important;
  color: var(--yu-brand-violet-deep) !important;
  -webkit-text-fill-color: var(--yu-brand-violet-deep) !important;
  font-family: "Manrope", sans-serif !important;
  font-size: clamp(18px, 1.7vw, 22px) !important;
  font-weight: 800 !important;
  letter-spacing: -.045em !important;
}
#root .yu-shared-header [data-testid="link-logo"] span:last-of-type,
#root .yu-shared-header [data-testid="link-logo"] p:last-of-type {
  color: #766982 !important;
  -webkit-text-fill-color: #766982 !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .11em !important;
}
#root .yu-shared-header nav > a,
#root .yu-shared-header nav > div > button,
#root .yu-shared-header [data-testid="link-enquire"],
#root .yu-shared-header [data-testid="link-call-now"] {
  font-family: "DM Sans", sans-serif;
  font-size: 14px !important;
  font-weight: 650 !important;
}
#root .yu-shared-header [data-testid="link-enquire"] {
  border: 1px solid #65408a !important;
  border-radius: 11px !important;
  background: linear-gradient(135deg, #65408a, #4e2f70) !important;
  box-shadow: 0 7px 18px rgb(78 47 112 / 18%);
  color: #fff !important;
}
#root .yu-shared-header [data-testid="link-call-now"] {
  border: 1px solid #ded3e8 !important;
  border-radius: 11px !important;
  background: #fff !important;
  color: var(--yu-brand-violet-deep) !important;
}
#root .yu-shared-header nav > a:hover,
#root .yu-shared-header nav > div > button:hover { color: var(--yu-brand-violet) !important; }
#root .yu-shared-header [data-testid="button-dark-toggle"] { display: none !important; }
#root .yu-shared-header [data-testid="button-hamburger"] {
  border: 1px solid #e6deec;
  color: var(--yu-brand-violet-deep) !important;
}
#root .yu-shared-header [data-testid="button-hamburger"]:hover { background: #f3eff7 !important; }
#root .yu-mobile-menu {
  background: #fcfafc !important;
  color: var(--yu-brand-plum) !important;
}
#root .yu-mobile-menu > div:first-child {
  background: linear-gradient(135deg, #4e2f70, #2d1d40) !important;
  color: #fff !important;
}
#root .yu-mobile-menu > div:first-child p:first-of-type {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
#root .yu-mobile-menu > div:first-child p:nth-of-type(2) { color: #e7d9f2 !important; }
#root .yu-mobile-menu > div:first-child :is(a,span) { color: #f5eefb !important; }
#root .yu-mobile-menu a { font-size: 15px !important; }

/* Shared footer: confident, high-contrast brand treatment */
#root footer.yu-shared-footer {
  margin-top: 36px !important;
  overflow: hidden;
  border-top: 1px solid #4d3a5d;
  background: linear-gradient(145deg, #241832, #1b1428 68%, #21172f) !important;
  color: #eee8f2 !important;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  line-height: 1.7;
}
#root footer.yu-shared-footer > div:first-child {
  background: #30213f !important;
  border-color: rgb(255 255 255 / 12%) !important;
}
#root footer.yu-shared-footer > div:first-child > div { padding-block: 18px !important; }
#root footer.yu-shared-footer > div:first-child > div > div > div {
  min-height: 54px;
  padding: 8px 10px;
  border-right: 1px solid rgb(255 255 255 / 12%);
}
#root footer.yu-shared-footer > div:first-child > div > div > div:last-child { border-right: 0; }
#root footer.yu-shared-footer > div:first-child svg { color: #e4bb61 !important; }
#root footer.yu-shared-footer > div:first-child :is(p,span) { color: #f1eaf6 !important; }
#root footer.yu-shared-footer > div:first-child p:first-child {
  color: #fff !important;
  font-family: "Manrope", sans-serif;
  font-size: 16px !important;
  font-weight: 750 !important;
}
#root footer.yu-shared-footer :is(p,a,span,li) { color: #d6cde0 !important; }
#root footer.yu-shared-footer :is(h1,h2,h3,h4),
#root footer.yu-shared-footer a.group p:first-of-type {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: "Manrope", sans-serif;
}
#root footer.yu-shared-footer a.group p:last-of-type,
#root footer.yu-shared-footer [class*="text-[#7BB5FF]"] { color: #e4bb61 !important; }
#root footer.yu-shared-footer a:hover { color: #f1cb72 !important; }
#root footer.yu-shared-footer a[href^="https://wa.me"] {
  border-radius: 12px;
  background: #16874d !important;
  color: #fff !important;
}
#root footer.yu-shared-footer a[href^="https://wa.me"] * { color: #fff !important; }
#root footer.yu-shared-footer svg { color: #d9b35f !important; }
#root footer.yu-shared-footer > div:nth-child(2) { padding-top: 42px !important; }
#root footer.yu-shared-footer > div:nth-child(2) > div:first-child { gap: 34px !important; }
#root footer.yu-shared-footer > div:last-child { border-top: 1px solid rgb(255 255 255 / 12%); }
#root footer.yu-shared-footer > div:last-child > div { padding-top: 16px !important; }

/* Branded links, fee notes and floating actions */
.yu-injected-fee-link {
  border-color: #ded2e9 !important;
  border-radius: 10px !important;
  background: #f4eef9 !important;
  color: #563477 !important;
}
.yu-injected-fee-link:hover {
  border-color: #65408a !important;
  background: #65408a !important;
  color: #fff !important;
}
.yu-fee-policy-note {
  border-color: #e0d5eb !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, #faf7fc, #f1eaf7) !important;
  color: var(--yu-brand-plum) !important;
  box-shadow: 0 14px 34px rgb(40 26 56 / 7%) !important;
}
.yu-fee-policy-note h2, .yu-fee-policy-note strong { color: var(--yu-brand-violet-deep) !important; }
#root .yu-shared-whatsapp {
  border: 0 !important;
  background: #188b51 !important;
  box-shadow: 0 10px 28px rgb(24 139 81 / 26%) !important;
}
#root .yu-shared-sticky-inquiry {
  background: linear-gradient(135deg, #65408a, #4e2f70) !important;
  box-shadow: 0 10px 28px rgb(78 47 112 / 25%) !important;
}

/* Homepage: fresh palette, clearer hierarchy, and polished card surfaces */
.yu-home {
  --yu-paper: #fbfaf7;
  --yu-ink: #281a38;
  --yu-soft-ink: #4d4358;
  --yu-dim: #776f82;
  --yu-line: #e4ddea;
  --yu-lilac: #8059a3;
  --yu-lilac-dark: #563477;
  --yu-gold: #d9a638;
  background: var(--yu-paper) !important;
  color: var(--yu-ink) !important;
  font-family: "DM Sans", sans-serif !important;
  letter-spacing: -.018em;
}
.yu-home :is(h1,h2,h3) { color: var(--yu-ink); }
.yu-home h1 em, .yu-home h2 em { color: var(--yu-lilac-dark) !important; }
.yu-home .yu-hero {
  min-height: min(850px, 100svh);
  background:
    radial-gradient(ellipse at 82% 39%, rgb(224 210 239 / 47%), transparent 34%),
    radial-gradient(ellipse at 10% 96%, rgb(246 232 199 / 25%), transparent 29%),
    #fbfaf7;
}
.yu-home .yu-hero-grid {
  background-image: linear-gradient(rgb(82 52 112 / 5%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(82 52 112 / 5%) 1px, transparent 1px) !important;
  background-size: 76px 76px;
  -webkit-mask-image: linear-gradient(90deg, rgb(0 0 0 / 32%), transparent 90%);
  mask-image: linear-gradient(90deg, rgb(0 0 0 / 32%), transparent 90%);
}
.yu-home .yu-kicker, .yu-home .yu-eyebrow { color: #69438a !important; }
.yu-home .yu-live-dot {
  background: var(--yu-gold) !important;
  box-shadow: 0 0 0 4px rgb(217 166 56 / 19%) !important;
}
.yu-home .yu-hero-sub, .yu-home .yu-about-body > p,
.yu-home .yu-method-intro, .yu-home .yu-section-heading > p,
.yu-home .yu-contact-intro { color: #5d5369 !important; }
.yu-home .yu-button { border-radius: 12px !important; font-size: 14px; }
.yu-home .yu-button-dark {
  background: linear-gradient(135deg, #65408a, #4e2f70) !important;
  box-shadow: 0 9px 23px rgb(78 47 112 / 21%) !important;
  color: #fff !important;
}
.yu-home .yu-button-dark:hover { background: #fff !important; color: #563477 !important; border-color: #65408a !important; }
.yu-home .yu-button-light {
  border-color: #ded2e9 !important;
  background: rgb(255 255 255 / 84%) !important;
  color: #563477 !important;
}
.yu-home .yu-button-light:hover { background: #f2ecf8 !important; }
.yu-home .yu-hero-foot, .yu-home .yu-hero-bottom,
.yu-home .yu-art-label, .yu-home .yu-section-index,
.yu-home .yu-data-tag, .yu-home .yu-course-no,
.yu-home .yu-course-main > span, .yu-home .yu-course-note,
.yu-home .yu-course-price small, .yu-home .yu-fee-footnote,
.yu-home .yu-stat span, .yu-home .yu-method-aside > span,
.yu-home .yu-service-no, .yu-home .yu-service p,
.yu-home .yu-faculty-count, .yu-home .yu-faculty-meta > span,
.yu-home .yu-quote-top, .yu-home .yu-quote-by small,
.yu-home .yu-carousel-controls, .yu-home .yu-stories-bottom > p,
.yu-home .yu-contact-bottom { color: #766c81 !important; }
.yu-home .yu-section-index > span, .yu-home .yu-label-index,
.yu-home .yu-data-tag svg, .yu-home .yu-tag-number,
.yu-home .yu-course-price strong, .yu-home .yu-course-arrow,
.yu-home .yu-text-link svg { color: #68438b !important; }
.yu-home .yu-mini-mark {
  border-color: #dfd2e8 !important;
  background: #f4eef8;
  color: #563477 !important;
}
.yu-home .yu-data-tag {
  border-color: rgb(109 74 142 / 18%) !important;
  border-radius: 13px !important;
  background: rgb(255 255 255 / 91%) !important;
  box-shadow: 0 14px 36px rgb(40 26 56 / 10%) !important;
}
.yu-home .yu-hero-art:before {
  background: radial-gradient(circle, rgb(146 109 179 / 21%), rgb(225 189 112 / 15%) 45%, transparent 72%) !important;
}
.yu-home .yu-art-label { color: #766c81 !important; }
.yu-home .yu-about { background: #fbfaf7; }
.yu-home .yu-stats {
  border-color: #e5deeb !important;
}
.yu-home .yu-stat { border-color: #e5deeb !important; }
.yu-home .yu-stat strong { color: #382447; font-size: clamp(20px, 2.35vw, 31px); letter-spacing: -.045em; }
.yu-home .yu-courses { background: #f4eff8 !important; }
.yu-home .yu-course-list { border-color: #e2d9ea !important; }
.yu-home .yu-course-row {
  margin-bottom: 8px;
  padding: 12px 18px 12px 14px !important;
  border: 1px solid #e6deec !important;
  border-left: 4px solid #73508f !important;
  border-radius: 13px;
  background: rgb(255 255 255 / 94%) !important;
  box-shadow: 0 4px 14px rgb(40 26 56 / 3%);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}
.yu-home .yu-course-row:nth-child(4n+2) { border-left-color: #d9a638 !important; }
.yu-home .yu-course-row:nth-child(4n+3) { border-left-color: #a786c4 !important; }
.yu-home .yu-course-row:nth-child(4n+4) { border-left-color: #8b6c35 !important; }
.yu-home .yu-course-row:hover {
  transform: translateY(-2px);
  background: #fff !important;
  box-shadow: 0 13px 29px rgb(40 26 56 / 9%);
}
.yu-home .yu-course-main strong { color: #2e203d; }
.yu-home .yu-method { background: #fff; }
.yu-home .yu-method-aside img { border-radius: 15px; }
.yu-home .yu-services { border-color: #e6deec !important; }
.yu-home .yu-service { border-color: #e6deec !important; }
.yu-home .yu-service > svg:not(.yu-service-arrow) { color: #79519b !important; }
.yu-home .yu-service:nth-child(5n+2) > svg:not(.yu-service-arrow) { color: #ad8127 !important; }
.yu-home .yu-faculty { background: #f2edf7 !important; }
.yu-home .yu-faculty-photo {
  border: 1px solid #e4dbea;
  border-radius: 15px;
  background: #e8e1ed;
}
.yu-home .yu-faculty-photo img { filter: saturate(.92); }
.yu-home .yu-faculty-meta { border-color: #dfd6e6 !important; }
.yu-home .yu-stories { background: #fbfaf7; }
.yu-home .yu-quote-card {
  border-color: #e5deeb !important;
  border-radius: 15px !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgb(40 26 56 / 6%) !important;
}
.yu-home .yu-quote-top strong { color: #644184 !important; }
.yu-home .yu-quote-card blockquote { color: #30213d; }
.yu-home .yu-student-initial { background: #f0e9f6 !important; color: #563477 !important; }
.yu-home .yu-carousel-controls button {
  border-color: #e0d7e8 !important;
  border-radius: 9px;
  background: #fff;
  color: #563477 !important;
}
.yu-home .yu-carousel-controls button:hover { background: #563477 !important; color: #fff !important; }
.yu-home .yu-faq { background: #f5f1f7; }
.yu-home .yu-faq-list, .yu-home .yu-faq-item { border-color: #e3dbea !important; }
.yu-home .yu-faq-item button strong { color: #30213d; }
.yu-home .yu-faq-num { color: #896ca0 !important; }
.yu-home .yu-faq-item button > svg { color: #765390 !important; }
.yu-home .yu-contact {
  background: linear-gradient(128deg, #281a38 0%, #352344 58%, #21162e 100%) !important;
  color: #f8f3fb !important;
}
.yu-home .yu-contact:before {
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d9a638, transparent);
  content: "";
}
.yu-home .yu-contact-shape:after {
  background: linear-gradient(90deg, #281a38 8%, rgb(40 26 56 / 91%) 45%, rgb(40 26 56 / 52%)) !important;
}
.yu-home .yu-contact :is(h2,.section-index,p) { color: #f8f3fb; }
.yu-home .yu-contact .yu-section-index { color: #e0d4eb !important; }
.yu-home .yu-contact .yu-section-index > span,
.yu-home .yu-contact .yu-section-index > i,
.yu-home .yu-contact .yu-eyebrow,
.yu-home .yu-contact h2 em { color: #eac66f !important; }
.yu-home .yu-contact-intro { color: #e0d8e8 !important; }
.yu-home .yu-button-white { background: #fff !important; color: #4e2f70 !important; }
.yu-home .yu-button-white:hover { background: #f2edf7 !important; }
.yu-home .yu-button-outline { border-color: rgb(255 255 255 / 38%) !important; color: #fff !important; }
.yu-home .yu-button-outline:hover { border-color: #eac66f !important; background: #eac66f !important; color: #281a38 !important; }
.yu-home .yu-contact-details { border-color: rgb(255 255 255 / 20%) !important; color: #e3dcea !important; }
.yu-home .yu-contact-details a:hover { color: #f3cf78 !important; }
.yu-home .yu-contact-details svg { color: #eac66f !important; }
.yu-home .yu-contact-bottom { border-color: rgb(255 255 255 / 18%); color: #d0c4dc !important; }
.yu-home .yu-cursor { border-color: #d9a638; background: #65408a; box-shadow: 0 0 0 1px #65408a; }
.yu-home .yu-home h1 { text-wrap: balance; }
.yu-home :is(.yu-about,.yu-courses,.yu-method,.yu-faculty,.yu-stories,.yu-faq) { scroll-margin-top: 115px; }

@media (max-width: 1023px) {
  #root footer.yu-shared-footer > div:nth-child(2) > div:first-child { gap: 22px !important; }
}
@media (max-width: 760px) {
  #root .yu-shared-header > div:nth-child(2) > div { min-height: 64px; }
  #root .yu-shared-header [data-yu-mobile-fee-link] {
    border-color: #e3d8ec !important;
    background: #f5eff9 !important;
    color: #563477 !important;
  }
  #root footer.yu-shared-footer { margin-top: 26px !important; }
  #root footer.yu-shared-footer > div:first-child > div > div > div {
    padding: 8px 4px;
    border-right: 0;
  }
  #root footer.yu-shared-footer > div:nth-child(2) {
    padding-top: 30px !important;
    padding-bottom: 24px !important;
  }
  #root footer.yu-shared-footer > div:nth-child(2) > div:first-child {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px 16px !important;
  }
  .yu-home .yu-hero {
    min-height: auto;
    padding-top: 127px;
    background:
      radial-gradient(ellipse at 79% 59%, rgb(224 210 239 / 48%), transparent 43%),
      #fbfaf7;
  }
  .yu-home .yu-hero-foot { border-color: #e5deeb !important; }
  .yu-home .yu-course-row { padding: 11px 10px !important; }
  .yu-home .yu-faculty-photo { border-radius: 12px; }
  .yu-home .yu-contact { padding-top: 60px; }
}
@media (max-width: 390px) {
  .yu-home .yu-hero { padding-top: 118px; }
  .yu-home .yu-hero-foot { font-size: 11px !important; }
  .yu-home .yu-course-row { grid-template-columns: 24px minmax(0,1fr) auto 15px; }
  .yu-home .yu-course-price { min-width: 76px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #root *, #root *::before, #root *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Announcement strip — useful information without false urgency */
#root .yu-shared-notice {
  border-bottom: 1px solid rgb(217 166 56 / 38%);
  background: #281a38 !important;
  color: #f7f0fb !important;
}
#root .yu-shared-notice svg { color: #e4bb61 !important; }
#root .yu-shared-notice button { color: #e5d9ee !important; }
#root .yu-shared-notice button:hover { color: #fff !important; }
@media (max-width: 640px) {
  /* The bottom mobile action bar already includes Call, WhatsApp and Enquire. */
  #root .yu-shared-whatsapp,
  #root .yu-shared-sticky-inquiry { display: none !important; }
}
/* Page hero banners share the new palette while retaining readable white copy. */
#root main.yu-monochrome-main section.relative:has(> img) > div.absolute.inset-0.bg-gradient-to-br {
  background-image: linear-gradient(132deg, rgb(40 26 56 / 91%), rgb(78 47 112 / 76%) 58%, rgb(54 36 71 / 61%)) !important;
}
#root main.yu-monochrome-main section.relative:has(> img) h1 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-shadow: 0 2px 20px rgb(20 12 31 / 28%);
}
#root main.yu-monochrome-main section.relative:has(> img) p { color: rgb(255 255 255 / 88%) !important; }
#root main.yu-monochrome-main section.relative:has(> img) span {
  border-color: rgb(231 201 128 / 48%) !important;
  background-color: rgb(231 201 128 / 16%) !important;
  color: #f2d48d !important;
}
#root [data-testid^="stat-"] {
  min-width: 0;
  min-height: 102px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-color: #e5deeb !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 8px 22px rgb(40 26 56 / 5%) !important;
}
#root [data-testid^="stat-"] > div:first-child {
  font-size: clamp(15px, 1.35vw, 19px) !important;
  line-height: 1.25 !important;
  white-space: normal;
  overflow-wrap: anywhere;
}
#root [data-testid^="stat-"] > div:last-child {
  color: #766c81 !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}
/* Retheme remaining legacy utility colours used by interior-page components. */
#root [class*="bg-[#F5EEFF]"] { background-color: #f4eff8 !important; }
#root [class*="bg-[#0056B3]"] { background-color: #4e2f70 !important; }
#root [class*="bg-[#003D80]"] { background-color: #352046 !important; }
#root [class*="bg-[#0A0A0A]"] { background-color: #281a38 !important; }
#root [class*="bg-[#111111]"] { background-color: #30213f !important; }
#root [class*="bg-[#7BB5FF]"] { background-color: #d9a638 !important; }
#root [class*="bg-[#BFDFFF]"] { background-color: #f2d48d !important; }
#root [class*="text-[#0056B3]"], #root [class*="text-[#1677FF]"],
#root [class*="text-[#00458F]"] { color: #563477 !important; -webkit-text-fill-color: #563477 !important; }
#root [class*="text-[#7BB5FF]"] { color: #e4bb61 !important; -webkit-text-fill-color: #e4bb61 !important; }
#root [class*="text-[#BFDFFF]"] { color: #f2d48d !important; -webkit-text-fill-color: #f2d48d !important; }
#root [class*="border-[#0056B3]"], #root [class*="border-[#7BB5FF]"] { border-color: #d9a638 !important; }
#root [class*="from-[#0056B3]"] {
  --tw-gradient-from: #65408a !important;
  --tw-gradient-to: #4e2f70 !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
/* Keep page content readable if optional scroll-animation chunks fail to initialise. */
.yu-home .yu-reveal { opacity: 1 !important; transform: none !important; }

/* The custom pointer dot was distracting and is not useful on touch devices. */
.yu-home .yu-cursor { display: none !important; }

/* Give the class-progress chart a real, bounded height for percentage bars. */
#root main .h-40.flex.items-end > .flex-1.flex.flex-col {
  height: 100%;
  min-width: 0;
  min-height: 0;
  justify-content: flex-end;
}
#root main .h-40.flex.items-end > .flex-1 > div.w-full {
  flex: 0 0 auto;
  min-height: 3px;
  max-height: 100%;
}

/* Prevent long labels and tables from widening the viewport on phones. */
#root main { min-width: 0; }
#root main :is(h1,h2,h3,p,a,button) { overflow-wrap: anywhere; }
#root main img { max-width: 100%; }
@media (max-width: 640px) {
  #root main table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  #root main :is(input,select,textarea,button) { max-width: 100%; }
}

/* The top announcement banner was overlapping the shared navigation and page copy. */
#root .yu-shared-notice { display: none !important; }
#root .yu-shared-header { top: 0 !important; }
#root > .min-h-screen > .mt-8 { margin-top: 0 !important; }

/* The legacy page-heading rule also reaches dark homepage panels; keep their headings high-contrast. */
#root .yuitor-home .yh-contact h2 { color: #fff !important; }
#root .yuitor-home .yh-exam-intro h3 { color: #fff !important; }
