/* ============================================
   BDA — Brand Deal Academy Custom Theme
   Colors: ink #0a0a0a | sage #97aa97 | cream #f5f0e6
   Fonts: Anton (headings) | Inter (body)
   ============================================ */


/* ── Global ── */
body,
#page,
#page-wrapper,
.pagelayout-base,
.pagelayout-course,
.pagelayout-standard,
.pagelayout-frontpage,
.pagelayout-login,
.pagelayout-admin {
  background-color: #0a0a0a !important;
  color: #ffffff !important;
  font-family: 'Inter', sans-serif !important;
}

/* ── Navbar ── */
.navbar,
nav.navbar {
  background-color: rgba(10,10,10,0.92) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  backdrop-filter: blur(12px) !important;
}
.navbar-brand img {
  display: none;
}
.navbar-brand::before {
  content: '';
  display: inline-block;
  width: 160px;
  height: 40px;
  background: url('/pix/bda-logo.webp') center/contain no-repeat;
}
.navbar-light .navbar-nav .nav-link,
.navbar-dark .navbar-nav .nav-link,
.nav-link {
  color: rgba(255,255,255,0.85) !important;
}
.nav-link:hover { color: #97aa97 !important; }

/* ── Headings ── */
h1, h2, .h1, .h2,
.page-header-headings h1 {
  font-family: 'Anton', 'Arial Narrow', sans-serif !important;
  color: #ffffff !important;
  letter-spacing: -0.01em !important;
}
h3, h4, h5, h6, .h3, .h4, .h5, .h6 {
  color: #ffffff !important;
  font-family: 'Inter', sans-serif !important;
}

/* ── Buttons ── */
.btn-primary {
  background-color: #97aa97 !important;
  border-color: #97aa97 !important;
  color: #000000 !important;
  font-weight: 600 !important;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: #afc0af !important;
  border-color: #afc0af !important;
  color: #000000 !important;
}
.btn-secondary {
  background-color: #1e1e1e !important;
  border-color: rgba(255,255,255,0.15) !important;
  color: #ffffff !important;
}
.btn-link { color: #97aa97 !important; }

/* ── Cards ── */
.card, .card-body, .card-header, .card-footer {
  background-color: #141414 !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: #ffffff !important;
}
.card-header {
  border-bottom-color: rgba(255,255,255,0.08) !important;
}

/* ── Links ── */
a { color: #97aa97 !important; }
a:hover { color: #afc0af !important; text-decoration: none !important; }

/* ── Forms ── */
.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea,
select {
  background-color: #1a1a1a !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: #ffffff !important;
}
.form-control:focus, input:focus, textarea:focus {
  background-color: #1a1a1a !important;
  border-color: #97aa97 !important;
  box-shadow: 0 0 0 2px rgba(151,170,151,0.25) !important;
  color: #ffffff !important;
}
label, .col-form-label { color: rgba(255,255,255,0.85) !important; }
.form-label { color: rgba(255,255,255,0.85) !important; }
::placeholder { color: rgba(255,255,255,0.35) !important; }

/* ── Sidebar / Drawer ── */
#nav-drawer,
.drawers .drawer,
[data-region="fixed-drawer"] {
  background-color: #0d0d0d !important;
  border-color: rgba(255,255,255,0.08) !important;
}
.list-group-item {
  background-color: transparent !important;
  border-color: rgba(255,255,255,0.06) !important;
  color: #ffffff !important;
}
.list-group-item:hover {
  background-color: rgba(151,170,151,0.1) !important;
}
.list-group-item.active {
  background-color: rgba(151,170,151,0.2) !important;
  border-color: #97aa97 !important;
  color: #97aa97 !important;
}

/* ── Blocks ── */
.block {
  background-color: #141414 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
}
.block .header { background-color: #1a1a1a !important; }

/* ── Course cards / frontpage ── */
.coursebox,
.course-list-item,
.dashboard-card {
  background-color: #141414 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
}

/* ── Tables ── */
table, .table { color: #ffffff !important; }
.table th { color: #97aa97 !important; border-color: rgba(255,255,255,0.1) !important; }
.table td { border-color: rgba(255,255,255,0.06) !important; }
.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255,255,255,0.03) !important;
}
.table-hover tbody tr:hover {
  background-color: rgba(151,170,151,0.05) !important;
}

/* ── Tabs ── */
.nav-tabs .nav-link {
  color: rgba(255,255,255,0.6) !important;
  border-color: transparent !important;
}
.nav-tabs .nav-link.active {
  background-color: #141414 !important;
  border-color: rgba(255,255,255,0.08) rgba(255,255,255,0.08) #141414 !important;
  color: #97aa97 !important;
}
.nav-tabs { border-bottom-color: rgba(255,255,255,0.08) !important; }

/* ── Alerts ── */
.alert-info {
  background-color: rgba(151,170,151,0.12) !important;
  border-color: #97aa97 !important;
  color: #c5d5c5 !important;
}
.alert-success {
  background-color: rgba(151,170,151,0.15) !important;
  border-color: #97aa97 !important;
  color: #c5d5c5 !important;
}
.alert-warning {
  background-color: rgba(200,180,100,0.12) !important;
  border-color: rgba(200,180,100,0.5) !important;
  color: #d4c878 !important;
}
.alert-danger {
  background-color: rgba(200,80,80,0.12) !important;
  border-color: rgba(200,80,80,0.5) !important;
  color: #d49090 !important;
}

/* ── Breadcrumb ── */
.breadcrumb { background-color: transparent !important; }
.breadcrumb-item a { color: #97aa97 !important; }
.breadcrumb-item.active { color: rgba(255,255,255,0.6) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.3) !important; }

/* ── Badges ── */
.badge-primary, .badge-info { background-color: #97aa97 !important; color: #000 !important; }

/* ── Page header ── */
#page-header, .page-header-headings {
  background-color: transparent !important;
}
#page-navbar .breadcrumb {
  background-color: transparent !important;
}

/* ── Footer ── */
footer#page-footer,
.footer-content-container {
  background-color: #000000 !important;
  color: rgba(255,255,255,0.4) !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}
footer a { color: #97aa97 !important; }

/* ── Login page ── */
#page-login-index body,
body.pagelayout-login {
  background-color: #0a0a0a !important;
}
.login-container, .login-wrapper {
  background-color: #141414 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 8px !important;
}

/* ── Modal ── */
.modal-content {
  background-color: #141414 !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: #ffffff !important;
}
.modal-header { border-bottom-color: rgba(255,255,255,0.08) !important; }
.modal-footer { border-top-color: rgba(255,255,255,0.08) !important; }

/* ── Dropdown ── */
.dropdown-menu {
  background-color: #1a1a1a !important;
  border-color: rgba(255,255,255,0.1) !important;
}
.dropdown-item { color: rgba(255,255,255,0.85) !important; }
.dropdown-item:hover {
  background-color: rgba(151,170,151,0.1) !important;
  color: #97aa97 !important;
}
.dropdown-divider { border-color: rgba(255,255,255,0.08) !important; }

/* ── Moodle activity icons / progress ── */
.progress-bar { background-color: #97aa97 !important; }
.progress { background-color: rgba(255,255,255,0.1) !important; }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #0a0a0a; }
::-webkit-scrollbar-thumb { background: rgba(151,170,151,0.4); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #97aa97; }

/* ── Fix remaining white areas ── */
#topofscroll,
.main-inner,
#region-main,
#region-main-box,
[data-region="blocks-column"],
#page-wrapper,
#page,
.pagelayout-frontpage #page-content {
  background-color: #0a0a0a !important;
  color: #ffffff !important;
}

/* Fix white page-header card */
#page-header .card,
.page-header-image {
  background-color: #0a0a0a !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* Navbar active tab underline → sage */
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  border-bottom: 2px solid #97aa97 !important;
  color: #97aa97 !important;
}

/* Brand name text in navbar */
.navbar-brand {
  color: #ffffff !important;
  font-family: 'Anton', 'Arial Narrow', sans-serif !important;
  font-size: 1.4rem !important;
  letter-spacing: 0.05em !important;
}

/* Moodle frontpage site-name heading */
.site-name, #site-header, .frontpage-course-title {
  color: #ffffff !important;
}

/* ── Override Moodle Boost drawer layout white backgrounds ── */
#page.drawers .main-inner,
#page.drawers #topofscroll,
#page.drawers #region-main,
#page.drawers #region-main-box,
.pagelayout-frontpage .main-inner,
body #page .main-inner {
  background-color: #0a0a0a !important;
}

/* ── Fix active nav blue underline → sage ── */
.nav-link.active,
.nav-link[aria-current="true"],
.primary-navigation .nav-link.active,
.moremenu .nav-link.active {
  border-bottom-color: #97aa97 !important;
  color: #97aa97 !important;
}

/* ── Log in / user menu link ── */
.usermenu .login a,
a[href*="/login/index.php"],
#usernavigation a {
  color: #97aa97 !important;
}

/* ── Fix heading glow (text-shadow from Moodle default) ── */
h1, h2, h3, h4, h5, h6 {
  text-shadow: none !important;
}

/* ── Fix html background (above navbar) ── */
html {
  background-color: #0a0a0a !important;
}

/* ── Fix active nav underline ── */
.nav-link.active,
.nav-link[aria-current="true"] {
  border-bottom-color: #97aa97 !important;
}

/* ── Fix Anton font subpixel glow on dark bg ── */
* {
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* ── html bg (area above page) ── */
html, body {
  background-color: #0a0a0a !important;
}

/* ── Kill white stripe above login (html bg + body margin reset) ── */
html {
  background-color: #0a0a0a !important;
  margin: 0 !important;
  padding: 0 !important;
}
body {
  margin: 0 !important;
  padding-top: 0 !important;
}
#page.pagelayout-login {
  background-color: #0a0a0a !important;
  min-height: 100vh !important;
}

/* ── Force dark color scheme globally ── */
:root {
  color-scheme: dark;
}

/* ── Cookie notice / toast banner (fixed-top white strip) ── */
.toast-wrapper,
[data-region="toast-wrapper"],
.toast,
.toast-header,
.toast-body,
#toast-container,
.moodle-has-zindex,
[aria-live="polite"],
.userpolicy-nav-container,
div[data-region="userpolicy-nav"] {
  background-color: #1a1a1a !important;
  color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.1) !important;
}

/* Ensure fixed-top elements are dark */
.fixed-top.toast-wrapper,
body > .toast-wrapper {
  background-color: #141414 !important;
}

#page { background-color: #0a0a0a !important; }

.pagelayout-login #page {
  background: #0a0a0a !important;
  background-image: none !important;
}

/* ── Primary nav hover contrast fix ── */
.primary-navigation .nav-link:hover,
.primary-navigation .nav-link:focus,
.primary-navigation .nav-link.active,
.primary-navigation .active .nav-link,
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active {
  background-color: #1a1a1a !important;
  color: #97aa97 !important;
  border-radius: 4px;
}

.primary-navigation .nav-item.active > .nav-link,
.primary-navigation .nav-link[aria-current='page'] {
  background-color: transparent !important;
  color: #97aa97 !important;
  border-bottom: 2px solid #97aa97 !important;
}

/* ── Secondary navigation / admin tab bar dark bg ── */
.secondary-navigation,
.secondary-navigation .navigation,
.secondary-navigation .moremenu,
.secondary-navigation nav,
nav.moremenu,
.moremenu,
.moremenu .nav,
.moremenu .nav-tabs,
.tertiary-navigation,
#region-main-box > .secondary-navigation,
.pagelayout-admin .navbar,
.path-admin .navbar,
.tabtree,
.nav-tabs {
  background-color: #0a0a0a !important;
  border-color: rgba(255,255,255,0.08) !important;
}

.secondary-navigation .nav-link,
.moremenu .nav-link,
.tabtree .nav-link,
.tertiary-navigation .nav-link {
  color: rgba(255,255,255,0.75) !important;
  background-color: transparent !important;
}

.secondary-navigation .nav-link:hover,
.moremenu .nav-link:hover,
.tabtree .nav-link:hover,
.tertiary-navigation .nav-link:hover {
  color: #97aa97 !important;
  background-color: #1a1a1a !important;
}

.secondary-navigation .nav-link.active,
.moremenu .nav-link.active,
.tabtree .nav-link.active,
.tertiary-navigation .nav-link.active {
  color: #97aa97 !important;
  background-color: #1a1a1a !important;
  border-color: #97aa97 !important;
}

/* ═════════════ Category browse — course cards ═════════════ */
.course_category_tree .content > .courses.category-browse {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  padding: 1rem 0;
}

.category-browse .coursebox {
  background: linear-gradient(180deg, #141414 0%, #0f0f0f 100%) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
  margin: 0 !important;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  min-height: 220px;
  display: flex;
  flex-direction: column;
}

.category-browse .coursebox::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #97aa97 0%, #afc0af 50%, #97aa97 100%);
  opacity: 0.75;
  transition: opacity .25s ease;
}

.category-browse .coursebox:hover {
  transform: translateY(-4px);
  border-color: rgba(151,170,151,0.4) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.5), 0 0 0 1px rgba(151,170,151,0.15);
}
.category-browse .coursebox:hover::before { opacity: 1; }

