/* Global Theme (Red) */
:root {
  --primary: #d32f2f;
  --primary-600: #b71c1c;
  --primary-100: #fdecea;

  --success: #22c55e;
  --warning: #f59e0b;
  --danger: #ef4444;
  --info: #0ea5e9;

  --text: #0f172a;
  --text-muted: #64748b;

  --bg: #f6f8fb;
  --surface: #ffffff;
  --surface-muted: #f3f6fb;

  --border: #e2e8f0;
  --border-strong: #cbd5e1;

  --input-bg: #eef3fa;
  --placeholder: #94a3b8;

  --overlay: rgba(100, 116, 139, 0.35);

  --shadow-sm: 0 1px 2px rgba(2, 6, 23, 0.06);
  --shadow-md: 0 4px 20px rgba(2, 6, 23, 0.08);
  --shadow-lg: 0 8px 40px rgba(2, 6, 23, 0.12);
  --shadow-elev-1: 0px 4px 30px rgba(211, 47, 47, 0.18);
  --shadow-elev-2: 0px 4px 70px rgba(2, 6, 23, 0.12);
  --shadow-danger: 0px 4px 30px rgba(239, 68, 68, 0.45);
}

html { position: relative; min-height: 100%; }
body {
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  font-size: 18px;
  overflow-x: hidden !important;
  background-color: var(--bg);
  /*background: url('./assets/img/timetable-bg.svg') center top no-repeat;*/
  background-size: contain !important;
  background-position-y: 50px;
  color: var(--text);
}

/* Utilities */
.text-primary { color: var(--primary) !important; }
.bg-primary { background: var(--primary) !important; }
.border-primary { border-color: var(--primary) !important; }
.text-muted { color: var(--text-muted) !important; }
.border-base { border-color: var(--border) !important; }
.shadow-elev-1 { box-shadow: var(--shadow-elev-1) !important; }
.shadow-elev-2 { box-shadow: var(--shadow-elev-2) !important; }

/* Shared components styling hooks */
.separator { background: var(--border); }
.search-background { background: var(--overlay); }
.search-box { background: var(--surface); }
.search-box.active { box-shadow: var(--shadow-elev-2); }
.search-input { background: var(--input-bg); color: var(--text); }
.search-input::placeholder { color: var(--placeholder); }
.result-item { background: var(--surface); border: 1px solid var(--border); color: var(--text); }
.result-item:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.result-item.active { background: var(--success); border-color: var(--success); color: #fff; }

/* Loader */
.loader { border: 4px solid var(--border); }
.loader:before { border-top: 4px solid var(--primary); }

/* Footer/link accents */
.foot-link { color: var(--primary); }
.go-home-site { color: var(--text-muted); }

/* Notifications */
.notification { background: var(--danger); box-shadow: var(--shadow-danger); color: #fff; }
