/* Mosaic Platform Framework v0.2.3. Namespaced CSS only. */
:root{--mosaic-navy:#061b49;--mosaic-blue:#0d3b66;--mosaic-teal:#309ea9;--mosaic-soft-border:rgba(13,59,102,.14);--mosaic-radius:8px;--mosaic-radius-card:14px;--mosaic-gradient:linear-gradient(135deg,#061b49 0%,#0d3b66 52%,#309ea9 100%);--mosaic-gradient-hover:linear-gradient(135deg,#309ea9 0%,#0d3b66 48%,#061b49 100%);--mosaic-focus:rgba(48,158,169,.35);}
.local-mosaicplatform-wrap{max-width:1180px}.local-mosaicplatform-hero{background:linear-gradient(135deg,rgba(13,59,102,.08),rgba(48,158,169,.08));border:1px solid rgba(13,59,102,.12);border-radius:12px;padding:1.25rem 1.35rem;margin-bottom:1.25rem}.local-mosaicplatform-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:1rem;margin-bottom:1rem;box-shadow:0 6px 18px rgba(13,59,102,.05)}.local-mosaicplatform-card h3{margin-top:0}.local-mosaicplatform-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.local-mosaicplatform-metric{font-size:1.7rem;font-weight:800;color:#0d3b66;line-height:1.1}.local-mosaicplatform-muted{color:#5f6f7a}.local-mosaicplatform-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.local-mosaicplatform-tabs a{border:1px solid rgba(13,59,102,.18);border-radius:10px;padding:.45rem .8rem;text-decoration:none;background:#fff}.local-mosaicplatform-tabs a.active{background:var(--mosaic-gradient);color:#fff!important}.local-mosaicplatform-badge{border-radius:999px;padding:.28rem .6rem;font-weight:700;font-size:.78rem;display:inline-block}.local-mosaicplatform-badge-ok{background:#d1f2df;color:#0b5130}.local-mosaicplatform-badge-warn{background:#fff3cd;color:#664d03}.local-mosaicplatform-badge-info{background:#d1ecf1;color:#055160}.local-mosaicplatform-badge-miss{background:#f8d7da;color:#842029}.local-mosaicplatform-roadmap-row{display:grid;grid-template-columns:minmax(150px,1fr) 3fr 70px;gap:.8rem;align-items:center;margin:.7rem 0}.local-mosaicplatform-progress{height:12px;background:rgba(13,59,102,.10);border-radius:999px;overflow:hidden}.local-mosaicplatform-progress span{display:block;height:100%;background:linear-gradient(90deg,#0d3b66,#309ea9)}.local-mosaicplatform-table{width:100%}.local-mosaicplatform-table th,.local-mosaicplatform-table td{vertical-align:top}
.local-mosaicplatform-section-title{margin:1.25rem 0 .75rem}.local-mosaicplatform-operational-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.local-mosaicplatform-module-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:1.1rem;box-shadow:0 6px 18px rgba(13,59,102,.05);display:flex;flex-direction:column;gap:.7rem;min-height:190px}.local-mosaicplatform-module-card h3{margin:0;color:#061b49}.local-mosaicplatform-module-card p{margin:0}.local-mosaicplatform-module-card .local-mosaicplatform-card-footer{margin-top:auto;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.local-mosaicplatform-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem}.local-mosaicplatform-action{display:block;background:#fff;border:1px solid rgba(13,59,102,.18);border-radius:12px;padding:.85rem 1rem;text-decoration:none;font-weight:700}.local-mosaicplatform-action:hover{text-decoration:none;box-shadow:0 6px 16px rgba(13,59,102,.10)}.local-mosaicplatform-technical{opacity:.92}.local-mosaicplatform-compact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}.local-mosaicplatform-pill-row{display:flex;gap:.4rem;flex-wrap:wrap}.local-mosaicplatform-button{display:inline-block;border-radius:var(--mosaic-radius);background:var(--mosaic-gradient);background-size:200% 100%;background-position:0 50%;color:#fff!important;padding:.48rem .85rem;text-decoration:none;font-weight:700;transition:background-position .25s ease-in-out,filter .25s ease-in-out,box-shadow .25s ease-in-out}.local-mosaicplatform-button-secondary{display:inline-block;border-radius:var(--mosaic-radius);border:1px solid rgba(13,59,102,.28);padding:.48rem .85rem;text-decoration:none;font-weight:700;background:#fff;color:var(--mosaic-blue)!important;transition:background .25s ease-in-out,color .25s ease-in-out,border-color .25s ease-in-out,box-shadow .25s ease-in-out}
/* MPF v0.2.0 UI Kit. All selectors remain namespaced to local-mosaicplatform. */
.local-mosaicplatform-ui-section{margin:1.25rem 0}.local-mosaicplatform-banner{border-radius:14px;padding:1.15rem 1.25rem;margin-bottom:1.1rem;border:1px solid rgba(13,59,102,.14)}.local-mosaicplatform-banner h3{margin:0 0 .35rem;color:#061b49}.local-mosaicplatform-banner p{margin:0}.local-mosaicplatform-banner-info{background:linear-gradient(135deg,rgba(13,59,102,.08),rgba(48,158,169,.08))}.local-mosaicplatform-banner-success{background:#d1f2df}.local-mosaicplatform-banner-warning{background:#fff3cd}.local-mosaicplatform-banner-danger{background:#f8d7da}.local-mosaicplatform-ui-btn{display:inline-block;border-radius:var(--mosaic-radius);padding:.58rem .95rem;text-decoration:none!important;font-weight:700;margin:.25rem .35rem .25rem 0;transition:background-position .25s ease-in-out,background .25s ease-in-out,color .25s ease-in-out,border-color .25s ease-in-out,box-shadow .25s ease-in-out,filter .25s ease-in-out}.local-mosaicplatform-ui-btn-primary{background:var(--mosaic-gradient);background-size:200% 100%;background-position:0 50%;color:#fff!important;border:1px solid transparent}.local-mosaicplatform-ui-btn-secondary{background:#fff;color:#0d3b66!important;border:1px solid rgba(13,59,102,.28)}.local-mosaicplatform-ui-btn-ghost{background:transparent;color:#0d3b66!important;border:1px solid transparent}.local-mosaicplatform-ui-btn:hover,.local-mosaicplatform-button:hover,.local-mosaicplatform-button-secondary:hover{text-decoration:none!important;box-shadow:0 4px 10px rgba(13,59,102,.12)}.local-mosaicplatform-ui-btn-primary:hover,.local-mosaicplatform-button:hover{background:var(--mosaic-gradient-hover);background-size:200% 100%;background-position:100% 50%;filter:brightness(1.03)}.local-mosaicplatform-ui-btn-secondary:hover,.local-mosaicplatform-button-secondary:hover{border-color:rgba(13,59,102,.42);background:var(--mosaic-gradient);color:#fff!important}.local-mosaicplatform-ui-btn-ghost:hover{background:rgba(13,59,102,.06);box-shadow:none}.local-mosaicplatform-ui-btn:focus,.local-mosaicplatform-button:focus,.local-mosaicplatform-button-secondary:focus{outline:3px solid var(--mosaic-focus);outline-offset:2px}.local-mosaicplatform-button-row{display:flex;flex-wrap:wrap;gap:.25rem}.local-mosaicplatform-empty-state{background:#fff;border:1px dashed rgba(13,59,102,.28);border-radius:14px;padding:1.2rem;text-align:center}.local-mosaicplatform-empty-state h3{margin-top:0}.local-mosaicplatform-ui-metric-card{min-height:150px}.local-mosaicplatform-action-title{display:block;font-weight:800;color:#061b49}.local-mosaicplatform-action-caption{display:block;margin-top:.35rem;color:#5f6f7a;font-weight:400;line-height:1.4}.local-mosaicplatform-card .local-mosaicplatform-pill-row{margin-top:.65rem}

.local-mosaicplatform-design-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem}.local-mosaicplatform-design-item{background:#fff;border:1px solid var(--mosaic-soft-border);border-radius:12px;padding:.9rem}.local-mosaicplatform-design-item strong{display:block;color:var(--mosaic-navy);margin-bottom:.25rem}.local-mosaicplatform-code{background:#f8fafc;border:1px solid rgba(13,59,102,.12);border-radius:10px;padding:.85rem;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.88rem}.local-mosaicplatform-tabs a:hover{text-decoration:none;box-shadow:0 5px 12px rgba(13,59,102,.08)}

/* v0.2.3 smooth button gradient standard: no abrupt gradient swap, no glow/lift. */
.local-mosaicplatform-button,.local-mosaicplatform-ui-btn-primary{position:relative;overflow:hidden;background:var(--mosaic-gradient);background-size:100% 100%;background-position:0 50%;box-shadow:none;transition:color .28s ease-in-out,border-color .28s ease-in-out,filter .28s ease-in-out;}
.local-mosaicplatform-button::before,.local-mosaicplatform-ui-btn-primary::before{content:"";position:absolute;inset:0;background:var(--mosaic-gradient-hover);opacity:0;transition:opacity .45s ease-in-out;z-index:0;pointer-events:none;}
.local-mosaicplatform-button:hover,.local-mosaicplatform-ui-btn-primary:hover{background:var(--mosaic-gradient);background-size:100% 100%;background-position:0 50%;filter:none;box-shadow:none;}
.local-mosaicplatform-button:hover::before,.local-mosaicplatform-ui-btn-primary:hover::before{opacity:1;}
.local-mosaicplatform-button,.local-mosaicplatform-button > *,.local-mosaicplatform-ui-btn-primary,.local-mosaicplatform-ui-btn-primary > *{z-index:1;}
.local-mosaicplatform-button,.local-mosaicplatform-ui-btn-primary{isolation:isolate;}
.local-mosaicplatform-ui-btn:hover,.local-mosaicplatform-button:hover,.local-mosaicplatform-button-secondary:hover{box-shadow:none;}
.local-mosaicplatform-ui-btn-secondary:hover,.local-mosaicplatform-button-secondary:hover{box-shadow:none;filter:none;}
.local-mosaicplatform-ui-btn:active,.local-mosaicplatform-button:active,.local-mosaicplatform-button-secondary:active{filter:brightness(.96);}


/* v0.2.4 button refinement: text-safe smooth gradient, subtle secondary hover, lifted ghost hover. */
.local-mosaicplatform-button,
.local-mosaicplatform-ui-btn-primary {
  position: relative;
  overflow: hidden;
  isolation: auto;
  color: #fff !important;
  background: linear-gradient(90deg,#061b49 0%,#0d3b66 25%,#309ea9 50%,#0d3b66 75%,#061b49 100%) !important;
  background-size: 200% 100% !important;
  background-position: 0 50% !important;
  box-shadow: none !important;
  transform: none;
  transition: background-position .65s ease-in-out, filter .25s ease-in-out, border-color .25s ease-in-out !important;
}
.local-mosaicplatform-button::before,
.local-mosaicplatform-ui-btn-primary::before {
  content: none !important;
  display: none !important;
}
.local-mosaicplatform-button:hover,
.local-mosaicplatform-ui-btn-primary:hover {
  color: #fff !important;
  background-position: 100% 50% !important;
  filter: none !important;
  box-shadow: none !important;
}
.local-mosaicplatform-button:visited,
.local-mosaicplatform-ui-btn-primary:visited,
.local-mosaicplatform-button:hover,
.local-mosaicplatform-ui-btn-primary:hover,
.local-mosaicplatform-button:focus,
.local-mosaicplatform-ui-btn-primary:focus {
  color: #fff !important;
}
.local-mosaicplatform-ui-btn-secondary,
.local-mosaicplatform-button-secondary {
  background: #fff !important;
  color: var(--mosaic-blue) !important;
  border-color: rgba(13,59,102,.30) !important;
  box-shadow: none !important;
  transition: background-color .55s ease-in-out, border-color .55s ease-in-out, color .55s ease-in-out, transform .25s ease-in-out !important;
}
.local-mosaicplatform-ui-btn-secondary:hover,
.local-mosaicplatform-button-secondary:hover {
  background: rgba(48,158,169,.06) !important;
  color: var(--mosaic-navy) !important;
  border-color: rgba(48,158,169,.45) !important;
  box-shadow: none !important;
  filter: none !important;
}
.local-mosaicplatform-ui-btn-ghost {
  background: transparent !important;
  color: var(--mosaic-blue) !important;
  border-color: transparent !important;
  box-shadow: none !important;
  transition: transform .25s ease-in-out, color .25s ease-in-out, text-shadow .25s ease-in-out !important;
}
.local-mosaicplatform-ui-btn-ghost:hover {
  background: transparent !important;
  color: var(--mosaic-navy) !important;
  transform: translateY(-1px);
  box-shadow: none !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.55);
}

/* v0.3.0 first integration helper styles. */
.local-mosaicplatform-page-header{border-radius:16px;padding:1.25rem 1.4rem;margin:1rem 0;background:linear-gradient(120deg,rgba(6,27,73,.96),rgba(13,59,102,.94),rgba(48,158,169,.88));color:#fff;box-shadow:0 6px 18px rgba(13,59,102,.08)}
.local-mosaicplatform-page-header h2{color:#fff;margin:0 0 .35rem}
.local-mosaicplatform-page-header p{margin:.1rem 0 .75rem;color:rgba(255,255,255,.92)}


/* v0.4.0 shared component API and first integration bridge.
   Scoped to Mosaic plugin pages only; no global Moodle or Edma overrides. */
.local-mosaicplatform-component-card,
.local-mosaicplatform-component-dashboard-card,
#page-local-mosaicacademy-index .local-mosaicacademy-dashboard-card,
#page-local-academyauthority-index .card,
#page-local-mosaiccertmanager-index .local-mcm-card,
#page-local-mosaiccertmanager-registry .local-mcm-card,
#page-local-mosaiccertmanager-edit .local-mcm-card,
#page-local-mosaiccertmanager-issue .local-mcm-card,
#page-local-mosaiccertmanager-templates .local-mcm-card,
#page-local-mosaictransaction-index .local-mosaictransaction-dashboard .card {
  border: 1px solid rgba(13,59,102,.11) !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 26px rgba(13,27,61,.055) !important;
  background: #fff !important;
}
.local-mosaicplatform-component-dashboard-card,
#page-local-mosaicacademy-index .local-mosaicacademy-dashboard-card {
  min-height: 112px;
  cursor: pointer;
  transition: transform .22s ease-in-out, box-shadow .22s ease-in-out !important;
}
.local-mosaicplatform-component-dashboard-card:hover,
#page-local-mosaicacademy-index .local-mosaicacademy-dashboard-card:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 28px rgba(13,27,61,.08) !important;
}
#page-local-mosaicacademy-index .local-mosaicacademy-actionbtn.default-btn,
#page-local-academyauthority-index .btn-primary,
#page-local-academyauthority-index input[type="submit"].btn-primary,
#page-local-academyauthority-index .btn-outline-primary,
#page-local-mosaiccertmanager-index .local-mcm-btn,
#page-local-mosaiccertmanager-registry .local-mcm-btn,
#page-local-mosaiccertmanager-edit .local-mcm-btn,
#page-local-mosaiccertmanager-issue .local-mcm-btn,
#page-local-mosaiccertmanager-templates .local-mcm-btn {
  color: #fff !important;
  background: linear-gradient(90deg,#061b49 0%,#0d3b66 25%,#309ea9 50%,#0d3b66 75%,#061b49 100%) !important;
  background-size: 200% 100% !important;
  background-position: 0 50% !important;
  border: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  transition: background-position .65s ease-in-out, filter .25s ease-in-out, transform .25s ease-in-out !important;
}
#page-local-mosaicacademy-index .local-mosaicacademy-actionbtn.default-btn:hover,
#page-local-academyauthority-index .btn-primary:hover,
#page-local-academyauthority-index input[type="submit"].btn-primary:hover,
#page-local-academyauthority-index .btn-outline-primary:hover,
#page-local-mosaiccertmanager-index .local-mcm-btn:hover,
#page-local-mosaiccertmanager-registry .local-mcm-btn:hover,
#page-local-mosaiccertmanager-edit .local-mcm-btn:hover,
#page-local-mosaiccertmanager-issue .local-mcm-btn:hover,
#page-local-mosaiccertmanager-templates .local-mcm-btn:hover {
  color: #fff !important;
  background-position: 100% 50% !important;
  filter: none !important;
  transform: translateY(-1px);
}
#page-local-academyauthority-index .btn-secondary,
#page-local-academyauthority-index .btn-outline-secondary,
#page-local-mosaiccertmanager-index .local-mcm-btn.secondary,
#page-local-mosaiccertmanager-registry .local-mcm-btn.secondary,
#page-local-mosaiccertmanager-edit .local-mcm-btn.secondary,
#page-local-mosaiccertmanager-issue .local-mcm-btn.secondary,
#page-local-mosaiccertmanager-templates .local-mcm-btn.secondary {
  background: #fff !important;
  color: #0d3b66 !important;
  border: 1px solid rgba(13,59,102,.28) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  transition: background-color .55s ease-in-out, border-color .55s ease-in-out, color .55s ease-in-out !important;
}
#page-local-academyauthority-index .btn-secondary:hover,
#page-local-academyauthority-index .btn-outline-secondary:hover,
#page-local-mosaiccertmanager-index .local-mcm-btn.secondary:hover,
#page-local-mosaiccertmanager-registry .local-mcm-btn.secondary:hover,
#page-local-mosaiccertmanager-edit .local-mcm-btn.secondary:hover,
#page-local-mosaiccertmanager-issue .local-mcm-btn.secondary:hover,
#page-local-mosaiccertmanager-templates .local-mcm-btn.secondary:hover {
  background: rgba(48,158,169,.06) !important;
  color: #061b49 !important;
  border-color: rgba(48,158,169,.45) !important;
}
#page-local-mosaicacademy-index .local-mosaicacademy-badge,
#page-local-academyauthority-index .badge,
#page-local-mosaiccertmanager-index .local-mcm-badge,
#page-local-mosaiccertmanager-registry .local-mcm-badge,
#page-local-mosaictransaction-index .badge {
  border-radius: 999px !important;
  padding: .28rem .55rem !important;
  font-weight: 700 !important;
  font-size: .75rem !important;
  line-height: 1.15 !important;
}

/* MPF v0.6.0 search and adoption components. */
.local-mosaicplatform-search-form {
  display: flex;
  gap: .75rem;
  align-items: center;
  margin: 1rem 0 1.5rem;
}
.local-mosaicplatform-search-form .form-control {
  flex: 1 1 auto;
  min-width: 12rem;
  border-radius: 8px;
}
.local-mosaicplatform-search-results {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}
@media (max-width: 576px) {
  .local-mosaicplatform-search-form {
    align-items: stretch;
    flex-direction: column;
  }
}