.category-browse .coursebox .info { margin-bottom: 0.75rem; }

.category-browse .coursebox .coursename {
  margin: 0.25rem 0 0.5rem !important;
  font-family: 'Anton', 'Impact', sans-serif !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.category-browse .coursebox .coursename a {
  color: #f5f5f5 !important;
  text-decoration: none !important;
  transition: color .2s ease;
}
.category-browse .coursebox:hover .coursename a { color: #97aa97 !important; }

.category-browse .coursebox .content { flex: 1; display: flex; flex-direction: column; }

.category-browse .coursebox .summary {
  color: rgba(255,255,255,0.72) !important;
  font-size: 0.925rem;
  line-height: 1.55;
  flex: 1;
}
.category-browse .coursebox .summary p { margin-bottom: 0; }

/* CTA arrow on hover */
.category-browse .coursebox::after {
  content: 'View course →';
  position: absolute;
  bottom: 1.25rem;
  right: 1.5rem;
  color: #97aa97;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}
.category-browse .coursebox:hover::after { opacity: 1; transform: translateX(0); }

/* Section heading above the cards */
.course_category_tree .box.generalbox.info {
  border: none !important;
  padding: 0 0 0.5rem !important;
  margin: 1rem 0 0.5rem !important;
  color: rgba(255,255,255,0.55);
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 600;
}

/* ═════════════ File picker / modal dark theme ═════════════ */
.file-picker,
.filepicker,
.fp-viewbar,
.moodle-dialogue-base .moodle-dialogue-wrap,
.moodle-dialogue-base .moodle-dialogue-bd,
.moodle-dialogue-base .moodle-dialogue-content,
.fp-repo-area,
.fp-content,
.fp-content-center,
.fp-viewer,
.file-picker .fp-content {
  background-color: #0f0f0f !important;
  color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.08) !important;
}

.moodle-dialogue-base .moodle-dialogue-hd,
.file-picker .fp-nav,
.file-picker .fp-repo-items,
.file-picker .yui3-tabview-list,
.fp-repo-area {
  background-color: #0a0a0a !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.85) !important;
}

/* Sidebar repo items - selected/active state (kill blue) */
.file-picker .fp-repo.active,
.file-picker li.fp-repo.active,
.file-picker .yui3-tabview-list .yui3-tab-selected,
.file-picker .fp-repo:hover {
  background-color: rgba(151,170,151,0.15) !important;
  color: #97aa97 !important;
  border-left: 3px solid #97aa97 !important;
}

.file-picker .fp-repo {
  color: rgba(255,255,255,0.75) !important;
  background-color: transparent !important;
  border-left: 3px solid transparent !important;
}

.file-picker .fp-repo a,
.file-picker .fp-repo-name {
  color: inherit !important;
}

/* File grid / content area */
.file-picker .fp-content,
.fp-content,
.filemanager .fp-content,
.fp-select .fp-content {
  background-color: #0f0f0f !important;
}

/* File items (thumbnails/list) */
.fp-file, .fp-folder,
.fp-content .fp-file,
.fp-content .fp-folder,
.file-picker .fp-content .fp-file,
.file-picker .fp-content .fp-folder {
  background-color: transparent !important;
  color: rgba(255,255,255,0.85) !important;
}

.fp-file .fp-filename, .fp-folder .fp-foldername,
.file-picker .fp-filename, .file-picker .fp-foldername {
  color: rgba(255,255,255,0.85) !important;
}

.fp-file:hover, .fp-folder:hover {
  background-color: rgba(151,170,151,0.1) !important;
}

/* Path breadcrumb (System > ...) */
.fp-pathbar, .file-picker .fp-pathbar {
  background-color: #0a0a0a !important;
  border-color: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.75) !important;
}
.fp-pathbar a { color: #97aa97 !important; }

/* Search input inside picker */
.file-picker input[type='text'],
.file-picker input[type='search'],
.fp-content input {
  background-color: #1a1a1a !important;
  color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
}

/* Modal close button */
.moodle-dialogue-base .closebutton,
.moodle-dialogue-hd .yui3-widget-buttons button {
  color: rgba(255,255,255,0.75) !important;
  background: transparent !important;
}

/* Kill leftover blue accents globally */
.btn-primary, .btn-primary:not([disabled]) {
  background-color: #97aa97 !important;
  border-color: #97aa97 !important;
  color: #0a0a0a !important;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: #afc0af !important;
  border-color: #afc0af !important;
}

/* Any bg-primary utility (Bootstrap) */
.bg-primary { background-color: #97aa97 !important; color: #0a0a0a !important; }
.text-primary { color: #97aa97 !important; }

/* ═════════════ File picker — folder/file thumbnails ═════════════ */
/* Reset any inner light backgrounds */
.fp-content *,
.file-picker .fp-content *,
.fp-select .fp-content * {
  background-color: transparent !important;
}

/* Filename label background (was white block) */
.fp-file .fp-filename-field,
.fp-folder .fp-filename-field,
.fp-file .fp-filename,
.fp-folder .fp-foldername,
.file-picker .fp-filename-field,
.file-picker .fp-file .fp-filename,
.file-picker .fp-folder .fp-foldername,
.filepicker-filename,
[class*='fp-filename'] {
  background-color: transparent !important;
  color: rgba(255,255,255,0.9) !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}

/* Folder / file icons (SVG + img) — brighten */
.fp-content .fp-file img,
.fp-content .fp-folder img,
.fp-content .fp-icon img,
.file-picker .fp-icon img,
.filepicker .fp-icon img,
.fp-file .fp-thumbnail img,
.fp-folder .fp-thumbnail img {
  filter: brightness(0) invert(0.85) !important;
  opacity: 0.9;
}

/* Hover state — sage tint */
.fp-content .fp-file:hover img,
.fp-content .fp-folder:hover img {
  filter: brightness(0) invert(0.75) sepia(0.3) hue-rotate(60deg) saturate(1.2) !important;
  opacity: 1;
}

/* Thumbnail wrapper */
.fp-file .fp-thumbnail,
.fp-folder .fp-thumbnail,
.file-picker .fp-thumbnail {
  background-color: transparent !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 6px;
  padding: 8px;
  transition: border-color .2s ease, background-color .2s ease;
}

.fp-file:hover .fp-thumbnail,
.fp-folder:hover .fp-thumbnail {
  border-color: rgba(151,170,151,0.4) !important;
  background-color: rgba(151,170,151,0.08) !important;
}

/* Selection outline (currently focused item) */
.fp-content .fp-file[aria-selected='true'] .fp-thumbnail,
.fp-content .fp-folder[aria-selected='true'] .fp-thumbnail,
.fp-content .fp-file.selected .fp-thumbnail,
.fp-content .fp-folder.selected .fp-thumbnail {
  border-color: #97aa97 !important;
  background-color: rgba(151,170,151,0.15) !important;
  box-shadow: 0 0 0 2px rgba(151,170,151,0.25);
}

/* ═════════════ White-label — hide Moodle branding ═════════════ */
.footer-content .logo,
.footer-content-inner .logo,
.homelink,
a[href*='moodle.org'],
a[href*='moodle.com'],
.helplink[title*='Moodle Docs'],
.helplink[href*='docs.moodle'],
img[src*='moodlelogo'],
img[src*='moodle-logo'],
.tool_dataprivacy .customfooter,
.performanceinfo,
.mdl-align a[href*='moodle'],
#page-footer .homelink,
.footer-mailinfo,
[data-region='drawer-toggle'] + .drawer .drawer-content > a[href*='moodle'],
.about-content a[href*='moodle.org'] {
  display: none !important;
}

/* Site footer — dark, minimal */
#page-footer,
.footer-content,
.footer-content-inner {
  background-color: #0a0a0a !important;
  color: rgba(255,255,255,0.5) !important;
  border-top: 1px solid rgba(255,255,255,0.05) !important;
}

/* Powered by text (fallback) */
.footer-support-content,
#page-footer .helplink {
  color: rgba(255,255,255,0.4) !important;
  font-size: 0.75rem;
}

/* ═════════════ Text contrast fixes ═════════════ */
.text-muted, .text-secondary,
small, .small,
.form-text,
.helptext,
.dimmed_text {
  color: rgba(255,255,255,0.65) !important;
}

.text-success, .text-success-emphasis,
.alert-success, .alert-success * {
  color: #97aa97 !important;
}
.alert-success {
  background-color: rgba(151,170,151,0.12) !important;
  border-color: rgba(151,170,151,0.35) !important;
}

.text-info, .text-info-emphasis {
  color: #7cb3d4 !important;
}
.alert-info {
  background-color: rgba(124,179,212,0.12) !important;
  border-color: rgba(124,179,212,0.35) !important;
  color: #7cb3d4 !important;
}
.alert-info * { color: #a8ccdf !important; }

.text-warning, .text-warning-emphasis {
  color: #d4b06a !important;
}
.alert-warning {
  background-color: rgba(212,176,106,0.12) !important;
  border-color: rgba(212,176,106,0.4) !important;
  color: #d4b06a !important;
}
.alert-warning * { color: #e3c688 !important; }

.text-danger, .text-danger-emphasis {
  color: #e57373 !important;
}
.alert-danger {
  background-color: rgba(229,115,115,0.12) !important;
  border-color: rgba(229,115,115,0.4) !important;
  color: #e57373 !important;
}
.alert-danger * { color: #f0a3a3 !important; }

/* Log/validation output blocks (pre/code) */
.installer .stage,
.plugins-check-info,
.core_plugin_manager_dependencies,
pre, code,
.notifysuccess, .notifytiny, .notifyproblem, .notifyerror,
.validation-results, .installer p,
.singlebutton + p {
  color: rgba(255,255,255,0.85) !important;
  background-color: transparent !important;
}

.notifysuccess { color: #97aa97 !important; }
.notifyproblem, .notifyerror { color: #e57373 !important; }

pre, code, .pre {
  background-color: rgba(255,255,255,0.04) !important;
  color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
}

/* Inline validation result rows */
.plugins-check-info .validation ok,
.installer .ok, .installer .info,
.core_plugin_manager .status-ok,
[class*='status-'] {
  color: rgba(255,255,255,0.85) !important;
}

/* ═════════════ Table dark theme — kill zebra light stripes ═════════════ */
table,
.table,
.generaltable,
.admintable,
.plugins-check,
.environmenttable,
.plugincompattable,
.userinfobox,
.forumheaderlist,
.flexible,
.category_settings table {
  background-color: transparent !important;
  color: rgba(255,255,255,0.88) !important;
  border-color: rgba(255,255,255,0.08) !important;
}

.table thead, .generaltable thead, .admintable thead,
.table thead th, .generaltable thead th, .admintable thead th {
  background-color: #0f0f0f !important;
  color: rgba(255,255,255,0.95) !important;
  border-color: rgba(255,255,255,0.15) !important;
  border-bottom: 2px solid rgba(151,170,151,0.4) !important;
}

.table tbody tr,
.generaltable tbody tr,
.admintable tbody tr,
.table tr, .generaltable tr, .admintable tr {
  background-color: transparent !important;
}

/* Zebra: even rows subtle sage-tinted, odd transparent */
.table-striped tbody tr:nth-of-type(odd),
.table-striped tbody tr:nth-of-type(even),
.table > tbody > tr:nth-of-type(odd),
.table > tbody > tr:nth-of-type(even),
.generaltable tbody tr:nth-child(odd),
.generaltable tbody tr:nth-child(even),
.admintable tbody tr:nth-child(odd),
.admintable tbody tr:nth-child(even),
table.flexible tr.r0, table.flexible tr.r1,
.plugins-check tbody tr, .environmenttable tbody tr {
  background-color: transparent !important;
  color: rgba(255,255,255,0.88) !important;
}

.table-striped tbody tr:nth-of-type(odd),
.generaltable tbody tr:nth-child(odd),
.admintable tbody tr:nth-child(odd),
table.flexible tr.r0 {
  background-color: rgba(255,255,255,0.02) !important;
}

.table td, .table th,
.generaltable td, .generaltable th,
.admintable td, .admintable th,
.environmenttable td, .environmenttable th,
.plugins-check td, .plugins-check th,
table.flexible td, table.flexible th {
  background-color: transparent !important;
  color: rgba(255,255,255,0.88) !important;
  border-color: rgba(255,255,255,0.06) !important;
}

.table-hover tbody tr:hover,
.generaltable tbody tr:hover,
.admintable tbody tr:hover {
  background-color: rgba(151,170,151,0.08) !important;
  color: #fff !important;
}

/* Bootstrap bs_theme override for tables */
:root {
  --bs-table-bg: transparent;
  --bs-table-color: rgba(255,255,255,0.88);
  --bs-table-striped-bg: rgba(255,255,255,0.02);
  --bs-table-striped-color: rgba(255,255,255,0.88);
  --bs-table-hover-bg: rgba(151,170,151,0.08);
  --bs-table-hover-color: #fff;
  --bs-table-border-color: rgba(255,255,255,0.06);
}

/* Status badges (OK green pills) — keep but soften */
.badge-success, .badge.bg-success,
span.label-success, .status-success {
  background-color: #4a7a4a !important;
  color: #e8f0e8 !important;
  border: 1px solid rgba(151,170,151,0.4);
}

/* Environment/plugin check status wrapper */
.environmenttable .success, .plugins-check .success { color: #97aa97 !important; }
.environmenttable .error, .plugins-check .error { color: #e57373 !important; }
.environmenttable .warning, .plugins-check .warning { color: #d4b06a !important; }

/* ═════════════ Dropdowns / autocomplete / select menus ═════════════ */
.dropdown-menu,
.form-autocomplete-suggestions,
.form-autocomplete-selection,
.moodle-actionmenu .dropdown-menu,
select option,
.select2-dropdown,
.select2-results,
.searchbar-dropdown,
[role='listbox'],
[role='menu'],
[role='combobox'] + [role='listbox'] {
  background-color: #1a1a1a !important;
  color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5) !important;
}

.dropdown-item,
.form-autocomplete-suggestions li,
.select2-results__option,
[role='option'],
[role='menuitem'] {
  color: rgba(255,255,255,0.85) !important;
  background-color: transparent !important;
}

.dropdown-item:hover, .dropdown-item:focus,
.dropdown-item:not([aria-disabled='true']):hover,
.form-autocomplete-suggestions li:hover,
.form-autocomplete-suggestions li[aria-selected='true'],
.select2-results__option--highlighted,
[role='option']:hover,
[role='option'][aria-selected='true'],
[role='menuitem']:hover {
  background-color: rgba(151,170,151,0.15) !important;
  color: #97aa97 !important;
}

.dropdown-item.active,
.dropdown-item[aria-selected='true'],
.form-autocomplete-suggestions li.active,
li[aria-current='true'] {
  background-color: rgba(151,170,151,0.2) !important;
  color: #fff !important;
}

/* Option secondary/description text (muted line under label) */
.dropdown-item small,
.dropdown-item .text-muted,
.form-autocomplete-suggestions .description,
[role='option'] small {
  color: rgba(255,255,255,0.6) !important;
}

/* Selected state dropdown-item (checkmark row) */
.dropdown-item .icon,
.dropdown-item svg,
.dropdown-item [class*='check'] {
  color: #97aa97 !important;
  fill: #97aa97 !important;
}

/* Native select (browser default) */
select, .custom-select {
  background-color: #1a1a1a !important;
  color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
}

/* Focused/opened state (blue outline) */
select:focus, .custom-select:focus,
input:focus, textarea:focus, .form-control:focus {
  border-color: #97aa97 !important;
  box-shadow: 0 0 0 3px rgba(151,170,151,0.2) !important;
  outline: none !important;
}

/* Help icon (?) blue circles */
.icon-help, .helptooltip,
a[href*='help.php'] i.icon,
.icon.fa-question-circle {
  color: #7cb3d4 !important;
}

/* ═════════════ Course cards — extend to frontpage + all listings ═════════════ */
.frontpage-course-list-all,
.frontpage-course-list-enrolled,
.course_category_tree .content > .courses.category-browse {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
  gap: 1.5rem !important;
  padding: 1rem 0 !important;
}

.frontpage-course-list-all .coursebox,
.frontpage-course-list-enrolled .coursebox,
.category-browse .coursebox,
.courses .coursebox {
  background: linear-gradient(180deg, #141414 0%, #0f0f0f 100%) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
  margin: 0 !important;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease !important;
  position: relative !important;
  overflow: hidden !important;
  cursor: pointer !important;
  min-height: 220px !important;
  display: flex !important;
  flex-direction: column !important;
  float: none !important;
  width: auto !important;
}

.frontpage-course-list-all .coursebox::before,
.frontpage-course-list-enrolled .coursebox::before,
.category-browse .coursebox::before,
.courses .coursebox::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #97aa97 0%, #afc0af 50%, #97aa97 100%);
  opacity: 0.75;
  transition: opacity .25s ease;
}

.frontpage-course-list-all .coursebox:hover,
.frontpage-course-list-enrolled .coursebox:hover,
.category-browse .coursebox:hover,
.courses .coursebox:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(151,170,151,0.4) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.5), 0 0 0 1px rgba(151,170,151,0.15) !important;
}
.courses .coursebox:hover::before { opacity: 1 !important; }

.courses .coursebox .info { margin-bottom: 0.75rem !important; }

.courses .coursebox .coursename {
  margin: 0.25rem 0 0.5rem !important;
  font-family: 'Anton', 'Impact', sans-serif !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
}

.courses .coursebox .coursename a {
  color: #f5f5f5 !important;
  text-decoration: none !important;
  transition: color .2s ease !important;
}
.courses .coursebox:hover .coursename a { color: #97aa97 !important; }

.courses .coursebox .content {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.courses .coursebox .summary {
  color: rgba(255,255,255,0.72) !important;
  font-size: 0.925rem !important;
  line-height: 1.55 !important;
  flex: 1 !important;
}
.courses .coursebox .summary p { margin-bottom: 0 !important; }

.courses .coursebox::after {
  content: 'View course →';
  position: absolute;
  bottom: 1.25rem;
  right: 1.5rem;
  color: #97aa97;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}
.courses .coursebox:hover::after { opacity: 1 !important; transform: translateX(0) !important; }

/* Frontpage 'Available courses' heading */
#frontpage-available-course-list h2 {
  font-family: 'Anton', 'Impact', sans-serif !important;
  font-size: 2rem !important;
  letter-spacing: 0.02em !important;
  margin: 2rem 0 0.5rem !important;
}

/* ═════════════ Course card — stretched clickable link ═════════════ */
.courses .coursebox .coursename a::before {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: 1;
  pointer-events: auto;
}

/* Any other links inside card (moreinfo, tags) — keep clickable above overlay */
.courses .coursebox .moreinfo a,
.courses .coursebox .content a:not(.aalink),
.courses .coursebox .enrolmenticons a {
  position: relative;
  z-index: 2;
}
