/* OMAS Night 1.2 | Moove + Moodle 5.3.
 * Deliberate surface hierarchy: canvas > ONE card surface > transparent internals.
 * IMPORTANT: Never give backgrounds to .form-item, .form-setting, .card-body,
 * .sectionname, .section-header, or every arbitrary .box. They are layout wrappers,
 * and those broad selectors created the nested rectangles reported in 1.1.
 * All dark overrides are gated: disabling OMAS Night restores the theme unchanged.
 */
html[data-omasdark="on"][data-bs-theme="dark"] {
  color-scheme: dark;
  --night-canvas: #101c2b;
  --night-card: #1b2b3d;
  --night-inset: #152537;
  --night-hover: #263d51;
  --night-field: #1d3147;
  --night-border: #33485e;
  --night-divider: rgba(158, 190, 212, .13);
  --night-text: #edf4fb;
  --night-subtext: #b5c6d6;
  --night-accent: #75e0d4;
  --night-focus: #56d2c4;
  /* Bootstrap 5.3 and Moodle colour tokens. */
  --bs-body-bg: var(--night-canvas);
  --bs-body-color: var(--night-text);
  --bs-emphasis-color: #f7fbff;
  --bs-heading-color: var(--night-text);
  --bs-secondary-color: var(--night-subtext);
  --bs-secondary-bg: var(--night-card);
  --bs-tertiary-bg: var(--night-inset);
  --bs-border-color: var(--night-border);
  --bs-border-color-translucent: var(--night-divider);
  --bs-link-color: var(--night-accent);
  --bs-link-hover-color: #a3fff3;
  --bs-body-bg-rgb: 16, 28, 43;
  --bs-secondary-bg-rgb: 27, 43, 61;
  --bs-tertiary-bg-rgb: 21, 37, 55;
  --bs-light-rgb: 27, 43, 61;
  --bs-dark-rgb: 16, 28, 43;
  --mds-bg-surface-primary: var(--night-card);
  --mds-bg-surface-secondary: var(--night-inset);
  --mds-text-primary: var(--night-text);
  --mds-text-secondary: var(--night-subtext);
  --mds-border-primary: var(--night-border);
}

