/* V5.0.54 global mobile design system. Activated by mobile-ui-v554.js. */
html.xls-mobile-ui-v554 {
  --m554-bg: #f4f7fb;
  --m554-surface: #ffffff;
  --m554-surface-soft: #f8fafc;
  --m554-text: #17324f;
  --m554-muted: #6f8298;
  --m554-line: #dfe7f0;
  --m554-blue: #2574df;
  --m554-blue-soft: #eaf3ff;
  --m554-green: #21a675;
  --m554-cyan: #1596a8;
  --m554-violet: #7659d6;
  --m554-amber: #ba7a18;
  --m554-danger: #bf4c5d;
  --m554-radius: 18px;
  --m554-shadow: 0 8px 24px rgba(38, 66, 99, .08);
  --m554-tabbar: 68px;
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: hidden;
  background: var(--m554-bg);
}

html.xls-mobile-ui-v554 *,
html.xls-mobile-ui-v554 *::before,
html.xls-mobile-ui-v554 *::after { box-sizing: border-box; }

html.xls-mobile-ui-v554 body {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding-bottom: calc(var(--m554-tabbar) + 26px + env(safe-area-inset-bottom, 0px)) !important;
  overflow-x: hidden !important;
  background: linear-gradient(180deg, #eef5fd 0, var(--m554-bg) 210px, var(--m554-bg) 100%) !important;
  color: var(--m554-text);
  overscroll-behavior-x: none;
}

html.xls-mobile-ui-v554 body.mock-exam-mode,
html.xls-mobile-ui-v554 body.xls-v554-exam { padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important; }

html.xls-mobile-ui-v554 img,
html.xls-mobile-ui-v554 video,
html.xls-mobile-ui-v554 canvas { max-width: 100%; }

html.xls-mobile-ui-v554 a,
html.xls-mobile-ui-v554 button,
html.xls-mobile-ui-v554 input,
html.xls-mobile-ui-v554 select,
html.xls-mobile-ui-v554 textarea { -webkit-tap-highlight-color: transparent; }

html.xls-mobile-ui-v554 button,
html.xls-mobile-ui-v554 [role="button"],
html.xls-mobile-ui-v554 a { touch-action: manipulation; }

html.xls-mobile-ui-v554 input,
html.xls-mobile-ui-v554 select,
html.xls-mobile-ui-v554 textarea {
  max-width: 100% !important;
  min-width: 0 !important;
  font-size: 16px !important;
}

html.xls-mobile-ui-v554 button,
html.xls-mobile-ui-v554 .btn,
html.xls-mobile-ui-v554 [class*="-btn"] { min-height: 44px; }

html.xls-mobile-ui-v554 .app,
html.xls-mobile-ui-v554 main,
html.xls-mobile-ui-v554 .container,
html.xls-mobile-ui-v554 .page-shell,
html.xls-mobile-ui-v554 .wrap {
  max-width: 680px !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html.xls-mobile-ui-v554 table { max-width: 100%; }
html.xls-mobile-ui-v554 pre,
html.xls-mobile-ui-v554 code { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Header: compact, single-line and safe-area aware. */
html.xls-mobile-ui-v554 body .topbar,
html.xls-mobile-ui-v554 body header.topbar,
html.xls-mobile-ui-v554 body .profile-topbar {
  width: calc(100% - 24px) !important;
  max-width: 680px !important;
  min-height: 56px !important;
  height: auto !important;
  margin: max(10px, env(safe-area-inset-top, 0px)) auto 12px !important;
  padding: 8px 10px !important;
  border: 1px solid rgba(212, 225, 239, .96) !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, .96) !important;
  color: var(--m554-text) !important;
  box-shadow: 0 5px 18px rgba(41, 72, 108, .07) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  overflow: hidden !important;
}

html.xls-mobile-ui-v554 body .topbar .brand,
html.xls-mobile-ui-v554 body .profile-topbar .brand {
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  color: var(--m554-text) !important;
  text-decoration: none !important;
}

html.xls-mobile-ui-v554 body .topbar .logo,
html.xls-mobile-ui-v554 body .topbar .xls-v430-logo-box,
html.xls-mobile-ui-v554 body .profile-topbar .logo {
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 38px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: #edf4fc !important;
}

html.xls-mobile-ui-v554 body .topbar .logo img,
html.xls-mobile-ui-v554 body .topbar .xls-v430-logo-box img,
html.xls-mobile-ui-v554 body .profile-topbar .logo img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}

html.xls-mobile-ui-v554 body .topbar .brand-title,
html.xls-mobile-ui-v554 body .profile-topbar .brand-title {
  display: block !important;
  max-width: min(58vw, 290px) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

html.xls-mobile-ui-v554 body .topbar .brand-sub,
html.xls-mobile-ui-v554 body .profile-topbar .brand-sub { display: none !important; }

html.xls-mobile-ui-v554 body #xlsMobileAppMenuBtnV424 {
  width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  flex: 0 0 40px !important;
  padding: 0 !important;
  border: 1px solid var(--m554-line) !important;
  border-radius: 13px !important;
  background: #f7f9fc !important;
  color: #536b84 !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body #xlsMobileAppMenuBtnV424::before {
  content: "≡" !important;
  font-size: 20px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}

/* The one bottom navigation owner. */
html.xls-mobile-ui-v554 body .xls-mobile-tabbar:not(#xlsMobileTabbarV439) { display: none !important; }
html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 {
  position: fixed !important;
  z-index: 2147483000 !important;
  left: 12px !important;
  right: 12px !important;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  width: auto !important;
  max-width: 656px !important;
  height: var(--m554-tabbar) !important;
  margin: 0 auto !important;
  padding: 6px !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 3px !important;
  border: 1px solid rgba(211, 224, 239, .96) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: 0 12px 36px rgba(34, 61, 94, .16) !important;
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 a {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 5px 2px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  border-radius: 16px !important;
  background: transparent !important;
  color: #718398 !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 a.is-active {
  background: var(--m554-blue-soft) !important;
  color: var(--m554-blue) !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 svg,
html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 .xls-tab-icon svg {
  width: 21px !important;
  height: 21px !important;
  max-width: 21px !important;
  max-height: 21px !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

html.xls-mobile-ui-v554 body.mock-exam-mode #xlsMobileTabbarV439,
html.xls-mobile-ui-v554 body.xls-v554-exam #xlsMobileTabbarV439 { display: none !important; }

html.xls-mobile-ui-v554 body .mobile-bottom-nav {
  position: fixed !important;
  z-index: 2147483000 !important;
  left: 12px !important;
  right: 12px !important;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  width: auto !important;
  max-width: 656px !important;
  height: var(--m554-tabbar) !important;
  margin: 0 auto !important;
  padding: 6px !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 3px !important;
  border: 1px solid rgba(211, 224, 239, .96) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: 0 12px 36px rgba(34, 61, 94, .16) !important;
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

html.xls-mobile-ui-v554 body .mobile-bottom-nav a {
  min-width: 0 !important;
  padding: 5px 2px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  border-radius: 16px !important;
  color: #718398 !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

html.xls-mobile-ui-v554 body .mobile-bottom-nav a.active,
html.xls-mobile-ui-v554 body .mobile-bottom-nav a.is-active {
  background: var(--m554-blue-soft) !important;
  color: var(--m554-blue) !important;
}

html.xls-mobile-ui-v554 body .mobile-bottom-nav svg {
  width: 21px !important;
  height: 21px !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* Shared surface and form rhythm. */
html.xls-mobile-ui-v554 body .card,
html.xls-mobile-ui-v554 body [class$="-card"],
html.xls-mobile-ui-v554 body [class*="-card "] {
  max-width: 100%;
  overflow-wrap: anywhere;
}

html.xls-mobile-ui-v554 body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html.xls-mobile-ui-v554 body select,
html.xls-mobile-ui-v554 body textarea {
  border: 1px solid #d7e2ee !important;
  border-radius: 13px !important;
  background: #fff !important;
  color: var(--m554-text) !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="text"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="search"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="tel"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="email"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="password"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 input[type="number"],
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 select,
html.xls-mobile-ui-v554 body.xls-mobile-ui-v554 textarea { font-size: 16px !important; }

html.xls-mobile-ui-v554 body input:focus,
html.xls-mobile-ui-v554 body select:focus,
html.xls-mobile-ui-v554 body textarea:focus {
  border-color: #79aef1 !important;
  outline: 3px solid rgba(37, 116, 223, .12) !important;
  outline-offset: 0 !important;
}

html.xls-mobile-ui-v554 body .modal-dialog,
html.xls-mobile-ui-v554 body [class*="modal-card"] {
  width: calc(100% - 24px) !important;
  max-width: 520px !important;
  max-height: calc(100dvh - 32px) !important;
  padding: 20px !important;
  overflow: auto !important;
  border-radius: 20px !important;
}

html.xls-mobile-ui-v554 body .table-wrap,
html.xls-mobile-ui-v554 body .table-card,
html.xls-mobile-ui-v554 body [class*="table-container"] {
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* Profile: explicitly hide desktop sidebar even when Safari requests desktop layout. */
html.xls-mobile-ui-v554 body.profile-page { background: var(--m554-bg) !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-icon-sprite {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-sidebar { display: none !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-app-v539 {
  width: 100% !important;
  max-width: 680px !important;
  display: block !important;
  margin: 0 auto !important;
  padding: 0 12px 24px !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-content { min-width: 0 !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-mobile-hero {
  width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 11px !important;
  margin: 0 0 10px !important;
  padding: 13px !important;
  border: 1px solid var(--m554-line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  color: var(--m554-text) !important;
  box-shadow: var(--m554-shadow) !important;
}

html.xls-mobile-ui-v554 body.profile-page .mobile-avatar-button {
  width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 2px solid #dce9f7 !important;
  border-radius: 16px !important;
  background: #eef5fc !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body.profile-page .mobile-avatar-button img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}

html.xls-mobile-ui-v554 body.profile-page .mobile-hello {
  display: block !important;
  color: #7b8ea3 !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-mobile-hero h1 {
  margin: 2px 0 3px !important;
  overflow: hidden !important;
  color: var(--m554-text) !important;
  font-size: 17px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-mobile-hero p {
  margin: 0 !important;
  overflow: hidden !important;
  color: var(--m554-muted) !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  opacity: 1 !important;
}

html.xls-mobile-ui-v554 body.profile-page .mobile-hero-actions { display: block !important; }
html.xls-mobile-ui-v554 body.profile-page .mobile-member-pill {
  max-width: 92px !important;
  padding: 6px 8px !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--m554-blue-soft) !important;
  color: var(--m554-blue) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

html.xls-mobile-ui-v554 body.profile-page .mobile-logout-button { display: none !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-mobile-nav {
  position: static !important;
  inset: auto !important;
  z-index: 1 !important;
  width: 100% !important;
  transform: none !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 4px !important;
  margin: 0 0 16px !important;
  padding: 5px !important;
  border: 1px solid var(--m554-line) !important;
  border-radius: 16px !important;
  background: #edf2f7 !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-mobile-nav button {
  min-width: 0 !important;
  min-height: 38px !important;
  padding: 0 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: transparent !important;
  color: #667b91 !important;
  box-shadow: none !important;
}

html.xls-mobile-ui-v554 body.profile-page .profile-mobile-nav button > span { display: none !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-mobile-nav button strong { font-size: 11px !important; font-weight: 750 !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-mobile-nav button.is-active {
  background: #fff !important;
  color: var(--m554-blue) !important;
  box-shadow: 0 2px 8px rgba(38, 70, 107, .08) !important;
}

html.xls-mobile-ui-v554 body.profile-page .section-title-row {
  min-height: 0 !important;
  margin: 0 2px 12px !important;
}

html.xls-mobile-ui-v554 body.profile-page .section-title-row h1 { margin: 3px 0 !important; font-size: 22px !important; line-height: 1.25 !important; }
html.xls-mobile-ui-v554 body.profile-page .section-title-row p { margin: 0 !important; font-size: 12px !important; line-height: 1.5 !important; color: var(--m554-muted) !important; }
html.xls-mobile-ui-v554 body.profile-page .sync-chip { display: none !important; }

html.xls-mobile-ui-v554 body.profile-page .overview-hero-card {
  min-height: 0 !important;
  display: block !important;
  padding: 17px !important;
  border: 1px solid #dbe6f1 !important;
  border-radius: 20px !important;
  background: linear-gradient(145deg, #fff, #f6f9fc) !important;
  color: var(--m554-text) !important;
  box-shadow: var(--m554-shadow) !important;
}

html.xls-mobile-ui-v554 body.profile-page .overview-hero-copy h2 { margin: 11px 0 6px !important; color: var(--m554-text) !important; font-size: 18px !important; line-height: 1.35 !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-hero-copy p { margin: 0 !important; color: var(--m554-muted) !important; font-size: 12px !important; line-height: 1.55 !important; }
html.xls-mobile-ui-v554 body.profile-page .member-label,
html.xls-mobile-ui-v554 body.profile-page .member-valid-chip { min-height: 24px !important; padding: 5px 8px !important; border-radius: 999px !important; font-size: 9px !important; }
html.xls-mobile-ui-v554 body.profile-page .member-label { background: var(--m554-blue-soft) !important; color: var(--m554-blue) !important; }
html.xls-mobile-ui-v554 body.profile-page .member-valid-chip { background: #eef2f6 !important; color: #60758a !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; margin-top: 14px !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-actions > * { min-height: 42px !important; padding: 0 10px !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 12px !important; font-size: 12px !important; font-weight: 800 !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-actions .btn-primary { border: 1px solid var(--m554-blue) !important; background: var(--m554-blue) !important; color: #fff !important; box-shadow: none !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-actions .btn-ghost { border: 1px solid #cfe0f2 !important; background: #f1f6fc !important; color: #2d679f !important; box-shadow: none !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-member-meter { margin-top: 14px !important; display: flex !important; align-items: center !important; gap: 12px !important; text-align: left !important; }
html.xls-mobile-ui-v554 body.profile-page .meter-ring { width: 62px !important; height: 62px !important; flex: 0 0 62px !important; padding: 5px !important; }
html.xls-mobile-ui-v554 body.profile-page .meter-ring > div { padding-top: 14px !important; }
html.xls-mobile-ui-v554 body.profile-page .meter-ring strong { font-size: 19px !important; }
html.xls-mobile-ui-v554 body.profile-page .overview-member-meter p { font-size: 10px !important; color: var(--m554-muted) !important; }

html.xls-mobile-ui-v554 body.profile-page .metric-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 9px !important; margin-top: 10px !important; }
html.xls-mobile-ui-v554 body.profile-page .metric-card { min-width: 0 !important; min-height: 76px !important; padding: 12px !important; border: 1px solid var(--m554-line) !important; border-radius: 17px !important; background: #fff !important; box-shadow: none !important; }
html.xls-mobile-ui-v554 body.profile-page .metric-card:nth-child(n + 3) { display: none !important; }
html.xls-mobile-ui-v554 body.profile-page .metric-icon { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; border-radius: 11px !important; }
html.xls-mobile-ui-v554 body.profile-page .profile-icon { width: 19px !important; height: 19px !important; max-width: 19px !important; max-height: 19px !important; display: block !important; fill: none !important; stroke: currentColor !important; }
html.xls-mobile-ui-v554 body.profile-page .metric-card span { font-size: 10px !important; }
html.xls-mobile-ui-v554 body.profile-page .metric-card strong { font-size: 19px !important; }
html.xls-mobile-ui-v554 body.profile-page .dashboard-grid,
html.xls-mobile-ui-v554 body.profile-page .learning-summary-grid,
html.xls-mobile-ui-v554 body.profile-page .benefits-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
html.xls-mobile-ui-v554 body.profile-page .panel-card,
html.xls-mobile-ui-v554 body.profile-page .member-status-card,
html.xls-mobile-ui-v554 body.profile-page .benefits-grid article { padding: 15px !important; border: 1px solid var(--m554-line) !important; border-radius: 18px !important; background: #fff !important; box-shadow: none !important; }

/* Landing, study hubs and tool lists. */
html.xls-mobile-ui-v554 body.xls-v554-home .mobile-app-home-v386,
html.xls-mobile-ui-v554 body.xls-v554-study .app,
html.xls-mobile-ui-v554 body.xls-v554-tools .xls-tools-center-app { width: 100% !important; padding-left: 12px !important; padding-right: 12px !important; }
html.xls-mobile-ui-v554 body .mobile-core-v439,
html.xls-mobile-ui-v554 body .xls-tools-grid { gap: 10px !important; }
html.xls-mobile-ui-v554 body .mobile-core-card-v439,
html.xls-mobile-ui-v554 body .xls-tool-card { min-width: 0 !important; min-height: 0 !important; padding: 14px !important; border: 1px solid var(--m554-line) !important; border-radius: 18px !important; box-shadow: none !important; }
html.xls-mobile-ui-v554 body .mobile-core-card-v439.primary { background: linear-gradient(135deg, #2979e6, #2065c7) !important; box-shadow: 0 10px 26px rgba(37, 116, 223, .18) !important; }
html.xls-mobile-ui-v554 body .mobile-core-text-v439 strong,
html.xls-mobile-ui-v554 body .xls-tool-copy strong { font-size: 16px !important; line-height: 1.3 !important; }
html.xls-mobile-ui-v554 body .mobile-core-text-v439 span,
html.xls-mobile-ui-v554 body .xls-tool-copy span { font-size: 11px !important; line-height: 1.5 !important; }
html.xls-mobile-ui-v554 body .mobile-core-icon-v439,
html.xls-mobile-ui-v554 body .xls-tool-icon { width: 40px !important; height: 40px !important; flex: 0 0 40px !important; border-radius: 13px !important; }
html.xls-mobile-ui-v554 body .mobile-core-icon-v439 svg { width: 21px !important; height: 21px !important; }
html.xls-mobile-ui-v554 body .xls-tools-hero { padding: 19px 17px !important; border-radius: 20px !important; box-shadow: 0 10px 26px rgba(37, 116, 223, .16) !important; }
html.xls-mobile-ui-v554 body .xls-tools-hero h1 { margin: 10px 0 6px !important; font-size: 23px !important; }
html.xls-mobile-ui-v554 body .xls-tools-hero p { font-size: 12px !important; line-height: 1.55 !important; }

/* Search, AI selection and province query pages. */
html.xls-mobile-ui-v554 body.xls-v554-ai .app,
html.xls-mobile-ui-v554 body.xls-v554-query .app,
html.xls-mobile-ui-v554 body.province-query-page .app { width: 100% !important; padding-left: 12px !important; padding-right: 12px !important; }
html.xls-mobile-ui-v554 body .form-card,
html.xls-mobile-ui-v554 body .search,
html.xls-mobile-ui-v554 body .query-card { padding: 15px !important; border: 1px solid var(--m554-line) !important; border-radius: 19px !important; background: #fff !important; box-shadow: var(--m554-shadow) !important; }
html.xls-mobile-ui-v554 body .grid { min-width: 0; }
html.xls-mobile-ui-v554 body.xls-v554-ai .grid,
html.xls-mobile-ui-v554 body.xls-v554-query .grid,
html.xls-mobile-ui-v554 body.province-query-page .grid { grid-template-columns: 1fr !important; gap: 10px !important; }
html.xls-mobile-ui-v554 body.xls-v554-ai .hero h1,
html.xls-mobile-ui-v554 body.xls-v554-query .hero h1 { font-size: 24px !important; line-height: 1.25 !important; }
html.xls-mobile-ui-v554 body.xls-v554-ai .result,
html.xls-mobile-ui-v554 body.xls-v554-query .result { max-width: 100% !important; overflow-x: auto !important; }

/* Mock selection and exam reading experience. */
html.xls-mobile-ui-v554 body.xls-v554-mock .app,
html.xls-mobile-ui-v554 body.xls-v554-exam .app { width: 100% !important; padding-left: 12px !important; padding-right: 12px !important; }
html.xls-mobile-ui-v554 body.xls-v554-mock .page-head,
html.xls-mobile-ui-v554 body.xls-v554-mock .mock-start,
html.xls-mobile-ui-v554 body.xls-v554-mock .paper-card { padding: 15px !important; border-radius: 19px !important; box-shadow: none !important; }
html.xls-mobile-ui-v554 body.xls-v554-exam .question-card,
html.xls-mobile-ui-v554 body.xls-v554-exam .passage-card,
html.xls-mobile-ui-v554 body.xls-v554-exam .section-card { padding: 15px !important; border-radius: 18px !important; }
html.xls-mobile-ui-v554 body.xls-v554-exam .passage,
html.xls-mobile-ui-v554 body.xls-v554-exam [class*="passage"] p,
html.xls-mobile-ui-v554 body.xls-v554-exam article p { font-size: 15px !important; line-height: 1.8 !important; text-align: justify !important; text-indent: 2em; overflow-wrap: break-word; }
html.xls-mobile-ui-v554 body.xls-v554-exam .question-title,
html.xls-mobile-ui-v554 body.xls-v554-exam .question-text { font-size: 15px !important; line-height: 1.65 !important; }
html.xls-mobile-ui-v554 body.xls-v554-exam .option,
html.xls-mobile-ui-v554 body.xls-v554-exam [class*="option"] { min-width: 0 !important; min-height: 48px !important; font-size: 14px !important; }

/* Mind maps: usable canvas without page overflow. */
html.xls-mobile-ui-v554 body.xls-v554-mindmap { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important; background: #f4f7fb !important; }
html.xls-mobile-ui-v554 body.xls-v554-mindmap .mindmap-shell,
html.xls-mobile-ui-v554 body.xls-v554-mindmap .mindmap-app,
html.xls-mobile-ui-v554 body.xls-v554-mindmap main { width: 100% !important; max-width: none !important; min-width: 0 !important; }
html.xls-mobile-ui-v554 body.xls-v554-mindmap .mindmap-viewer,
html.xls-mobile-ui-v554 body.xls-v554-mindmap [class*="viewer"] { max-width: 100% !important; overflow: auto !important; -webkit-overflow-scrolling: touch; }
html.xls-mobile-ui-v554 body.xls-v554-mindmap .viewer-toolbar,
html.xls-mobile-ui-v554 body.xls-v554-mindmap [class*="toolbar"] { max-width: calc(100% - 16px) !important; flex-wrap: wrap !important; }

/* Authentication and member pages. */
html.xls-mobile-ui-v554 body.xls-v554-auth .auth-card,
html.xls-mobile-ui-v554 body.xls-v554-auth .login-card,
html.xls-mobile-ui-v554 body.xls-v554-member .member-card { width: calc(100% - 24px) !important; max-width: 480px !important; margin-left: auto !important; margin-right: auto !important; padding: 20px !important; border-radius: 20px !important; box-shadow: var(--m554-shadow) !important; }

@media (max-width: 370px) {
  html.xls-mobile-ui-v554 body .topbar,
  html.xls-mobile-ui-v554 body header.topbar { width: calc(100% - 16px) !important; margin-bottom: 8px !important; }
  html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 { left: 8px !important; right: 8px !important; }
  html.xls-mobile-ui-v554 body.profile-page .profile-app-v539 { padding-left: 8px !important; padding-right: 8px !important; }
  html.xls-mobile-ui-v554 body.profile-page .profile-mobile-hero { grid-template-columns: 46px minmax(0, 1fr) !important; }
  html.xls-mobile-ui-v554 body.profile-page .mobile-avatar-button { width: 46px !important; height: 46px !important; min-height: 46px !important; }
  html.xls-mobile-ui-v554 body.profile-page .mobile-hero-actions { display: none !important; }
  html.xls-mobile-ui-v554 body.profile-page .overview-actions { grid-template-columns: 1fr !important; }
}

@media (orientation: landscape) and (max-height: 500px) {
  html.xls-mobile-ui-v554 body #xlsMobileTabbarV439 { height: 58px !important; }
  html.xls-mobile-ui-v554 body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important; }
}

@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  html:not(.xls-mobile-ui-v554) body { /* Desktop intentionally untouched. */ }
}
