/* Palette ripresa dal sito ufficiale del Liceo Statale "Vincenzo Linares" (liceolinares.edu.it)
   e dallo stemma dell'istituto: blu navy istituzionale, oro dello stemma, viola del testo araldico. */
:root {
  --brand-navy: #294a70;
  --brand-navy-dark: #0b3458;
  --brand-navy-darker: #082742;
  --brand-gold: #f0b90b;
  --brand-gold-dark: #c99400;
  --brand-purple: #4a3377;
  --brand-text: #333333;
  --brand-muted: #666666;
}

body {
  background-color: #f4f6f9;
  color: var(--brand-text);
  font-family: "Open Sans", sans-serif;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand, .card-header, .brand-title {
  font-family: "Merriweather Sans", sans-serif;
}

/* ---------------------------------------------------------------- Navbar */

.brand-navbar {
  background: linear-gradient(90deg, var(--brand-navy) 0%, var(--brand-navy-dark) 100%);
  box-shadow: 0 2px 6px rgba(8, 39, 66, 0.25);
}

.brand-navbar .navbar-brand {
  color: #fff;
}

.brand-title {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.brand-title small {
  font-family: "Open Sans", sans-serif;
  font-weight: 400;
  opacity: 0.85;
  font-size: 0.72rem;
}

.brand-navbar .nav-link {
  color: rgba(255, 255, 255, 0.85);
}

.brand-navbar .nav-link:hover,
.brand-navbar .nav-link.active {
  color: var(--brand-gold);
}

.role-badge {
  background-color: var(--brand-gold);
  color: var(--brand-navy-darker);
  font-weight: 700;
}

.brand-footer {
  color: var(--brand-muted);
  font-family: "Open Sans", sans-serif;
}

/* ---------------------------------------------------------------- Componenti Bootstrap ritinteggiati */

a {
  color: var(--brand-navy);
}
a:hover {
  color: var(--brand-navy-dark);
}

.btn-primary {
  --bs-btn-bg: var(--brand-navy);
  --bs-btn-border-color: var(--brand-navy);
  --bs-btn-hover-bg: var(--brand-navy-dark);
  --bs-btn-hover-border-color: var(--brand-navy-dark);
  --bs-btn-active-bg: var(--brand-navy-darker);
  --bs-btn-active-border-color: var(--brand-navy-darker);
  --bs-btn-disabled-bg: var(--brand-navy);
  --bs-btn-disabled-border-color: var(--brand-navy);
}

.btn-outline-primary {
  --bs-btn-color: var(--brand-navy);
  --bs-btn-border-color: var(--brand-navy);
  --bs-btn-hover-bg: var(--brand-navy);
  --bs-btn-hover-border-color: var(--brand-navy);
  --bs-btn-active-bg: var(--brand-navy-dark);
  --bs-btn-active-border-color: var(--brand-navy-dark);
}

.text-primary { color: var(--brand-navy) !important; }
.badge.bg-primary { background-color: var(--brand-navy) !important; }
.table-primary { --bs-table-bg: #eaf0f6; }

.form-control:focus, .form-select:focus {
  border-color: var(--brand-navy);
  box-shadow: 0 0 0 0.2rem rgba(41, 74, 112, 0.2);
}

.card-header {
  background-color: #eef2f7;
  font-weight: 600;
  color: var(--brand-navy-darker);
}

/* ---------------------------------------------------------------- Login */

.login-card {
  border-top: 4px solid var(--brand-gold);
}

.login-logo {
  width: 96px;
  height: 96px;
  object-fit: contain;
}

/* ---------------------------------------------------------------- Calendario */

.calendar-table th {
  color: var(--brand-navy-darker);
}

.calendar-table td.calendar-cell {
  min-height: 90px;
  vertical-align: top;
  padding: 4px;
  min-width: 140px;
}

.calendar-table td.calendar-cell a.btn.h-100 {
  min-height: 44px;
}

.calendar-table thead th.today-col,
.calendar-table td.today-col,
.month-table td.today-col {
  background-color: #fff8e1;
}

.booking-chip {
  background-color: #eaf0f6;
  border: 1px solid var(--brand-navy);
  border-left: 4px solid var(--brand-gold);
  border-radius: 6px;
  padding: 6px;
  font-size: 0.85rem;
  color: var(--brand-navy-darker);
}

.booking-chip-shared {
  background-color: #f3f0f7;
  border-color: var(--brand-purple);
  border-left-color: var(--brand-purple);
}

.booking-chip-classroom {
  border-left-color: #0dcaf0;
}

.booking-chip .badge.bg-info {
  font-size: 0.65rem;
  font-weight: 600;
}

.btn-xs {
  padding: 0.05rem 0.35rem;
  font-size: 0.7rem;
}

.calendar-table a.btn.h-100 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  font-size: 1.2rem;
  color: var(--brand-navy);
}

/* ---------------------------------------------------------------- Calendario mensile */

.month-table th {
  color: var(--brand-navy-darker);
}

.month-cell {
  width: 14.28%;
  height: 110px;
  vertical-align: top;
  padding: 6px;
  overflow: hidden;
}

.month-booking-chip {
  background-color: #eaf0f6;
  border-left: 3px solid var(--brand-gold);
  border-radius: 4px;
  padding: 1px 4px;
  margin-top: 2px;
  font-size: 0.72rem;
  color: var(--brand-navy-darker);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.month-booking-chip:hover {
  background-color: #dde8f2;
}

.month-booking-chip-shared {
  background-color: #f3f0f7;
  border-left-color: var(--brand-purple);
}

.month-booking-chip-classroom {
  border-left-color: #0dcaf0;
}
