/* Sprint 004 progressive enhancements. Keep the established public poster design intact. */
.calendar-month-title {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.3rem, 8vw, 8.5rem);
  font-weight: 900;
  line-height: .82;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.event-listing h3 {
  margin: 0 0 7px;
  font-family: var(--display);
  font-size: clamp(1.6rem, 3.1vw, 2.45rem);
  line-height: .96;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.event-listing h3 a {
  text-decoration: none;
  background-image: linear-gradient(var(--ink), var(--ink));
  background-size: 0 2px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size 160ms ease, color 160ms ease;
}
.event-listing h3 a:hover,
.event-listing h3 a:focus-visible { background-size: 100% 2px; color: #35383e; }

.day-block.has-artwork { isolation: isolate; overflow: hidden; padding-left: 12px; padding-right: 12px; }
.day-block.has-artwork::before { z-index: 2; }
.day-block.has-artwork::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--day-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .25;
  transition: opacity 180ms ease;
}
.day-block.has-artwork:hover::after,
.day-block.has-artwork:focus-within::after { opacity: .50; }
.day-block.has-artwork .day-header,
.day-block.has-artwork .day-events { position: relative; z-index: 1; }

.calendar-feed-boundary { width: 100%; height: 2px; pointer-events: none; }
.calendar-feed-status {
  min-height: 5rem;
  padding: 0 34px 70px;
  text-align: center;
  font-weight: 800;
  letter-spacing: .04em;
}
.calendar-feed-status.is-final { text-transform: uppercase; letter-spacing: .09em; }
.calendar-feed-noscript { padding: 0 34px 40px; }
.calendar-month + .calendar-month { border-top: 1px solid var(--line); }

.wordmark-text { display: inline-block; max-width: 190px; text-transform: uppercase; }
.account-menu summary.account-initials { max-width: none; letter-spacing: .08em; }
.site-version { font-family: var(--sans); font-size: .7rem; letter-spacing: .06em; color: var(--muted); white-space: nowrap; }
.provider-unavailable { color: var(--muted); font-size: .9rem; }

.event-artwork-note { font-family: var(--serif); font-size: .9rem; text-transform: none; letter-spacing: 0; font-weight: 400; }
.recurrence-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.recurrence-fields select,
.admin-settings-form select,
.admin-filter-form select,
.inline-select select {
  width: 100%;
  border: 0;
  border-bottom: 2px solid var(--ink);
  border-radius: 0;
  padding: 10px 2px;
  background: transparent;
  color: var(--ink);
}
.import-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; margin-top: 22px; }
.import-choice-grid a { font-weight: 800; }

/* Administration deliberately uses a quieter scale than the public poster. */
.admin-shell { max-width: 1240px; margin: 0 auto; padding: 42px 34px 90px; }
.admin-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  padding: 10px 0 22px;
  margin-bottom: 32px;
  border-bottom: 2px solid var(--ink);
  font-size: .9rem;
  font-weight: 800;
}
.admin-nav a { text-decoration: none; border-bottom: 2px solid transparent; }
.admin-nav a:hover, .admin-nav a[aria-current="page"] { border-bottom-color: currentColor; }
.admin-page .page-heading-row { align-items: center; margin-bottom: 28px; }
.admin-page .page-heading-row h1,
.admin-page > h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: .9; }
.admin-page .eyebrow { margin-bottom: 4px; }
.admin-table td, .admin-table th { vertical-align: top; }
.admin-row-links, .inline-actions { gap: 12px; }
.admin-action-menu { position: relative; }
.admin-action-menu summary { cursor: pointer; font-weight: 800; text-decoration: underline; text-underline-offset: .18em; }
.admin-action-list {
  position: absolute;
  z-index: 10;
  right: 0;
  top: 1.8rem;
  min-width: 150px;
  display: grid;
  gap: 10px;
  padding: 14px;
  background: var(--white);
  border: 1px solid var(--ink);
  box-shadow: 7px 7px 0 var(--sky);
}
.settings-stack { display: grid; gap: 28px; }
.settings-section { padding-top: 22px; border-top: 1px solid var(--line); }
.settings-section:first-child { border-top: 0; }
.settings-section h2 { font-size: 1.55rem; }
.settings-callback { font-size: .82rem; line-height: 1.6; overflow-wrap: anywhere; }
.admin-danger-zone { margin-top: 34px; padding-top: 20px; border-top: 2px solid var(--coral); }
.api-key-once { margin-bottom: 30px; padding: 18px; border: 2px solid var(--ink); background: var(--sun); overflow-wrap: anywhere; }
.api-key-once code { font-size: 1rem; user-select: all; }

@media (max-width: 760px) {
  .recurrence-fields, .import-choice-grid { grid-template-columns: 1fr; }
  .day-block.has-artwork { padding-left: 8px; padding-right: 8px; }
  .calendar-feed-status { padding-left: 20px; padding-right: 20px; }
  .admin-action-list { left: 0; right: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .day-block.has-artwork::after { transition: none; }
}
