/* Sprint 006: per-event artwork, appearance preview, and record-first administration. */
.event-listing.has-artwork {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.event-listing.has-artwork::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--event-bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .25;
  transition: opacity 180ms ease;
}

.event-listing.has-artwork:hover::before,
.event-listing.has-artwork:focus-within::before { opacity: .50; }

.event-listing.has-artwork > * {
  position: relative;
  z-index: 1;
}

/* Sprint 006 supersedes the old date-wide artwork layer. */
.day-block.has-artwork::after { display: none; }

.appearance-preview-dialog {
  width: min(1180px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 3px solid var(--ink);
  background: var(--paper, #f6f0dc);
  color: var(--ink);
  overflow: auto;
  box-shadow: 10px 10px 0 rgba(0,0,0,.18);
}
.appearance-preview-dialog::backdrop { background: rgba(0,0,0,.42); }
.appearance-preview-inner { padding: 28px; }
.appearance-preview-heading { display:flex; gap:24px; align-items:flex-start; justify-content:space-between; margin-bottom:24px; }
.appearance-preview-heading h2 { margin:0; font-family:var(--display); font-size:clamp(2rem,5vw,4rem); text-transform:uppercase; line-height:.9; }
.appearance-preview-note { max-width: 760px; }
.appearance-preview-scenarios { display:grid; gap:34px; }
.appearance-preview-scenario { border-top:2px solid var(--ink); padding-top:18px; }
.appearance-preview-scenario > h3 { margin:0 0 14px; font-family:var(--display); font-size:1.35rem; text-transform:uppercase; }
.preview-day { max-width: 470px; }
.preview-day .day-header { margin-bottom:12px; }
.preview-event-target { outline:2px solid transparent; outline-offset:3px; }
.preview-event-target.is-highlighted { outline-color:var(--coral); }
.preview-artwork-layer {
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:.25;
}
.preview-event-target > *:not(.preview-artwork-layer) { position:relative; z-index:1; }
.preview-event-target { position:relative; isolation:isolate; overflow:hidden; }

.admin-record-links { display:flex; flex-wrap:wrap; gap:12px 20px; margin:12px 0 26px; }
.admin-record-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.45fr); gap:36px; align-items:start; }
.admin-record-section { margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.admin-record-section h2 { margin-top:0; }
.admin-meta-list { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:8px 18px; margin:0; }
.admin-meta-list dt { font-weight:800; }
.admin-meta-list dd { margin:0; }
.record-title-link, .owner-profile-link, .user-profile-link { font-weight:800; }
.admin-table .numeric-column { text-align:right; }
.admin-table td { white-space:normal; }
.admin-table .single-line-cell { white-space:nowrap; }
.user-owned-events { margin-top:42px; }

/* v0.7.2: calendar import screens use the same visual vocabulary as the public feed. */
.import-picker-page {
  width: min(860px, 100%);
  margin-inline: auto;
}
.import-picker-heading {
  max-width: 680px;
  margin-bottom: 30px;
}
.import-picker-heading h1,
.import-events-heading h1 {
  margin: 0 0 10px;
  font-family: var(--display);
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  line-height: .9;
  text-transform: uppercase;
}
.import-calendar-list {
  border-top: 2px solid var(--ink);
}
.import-calendar-choice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 20px 2px;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.import-calendar-choice:hover .import-calendar-name strong,
.import-calendar-choice:focus-visible .import-calendar-name strong {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.import-calendar-name {
  display: grid;
  gap: 3px;
}
.import-calendar-name strong {
  font-family: var(--display);
  font-size: 1.45rem;
  line-height: 1;
  text-transform: uppercase;
}
.import-calendar-name small {
  font-size: .86rem;
  color: var(--muted);
}
.import-calendar-arrow {
  font-size: 1.35rem;
  font-weight: 800;
}
.import-picker-back { margin-top: 28px; }

.import-events-page {
  width: 100%;
}
.import-events-heading {
  max-width: 850px;
  margin-bottom: 46px;
}
.import-calendar-month {
  padding-top: 10px;
  margin-top: 0;
  margin-bottom: 72px;
}
.import-calendar-month + .import-calendar-month {
  border-top: 1px solid var(--line);
  padding-top: 54px;
}
.import-calendar-hero {
  margin-bottom: 24px;
}
.import-calendar-hero .calendar-month-title {
  font-size: clamp(3.6rem, 10vw, 7.5rem);
}
.import-poster-grid {
  align-items: start;
}
.import-event-listing {
  padding-bottom: 18px;
}
.import-event-form {
  margin-top: 14px;
}
.import-event-button {
  font-size: .92rem;
}

@media (max-width: 760px) {
  .appearance-preview-heading { display:block; }
  .appearance-preview-heading .text-action { margin-top:14px; }
  .admin-record-grid { grid-template-columns:1fr; }
  .admin-meta-list { grid-template-columns:1fr; gap:2px; }
  .admin-meta-list dd { margin-bottom:10px; }
  .import-calendar-choice { gap: 14px; padding: 17px 0; }
  .import-calendar-name strong { font-size: 1.2rem; }
  .import-calendar-month { margin-bottom: 48px; }
  .import-calendar-month + .import-calendar-month { padding-top: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .event-listing.has-artwork::before { transition:none; }
}
