/* ── Reset ─────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color:       #1C1A17;
  background:  #fff;
  padding:     28px;
  font-size:   10.5pt;
  line-height: 1.45;
}

/* ── Loading / error ────────────────────────────────────────────────────── */
#loading-msg {
  text-align: center;
  padding:    48px;
  font-size:  13pt;
  color:      #57534B;
}

/* ── Print header ───────────────────────────────────────────────────────── */
.print-header {
  display:         flex;
  justify-content: space-between;
  align-items:     flex-start;
  margin-bottom:   20px;
  padding-bottom:  14px;
  border-bottom:   3px solid #2F6FD0;
}

.header-brand {
  font-size:      19pt;
  font-weight:    800;
  letter-spacing: -0.02em;
}

.header-addr {
  font-size:   10pt;
  font-weight: 600;
  color:       #1C1A17;
  margin-top:  5px;
}

.header-meta {
  text-align:  right;
  font-size:   8.5pt;
  color:       #57534B;
  line-height: 1.75;
}

/* ── Two-column layout ──────────────────────────────────────────────────── */
.events-container {
  columns:      2;
  column-gap:   22px;
  column-fill:  balance;
}

/* Each month block stays in one column */
.month-group {
  break-inside:  avoid-column;
  margin-bottom: 18px;
}

.month-header {
  font-size:      7.5pt;
  font-weight:    800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color:          #57534B;
  padding-bottom: 5px;
  border-bottom:  1.5px solid #E7E2D8;
  margin-bottom:  6px;
}

/* ── Event rows ─────────────────────────────────────────────────────────── */
.event-row {
  display:       flex;
  align-items:   center;
  gap:           8px;
  padding:       5px 7px;
  border-left:   3px solid #CFC8BA; /* overridden via JS */
  margin-bottom: 3px;
  break-inside:  avoid;
}

.event-date {
  flex-shrink: 0;
  min-width:   26px;
  text-align:  center;
}

.event-day {
  display:        block;
  font-size:      6.5pt;
  font-weight:    700;
  color:          #57534B;
  text-transform: uppercase;
}

.event-daynum {
  display:     block;
  font-size:   11pt;
  font-weight: 800;
  line-height: 1.1;
}

.event-badge {
  display:       inline-flex;
  align-items:   center;
  gap:           5px;
  padding:       2px 9px;
  border-radius: 999px;
  font-size:     8.5pt;
  font-weight:   600;
  /* bg + color overridden via JS */
}

/* ── Footer ─────────────────────────────────────────────────────────────── */
.print-footer {
  margin-top:   20px;
  padding-top:  10px;
  border-top:   1px solid #E7E2D8;
  font-size:    8pt;
  color:        #8A857A;
  text-align:   center;
}

/* ── Screen-only hint button ─────────────────────────────────────────────── */
.print-hint {
  position:   fixed;
  bottom:     20px;
  right:      20px;
  background: #2F6FD0;
  color:      #fff;
  padding:    11px 20px;
  border:     none;
  border-radius: 9px;
  font-family:   inherit;
  font-size:  10pt;
  font-weight: 700;
  cursor:     pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.22);
  z-index:    9999;
  transition: background 0.12s;
}
.print-hint:hover { background: #2659A8; }

/* ── Print media query ───────────────────────────────────────────────────── */
@page { margin: 1.5cm; size: A4 portrait; }

@media print {
  body        { padding: 0; }
  *           { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .print-hint { display: none !important; }
}

.hidden { display: none !important; }