/* Canvas, text, links; never recolour figures, graphs, SVGs or images. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(body, #page-wrapper, #page, #page-content, .main-inner, #region-main, #region-main-box) {
  background: var(--night-canvas) !important;
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(#page-header, #region-main) :is(h1,h2,h3,h4,h5,h6) { color: var(--night-text); }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.text-muted,.dimmed_text,.form-text,.form-description,.description,.form-defaultinfo) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.text-dark,.text-body,.text-black) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] a:not(.btn):not(.nav-link) { color: var(--night-accent); }
html[data-omasdark="on"][data-bs-theme="dark"] a:not(.btn):not(.nav-link):hover { color: #adfff3; }

/* Global navigation - single fine divider, no outlines around every tab. */
html[data-omasdark="on"][data-bs-theme="dark"] nav.navbar.fixed-top {
  background: #19283b !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important; box-shadow: 0 1px 0 var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] nav.navbar.fixed-top :is(.nav-link,.navbar-brand,.usermenu a,.moremenu a) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] nav.navbar.fixed-top :is(.nav-link.active,.nav-link:hover,.moremenu a.active) { color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.secondary-navigation,.secondary-navigation .navigation,.secondary-navigation .moremenu) {
  background: #1b2b3d !important; border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .secondary-navigation .nav-link { color: #dce9f5 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .secondary-navigation :is(.nav-link.active,.nav-link:hover) { color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.drawer,.drawerheader,.drawercontent,.blockdrawer,.courseindex,#theme_boost-drawers-courseindex,#theme_boost-drawers-blocks) {
  background: #182739 !important; color: var(--night-text) !important; border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(.courseindex .courseindex-item,.drawer .nav-link) { color: #dce9f5 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.courseindex .courseindex-item:hover,.drawer .nav-link:hover,.courseindex .current) { background: var(--night-hover) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(#page-footer,footer#page-footer) { background: #19283b !important; color: var(--night-subtext) !important; }

/* Surface components: ONLY real containers receive a fill. Card contents remain transparent. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(.card,.block.card,.course-card,.dashboard-card,.coursebox,.generalbox,.modal-content,.popover,.dropdown-menu,.toast,.alert-secondary,.activity-item) {
  background-color: var(--night-card) !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(.card-body,.card-header,.card-footer,.form-item,.form-setting,.settingsform,.settingsform .form-item,.settingsform .form-setting,.adminsettings,.mform fieldset,.content-item-container) {
  background: transparent !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(.card-header,.card-footer,.nav-tabs,.list-group-item,.dropdown-divider,hr,.border-top,.border-bottom) {
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(.list-group-item,.dropdown-item,.popover,.modal-content) { background-color: var(--night-card) !important; color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.dropdown-item:hover,.dropdown-item:focus,.list-group-item.active) { background: var(--night-hover) !important; color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.nav-tabs .nav-link,.nav-pills .nav-link) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.nav-tabs .nav-link.active,.nav-pills .nav-link.active) { background: var(--night-hover) !important; color: var(--night-accent) !important; border-color: var(--night-divider) !important; }

/* Administration: make rows seamless instead of stacked dark boxes. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(#page-admin-search,#page-admin-setting-themesettingmoove,#page-admin-setting-themesettingboost,#page-admin-index) :is(.settingsform,.settingsform .form-item,.settingsform .form-setting,.form-item,.form-setting) {
  background: transparent !important; box-shadow: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(.settingsform,.adminsettings,.mform) :is(label,.form-label,.form-setting,.form-item .form-label,.form-defaultinfo,.form-setting p,.form-setting strong) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.settingsform,.adminsettings) :is(.form-description,.form-shortname,.form-defaultinfo,.form-item .description) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.settingsform,.mform) :is(.form-item,.form-setting) { border-color: var(--night-divider) !important; }

/* Moodle forms: recolour actual inputs, not their numerous parent wrappers. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(input.form-control,textarea.form-control,select.form-select,select.form-control,.custom-select,.input-group-text,.form-control:not([type="checkbox"]),.form-select) {
  background: var(--night-field) !important; color: var(--night-text) !important;
  border-color: #456078 !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] :is(input.form-control,textarea.form-control,select.form-select,.form-control,.form-select)::placeholder { color: #afc1d4 !important; opacity: 1; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.form-control,.form-select,input[type="text"],input[type="password"],textarea,select):focus-visible { outline-color: var(--night-focus); }
html[data-omasdark="on"][data-bs-theme="dark"] :is(input[type="checkbox"],input[type="radio"]) { accent-color: #3bd3c2; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.btn-secondary,.btn-light,.btn-outline-secondary) { background: #294158 !important; color: #f1f6fd !important; border-color: #3b5870 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.btn-secondary,.btn-light,.btn-outline-secondary):hover { background: #37546d !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.btn-primary,.btn-success) { color: #fff !important; }

/* Moodle file manager: one outer panel; interior widgets should not become tiles. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(.filemanager,.filemanager-container,.filepicker,.fp-repo-area,.fp-content,.fp-repo) { background-color: var(--night-inset) !important; color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.filemanager .fp-navbar,.filemanager .fp-toolbar,.filemanager .fp-pathbar,.filemanager .fp-header,.fp-repo-area .fp-navbar) {
  background: transparent !important; color: var(--night-text) !important; border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .filemanager :is(a,.fp-filename,.fp-path-folder-name) { color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .filemanager :is(.fp-file,.fp-thumbnail,.fp-iconview) { border-color: var(--night-divider) !important; }
/* Preserve thumbnails/images and file previews in their original colour space. */

/* Course index, modules and individual quiz blocks. No background on .sectionname/.section-header. */
html[data-omasdark="on"][data-bs-theme="dark"] .course-content :is(.course-section > .section-item,.section > .section-item) {
  background: var(--night-card) !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .course-content :is(.sectionname,.sectionname a,.sectionname .inplaceeditable,.course-section-header a,.course-section-header h2,.course-section-header h3) {
  color: var(--night-text) !important; background: transparent !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .course-content :is(.section-header,.course-section-header,.section-content,.section-item .content) { background: transparent !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.que,.que .info,.que .content,.que .formulation,.quizreviewsummary,.qnbutton) { color: var(--night-text) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.que .info,.que .formulation,.quizreviewsummary,.qnbutton) { background: var(--night-card) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(table.generaltable,.table) :is(th,td) { background: var(--night-card) !important; color: var(--night-text) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.table-striped,.generaltable) tbody tr:nth-child(odd) > * { background: #203247 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] :is(.alert-success,.alert-info,.alert-warning,.alert-danger) { border-width: 1px !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .alert-success { background: #173b35 !important; color: #c2f4d8 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .alert-info { background: #1d374b !important; color: #d0ecff !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .alert-warning { background: #44381f !important; color: #ffdfad !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .alert-danger { background: #492831 !important; color: #ffd2db !important; }

/* OMAS Making — scoped tokens first and only primary cards painted. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell {
  --oma-ink: var(--night-text); --oma-dark: var(--night-text);
  --oma-sub: var(--night-subtext); --oma-line: var(--night-divider);
  --oma-faint: var(--night-inset); --oma-accent: #67d4c8;
  --oma-shadow: 0 4px 18px rgba(0,0,0,.10);
  color: var(--night-text) !important; background: transparent !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-header,.oma-card,.oma-course-card,.oma-panel,.oma-question,.oma-dialog,.oma-picture-dialog,.oma-emoji-dialog,.oma-library-toolbar,.oma-report-row,.oma-contextcourse) {
  background: var(--night-card) !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important; box-shadow: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-main,.oma-library-grid,.oma-library-group,.oma-library-head,.oma-titlebar,.oma-section-title) { background: transparent !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-header,.oma-course-card,.oma-card,.oma-panel) :is(h1,h2,h3,strong,.oma-open) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-main h1,.oma-main h2,.oma-main h3,.oma-topnav a,.oma-brand b,.oma-shell label,.oma-card-arrow) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-library-head p,.oma-titlebar p,.oma-muted,.oma-help,.oma-tip,.oma-brand small,.oma-card-meta) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-topnav a.active,.oma-topnav a:hover,.oma-course-card:hover,.oma-btn.oma-outline,.oma-exit) {
  background: var(--night-hover) !important; color: #e8f4fa !important; border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-card-icon,.oma-number,.oma-type,.oma-state) { background: #254655 !important; color: var(--night-accent) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(input[type="text"],textarea,select,.oma-rich,.oma-editable,.oma-mini-editable) {
  background: var(--night-field) !important; color: var(--night-text) !important; border-color: #456078 !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-option-row,.oma-bulk-item,.oma-rich .oma-toolbar,.oma-picture-toolbar) {
  background: var(--night-inset) !important; color: var(--night-text) !important; border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-btn.oma-primary,.oma-btn.oma-publish,.oma-create-top) { background: #087e75 !important; color: white !important; border-color: transparent !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-picture-workspace canvas { background: #fff !important; }

/* OMAS Practice: white hero and answer labels were unreadable. Recolour both bg + ink. */
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app {
  --omaspr-ink: var(--night-text); --omaspr-muted: var(--night-subtext);
  --omaspr-border: var(--night-divider); --omaspr-card: var(--night-card);
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-panel,.omaspr-start-panel,.omaspr-chapters-panel,.omaspr-chapter-card,.omaspr-empty,.omaspr-mixed-chaptercard,.omaspr-completion-notice) {
  background: var(--night-card) !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-hero,.omaspr-mixed-hero) {
  background: #223b50 !important; color: var(--night-text) !important;
  border-color: transparent !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-hero h1,.omaspr-hero h2,.omaspr-mixed-hero h2,.omaspr-hero strong,.omaspr-hero p,.omaspr-section-head h3,.omaspr-aside-head h3,.omaspr-chapter-card h4,.omaspr-field-title h4) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-helper,.omaspr-muted,.omaspr-topline-note,.omaspr-chapter-question-count,.omaspr-overview-item small,.omaspr-chapter-stats small,.omaspr-chapter-top small,.omaspr-hero p) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-hero-icon,.omaspr-aside-icon,.omaspr-chapter-mark,.omaspr-overview-symbol) { background: var(--night-hover) !important; color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-chapter-choice,.omaspr-radio,.omaspr-field,.omaspr-chapter-card,.omaspr-chapter-top,.omaspr-chapter-stats,.omaspr-chapter-choice label) { color: var(--night-text) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-chapter-choice:has(input:checked),.omaspr-radio:has(input:checked)) { background: #254457 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-question,.omaspr-question-card,.omaspr-qcm,.omaspr-question-text,.omaspr-question-title,.omaspr-proposition,.omaspr-question-head) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-answer,.omaspr-answer-row,.omaspr-option,.omaspr-choice-row,.omaspr-answer-choice,.omaspr-proposition-row,label:has(input[type="checkbox"]),label:has(input[type="radio"])) {
  background: var(--night-inset) !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-answer,.omaspr-answer-row,.omaspr-option,.omaspr-choice-row,.omaspr-answer-choice,.omaspr-proposition-row) :is(span,strong,small) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-chapterbar,.omaspr-mixed-chapterbar) { background: #35495c !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(.omaspr-chapterbar span,.omaspr-mixed-chapterbar span) { background: #3acbbb !important; }

/* Login: two inputs have exactly equal TOTAL width. The eye button is part of
   the password input group, not a separate control that shortens the field. */
html[data-omasdark="on"][data-bs-theme="dark"] body:is(#page-login-index,.pagelayout-login) { background: var(--night-canvas) !important; color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index :is(.login-container,.loginform,.login-form,.login-panel,.login-form-container) {
  background: transparent !important; color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index :is(.login-container h1,.login-container h2,.loginform label,.loginform p,.login-form label) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform :is(input[type="text"],input[type="email"],input[type="password"],.form-control) {
  display: block !important; box-sizing: border-box !important; background: var(--night-field) !important;
  color: var(--night-text) !important; border: 1px solid #456078 !important;
  height: 54px !important; min-height: 54px !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform :is(#username,input[name="username"],input[type="email"]) {
  width: 100% !important; border-radius: 13px !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group {
  display: flex !important; width: 100% !important; align-items: stretch !important; flex-wrap: nowrap !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group :is(input[type="password"],input[type="text"],.form-control) {
  flex: 1 1 auto !important; width: 1% !important; min-width: 0 !important;
  border-radius: 13px 0 0 13px !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group :is(.input-group-append,.input-group-text,.passwordunmask,.btn-password-toggle,button) {
  flex: 0 0 54px !important; width: 54px !important; max-width: 54px !important;
  min-height: 54px !important; height: 54px !important;
  border-radius: 0 13px 13px 0 !important; border: 1px solid #456078 !important;
  background: #294057 !important; color: var(--night-text) !important;
  margin: 0 !important;
}
/* Avoid double 54px when an append wrapper contains the actual button. */
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group .input-group-append > :is(button,.input-group-text) {
  height: 100% !important; width: 100% !important; min-height: 0 !important;
  border-radius: inherit !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform input::placeholder { color: #aebfd1 !important; }
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform a { color: var(--night-accent) !important; }

/* A tiny menu stays above page content without changing the navbar style. */
html[data-omasdark="on"][data-bs-theme="dark"] #omasnight-control .omasnight-pill { background: #24364a !important; color: var(--night-text) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] #omasnight-control .omasnight-menu { background: #223549 !important; color: var(--night-text) !important; border-color: var(--night-border) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] #omasnight-control :is(.omasnight-option.is-active,.omasnight-option:hover) { background: #2b5058 !important; color: #b5fff4 !important; }

/* Print and embedded science assets keep normal colour. */
@media print {
  html[data-omasdark="on"][data-bs-theme="dark"] { color-scheme: light; }
  #omasnight-control { display: none !important; }
}
/* Quiet links in the authoring catalogue: labels no longer look like underlined rows. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-course-card,.oma-card) a { text-decoration: none !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-course-card,.oma-card) a:hover { color: var(--night-accent) !important; }
/* Keep a single card outline but remove the ornamental rule before "Open". */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-course-card .oma-open { border-top-color: var(--night-divider) !important; }
/* File manager file labels should never become bright white pills. */
html[data-omasdark="on"][data-bs-theme="dark"] .filemanager :is(.fp-file,.fp-filename,.fp-filename-field,.fp-iconview .fp-file) {
  background-color: transparent !important; color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
/* Expand/collapse affordance on course sections: match the section background. */
html[data-omasdark="on"][data-bs-theme="dark"] .course-content :is(.section-collapser,.section-expand,.section-collapse) {
  background: var(--night-field) !important; color: var(--night-accent) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .course-content .sectionname a { text-decoration: none !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .course-content .sectionname a:hover { color: var(--night-accent) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-course-card .oma-open { border-top: 0 !important; }

/* ---------------------------------------------------------------------------
   OMAS Night 1.3 — restrained UI polish / accessibility pass (15 Oct 2026)
   Only active in dark mode. Never invert user content, figures or images.
   The selectors below intentionally target named OMAS components, not every
   Moodle span/label/div; this prevents nested boxes in admin/file manager.
--------------------------------------------------------------------------- */

/* Normalise the link treatment on application controls, not lesson content. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-topnav a, .oma-course-card a, a.oma-open, a.oma-exit,
  .oma-card-arrow, .oma-btn, .oma-create-top, .oma-library-head a,
  .oma-titlebar a, .oma-header a, .oma-brand a
),
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-card a, .omaspr-hero a, .omaspr-topline a,
  .omaspr-course-switch a, .omaspr-footer-actions a, .omaspr-small-button,
  .omaspr-start-button, .omaspr-chapter-choice a
),
html[data-omasdark="on"][data-bs-theme="dark"] .course-content .sectionname a {
  text-decoration: none !important;
  text-underline-offset: .18em;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-topnav a, .oma-course-card a, a.oma-open, a.oma-exit
):focus-visible,
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-card a, .omaspr-hero a, .omaspr-footer-actions a
):focus-visible {
  outline: 2px solid var(--night-focus) !important;
  outline-offset: 3px;
  border-radius: 4px;
}
/* Education links remain clearly interactive without permanently underlining
   each chapter title or every highlighted word in an exercise. */
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-question a, .omaspr-question-card a, .omaspr-qcm a
) { color: var(--night-accent) !important; text-decoration: none !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-question a, .omaspr-question-card a, .omaspr-qcm a
):is(:hover,:focus-visible) { text-decoration: underline !important; text-underline-offset: 3px; }

/* Making nav: in 1.2 a light segmented-control backing could leave white text
   on white. Each piece now has an explicit coherent dark surface. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-topnav {
  background: var(--night-inset) !important;
  color: var(--night-text) !important;
  border: 1px solid var(--night-divider) !important;
  box-shadow: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-topnav a {
  color: var(--night-subtext) !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-topnav a:is(:hover,.active,[aria-current="page"]) {
  color: var(--night-text) !important;
  background: var(--night-hover) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(.oma-course-card,.oma-card) {
  box-shadow: none !important;
  border: 1px solid var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-course-card :is(.oma-open,.oma-card-meta) {
  text-decoration: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-course-card .oma-open {
  border-top: 0 !important;
}

/* Practice landing: chapter grid must NOT retain a big white frame or deeply
   nested outlines. Keep one card per chapter, a clear checked state. */
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-choice-grid,.omaspr-mixed-counts,.omaspr-form,.omaspr-field,
  .omaspr-overview,.omaspr-chapter-stats,.omaspr-chapter-body,
  .omaspr-chapter-top,.omaspr-footer-actions
) {
  background: transparent !important;
  box-shadow: none !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-choice,.omaspr-radio
) {
  background: var(--night-inset) !important;
  border: 1px solid var(--night-divider) !important;
  box-shadow: none !important;
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-choice,.omaspr-radio
):has(input:checked) {
  background: #224557 !important;
  border-color: #3e8d94 !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app .omaspr-chapter-choice :is(
  span,strong,small,p
),
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app .omaspr-radio :is(span,strong,small) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app .omaspr-chapter-choice :is(small,.omaspr-chapter-question-count) {
  color: var(--night-subtext) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-card,.omaspr-overview-item
) :is(h2,h3,h4,h5,p,small,strong,span) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app .omaspr-chapter-card :is(
  small,.omaspr-muted,.omaspr-chapter-question-count
) {
  color: var(--night-subtext) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-hero,.omaspr-mixed-hero
) :is(h1,h2,h3,strong,p,small,span:not(.omaspr-hero-icon)) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-hero,.omaspr-mixed-hero
) :is(.omaspr-hero-label,.omaspr-eyebrow) {
  color: #82e8dc !important;
}
/* Title, task number and subheads were navy-on-navy in the real screenshots. */
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-question,.omaspr-question-card,.omaspr-qcm,
  .omaspr-question-head,.omaspr-question-text,.omaspr-question-title
) :is(h1,h2,h3,h4,p,strong,span,small) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-question,.omaspr-question-card,.omaspr-qcm
) :is(.text-muted,.omaspr-muted,small) {
  color: var(--night-subtext) !important;
}

/* Practice exercise engine (mixed.php) may not use all index.php classes.
   Stay limited to these plugin pages; never recolour Moodle's global labels. */
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omasmix-question,.omasmix-qcm,.omasmix-question-card,
  .omasmix-question-text,.omasmix-question-title,.omasmix-question-head,
  .omasmix-question-number,.omasmix-proposition,.omasmix-answer-text
),
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omasmix-question,.omasmix-question-card,.omaspr-question,.omaspr-question-card
) :is(p,h2,h3,h4,strong,small,span:not(.badge)) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omasmix-answer,.omasmix-answer-row,.omasmix-choice,.omasmix-option,
  .omasmix-proposition-row,.omaspr-answer,.omaspr-answer-row,
  .omaspr-option,.omaspr-choice-row,.omaspr-answer-choice,
  .omaspr-proposition-row
) {
  background: var(--night-inset) !important;
  border: 1px solid var(--night-divider) !important;
  box-shadow: none !important;
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omasmix-answer,.omasmix-answer-row,.omasmix-choice,.omasmix-option,
  .omasmix-proposition-row,.omaspr-answer,.omaspr-answer-row,
  .omaspr-option,.omaspr-choice-row,.omaspr-answer-choice,
  .omaspr-proposition-row
) :is(span,strong,p,small,label) {
  color: var(--night-text) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omasmix-answer,.omasmix-choice,.omaspr-answer,.omaspr-option
):has(input:checked) {
  background: #244757 !important;
  border-color: #3e8d94 !important;
}
/* The mixed session's clickable propositions can be unclassed labels.
   Direct checkbox/radio labels only; do not paint parent divs or spans. */
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omaspr-question,.omaspr-question-card,.omasmix-question,.omasmix-question-card,
  .omaspr-qcm,.omasmix-qcm
) label:has(input[type="checkbox"],input[type="radio"]) {
  background: var(--night-inset) !important;
  color: var(--night-text) !important;
  border-color: var(--night-divider) !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
  .omaspr-question,.omaspr-question-card,.omasmix-question,.omasmix-question-card,
  .omaspr-qcm,.omasmix-qcm
) label:has(input[type="checkbox"],input[type="radio"]) :is(span,strong,small) {
  color: var(--night-text) !important;
}

/* In Moodle, some file/quiz widgets use a fixed #fff for actionable labels.
   Keep inputs dark but do NOT recolour rich editor content or feedback diagrams. */
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  input.form-control,select.form-select,textarea.form-control
) {
  background: var(--night-field) !important;
  border-color: var(--night-border) !important;
  color: var(--night-text) !important;
}

/* Accessible hover/focus for true UI links. Keep scientific anchor links teal. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(a.oma-open,.oma-topnav a,.oma-card a):hover,
html[data-omasdark="on"][data-bs-theme="dark"] .omaspr-app :is(
  .omaspr-chapter-card a,.omaspr-footer-actions a
):hover {
  color: var(--night-accent) !important;
  text-decoration: none !important;
}
/* Course tiles: don't add an ornamental divider beneath the card title. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell .oma-course-card :is(hr,.oma-card-separator) {
  border-color: transparent !important;
}

/* Login: password + reveal button total width equals username; no doubled
   width on the wrapper and button. Light mode remains untouched. */
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform {
  min-width: 0;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform :is(
  .input-group,.login-form-password,.login-form-username
) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group > :is(input,.form-control) {
  min-width: 0 !important;
  flex: 1 1 0 !important;
  width: auto !important;
}
html[data-omasdark="on"][data-bs-theme="dark"] #page-login-index .loginform .input-group > :is(
  .input-group-append,button,.passwordunmask
) {
  flex: 0 0 54px !important;
  box-sizing: border-box !important;
}

/* Standard Moodle containers should retain the same surface hierarchy.
   Do not add backgrounds to setting rows, info rows, accordion panels, etc. */
html[data-omasdark="on"][data-bs-theme="dark"] :is(
  .settingsform,.settingsform .form-item,.settingsform .form-setting,
  .form-item,.form-setting,.adminsettings
) {
  box-shadow: none !important;
}

/* Print always uses original printable content, never dark card colours. */
@media print {
  html[data-omasdark="on"][data-bs-theme="dark"] body[id^="page-local-omasqcm-"] :is(
    .omasmix-answer,.omasmix-answer-row,.omaspr-answer,.omaspr-answer-row,
    .omaspr-choice-row,.omaspr-proposition-row,.omaspr-chapter-choice
  ) { background: transparent !important; color: #111 !important; border-color: #aaa !important; }
}

/* Making bulk preview / QCM editor: don't inherit legacy navy text on a dark
   card; preserve explicit status badges and the text formatting inside figures. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-qtitle,.oma-prose,.oma-prose p,.oma-opt,.oma-opt p,.oma-opt b,
  .oma-bulk-item,.oma-bulk-item > p,.oma-bulk-item summary,
  .oma-question .oma-correction,.oma-question .oma-correction summary,
  .oma-detected-explain,.oma-answer-lines,.oma-label-field,
  .oma-option-heading,.oma-step span,.oma-crumb b,.oma-check
) { color: var(--night-text) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-opt small,.oma-bulk-item small,.oma-option-row .oma-help,
  .oma-rich .oma-editable:empty:before,.oma-mini-editable:empty:before
) { color: var(--night-subtext) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-question,.oma-bulk-item,.oma-correction[open] > .oma-prose,
  .oma-media-upload,.oma-format-pop .oma-toolbar,.oma-tutorial-popover
) { background-color: var(--night-card) !important; border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-prose td,.oma-prose th,.oma-correction,.oma-chapter-heading,
  .oma-separator,.oma-rich .oma-toolbar
) { border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-toolbar button,.oma-picture-control,.oma-format-pop summary,
  .oma-picture-close,.oma-icon-btn,.oma-mini-tools .oma-icon-btn
) { color: var(--night-text) !important; background: var(--night-inset) !important;
    border-color: var(--night-divider) !important; }
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-toolbar button,.oma-picture-control,.oma-format-pop summary,.oma-icon-btn
):hover { background: var(--night-hover) !important; }
/* The picture workspace is an intentional light image-editing canvas; never
   tint its raster, crop guides, pixel measurements or illustrations. */
html[data-omasdark="on"][data-bs-theme="dark"] .oma-shell :is(
  .oma-picture-stage,.oma-picture-workspace,.oma-picture-workspace canvas
) { color-scheme: light; }

/* The device's printer may honour background printing. Revert our own dark
   overrides in print to keep question/answer sheets readable. */
@media print {
  html[data-omasdark="on"][data-bs-theme="dark"] :is(
    body,#page-wrapper,#page,#page-content,.main-inner,#region-main,
    .oma-shell,.oma-shell .oma-question,.oma-shell .oma-card,
    .omaspr-app,.omaspr-app .omaspr-panel,.omaspr-app .omaspr-hero,
    .omaspr-app .omaspr-question,.omaspr-app .omaspr-answer,
    .omaspr-app .omaspr-chapter-choice,.omaspr-app .omaspr-chapter-card,
    .omasmix-answer,.omasmix-choice,.omasmix-question,.omasmix-question-card
  ) { background: #fff !important; color: #111 !important; box-shadow: none !important; }
  html[data-omasdark="on"][data-bs-theme="dark"] :is(
    .oma-shell,.omaspr-app,.omasmix-question,.omasmix-question-card
  ) :is(h1,h2,h3,h4,p,span,strong,label,small) { color: #111 !important; }
  html[data-omasdark="on"][data-bs-theme="dark"] :is(.oma-prose,.omaspr-question,.omasmix-question) a {
    color: #064f66 !important; text-decoration: underline !important;
  }
}
