:root {
  /* Backgrounds */
  --bg-sidebar: #3D3830;
  --bg-primary: #F7F4EF;
  --bg-card: #FFFFFF;
  --bg-white: #FFFFFF;
  --bg-sidebar-hover: #4A433A;
  --bg-hover: #F1ECE4;

  /* Text */
  --text-primary: #2C2825;
  --text-secondary: #6B635B;
  --text-light: #9A9184;
  --text-on-dark: #C4BBAF;
  --text-on-dark-hover: #F0EBE3;
  --text-white: #F0EBE3;

  /* Accent — Soft Sage */
  --accent-primary: #7A9E7E;
  --accent-light: #93B496;
  --accent-subtle: #EDF3ED;

  /* Semantic */
  --success: #6B8E5A;
  --success-subtle: #F0F4EB;
  --warning: #B8943D;
  --warning-subtle: #FDF8EC;
  --danger: #B05555;
  --danger-subtle: #FBF0F0;

  /* Borders & Shadows */
  --border: #E5DFD6;
  --border-hover: #CEC5B5;
  --shadow-sm: 0 1px 3px rgba(44,40,37,0.07);
  --shadow-md: 0 4px 14px rgba(44,40,37,0.09);
  --shadow-lg: 0 8px 30px rgba(44,40,37,0.11);

  /* Compatibility aliases */
  --primary: #7A9E7E;
  --primary-light: #93B496;
  --primary-dark: #5F7E63;
  --secondary: #6B8E5A;
  --accent: #B8943D;
  --danger-color: #B05555;
  --info: #7A9E7E;
  --accent-bg: #FDF8EC;
  --accent-text: #8A6A2A;
  --info-bg: #EDF3ED;
  --info-border: #D8E4D8;
  --info-text: #4E6B51;
  --color-primary: #7A9E7E;
  --sidebar-bg: #3D3830;
  --sidebar-bg-gradient: linear-gradient(180deg, #3D3830 0%, #322E28 100%);
  --sidebar-border: rgba(240,235,227,0.10);
  --sidebar-text: #F0EBE3;
  --sidebar-muted: #C4BBAF;
  --sidebar-hover-bg: rgba(240,235,227,0.08);
  --sidebar-active-bg: rgba(122,158,126,0.20);
  --sidebar-active-text: #F0EBE3;
  --sidebar-active-accent: #7A9E7E;
  --sidebar-section-bg: rgba(240,235,227,0.04);
}

html, body {
  background: var(--bg-primary) !important;
  color: var(--text-primary);
}

body {
  color: var(--text-primary);
}

a { color: var(--accent-primary); }
a:hover { color: var(--primary-dark); }

.sidebar,
.admin-sidebar,
.sidebar-mini,
[class*="sidebar"]:not(.sidebar-backdrop):not(.sidebar-mini-link):not(.sidebar-variant-grid):not(.sidebar-variant-card):not(.sidebar-variant-body):not(.sidebar-variant-code):not(.sidebar-mini-badge) {
  background: var(--sidebar-bg-gradient);
  color: var(--sidebar-text);
}

.sidebar::before,
.admin-sidebar::before {
  background: radial-gradient(ellipse at 50% 0%, rgba(122,158,126,0.15) 0%, transparent 70%) !important;
}

.sidebar-header,
.sidebar-brand,
.sidebar-footer,
.account-section,
.modal-header,
.topbar,
.q-nav-strip {
  border-color: var(--sidebar-border);
}

.sidebar-header,
.sidebar-brand,
.account-section,
.sidebar-footer {
  border-color: var(--sidebar-border) !important;
}

.sidebar .brand-text,
.sidebar-brand-name,
.sidebar-title,
.admin-sidebar-brand span,
.sidebar-brand-sub,
.sidebar .nav-label,
.sidebar-label,
.nav-section-header,
.user-role,
.account-details,
.account-email {
  color: var(--sidebar-muted) !important;
}

.logo,
.sidebar-logo,
.sidebar-brand-icon,
.toggle-btn,
.q-number,
.sub-q-badge,
.lang-btn.active,
.chapter-chip.active,
.q-nav-btn.active,
button[type="submit"],
button:not(.nav-link):not(.logout-btn):not(.lang-btn):not(.chapter-chip):not(.q-nav-btn):not(.verify-btn):not(.review-btn):not(.exclude-btn):not(.hint-btn):not(.sidebar-backdrop) {
  background: var(--accent-primary);
  color: #fff;
}

.sidebar-brand-icon,
.logo,
.sidebar-logo,
.toggle-btn {
  box-shadow: 0 4px 12px rgba(122,158,126,0.28) !important;
}

.nav-link,
.sidebar-link,
.admin-nav-link,
.logout-btn,
.sidebar-mini-link,
.nav-section-header {
  color: var(--text-on-dark) !important;
}

.nav-link:hover,
.sidebar-link:hover,
.admin-nav-link:hover,
.logout-btn:hover,
.sidebar-mini-link:hover {
  color: var(--text-on-dark-hover) !important;
  background: rgba(240,235,227,0.08) !important;
}

.nav-link.active,
.sidebar-link.active,
.admin-nav-link.active,
.sidebar-mini-link.active {
  color: var(--text-on-dark-hover) !important;
  background: rgba(122,158,126,0.20) !important;
  border-left: 0 !important;
  font-weight: 600;
}

.nav-link.active::before,
.admin-nav-link.active::before {
  content: none !important;
}

.nav-link-badge,
.badge,
.sidebar-mini-badge {
  background: rgba(240,235,227,0.10) !important;
  color: var(--text-on-dark) !important;
}

.nav-link.active .nav-link-badge,
.admin-nav-link.active .nav-link-badge,
.nav-link.active .badge,
.sidebar-link.active .badge {
  background: rgba(240,235,227,0.14) !important;
  color: var(--text-on-dark-hover) !important;
}

.card,
.quiz-card,
.stats-card,
.metric-card,
.diagram-item,
.question-block,
.form-group,
.papers,
.modal,
.overlay-panel,
.topbar,
.q-nav-strip,
.available-diagram,
.sidebar-variant-card {
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
  box-shadow: var(--shadow-sm) !important;
}

.question-block:hover,
.diagram-item:hover,
.available-diagram:hover,
.card:hover {
  box-shadow: var(--shadow-md) !important;
}

.overlay-panel {
  box-shadow: none !important;
}

input,
select,
textarea,
.review-reason-select,
.file-drop,
.option-html table,
.question-table td,
.question-table th,
.table-wrap th,
.table-wrap td {
  border-color: var(--border) !important;
}

input,
select,
textarea,
.review-reason-select {
  background: #fff;
  color: var(--text-primary);
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--accent-light) !important;
  box-shadow: 0 0 0 3px rgba(122,158,126,0.15);
}

.file-drop,
.placeholder,
.options,
.solution-accordion,
.lang-toggle,
.chapter-chip,
.q-nav-btn,
.hint-box,
.solution-section,
.review-reason-wrap {
  background: var(--bg-primary) !important;
}

.hint-box,
.solution-section,
.review-reason-wrap,
.answer-compare {
  border-color: var(--border) !important;
}

.verify-btn.approved,
.ok,
.success { color: var(--success) !important; }
.review-btn.reviewed { color: var(--accent-primary) !important; }
.exclude-btn.excluded,
.err,
.error { color: var(--danger) !important; }
.warn { color: var(--warning) !important; }

.success { background: var(--success-subtle) !important; }
.error { background: var(--danger-subtle) !important; }

.question-text {
  border-left-color: var(--accent-light) !important;
}

.table-wrap th,
.option-html th,
.question-table th,
.modal-header,
.topbar,
.q-nav-strip {
  background: var(--bg-primary) !important;
}
