/* One brand palette shared by login and the authenticated workspace. */
:root {
  --app-sidebar:#38131E;
  --app-sidebar-hover:#49203B;
  --app-primary:#6E2340;
  --app-hover:#832B4D;
  --app-secondary:#59629B;
  --app-page:#F8F7F5;
  --app-panel:#FFFFFF;
  --app-text:#18161A;
  --app-muted:#696268;
  --app-border:#E7DEE2;
  --app-success:#2E7D5B;
  --app-warning:#B7791F;
  --app-error:#C2414A;
  --app-info:#59629B;
  --app-primary-soft:#F4ECEF;
  --app-success-soft:#EAF3EF;
  --app-warning-soft:#FBF2E4;
  --app-error-soft:#FBECEF;
  --app-info-soft:#EEF0F8;

  /* Compatibility aliases shared by existing feature components. */
  --ns-navy-950:var(--app-text); --ns-navy-900:var(--app-sidebar);
  --ns-navy-800:var(--app-primary); --ns-navy-700:var(--app-hover);
  --ns-teal-700:var(--app-primary); --ns-teal-600:var(--app-hover);
  --ns-teal-100:var(--app-primary-soft); --ns-teal-50:var(--app-page);
  --ns-blue-700:var(--app-info); --ns-blue-100:var(--app-info-soft);
  --ns-green-700:var(--app-success); --ns-green-100:var(--app-success-soft);
  --ns-amber-700:var(--app-warning); --ns-amber-100:var(--app-warning-soft);
  --ns-orange-700:var(--app-warning); --ns-orange-100:var(--app-warning-soft);
  --ns-red-700:var(--app-error); --ns-red-100:var(--app-error-soft);
  --ns-gray-700:var(--app-muted); --ns-gray-600:var(--app-muted); --ns-gray-500:var(--app-muted);
  --ns-gray-300:var(--app-border); --ns-gray-200:var(--app-border); --ns-gray-100:var(--app-border);
  --ns-gray-50:var(--app-page); --ns-white:var(--app-panel); --ns-text:var(--app-text); --ns-page:var(--app-page);
  --navy:var(--app-sidebar); --navy2:var(--app-primary);
  --ink:var(--app-text); --text:var(--app-text); --muted:var(--app-muted); --secondary:var(--app-muted); --subtle:var(--app-muted);
  --teal:var(--app-primary); --teal-soft:var(--app-primary-soft);
  --accent:var(--app-primary); --accent-dark:var(--app-hover); --accent-secondary:var(--app-secondary);
  --sidebar:var(--app-sidebar); --sidebar-hover:var(--app-sidebar-hover);
  --line:var(--app-border); --line2:var(--app-border); --border:var(--app-border);
  --shell:var(--app-page); --canvas:var(--app-page); --soft:var(--app-page); --white:var(--app-panel);
  --success:var(--app-success); --green:var(--app-success); --green-soft:var(--app-success-soft);
  --warning:var(--app-warning); --amber:var(--app-warning); --amber-soft:var(--app-warning-soft);
  --danger:var(--app-error); --red:var(--app-error); --red-soft:var(--app-error-soft);
  --blue:var(--app-info); --blue-soft:var(--app-info-soft);
  background:var(--app-page);
  color:var(--app-text);
}

