/* V01–V07. All rules require the server-side frontend scope class. */
body.ct-site-presentation {
  --ct-polish-ink: #14233b;
  --ct-polish-muted: #4a5c67;
  --ct-polish-surface: #fff;
  --ct-polish-line: #71858c;
  --ct-polish-focus: #087c75;
}
html[data-ct-theme="dark"] body.ct-site-presentation {
  --ct-polish-ink: #e6f0ef;
  --ct-polish-muted: #bacdcb;
  --ct-polish-surface: #1a2930;
  --ct-polish-line: #8aa5aa;
  --ct-polish-focus: #ffd17c;
}
/* V01: reserve real flow space; never float over a legal or learning action. */
.ct-site-presentation .ct-presentation-utilities {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
  gap: 16px; padding: 24px max(20px, calc((100% - 1180px) / 2));
  margin: 0; max-width: 100%; box-sizing: border-box;
  background: var(--ct-polish-surface); color: var(--ct-polish-ink);
  border-top: 1px solid var(--ct-polish-line);
}
.ct-site-presentation:has(.tutor-learning-area-footer) .ct-presentation-utilities,
.ct-site-presentation:has(.tutor-dashboard-nav-mobile-list) .ct-presentation-utilities {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}
.ct-site-presentation .ct-presentation-utilities > .country-selector.weglot-dropdown {
  position: relative !important; inset: auto !important; float: none !important;
  transform: none !important; margin: 0 !important; width: 180px; max-width: 100%;
  z-index: 2; background: var(--ct-polish-surface); color: var(--ct-polish-ink);
  border: 1px solid var(--ct-polish-line); border-radius: 8px;
}
.ct-site-presentation .ct-presentation-utilities .country-selector.weglot-dropdown ul {
  top: auto !important; bottom: 100% !important; left: 0; right: auto;
  max-height: min(45vh, 280px); overflow-y: auto;
  background: var(--ct-polish-surface); color: var(--ct-polish-ink);
  border: 1px solid var(--ct-polish-line); border-radius: 8px;
}
.ct-site-presentation .ct-presentation-utilities .country-selector :is(label,a) {
  color: var(--ct-polish-ink) !important; min-height: 44px; box-sizing: border-box;
}
.ct-site-presentation .ct-presentation-utilities .cmplz-manage-consent {
  position: static !important; transform: none !important; margin: 0 !important;
  width: auto !important; min-height: 44px; padding: 10px 16px !important;
  color: var(--ct-polish-ink) !important; background: var(--ct-polish-surface) !important;
  border: 1px solid var(--ct-polish-line) !important; border-radius: 8px !important;
  font: inherit; opacity: 1 !important;
}
/* V02: semantic tables retain readable columns inside a named keyboard region. */
.ct-site-presentation .ct-presentation-table-scroll {
  display: block; width: 100%; max-width: 100%; overflow-x: auto;
  margin-block: 20px; border: 1px solid var(--ct-polish-line); border-radius: 9px;
  overscroll-behavior-inline: contain; scrollbar-gutter: stable;
}
body.ct-site-presentation .tutor-lesson-wrapper .ct-presentation-table-scroll > table {
  display: table !important; width: 100% !important; max-width: none !important;
  min-width: var(--ct-presentation-table-min, 640px); margin: 0 !important;
  border-collapse: collapse; table-layout: auto !important;
}
body.ct-site-presentation .tutor-lesson-wrapper .ct-presentation-table-scroll :is(th,td) {
  min-width: 9rem; padding: 12px 16px; white-space: normal;
  word-break: normal !important; overflow-wrap: break-word !important;
  vertical-align: top;
}
.ct-site-presentation .ct-presentation-table-hint {
  margin: 8px 0 !important; color: var(--ct-polish-muted); font-size: 14px !important;
}
.ct-site-presentation .ct-presentation-table-scroll:focus-visible,
.ct-site-presentation .ct-presentation-utilities :is(label,a,button):focus-visible {
  outline: 3px solid var(--ct-polish-focus) !important; outline-offset: 3px;
}
/* V03: correct and incorrect native review states remain distinct and readable. */
.ct-site-presentation .tutor-quiz-question-option .tutor-label {
  color: var(--ct-polish-ink) !important;
}
html[data-ct-theme="dark"] .ct-site-presentation .tutor-quiz-question-option :is(.tutor-color-success,.tutor-color-danger) {
  color: #e6f0ef !important;
}
/* Tutor4.1.3 review badges: preserve text/state/icon, give each state readable ink. */
.ct-site-presentation .tutor-quiz-summary-page .tutor-quiz-question-header-score {
  color: var(--ct-polish-muted) !important;
}
.ct-site-presentation .tutor-quiz-summary-page .tutor-quiz-question-header-status .tutor-badge-success {
  color: #146c2e !important; background: #e7f4e9 !important; border-color: #146c2e !important;
}
.ct-site-presentation .tutor-quiz-summary-page .tutor-quiz-question-header-status .tutor-badge-error {
  color: #99251b !important; background: #fff0ee !important; border-color: #99251b !important;
}
html[data-ct-theme="dark"] .ct-site-presentation .tutor-quiz-summary-page .tutor-quiz-question-header-status .tutor-badge-success {
  color: #b9f6c7 !important; background: #103b22 !important; border-color: #b9f6c7 !important;
}
html[data-ct-theme="dark"] .ct-site-presentation .tutor-quiz-summary-page .tutor-quiz-question-header-status .tutor-badge-error {
  color: #ffd5d1 !important; background: #4b2326 !important; border-color: #ffd5d1 !important;
}
.ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"] {
  color: #14233b !important; background: #f1f6f4 !important; border-color: #71858c !important;
}
.ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"] :is(span,small,p) { color: #263e48 !important; }
.ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"] svg { color: inherit !important; }
.ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"][aria-selected="true"] {
  background: #dceee9 !important; border-color: #087c75 !important;
}
html[data-ct-theme="dark"] .ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"] {
  color: #e6f0ef !important; background: #1a2930 !important; border-color: #8aa5aa !important;
}
html[data-ct-theme="dark"] .ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"] :is(span,small,p) { color: #d1e0de !important; }
html[data-ct-theme="dark"] .ct-site-presentation.ct-presentation-account [role="tablist"] [role="tab"][aria-selected="true"] { background: #24443f !important; }
.ct-site-presentation .ct-presentation-settings-controls :is(a,button) {
  color: var(--ct-polish-ink) !important; background: var(--ct-polish-surface) !important;
  border: 1px solid var(--ct-polish-line) !important; min-width: 44px; min-height: 44px;
}
.ct-site-presentation .tutor-course-details-info > div {
  color: var(--ct-polish-muted) !important;
}
/* V04: fix flex sizing at its source; do not clip the page or drawer globally. */
@media (max-width: 991px) {
  body.ct-site-presentation .tutor-learning-area .tutor-learning-header-content {
    display: flex; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box;
    padding-inline: 12px; gap: 8px;
  }
  body.ct-site-presentation .tutor-learning-area .tutor-learning-header-title {
    flex: 1 1 0%; min-width: 0 !important; max-width: 100%;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  body.ct-site-presentation .tutor-learning-area .tutor-learning-header-content > .tutor-flex.tutor-ml-auto {
    flex: 0 0 auto; margin-left: 0 !important; padding-right: 0 !important;
  }
  body.ct-site-presentation .tutor-learning-area .tutor-learning-header-toggle-mobile {
    flex: 0 0 48px; width: 48px; min-width: 48px; margin: 0 !important;
  }
  body.ct-site-presentation .tutor-learning-area .tutor-learning-header-toggle-mobile .tutor-btn-icon {
    width: 48px; min-width: 48px; max-width: 48px; margin: 0; box-sizing: border-box;
    color: var(--ct-polish-ink) !important; background: var(--ct-polish-surface) !important;
    border-color: var(--ct-polish-line) !important;
  }
}
/* V06: merged legal navigation retains all distinct URLs, including fragments. */
.ct-site-presentation .ct-presentation-legal {
  display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; max-width: 100%;
}
.ct-site-presentation .ct-presentation-legal a { min-height: 44px; display: inline-flex; align-items: center; }
.ct-site-presentation .ct-presentation-header-duplicate { display: none !important; }
/* V07: keep fiscal content and official destination, remove only empty chrome. */
.ct-site-presentation.ct-presentation-fiscal .ct-core-content { max-width: 820px; padding-block: 32px 48px; }
.ct-site-presentation.ct-presentation-fiscal .ct-core-entry { padding: clamp(22px, 4vw, 36px); }
.ct-site-presentation.ct-presentation-fiscal .ct-core-entry__title:empty { display: none; }
.ct-site-presentation.ct-presentation-fiscal .ct-core-entry > .ct-m1-shell {
  width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: transparent !important; color: var(--ct-polish-ink);
}
.ct-site-presentation.ct-presentation-fiscal .ct-m1-shell .ct-m1-page-title {
  color: var(--ct-polish-ink); font-size: clamp(30px, 5vw, 44px); line-height: 1.15;
}
.ct-site-presentation.ct-presentation-fiscal .ct-m1-data-fiscal { color: var(--ct-polish-ink); }

/* V08: the collapsed course description must blend into its dark surface. */
html[data-ct-theme="dark"] body.ct-site-presentation .tutor-course-details-content.tutor-toggle-more-content.tutor-toggle-more-collapsed::before {
  background: linear-gradient(180deg, rgba(25,38,46,0) 1.31%, rgba(25,38,46,.72) 15.41%, #19262e 100%) !important;
}
/* V09: replace Woo's missing icon-font glyph; preserve the notice and native actions. */
body.ct-site-presentation :is(.woocommerce-info,.woocommerce-message,.woocommerce-error)::before {
  content: "i" !important; font-family: system-ui,sans-serif !important; font-weight: 700;
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 20px; height: 20px; line-height: 20px; border: 1px solid currentColor;
  border-radius: 50%; left: 18px !important; top: 20px !important; color: inherit !important;
}
body.ct-site-presentation .woocommerce-error::before { content: "!" !important; }
body.ct-site-presentation .woocommerce-message::before { content: "✓" !important; }
body.ct-site-presentation :is(.woocommerce-info,.woocommerce-message,.woocommerce-error) {
  padding-inline-start: 54px !important;
}
body.ct-site-presentation.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  color: #fff !important; background: #087c75 !important;
}
body.ct-site-presentation.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: #065e59 !important;
}

/* Tutor 4.1.3 removed the legacy page wrapper around this sticky navigation. */
html[data-ct-theme="dark"] body.ct-site-presentation.single-courses .tutor-course-details-tab > .tutor-is-sticky {
  background: var(--ct-mode-canvas, #0d171c) !important;
}
html[data-ct-theme="dark"] body.ct-site-presentation.single-courses .tutor-course-details-tab > .tutor-is-sticky > .tutor-nav {
  background: transparent !important;
  border-bottom-color: var(--ct-mode-muted, #b2c3c1) !important;
}
html[data-ct-theme="dark"] body.ct-site-presentation.single-courses .tutor-course-details-tab > .tutor-is-sticky .tutor-nav-link {
  color: var(--ct-mode-link, #7bd1ca) !important;
}
html[data-ct-theme="dark"] body.ct-site-presentation.single-courses .tutor-course-details-tab > .tutor-is-sticky .tutor-nav-link.is-active {
  color: var(--ct-mode-ink, #edf4f3) !important;
  border-bottom-color: var(--ct-mode-link, #7bd1ca) !important;
}