/* MPF v0.7.0 shared application shell. All selectors remain namespaced. */
.local-mosaicplatform-application-shell {
  --mpf-space-1: .35rem;
  --mpf-space-2: .65rem;
  --mpf-space-3: 1rem;
  --mpf-space-4: 1.5rem;
  --mpf-radius-sm: 8px;
  --mpf-radius-md: 12px;
  --mpf-radius-lg: 16px;
  --mpf-border: rgba(13,59,102,.14);
  --mpf-surface: #fff;
  --mpf-surface-soft: rgba(242,247,250,.82);
  width: 100%;
}
.local-mosaicplatform-shell-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
  gap: var(--mpf-space-4);
  align-items: start;
}
.local-mosaicplatform-shell-main,
.local-mosaicplatform-shell-aside {
  min-width: 0;
}
.local-mosaicplatform-component-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .2rem 0 1.25rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--mpf-border, rgba(13,59,102,.14));
}
.local-mosaicplatform-component-tab {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 38px;
  padding: .48rem .8rem;
  border: 1px solid rgba(13,59,102,.18);
  border-radius: 8px;
  background: #fff;
  color: #0d3b66;
  font-weight: 650;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.local-mosaicplatform-component-tab:hover {
  border-color: rgba(48,158,169,.5);
  background: rgba(48,158,169,.055);
  color: #061b49;
  text-decoration: none;
}
.local-mosaicplatform-component-tab.active {
  color: #fff;
  border-color: #0d3b66;
  background: #0d3b66;
}
.local-mosaicplatform-tab-count {
  min-width: 1.4rem;
  padding: .08rem .36rem;
  border-radius: 999px;
  background: rgba(13,59,102,.09);
  color: inherit;
  font-size: .75rem;
  line-height: 1.2;
  text-align: center;
}
.local-mosaicplatform-component-tab.active .local-mosaicplatform-tab-count {
  background: rgba(255,255,255,.2);
}
.local-mosaicplatform-component-filterbar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: end;
  padding: 1rem;
  margin: 0 0 1rem;
  border: 1px solid rgba(13,59,102,.12);
  border-radius: 12px;
  background: rgba(242,247,250,.72);
}
.local-mosaicplatform-filter-field {
  flex: 1 1 190px;
  min-width: 0;
}
.local-mosaicplatform-filter-field label {
  display: block;
  margin-bottom: .3rem;
  color: #273653;
  font-size: .84rem;
  font-weight: 700;
}
.local-mosaicplatform-filter-actions {
  flex: 0 0 auto;
}
.local-mosaicplatform-component-feedback {
  display: flex;
  flex-direction: column;
  gap: .18rem;
  padding: .85rem 1rem;
  margin: .75rem 0;
  border: 1px solid transparent;
  border-left-width: 4px;
  border-radius: 10px;
  background: #fff;
}
.local-mosaicplatform-feedback-compact {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .45rem;
  padding: .55rem .75rem;
}
.local-mosaicplatform-feedback-success {border-color: rgba(28,128,82,.25);border-left-color:#1c8052;background:rgba(223,246,233,.6)}
.local-mosaicplatform-feedback-info {border-color: rgba(48,158,169,.28);border-left-color:#309ea9;background:rgba(225,245,247,.62)}
.local-mosaicplatform-feedback-warning {border-color: rgba(179,126,0,.28);border-left-color:#b37e00;background:rgba(255,247,218,.68)}
.local-mosaicplatform-feedback-danger {border-color: rgba(177,43,48,.28);border-left-color:#b12b30;background:rgba(253,232,233,.68)}
.local-mosaicplatform-feedback-title {color:#061b49}
.local-mosaicplatform-feedback-message {color:#3f4b63}
.local-mosaicplatform-component-confirmation {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(13,59,102,.14);
  border-radius: 12px;
  background: #fff;
}
.local-mosaicplatform-confirmation-warning {border-left:4px solid #b37e00}
.local-mosaicplatform-confirmation-danger {border-left:4px solid #b12b30}
.local-mosaicplatform-confirmation-info {border-left:4px solid #309ea9}
.local-mosaicplatform-confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .8rem;
}
.local-mosaicplatform-component-loading {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .8rem 1rem;
  color: #3f4b63;
}
.local-mosaicplatform-spinner {
  width: 1.15rem;
  height: 1.15rem;
  border: 2px solid rgba(13,59,102,.18);
  border-top-color: #0d3b66;
  border-radius: 50%;
  animation: local-mosaicplatform-spin .8s linear infinite;
}
@keyframes local-mosaicplatform-spin {to {transform: rotate(360deg)}}
@media (prefers-reduced-motion: reduce) {
  .local-mosaicplatform-spinner {animation-duration: 1.6s}
  .local-mosaicplatform-component-tab,
  .local-mosaicplatform-button,
  .local-mosaicplatform-ui-btn {transition-duration: .01ms !important}
}
@media (max-width: 767.98px) {
  .local-mosaicplatform-shell-grid {grid-template-columns: 1fr}
  .local-mosaicplatform-shell-aside {order: -1}
  .local-mosaicplatform-component-tabs {overflow-x: auto;flex-wrap: nowrap;padding-bottom:.75rem}
  .local-mosaicplatform-component-tab {white-space: nowrap}
  .local-mosaicplatform-component-filterbar {align-items: stretch;flex-direction: column}
  .local-mosaicplatform-filter-actions .local-mosaicplatform-ui-btn {width:100%;text-align:center}
}

/* MPF v0.8.0 shared experience shell. */
.local-mosaicplatform-commandbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin:0 0 1rem;padding:.75rem;border:1px solid rgba(13,59,102,.12);border-radius:12px;background:rgba(242,247,250,.72)}
.local-mosaicplatform-course-card{display:grid;grid-template-columns:140px minmax(0,1fr);overflow:hidden;border:1px solid rgba(13,59,102,.13);border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(13,27,61,.045)}
.local-mosaicplatform-course-image{display:block;width:100%;height:100%;min-height:150px;object-fit:cover;background:linear-gradient(135deg,#061b49,#309ea9)}
.local-mosaicplatform-course-image-fallback{position:relative}.local-mosaicplatform-course-image-fallback:after{content:'M';position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.88);font-size:2.4rem;font-weight:800}
.local-mosaicplatform-course-body{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;padding:1rem}.local-mosaicplatform-course-title{margin:0;color:#061b49}.local-mosaicplatform-course-meta{display:flex;flex-wrap:wrap;gap:.35rem}
.local-mosaicplatform-course-progress{width:100%;height:8px;overflow:hidden;border-radius:999px;background:rgba(13,59,102,.1)}.local-mosaicplatform-course-progress-value{height:100%;border-radius:inherit;background:linear-gradient(90deg,#061b49,#309ea9)}.local-mosaicplatform-course-progress-label{font-size:.82rem;color:#4b5870}
.local-mosaicplatform-drawer-host{position:fixed;top:48%;z-index:1050}.local-mosaicplatform-drawer-host-right{right:0}.local-mosaicplatform-drawer-host-left{left:0}
.local-mosaicplatform-drawer-toggle{min-width:46px;min-height:58px;padding:.65rem .55rem;border:0;background:#0d3b66;color:#fff;font-weight:700;writing-mode:vertical-rl;cursor:pointer;box-shadow:0 8px 20px rgba(13,27,61,.16)}
.local-mosaicplatform-drawer-host-right .local-mosaicplatform-drawer-toggle{border-radius:12px 0 0 12px;transform:rotate(180deg)}.local-mosaicplatform-drawer-host-left .local-mosaicplatform-drawer-toggle{border-radius:0 12px 12px 0}
.local-mosaicplatform-drawer-toggle.has-attention{animation:local-mosaicplatform-attention 2.8s ease-in-out 2}.local-mosaicplatform-drawer-badge{display:inline-grid;place-items:center;min-width:1.35rem;min-height:1.35rem;margin-top:.4rem;padding:.1rem;border-radius:999px;background:#fff;color:#0d3b66;font-size:.72rem;writing-mode:horizontal-tb}
.local-mosaicplatform-drawer{position:fixed;top:0;bottom:0;width:min(390px,92vw);padding:1rem;background:#fff;box-shadow:0 0 35px rgba(13,27,61,.2);overflow:auto;transition:transform .28s ease;z-index:1060}.local-mosaicplatform-drawer-right{right:0;transform:translateX(105%)}.local-mosaicplatform-drawer-left{left:0;transform:translateX(-105%)}.local-mosaicplatform-drawer.is-open{transform:translateX(0)}
.local-mosaicplatform-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(13,59,102,.12)}.local-mosaicplatform-drawer-header h2{margin:0}.local-mosaicplatform-drawer-close{width:40px;height:40px;border:0;border-radius:8px;background:rgba(13,59,102,.07);color:#061b49;font-size:1.5rem}.local-mosaicplatform-drawer-content{display:grid;gap:.85rem;padding-top:.85rem}.local-mosaicplatform-drawer-widget{padding:1rem;border:1px solid rgba(13,59,102,.12);border-radius:12px;background:#fff}.local-mosaicplatform-drawer-widget h3{margin-top:0}
.local-mosaicplatform-auth-footer{margin-top:2rem;background:#eef5f7;color:#273653}.local-mosaicplatform-footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;max-width:1200px;margin:0 auto;padding:1.5rem}.local-mosaicplatform-footer-column{display:flex;flex-direction:column;gap:.45rem}.local-mosaicplatform-footer-column h3{margin:0 0 .35rem;color:#061b49}.local-mosaicplatform-footer-column p{margin:0}.local-mosaicplatform-footer-strip{padding:.75rem 1.5rem;border-top:1px solid rgba(13,59,102,.1);text-align:center;font-size:.82rem}
@keyframes local-mosaicplatform-attention{0%,100%{box-shadow:0 8px 20px rgba(13,27,61,.16)}50%{box-shadow:0 8px 24px rgba(48,158,169,.4)}}
@media (max-width:767.98px){.local-mosaicplatform-course-card{grid-template-columns:1fr}.local-mosaicplatform-course-image{height:150px}.local-mosaicplatform-footer-grid{grid-template-columns:1fr 1fr}.local-mosaicplatform-commandbar>.local-mosaicplatform-ui-btn{flex:1 1 calc(50% - .65rem);text-align:center}}
@media (max-width:480px){.local-mosaicplatform-footer-grid{grid-template-columns:1fr}.local-mosaicplatform-commandbar>.local-mosaicplatform-ui-btn{flex-basis:100%}}
@media (prefers-reduced-motion:reduce){.local-mosaicplatform-drawer{transition:none}.local-mosaicplatform-drawer-toggle.has-attention{animation:none}}


/* MPF v0.9.0 canonical dashboard framework and consolidated application shell. */
.local-mosaicplatform-platform-grid,
.local-mosaicplatform-stat-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}
.local-mosaicplatform-dashboard-framework { width:100%; }
.local-mosaicplatform-dashboard-status { margin:-.45rem 0 1rem; }
.local-mosaicplatform-stat-tile {
  min-width:0; padding:1rem 1.05rem; border:1px solid rgba(13,59,102,.12);
  border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(13,27,61,.045);
}
.local-mosaicplatform-stat-link { display:block; color:inherit; text-decoration:none; }
.local-mosaicplatform-stat-label { color:#40506a; font-size:.82rem; font-weight:700; }
.local-mosaicplatform-stat-value { color:#061b49; font-size:1.8rem; font-weight:800; line-height:1.1; margin:.28rem 0; }
.local-mosaicplatform-stat-caption { color:#65738a; font-size:.84rem; }
.local-mosaicplatform-stat-status { margin-top:.65rem; }
.local-mosaicplatform-dashboard-section {
  margin:1.1rem 0; border:1px solid rgba(13,59,102,.11); border-radius:14px;
  background:#fff; box-shadow:0 8px 24px rgba(13,27,61,.04); overflow:hidden;
}
.local-mosaicplatform-dashboard-section-header {
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  padding:1rem 1.1rem .8rem; border-bottom:1px solid rgba(13,59,102,.08);
}
.local-mosaicplatform-dashboard-section-heading h2 { margin:0; font-size:1.18rem; }
.local-mosaicplatform-dashboard-section-heading p { margin:.2rem 0 0; }
.local-mosaicplatform-dashboard-section-body { padding:1rem 1.1rem; }
.local-mosaicplatform-scroll-list { list-style:none; margin:0; padding:0; max-height:26rem; overflow:auto; }
.local-mosaicplatform-scroll-list li + li { border-top:1px solid rgba(13,59,102,.08); }
.local-mosaicplatform-list-link,
.local-mosaicplatform-scroll-list li > .local-mosaicplatform-list-copy { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.78rem .2rem; text-decoration:none; }
.local-mosaicplatform-list-copy { min-width:0; display:flex; flex-direction:column; }
.local-mosaicplatform-list-meta { color:#65738a; font-size:.8rem; }
.local-mosaicplatform-widget-host { display:grid; gap:.8rem; }
.local-mosaicplatform-widget { border:1px solid rgba(13,59,102,.12); border-radius:12px; background:#fff; overflow:hidden; }
.local-mosaicplatform-widget.is-pinned { border-color:rgba(48,158,169,.55); }
.local-mosaicplatform-widget-header { display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.75rem .85rem; background:rgba(242,247,250,.75); }
.local-mosaicplatform-widget-header h3 { margin:0; font-size:1rem; }
.local-mosaicplatform-widget-body { padding:.85rem; }
.local-mosaicplatform-widget-control { border:0; background:transparent; color:#0d3b66; font-size:.76rem; padding:.2rem .35rem; }
.local-mosaicplatform-footer-contact { white-space:pre-line; }
@media (max-width:767px){
  .local-mosaicplatform-dashboard-section-header{flex-direction:column;}
  .local-mosaicplatform-stat-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:480px){.local-mosaicplatform-stat-grid{grid-template-columns:1fr;}}

/* MPF v0.9.2 front-end primary navigation. Scoped away from Moodle administration. */
body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link {
    display:inline-flex;align-items:center;min-height:38px;padding:.5rem .85rem;margin:.15rem .1rem;
    border-radius:8px;color:#0b2f5f!important;font-weight:700;text-decoration:none;
    border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link:hover,
body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link:focus {
    color:#fff!important;border-color:rgba(255,255,255,.2);
    background:linear-gradient(100deg,#061b49 0%,#0d3b66 58%,#2a6f97 100%);
    transform:translateY(-1px);outline:none;
}
body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link:focus-visible {
    box-shadow:0 0 0 3px rgba(48,158,169,.28);
}
@media (prefers-reduced-motion: reduce) {
    body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link {transition:none;}
    body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link:hover,
    body:not(.path-admin) .primary-navigation .local-mosaicplatform-primary-link:focus {transform:none;}
}

/* MPF v0.9.5 Edma-aware top navigation. Edma provides the physical shell; MPF owns content and visual language. */
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav {
    background:linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%);
    box-shadow:0 8px 24px rgba(6,27,73,.13);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .navbar {
    min-height:78px;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .navbar-brand,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .category,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .others-options,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .edma-navbar-user {
    position:relative;
    z-index:2;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu {
    display:flex;
    align-items:center;
    gap:.35rem;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link {
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:.55rem .9rem;
    border:1px solid rgba(255,255,255,.24);
    border-radius:8px;
    background:rgba(255,255,255,.07);
    color:#fff!important;
    font-weight:700;
    text-decoration:none;
    transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:focus,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link:focus {
    background:rgba(255,255,255,.18);
    border-color:rgba(255,255,255,.48);
    color:#fff!important;
    transform:translateY(-1px);
    outline:none;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:focus-visible,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link:focus-visible {
    box-shadow:0 0 0 3px rgba(118,220,226,.35);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .navbar-brand img {
    filter:drop-shadow(0 3px 7px rgba(0,0,0,.16));
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .category img,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .navbar-toggler-icon {
    filter:brightness(0) invert(1);
}
@media (max-width:991.98px) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav {background:#fff;box-shadow:none;}
}
@media (prefers-reduced-motion:reduce) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link {transition:none;}
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:hover,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:focus {transform:none;}
}

/* MPF v0.9.7 authenticated header polish.
 * Edma continues to provide the physical header container. MPF owns the visible
 * Mosaic navigation treatment. These rules are deliberately scoped away from
 * native Moodle administration pages.
 */
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .navbar {
    color:#fff;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link {
    background:linear-gradient(105deg,rgba(7,36,83,.96) 0%,rgba(17,72,120,.94) 58%,rgba(39,143,157,.92) 100%);
    border-color:rgba(255,255,255,.34);
    box-shadow:0 4px 12px rgba(3,18,52,.16);
    color:#fff!important;
    text-shadow:0 1px 1px rgba(0,0,0,.18);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active #menu-primary-menu > li > a:focus,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .local-mosaicplatform-primary-link:focus {
    background:linear-gradient(105deg,#2f94a4 0%,#174f82 45%,#061b49 100%);
    border-color:rgba(255,255,255,.62);
    box-shadow:0 6px 16px rgba(3,18,52,.22);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec {
    display:flex;
    align-items:center;
    gap:.45rem;
    margin:0 0 0 1rem;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec > li {
    display:flex;
    align-items:center;
    margin:0!important;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form label,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form .form-check-label,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form span {
    color:#fff!important;
    font-weight:700;
    opacity:1!important;
    text-shadow:0 1px 1px rgba(0,0,0,.18);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form .form-check-input {
    border-color:rgba(255,255,255,.72);
    box-shadow:none;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .editmode-switch-form .form-check-input:checked {
    background-color:#2f94a4;
    border-color:#7dd8df;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid rgba(255,255,255,.34);
    border-radius:9px;
    background:linear-gradient(105deg,#09255b 0%,#123f73 62%,#248a9b 100%);
    color:#fff!important;
    box-shadow:0 4px 12px rgba(3,18,52,.16);
    transition:background .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon:focus,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle:focus,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a:focus {
    background:linear-gradient(105deg,#2f94a4 0%,#174f82 48%,#061b49 100%);
    border-color:rgba(255,255,255,.62);
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(3,18,52,.22);
    outline:none;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec i,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec svg {
    color:#fff!important;
    fill:currentColor;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .usermenu .dropdown-toggle,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .usermenu .dropdown-toggle::after,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .usertext {
    color:#fff!important;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .others-options .search-form {
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 4px 14px rgba(3,18,52,.12);
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .others-options .search-form .src-btn {
    color:#167f90;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .others-options .search-form .src-btn:hover,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav .others-options .search-form .src-btn:focus {
    color:#061b49;
}
@media (prefers-reduced-motion:reduce) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a {
        transition:none;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon:hover,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle:hover,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a:hover {
        transform:none;
    }
}


/* MPF v0.9.8 header alignment and administration-shell visual parity.
 * Native Moodle administration navigation remains functionally untouched.
 * These rules only apply the Mosaic visual treatment to Edma's physical header.
 */
body.path-admin .navbar-area .desktop-nav {
    background:linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%);
    box-shadow:0 8px 24px rgba(6,27,73,.13);
}
body.path-admin .navbar-area .desktop-nav .navbar {
    min-height:78px;
    color:#fff;
}
body.path-admin .navbar-area .desktop-nav .navbar-brand img {
    filter:drop-shadow(0 3px 7px rgba(0,0,0,.16));
}
body.path-admin .navbar-area .desktop-nav .category img,
body.path-admin .navbar-area .desktop-nav .navbar-toggler-icon {
    filter:brightness(0) invert(1);
}
body.path-admin .navbar-area .edma-header-user-sec {
    display:flex;
    align-items:center;
    gap:.45rem;
    margin:0 0 0 1rem;
}
body.path-admin .navbar-area .edma-header-user-sec > li {
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0!important;
}
body.path-admin .navbar-area .editmode-switch-form,
body.path-admin .navbar-area .editmode-switch-form label,
body.path-admin .navbar-area .editmode-switch-form .form-check-label,
body.path-admin .navbar-area .editmode-switch-form span {
    color:#fff!important;
    font-weight:700;
    opacity:1!important;
    text-shadow:0 1px 1px rgba(0,0,0,.18);
}
body.path-admin .navbar-area .edma-header-user-sec .notification-icon,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle,
body.path-admin .navbar-area .edma-header-user-sec .edma-settings-nav > .dropdown > a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    min-width:42px;
    min-height:42px;
    padding:0!important;
    line-height:1!important;
    border:1px solid rgba(255,255,255,.34);
    border-radius:9px;
    background:linear-gradient(105deg,#09255b 0%,#123f73 62%,#248a9b 100%);
    color:#fff!important;
    box-shadow:0 4px 12px rgba(3,18,52,.16);
}

/* Centre Edma/Moodle header glyphs consistently in both front-end and admin shells. */
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a,
body.path-admin .navbar-area .edma-header-user-sec .notification-icon,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle,
body.path-admin .navbar-area .edma-header-user-sec .edma-settings-nav > .dropdown > a {
    position:relative;
    box-sizing:border-box;
    vertical-align:middle;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon .icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle .icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a .icon,
body.path-admin .navbar-area .edma-header-user-sec .notification-icon .icon,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle .icon,
body.path-admin .navbar-area .edma-header-user-sec .edma-settings-nav > .dropdown > a .icon,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .notification-icon i,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle i,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .edma-settings-nav > .dropdown > a i,
body.path-admin .navbar-area .edma-header-user-sec .notification-icon i,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle i,
body.path-admin .navbar-area .edma-header-user-sec .edma-settings-nav > .dropdown > a i {
    display:block!important;
    width:20px!important;
    height:20px!important;
    margin:0!important;
    padding:0!important;
    line-height:20px!important;
    text-align:center!important;
    flex:0 0 20px;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec svg,
body.path-admin .navbar-area .edma-header-user-sec svg {
    display:block;
    width:20px!important;
    height:20px!important;
    margin:auto!important;
}
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle::before,
body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .edma-header-user-sec .popover-region-toggle::after,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle::before,
body.path-admin .navbar-area .edma-header-user-sec .popover-region-toggle::after {
    margin:0;
}
body.path-admin .navbar-area .edma-header-user-sec .usermenu .dropdown-toggle,
body.path-admin .navbar-area .edma-header-user-sec .usermenu .dropdown-toggle::after,
body.path-admin .navbar-area .edma-header-user-sec .usertext {
    color:#fff!important;
}
body.path-admin .navbar-area .desktop-nav .others-options .search-form {
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 4px 14px rgba(3,18,52,.12);
}
@media (max-width:991.98px) {
    body.path-admin .navbar-area .desktop-nav {background:#fff;box-shadow:none;}
}

/* MAOS v0.9.9 semantic appearance foundation. */
:root {
    color-scheme:light;
    --maos-bg:#fbfdff;
    --maos-surface:#ffffff;
    --maos-surface-raised:#ffffff;
    --maos-surface-muted:#f4f8fc;
    --maos-text:#071f49;
    --maos-text-muted:#60738a;
    --maos-heading:#061b49;
    --maos-border:#e2eaf2;
    --maos-divider:#edf2f7;
    --maos-primary:#08265b;
    --maos-primary-strong:#061b49;
    --maos-primary-contrast:#ffffff;
    --maos-accent:#2294a3;
    --maos-success:#1f7a55;
    --maos-warning:#8a5a00;
    --maos-danger:#a72d37;
    --maos-info:#2a6f97;
    --maos-focus-ring:0 0 0 3px #0b6f88;
    --maos-shadow:0 7px 22px rgba(6,27,73,.075);
    --maos-shadow-raised:0 13px 32px rgba(6,27,73,.12);
    --maos-gradient:linear-gradient(105deg,#0a2a5d 0%,#1b4d7a 58%,#3c9eaa 100%);
    --maos-gradient-primary:var(--maos-gradient);
    --maos-workspace:var(--maos-bg);
    --maos-panel:var(--maos-surface);
    --maos-panel-raised:var(--maos-surface-raised);
    --maos-surface-canvas:var(--maos-bg);
    --maos-surface-panel:var(--maos-surface);
    --maos-surface-elevated:var(--maos-surface-raised);
    --maos-surface-interactive:var(--maos-surface-muted);
    --maos-surface-1:var(--maos-bg);
    --maos-surface-2:var(--maos-surface);
    --maos-surface-3:var(--maos-surface-raised);
    --maos-surface-4:var(--maos-surface-muted);
    --maos-text-primary:var(--maos-text);
    --maos-text-secondary:var(--maos-text-muted);
    --maos-border-subtle:var(--maos-border);
    --maos-font-display:var(--fontFamily,"Josefin Sans",Arial,sans-serif);
    --maos-font-interface:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --maos-font-body:var(--maos-font-interface);
    --maos-font-size-body:1rem;
    --maos-font-size-small:.875rem;
    --maos-line-height-body:1.5;
    --maos-line-height-compact:1.4;
}
html[data-maos-theme="dark"] {
    color-scheme:dark;
    --maos-bg:#07121f;
    --maos-surface:#0d1d30;
    --maos-surface-raised:#142941;
    --maos-surface-muted:#1a334e;
    --maos-text:#f4f8fd;
    --maos-text-muted:#c7d8e8;
    --maos-heading:#ffffff;
    --maos-border:#5c7896;
    --maos-divider:#486681;
    --maos-primary:#75b8ff;
    --maos-primary-strong:#9bcbff;
    --maos-primary-contrast:#061b49;
    --maos-accent:#68d4de;
    --maos-success:#63d69d;
    --maos-warning:#ffd27a;
    --maos-danger:#ff9aa3;
    --maos-info:#9bcbff;
    --maos-focus-ring:0 0 0 3px #68d4de;
    --maos-shadow:0 10px 30px rgba(0,0,0,.28);
    --maos-shadow-raised:0 18px 40px rgba(0,0,0,.38);
    --maos-gradient:linear-gradient(105deg,#03112b 0%,#0d385f 58%,#248895 100%);
    --maos-gradient-primary:var(--maos-gradient);
    --maos-workspace:var(--maos-bg);
    --maos-panel:var(--maos-surface);
    --maos-panel-raised:var(--maos-surface-raised);
    --maos-surface-canvas:var(--maos-bg);
    --maos-surface-panel:var(--maos-surface);
    --maos-surface-elevated:var(--maos-surface-raised);
    --maos-surface-interactive:var(--maos-surface-muted);
    --maos-surface-1:var(--maos-bg);
    --maos-surface-2:var(--maos-surface);
    --maos-surface-3:var(--maos-surface-raised);
    --maos-surface-4:var(--maos-surface-muted);
    --maos-text-primary:var(--maos-text);
    --maos-text-secondary:var(--maos-text-muted);
    --maos-border-subtle:var(--maos-border);
    --maos-font-display:var(--fontFamily,"Josefin Sans",Arial,sans-serif);
    --maos-font-interface:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --maos-font-body:var(--maos-font-interface);
    --maos-font-size-body:1rem;
    --maos-font-size-small:.875rem;
    --maos-line-height-body:1.5;
    --maos-line-height-compact:1.4;
}
html[data-maos-theme] body {
    background:var(--maos-bg);
    color:var(--maos-text);
}
html[data-maos-theme] .local-mosaicplatform-shell,
html[data-maos-theme] .local-mosaicplatform-card,
html[data-maos-theme] .local-mosaicplatform-dashboard-section,
html[data-maos-theme] .local-mosaicplatform-statistic-tile,
html[data-maos-theme] .local-mosaicplatform-course-card,
html[data-maos-theme] .local-mosaicplatform-info-panel,
html[data-maos-theme] .local-mosaicplatform-widget,
html[data-maos-theme] .local-mosaicplatform-drawer,
html[data-maos-theme] .local-mosaicplatform-authenticated-footer,
html[data-maos-theme] .mosaic-dashboard-card,
html[data-maos-theme] .mosaic-workspace,
html[data-maos-theme] .card {
    background-color:var(--maos-surface);
    border-color:var(--maos-border);
    color:var(--maos-text);
}
html[data-maos-theme="dark"] body:not(.path-admin) #page,
html[data-maos-theme="dark"] body:not(.path-admin) #page-wrapper,
html[data-maos-theme="dark"] body:not(.path-admin) .main-inner,
html[data-maos-theme="dark"] body:not(.path-admin) [role="main"] {
    background-color:var(--maos-bg);
    color:var(--maos-text);
}
html[data-maos-theme="dark"] body:not(.path-admin) #page-content,
html[data-maos-theme="dark"] body:not(.path-admin) .region-main,
html[data-maos-theme="dark"] body:not(.path-admin) .course-content,
html[data-maos-theme="dark"] body:not(.path-admin) .block-region {
    background-color:transparent;
    color:var(--maos-text);
}
html[data-maos-theme="dark"] body:not(.path-admin) h1,
html[data-maos-theme="dark"] body:not(.path-admin) h2,
html[data-maos-theme="dark"] body:not(.path-admin) h3,
html[data-maos-theme="dark"] body:not(.path-admin) h4,
html[data-maos-theme="dark"] body:not(.path-admin) h5,
html[data-maos-theme="dark"] body:not(.path-admin) h6,
html[data-maos-theme="dark"] body:not(.path-admin) p,
html[data-maos-theme="dark"] body:not(.path-admin) label,
html[data-maos-theme="dark"] body:not(.path-admin) .text-dark {
    color:var(--maos-text)!important;
}
html[data-maos-theme="dark"] body:not(.path-admin) .text-muted,
html[data-maos-theme="dark"] body:not(.path-admin) small {
    color:var(--maos-text-muted)!important;
}
html[data-maos-theme="dark"] body:not(.path-admin) input,
html[data-maos-theme="dark"] body:not(.path-admin) select,
html[data-maos-theme="dark"] body:not(.path-admin) textarea,
html[data-maos-theme="dark"] body:not(.path-admin) .form-control {
    background:var(--maos-surface-raised);
    border-color:var(--maos-border);
    color:var(--maos-text);
}
html[data-maos-theme="dark"] body:not(.path-admin) input::placeholder,
html[data-maos-theme="dark"] body:not(.path-admin) textarea::placeholder {color:var(--maos-text-muted);}
html[data-maos-theme="dark"] body:not(.path-admin) table,
html[data-maos-theme="dark"] body:not(.path-admin) .table {color:var(--maos-text);}
html[data-maos-theme="dark"] body:not(.path-admin) .table-striped tbody tr:nth-of-type(odd),
html[data-maos-theme="dark"] body:not(.path-admin) .table-hover tbody tr:hover {background:var(--maos-surface-muted);}

.maos-appearance-control-wrap {
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:3rem;
}
.maos-appearance-control {
    width:3rem;
    height:2.35rem;
    padding:0;
    border:1px solid rgba(255,255,255,.38);
    border-radius:.55rem;
    background:rgba(5,31,73,.45);
    color:#fff;
    font-size:0;
    cursor:pointer;
    box-shadow:0 4px 12px rgba(3,18,52,.16);
    text-align:center;
    appearance:none;
    background-image:linear-gradient(135deg,transparent 50%,#fff 50%),linear-gradient(45deg,#fff 50%,transparent 50%);
    background-position:calc(50% + 4px) 48%,calc(50% - 4px) 48%;
    background-size:7px 7px,7px 7px;
    background-repeat:no-repeat;
}
.maos-appearance-control:hover,
.maos-appearance-control:focus-visible {
    border-color:rgba(255,255,255,.7);
    background-color:rgba(255,255,255,.14);
    outline:none;
}
.maos-appearance-control option {font-size:1rem;color:#071f49;background:#fff;}
html[data-maos-theme="dark"] .maos-appearance-control option {color:#eef6ff;background:#12243a;}

html[data-maos-theme="dark"] .local-mosaicplatform-authenticated-footer,
html[data-maos-theme="dark"] .mosaic-authenticated-footer {background:#06152f;color:#eef6ff;}

@media (prefers-reduced-motion:reduce) {
    html[data-maos-theme] *, html[data-maos-theme] *::before, html[data-maos-theme] *::after {
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
    }
}

/* MAOS v0.9.11 profile appearance segmented control. */
.maos-profile-appearance {
    display:block;
    padding:.75rem 1rem 1rem;
    margin-top:.35rem;
    border-top:1px solid var(--maos-border,#d5e0eb);
    color:var(--maos-text,#071f49);
}
.maos-profile-appearance-label {
    margin:0 0 .55rem;
    font-weight:700;
    color:inherit;
}
.maos-profile-appearance-options {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.35rem;
    padding:.25rem;
    border:1px solid var(--maos-border,#d5e0eb);
    border-radius:.7rem;
    background:var(--maos-surface-muted,#eef4f8);
}
.maos-profile-appearance-option {
    min-height:2.25rem;
    padding:.35rem .45rem;
    border:0;
    border-radius:.5rem;
    background:transparent;
    color:var(--maos-text-muted,#52677f);
    font:inherit;
    font-weight:700;
    line-height:1.2;
    cursor:pointer;
    transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.maos-profile-appearance-option:hover {
    color:var(--maos-text,#071f49);
    background:var(--maos-surface-raised,#fff);
}
.maos-profile-appearance-option.is-selected,
.maos-profile-appearance-option[aria-checked="true"] {
    color:var(--maos-primary-contrast,#fff);
    background:var(--maos-gradient-primary,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%));
    box-shadow:0 3px 9px rgba(6,27,73,.2);
}
.maos-profile-appearance-option:focus-visible {
    outline:3px solid color-mix(in srgb,var(--maos-accent,#2294a3) 42%,transparent);
    outline-offset:2px;
}
.maos-profile-appearance-option:active {transform:translateY(1px);}
.maos-appearance-control-wrap {display:none!important;}

@media (max-width:991.98px) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active {
        background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%));
        box-shadow:0 8px 24px rgba(6,27,73,.15);
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-nav {
        display:block!important;
        background:transparent!important;
        min-height:64px;
        padding:0;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-nav .container {
        max-width:none;
        padding:0 16px;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu {
        min-height:64px;
        display:flex;
        align-items:center;
        position:relative;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo {
        position:relative!important;
        inset:auto!important;
        z-index:3;
        display:flex;
        align-items:center;
        margin:0;
        max-width:190px;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo img {
        display:block;
        width:auto!important;
        max-width:180px!important;
        max-height:54px!important;
        object-fit:contain;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-bar {
        position:absolute;
        inset:0;
        min-height:64px;
        padding:0;
        background:transparent!important;
        z-index:2;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal {
        top:8px!important;
        right:4px!important;
        width:44px!important;
        height:44px!important;
        padding:10px!important;
        border:1px solid rgba(255,255,255,.34);
        border-radius:.65rem;
        background:rgba(4,30,70,.38);
        box-sizing:border-box!important;
        display:flex!important;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:4px;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal span {
        width:22px;
        height:2px;
        margin:0;
        border-radius:2px;
        background:#fff!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav {
        margin-top:64px;
        background:#071b3a!important;
        border-top:1px solid rgba(255,255,255,.16);
        box-shadow:0 14px 30px rgba(2,13,37,.28);
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav ul {
        background:transparent!important;
        max-height:calc(100vh - 84px);
        overflow-y:auto;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav ul li a,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .local-mosaicplatform-mobile-link {
        width:100%!important;
        padding:14px 18px!important;
        box-sizing:border-box!important;
        border-top:1px solid rgba(255,255,255,.13)!important;
        color:#fff!important;
        text-transform:none!important;
        font-weight:600;
        letter-spacing:0;
        opacity:1!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav ul li a:hover,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav ul li a:focus-visible {
        background:rgba(47,148,164,.24)!important;
        color:#fff!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive {
        top:10px;
        right:68px;
        z-index:4;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .dot-menu {
        width:44px;
        height:44px;
        border:1px solid rgba(255,255,255,.34);
        border-radius:.65rem;
        background:rgba(4,30,70,.38);
        display:flex;
        align-items:center;
        justify-content:center;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .dot-menu .inner {
        display:flex;
        align-items:center;
        gap:3px;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .dot-menu .circle {
        width:4px;
        height:4px;
        margin:0;
        background:#fff!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .option-inner {
        border:1px solid var(--maos-border,#d5e0eb);
        border-radius:.75rem;
        background:var(--maos-surface,#fff);
        color:var(--maos-text,#071f49);
        box-shadow:var(--maos-shadow,0 8px 24px rgba(6,27,73,.10));
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .edma-header-user-sec {
        display:flex;
        align-items:center;
        justify-content:center;
        gap:.45rem;
        margin:0;
        padding:.5rem;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .popover-region-toggle,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .notification-icon,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .edma-profile-menu {
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        min-width:42px;
        min-height:42px;
        border-radius:.6rem;
    }
}

.maos-profile-authority-preview{border-top:1px solid rgba(13,59,102,.12);margin-top:.5rem;padding-top:.5rem;}
.maos-profile-authority-preview-link{font-weight:700;color:var(--maos-text-strong,#0d3b66)!important;}
.maos-profile-authority-preview-link:hover,.maos-profile-authority-preview-link:focus{background:var(--maos-surface-muted,#eef6ff)!important;color:var(--maos-primary,#0d3b66)!important;}


/* MAOS v0.9.16 manager standards and truthful health. */
.local-mosaicplatform-table-note{margin-top:.3rem;color:var(--maos-text-muted,#65738a);font-size:.76rem;line-height:1.3}
.local-mosaicplatform-manager-standard{width:100%}
.local-mosaicplatform-manager-identity{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;margin:-.35rem 0 .8rem}
.local-mosaicplatform-manager-release{color:var(--maos-text-muted,#65738a);font-size:.82rem;font-weight:650}
@media (max-width:767px){.local-mosaicplatform-manager-identity{justify-content:flex-start;flex-wrap:wrap}}

/* MAOS v0.9.17 Moodle core appearance bridge.
   Presentation-only compatibility layer for traditional Moodle and Edma pages.
   It does not add, remove, or reorder Moodle navigation nodes. */
html[data-maos-core-appearance="1"][data-maos-theme="light"] {
    color-scheme:light;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] {
    color-scheme:dark;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #wrapper,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page-wrapper,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .main-inner,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page-content,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #region-main,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .region-main,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .dashboard_main_content,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .course-content,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .block-region {
    background-color:var(--maos-bg)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card,
    .block,
    .block-cards,
    .list-group-item,
    .activity-item,
    .course-section,
    .courseindex,
    .courseindex-section,
    .drawer,
    .drawercontent,
    .modal-content,
    .dropdown-menu,
    .popover,
    .toast,
    .filemanager,
    .filepicker-filelist,
    .fp-content,
    .secondary-navigation,
    .tertiary-navigation,
    .moremenu,
    .adminsettings,
    .settingsform,
    .generalbox,
    .box,
    .well
) {
    background-color:var(--maos-surface)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card-header,
    .card-footer,
    .modal-header,
    .modal-footer,
    .drawerheader,
    .activity-header,
    .course-section-header,
    .list-group-item-action:hover,
    .list-group-item-action:focus,
    .dropdown-item:hover,
    .dropdown-item:focus,
    .dropdown-item.active,
    .dropdown-item:active,
    .nav-tabs .nav-link:hover,
    .nav-tabs .nav-link:focus,
    .nav-tabs .nav-link.active,
    .moremenu .nav-link:hover,
    .moremenu .nav-link:focus,
    .moremenu .nav-link.active,
    .courseindex-item:hover,
    .courseindex-item:focus-within,
    .courseindex-item.pageitem
) {
    background-color:var(--maos-surface-muted)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    h1,h2,h3,h4,h5,h6,
    legend,label,
    .form-label,
    .col-form-label,
    .card-title,
    .modal-title,
    .dropdown-header,
    .activityname,
    .sectionname,
    .courseindex-link,
    .text-dark,
    .text-body,
    .text-reset
) {
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .text-muted,
    .dimmed,
    .dimmed_text,
    .form-text,
    .form-description,
    .description,
    small
) {
    color:var(--maos-text-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page a:not(.btn):not(.badge):not(.dropdown-item) {
    color:var(--maos-primary-strong);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page a:not(.btn):not(.badge):not(.dropdown-item):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body #page a:not(.btn):not(.badge):not(.dropdown-item):focus-visible {
    color:var(--maos-accent);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.dropdown-item,.list-group-item-action,.courseindex-link) {
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(hr,.dropdown-divider,.border,.border-top,.border-bottom,.border-left,.border-right) {
    border-color:var(--maos-border)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]),
    select,
    textarea,
    .form-control,
    .custom-select,
    .form-select,
    .input-group-text,
    .search-input-wrapper > div,
    .editor_atto_content,
    .editor_atto_toolbar
) {
    background-color:var(--maos-surface-raised)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,textarea,.form-control)::placeholder {
    color:var(--maos-text-muted)!important;
    opacity:1;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,select,textarea,.form-control,.custom-select,.form-select):focus {
    border-color:var(--maos-accent)!important;
    box-shadow:var(--maos-focus-ring)!important;
    outline:0;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input[type="checkbox"],input[type="radio"]) {
    accent-color:var(--maos-accent);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body input:-webkit-autofill,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body input:-webkit-autofill:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body input:-webkit-autofill:focus {
    -webkit-text-fill-color:var(--maos-text)!important;
    -webkit-box-shadow:0 0 0 1000px var(--maos-surface-raised) inset!important;
    caret-color:var(--maos-text);
    border-color:var(--maos-border)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.btn-secondary,.btn-outline-secondary,.btn-light,.btn-outline-dark) {
    background-color:var(--maos-surface-raised)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.btn-secondary,.btn-outline-secondary,.btn-light,.btn-outline-dark):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.btn-secondary,.btn-outline-secondary,.btn-light,.btn-outline-dark):focus-visible {
    background-color:var(--maos-surface-muted)!important;
    border-color:var(--maos-accent)!important;
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.page-link,.nav-tabs .nav-link,.moremenu .nav-link,.secondary-navigation .nav-link) {
    background-color:transparent!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.page-item.active .page-link,.nav-tabs .nav-link.active,.moremenu .nav-link.active,.secondary-navigation .nav-link.active) {
    background-color:var(--maos-surface-muted)!important;
    border-color:var(--maos-accent)!important;
    color:var(--maos-heading)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(table,.table,.generaltable) {
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table,.generaltable) :is(th,td) {
    background-color:transparent!important;
    border-color:var(--maos-border)!important;
    color:inherit!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table,.generaltable) thead th {
    background-color:var(--maos-surface-muted)!important;
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table-striped,.generaltable) tbody tr:nth-of-type(odd) {
    background-color:rgba(255,255,255,.025)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table-hover,.generaltable) tbody tr:hover {
    background-color:var(--maos-surface-muted)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .alert-info {
    background-color:rgba(75,154,214,.16)!important;
    border-color:rgba(155,203,255,.48)!important;
    color:#dcecff!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .alert-success {
    background-color:rgba(56,151,101,.16)!important;
    border-color:rgba(99,214,157,.45)!important;
    color:#dcf9e9!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .alert-warning {
    background-color:rgba(176,115,0,.18)!important;
    border-color:rgba(255,210,122,.48)!important;
    color:#fff0c9!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .alert-danger {
    background-color:rgba(173,54,68,.18)!important;
    border-color:rgba(255,154,163,.48)!important;
    color:#ffe1e4!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(code,pre,.code) {
    background-color:#06101d!important;
    border-color:var(--maos-border)!important;
    color:#d9ecff!important;
}

/* Edma and Moodle login/account-recovery pages. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .pages-banner-area {
    background:var(--maos-gradient)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .pages-banner-area :is(h1,h2,h3,p,a,.breadcrumb-item,.breadcrumb-item::before) {
    color:#fff!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(.login-area,.login-wrapper,#page-content,#region-main,.region-main) {
    background:var(--maos-bg)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container {
    background:var(--maos-surface)!important;
    border:1px solid var(--maos-border)!important;
    border-radius:1rem!important;
    box-shadow:var(--maos-shadow-raised)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container :is(h1,h2,h3,h4,p,label,.login-heading,.login-instructions) {
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container a:not(.btn) {
    color:var(--maos-primary-strong)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container a:not(.btn):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container a:not(.btn):focus-visible {
    color:var(--maos-accent)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container :is(.login-divider,.login-identityproviders,.login-instructions,.login-form-forgotpassword) {
    border-color:var(--maos-border)!important;
    color:var(--maos-text-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container .btn-primary {
    background:var(--maos-gradient-primary)!important;
    border-color:transparent!important;
    color:#fff!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container .btn-primary:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login .login-container .btn-primary:focus-visible {
    filter:brightness(1.08);
    color:#fff!important;
}

.maos-login-appearance {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    margin:0 0 1.15rem;
    padding:.7rem;
    border:1px solid var(--maos-border,#dfe8f0);
    border-radius:.8rem;
    background:var(--maos-surface-muted,#f4f8fc);
    color:var(--maos-text,#071f49);
}
.maos-login-appearance .maos-profile-appearance-label {
    flex:0 0 auto;
    margin:0;
    font-size:.86rem;
}
.maos-login-appearance .maos-profile-appearance-options {
    flex:1 1 auto;
    max-width:19rem;
}

/* Native Moodle administration pages receive colour treatment only; navigation structure is untouched. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .adminsettings .form-item,
    .settingsform .form-item,
    .form-setting,
    .form-defaultinfo,
    .form-description,
    .path-admin .generalbox
) {
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

@media (max-width:767.98px) {
    html[data-maos-core-appearance="1"] body.path-login .login-wrapper {
        padding-top:2rem!important;
        padding-bottom:2rem!important;
    }
    html[data-maos-core-appearance="1"] body.path-login .login-container {
        padding:1.25rem!important;
        border-radius:.85rem!important;
    }
    .maos-login-appearance {
        align-items:stretch;
        flex-direction:column;
        gap:.55rem;
    }
    .maos-login-appearance .maos-profile-appearance-options {
        width:100%;
        max-width:none;
    }
}

/* MAOS v0.9.18 dark-mode compatibility corrections.
   These rules repair high-specificity Edma/Moodle surfaces observed during
   runtime validation. They remain presentation-only and do not alter native
   Moodle navigation or manager business logic. */
html[data-maos-theme="dark"] {
    --maos-on-gradient:#ffffff;
    --maos-on-accent:#061b49;
}

/* Gradient surfaces must retain white foreground text in Dark mode. */
html[data-maos-theme="dark"] :is(
    .local-mosaicplatform-page-header,
    .local-mosaicplatform-command-bar,
    .local-mosaicexperience-dashboard-hero,
    .local-mosaicexperience-dashboard-welcome,
    .local-mosaicexperience-dashboard-command,
    .local-mosaicexperience-dashboard-appfooter,
    .local-mosaicexperience-program-hero,
    .local-mosaicexperience-live-hero
) {
    --maos-primary-contrast:var(--maos-on-gradient);
    color:var(--maos-on-gradient)!important;
}
html[data-maos-theme="dark"] :is(
    .local-mosaicexperience-dashboard-hero,
    .local-mosaicexperience-dashboard-welcome,
    .local-mosaicexperience-dashboard-command,
    .local-mosaicexperience-dashboard-appfooter,
    .local-mosaicexperience-program-hero,
    .local-mosaicexperience-live-hero
) :is(h1,h2,h3,h4,p,span,strong,small,a:not(.btn)) {
    color:inherit!important;
}

/* Native Moodle/Edma administration canvas. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #wrapper,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #page-wrapper,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #page,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #page.drawers,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #topofscroll,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .main-inner,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #page-content,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #region-main-box {
    background:var(--maos-bg)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    #region-main,
    .region-main,
    [role="main"],
    #adminsettings,
    .adminsettings,
    .settingsform,
    .admin-search-results,
    .adminsearchform,
    .adminpage,
    .admin-category,
    .category-listing,
    .tab-content,
    .tab-pane,
    .card,
    .card-body,
    .generalbox,
    .box
) {
    background:var(--maos-surface)!important;
    background-image:none!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    #page-header,
    .header-maxwidth,
    .page-context-header,
    .page-header-headings,
    .breadcrumb,
    .breadcrumb-container,
    .secondary-navigation,
    .tertiary-navigation,
    .moremenu,
    .nav-tabs,
    .nav-tabs .nav-item,
    .search-input-wrapper,
    .simplesearchform
) {
    background:var(--maos-surface)!important;
    background-image:none!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .breadcrumb-item,
    .breadcrumb-item.active,
    .breadcrumb-item::before,
    .page-context-header,
    .page-header-headings,
    .secondary-navigation .nav-link,
    .moremenu .nav-link,
    .nav-tabs .nav-link
) {
    color:var(--maos-text-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .secondary-navigation .nav-link:hover,
    .secondary-navigation .nav-link:focus,
    .secondary-navigation .nav-link.active,
    .moremenu .nav-link:hover,
    .moremenu .nav-link:focus,
    .moremenu .nav-link.active,
    .nav-tabs .nav-link:hover,
    .nav-tabs .nav-link:focus,
    .nav-tabs .nav-link.active
) {
    background:var(--maos-surface-muted)!important;
    border-color:var(--maos-accent)!important;
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .breadcrumb-item a {
    color:var(--maos-primary-strong)!important;
}

/* Administration search/settings content and separators. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results .row,
    .admin-search-results > div,
    .adminsettings .form-item,
    .settingsform .form-item,
    .form-setting,
    .form-defaultinfo,
    .form-description,
    .admin-category,
    .category-listing > div
) {
    background:transparent!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results,
    .adminsettings,
    .settingsform,
    .admin-category,
    .category-listing,
    [role="main"]
) :is(h1,h2,h3,h4,h5,h6,legend,label,.form-label,.col-form-label,.settingname,.admin-search-result-title) {
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results,
    .adminsettings,
    .settingsform,
    .admin-category,
    .category-listing,
    [role="main"]
) :is(p,li,dd,dt,.form-text,.form-description,.description,.admin-search-result-description) {
    color:var(--maos-text-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results,
    .adminsettings,
    .settingsform,
    .admin-category,
    .category-listing,
    [role="main"]
) a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item) {
    color:var(--maos-primary-strong)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results,
    .adminsettings,
    .settingsform,
    .admin-category,
    .category-listing,
    [role="main"]
) a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .admin-search-results,
    .adminsettings,
    .settingsform,
    .admin-category,
    .category-listing,
    [role="main"]
) a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item):focus-visible {
    color:var(--maos-accent)!important;
}

/* Theme utility classes and high-specificity white wrappers. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .bg-white,
    .bg-light,
    .bg-gray,
    .bg-grey,
    .white-bg,
    .content-wrapper,
    .content-area,
    .page-content-wrapper
) {
    background:var(--maos-surface)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.card-body,.card-header,.card-footer) {
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}

/* Moodle drawers and the Edma user-side navigation. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .drawer,
    .drawer-left,
    .drawer-right,
    .drawercontent,
    .drawerheader,
    [data-region="drawer"],
    [data-region="drawer-content"],
    .list-group
) {
    background:var(--maos-surface)!important;
    background-image:none!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .drawer,
    .drawercontent,
    [data-region="drawer"]
) :is(.list-group-item,.list-group-item-action,a:not(.btn)) {
    background:transparent!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .drawer,
    .drawercontent,
    [data-region="drawer"]
) :is(.list-group-item:hover,.list-group-item:focus,.list-group-item.active,.list-group-item-action:hover,.list-group-item-action:focus) {
    background:var(--maos-surface-muted)!important;
    color:var(--maos-heading)!important;
}

/* Search controls and compact icon buttons on core pages. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .simplesearchform input,
    .adminsearchform input,
    .search-input-wrapper input,
    input[type="search"]
) {
    background:var(--maos-surface-raised)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .simplesearchform .btn,
    .adminsearchform .btn,
    .search-input-wrapper .btn
) {
    background:var(--maos-surface-muted)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .simplesearchform .btn:hover,
    .simplesearchform .btn:focus-visible,
    .adminsearchform .btn:hover,
    .adminsearchform .btn:focus-visible,
    .search-input-wrapper .btn:hover,
    .search-input-wrapper .btn:focus-visible
) {
    border-color:var(--maos-accent)!important;
    color:var(--maos-accent)!important;
}

/* Authentication screens: cover theme-specific wrappers and mobile autofill. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(
    #page,
    #page-wrapper,
    #topofscroll,
    .main-inner,
    #region-main-box,
    #region-main,
    [role="main"],
    .login-area,
    .login-wrapper,
    .loginform,
    .login-container,
    .login-card
) {
    background:var(--maos-bg)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(
    .loginform,
    .login-container,
    .login-card
) {
    background:var(--maos-surface)!important;
    border-color:var(--maos-border)!important;
    box-shadow:var(--maos-shadow-raised)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(
    .loginform,
    .login-container,
    .login-card
) :is(h1,h2,h3,h4,p,label,legend,.login-heading,.login-instructions) {
    color:var(--maos-text)!important;
}

@media (max-width:767.98px) {
    html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(
        .login-area,
        .login-wrapper,
        #page-content,
        #region-main,
        [role="main"]
    ) {
        min-height:100dvh;
        background:var(--maos-bg)!important;
    }
    html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-login :is(
        .login-container,
        .loginform,
        .login-card
    ) {
        width:min(100%,34rem)!important;
        margin-inline:auto!important;
    }
}

/* MAOS v0.9.19 shell completion candidate. */
.maos-profile-appearance,
.maos-login-appearance,
.maos-appearance-control-wrap {
    display:none!important;
}
.maos-header-appearance-item {
    display:flex;
    align-items:center;
    margin:0 .35rem;
    padding:0;
    list-style:none;
}
.maos-header-appearance {
    display:inline-flex;
    align-items:center;
    gap:.16rem;
    padding:.2rem;
    border:1px solid rgba(255,255,255,.30);
    border-radius:.72rem;
    background:rgba(4,30,70,.32);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.maos-header-appearance-option {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.3rem;
    min-width:2.35rem;
    min-height:2.2rem;
    padding:.35rem .55rem;
    border:0;
    border-radius:.52rem;
    background:transparent;
    color:rgba(255,255,255,.82);
    font:inherit;
    font-size:.78rem;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    transition:background-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.maos-header-appearance-option:hover,
.maos-header-appearance-option:focus-visible {
    color:#fff;
    background:rgba(255,255,255,.15);
}
.maos-header-appearance-option:focus-visible {
    outline:2px solid #8fe5ef;
    outline-offset:2px;
}
.maos-header-appearance-option.is-selected,
.maos-header-appearance-option[aria-checked="true"] {
    color:#071f49;
    background:#fff;
    box-shadow:0 2px 8px rgba(2,13,37,.24);
}
.maos-header-appearance-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1rem;
    line-height:1;
}
.maos-header-appearance-text {line-height:1;}

/* Admin headers can be light in Edma; keep the control readable there. */
body.path-admin .maos-header-appearance {
    border-color:rgba(7,31,73,.18);
    background:rgba(7,31,73,.07);
}
body.path-admin .maos-header-appearance-option {color:#294663;}
body.path-admin .maos-header-appearance-option:hover,
body.path-admin .maos-header-appearance-option:focus-visible {color:#071f49;background:rgba(13,59,102,.10);}
body.path-admin .maos-header-appearance-option.is-selected,
body.path-admin .maos-header-appearance-option[aria-checked="true"] {color:#fff;background:#0d3b66;}
html[data-maos-theme="dark"] body.path-admin .maos-header-appearance {
    border-color:rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);
}
html[data-maos-theme="dark"] body.path-admin .maos-header-appearance-option {color:#dcecff;}
html[data-maos-theme="dark"] body.path-admin .maos-header-appearance-option.is-selected,
html[data-maos-theme="dark"] body.path-admin .maos-header-appearance-option[aria-checked="true"] {color:#071f49;background:#fff;}

/* MAOS fallback owns mobile menu visibility when Edma's handler is absent or fails. */
@media (max-width:991.98px) {
    .local-mosaicplatform-mobile-shell-active .mean-container .mean-nav {
        display:none!important;
        visibility:hidden;
        opacity:0;
        pointer-events:none;
    }
    .local-mosaicplatform-mobile-shell-active .mean-container .mean-nav.maos-mobile-menu-open {
        display:block!important;
        visibility:visible;
        opacity:1;
        pointer-events:auto;
    }
    .local-mosaicplatform-mobile-shell-active .meanmenu-reveal[aria-expanded="true"] {
        background:rgba(47,148,164,.48)!important;
    }
    .maos-header-appearance-item {margin:0 .2rem;}
    .maos-header-appearance {gap:.08rem;padding:.16rem;}
    .maos-header-appearance-option {min-width:2.05rem;min-height:2.05rem;padding:.3rem;}
    .maos-header-appearance-text {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
}
@media (max-width:575.98px) {
    .maos-header-appearance-option {min-width:1.92rem;min-height:1.92rem;}
    .maos-header-appearance-icon {font-size:.92rem;}
}

/* Authentication pages: one responsive Edma header only; no appearance control in the card. */
body.pagelayout-login .maos-header-appearance,
body.path-login .maos-header-appearance,
body.path-auth .maos-header-appearance {display:none!important;}
@media (min-width:992px) {
    body.pagelayout-login .mobile-responsive-nav,
    body.path-login .mobile-responsive-nav,
    body.path-auth .mobile-responsive-nav {display:none!important;}
}
@media (max-width:991.98px) {
    body.pagelayout-login .desktop-nav,
    body.path-login .desktop-nav,
    body.path-auth .desktop-nav {display:none!important;}
}

/* Mobile public hero protection: keep copy readable over responsive background media. */
@media (max-width:767.98px) {
    body:not(.path-admin) :is(.hero-content,.banner-content,.main-banner-content,.home-banner-content) {
        position:relative;
        z-index:2;
        padding:.9rem;
        border-radius:.8rem;
        background:linear-gradient(90deg,rgba(4,21,52,.84),rgba(4,21,52,.54));
        color:#fff!important;
        text-shadow:0 1px 2px rgba(0,0,0,.35);
    }
    body:not(.path-admin) :is(.hero-content,.banner-content,.main-banner-content,.home-banner-content) :is(h1,h2,h3,p,span) {color:inherit!important;}
}

/* MAOS v0.9.20 accessibility and visual hierarchy pass. */
/* Header navigation and global controls must remain readable over the MAOS gradient. */
body .navbar-area.local-mosaicplatform-nav-active :is(
    #menu-primary-menu > li > a,
    .local-mosaicplatform-primary-link,
    .primary-navigation .nav-link,
    .edma-header-user-sec .editmode-switch-form,
    .edma-header-user-sec .editmode-switch-form label,
    .edma-header-user-sec .editmode-switch-form span
) {
    color:#f7fbff!important;
    font-weight:700!important;
    text-shadow:0 1px 2px rgba(0,0,0,.28);
}
body .navbar-area.local-mosaicplatform-nav-active :is(
    #menu-primary-menu > li > a:hover,
    #menu-primary-menu > li > a:focus-visible,
    .local-mosaicplatform-primary-link:hover,
    .local-mosaicplatform-primary-link:focus-visible,
    .primary-navigation .nav-link:hover,
    .primary-navigation .nav-link:focus-visible
) {
    color:#ffffff!important;
    background:rgba(255,255,255,.14)!important;
    text-decoration:none!important;
}
body .navbar-area.local-mosaicplatform-nav-active :is(a,button,input,[role="button"]):focus-visible {
    outline:3px solid #9feaf0!important;
    outline-offset:3px!important;
    box-shadow:none!important;
}

/* One coherent segmented appearance control. */
.maos-header-appearance {
    gap:0;
    padding:.18rem;
    overflow:hidden;
    border-radius:999px;
    background:rgba(3,20,52,.38);
}
.maos-header-appearance-option {
    min-height:2.12rem;
    padding:.38rem .62rem;
    border-radius:999px;
    color:#eef8ff;
}
.maos-header-appearance-option + .maos-header-appearance-option {
    margin-left:.06rem;
}
.maos-header-appearance-option.is-selected,
.maos-header-appearance-option[aria-checked="true"] {
    color:#061b49!important;
    background:#ffffff!important;
    box-shadow:0 2px 9px rgba(0,0,0,.28)!important;
}

/* Dark application canvas and elevation hierarchy. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body {
    background:var(--maos-surface-1)!important;
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #page,
    #page-wrapper,
    #topofscroll,
    #page-content,
    .main-inner,
    #region-main-box
) {
    background:var(--maos-surface-1)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #region-main,
    .card,
    .block,
    .course-content,
    .generalbox,
    .box,
    .adminsettings,
    .settingsform
) {
    background:var(--maos-surface-2)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .alert,
    .notification,
    .adminwarning,
    .well,
    .info,
    .block .card-body,
    .secondary-navigation,
    .tertiary-navigation
) {
    background:var(--maos-surface-3)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-text-primary)!important;
}

/* Native Moodle/Edma left drawer and navigation. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #nav-drawer,
    .drawer,
    .drawer-left,
    .drawercontent,
    .list-group,
    .list-group-item,
    .edma-left-sidebar,
    .side-menu,
    .sidebar
) {
    background:var(--maos-surface-2)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #nav-drawer,
    .drawer,
    .edma-left-sidebar,
    .side-menu,
    .sidebar
) :is(a,.nav-link,.list-group-item) {
    color:var(--maos-text-primary)!important;
    border-color:var(--maos-divider)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #nav-drawer,
    .drawer,
    .edma-left-sidebar,
    .side-menu,
    .sidebar
) :is(a,.nav-link,.list-group-item):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #nav-drawer,
    .drawer,
    .edma-left-sidebar,
    .side-menu,
    .sidebar
) :is(a,.nav-link,.list-group-item):focus-visible,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #nav-drawer,
    .drawer,
    .edma-left-sidebar,
    .side-menu,
    .sidebar
) :is(.active,[aria-current="page"]) {
    background:var(--maos-surface-4)!important;
    color:#ffffff!important;
}

/* Titles, breadcrumbs, links, secondary and disabled content. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(h1,h2,h3,h4,h5,h6,.page-title,.card-title,.block-title) {
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .breadcrumb,
    .breadcrumb-item,
    .breadcrumb-item a,
    .page-context-header,
    .text-muted,
    .dimmed,
    .dimmed_text,
    .description,
    .small,
    small
) {
    color:var(--maos-text-secondary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body a:not(.btn):not(.nav-link):not(.dropdown-item) {
    color:#8fd6ff!important;
    text-decoration-color:rgba(143,214,255,.55);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body a:not(.btn):not(.nav-link):not(.dropdown-item):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body a:not(.btn):not(.nav-link):not(.dropdown-item):focus-visible {
    color:#c6ebff!important;
    text-decoration-thickness:2px;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is([disabled],.disabled,[aria-disabled="true"]) {
    opacity:1!important;
    color:#9eb0c5!important;
}

/* Tabs and administration navigation hierarchy. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .nav-tabs,
    .nav-tabs .nav-link,
    .secondary-navigation .nav-link,
    .tertiary-navigation .nav-link
) {
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .nav-tabs .nav-link,
    .secondary-navigation .nav-link,
    .tertiary-navigation .nav-link
) {
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .nav-tabs .nav-link.active,
    .nav-tabs .nav-link[aria-current="page"],
    .secondary-navigation .nav-link.active,
    .tertiary-navigation .nav-link.active
) {
    color:#ffffff!important;
    background:var(--maos-surface-4)!important;
    border-bottom-color:var(--maos-accent)!important;
}

/* Forms and search controls. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,select,textarea,.form-control,.custom-select) {
    background:var(--maos-surface-3)!important;
    color:var(--maos-text-primary)!important;
    border-color:#55708d!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,textarea,.form-control)::placeholder {
    color:#b6c5d7!important;
    opacity:1!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,select,textarea,.form-control,.btn,a,[role="button"]):focus-visible {
    outline:3px solid var(--maos-accent)!important;
    outline-offset:2px!important;
    box-shadow:none!important;
}

/* Normalize native Moodle actions without erasing semantic button variants. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .btn:not(.btn-link) {
    border-color:#55708d!important;
    font-weight:700;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .btn-secondary {
    background:var(--maos-surface-4)!important;
    color:#ffffff!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .btn-secondary:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .btn-secondary:focus-visible {
    background:#244564!important;
    border-color:var(--maos-accent)!important;
}

/* Tables and dropdowns. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(table,.table,thead,tbody,tr,th,td) {
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(thead th,.table thead th) {
    background:var(--maos-surface-4)!important;
    color:#ffffff!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .dropdown-menu,
    .popover,
    .popover-region-container,
    .modal-content
) {
    background:var(--maos-surface-3)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .dropdown-item {
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .dropdown-item:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .dropdown-item:focus-visible {
    color:#ffffff!important;
    background:var(--maos-surface-4)!important;
}

/* Preserve structure on narrow screens. */
@media (max-width:991.98px) {
    .maos-header-appearance {max-width:7.2rem;}
    .maos-header-appearance-option {padding:.34rem .46rem;}
}
@media (prefers-reduced-motion:reduce) {
    .maos-header-appearance-option {transition:none!important;}
}

/* MAOS v0.9.22 canonical application shell and accessible typography contract.
   This is the only application-mode wrapper normalization source. It is
   intentionally excluded from core Moodle Site Administration pages. */
body.local-mosaicplatform-application-mode:not(.path-admin) {
    background:var(--maos-surface-canvas)!important;
    color:var(--maos-text-primary);
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    #page-wrapper,
    #page,
    .our-dashbord,
    .dashboard_main_content,
    .bottom-region-main-box,
    #page-content,
    .main-inner,
    #region-main-box
) {
    margin-top:0!important;
    padding-top:0!important;
    border-top:0!important;
    background:var(--maos-surface-canvas)!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    #page-header,
    .page-context-header,
    .page-title-area,
    .pages-banner-area
) {
    display:none!important;
    margin:0!important;
    padding:0!important;
    min-height:0!important;
    border:0!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    #region-main,
    .region-main,
    .main_content_container
) {
    margin-top:0!important;
    border-top:0!important;
    background:transparent!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) .local-mosaicplatform-application-shell {
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    font-family:var(--maos-font-body);
    font-size:var(--maos-font-size-body);
    line-height:var(--maos-line-height-body);
    color:var(--maos-text-primary);
}

/* Display typography is reserved for short identity-bearing headings. */
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    .local-mosaicplatform-page-title,
    .local-mosaicplatform-application-shell h1,
    .local-mosaicplatform-application-shell h2,
    .local-mosaicplatform-application-shell h3,
    .local-mosaicplatform-action-title,
    .local-mosaicplatform-course-title,
    .local-mosaicplatform-card > h3,
    .local-mosaicplatform-widget-header h3
) {
    font-family:var(--maos-font-display);
    line-height:1.18;
    letter-spacing:-.012em;
}
.local-mosaicplatform-page-title {
    margin:0 0 .35rem;
    font-size:clamp(1.6rem,2.3vw,2.25rem);
    color:inherit;
}
.local-mosaicplatform-page-description {
    margin:.1rem 0 .8rem;
    max-width:76ch;
    font-family:var(--maos-font-interface);
    font-size:var(--maos-font-size-body);
    line-height:var(--maos-line-height-body);
}

/* Operational copy and controls use the readable interface stack. */
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    p,
    li,
    label,
    input,
    select,
    textarea,
    button,
    .btn,
    .form-control,
    .dropdown-menu,
    .dropdown-item,
    .nav-link,
    .local-mosaicplatform-component-tab,
    .local-mosaicplatform-commandbar,
    .local-mosaicplatform-component-filterbar,
    .local-mosaicplatform-action-caption,
    .local-mosaicplatform-stat-label,
    .local-mosaicplatform-stat-caption,
    .local-mosaicplatform-list-meta,
    .local-mosaicplatform-course-meta,
    .local-mosaicplatform-course-progress-label,
    table,
    th,
    td
) {
    font-family:var(--maos-font-interface);
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    small,
    .small,
    .badge,
    .local-mosaicplatform-badge,
    .local-mosaicplatform-list-meta,
    .local-mosaicplatform-stat-label,
    .local-mosaicplatform-stat-caption,
    .local-mosaicplatform-course-progress-label,
    .local-mosaicplatform-table-note,
    .local-mosaicplatform-manager-release
) {
    font-size:var(--maos-font-size-small)!important;
    line-height:var(--maos-line-height-compact)!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    input,
    select,
    textarea,
    button,
    .btn,
    .form-control,
    .dropdown-item,
    .nav-link,
    .local-mosaicplatform-component-tab
) {
    line-height:var(--maos-line-height-compact);
}

/* Shared application surfaces consume semantic design-system aliases. */
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    .local-mosaicplatform-card,
    .local-mosaicplatform-dashboard-section,
    .local-mosaicplatform-stat-tile,
    .local-mosaicplatform-course-card,
    .local-mosaicplatform-widget,
    .local-mosaicplatform-info-panel,
    .local-mosaicplatform-empty-state,
    .local-mosaicplatform-component-filterbar,
    .local-mosaicplatform-commandbar
) {
    background:var(--maos-surface-panel)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-text-primary)!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(
    .local-mosaicplatform-widget-header,
    .local-mosaicplatform-dashboard-section-header,
    .local-mosaicplatform-component-tabs,
    .local-mosaicplatform-course-progress
) {
    border-color:var(--maos-divider)!important;
}

@media (max-width:767.98px) {
    body.local-mosaicplatform-application-mode:not(.path-admin) :is(
        #page-wrapper,
        #page,
        .dashboard_main_content,
        #page-content,
        .main-inner,
        #region-main-box
    ) {
        margin-top:0!important;
        padding-top:0!important;
    }
    body.local-mosaicplatform-application-mode:not(.path-admin) .local-mosaicplatform-page-title {
        font-size:clamp(1.45rem,7vw,1.9rem);
    }
}
@media (forced-colors:active) {
    body.local-mosaicplatform-application-mode:not(.path-admin) :is(a,button,input,select,textarea,[tabindex]):focus-visible {
        outline:2px solid CanvasText!important;
        outline-offset:3px!important;
    }
}

/* MAOS v0.9.23 corrective shell release.
   Runtime findings: application seam, authenticated core links, Edma mobile
   control collision, public footer ownership, and native admin dark sidebar. */

/* The Edma navbar wrapper owns 10px of white padding outside the painted
   desktop navigation. Application routes paint the entire wrapper and remove
   that padding so the header meets the application canvas without a seam. */
body.local-mosaicplatform-application-mode:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active,
html.maos-application-route body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active {
    margin:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    border:0!important;
    background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%))!important;
    box-shadow:0 8px 24px rgba(6,27,73,.13)!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav,
html.maos-application-route body:not(.path-admin) .navbar-area.local-mosaicplatform-nav-active .desktop-nav {
    background:transparent!important;
    box-shadow:none!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) :is(#wrapper,.our-dashbord,.dashboard_main_content),
html.maos-application-route body:not(.path-admin) :is(#wrapper,.our-dashbord,.dashboard_main_content) {
    margin-top:0!important;
    border-top:0!important;
}
body.local-mosaicplatform-application-mode:not(.path-admin) .dashboard_main_content,
html.maos-application-route body:not(.path-admin) .dashboard_main_content {
    padding-top:0!important;
}

/* Edma's administration rail uses dashboard-specific wrappers and a white
   pseudo-element rather than the generic Moodle drawer selectors. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    .dashboard_sidebar,
    .dashboard_sidebars,
    .user_board,
    .dashbord_nav_list
) {
    background:var(--maos-surface-2)!important;
    color:var(--maos-text-primary)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashboard_sidebar::before {
    background:var(--maos-surface-2)!important;
    box-shadow:1px 0 0 var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li {
    background:transparent!important;
    border-bottom-color:var(--maos-divider)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li :is(a,.no-action) {
    color:var(--maos-text-primary)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li.active {
    background:var(--maos-surface-4)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li:hover :is(a,.no-action),
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin .dashbord_nav_list li.active :is(a,.no-action) {
    color:#fff!important;
}

/* The public landing page consumes the same canonical MAOS footer. Edma's
   parallel footer is suppressed only on the site front page. */
#page-site-index .footer-area {display:none!important;}
.local-mosaicplatform-public-footer {
    width:100%;
    margin:0!important;
    background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%))!important;
    color:#f7fbff!important;
}
.local-mosaicplatform-public-footer .local-mosaicplatform-footer-grid {
    max-width:1200px;
    padding:2rem 1.5rem;
}
.local-mosaicplatform-public-footer :is(h2,h3,p,a) {color:#f7fbff!important;}
.local-mosaicplatform-public-footer a {text-decoration:none;}
.local-mosaicplatform-public-footer a:hover,
.local-mosaicplatform-public-footer a:focus-visible {color:#b9f3f4!important;text-decoration:underline;}
.local-mosaicplatform-public-footer .local-mosaicplatform-footer-strip {border-top-color:rgba(255,255,255,.18);}

/* MAOS owns the visible MeanMenu state so the mobile navigation no longer
   depends on Edma's Bootstrap/jQuery handler completing successfully. */
@media (max-width:991.98px) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active {
        padding-top:0!important;
        padding-bottom:0!important;
        border-bottom:0!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal {
        top:10px!important;
        right:12px!important;
        z-index:6!important;
        transform:none!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive {
        top:10px!important;
        right:72px!important;
        width:44px!important;
        height:44px!important;
        margin:0!important;
        transform:none!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive > .container {
        width:44px!important;
        height:44px!important;
        padding:0!important;
        margin:0!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive .dot-menu {
        position:static!important;
        inset:auto!important;
        margin:0!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-nav.maos-mobile-menu-open {
        display:block!important;
        visibility:visible!important;
        opacity:1!important;
        pointer-events:auto!important;
        position:absolute!important;
        left:0!important;
        right:0!important;
        top:0!important;
        width:100%!important;
        z-index:5!important;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal.maos-open span:nth-child(1) {
        transform:translateY(6px) rotate(45deg);
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal.maos-open span:nth-child(2) {
        opacity:0;
    }
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal.maos-open span:nth-child(3) {
        transform:translateY(-6px) rotate(-45deg);
    }
}
@media (max-width:420px) {
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive {right:68px!important;}
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo {max-width:132px!important;}
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo img {max-width:126px!important;}
}


/* MAOS v0.9.24 permanent authenticated navigation shell. */
:root {
    --maos-auth-nav-width:264px;
    --maos-auth-nav-collapsed-width:76px;
    --maos-auth-header-offset:0px;
}
.maos-auth-navigation-host {font-family:var(--maos-font-interface,Arial,sans-serif);}
.maos-auth-navigation {
    position:fixed;
    z-index:1032;
    left:0;
    top:var(--maos-auth-header-offset);
    bottom:0;
    width:var(--maos-auth-nav-width);
    display:flex;
    flex-direction:column;
    background:var(--maos-surface-panel,#fff);
    color:var(--maos-text-primary,#10213a);
    border-right:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));
    box-shadow:10px 0 30px rgba(6,27,73,.08);
    transition:width .2s ease,transform .25s ease;
    overflow:hidden;
}
.maos-auth-nav-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:64px;
    gap:.75rem;
    padding:.9rem 1rem;
    border-bottom:1px solid var(--maos-divider,rgba(13,59,102,.12));
}
.maos-auth-nav-title {
    margin:0;
    font-family:var(--maos-font-display,inherit);
    font-size:1.05rem;
    line-height:1.2;
    color:var(--maos-text-primary,#10213a);
}
.maos-auth-nav-close {display:none;}
.maos-auth-nav-landmark {flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:.65rem .55rem;}
.maos-auth-nav-list,.maos-auth-nav-sublist {list-style:none;margin:0;padding:0;}
.maos-auth-nav-item {margin:.15rem 0;}
.maos-auth-nav-link,.maos-auth-nav-group-toggle {
    width:100%;
    min-height:44px;
    display:flex;
    align-items:center;
    gap:.72rem;
    padding:.58rem .72rem;
    border:0;
    border-radius:10px;
    background:transparent;
    color:var(--maos-text-primary,#10213a)!important;
    font:inherit;
    font-size:.95rem;
    font-weight:650;
    line-height:1.3;
    text-align:left;
    text-decoration:none!important;
    cursor:pointer;
}
.maos-auth-nav-link:hover,.maos-auth-nav-link:focus-visible,
.maos-auth-nav-group-toggle:hover,.maos-auth-nav-group-toggle:focus-visible {
    background:var(--maos-surface-hover,rgba(48,158,169,.10));
    color:var(--maos-heading,#061b49)!important;
}
.maos-auth-nav-link:focus-visible,.maos-auth-nav-group-toggle:focus-visible,
.maos-auth-nav-collapse:focus-visible,.maos-auth-nav-close:focus-visible,.maos-auth-nav-mobile-toggle:focus-visible {
    outline:3px solid var(--maos-accent,#309ea9)!important;
    outline-offset:2px!important;
}
.maos-auth-nav-link.is-active,.maos-auth-nav-item.is-active > .maos-auth-nav-link,
.maos-auth-nav-item.is-active > .maos-auth-nav-group-toggle {
    background:linear-gradient(105deg,rgba(6,27,73,.98),rgba(13,59,102,.94),rgba(48,158,169,.88));
    color:#fff!important;
    box-shadow:0 5px 14px rgba(6,27,73,.17);
}
.maos-auth-nav-icon {
    width:28px;
    min-width:28px;
    height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    background:var(--maos-surface-raised,rgba(13,59,102,.08));
    color:var(--maos-accent-strong,#0d3b66);
    font-size:.9rem;
    font-weight:800;
}
.maos-auth-nav-link.is-active .maos-auth-nav-icon,
.maos-auth-nav-item.is-active > .maos-auth-nav-group-toggle .maos-auth-nav-icon {background:rgba(255,255,255,.16);color:#fff;}
.maos-auth-nav-label {min-width:0;overflow-wrap:anywhere;}
.maos-auth-nav-chevron {margin-left:auto;transition:transform .2s ease;}
.maos-auth-nav-group-toggle[aria-expanded="true"] .maos-auth-nav-chevron {transform:rotate(180deg);}
.maos-auth-nav-sublist {padding:.2rem 0 .25rem 1rem;}
.maos-auth-nav-sublink {min-height:40px;font-size:.9rem;font-weight:600;padding:.48rem .62rem;}
.maos-auth-nav-sublink .maos-auth-nav-icon {width:24px;min-width:24px;height:24px;font-size:.75rem;}
.maos-auth-nav-collapse {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.55rem;
    min-height:48px;
    margin:.5rem;
    border:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));
    border-radius:10px;
    background:var(--maos-surface-raised,#f3f7fb);
    color:var(--maos-text-primary,#10213a);
    font:inherit;
    font-size:.88rem;
    font-weight:700;
}
.maos-auth-nav-collapse:hover {background:var(--maos-surface-hover,rgba(48,158,169,.10));}
.maos-auth-nav-mobile-toggle,.maos-auth-nav-backdrop {display:none;}
body.maos-auth-navigation-enabled .maos-auth-nav-content-host {
    margin-left:var(--maos-auth-nav-width)!important;
    width:calc(100% - var(--maos-auth-nav-width))!important;
    max-width:none!important;
    transition:margin-left .2s ease,width .2s ease;
}
body.maos-auth-navigation-collapsed .maos-auth-navigation {width:var(--maos-auth-nav-collapsed-width);}
body.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
    margin-left:var(--maos-auth-nav-collapsed-width)!important;
    width:calc(100% - var(--maos-auth-nav-collapsed-width))!important;
}
body.maos-auth-navigation-collapsed .maos-auth-nav-title,
body.maos-auth-navigation-collapsed .maos-auth-nav-label,
body.maos-auth-navigation-collapsed .maos-auth-nav-chevron,
body.maos-auth-navigation-collapsed .maos-auth-nav-collapse-label {display:none!important;}
body.maos-auth-navigation-collapsed .maos-auth-nav-header {justify-content:center;padding:.9rem .4rem;}
body.maos-auth-navigation-collapsed .maos-auth-nav-link,
body.maos-auth-navigation-collapsed .maos-auth-nav-group-toggle {justify-content:center;padding:.58rem .35rem;}
body.maos-auth-navigation-collapsed .maos-auth-nav-sublist {padding:.2rem 0;}
body.maos-auth-navigation-collapsed .maos-auth-nav-collapse-icon {transform:rotate(180deg);}

/* Replace Edma's application drawer only inside the authenticated MAOS shell. */
body.maos-auth-navigation-enabled:not(.path-admin) :is(
    .dashboard_sidebar,
    .dashboard_sidebars,
    .edma-left-sidebar,
    .user_board,
    [data-region="drawer"].drawer-left
) {display:none!important;}
body.maos-auth-navigation-enabled:not(.path-admin) .dashboard_sidebar::before {display:none!important;content:none!important;}

html[data-maos-theme="dark"] .maos-auth-navigation {
    background:var(--maos-surface-2,#0b1d31);
    color:var(--maos-text-primary,#eef6ff);
    border-right-color:var(--maos-border-subtle,rgba(207,229,247,.2));
    box-shadow:12px 0 34px rgba(0,0,0,.28);
}
html[data-maos-theme="dark"] .maos-auth-nav-title,
html[data-maos-theme="dark"] .maos-auth-nav-link,
html[data-maos-theme="dark"] .maos-auth-nav-group-toggle,
html[data-maos-theme="dark"] .maos-auth-nav-collapse {color:var(--maos-text-primary,#eef6ff)!important;}
html[data-maos-theme="dark"] .maos-auth-nav-icon,
html[data-maos-theme="dark"] .maos-auth-nav-collapse {background:var(--maos-surface-3,#10273f);}
html[data-maos-theme="dark"] .maos-auth-nav-icon {color:var(--maos-accent-soft,#8ee8f0);}
html[data-maos-theme="dark"] .maos-auth-nav-link.is-active .maos-auth-nav-icon,
html[data-maos-theme="dark"] .maos-auth-nav-item.is-active > .maos-auth-nav-group-toggle .maos-auth-nav-icon {color:#fff;}
html[data-maos-theme="dark"] .maos-auth-nav-link:hover,
html[data-maos-theme="dark"] .maos-auth-nav-group-toggle:hover {background:var(--maos-surface-4,#17324d);color:#fff!important;}
.local-mosaicplatform-version-warning {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:1.25rem;
    height:1.25rem;
    border-radius:50%;
    background:#fff3cd;
    color:#664d03;
    font-weight:900;
    cursor:help;
}

@media (max-width:991.98px) {
    body.maos-auth-navigation-enabled .maos-auth-nav-content-host,
    body.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
        margin-left:0!important;
        width:100%!important;
    }
    .maos-auth-navigation {
        top:0;
        width:min(88vw,330px);
        max-width:330px;
        transform:translateX(-105%);
        z-index:1201;
        box-shadow:18px 0 42px rgba(6,27,73,.28);
    }
    .maos-auth-navigation.is-open {transform:translateX(0);}
    .maos-auth-nav-close {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:42px;
        height:42px;
        border:0;
        border-radius:10px;
        background:var(--maos-surface-raised,rgba(13,59,102,.08));
        color:var(--maos-text-primary,#10213a);
        font-size:1.6rem;
        line-height:1;
    }
    .maos-auth-nav-collapse {display:none;}
    .maos-auth-nav-mobile-toggle {
        position:fixed;
        z-index:1198;
        top:1rem;
        right:.85rem;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:46px;
        height:46px;
        padding:0;
        border:1px solid rgba(255,255,255,.34);
        border-radius:12px;
        background:rgba(6,27,73,.72);
        color:#fff;
        box-shadow:0 7px 20px rgba(6,27,73,.22);
        backdrop-filter:blur(8px);
    }
    .maos-auth-nav-toggle-icon {font-size:1.35rem;line-height:1;}
    .maos-auth-nav-toggle-label {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
    .maos-auth-nav-backdrop {
        position:fixed;
        z-index:1200;
        inset:0;
        display:block;
        background:rgba(2,10,24,.58);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .2s ease,visibility .2s ease;
    }
    body.maos-auth-navigation-open .maos-auth-nav-backdrop {opacity:1;visibility:visible;pointer-events:auto;}
    body.maos-auth-navigation-open {overflow:hidden;}

    /* Edma's broken MeanMenu control is replaced, while its separate utility
       control remains available and is moved clear of the MAOS opener. */
    body.maos-auth-navigation-enabled:not(.path-admin) .mobile-responsive-nav .meanmenu-reveal {display:none!important;}
    body.maos-auth-navigation-enabled:not(.path-admin) .others-option-for-responsive {
        right:4.4rem!important;
        top:1rem!important;
        transform:none!important;
    }
    body.maos-auth-navigation-collapsed .maos-auth-navigation {width:min(88vw,330px);}
    body.maos-auth-navigation-collapsed .maos-auth-nav-title,
    body.maos-auth-navigation-collapsed .maos-auth-nav-label,
    body.maos-auth-navigation-collapsed .maos-auth-nav-chevron {display:initial!important;}
    body.maos-auth-navigation-collapsed .maos-auth-nav-link,
    body.maos-auth-navigation-collapsed .maos-auth-nav-group-toggle {justify-content:flex-start;padding:.58rem .72rem;}
}
@media (max-width:420px) {
    .maos-auth-nav-mobile-toggle {right:.65rem;top:.75rem;}
    body.maos-auth-navigation-enabled:not(.path-admin) .others-option-for-responsive {right:4rem!important;top:.75rem!important;}
}
@media (prefers-reduced-motion:reduce) {
    .maos-auth-navigation,.maos-auth-nav-content-host,.maos-auth-nav-backdrop,.maos-auth-nav-chevron {transition:none!important;}
}
@media (forced-colors:active) {
    .maos-auth-navigation {border-right:2px solid CanvasText;}
    .maos-auth-nav-link.is-active,.maos-auth-nav-item.is-active > .maos-auth-nav-group-toggle {outline:2px solid CanvasText;}
}

/* MAOS v0.9.25 late-render header stability.
   Edma may replace the authenticated header after MAOS first initializes.
   These application-route fallbacks preserve the painted shell during the
   brief replacement window; the AMD stability observer then restores the
   complete MAOS treatment and controls idempotently. */
html.maos-application-route body:not(.path-admin) .navbar-area {
    margin:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    border:0!important;
    background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%))!important;
    box-shadow:0 8px 24px rgba(6,27,73,.13)!important;
}
html.maos-application-route body:not(.path-admin) .navbar-area .desktop-nav {
    background:transparent!important;
    box-shadow:none!important;
}
html.maos-application-route body:not(.path-admin) .navbar-area .desktop-nav .navbar {
    min-height:78px;
}
html.maos-application-route body:not(.path-admin) .navbar-area[data-maos-header-enhanced="1"] {
    transition:none!important;
}


/* MAOS v0.9.26 mobile first-paint shell stabilization.
   These rules are deliberately available before the AMD enhancement finishes,
   so the public mobile header never presents an intermediate Edma composition. */
@media (max-width:991.98px) {
    html.maos-shell-critical body:not(.path-admin) .navbar-area,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active {
        margin:0!important;
        padding:0!important;
        min-height:96px!important;
        border:0!important;
        background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%))!important;
        box-shadow:0 8px 24px rgba(6,27,73,.13)!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .desktop-nav {
        display:none!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mobile-responsive-nav,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-nav {
        display:block!important;
        min-height:96px!important;
        padding:0!important;
        background:transparent!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mobile-responsive-nav .container,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-nav .container {
        width:100%!important;
        max-width:none!important;
        min-height:96px!important;
        padding:0 18px!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mobile-responsive-menu,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu {
        display:flex!important;
        align-items:center!important;
        min-height:96px!important;
        position:relative!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mobile-responsive-menu .logo,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo {
        display:flex!important;
        align-items:center!important;
        position:relative!important;
        inset:auto!important;
        z-index:4!important;
        margin:0!important;
        max-width:210px!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mobile-responsive-menu .logo img,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mobile-responsive-menu .logo img {
        display:block!important;
        width:auto!important;
        max-width:200px!important;
        max-height:70px!important;
        object-fit:contain!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mean-container .mean-bar,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container .mean-bar {
        position:absolute!important;
        inset:0!important;
        min-height:96px!important;
        padding:0!important;
        background:transparent!important;
        z-index:3!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal {
        top:20px!important;
        right:18px!important;
        width:56px!important;
        height:56px!important;
        padding:14px!important;
        border:1px solid rgba(255,255,255,.38)!important;
        border-radius:1rem!important;
        background:rgba(4,30,70,.34)!important;
        box-shadow:0 8px 18px rgba(3,19,48,.18)!important;
        box-sizing:border-box!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:5px!important;
        color:#fff!important;
        z-index:8!important;
    }
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal span,
    body:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .mean-container a.meanmenu-reveal span {
        display:block!important;
        width:27px!important;
        height:3px!important;
        margin:0!important;
        border-radius:3px!important;
        background:#fff!important;
    }
    /* Public visitors need only one primary mobile navigation control. */
    html.maos-shell-critical body.notloggedin:not(.path-admin) .navbar-area .others-option-for-responsive,
    body.notloggedin:not(.path-admin) .navbar-area.local-mosaicplatform-mobile-shell-active .others-option-for-responsive {
        display:none!important;
    }
    /* Remove the theme's blank band between the public header and MXM hero. */
    body#page-site-index :is(#page-wrapper,#page,#page-content,.main-inner,#region-main-box,#region-main),
    body.pagelayout-frontpage :is(#page-wrapper,#page,#page-content,.main-inner,#region-main-box,#region-main) {
        margin-top:0!important;
        padding-top:0!important;
        border-top:0!important;
    }
}

/* MAOS v0.9.27 public mobile navigation correction. */
@media (max-width:991.98px) {
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button {
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:6px!important;
        line-height:1!important;
        text-indent:0!important;
        overflow:hidden!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button .maos-mobile-menu-line {
        position:relative!important;
        inset:auto!important;
        display:block!important;
        flex:0 0 auto!important;
        width:28px!important;
        height:3px!important;
        margin:0!important;
        padding:0!important;
        border:0!important;
        border-radius:999px!important;
        background:#fff!important;
        transform:none!important;
        transform-origin:center!important;
        opacity:1!important;
        transition:transform .18s ease,opacity .14s ease!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open {
        gap:0!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open .maos-mobile-menu-line:nth-child(1) {
        transform:translateY(3px) rotate(45deg)!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open .maos-mobile-menu-line:nth-child(2) {
        opacity:0!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open .maos-mobile-menu-line:nth-child(3) {
        transform:translateY(-3px) rotate(-45deg)!important;
    }
    body.maos-public-mobile-menu-open {
        overflow:hidden!important;
        touch-action:none;
    }
    .maos-public-mobile-backdrop {
        position:fixed!important;
        inset:var(--maos-public-mobile-header-offset,96px) 0 0 0!important;
        z-index:2147483000!important;
        display:block!important;
        width:100%!important;
        height:auto!important;
        margin:0!important;
        padding:0!important;
        border:0!important;
        background:rgba(2,12,31,.58)!important;
        opacity:0;
        pointer-events:none;
        transition:opacity .18s ease;
    }
    .maos-public-mobile-backdrop[hidden] {display:none!important;}
    .maos-public-mobile-backdrop.maos-open {
        opacity:1;
        pointer-events:auto;
    }
    .mean-nav.maos-public-mobile-panel {
        position:fixed!important;
        top:var(--maos-public-mobile-header-offset,96px)!important;
        right:0!important;
        bottom:0!important;
        left:0!important;
        z-index:2147483001!important;
        display:none!important;
        width:100vw!important;
        max-width:none!important;
        height:auto!important;
        max-height:calc(100dvh - var(--maos-public-mobile-header-offset,96px))!important;
        margin:0!important;
        padding:0!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
        background:#071b3a!important;
        border-top:1px solid rgba(255,255,255,.18)!important;
        box-shadow:0 18px 42px rgba(2,13,37,.38)!important;
        visibility:hidden!important;
        opacity:0!important;
        pointer-events:none!important;
        transform:translateY(-8px)!important;
        transition:opacity .18s ease,transform .18s ease!important;
        -webkit-overflow-scrolling:touch;
    }
    .mean-nav.maos-public-mobile-panel.maos-mobile-menu-open {
        display:block!important;
        visibility:visible!important;
        opacity:1!important;
        pointer-events:auto!important;
        transform:translateY(0)!important;
    }
    .mean-nav.maos-public-mobile-panel > ul {
        display:block!important;
        width:100%!important;
        max-height:none!important;
        margin:0!important;
        padding:.5rem 0 1.25rem!important;
        overflow:visible!important;
        background:transparent!important;
    }
    .mean-nav.maos-public-mobile-panel li,
    .mean-nav.maos-public-mobile-panel li a {
        display:block!important;
        width:100%!important;
        box-sizing:border-box!important;
    }
    .mean-nav.maos-public-mobile-panel li a {
        min-height:48px!important;
        padding:14px 20px!important;
        color:#f7fbff!important;
        background:transparent!important;
        border-bottom:1px solid rgba(255,255,255,.12)!important;
        font-family:var(--maos-font-interface,Arial,sans-serif)!important;
        font-size:1rem!important;
        line-height:1.35!important;
        text-decoration:none!important;
    }
    .mean-nav.maos-public-mobile-panel li a:hover,
    .mean-nav.maos-public-mobile-panel li a:focus-visible {
        background:rgba(47,148,164,.28)!important;
        color:#fff!important;
        outline:3px solid rgba(118,227,232,.88)!important;
        outline-offset:-3px!important;
    }
}

/* MAOS v0.9.28 shell finalization: clean first-party public mobile navigation. */
@media (max-width:991.98px) {
    body#page-site-index :is(.page-title-area,.pages-banner-area,.inner-banner-area,.breadcrumb-area),
    body.pagelayout-frontpage :is(.page-title-area,.pages-banner-area,.inner-banner-area,.breadcrumb-area) {
        display:none!important;
        height:0!important;
        min-height:0!important;
        margin:0!important;
        padding:0!important;
        border:0!important;
        background:none!important;
    }
    .maos-public-mobile-panel-owned {
        position:fixed!important;
        top:var(--maos-public-mobile-header-offset,96px)!important;
        right:0!important;
        bottom:0!important;
        left:0!important;
        z-index:2147483001!important;
        display:none!important;
        overflow-y:auto!important;
        background:linear-gradient(180deg,#071b3a 0%,#0b2f59 100%)!important;
        color:#fff!important;
        opacity:0!important;
        visibility:hidden!important;
        pointer-events:none!important;
        transform:translateY(-6px)!important;
        transition:opacity .16s ease,transform .16s ease!important;
        -webkit-overflow-scrolling:touch;
    }
    .maos-public-mobile-panel-owned.maos-mobile-menu-open {
        display:block!important;
        opacity:1!important;
        visibility:visible!important;
        pointer-events:auto!important;
        transform:none!important;
    }
    .maos-public-mobile-owned-list {
        list-style:none!important;
        margin:0!important;
        padding:.75rem 1rem 1.5rem!important;
    }
    .maos-public-mobile-owned-list li {margin:0!important;padding:0!important;}
    .maos-public-mobile-owned-list a {
        display:flex!important;
        align-items:center!important;
        min-height:54px!important;
        padding:.8rem 1rem!important;
        border-bottom:1px solid rgba(255,255,255,.14)!important;
        color:#fff!important;
        font-family:var(--maos-font-interface,Arial,sans-serif)!important;
        font-size:1.05rem!important;
        font-weight:700!important;
        line-height:1.3!important;
        text-decoration:none!important;
        background:transparent!important;
    }
    .maos-public-mobile-owned-list a:hover,
    .maos-public-mobile-owned-list a:focus-visible {
        background:rgba(47,148,164,.24)!important;
        outline:3px solid rgba(118,227,232,.88)!important;
        outline-offset:-3px!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button {
        width:56px!important;
        height:56px!important;
        padding:0!important;
        gap:7px!important;
        border-radius:16px!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button .maos-mobile-menu-line {
        width:28px!important;
        height:3px!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open .maos-mobile-menu-line:nth-child(1) {
        transform:translateY(5px) rotate(45deg)!important;
    }
    body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal.maos-mobile-menu-button.maos-open .maos-mobile-menu-line:nth-child(3) {
        transform:translateY(-5px) rotate(-45deg)!important;
    }
}

/* MAOS v0.9.30 navigation finalization.
   The compact rail is persistent. Expanded navigation overlays the canvas,
   and Moodle/Edma drawers are replaced without changing destination access. */
@media (min-width:992px) {
    body.maos-auth-navigation-enabled .maos-auth-nav-content-host,
    body.maos-auth-navigation-enabled.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
        margin-left:var(--maos-auth-nav-collapsed-width)!important;
        width:calc(100% - var(--maos-auth-nav-collapsed-width))!important;
        max-width:none!important;
        transition:none!important;
    }
    body.maos-auth-navigation-enabled .maos-auth-navigation {
        width:var(--maos-auth-nav-width);
        box-shadow:16px 0 38px rgba(6,27,73,.18);
    }
    body.maos-auth-navigation-enabled.maos-auth-navigation-collapsed .maos-auth-navigation {
        width:var(--maos-auth-nav-collapsed-width);
        box-shadow:8px 0 22px rgba(6,27,73,.09);
    }
    body.maos-auth-navigation-enabled .maos-auth-nav-backdrop {
        display:none!important;
        opacity:0!important;
        visibility:hidden!important;
        pointer-events:none!important;
    }
}

/* MAOS is the single fixed left rail on authenticated application and
   administration pages. Native Moodle/Edma destinations remain authoritative. */
body.maos-auth-navigation-enabled :is(
    .dashboard_sidebar,
    .dashboard_sidebars,
    .edma-left-sidebar,
    .user_board,
    #nav-drawer,
    [data-region="drawer"].drawer-left,
    .drawer-left,
    .drawer-toggles .drawer-toggler.drawer-left-toggle
) {
    display:none!important;
}
body.maos-auth-navigation-enabled .dashboard_sidebar::before {
    display:none!important;
    content:none!important;
}

/* The public Academy homepage never receives the authenticated rail. */
body.path-local-mosaicexperience.pagelayout-frontpage .maos-auth-navigation-host,
body#page-local-mosaicexperience-home .maos-auth-navigation-host {
    display:none!important;
}

/* Browsable semantic icon catalogue. */
.local-mosaicplatform-icon-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:1rem;
    margin-top:1.25rem;
}
.local-mosaicplatform-icon-card {
    display:flex;
    align-items:flex-start;
    gap:1rem;
    min-height:132px;
    padding:1rem;
    border:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));
    border-radius:14px;
    background:var(--maos-surface-panel,#fff);
    box-shadow:0 8px 24px rgba(6,27,73,.08);
}
.local-mosaicplatform-icon-preview {
    width:48px;
    min-width:48px;
    height:48px;
    font-size:1.1rem;
}
.local-mosaicplatform-icon-key {
    margin:0 0 .3rem;
    font-family:var(--maos-font-interface,Arial,sans-serif);
    font-size:1rem;
}
.local-mosaicplatform-icon-use {
    margin:0 0 .6rem;
    color:var(--maos-text-secondary,#52677f);
    font-size:.9rem;
}
.local-mosaicplatform-icon-code {
    display:inline-block;
    padding:.28rem .45rem;
    border-radius:6px;
    background:var(--maos-surface-muted,#eef4f8);
    color:var(--maos-text-primary,#10213a);
}
html[data-maos-theme="dark"] .local-mosaicplatform-icon-card {
    background:var(--maos-surface-2,#0b1d31);
    border-color:var(--maos-border-subtle,rgba(207,229,247,.2));
}
html[data-maos-theme="dark"] .local-mosaicplatform-icon-code {
    background:var(--maos-surface-3,#10273f);
    color:var(--maos-text-primary,#eef6ff);
}

/* MAOS v0.9.31 application canvas contract. */
:root {
    --maos-canvas-gutter:clamp(1rem,3vw,3rem);
    --maos-content-max-standard:1200px;
    --maos-content-max-wide:1600px;
}
body.local-mosaicplatform-application-mode.maos-layout-standard:not(.path-admin) :is(#page-content,.main-inner,#region-main-box,#region-main) {
    width:100%;
    max-width:var(--maos-content-max-standard);
    margin-inline:auto;
}
body.local-mosaicplatform-application-mode.maos-layout-wide:not(.path-admin) :is(#page-content,.main-inner,#region-main-box,#region-main) {
    width:100%;
    max-width:var(--maos-content-max-wide);
    margin-inline:auto;
}
body.local-mosaicplatform-application-mode.maos-layout-full-canvas:not(.path-admin) :is(
    .maos-auth-nav-content-host,.dashboard_main_content,.our-dashbord,#page,#page-wrapper,#topofscroll,
    .main-inner,#page-content,#region-main-box,#region-main
) {
    width:100%!important;
    max-width:none!important;
    margin-right:0!important;
    margin-left:0!important;
}
body.local-mosaicplatform-application-mode.maos-layout-full-canvas:not(.path-admin) :is(.main-inner,#page-content,#region-main-box,#region-main) {
    padding-left:0!important;
    padding-right:0!important;
}
body.local-mosaicplatform-application-mode.maos-layout-full-canvas:not(.path-admin) {overflow-x:hidden;}

/* v0.9.31 icon assignment manager. */
.local-mosaicplatform-icon-assignment-form .local-mosaicplatform-icon-card {align-items:center;}
.local-mosaicplatform-icon-select {width:100%;margin:.5rem 0;min-height:42px;}
.local-mosaicplatform-icon-actions {position:sticky;bottom:1rem;display:flex;gap:.75rem;justify-content:flex-end;margin:1.25rem 0;padding:1rem;border:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));border-radius:14px;background:var(--maos-surface-panel,#fff);box-shadow:0 10px 28px rgba(6,27,73,.14);z-index:4;}

/* Site administration is reached from the header gear. The MAOS rail carries
   Academy journeys and user utilities only; no duplicate admin hierarchy. */
.maos-auth-nav-item[data-maos-nav-key="administration"] {display:none!important;}

/* v0.9.32 Icon Asset Manager and MAOS self-hosting shell. */
.local-mosaicplatform-icon-manager {
    width: min(100%, var(--maos-content-max-wide, 1600px));
    margin: 0 auto;
    padding: var(--maos-canvas-gutter, clamp(1rem, 3vw, 3rem));
}
.local-mosaicplatform-icon-manager .tabtree {margin-bottom:1.25rem;}
.local-mosaicplatform-icon-upload-panel {
    max-width: 760px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--maos-border-subtle, #d9e2ec);
    border-radius: 1rem;
    background: var(--maos-surface-raised, #fff);
}
.local-mosaicplatform-icon-assignment-table,
.local-mosaicplatform-icon-asset-table {table-layout:fixed;width:100%;}
.local-mosaicplatform-icon-assignment-table th:nth-child(1) {width:86px;}
.local-mosaicplatform-icon-assignment-table th:nth-child(2) {width:180px;}
.local-mosaicplatform-icon-assignment-table th:nth-child(4) {width:min(420px,38vw);}
.local-mosaicplatform-icon-assignment-table .custom-select {width:100%;min-width:0;}
.local-mosaicplatform-icon-asset-table th:nth-child(1) {width:86px;}
.local-mosaicplatform-icon-asset-table th:nth-child(2) {width:240px;}
.local-mosaicplatform-icon-asset-table th:nth-child(3) {width:160px;}
.local-mosaicplatform-icon-asset-table th:last-child {width:120px;}
.local-mosaicplatform-icon-asset-preview {
    display:inline-flex;
    width:2.5rem;
    height:2.5rem;
    align-items:center;
    justify-content:center;
    object-fit:contain;
    font-size:1.5rem;
}
img.local-mosaicplatform-icon-asset-preview,
img.maos-icon-image {object-fit:contain;}
.maos-icon-asset {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:inherit;
}
.maos-icon-mask-shape {
    display:block;
    width:1.15rem;
    height:1.15rem;
    background-color:currentColor;
    -webkit-mask-image:var(--maos-icon-mask);
    mask-image:var(--maos-icon-mask);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
}
.local-mosaicplatform-icon-asset-preview .maos-icon-mask-shape {
    width:1.75rem;
    height:1.75rem;
}
.maos-auth-nav-icon.maos-icon-image {width:1.15rem;height:1.15rem;display:block;}
.maos-auth-nav-icon.maos-icon-asset {display:inline-flex;}
.local-mosaicplatform-icon-asset-table code {display:block;margin-top:.25rem;overflow-wrap:anywhere;}
.local-mosaicplatform-icon-actions {
    position:sticky;
    bottom:0;
    z-index:5;
    display:flex;
    gap:.75rem;
    justify-content:flex-end;
    padding:1rem;
    margin-top:1rem;
    border-top:1px solid var(--maos-border-subtle, #d9e2ec);
    background:color-mix(in srgb, var(--maos-surface-raised, #fff) 94%, transparent);
    backdrop-filter:blur(10px);
}
body.local-mosaicplatform-application-mode .local-mosaicplatform-wrap {max-width:none;}
@media (max-width: 900px) {
    .local-mosaicplatform-icon-assignment-table,
    .local-mosaicplatform-icon-asset-table {table-layout:auto;display:block;overflow-x:auto;white-space:normal;}
    .local-mosaicplatform-icon-assignment-table th:nth-child(n),
    .local-mosaicplatform-icon-asset-table th:nth-child(n) {width:auto;min-width:130px;}
    .local-mosaicplatform-icon-manager {padding:1rem;}
}

/* MAOS v0.9.33 dedicated application canvas.
   Registered routes are mounted outside Edma's constrained page grid. */
body.maos-dedicated-application-layout:not(.path-admin) {
    --maos-dedicated-canvas-inline: 0px;
    overflow-x: hidden;
}
body.maos-dedicated-application-layout:not(.path-admin):not(.maos-dedicated-canvas-mounted) #page {
    opacity: 0;
    pointer-events: none;
}
body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: var(--maos-surface-base, #f7f9fc);
    overflow-x: clip;
}
body.maos-dedicated-application-layout.maos-dedicated-shell-public:not(.path-admin) #maos-dedicated-canvas-root {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
}
body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root > #region-main {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
body.maos-dedicated-application-layout:not(.path-admin).maos-dedicated-canvas-mounted #page {
    display: none !important;
}
body.maos-dedicated-application-layout:not(.path-admin) :is(
    .edmas-settings-menu-container,
    .drawer-toggles,
    .block-region,
    .pager-bottom-box,
    .footer-area,
    .copy-right-area,
    #page-footer
) {
    display: none !important;
}
body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root .local-mosaicplatform-authenticated-footer,
body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root footer {
    max-width: none;
}
@media (max-width: 991.98px) {
    body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root {
        width: 100%;
        margin: 0;
    }
}


/* MAOS v0.9.38 universal Academy footer.
   Uses the approved Mosaic artwork as the footer foundation with a navy readability overlay. */
.maos-universal-footer {
    position:relative;
    isolation:isolate;
    width:100%;
    max-width:none;
    margin:3rem 0 0;
    color:#f7fbff;
    background:#071d46;
    overflow:hidden;
    box-shadow:0 -1px 0 rgba(255,255,255,.08),0 -14px 36px rgba(6,27,73,.08);
    font-family:var(--maos-font-interface,system-ui,-apple-system,"Segoe UI",sans-serif);
}
.maos-footer-pattern {
    position:absolute;
    inset:0;
    z-index:-3;
    pointer-events:none;
    background-repeat:no-repeat;
    background-position:center 78%;
    background-size:cover;
    opacity:.58;
    filter:saturate(1.08) contrast(1.03);
}
.maos-universal-footer::before,
.maos-universal-footer::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
}
.maos-universal-footer::before {
    z-index:-2;
    background:
        linear-gradient(90deg,rgba(5,24,61,.96) 0%,rgba(6,29,70,.84) 48%,rgba(5,25,62,.93) 100%),
        linear-gradient(180deg,rgba(4,20,51,.78) 0%,rgba(6,30,72,.62) 58%,rgba(5,22,55,.9) 100%);
}
.maos-universal-footer::after {
    z-index:-1;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:255px 100%,255px 100%;
    opacity:.22;
}
.maos-footer-inner {max-width:1480px;margin:0 auto;padding:0 var(--maos-canvas-gutter,clamp(1rem,3vw,3rem));}
.maos-footer-top {
    display:grid;
    grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);
    gap:clamp(2rem,6vw,7rem);
    align-items:center;
    padding:clamp(2.25rem,5vw,4.5rem) 0 clamp(1.75rem,4vw,3.25rem);
    border-bottom:1px solid rgba(255,255,255,.16);
}
.maos-footer-brand {display:flex;flex-direction:column;align-items:flex-start;gap:1rem;}
.maos-footer-logo-link {display:inline-flex;max-width:260px;}
.maos-footer-logo {display:block;width:min(100%,240px);height:auto;max-height:88px;object-fit:contain;object-position:left center;}
.maos-footer-division {max-width:34rem;margin:0;color:rgba(247,251,255,.82);font-size:.95rem;line-height:1.55;}
.maos-footer-socials {display:flex;gap:.65rem;align-items:center;}
.maos-footer-social-link {
    display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;
    border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#fff!important;text-decoration:none!important;
    font-weight:800;transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.maos-footer-social-link:hover,.maos-footer-social-link:focus-visible {background:#fff;color:#08214e!important;border-color:#fff;transform:translateY(-2px);}
.maos-footer-statement {display:flex;flex-direction:column;align-items:flex-start;gap:1.15rem;}
.maos-footer-statement-text {margin:0;color:#fff;font-family:var(--maos-font-interface,system-ui,sans-serif);font-size:clamp(1.65rem,3vw,2.75rem);font-weight:650;line-height:1.14;max-width:23ch;letter-spacing:-.025em;}
.maos-footer-cta {display:inline-flex;align-items:center;min-height:44px;padding:.7rem 1rem;border-radius:.45rem;background:linear-gradient(105deg,#0a2e68,#2f94a4);color:#fff!important;font-weight:750;text-decoration:none!important;box-shadow:0 8px 22px rgba(0,0,0,.18);}
.maos-footer-cta:hover,.maos-footer-cta:focus-visible {filter:brightness(1.12);}
.maos-footer-grid {
    display:grid;
    grid-template-columns:minmax(250px,1.2fr) minmax(235px,1fr) repeat(3,minmax(155px,.8fr));
    gap:0;
    border-bottom:1px solid rgba(255,255,255,.15);
}
.maos-footer-grid > * {min-width:0;padding:clamp(1.5rem,3vw,2.6rem) clamp(1rem,2vw,1.75rem);border-right:1px solid rgba(255,255,255,.12);}
.maos-footer-grid > :first-child {padding-left:0;}
.maos-footer-grid > :last-child {padding-right:0;border-right:0;}
.maos-footer-heading {margin:0 0 1rem;color:#fff!important;font-family:var(--maos-font-interface,system-ui,sans-serif);font-size:.82rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;}
.maos-footer-contact {margin:0;font-style:normal;color:rgba(247,251,255,.82);font-size:.92rem;line-height:1.58;}
.maos-footer-contact p {margin:0 0 .45rem;color:inherit!important;}
.maos-footer-contact a,.maos-footer-link-list a {color:rgba(247,251,255,.83)!important;text-decoration:none;}
.maos-footer-contact a:hover,.maos-footer-contact a:focus-visible,.maos-footer-link-list a:hover,.maos-footer-link-list a:focus-visible {color:#b9f3f4!important;text-decoration:underline;}
.maos-footer-link-list {display:grid;gap:.58rem;margin:0;padding:0;list-style:none;}
.maos-footer-link-list li {margin:0;}
.maos-footer-location {
    position:relative;display:flex;align-items:center;gap:1rem;min-height:145px;color:#fff!important;text-decoration:none!important;
    background:
        linear-gradient(135deg,rgba(255,255,255,.04),rgba(38,125,164,.23)),
        repeating-linear-gradient(31deg,transparent 0 28px,rgba(255,255,255,.08) 29px 30px),
        repeating-linear-gradient(121deg,transparent 0 45px,rgba(255,255,255,.07) 46px 47px);
}
.maos-footer-location:hover,.maos-footer-location:focus-visible {background-color:rgba(255,255,255,.1);box-shadow:inset 0 0 0 2px rgba(185,243,244,.72);}
.maos-footer-location-pin {display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.7rem;width:2.7rem;height:2.7rem;border-radius:999px;background:#fff;color:#09265a;font-size:1.45rem;box-shadow:0 7px 20px rgba(0,0,0,.2);}
.maos-footer-location-copy {display:flex;flex-direction:column;gap:.4rem;min-width:0;}
.maos-footer-location-copy strong {font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;}
.maos-footer-location-copy span {color:rgba(247,251,255,.8);font-size:.85rem;line-height:1.45;}
.maos-footer-legal {display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0 1.25rem;color:rgba(247,251,255,.72);font-size:.78rem;line-height:1.45;}
.maos-footer-legal-division {text-align:right;}
/* MAOS v0.9.45 single-footer ownership. Shell-enrolled routes never expose Edma or legacy manager footers. */
html.maos-shell-enrolled body :is(.footer-area,.copy-right-area,#page-footer),
html.maos-shell-enrolled body:not(.path-admin) :is(.local-mosaicexperience-dashboard-appfooter,.local-mosaicexperience-dashboard-footer,.local-mosaicexperience-home-footer,.local-mosaicexperience-footer) {display:none!important;}

html.maos-application-route body:not(.path-admin) :is(.local-mosaicexperience-dashboard-appfooter,.local-mosaicexperience-home-footer,.local-mosaicexperience-footer),
body.local-mosaicplatform-application-mode:not(.path-admin) :is(.local-mosaicexperience-dashboard-appfooter,.local-mosaicexperience-home-footer,.local-mosaicexperience-footer) {display:none!important;}
html.maos-application-route body:not(.path-admin) :is(.footer-area,.copy-right-area,#page-footer),
body.local-mosaicplatform-application-mode:not(.path-admin) :is(.footer-area,.copy-right-area,#page-footer) {display:none!important;}
body.maos-dedicated-application-layout:not(.path-admin) #maos-dedicated-canvas-root > .maos-universal-footer {margin-top:0;}
body.maos-auth-navigation-enabled .maos-auth-nav-content-host > .maos-universal-footer {max-width:none;}
html[data-maos-theme="dark"] .maos-universal-footer::before {background:linear-gradient(90deg,rgba(2,12,32,.97),rgba(4,20,48,.9) 50%,rgba(3,14,35,.96)),linear-gradient(180deg,rgba(2,10,28,.78),rgba(4,20,48,.7) 60%,rgba(2,12,31,.94));}
@media (max-width:1199.98px) {
    .maos-footer-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
    .maos-footer-grid > * {border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);padding:1.5rem;}
    .maos-footer-grid > :nth-child(2n) {border-right:0;}
    .maos-footer-grid > :first-child {padding-left:1.5rem;}
    .maos-footer-grid > :last-child {padding-right:1.5rem;border-bottom:0;}
}
@media (max-width:767.98px) {
    .maos-footer-inner {padding-inline:1.15rem;}
    .maos-footer-top {grid-template-columns:1fr;gap:2rem;padding-block:2rem;}
    .maos-footer-logo {width:205px;}
    .maos-footer-statement-text {font-size:clamp(1.55rem,8vw,2.25rem);}
    .maos-footer-grid {grid-template-columns:1fr;}
    .maos-footer-grid > *,.maos-footer-grid > :first-child,.maos-footer-grid > :last-child {padding:1.35rem 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.12);}
    .maos-footer-grid > :last-child {border-bottom:0;}
    .maos-footer-location {padding-inline:1rem!important;border-radius:.65rem;margin:.25rem 0;}
    .maos-footer-pattern {background-position:45% bottom;opacity:.5;}
    .maos-footer-legal {flex-direction:column;align-items:flex-start;}
    .maos-footer-legal-division {text-align:left;}
}

/* MAOS v0.9.40 desktop containment guard.
   The mobile drawer is appended to <body> so it can escape theme clipping.
   It must remain absent from normal document flow unless the mobile breakpoint
   and MAOS ownership class are both active. */
.maos-owned-mobile-drawer,
.maos-owned-mobile-backdrop,
.maos-owned-mobile-toggle {
    display:none!important;
}

/* MAOS v0.9.39 mobile drawer ownership.
   Enrolled Mosaic routes no longer expose or reuse Edma's MeanMenu drawer.
   One MAOS-owned off-canvas panel uses the same shell tokens and navigation data
   as the desktop experience. */
@media (max-width:991.98px) {
    body.maos-mobile-drawer-owned {
        --maos-owned-mobile-drawer-width:min(92vw,420px);
    }
    body.maos-mobile-drawer-owned.maos-owned-mobile-open {
        overflow:hidden!important;
        touch-action:none;
    }

    /* Retire the competing Edma mobile controls only after MAOS owns the route. */
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mean-container > .mean-bar,
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mean-container .mean-nav,
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal,
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .others-option-for-responsive,
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mobile-responsive-nav .edma-header-user-sec {
        display:none!important;
        visibility:hidden!important;
        pointer-events:none!important;
    }

    /* Hide Edma's controls during first paint on routes MAOS is preparing. */
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mean-container .mean-nav,
    html.maos-shell-critical body:not(.path-admin) .navbar-area .mean-container a.meanmenu-reveal,
    html.maos-shell-critical body:not(.path-admin) .navbar-area .others-option-for-responsive {
        display:none!important;
    }

    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mobile-responsive-menu {
        display:flex!important;
        align-items:center!important;
        justify-content:space-between!important;
        min-height:96px!important;
        width:100%!important;
    }
    body.maos-mobile-drawer-owned:not(.path-admin) .navbar-area .mobile-responsive-menu .logo {
        margin-right:auto!important;
    }

    body.maos-mobile-drawer-owned .maos-owned-mobile-toggle {
        position:absolute!important;
        top:20px!important;
        right:18px!important;
        z-index:2147483105!important;
        display:flex!important;
        width:56px!important;
        height:56px!important;
        margin:0!important;
        padding:0!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:7px!important;
        border:1px solid rgba(255,255,255,.38)!important;
        border-radius:16px!important;
        background:rgba(4,30,70,.34)!important;
        color:#fff!important;
        box-shadow:0 8px 18px rgba(3,19,48,.18)!important;
        cursor:pointer!important;
        appearance:none!important;
        -webkit-appearance:none!important;
    }
    body.maos-mobile-drawer-owned .maos-owned-mobile-toggle:hover,
    body.maos-mobile-drawer-owned .maos-owned-mobile-toggle:focus-visible {
        background:rgba(255,255,255,.14)!important;
        outline:3px solid rgba(118,227,232,.88)!important;
        outline-offset:2px!important;
    }
    .maos-owned-mobile-toggle-line {
        display:block!important;
        width:28px!important;
        height:3px!important;
        margin:0!important;
        border:0!important;
        border-radius:999px!important;
        background:#fff!important;
        transform:none!important;
        transform-origin:center!important;
        opacity:1!important;
        transition:transform .18s ease,opacity .14s ease!important;
    }
    .maos-owned-mobile-toggle.is-open {
        gap:0!important;
    }
    .maos-owned-mobile-toggle.is-open .maos-owned-mobile-toggle-line:nth-child(1) {
        transform:translateY(3px) rotate(45deg)!important;
    }
    .maos-owned-mobile-toggle.is-open .maos-owned-mobile-toggle-line:nth-child(2) {
        opacity:0!important;
    }
    .maos-owned-mobile-toggle.is-open .maos-owned-mobile-toggle-line:nth-child(3) {
        transform:translateY(-3px) rotate(-45deg)!important;
    }

    body.maos-mobile-drawer-owned .maos-owned-mobile-backdrop {
        position:fixed!important;
        inset:var(--maos-owned-mobile-header-offset,96px) 0 0 0!important;
        z-index:2147483090!important;
        display:block!important;
        width:auto!important;
        height:auto!important;
        margin:0!important;
        padding:0!important;
        border:0!important;
        background:rgba(2,12,31,.62)!important;
        opacity:0!important;
        visibility:hidden!important;
        pointer-events:none!important;
        transition:opacity .18s ease,visibility .18s ease!important;
    }
    body.maos-mobile-drawer-owned .maos-owned-mobile-backdrop[hidden] {
        display:none!important;
    }
    body.maos-mobile-drawer-owned .maos-owned-mobile-backdrop.is-open {
        opacity:1!important;
        visibility:visible!important;
        pointer-events:auto!important;
    }

    body.maos-mobile-drawer-owned .maos-owned-mobile-drawer {
        position:fixed!important;
        top:var(--maos-owned-mobile-header-offset,96px)!important;
        right:0!important;
        bottom:0!important;
        z-index:2147483100!important;
        display:flex!important;
        width:var(--maos-owned-mobile-drawer-width,min(92vw,420px))!important;
        max-width:420px!important;
        height:auto!important;
        margin:0!important;
        padding:0!important;
        flex-direction:column!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
        border:0!important;
        border-left:1px solid rgba(255,255,255,.18)!important;
        background:var(--maos-gradient,linear-gradient(105deg,#061b49 0%,#123b6d 58%,#2f94a4 100%))!important;
        color:#fff!important;
        box-shadow:-18px 0 42px rgba(2,13,37,.38)!important;
        opacity:0!important;
        visibility:hidden!important;
        pointer-events:none!important;
        transform:translateX(100%)!important;
        transition:transform .22s ease,opacity .18s ease,visibility .18s ease!important;
        -webkit-overflow-scrolling:touch;
    }
    .maos-owned-mobile-drawer.is-open {
        opacity:1!important;
        visibility:visible!important;
        pointer-events:auto!important;
        transform:translateX(0)!important;
    }
    .maos-owned-mobile-drawer-header {
        position:sticky!important;
        top:0!important;
        z-index:2!important;
        display:flex!important;
        align-items:center!important;
        justify-content:space-between!important;
        min-height:68px!important;
        padding:1rem 1rem 1rem 1.15rem!important;
        border-bottom:1px solid rgba(255,255,255,.18)!important;
        background:rgba(3,17,43,.88)!important;
        backdrop-filter:blur(10px)!important;
        -webkit-backdrop-filter:blur(10px)!important;
    }
    .maos-owned-mobile-drawer-header h2 {
        margin:0!important;
        color:#fff!important;
        font-family:var(--maos-font-display,"Josefin Sans",Arial,sans-serif)!important;
        font-size:1.25rem!important;
        line-height:1.2!important;
    }
    .maos-owned-mobile-close {
        display:grid!important;
        width:44px!important;
        height:44px!important;
        margin:0!important;
        padding:0!important;
        place-items:center!important;
        border:1px solid rgba(255,255,255,.30)!important;
        border-radius:12px!important;
        background:rgba(255,255,255,.08)!important;
        color:#fff!important;
        font:400 2rem/1 var(--maos-font-interface,Arial,sans-serif)!important;
        cursor:pointer!important;
    }
    .maos-owned-mobile-close:hover,
    .maos-owned-mobile-close:focus-visible {
        background:rgba(255,255,255,.16)!important;
        outline:3px solid rgba(118,227,232,.88)!important;
        outline-offset:2px!important;
    }

    .maos-owned-mobile-search {
        padding:1rem!important;
        border-bottom:1px solid rgba(255,255,255,.14)!important;
        background:rgba(3,17,43,.38)!important;
    }
    .maos-owned-mobile-search form,
    .maos-owned-mobile-search .search-form {
        display:flex!important;
        width:100%!important;
        max-width:none!important;
        margin:0!important;
    }
    .maos-owned-mobile-search input[type="search"],
    .maos-owned-mobile-search input[type="text"] {
        flex:1 1 auto!important;
        min-width:0!important;
        min-height:48px!important;
        padding:.75rem .9rem!important;
        border:1px solid rgba(255,255,255,.28)!important;
        border-radius:10px 0 0 10px!important;
        background:rgba(3,17,43,.62)!important;
        color:#fff!important;
        font-family:var(--maos-font-interface,Arial,sans-serif)!important;
    }
    .maos-owned-mobile-search input::placeholder {
        color:rgba(255,255,255,.72)!important;
        opacity:1!important;
    }
    .maos-owned-mobile-search button,
    .maos-owned-mobile-search input[type="submit"] {
        min-width:48px!important;
        min-height:48px!important;
        border:1px solid rgba(255,255,255,.28)!important;
        border-left:0!important;
        border-radius:0 10px 10px 0!important;
        background:rgba(255,255,255,.12)!important;
        color:#fff!important;
    }

    .maos-owned-mobile-nav {
        flex:1 0 auto!important;
        padding:.35rem 0!important;
    }
    .maos-owned-mobile-list,
    .maos-owned-mobile-sublist {
        list-style:none!important;
        margin:0!important;
        padding:0!important;
    }
    .maos-owned-mobile-item {
        margin:0!important;
        padding:0!important;
        border-bottom:1px solid rgba(255,255,255,.12)!important;
    }
    .maos-owned-mobile-link,
    .maos-owned-mobile-group-toggle {
        display:flex!important;
        width:100%!important;
        min-height:54px!important;
        margin:0!important;
        padding:.85rem 1.15rem!important;
        align-items:center!important;
        justify-content:space-between!important;
        border:0!important;
        border-radius:0!important;
        background:transparent!important;
        color:#fff!important;
        font-family:var(--maos-font-interface,Arial,sans-serif)!important;
        font-size:1rem!important;
        font-weight:700!important;
        line-height:1.35!important;
        text-align:left!important;
        text-decoration:none!important;
        cursor:pointer!important;
    }
    .maos-owned-mobile-link:hover,
    .maos-owned-mobile-link:focus-visible,
    .maos-owned-mobile-group-toggle:hover,
    .maos-owned-mobile-group-toggle:focus-visible,
    .maos-owned-mobile-item.is-active > .maos-owned-mobile-link,
    .maos-owned-mobile-item.is-active > .maos-owned-mobile-group-toggle {
        background:rgba(255,255,255,.14)!important;
        color:#fff!important;
        outline:3px solid rgba(118,227,232,.88)!important;
        outline-offset:-3px!important;
    }
    .maos-owned-mobile-chevron {
        margin-left:1rem!important;
        transition:transform .18s ease!important;
    }
    .maos-owned-mobile-group-toggle[aria-expanded="true"] .maos-owned-mobile-chevron {
        transform:rotate(180deg)!important;
    }
    .maos-owned-mobile-sublist {
        background:rgba(3,17,43,.34)!important;
    }
    .maos-owned-mobile-sublist .maos-owned-mobile-link {
        min-height:48px!important;
        padding-left:2rem!important;
        font-size:.95rem!important;
        font-weight:600!important;
    }

    .maos-owned-mobile-appearance {
        padding:1rem!important;
        border-top:1px solid rgba(255,255,255,.18)!important;
        background:rgba(3,17,43,.38)!important;
    }
    .maos-owned-mobile-appearance h3 {
        margin:0 0 .65rem!important;
        color:#fff!important;
        font-family:var(--maos-font-interface,Arial,sans-serif)!important;
        font-size:.875rem!important;
        font-weight:800!important;
        letter-spacing:.04em!important;
        text-transform:uppercase!important;
    }
    .maos-owned-mobile-appearance .maos-header-appearance {
        display:grid!important;
        width:100%!important;
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:.35rem!important;
        margin:0!important;
        padding:.3rem!important;
        border:1px solid rgba(255,255,255,.24)!important;
        border-radius:12px!important;
        background:rgba(3,17,43,.40)!important;
    }
    .maos-owned-mobile-appearance .maos-header-appearance-option {
        min-width:0!important;
        min-height:42px!important;
        padding:.45rem .35rem!important;
        color:#fff!important;
    }
    .maos-owned-mobile-appearance .maos-header-appearance-option.is-selected {
        background:#fff!important;
        color:#061b49!important;
    }
}


/* MAOS v0.9.42 preview-safe navigation and shell simplification. */
.maos-auth-nav-appearance-item {
    margin:.25rem 0;
    padding:.58rem .62rem .68rem;
    border:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));
    border-radius:10px;
    background:var(--maos-surface-raised,#f3f7fb);
}
.maos-auth-nav-appearance-heading {
    display:flex;
    align-items:center;
    gap:.72rem;
    margin-bottom:.55rem;
    color:var(--maos-text-primary,#10213a);
    font-size:.9rem;
    font-weight:700;
}
.maos-auth-nav-appearance-options {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.3rem;
}
.maos-auth-nav-appearance-option {
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.25rem;
    padding:.35rem .3rem;
    border:1px solid var(--maos-border-subtle,rgba(13,59,102,.16));
    border-radius:8px;
    background:var(--maos-surface-panel,#fff);
    color:var(--maos-text-primary,#10213a);
    font:inherit;
    font-size:.76rem;
    font-weight:700;
    cursor:pointer;
}
.maos-auth-nav-appearance-option:hover,
.maos-auth-nav-appearance-option:focus-visible {
    background:var(--maos-surface-hover,rgba(48,158,169,.10));
}
.maos-auth-nav-appearance-option:focus-visible {
    outline:3px solid var(--maos-accent,#309ea9);
    outline-offset:2px;
}
.maos-auth-nav-appearance-option.is-selected,
.maos-auth-nav-appearance-option[aria-checked="true"] {
    background:var(--maos-accent-strong,#0d3b66);
    border-color:var(--maos-accent-strong,#0d3b66);
    color:#fff;
}
html[data-maos-theme="dark"] .maos-auth-nav-appearance-item,
html[data-maos-theme="dark"] .maos-auth-nav-appearance-option {
    background:var(--maos-surface-3,#10273f);
    color:var(--maos-text-primary,#eef6ff);
    border-color:var(--maos-border-subtle,rgba(207,229,247,.2));
}
html[data-maos-theme="dark"] .maos-auth-nav-appearance-option.is-selected,
html[data-maos-theme="dark"] .maos-auth-nav-appearance-option[aria-checked="true"] {
    background:#fff;
    border-color:#fff;
    color:#071f49;
}
body.maos-auth-navigation-collapsed .maos-auth-nav-appearance-item {display:none!important;}
html.maos-preview-platform-restricted .navbar-area .edma-settings-nav,
html.maos-preview-platform-restricted header .edma-settings-nav,
body.maos-preview-platform-restricted .navbar-area .edma-settings-nav,
body.maos-preview-platform-restricted header .edma-settings-nav,
html.maos-preview-platform-restricted .navbar-area a[href*="/admin/search.php"],
html.maos-preview-platform-restricted header a[href*="/admin/search.php"],
body.maos-preview-platform-restricted .navbar-area a[href*="/admin/search.php"],
body.maos-preview-platform-restricted header a[href*="/admin/search.php"] {display:none!important;}
@media (min-width:992px) {
    body.maos-auth-navigation-enabled:not(.maos-auth-navigation-collapsed) {
        overflow:auto!important;
    }
}
@media (max-width:991.98px) {
    body.maos-auth-navigation-collapsed .maos-auth-nav-appearance-item {display:block!important;}
}

/* MAOS v0.9.43 installed-suite release assurance. */
.local-mosaicplatform-table-scroll {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}
.local-mosaicplatform-assurance-table {
    min-width: 1080px;
}
.local-mosaicplatform-assurance-note {
    max-width: 78ch;
    line-height: var(--maos-line-height-body, 1.5);
}

/* MAOS v0.9.44 master shell convergence.
   One server-rendered header and one fixed rail replace Edma chrome on enrolled
   routes. The theme remains the Moodle renderer, but no longer owns the
   visible application shell. */
html.maos-shell-enrolled,
html.maos-shell-enrolled body {
    --maos-canonical-header-height: 112px;
    --maos-auth-header-offset: var(--maos-canonical-header-height);
}
html.maos-shell-enrolled {
    scroll-padding-top: calc(var(--maos-canonical-header-height) + 1rem);
}
html.maos-shell-enrolled body > .navbar-area,
html.maos-shell-enrolled .navbar-area {
    display: none !important;
}
.maos-canonical-header {
    position: fixed;
    inset: 0 0 auto 0;
    top: 0;
    z-index: 1300;
    display: block;
    width: 100%;
    min-height: var(--maos-canonical-header-height, 112px);
    color: #fff;
    background: var(--maos-gradient, linear-gradient(105deg, #061b49 0%, #123b6d 58%, #2f94a4 100%));
    box-shadow: 0 8px 24px rgba(6, 27, 73, .14);
    font-family: var(--maos-font-interface, Arial, sans-serif);
}
.maos-canonical-header-spacer {
    display: block;
    width: 100%;
    height: var(--maos-canonical-header-height, 112px);
    min-height: var(--maos-canonical-header-height, 112px);
    flex: 0 0 var(--maos-canonical-header-height, 112px);
    pointer-events: none;
    visibility: hidden;
}
.maos-canonical-header-inner {
    width: 100%;
    min-height: inherit;
    display: grid;
    grid-template-columns: minmax(150px, 190px) 52px minmax(250px, 330px) 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: .75rem clamp(1rem, 4vw, 4.5rem);
}
.maos-canonical-header-brand {
    display: inline-flex;
    align-items: center;
    width: min(100%, 180px);
    min-width: 0;
}
.maos-canonical-header-logo {
    display: block;
    width: 100%;
    max-width: 178px;
    max-height: 88px;
    object-fit: contain;
    object-position: left center;
}
.maos-canonical-header-launcher,
.maos-canonical-header-control,
.maos-canonical-mobile-toggle,
.maos-canonical-header-search-button {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, .26);
    background: rgba(6, 27, 73, .28);
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(4, 21, 50, .18);
    text-decoration: none !important;
}
.maos-canonical-header-launcher,
.maos-canonical-header-control {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    padding: 0;
    cursor: pointer;
}
.maos-canonical-header-launcher:hover,
.maos-canonical-header-control:hover,
.maos-canonical-mobile-toggle:hover,
.maos-canonical-header-search-button:hover {
    background: rgba(255, 255, 255, .16);
    color: #fff !important;
}
.maos-canonical-header-launcher:focus-visible,
.maos-canonical-header-control:focus-visible,
.maos-canonical-mobile-toggle:focus-visible,
.maos-canonical-header-search-button:focus-visible,
.maos-canonical-header-search-input:focus-visible,
.maos-canonical-header-appearance-option:focus-visible {
    outline: 3px solid #7ee4eb !important;
    outline-offset: 2px !important;
}
.maos-canonical-header-launcher-icon {font-size: 1.15rem; line-height: 1;}
.maos-canonical-header-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    margin: 0;
}
.maos-canonical-header-search-input {
    min-width: 0;
    height: 48px;
    padding: 0 1rem;
    border: 1px solid rgba(255, 255, 255, .3);
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: rgba(255, 255, 255, .96);
    color: #16243a;
    font: inherit;
}
.maos-canonical-header-search-input::placeholder {color: #526071; opacity: 1;}
.maos-canonical-header-search-button {
    height: 48px;
    border-radius: 0 8px 8px 0;
    font-size: 1.35rem;
    cursor: pointer;
}
.maos-canonical-header-utilities {
    grid-column: 5;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    min-width: 0;
}
.maos-canonical-header-edit,
.maos-canonical-header-account,
.maos-canonical-header-plugin-output {
    display: flex;
    align-items: center;
    min-width: 0;
    margin: 0;
}
.maos-canonical-header-plugin-output {
    list-style: none;
    gap: .35rem;
    padding: 0;
}
.maos-canonical-header-plugin-output > li,
.maos-canonical-header-account > li {list-style: none; margin: 0;}
.maos-canonical-header .editmode-switch-form,
.maos-canonical-header .usermenu,
.maos-canonical-header [data-region="user-menu"] {margin: 0 !important;}
.maos-canonical-header .editmode-switch-form label,
.maos-canonical-header .editmode-switch-form .form-check-label {color: #fff !important; font-weight: 700;}
.maos-canonical-header .nav-link,
.maos-canonical-header .popover-region-toggle,
.maos-canonical-header .usermenu .dropdown-toggle {
    color: #fff !important;
}
.maos-canonical-header .popover-region-toggle,
.maos-canonical-header .usermenu .dropdown-toggle {
    min-width: 42px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 10px;
    background: rgba(6, 27, 73, .24);
}
.maos-canonical-header .dropdown-menu,
.maos-canonical-header .popover-region-container {
    color: var(--maos-text-primary, #10213a);
    background: var(--maos-surface-1, #fff);
    z-index: 1400;
}
.maos-canonical-header-account-menu {position:relative;margin:0;}
.maos-canonical-header-account-trigger {
    display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;overflow:hidden;
    border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(6,27,73,.2);cursor:pointer;list-style:none;
}
.maos-canonical-header-account-trigger::-webkit-details-marker {display:none;}
.maos-canonical-header-account-trigger::marker {display:none;content:"";}
.maos-canonical-header-account-menu[open] .maos-canonical-header-account-trigger,
.maos-canonical-header-account-trigger:hover,
.maos-canonical-header-account-trigger:focus-visible {outline:2px solid rgba(185,243,244,.9);outline-offset:2px;}
.maos-canonical-header-account-menu-panel {
    position:absolute;right:0;top:calc(100% + .65rem);z-index:1600;display:grid;min-width:180px;padding:.4rem;
    border:1px solid var(--maos-border-subtle,#d6e0eb);border-radius:10px;background:var(--maos-surface-1,#fff);
    box-shadow:0 16px 38px rgba(5,24,61,.22);
}
.maos-canonical-header-account-link {display:block;padding:.68rem .8rem;border-radius:7px;color:var(--maos-text-primary,#10213a)!important;text-decoration:none!important;font-weight:650;}
.maos-canonical-header-account-link:hover,.maos-canonical-header-account-link:focus-visible {background:var(--maos-surface-2,#eef4f8);}
.maos-canonical-header-avatar {width:40px;height:40px;border-radius:50%;object-fit:cover;}
.maos-canonical-header-avatar-fallback {font-weight:800;color:#fff;}
.maos-canonical-header-login {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: .55rem .9rem;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 10px;
    color: #fff !important;
    font-weight: 750;
    text-decoration: none !important;
}
.maos-canonical-header-appearance {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    padding: .2rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(6, 27, 73, .2);
}
.maos-canonical-header-appearance-option {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    padding: .35rem .62rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: .8rem;
    font-weight: 700;
    cursor: pointer;
}
.maos-canonical-header-appearance-option.is-selected,
.maos-canonical-header-appearance-option[aria-checked="true"] {background: #fff; color: #071f49;}
.maos-canonical-mobile-toggle {display: none;}

/* The rail reserves only its compact width. Expansion overlays the canvas and
   therefore never reformats a manager or Moodle page. */
@media (min-width: 992px) {
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .maos-auth-nav-content-host,
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
        margin-left: var(--maos-auth-nav-collapsed-width) !important;
        width: calc(100% - var(--maos-auth-nav-collapsed-width)) !important;
        max-width: none !important;
        transition: none !important;
    }
    html.maos-auth-rail-enrolled .maos-auth-navigation {
        top: var(--maos-auth-header-offset, var(--maos-canonical-header-height, 112px)) !important;
        height: calc(100vh - var(--maos-auth-header-offset, var(--maos-canonical-header-height, 112px))) !important;
        z-index: 1250;
    }
    html.maos-auth-rail-enrolled body:not(.maos-auth-navigation-collapsed) .maos-auth-navigation {
        width: var(--maos-auth-nav-width) !important;
        box-shadow: 16px 0 38px rgba(6, 27, 73, .18);
    }
    html.maos-auth-rail-enrolled body.maos-auth-navigation-collapsed .maos-auth-navigation {
        width: var(--maos-auth-nav-collapsed-width) !important;
    }
    html.maos-auth-rail-enrolled .maos-auth-nav-backdrop {display: none !important; pointer-events: none !important;}
}

/* Remove Edma's competing authenticated navigation but preserve Moodle page
   headers, breadcrumbs, administration tabs, and destination authorization. */
html.maos-auth-rail-enrolled body :is(
    .dashboard_sidebar,
    .dashboard_sidebars,
    .edma-left-sidebar,
    .user_board,
    #nav-drawer,
    [data-region="drawer"].drawer-left,
    .drawer-left,
    .drawer-toggles .drawer-toggler.drawer-left-toggle
) {display: none !important;}
html.maos-auth-rail-enrolled body .dashboard_sidebar::before {display: none !important; content: none !important;}

/* Common canvas normalization. Manager internals remain manager-owned. */
html.maos-shell-enrolled body:not(.path-admin) #page,
html.maos-shell-enrolled body:not(.path-admin) #page-wrapper,
html.maos-shell-enrolled body:not(.path-admin) #topofscroll {
    max-width: none;
}
html.maos-auth-rail-enrolled body .maos-auth-nav-content-host > #page-wrapper,
html.maos-auth-rail-enrolled body .maos-auth-nav-content-host > #page,
html.maos-auth-rail-enrolled body .maos-auth-nav-content-host > .dashboard_main_content,
html.maos-auth-rail-enrolled body .maos-auth-nav-content-host > .our-dashbord {
    width: 100% !important;
    max-width: none !important;
}
html.maos-route-manager-application body #page-content,
html.maos-route-authenticated-moodle body #page-content,
html.maos-route-core-admin body #page-content {
    min-width: 0;
}

/* Shared compatibility styling for manager controls. It is intentionally
   scoped to Mosaic manager routes and does not change workflow semantics. */
html.maos-route-manager-application body :is(
    .btn-primary,
    input[type="submit"].btn-primary,
    button.btn-primary
) {
    border-color: transparent !important;
    background: linear-gradient(105deg, #061b49, #0d3b66 62%, #309ea9) !important;
    color: #fff !important;
    border-radius: 8px !important;
    font-weight: 750 !important;
    box-shadow: none !important;
}
html.maos-route-manager-application body :is(.btn-secondary, .btn-outline-primary, .btn-outline-secondary) {
    border-color: var(--maos-border-strong, rgba(13, 59, 102, .28)) !important;
    background: var(--maos-surface-1, #fff) !important;
    color: var(--maos-heading, #061b49) !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
}
html.maos-route-manager-application body :is(.nav-tabs, .nav-pills) .nav-link {
    border-radius: 8px 8px 0 0;
    font-weight: 700;
}
html.maos-route-manager-application body :is(.card, .box, .generalbox) {
    border-color: var(--maos-border-subtle, rgba(13, 59, 102, .14));
}

@media (max-width: 991.98px) {
    html.maos-shell-enrolled,
    html.maos-shell-enrolled body {--maos-canonical-header-height: 96px;}
    .maos-canonical-header-inner {
        grid-template-columns: minmax(150px, 1fr) auto;
        min-height: 96px;
        padding: .55rem 1rem;
        gap: .75rem;
    }
    .maos-canonical-header-brand {width: 190px; max-width: 58vw;}
    .maos-canonical-header-logo {max-height: 78px;}
    .maos-canonical-header-launcher,
    .maos-canonical-header-search,
    .maos-canonical-header-utilities {display: none !important;}
    .maos-canonical-mobile-toggle {
        grid-column: 2;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        width: 58px;
        height: 58px;
        padding: 0;
        border-radius: 16px;
        cursor: pointer;
    }
    .maos-canonical-mobile-line {
        display: block;
        width: 28px;
        height: 3px;
        border-radius: 999px;
        background: #fff;
        transition: transform .18s ease, opacity .18s ease;
    }
    .maos-canonical-mobile-toggle.is-open .maos-canonical-mobile-line:nth-child(1) {transform: translateY(9px) rotate(45deg);}
    .maos-canonical-mobile-toggle.is-open .maos-canonical-mobile-line:nth-child(2) {opacity: 0;}
    .maos-canonical-mobile-toggle.is-open .maos-canonical-mobile-line:nth-child(3) {transform: translateY(-9px) rotate(-45deg);}
    html.maos-auth-rail-enrolled .maos-auth-navigation {
        top: 0 !important;
        height: 100vh !important;
        z-index: 1350;
    }
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .maos-auth-nav-content-host,
    html.maos-auth-rail-enrolled body.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
        margin-left: 0 !important;
        width: 100% !important;
    }
    html.maos-auth-rail-enrolled .maos-auth-nav-mobile-toggle {display: none !important;}
}
@media (max-width: 520px) {
    .maos-canonical-header-inner {padding-inline: .75rem;}
    .maos-canonical-header-brand {width: 175px; max-width: 64vw;}
    .maos-canonical-mobile-toggle {width: 54px; height: 54px;}
}


/* MAOS v0.9.47 coordinated shell and accessibility stabilization. */
@media (min-width: 992px) {
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .maos-auth-nav-content-host,
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled.maos-auth-navigation-collapsed .maos-auth-nav-content-host {
        margin-left: var(--maos-auth-nav-width) !important;
        width: calc(100% - var(--maos-auth-nav-width)) !important;
    }
    html.maos-auth-rail-enrolled .maos-auth-navigation,
    html.maos-auth-rail-enrolled body.maos-auth-navigation-collapsed .maos-auth-navigation,
    html.maos-auth-rail-enrolled body:not(.maos-auth-navigation-collapsed) .maos-auth-navigation {
        width: var(--maos-auth-nav-width) !important;
        box-shadow: none !important;
    }
    html.maos-auth-rail-enrolled [data-maos-auth-nav-collapse],
    html.maos-auth-rail-enrolled [data-maos-header-rail-toggle] {display:none!important;}
}

/* Canonical utility hosts keep Moodle messaging and notifications distinct. */
.maos-canonical-header-plugin-output {display:inline-flex;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;}
.maos-canonical-header-plugin-output:empty {display:none;}
.maos-canonical-header-plugin-output > li {list-style:none;margin:0;}

/* Authority Preview is read-only presentation. */
html.maos-preview-platform-restricted .maos-canonical-header-edit,
body.maos-preview-platform-restricted .maos-canonical-header-edit,
html.maos-preview-platform-restricted .editmode-switch-form,
body.maos-preview-platform-restricted .editmode-switch-form {display:none!important;}

/* Remove Edma's floating settings/options affordance on MAOS-enrolled routes. */
html.maos-shell-enrolled body :is(.edmas-settings-menu-container,.edma-settings-menu-container,.edmas-settings-menu-container2,#edmas-settings-menu-container2,.edma-setting-sidebar,.edma-setting-btn) {display:none!important;}

/* Dark-mode contract: never combine dark text rules with uncontrolled white surfaces. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #page-header,.page-header-headings,.secondary-navigation,.moremenu,.nav-tabs,.nav-pills,
    .card,.box,.generalbox,.alert-light,.bg-white,.bg-light,.table,.generaltable,
    .course-content .section,.course-section,.activity-item,.completion-info,.course-completion-status,
    .local-mosaicplatform-ui-metric-card,.local-mosaicplatform-statistic-tile,.mosaic-dashboard-card
) {
    background-color:var(--maos-surface)!important;
    border-color:var(--maos-border)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card,.box,.generalbox,.local-mosaicplatform-ui-metric-card,.local-mosaicplatform-statistic-tile,.mosaic-dashboard-card
) :is(h1,h2,h3,h4,h5,h6,.card-title,.local-mosaicplatform-metric,.local-mosaicplatform-action-title) {
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card,.box,.generalbox,.local-mosaicplatform-ui-metric-card,.local-mosaicplatform-statistic-tile,.mosaic-dashboard-card
) :is(p,small,.text-muted,.card-text,.local-mosaicplatform-muted,.local-mosaicplatform-action-caption) {
    color:var(--maos-text-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(input,select,textarea,.form-control,.custom-select,.input-group-text) {
    background:var(--maos-surface-raised)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.nav-link,.moremenu .nav-link,.secondary-navigation .nav-link) {
    color:var(--maos-text-muted)!important;
    background:transparent!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.nav-link.active,.nav-link[aria-current="page"],.moremenu .nav-link.active,.secondary-navigation .nav-link.active) {
    color:var(--maos-heading)!important;
    background:var(--maos-surface-raised)!important;
    border-color:var(--maos-accent)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table,.generaltable) :is(th,td),
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .course-completion-status :is(th,td) {
    background:var(--maos-surface)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.btn-light,.btn-secondary,.btn-outline-primary,.btn-outline-secondary) {
    background:var(--maos-surface-raised)!important;
    color:var(--maos-heading)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(a,.btn-link) {color:#86dfff;}

/* Public routes do not advertise an unavailable menu. */
@media (max-width:991.98px) {
    html.maos-route-public-academy body:not(.logged-in) .maos-canonical-mobile-toggle {display:none!important;}
}

/* MAOS v0.9.50 professional-polish and accessibility pass. */
:root {
    --maos-focus-ring: 0 0 0 3px #0b6f88;
}

/* Reserve stable shell paint boundaries without altering Moodle page geometry. */
html.maos-shell-enrolled body { min-height: 100vh; }
html.maos-shell-enrolled .maos-canonical-header { contain: layout style; }

/* Visible keyboard focus across shell, Moodle and manager controls. */
html.maos-shell-enrolled body :is(a,button,input,select,textarea,[tabindex]):focus-visible {
    outline: 3px solid transparent !important;
    box-shadow: var(--maos-focus-ring) !important;
    border-color: var(--maos-accent, #109cc4) !important;
}

/* Shared minimum contrast and target-size baseline. */
html.maos-shell-enrolled body :is(.btn,button,[role="button"],.nav-link,.dropdown-item) {
    min-height: 2.5rem;
}
html.maos-shell-enrolled body :is(.text-muted,.dimmed,.muted,.secondarytext,small) {
    color: var(--maos-text-muted, #50667f);
}
html.maos-shell-enrolled body .btn-primary,
html.maos-shell-enrolled body .local-mosaicplatform-button-primary {
    color: #fff !important;
    background: #07356d !important;
    border-color: #07356d !important;
}
html.maos-shell-enrolled body .btn-primary:hover,
html.maos-shell-enrolled body .btn-primary:focus-visible,
html.maos-shell-enrolled body .local-mosaicplatform-button-primary:hover,
html.maos-shell-enrolled body .local-mosaicplatform-button-primary:focus-visible {
    background: #084b86 !important;
    border-color: #084b86 !important;
}

/* Keep tables legible and usable without clipping on narrow canvases. */
html.maos-shell-enrolled body :is(.table-responsive,.no-overflow) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
html.maos-shell-enrolled body :is(.table,.generaltable) th {
    font-weight: 700;
}

/* Dark appearance: remove residual white cards and low-contrast text. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card-body,.card-footer,.list-group-item,.dropdown-menu,.modal-content,.popover,
    .form-control-static,.path-grade-report-user .user-grade,.path-grade-report-overview .generaltable
) {
    background-color: var(--maos-surface, #0d2136) !important;
    color: var(--maos-text, #e9f5ff) !important;
    border-color: var(--maos-border, #35506b) !important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .text-muted,.dimmed,.muted,.secondarytext,small,.description,.form-text
) {
    color: #bdd4e6 !important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input,select,textarea,.form-control,.custom-select
)::placeholder {
    color: #aac2d5 !important;
    opacity: 1;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .btn-outline-primary,.btn-outline-secondary,.btn-secondary
):hover {
    color: #fff !important;
    background: #164a70 !important;
    border-color: #65d4ef !important;
}

/* Motion safety and smoother, non-disruptive shell transitions. */
@media (prefers-reduced-motion: no-preference) {
    .maos-canonical-header,
    .maos-auth-navigation,
    .maos-auth-nav-content-host {
        transition: background-color .16s ease, color .16s ease, border-color .16s ease;
    }
}
@media (prefers-reduced-motion: reduce) {
    .maos-canonical-header *,
    .maos-auth-navigation *,
    .maos-auth-nav-content-host * {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* MAOS v0.9.51 corrective beta-candidate layer. */
.maos-canonical-header-utility-fallback-link,
.maos-canonical-header-adopted-utility > a,
.maos-canonical-header-adopted-utility .popover-region-toggle {
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid rgba(255,255,255,.26);
    border-radius:10px;
    background:rgba(6,27,73,.28);
    color:#fff!important;
    text-decoration:none!important;
    box-shadow:0 5px 14px rgba(4,21,50,.18);
}
.maos-canonical-header-utility-fallback-link:hover,
.maos-canonical-header-utility-fallback-link:focus-visible,
.maos-canonical-header-adopted-utility > a:hover,
.maos-canonical-header-adopted-utility > a:focus-visible,
.maos-canonical-header-adopted-utility .popover-region-toggle:hover,
.maos-canonical-header-adopted-utility .popover-region-toggle:focus-visible {
    background:rgba(255,255,255,.16);
    color:#fff!important;
}
.maos-canonical-header-utility-icon,
.maos-canonical-header-utility-icon svg {
    display:block;
    width:22px;
    height:22px;
}
.maos-canonical-header-adopted-utility,
.maos-canonical-header-adopted-utility .popover-region {
    position:relative;
    list-style:none;
    margin:0;
}
.maos-canonical-header .popover-region-container,
.maos-canonical-header [data-region="message-drawer"] {
    z-index:1700;
}
.maos-canonical-header .popover-region-container {
    top:calc(100% + .65rem);
    right:0;
    left:auto;
    max-width:min(420px,calc(100vw - 2rem));
    color:var(--maos-text-primary,#10213a);
    background:var(--maos-surface-2,#fff);
    border:1px solid var(--maos-border-subtle,#d6e0eb);
    box-shadow:var(--maos-shadow-raised,0 16px 38px rgba(5,24,61,.22));
}
.maos-canonical-header [data-region="count-container"] {
    border:2px solid #061b49;
}

/* Appearance is exclusively a Tools utility for authenticated users. */
.maos-canonical-header .maos-canonical-header-appearance,
.maos-canonical-header .maos-header-appearance,
.maos-owned-mobile-appearance {display:none!important;}

.maos-owned-mobile-utilities {
    padding:1rem;
    border-top:1px solid var(--maos-border-subtle,var(--maos-border));
}
.maos-owned-mobile-utilities h3 {
    margin:0 0 .55rem;
    color:var(--maos-text-primary,var(--maos-text));
    font-size:.9rem;
    font-weight:800;
}
.maos-owned-mobile-utilities ul {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    margin:0;
    padding:0;
    list-style:none;
}
.maos-owned-mobile-utility-link {
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.65rem .75rem;
    border:1px solid var(--maos-border-subtle,var(--maos-border));
    border-radius:10px;
    background:var(--maos-surface-interactive,var(--maos-surface-muted));
    color:var(--maos-text-primary,var(--maos-text))!important;
    font-weight:750;
    text-align:center;
    text-decoration:none!important;
}
.maos-owned-mobile-utility-link:hover,
.maos-owned-mobile-utility-link:focus-visible {
    border-color:var(--maos-accent);
    background:var(--maos-surface-elevated,var(--maos-surface-raised));
}

/* Bootstrap/Moodle semantic variable bridge for a coherent dark hierarchy. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body {
    --bs-body-bg:var(--maos-workspace);
    --bs-body-color:var(--maos-text);
    --bs-emphasis-color:var(--maos-heading);
    --bs-secondary-color:var(--maos-text-muted);
    --bs-secondary-bg:var(--maos-surface-muted);
    --bs-tertiary-bg:var(--maos-surface-raised);
    --bs-border-color:var(--maos-border);
    --bs-link-color:#86dfff;
    --bs-link-hover-color:#b8efff;
    --bs-card-bg:var(--maos-panel);
    --bs-card-border-color:var(--maos-border);
    --bs-dropdown-bg:var(--maos-panel-raised);
    --bs-dropdown-color:var(--maos-text);
    --bs-dropdown-link-color:var(--maos-text);
    --bs-dropdown-link-hover-bg:var(--maos-surface-muted);
    --bs-dropdown-link-hover-color:var(--maos-heading);
    --bs-modal-bg:var(--maos-panel);
    --bs-popover-bg:var(--maos-panel-raised);
    --bs-list-group-bg:var(--maos-panel);
    --bs-list-group-color:var(--maos-text);
    --bs-table-bg:var(--maos-panel);
    --bs-table-color:var(--maos-text);
    --bs-table-border-color:var(--maos-border);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    #page-wrapper,#page,.main-inner,#page-content,#region-main-box,#region-main,
    .dashboard_main_content,.our-dashbord,.course-content,.block-region
) {
    background-color:var(--maos-workspace)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card,.box,.generalbox,.block,.admin_settingspage,.settingsform,
    .course-section,.activity-item,.completion-info,.course-completion-status,
    .local-mosaicplatform-ui-card,.local-mosaicplatform-ui-metric-card,
    .local-mosaicplatform-statistic-tile,.local-mosaicplatform-dashboard-section,
    .mosaic-dashboard-card,.bg-white,.bg-light
) {
    background-color:var(--maos-panel)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
    box-shadow:var(--maos-shadow);
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card-header,.card-footer,.box-header,.block .card-title,
    .modal-header,.modal-footer,.popover-header,.dropdown-header,
    .secondary-navigation,.moremenu,.nav-tabs,.nav-pills
) {
    background-color:var(--maos-panel-raised)!important;
    color:var(--maos-heading)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .card-body,.modal-body,.popover-body,.dropdown-menu,.list-group-item,
    .table,.generaltable,.table-responsive,.no-overflow
) {
    background-color:var(--maos-panel)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,
    .card-title,.page-header-headings,.local-mosaicplatform-metric
) {color:var(--maos-heading)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .text-muted,.dimmed,.muted,.secondarytext,small,.description,.form-text,
    .breadcrumb-item,.breadcrumb-item.active
) {color:var(--maos-text-muted)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input,select,textarea,.form-control,.custom-select,.form-select,.input-group-text,
    .form-control-static
) {
    background-color:var(--maos-surface-raised)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input,select,textarea,.form-control,.custom-select,.form-select
):focus {
    border-color:var(--maos-accent)!important;
    box-shadow:var(--maos-focus-ring)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input,select,textarea,.form-control,.custom-select,.form-select
):disabled,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input,select,textarea,.form-control,.custom-select,.form-select
)[readonly] {
    background-color:var(--maos-surface-muted)!important;
    color:var(--maos-text-muted)!important;
    opacity:1;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .nav-link,.moremenu .nav-link,.secondary-navigation .nav-link,.nav-tabs .nav-link
) {
    color:var(--maos-text-muted)!important;
    border-color:transparent!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .nav-link:hover,.nav-link:focus-visible,.nav-link.active,.nav-link[aria-current="page"],
    .moremenu .nav-link.active,.secondary-navigation .nav-link.active,.nav-tabs .nav-link.active
) {
    color:var(--maos-heading)!important;
    background-color:var(--maos-surface-raised)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table,.generaltable) :is(th,td) {
    color:var(--maos-text)!important;
    background-color:var(--maos-panel)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table,.generaltable) thead th {
    color:var(--maos-heading)!important;
    background-color:var(--maos-panel-raised)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table-striped,.generaltable) tbody tr:nth-of-type(odd) > * {
    background-color:var(--maos-surface-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(.table-hover,.generaltable) tbody tr:hover > * {
    background-color:#21405f!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .btn-light,.btn-secondary,.btn-outline-primary,.btn-outline-secondary
) {
    background-color:var(--maos-surface-raised)!important;
    color:var(--maos-heading)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .btn-light,.btn-secondary,.btn-outline-primary,.btn-outline-secondary
):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .btn-light,.btn-secondary,.btn-outline-primary,.btn-outline-secondary
):focus-visible {
    background-color:#214a70!important;
    color:#fff!important;
    border-color:var(--maos-accent)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .dropdown-item,.list-group-item-action,.courseindex-link
) {color:var(--maos-text)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .dropdown-item:hover,.dropdown-item:focus-visible,.dropdown-item.active,
    .list-group-item-action:hover,.list-group-item-action:focus-visible,.courseindex-link:hover
) {
    color:var(--maos-heading)!important;
    background-color:var(--maos-surface-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .breadcrumb a,a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item)
) {color:#86dfff;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .breadcrumb a,a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item)
):hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .breadcrumb a,a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item)
):focus-visible {color:#b8efff;}

/* Header controls retain their high-contrast treatment inside dark mode. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body .maos-canonical-header :is(
    .maos-canonical-header-utility-fallback-link,
    .maos-canonical-header-adopted-utility > a,
    .maos-canonical-header-adopted-utility .popover-region-toggle,
    .maos-canonical-header-control,
    .maos-canonical-header-launcher
) {color:#fff!important;}

/* Canonical messaging ownership. The header and right-edge launcher expose
   compact Messages controls. Moodle notification and message application
   surfaces remain outside the canonical header content flow. */
.maos-canonical-header [data-region="popover-region-messages"],
.maos-canonical-header [data-region="right-hand-drawer"],
.maos-canonical-header [data-region="message-drawer"],
.maos-canonical-header .message-app,
.maos-canonical-header .message-drawer {
    display:none!important;
}
.maos-message-launcher {
    position:fixed;
    top:50%;
    right:0;
    z-index:1350;
    transform:translateY(-50%);
    display:flex;
    align-items:center;
    font-family:var(--maos-font-interface,Arial,sans-serif);
}
.maos-message-launcher-button {
    position:relative;
    width:54px;
    height:58px;
    min-width:54px;
    min-height:58px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid rgba(255,255,255,.3);
    border-right:0;
    border-radius:14px 0 0 14px;
    background:linear-gradient(145deg,#061b49 0%,#0b4774 70%,#16899a 100%);
    color:#fff;
    box-shadow:0 10px 28px rgba(5,24,61,.28);
    cursor:pointer;
}
.maos-message-launcher-button:hover,
.maos-message-launcher-button:focus-visible {
    color:#fff;
    background:linear-gradient(145deg,#0a2b64 0%,#0f5b89 70%,#1a9eaa 100%);
}
.maos-message-launcher-button:focus-visible {
    outline:3px solid #7ee4eb!important;
    outline-offset:3px!important;
}
.maos-message-launcher-button svg {
    width:25px;
    height:25px;
    display:block;
}
.maos-message-launcher-count {
    position:absolute;
    top:5px;
    left:5px;
    min-width:19px;
    height:19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 5px;
    border:2px solid #061b49;
    border-radius:999px;
    background:#c62828;
    color:#fff;
    font-size:.69rem;
    font-weight:800;
    line-height:1;
}
[data-region="right-hand-drawer"][data-maos-message-drawer-relocated="1"] {
    z-index:1750!important;
}
@media (max-width:991.98px) {
    .maos-message-launcher {
        top:auto;
        right:.75rem;
        bottom:1rem;
        transform:none;
    }
    .maos-message-launcher-button {
        width:52px;
        height:52px;
        min-width:52px;
        min-height:52px;
        border-right:1px solid rgba(255,255,255,.3);
        border-radius:50%;
    }
}
@media print {
    .maos-message-launcher {display:none!important;}
}


/* MAOS v0.9.54 configurable shell-icon alignment. */
.maos-canonical-header-launcher-icon,
.maos-canonical-header-search-icon,
.maos-canonical-header-control-icon,
.maos-canonical-header-utility-icon,
.maos-message-launcher-icon {
    display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;line-height:1;
}
.maos-canonical-header-utility-icon.maos-icon-image,
.maos-canonical-header-control-icon.maos-icon-image,
.maos-canonical-header-search-icon.maos-icon-image,
.maos-canonical-header-launcher-icon.maos-icon-image,
.maos-message-launcher-icon.maos-icon-image {width:1.15rem;height:1.15rem;object-fit:contain;}
.maos-message-launcher-icon-host {display:inline-flex;align-items:center;justify-content:center;}

.maos-icon-svg svg {display:block;width:100%;height:100%;}


/* MAOS v0.9.55 semantic dark-mode stabilization.
   This final layer intentionally targets Moodle component families and the two
   runtime pages evidenced during acceptance. It replaces mixed white islands
   and undifferentiated near-black fields with a controlled elevation system. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] {
    --maos-bg:#081522;
    --maos-workspace:#081522;
    --maos-surface:#0e2032;
    --maos-panel:#0e2032;
    --maos-surface-raised:#142b42;
    --maos-panel-raised:#142b42;
    --maos-surface-muted:#1a3651;
    --maos-surface-interactive:#1a3651;
    --maos-surface-1:#081522;
    --maos-surface-2:#0e2032;
    --maos-surface-3:#142b42;
    --maos-surface-4:#1a3651;
    --maos-text:#e7f0f7;
    --maos-text-primary:#e7f0f7;
    --maos-heading:#f8fbfe;
    --maos-text-muted:#bfd0de;
    --maos-text-secondary:#bfd0de;
    --maos-border:#38566f;
    --maos-border-subtle:#304a61;
    --maos-divider:#294257;
    --maos-primary:#7ddbf3;
    --maos-primary-strong:#a9e8f7;
    --maos-accent:#72dbe4;
    --maos-focus-ring:0 0 0 3px rgba(114,219,228,.62);
    --maos-shadow:0 10px 28px rgba(0,0,0,.24);
    --maos-shadow-raised:0 18px 42px rgba(0,0,0,.34);
}

/* Moodle administration workspace: dark at every wrapper, raised at content. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    #wrapper,#page-wrapper,#page,#page.drawers,#topofscroll,.our-dashbord,
    .dashboard_main_content,.main-inner,#page-content,#region-main-box,
    .maos-auth-nav-content-host
) {
    background-color:var(--maos-workspace)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    #region-main,.region-main,[role="main"]
) {
    background-color:var(--maos-panel)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin :is(
    #page-header,.header-maxwidth,.page-context-header,.breadcrumb-container,
    .secondary-navigation,.tertiary-navigation,.moremenu,.nav-tabs
) {
    background-color:var(--maos-panel-raised)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body.path-admin #region-main {
    border:1px solid var(--maos-border-subtle)!important;
    border-radius:12px!important;
    box-shadow:var(--maos-shadow)!important;
}

/* Administration search/settings hierarchy. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-admin-search :is(
    .adminsearchform,.admin-search-results,.admin_settingspage,.settingsform,
    .adminsettings,.category-listing,.admin-category
) {
    background-color:var(--maos-panel)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-admin-search :is(
    .admin-search-results .row,.admin-search-results > div,.admin-category,
    .category-listing > div,.settingsform .form-item,.adminsettings .form-item
) {
    background-color:transparent!important;
    border-color:var(--maos-divider)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-admin-search :is(
    .admin-search-results h2,.admin-search-results h3,.admin-search-results h4,
    .settingname,label,legend,.form-label,.col-form-label
) {color:var(--maos-heading)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-admin-search :is(
    .admin-search-result-description,.form-description,.form-text,.description
) {color:var(--maos-text-muted)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-admin-search hr {
    border-color:var(--maos-divider)!important;
    opacity:1!important;
}

/* Moodle notification page: list/detail hierarchy instead of one black field. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications :is(
    #wrapper,#page-wrapper,#page,#topofscroll,.our-dashbord,.dashboard_main_content,
    .main-inner,#page-content,#region-main-box,.maos-auth-nav-content-host
) {
    background-color:var(--maos-workspace)!important;
    background-image:none!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications #region-main {
    background-color:transparent!important;
    border:0!important;
    box-shadow:none!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area {
    overflow:hidden;
    background:var(--maos-panel)!important;
    border:1px solid var(--maos-border-subtle)!important;
    border-radius:12px!important;
    box-shadow:var(--maos-shadow)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .control-area {
    background:var(--maos-panel-raised)!important;
    border-right-color:var(--maos-border-subtle)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .content-area {
    background:var(--maos-panel)!important;
    color:var(--maos-text)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area :is(
    .content-area > .header,.content-area > .footer,.content-area .toggle-mode
) {
    background:var(--maos-panel-raised)!important;
    border-color:var(--maos-border-subtle)!important;
    color:var(--maos-heading)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .content-item-container.notification {
    background:var(--maos-panel-raised)!important;
    color:var(--maos-text)!important;
    border-bottom:1px solid var(--maos-divider)!important;
    box-shadow:none!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .content-item-container.notification:hover,
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .content-item-container.notification:focus-within {
    background:var(--maos-surface-muted)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .content-item-container.notification.unread {
    background:#173854!important;
    border-left:4px solid var(--maos-accent)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area :is(
    .notification-message,.subject-container,.content-item-body,.content-area > .content
) {color:var(--maos-text)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area :is(
    .timestamp,.empty-text
) {color:var(--maos-text-muted)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area :is(
    .context-link,.view-more,.btn-link
) {color:var(--maos-primary)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area pre {
    background:var(--maos-workspace)!important;
    color:var(--maos-text)!important;
    border:1px solid var(--maos-border-subtle)!important;
}
@media (max-width:979px) {
    html[data-maos-core-appearance="1"][data-maos-theme="dark"] body#page-message-output-popup-notifications .notification-area .control-area {
        border-right:0!important;
    }
}

/* Drawers, message application, menus and dialogs use the same semantic stack. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .drawer,.drawercontent,.message-app,.message-app .header-container,
    .message-app .body-container,.popover,.popover-body,.dropdown-menu,
    .modal-content,.modal-body,.modal-header,.modal-footer,.toast
) {
    background-color:var(--maos-panel)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .message-app .header-container,.modal-header,.modal-footer,.popover-header,
    .dropdown-header
) {background-color:var(--maos-panel-raised)!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .message-app .list-group-item,.message-app [data-region="contact"],
    .message-app [data-region="conversation"],.dropdown-item,.list-group-item
) {
    background-color:transparent!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-divider)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .message-app .list-group-item:hover,.message-app .list-group-item:focus-within,
    .dropdown-item:hover,.dropdown-item:focus-visible,.list-group-item-action:hover,
    .list-group-item-action:focus-visible
) {background-color:var(--maos-surface-muted)!important;color:var(--maos-heading)!important;}

/* Shared Moodle semantic states. */
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .alert-light,.well,.jumbotron,.bg-white,.bg-light,.white-bg
) {
    background-color:var(--maos-panel)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .badge-light,.badge-secondary,.text-bg-light
) {
    background-color:var(--maos-surface-muted)!important;
    color:var(--maos-heading)!important;
    border:1px solid var(--maos-border-subtle)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
    select,textarea,.form-control,.form-select,.custom-select,.input-group-text
) {
    background-color:var(--maos-panel-raised)!important;
    color:var(--maos-text)!important;
    border-color:var(--maos-border)!important;
}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
    textarea,.form-control
)::placeholder {color:#aebfcd!important;opacity:1!important;}
html[data-maos-core-appearance="1"][data-maos-theme="dark"] body :is(
    .table,.generaltable
) {
    --bs-table-bg:var(--maos-panel);
    --bs-table-color:var(--maos-text);
    --bs-table-border-color:var(--maos-divider);
}

/* MAOS v0.9.57 design-system and configurable utility foundation. */
:root {
    --maos-space-0: 0;
    --maos-space-1: .25rem;
    --maos-space-2: .5rem;
    --maos-space-3: .75rem;
    --maos-space-4: 1rem;
    --maos-space-5: 1.25rem;
    --maos-space-6: 1.5rem;
    --maos-space-8: 2rem;
    --maos-space-10: 2.5rem;
    --maos-space-12: 3rem;
    --maos-radius-control: 10px;
    --maos-radius-panel: 14px;
    --maos-radius-pill: 999px;
    --maos-control-min-height: 44px;
    --maos-content-measure: 72ch;
    --maos-status-success: #176a45;
    --maos-status-success-surface: #ddf4e7;
    --maos-status-warning: #765300;
    --maos-status-warning-surface: #fff2c7;
    --maos-status-danger: #8d252a;
    --maos-status-danger-surface: #fbe1e3;
    --maos-status-info: #075a69;
    --maos-status-info-surface: #dff3f6;
}
.local-mosaicplatform-form-layout {
    display:grid;
    gap:var(--maos-space-5);
    max-width:var(--maos-content-measure);
}
.local-mosaicplatform-form-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:var(--maos-space-4);
}
.local-mosaicplatform-form-field {
    display:grid;
    gap:var(--maos-space-2);
    min-width:0;
}
.local-mosaicplatform-form-field > label,
.local-mosaicplatform-form-label {
    color:var(--maos-text-primary,#10213a);
    font-family:var(--maos-font-interface,system-ui,sans-serif);
    font-size:var(--maos-font-size-small,.875rem);
    font-weight:750;
    line-height:var(--maos-line-height-compact,1.4);
}
.local-mosaicplatform-form-help,
.local-mosaicplatform-form-meta {
    color:var(--maos-text-secondary,#60738a);
    font-size:var(--maos-font-size-small,.875rem);
    line-height:var(--maos-line-height-compact,1.4);
}
.local-mosaicplatform-form-error {
    color:var(--maos-status-danger,#8d252a);
    font-weight:700;
}
.local-mosaicplatform-form-actions {
    display:flex;
    flex-wrap:wrap;
    gap:var(--maos-space-3);
    align-items:center;
    padding-top:var(--maos-space-2);
}
.local-mosaicplatform-dashboard-grid {
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:var(--maos-space-4);
}
.local-mosaicplatform-dashboard-grid > * {grid-column:span 12;min-width:0;}
@media (min-width:768px) {
    .local-mosaicplatform-dashboard-grid > .maos-span-4 {grid-column:span 4;}
    .local-mosaicplatform-dashboard-grid > .maos-span-6 {grid-column:span 6;}
    .local-mosaicplatform-dashboard-grid > .maos-span-8 {grid-column:span 8;}
}
.maos-canonical-header-utility-fallback-link {position:relative;}
.maos-notification-count {
    position:absolute;
    top:3px;
    right:3px;
    min-width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    border:2px solid #061b49;
    border-radius:var(--maos-radius-pill,999px);
    background:#c62828;
    color:#fff;
    font-size:.66rem;
    font-weight:800;
    line-height:1;
}
html[data-maos-theme="dark"] {
    --maos-status-success:#8fe0b6;
    --maos-status-success-surface:#123c2d;
    --maos-status-warning:#ffe39a;
    --maos-status-warning-surface:#49390f;
    --maos-status-danger:#ffb7bb;
    --maos-status-danger-surface:#4d2328;
    --maos-status-info:#9de6ef;
    --maos-status-info-surface:#123d46;
}

/* MAOS v0.9.59 persistent canonical-header correction.
   Fixed positioning is used rather than CSS sticky because Moodle/Edma page
   wrappers may create intermediate scrolling containers that end sticky
   containment before the document ends. The rendered spacer preserves the
   original document flow and prevents page content from moving underneath the
   header. */
html.maos-shell-enrolled .maos-canonical-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 1300 !important;
}
html.maos-shell-enrolled .maos-canonical-header-spacer {
    display: block !important;
    height: var(--maos-canonical-header-height, 112px) !important;
    min-height: var(--maos-canonical-header-height, 112px) !important;
}
@media (max-width: 991.98px) {
    html.maos-shell-enrolled .maos-canonical-header-spacer {
        height: var(--maos-canonical-header-height, 96px) !important;
        min-height: var(--maos-canonical-header-height, 96px) !important;
    }
}

/* MAOS v0.9.60 performance and Edma canvas convergence.
   Edma reserves 280px inside .dashboard_main_content for its own sidebar.
   MAOS already reserves the canonical rail outside that element, so retaining
   both offsets creates the large empty band seen on administration pages. */
html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .dashboard_main_content.maos-auth-nav-content-host {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .dashboard_main_content.maos-auth-nav-content-host > .container-fluid {
    width: 100% !important;
    max-width: none !important;
    padding-inline: clamp(1rem, 2vw, 2rem) !important;
}
html.maos-auth-rail-enrolled body.path-admin.maos-auth-navigation-enabled .dashboard_main_content.maos-auth-nav-content-host :is(
    .main_content_container,
    #page-content,
    #region-main-box,
    #region-main
) {
    max-width: none !important;
}
@media (max-width: 767.98px) {
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled .dashboard_main_content.maos-auth-nav-content-host > .container-fluid {
        padding-inline: 1rem !important;
    }
}


/* MAOS v0.9.62 deterministic administrative canvas and header utilities. */
.maos-canonical-header-utilities {
    column-gap: .5rem !important;
}
.maos-canonical-header-utilities > * {
    margin-inline: 0 !important;
}
.maos-canonical-header-utilities > :is(
    [data-maos-header-notification-host],
    [data-maos-header-message-host],
    .maos-canonical-header-settings,
    .maos-canonical-header-account
) {
    flex: 0 0 auto;
}
.maos-canonical-header-utilities [data-maos-header-plugin-host] {
    display: none !important;
}

/* MAOS owns the application canvas on manager and Site Administration routes.
   Moodle Course Pages retain their native course-block regions. */
html.maos-route-manager-application body :is(
    .add_block_button,
    .block-add,
    [data-region*="blocks-column"],
    .edma-sidebar-region,
    #block-region-side-pre,
    aside.block-region
),
html.maos-route-core-admin body :is(
    .add_block_button,
    .block-add,
    [data-region*="blocks-column"],
    .edma-sidebar-region,
    #block-region-side-pre,
    aside.block-region
) {
    display: none !important;
}
html.maos-route-manager-application body #region-main-box > .row > .col-lg-4,
html.maos-route-core-admin body #region-main-box > .row > .col-lg-4 {
    display: none !important;
}
html.maos-route-manager-application body #region-main-box > .row > :is(.col-lg-8,.col-md-8),
html.maos-route-core-admin body #region-main-box > .row > :is(.col-lg-8,.col-md-8) {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}
html.maos-route-manager-application body #region-main,
html.maos-route-manager-application body .edma-main,
html.maos-route-core-admin body #region-main,
html.maos-route-core-admin body .edma-main {
    width: 100% !important;
    max-width: none !important;
}

/* MAOS v0.9.63 authenticated footer canvas and resilient account identity.
   The canonical footer is mounted directly under <body> on authenticated
   routes so Edma and manager full-canvas wrappers cannot clip or translate it.
   The rail offset is applied exactly once by MAOS. */
.maos-universal-footer,
.maos-universal-footer .maos-footer-inner {
    box-sizing: border-box;
}
html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled > .maos-universal-footer.maos-universal-footer-authenticated-canvas {
    display: block !important;
    clear: both;
    width: calc(100% - var(--maos-auth-nav-width, 264px)) !important;
    max-width: none !important;
    margin: 3rem 0 0 var(--maos-auth-nav-width, 264px) !important;
    transform: none !important;
    inset-inline: auto !important;
}
html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled > .maos-universal-footer.maos-universal-footer-authenticated-canvas > .maos-footer-inner {
    width: 100% !important;
    max-width: 1480px;
    margin-inline: auto !important;
    padding-inline: max(1.25rem, var(--maos-canvas-gutter, clamp(1rem, 3vw, 3rem))) !important;
}
@media (max-width: 991.98px) {
    html.maos-auth-rail-enrolled body.maos-auth-navigation-enabled > .maos-universal-footer.maos-universal-footer-authenticated-canvas {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}
.maos-canonical-header-avatar-stack {
    position: relative;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 50%;
}
.maos-canonical-header-avatar-stack > * {
    grid-area: 1 / 1;
}
.maos-canonical-header-avatar-fallback {
    z-index: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0d3b66, #309ea9);
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .02em;
}
.maos-canonical-header-avatar-stack .maos-canonical-header-avatar,
.maos-canonical-header-avatar-stack img {
    position: relative;
    z-index: 1;
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    background: transparent;
}
.maos-canonical-header-avatar-stack img[hidden],
.maos-canonical-header-avatar-stack.is-fallback img {
    display: none !important;
}



/* MAOS v0.9.64 notification overlay ownership.
   Native Moodle notifications and registered module notification panels are
   mounted in one body-level root. Geometry derives from the active header,
   responsive breakpoint and MAOS navigation state; modules never hardcode the
   rail width. */
.maos-overlay-root {
    position: fixed;
    inset: 0;
    z-index: 1400;
    pointer-events: none;
    --maos-overlay-top: 112px;
    --maos-overlay-canvas-left: 0px;
}
.maos-overlay-panels {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.maos-overlay-backdrop {
    position: fixed;
    z-index: 0;
    top: var(--maos-overlay-top, 112px);
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(2, 12, 31, .56);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .18s ease, visibility .18s ease;
}
.maos-overlay-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.maos-overlay-backdrop[hidden] { display: none !important; }
body.maos-notification-overlay-open {
    overflow: hidden !important;
    overscroll-behavior: contain;
}
.maos-notification-overlay-panel {
    z-index: 1 !important;
    box-sizing: border-box;
    pointer-events: none;
    overflow-wrap: anywhere;
}
.maos-notification-overlay-panel.maos-notification-overlay-open {
    pointer-events: auto;
}
.maos-notification-overlay-module {
    position: fixed !important;
    top: calc(var(--maos-overlay-top, 112px) + 1rem) !important;
    right: auto !important;
    bottom: 1rem !important;
    left: calc(var(--maos-overlay-canvas-left, 0px) + 1rem) !important;
    width: min(390px, calc(100vw - var(--maos-overlay-canvas-left, 0px) - 2rem)) !important;
    height: auto !important;
    max-width: calc(100vw - var(--maos-overlay-canvas-left, 0px) - 2rem) !important;
    max-height: calc(100dvh - var(--maos-overlay-top, 112px) - 2rem) !important;
    margin: 0 !important;
    opacity: 0;
    visibility: hidden;
    transform: translateX(-1rem) !important;
    transition: transform .2s ease, opacity .18s ease, visibility .18s ease !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}
.maos-notification-overlay-module.is-open,
.maos-notification-overlay-module.maos-notification-overlay-open {
    opacity: 1;
    visibility: visible;
    transform: translateX(0) !important;
}
.maos-notification-overlay-native {
    position: fixed !important;
    top: calc(var(--maos-overlay-top, 112px) + .75rem) !important;
    right: 1rem !important;
    bottom: auto !important;
    left: auto !important;
    width: min(420px, calc(100vw - var(--maos-overlay-canvas-left, 0px) - 2rem)) !important;
    max-width: calc(100vw - var(--maos-overlay-canvas-left, 0px) - 2rem) !important;
    margin: 0 !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-.5rem) !important;
    transition: transform .18s ease, opacity .18s ease, visibility .18s ease !important;
}
.maos-notification-overlay-native.maos-notification-overlay-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) !important;
}
.maos-notification-overlay-native > .maos-notification-native-toggle {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.maos-notification-overlay-native > [data-region="popover-region-container"] {
    position: static !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: calc(100dvh - var(--maos-overlay-top, 112px) - 2rem) !important;
    margin: 0 !important;
    color: var(--maos-text-primary, #10213a);
    background: var(--maos-surface-2, #fff);
    border: 1px solid var(--maos-border-subtle, #d6e0eb);
    border-radius: 14px;
    box-shadow: 0 18px 46px rgba(5, 24, 61, .28);
    overflow: hidden;
}
.maos-notification-overlay-native.maos-notification-overlay-open > [data-region="popover-region-container"] {
    display: flex !important;
    flex-direction: column;
}
.maos-notification-overlay-native .popover-region-content-container {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.maos-notification-overlay-panel :is(h1,h2,h3,h4,h5,h6,p,a,span,strong) {
    overflow-wrap: anywhere;
}
html[data-maos-theme="dark"] .maos-notification-overlay-native > [data-region="popover-region-container"],
html[data-maos-theme="dark"] .maos-notification-overlay-module {
    color: var(--maos-text, #e9f5ff) !important;
    background: var(--maos-surface, #0d2136) !important;
    border-color: var(--maos-border, #35506b) !important;
}
html.maos-shell-enrolled body > .modal { z-index: 1500 !important; }
html.maos-shell-enrolled body > .modal-backdrop { z-index: 1490 !important; }
@media (max-width: 991.98px) {
    .maos-overlay-root {
        --maos-overlay-top: 96px;
        --maos-overlay-canvas-left: 0px;
    }
    .maos-notification-overlay-module,
    .maos-notification-overlay-native {
        top: var(--maos-overlay-top, 96px) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: none !important;
        max-height: calc(100dvh - var(--maos-overlay-top, 96px)) !important;
        border-radius: 0 !important;
        transform: translateX(1rem) !important;
    }
    .maos-notification-overlay-module.is-open,
    .maos-notification-overlay-module.maos-notification-overlay-open,
    .maos-notification-overlay-native.maos-notification-overlay-open {
        transform: translateX(0) !important;
    }
    .maos-notification-overlay-native > [data-region="popover-region-container"] {
        height: 100% !important;
        max-height: none !important;
        border-radius: 0 !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .maos-overlay-backdrop,
    .maos-notification-overlay-panel {
        transition: none !important;
    }
}

/* MAOS v0.9.65 course-scoped native edit-mode control. */
.maos-canonical-header-edit-form {
    margin: 0;
}
.maos-canonical-header-edit-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 42px;
    padding: .45rem .65rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 10px;
    background: rgba(6, 27, 73, .24);
    color: #fff;
    font: inherit;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
.maos-canonical-header-edit-toggle:hover,
.maos-canonical-header-edit-toggle:focus-visible {
    border-color: rgba(255, 255, 255, .62);
    background: rgba(6, 27, 73, .42);
    color: #fff;
}
.maos-canonical-header-edit-label {
    white-space: nowrap;
}
.maos-canonical-header-edit-track {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 34px;
    height: 20px;
    padding: 2px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    transition: background .16s ease;
}
.maos-canonical-header-edit-knob {
    display: block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .28);
    transform: translateX(0);
    transition: transform .16s ease;
}
.maos-canonical-header-edit-toggle.is-active .maos-canonical-header-edit-track {
    background: var(--maos-accent, #21a9b8);
}
.maos-canonical-header-edit-toggle.is-active .maos-canonical-header-edit-knob {
    transform: translateX(14px);
}
@media (min-width: 992px) {
    html.maos-course-edit-header-present .maos-auth-navigation [data-maos-nav-key="tool_course_editmode"] {
        display: none !important;
    }
}
@media (max-width: 991.98px) {
    .maos-canonical-header-edit {
        display: none !important;
    }
}