body:has(#platformView:not(.hidden)) :is(.workspace,.page) {background:var(--app-page)}
body:has(#platformView:not(.hidden)) :is(.topbar,.surface,.ns-panel,.modal,.dashboard-kpi,.dashboard-panel,.course-dashboard-panel) {background:var(--app-panel);border-color:var(--app-border)}
body:has(#platformView:not(.hidden)) .sidebar {background:var(--app-sidebar)}
body:has(#platformView:not(.hidden)) .sidebar :is(a,a>b,a>span,.side-utility,.nav-close) {color:#FFFFFF}
body:has(#platformView:not(.hidden)) .sidebar :is(a.active,a:hover,.side-utility:hover) {background:var(--app-sidebar-hover);color:#FFFFFF}
body:has(#platformView:not(.hidden)) .sidebar nav a.active:before {background:var(--app-secondary)}
body:has(#platformView:not(.hidden)) .sidebar .ns-wordmark-light svg {stroke:#FFFFFF}
body:has(#platformView:not(.hidden)) .sidebar-tooltip {background:var(--app-sidebar);color:#FFFFFF}

body:has(#platformView:not(.hidden)) :is(.primary-button,.ns-button-primary,.explorer-bar button) {background:var(--app-primary);border-color:var(--app-primary);color:#FFFFFF}
body:has(#platformView:not(.hidden)) :is(.primary-button,.ns-button-primary,.explorer-bar button):hover {background:var(--app-hover);border-color:var(--app-hover)}
body:has(#platformView:not(.hidden)) :is(.text-button,.ns-link,.link-button,.surface-head>button) {color:var(--app-primary)}
body:has(#platformView:not(.hidden)) :is(.text-button,.ns-link,.link-button,.surface-head>button):hover {color:var(--app-hover)}
body:has(#platformView:not(.hidden)) :is(.outline-button,.secondary-button) {background:var(--app-panel);border-color:var(--app-border);color:var(--app-primary)}
body:has(#platformView:not(.hidden)) :is(.outline-button,.secondary-button):hover {background:var(--app-primary-soft);border-color:var(--app-hover);color:var(--app-hover)}
body:has(#platformView:not(.hidden)) :is(.danger-button,.danger-link,.course-delete,.activity-delete) {color:var(--app-error)}
body:has(#platformView:not(.hidden)) :is(.global-search,.table-search,.search-field,.activity-search,.k-search,.course-toolbar>label) {border-color:var(--app-border)}
body:has(#platformView:not(.hidden)) :is(input,select,textarea) {accent-color:var(--app-primary)}
body:has(#platformView:not(.hidden)) :is(button,a,input,select,textarea):focus-visible {outline-color:var(--app-primary)}
body:has(#platformView:not(.hidden)) :is(.search-field,.table-search,.activity-search,.k-search,.ns-input,.global-search,.course-toolbar>label):focus-within {border-color:var(--app-primary);box-shadow:0 0 0 3px rgba(110,35,64,.14)}
body:has(#platformView:not(.hidden)) :is(input,select,textarea):focus {border-color:var(--app-primary);box-shadow:0 0 0 3px rgba(110,35,64,.14)}
body:has(#platformView:not(.hidden)) :is(.mini-progress i,.course-progress i,.profile-progress i) {background:var(--app-secondary)}
body:has(#platformView:not(.hidden)) .course-progress-ring {background:conic-gradient(var(--app-secondary) var(--progress),var(--app-border) 0)}
body:has(#platformView:not(.hidden)) .toast {background:var(--app-sidebar);color:#FFFFFF}
body:has(#platformView:not(.hidden)) .toast.error {background:var(--app-error)}

/* Semantic status colors stay meaningful on every role's pages. */
body:has(#platformView:not(.hidden)) :is(.status-chip,.status,.activity-status,.course-badge) {color:var(--app-muted);background:var(--app-page)}
body:has(#platformView:not(.hidden)) :is(.status-chip,.status,.activity-status,.course-badge):is(.active,.verified,.approved,.confirmed,.completed,.published,.accepted,.enrolled,.academic-complete) {color:var(--app-success);background:var(--app-success-soft)}
body:has(#platformView:not(.hidden)) :is(.status-chip,.status,.activity-status,.course-badge):is(.pending,.pending_review,.requested,.preparing,.draft,.in_progress,.academic-awaiting_predicted_grades) {color:var(--app-warning);background:var(--app-warning-soft)}
body:has(#platformView:not(.hidden)) :is(.status-chip,.status,.activity-status,.course-badge):is(.overdue,.urgent,.rejected,.cancelled,.needs_revision,.needs_correction) {color:var(--app-error);background:var(--app-error-soft)}
body:has(#platformView:not(.hidden)) :is(.status-chip,.status,.activity-status,.course-badge):is(.submitted,.ready_for_review,.scheduled,.info) {color:var(--app-info);background:var(--app-info-soft)}
@media print {
  body:has(#platformView:not(.hidden)),body:has(#platformView:not(.hidden)) :is(.workspace,.page) {background:#FFFFFF}
}
