:root {
  --navy: #8f1523;
  --navy-deep: #650d18;
  --blue: #c51f32;
  --sky: #fff1f3;
  --ink: #35141a;
  --muted: #876c72;
  --line: #f1dfe2;
  --bg: #fff8f8;
  --green: #1c9a6a;
  --orange: #dc8a18;
  --red: #c51f32;
  --purple: #8e4d9f;
  --shadow: 0 5px 18px rgba(117, 16, 29, .07);
}

body { background: var(--bg); color: var(--ink); }
.sidebar { background: linear-gradient(180deg, #760f1d 0%, #560a13 100%); }
.brand-mark { color: var(--navy); }
.brand-subtitle { color: #f0aeb7; }
.sidebar-label { color: #d98691; }
.side-nav::-webkit-scrollbar-thumb { background: #9f3645; }
.nav-link { color: #f0c3c9; }
.nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.nav-link.active { background: #fff; color: var(--navy); box-shadow: 0 5px 12px rgba(0,0,0,.14); }
.nav-child { color: #d99da6; border-left-color: #9c3442; }
.nav-child:before { background: #fff; }
.nav-child:hover, .nav-child.active { color: #fff; }
.help-card { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); }
.help-icon { background: #a52b3d; color: #fff0f2; }
.help-text { color: #edbdc4; }
.help-card a { color: #fff; }
.sidebar-version { color: #d98691; }
.sidebar-version span { color: #f2b3bb; }
.topbar { border-bottom-color: var(--line); }
.context-kicker, .card-head .sub, .subtle { color: #a47d84 !important; }
.context-value, .page-heading h1, .card-head h3, .stat-number, .login-form h2 { color: var(--ink); }
.btn-primary { background: var(--blue); border-color: var(--blue); box-shadow: 0 4px 10px rgba(197,31,50,.18); }
.btn-primary:hover { background: #a81729; border-color: #a81729; }
.btn-light { border-color: var(--line); color: #70434b; }
.content-card, .stat-card { border-color: var(--line); box-shadow: var(--shadow); }
.table thead th { background: #fffafb; color: #9b6f77; border-bottom-color: var(--line); }
.table tbody td { color: #704e56; border-color: #f5e6e8; }
.table tbody tr:hover { background: #fff8f9; }
.table .name-cell, .text-navy { color: var(--ink) !important; }
.table-action, .quick-link { color: var(--blue); }
.table-action:hover, .quick-link:hover { color: #8f1523; }
.icon-blue { background: #ffe8eb; color: var(--blue); }
.icon-green { background: #e5f8ef; color: var(--green); }
.icon-orange { background: #fff2dc; color: var(--orange); }
.icon-purple { background: #f5eafa; color: var(--purple); }
.app-tile:hover { border-color: #e7aeb7; box-shadow: 0 6px 15px rgba(143,21,35,.09); }
.app-meta strong, .report-card i { color: var(--blue); }
.profile-hero { background: linear-gradient(110deg, #780f1d, #c51f32); }
.hero-avatar { background: #fff0f2; color: var(--blue); }
.callout { background: #fff1f3; color: #854852; border-left-color: var(--blue); }
.progress-bar.bg-primary { background-color: var(--blue) !important; }
.timeline-item { border-left-color: #f0d6da; }
.timeline-dot { background: var(--blue); border-color: #ffe0e4; }
.login-page { background: #fff8f8; }
.login-visual { background: linear-gradient(145deg, #650d18 0%, #c51f32 100%); }
.login-note { background: #fff1f3; border-color: #f1cbd0; color: #8c4e58; }
.form-check-input:checked { background-color: var(--blue); border-color: var(--blue); }
.text-primary { color: var(--blue) !important; }
.bg-primary { background-color: var(--blue) !important; }
.btn-outline-primary { color: var(--blue); border-color: var(--blue); }
.btn-outline-primary:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
.avatar { background: #ffe6ea; color: var(--blue); }
.row-expand { color: var(--blue); border-color: #efcbd0; background: #fff7f8; }
.row-expand:hover { background: #ffe8eb; }
.form-control:focus, .form-select:focus { border-color: #db8993; box-shadow: 0 0 0 .2rem rgba(197,31,50,.12); }
.clear-cache-button:hover { color: var(--blue); }
.student-document-icon { color: var(--blue); background: #fff0f2; }
.document-meta { color: #a47d84; font-size: 10px; }
.document-link { color: var(--ink); text-decoration: none; }
.document-link:hover { color: var(--blue); }
.document-actions { white-space: nowrap; }

@media print {
  :root { --ink: #000; }
}
