/* =========================================================
  Events & Reminders – Main stylesheet
   ========================================================= */

/* ---------- CSS Variables ---------- */
:root {
  --brand:          #3b82f6;
  --brand-dark:     #1d4ed8;
  --bg-auth:        #f0f4f8;
  --radius:         0.5rem;
  --shadow-sm:      0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow:         0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
}

/* ---------- Global ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: #f8fafc;
  color: #1e293b;
}

/* ---------- Auth pages ---------- */
body.auth-page {
  background: var(--bg-auth);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 1.5rem;
}

.auth-wrap {
  width: 100%;
  max-width: 420px;
}

.auth-logo {
  text-align: center;
  margin-bottom: 1.5rem;
}

.auth-logo img {
  height: 56px;
  max-width: 280px;
  width: auto;
  margin-bottom: .5rem;
}

.auth-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--brand-dark);
  margin: 0;
}

.captcha-input { max-width: 120px; }

/* ---------- Navbar ---------- */
.navbar-brand {
  font-size: 1.05rem;
  letter-spacing: .01em;
}

.brand-logo {
  height: 26px;
  width: auto;
  display: block;
}

/* ---------- Calendar ---------- */
#calendar {
  background: #fff;
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
}

/* FullCalendar overrides */
.fc .fc-button-primary {
  background-color: var(--brand) !important;
  border-color:     var(--brand) !important;
}
.fc .fc-button-primary:not(:disabled):active,
.fc .fc-button-primary:not(:disabled).fc-button-active {
  background-color: var(--brand-dark) !important;
  border-color:     var(--brand-dark) !important;
}
.fc .fc-daygrid-day:hover {
  background: #eff6ff;
  cursor: pointer;
}
.fc-event {
  cursor: pointer;
  font-size: .82rem;
  border-radius: 4px !important;
  padding: 1px 4px !important;
}
.fc-event:hover { opacity: .85; }

/* ---------- Modal color preview ---------- */
#eventColor option { font-weight: 600; }

/* ---------- Utility ---------- */
.btn-label { transition: opacity .15s; }
.loading .btn-label { opacity: 0; }
.loading .spinner-border { display: inline-block !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
