:root { --kivinan-bordeaux: #8c193c; --kivinan-bordeaux-dark: #64112a; --kivinan-bordeaux-soft: #f6e9ed; --ink: #24171b; }
body { background: #faf7f8; color: var(--ink); }
.hero { background: linear-gradient(125deg, var(--kivinan-bordeaux-dark), var(--kivinan-bordeaux)); color: white; border-bottom: .35rem solid #b9891e; }
.eyebrow, .step { font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.department-label { font-size: 1.05rem; font-weight: 600; }
.brand-panel { width: min(100%, 19rem); min-height: 8.5rem; padding: 1rem; background: white; border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(37, 7, 17, .2); }
.brand-panel-small { width: 12rem; min-height: 5.25rem; padding: .65rem; }
.brand-logo { display: block; width: 100%; height: auto; }
.step { color: var(--kivinan-bordeaux); }
.card { border: 0; border-radius: 1rem; }
.teacher-button { text-align: left; border-radius: .75rem !important; margin-bottom: .5rem; border: 1px solid #dce3ea; }
.teacher-button.active { background: var(--kivinan-bordeaux); border-color: var(--kivinan-bordeaux); }
.teacher-department { display: block; font-size: .88rem; opacity: .8; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: .6rem; }
.slot-button { border-radius: 2rem; }
.slot-button.active { background: var(--kivinan-bordeaux); border-color: var(--kivinan-bordeaux); color: white; }
.btn-primary { background: var(--kivinan-bordeaux); border-color: var(--kivinan-bordeaux); }
.btn-primary:hover, .btn-primary:focus-visible { background: var(--kivinan-bordeaux-dark); border-color: var(--kivinan-bordeaux-dark); }
.btn-outline-primary { color: var(--kivinan-bordeaux); border-color: var(--kivinan-bordeaux); }
.btn-outline-primary:hover, .btn-outline-primary:focus-visible { background: var(--kivinan-bordeaux); border-color: var(--kivinan-bordeaux); }
.form-control:focus { border-color: var(--kivinan-bordeaux); box-shadow: 0 0 0 .25rem rgba(140, 25, 60, .2); }
.admin-filter { max-width: 430px; }
@media (max-width: 575.98px) { .hero { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } .brand-panel { width: 100%; min-height: 0; } }
@media print { .hero, #login-panel, .admin-actions, #booking-filter, #admin-panel > .row, .cancel-booking { display: none !important; } body { background: white; } #admin-panel { display: block !important; } .card { box-shadow: none !important; } }
.site-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  background: #fff;
}

.site-footer a {
  color: inherit;
}

.footer-links {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.legal-text {
  max-width: 54rem;
}
.hero-home-link {
  color: inherit;
  text-decoration: none;
}

.hero-home-link:hover,
.hero-home-link:focus-visible {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.12em;
}

.brand-panel:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}

.intro-copy {
  max-width: 58rem;
  margin-bottom: 1.5rem;
}
