/* Saranshi International Preschool - palette sampled from the logo */
:root {
  --brand-purple: #5d0ea2;
  --brand-purple-dark: #3d0870;
  --brand-magenta: #a92093;
  --brand-plum: #531e5b;
  --brand-coral: #fe4b53;
  --brand-orange: #ff9510;
  --brand-yellow: #ffcb04;

  --bs-primary: #5d0ea2;
  --bs-primary-rgb: 93, 14, 162;
  --bs-link-color: #5d0ea2;
  --bs-link-color-rgb: 93, 14, 162;
  --bs-link-hover-color: #a92093;
  --bs-link-hover-color-rgb: 169, 32, 147;
  --bs-body-bg: #f6f3fa;
}
body { background: var(--bs-body-bg); }
/* Lets the main column shrink to the screen so wide tables scroll inside it. */
.min-vw-0 { min-width: 0; }

.btn-primary {
  --bs-btn-bg: var(--brand-purple); --bs-btn-border-color: var(--brand-purple);
  --bs-btn-hover-bg: var(--brand-plum); --bs-btn-hover-border-color: var(--brand-plum);
  --bs-btn-active-bg: var(--brand-plum); --bs-btn-active-border-color: var(--brand-plum);
  --bs-btn-disabled-bg: var(--brand-purple); --bs-btn-disabled-border-color: var(--brand-purple);
}
.btn-outline-primary {
  --bs-btn-color: var(--brand-purple); --bs-btn-border-color: var(--brand-purple);
  --bs-btn-hover-bg: var(--brand-purple); --bs-btn-hover-border-color: var(--brand-purple);
  --bs-btn-active-bg: var(--brand-purple); --bs-btn-active-border-color: var(--brand-purple);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--brand-magenta); box-shadow: 0 0 0 .2rem rgba(169, 32, 147, .18);
}
.form-check-input:checked { background-color: var(--brand-purple); border-color: var(--brand-purple); }
.page-link { color: var(--brand-purple); }
.page-item.active .page-link { background: var(--brand-purple); border-color: var(--brand-purple); }
.progress-bar.bg-success { background-color: var(--brand-purple) !important; }
.table > thead > tr > th { color: var(--brand-plum); font-weight: 600; white-space: nowrap; }
.card { border: 0; border-radius: .75rem; }
.card-header { border-radius: .75rem .75rem 0 0 !important; color: var(--brand-plum); }
h3, h4 { color: var(--brand-plum); }

/* Sidebar */
.sidebar {
  width: 240px; min-height: 100vh; flex-shrink: 0;
  background: linear-gradient(180deg, var(--brand-purple-dark) 0%, var(--brand-plum) 100%);
}
.sidebar .logo-panel { background: #fff; border-radius: .75rem; padding: .6rem .7rem; margin-bottom: 1rem; }
.sidebar .logo-panel img { width: 100%; height: auto; display: block; }
.sidebar .nav-link { color: #e4d6f3; border-radius: .5rem; padding: .5rem .8rem; border-left: 3px solid transparent; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.sidebar .nav-link.active { background: rgba(255,255,255,.16); color: #fff; border-left-color: var(--brand-yellow); }
.sidebar .nav-link i { color: var(--brand-yellow); }
.sidebar .section { color: #b393d4; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; margin: 1rem .8rem .3rem; }

/* Top bar with the logo's five-colour ribbon */
.topbar { background: #fff; border-bottom: 4px solid transparent;
  border-image: linear-gradient(90deg, var(--brand-plum), var(--brand-magenta), var(--brand-coral), var(--brand-orange), var(--brand-yellow)) 1; }

/* Dashboard stat cards */
.stat-card { border-top: 4px solid var(--accent, var(--brand-purple)); }
.stat-card .value { font-size: 1.8rem; font-weight: 700; color: var(--brand-plum); }
.stat-card .label { color: #6c757d; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
.accent-purple { --accent: var(--brand-purple); }
.accent-orange { --accent: var(--brand-orange); }
.accent-coral  { --accent: var(--brand-coral); }
.accent-magenta{ --accent: var(--brand-magenta); }

/* Login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--brand-purple-dark), var(--brand-plum) 55%, var(--brand-magenta)); padding: 1rem; }
.login-card { max-width: 420px; width: 100%; border-radius: 1rem; overflow: hidden; box-shadow: 0 1rem 2.5rem rgba(0,0,0,.3); background: #fff; }
.login-card .ribbon { height: 6px; background: linear-gradient(90deg, var(--brand-plum), var(--brand-magenta), var(--brand-coral), var(--brand-orange), var(--brand-yellow)); }

@media print { .sidebar, .no-print, .topbar { display: none !important; } main { padding: 0 !important; } body { background: #fff; } }

/* Phones: the sidebar slides in from the menu button; wide tables scroll sideways instead of squashing. */
@media (max-width: 767.98px) {
  .sidebar.offcanvas-md { min-height: 0; width: 260px; overflow-y: auto; }
  main table.table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .stat-card .value { font-size: 1.4rem; }
}
