/* Scope these rules to scoring: other pages also use song-card/card-content. */
.round-scoring .timeline-view .timeline-strip {
  align-items: stretch;
  gap: 12px;
}

.round-scoring .timeline-view .timeline-card.song-card {
  box-sizing: border-box;
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
  gap: 0;
  width: 180px;
  height: auto;
  min-height: 252px;
  padding: 12px;
  text-align: center;
}

.round-scoring .timeline-view .song-card .card-number-badge {
  top: 12px;
  right: 12px;
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.3;
}

.round-scoring .timeline-view .song-card .card-position {
  align-self: flex-start;
  margin: 0 0 14px;
  padding: 3px 5px;
  font-size: 0.6rem;
  line-height: 1.5;
}

.round-scoring .timeline-view .song-card .card-year {
  flex: 0 0 auto;
  width: 100%;
  margin: 0 0 14px;
  font-size: 1.8rem;
  line-height: 1.2;
}

.round-scoring .timeline-view .song-card .card-content {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 1fr 1fr;
  align-content: start;
  align-items: start;
  gap: 8px;
  flex: 1 0 auto;
  width: 100%;
  height: auto;
  min-width: 0;
  min-height: 104px;
  margin: 0;
  padding: 0;
  overflow: visible;
}

.round-scoring .timeline-view .song-card .card-title,
.round-scoring .timeline-view .song-card .card-artist {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  overflow: visible;
  -webkit-line-clamp: unset;
}

.round-scoring .timeline-view .song-card .card-title {
  font-size: 0.9rem;
  font-weight: 700;
}

.round-scoring .timeline-view .song-card .card-artist {
  font-size: 0.8rem;
  font-weight: 400;
}

.round-scoring .timeline-view .song-card .card-year.correct,
.round-scoring .timeline-view .song-card .card-title.correct,
.round-scoring .timeline-view .song-card .card-artist.correct {
  color: #1db954;
}

.round-scoring .timeline-view .song-card .card-year.incorrect,
.round-scoring .timeline-view .song-card .card-title.incorrect,
.round-scoring .timeline-view .song-card .card-artist.incorrect {
  color: #ff8e9b;
}

.round-scoring .timeline-view .timeline-answer-note {
  color: #cbd5e1;
  font-size: 0.85rem;
  margin: 0 0 12px;
}

.round-scoring .timeline-view .song-card .card-points {
  position: static;
  width: 100%;
  margin: 14px 0 0;
  font-size: 1rem;
  line-height: 1.3;
}

.round-scoring .timeline-view .timeline-card.start-card {
  align-self: center;
}

.display-page .lyrics-timing-note {
  color: #cbd5e1;
  font-size: 1rem;
  line-height: 1.4;
  margin: 0 0 1rem;
}

/* The header and round take their own space; only the lyrics scroll. */
.display-page:has(.display-playing.with-lyrics) {
  box-sizing: border-box;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  padding: clamp(12px, 2.5vh, 30px) clamp(16px, 3vw, 48px);
  padding-top: 64px;
  overflow: hidden;
}

.display-page:has(.display-playing.with-lyrics) .fullscreen-btn {
  top: 12px;
  right: 16px;
  min-height: 40px;
}

.display-page:has(.display-playing.with-lyrics) .lyrics-speed-control {
  top: 12px;
  right: 156px;
  margin: 0;
  padding: 0;
  background: none;
}

.display-page:has(.display-playing.with-lyrics) .speed-panel {
  position: fixed;
  top: 60px;
  right: 16px;
  box-sizing: border-box;
  max-width: calc(100vw - 32px);
  flex-wrap: wrap;
}

.display-page:has(.display-playing.with-lyrics) .audio-status {
  position: relative;
  top: auto;
  left: auto;
  flex: 0 0 auto;
  align-self: center;
  z-index: 2;
}

.display-page:has(.display-playing.with-lyrics) .display-container {
  flex: 1 1 0;
  min-height: 0;
}

.display-page:has(.display-playing.with-lyrics) .display-header {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  margin: 0 0 12px;
}

.display-page:has(.display-playing.with-lyrics) .display-header h1 {
  margin: 0;
  font-size: clamp(1.25rem, 3.2vw, 3rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.display-page:has(.display-playing.with-lyrics) .event-logo {
  max-width: 100%;
  max-height: min(12vh, 100px);
  object-fit: contain;
}

.display-page:has(.display-playing.with-lyrics) .round-display {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  box-sizing: border-box;
  max-width: 100%;
  margin: 0 auto 16px;
  padding: 8px 24px;
  font-size: clamp(1rem, 2vw, 1.75rem);
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-align: center;
}

.display-page:has(.display-playing.with-lyrics) .display-main {
  flex: 1 1 0;
  min-height: 0;
  margin: 0;
  align-items: stretch;
  overflow: hidden;
}

.display-page .display-playing.with-lyrics:not(.with-video) {
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  width: 100%;
  gap: 0;
}

.display-page .display-playing.with-lyrics .cymatics-container {
  z-index: 0;
}

.display-page .display-playing.with-lyrics:not(.with-video) .karaoke-display {
  position: relative;
  inset: auto;
  transform: none;
  flex: 1 1 0;
  width: 100%;
  max-width: 1200px;
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  padding: 0 clamp(8px, 3vw, 40px);
  border-radius: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  container-type: size;
}

.display-page .display-playing.with-lyrics .karaoke-text {
  /* Enough space to center the first and last line in the lyrics viewport. */
  padding-block: 50cqh;
}

.display-page .display-playing.with-lyrics .karaoke-text:has(.lyrics-timing-note) {
  padding-block: 16px;
}

.display-page .display-playing.with-lyrics:not(.with-video) .karaoke-line,
.display-page .display-playing.with-lyrics:not(.with-video) .karaoke-line.active {
  font-size: clamp(1.25rem, 3.5vw, 3.2rem);
  font-weight: 600;
  line-height: 1.45;
  padding: 12px 0;
  overflow-wrap: anywhere;
  transition: color .3s ease, text-shadow .3s ease;
}

@media (max-height: 500px) {
  .display-page:has(.display-playing.with-lyrics) .display-header {
    margin-bottom: 6px;
  }
  .display-page:has(.display-playing.with-lyrics) .display-header h1 {
    font-size: 1.25rem;
  }
  .display-page:has(.display-playing.with-lyrics) .round-display {
    margin-bottom: 8px;
    padding: 5px 18px;
    font-size: 1rem;
  }
}

/* Phone/tablet controls are separate from the unchanged printed score sheets. */
.mobile-only, .mobile-score-cards { display: none; }
.round-scoring .scoring-header { flex-wrap: wrap; gap: 12px; }
.round-scoring .scoring-print-actions { flex-wrap: wrap; }
.round-scoring .score-entry { min-width: 0; }
.round-scoring .save-status { flex-shrink: 0; }

@media screen and (max-width: 1024px) {
  .spotify-dashboard .dashboard-header { flex-wrap: wrap; }
  .spotify-dashboard .header-actions { flex-wrap: wrap; }
  .spotify-dashboard .dashboard-layout { grid-template-columns: minmax(0, 1fr); height: auto; }
  .spotify-dashboard .panel { min-width: 0; }
  .spotify-dashboard .events-panel { max-height: none; }
  .spotify-dashboard .search-panel { min-height: 0; overflow: visible; }
  .spotify-dashboard .round-songs-section { overflow: visible; min-height: 0; }
  .events-page .events-layout { height: auto; grid-template-columns: 240px minmax(0, 1fr); }
  .events-page .songs-panel { display: flex; grid-column: 1 / -1; }
  .events-page .event-details, .events-page .details-section { min-width: 0; }
  .events-page .event-actions-bar { flex-wrap: wrap; }
  .events-page .round-card-actions, .events-page .event-item-actions,
  .spotify-dashboard .round-card-actions, .spotify-dashboard .round-action-btn,
  .spotify-dashboard .delete-btn { opacity: 1; }
}

@media screen and (max-width: 900px) {
  .round-scoring .mobile-only { display: block; }
  .round-scoring { padding: 12px; }
  .round-scoring .scoring-header { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; padding: 12px; gap: 8px; }
  .round-scoring .header-left { grid-column: 1 / -1; align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .round-scoring .header-info { width: 100%; min-width: 0; }
  .round-scoring .header-info h1 { font-size: 1.2rem; line-height: 1.35; overflow-wrap: anywhere; margin-bottom: 12px; }
  .round-scoring .round-navigation { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 6px; }
  .round-scoring .round-navigation button { padding: 8px 4px; font-size: .85rem; min-width: 0; }
  .round-scoring .round-indicator { white-space: normal; max-width: 145px; font-size: .85rem; padding: 8px; text-align: center; }
  .round-scoring button, .round-scoring select { min-height: 44px; touch-action: manipulation; }
  .round-scoring .scoring-print-actions { display: none; }
  .round-scoring .scoring-print-actions.mobile-expanded { display: grid; grid-template-columns: minmax(0,1fr); grid-column: 1 / -1; }
  .round-scoring .scoring-more, .round-scoring .scoring-year-toggle, .round-scoring .mobile-submission-link { background: #ffffff0d; color: #d9e2ff; border: 1px solid #ffffff36; border-radius: 8px; padding: 10px; text-align: left; font-size: .9rem; cursor: pointer; }
  .round-scoring .save-status { display: flex; align-items: center; justify-content: center; text-align: center; font-size: .8rem; padding: 8px; }
  .round-scoring .scoring-team-picker { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; background: #ffffff0d; border-radius: 12px; padding: 12px; margin-bottom: 12px; gap: 6px; }
  .round-scoring .scoring-team-picker label { display: block; margin-bottom: 8px; font-weight: 600; }
  .round-scoring .scoring-team-picker select { grid-column: 1 / -1; grid-row: 2; width: 100%; max-width: 100%; background: #26334b; border: 1px solid #8b9ab6; color: white; border-radius: 8px; padding: 10px; font-size: 16px; }
  .round-scoring .scoring-team-picker option { background: #26334b; color: white; }
  .round-scoring .scoring-team-picker a { display: inline-flex; align-items: center; grid-row: 1; grid-column: 2; min-height: 44px; color: #b8ceff; font-size: .75rem; }
  .round-scoring .teams-sidebar { display: none; }
  .round-scoring .scoring-layout { display: block; height: auto; }
  .round-scoring .score-entry { padding: 12px; overflow: visible; }
  .round-scoring .scoring-year-toggle { width: 100%; margin-bottom: 12px; }
  .round-scoring .start-year-section { display: none; padding: 12px; }
  .round-scoring .start-year-section.mobile-expanded { display: block; }
  .round-scoring .mode-toggle { flex-wrap: wrap; }
  .round-scoring .mode-btn { padding: 10px; min-width: 0; }
  .round-scoring .shared-year-input, .round-scoring .team-year-input { flex-wrap: wrap; }
  .round-scoring .team-header { flex-wrap: wrap; align-items: flex-start; gap: 12px; }
  .round-scoring .team-header h3 { flex: 1 1 100%; overflow-wrap: anywhere; }
  .round-scoring .team-start-year { display: none; }
  .round-scoring .view-toggle { width: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
  .round-scoring .view-btn { flex: 1 1 80px; padding: 8px 5px; font-size: .85rem; }
  .round-scoring .digital-score-sheet-intro { padding: 12px; gap: 8px; }
  .round-scoring .digital-score-sheet-intro strong { font-size: .8rem; line-height: 1.5; font-weight: 400; }
  .round-scoring .digital-score-sheet-shell { display: none; }
  .round-scoring .mobile-score-cards { display: grid; gap: 14px; }
  .round-scoring .mobile-score-cards > p { margin: 0; font-size: .85rem; color: #cad5e8; line-height: 1.5; }
  .round-scoring .mobile-score-card { min-width: 0; background: #26314b; border: 1px solid #5d708d; border-radius: 12px; padding: 14px; }
  .round-scoring .mobile-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #cbd8ff; font-size: .9rem; }
  .round-scoring .mobile-card-heading span { white-space: nowrap; }
  .round-scoring .mobile-score-card h4 { font-size: 1.05rem; line-height: 1.4; margin: 14px 0 4px; overflow-wrap: anywhere; }
  .round-scoring .mobile-score-card p { margin: 0 0 14px; color: #dae2f0; font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
  .round-scoring .mobile-score-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .round-scoring .mobile-score-checks label { display: flex; align-items: center; gap: 8px; padding: 8px; min-height: 48px; border: 1px solid #7e8ca3; border-radius: 8px; font-size: .85rem; cursor: pointer; }
  .round-scoring .mobile-score-checks label.checked { background: #17553e; border-color: #5ee3a2; color: #fff; }
  .round-scoring .mobile-score-checks label:focus-within { outline: 3px solid #adc6ff; outline-offset: 2px; }
  .round-scoring .mobile-score-checks input { flex: 0 0 22px; width: 22px; height: 22px; margin: 0; accent-color: #20a76a; }
  .round-scoring .mobile-submission-link { width: 100%; margin-top: 12px; }
  .round-scoring .team-total { flex-wrap: wrap; gap: 8px; }
  .round-scoring .timeline-view { padding: 0; min-width: 0; }
  .round-scoring .timeline-header { gap: 6px; padding: 10px; font-size: .75rem; }
  .round-scoring .timeline-order { flex-wrap: wrap; }
  .round-scoring .timeline-scroll-container { max-width: 100%; }
}

@media screen and (max-width: 760px) {
  :is(.spotify-dashboard, .events-page, .scoreboard, .participant-scores, .admin-home-page, .camera-qr-page) { padding: 12px; overflow-wrap: anywhere; }
  :is(.spotify-dashboard, .events-page, .scoreboard, .participant-scores, .admin-home-page, .camera-qr-page) button { min-height: 44px; min-width: 44px; touch-action: manipulation; }
  :is(.spotify-dashboard, .events-page, .camera-qr-page, .admin-home-page, .participant-scores) :is(input:not([type=checkbox]):not([type=range]), select, textarea) { font-size: 16px !important; max-width: 100%; min-width: 0; }
  :is(.spotify-dashboard, .events-page) :is(.modal-overlay, .lyrics-modal-overlay, .edit-card-modal-overlay, .new-song-modal-overlay) { padding: 12px; }
  :is(.spotify-dashboard, .events-page, .round-scoring) :is(.modal, .lyrics-modal, .edit-card-modal, .new-song-modal, .team-qr-modal) { min-width: 0 !important; width: 100%; max-width: 100% !important; margin: 0; padding: 16px; max-height: calc(100dvh - 24px); overflow: auto; }
  :is(.spotify-dashboard, .events-page) :is(.modal-actions, .modal-buttons, .section-header, .section-header-actions) { flex-wrap: wrap; gap: 8px; }

  .spotify-dashboard .mobile-only { display: block; }
  .spotify-dashboard .dashboard-header { gap: 10px; align-items: center; }
  .spotify-dashboard .header-title-group { flex: 1 1 180px; min-width: 0; }
  .spotify-dashboard .header-title-group h1 { font-size: 1.15rem; }
  .spotify-dashboard .header-title-group .back-btn { position: static; margin-top: 0; padding: 6px 0; }
  .spotify-dashboard .spotify-login-prompt { flex-wrap: wrap; gap: 12px; }
  .spotify-dashboard .spotify-login-text { flex: 1 1 180px; min-width: 0; }
  .spotify-dashboard .dashboard-menu-toggle { padding: 10px 12px; background: #ffffff1a; color: #fff; border: 1px solid #ffffff40; border-radius: 8px; }
  .spotify-dashboard .dashboard-header > .header-actions { display: none; width: 100%; }
  .spotify-dashboard .dashboard-header > .header-actions.mobile-expanded { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .spotify-dashboard .dashboard-header .header-actions button { font-size: .85rem; padding: 10px 8px; }
  .spotify-dashboard .dashboard-layout { gap: 16px; }
  .spotify-dashboard .panel { padding: 12px; }
  .spotify-dashboard .panel-header { flex-wrap: wrap; gap: 8px; }
  .spotify-dashboard .events-list, .spotify-dashboard .rounds-list { max-height: 50dvh; }
  .spotify-dashboard .panel.events-panel { min-height: 0; height: auto; }
  .spotify-dashboard .rounds-section { padding: 12px; }
  .spotify-dashboard :is(.round-card, .selected-event-header, .selected-round-header) { flex-wrap: wrap; gap: 10px; }
  .spotify-dashboard :is(.round-info, .selected-round-header-main) { min-width: 0; }
  .spotify-dashboard .round-card-actions { flex-wrap: wrap; }
  .spotify-dashboard :is(.qr-scanner-btn-container, .display-secondary-controls, .right-panel-tabs, .round-tabs, .search-mode-toggle, .search-options, .lyrics-offset-shift, .lyrics-song-info) { flex-wrap: wrap; gap: 8px; }
  .spotify-dashboard .qr-scanner-btn-container { padding: 12px 0; }
  .spotify-dashboard .qr-scanner-btn-container button { flex: 1 1 140px; min-width: 0; padding: 12px; }
  .spotify-dashboard .search-mode-toggle button { flex: 1 1 85px; min-width: 0; padding: 10px 6px; }
  .spotify-dashboard :is(.search-options > *, .genre-option) { max-width: 100%; flex-wrap: wrap; }
  .spotify-dashboard .right-song-item { flex-wrap: wrap; gap: 8px; padding: 12px; }
  .spotify-dashboard .right-song-item .song-info { flex: 1 1 calc(100% - 105px); }
  .spotify-dashboard .right-song-item :is(.song-title, .song-artist) { white-space: normal; overflow-wrap: anywhere; }
  .spotify-dashboard .right-song-item .song-play-actions { flex: 1 1 100%; flex-wrap: wrap; align-items: center; gap: 8px; }
  .spotify-dashboard .right-song-item :is(.song-play-btn, .song-pause-btn, .lyrics-btn, .live-display-btn, .remove-btn, .song-volume-btn, .move-round-btn) { width: 44px; height: 44px; margin: 0; }
  .spotify-dashboard .generation-period-btn { min-width: 0; flex: 1 1 130px; }
  .spotify-dashboard .fade-duration-control { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  .spotify-dashboard .move-round-dropdown { right: 0; left: auto; min-width: 160px; max-width: 240px; }

  .events-page .events-header { flex-direction: column; align-items: stretch; gap: 12px; padding: 12px; }
  .events-page .event-quick-nav { display: flex; flex-wrap: wrap; gap: 8px; }
  .events-page .event-quick-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border-radius: 8px; background: #ffffff1a; color: #d8e3ff; text-decoration: none; }
  .events-page :is(#event-teams, #event-rounds, #event-scores, #event-songs) { scroll-margin-top: 12px; }
  .events-page .events-header h1 { font-size: 1.2rem; }
  .events-page .header-actions { flex-wrap: wrap; }
  .events-page .header-actions > * { flex: 1 1 140px; text-align: center; font-size: .85rem; }
  .events-page .events-layout { display: flex; flex-direction: column; height: auto; }
  .events-page .events-sidebar { max-height: 360px; }
  .events-page .events-list { max-height: 230px; flex: 0 1 auto; }
  .events-page .event-item { flex-wrap: wrap; gap: 8px; }
  .events-page .event-item-info { flex: 1 1 170px; }
  .events-page .event-item-name { white-space: normal; }
  .events-page .event-item-actions { margin-left: auto; }
  .events-page .event-actions-bar { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .events-page .action-btn { font-size: .9rem; padding: 10px; }
  .events-page .details-section { padding: 12px; }
  .events-page .section-header { align-items: flex-start; }
  .events-page .section-header-actions { justify-content: flex-start; }
  .events-page .teams-grid { display: grid; grid-template-columns: minmax(0,1fr); }
  .events-page .team-card { flex-wrap: wrap; padding: 10px; }
  .events-page .team-card-info { flex-wrap: wrap; min-width: 0; }
  .events-page .team-card-actions { margin-left: auto; }
  .events-page .rounds-grid { grid-template-columns: minmax(0,1fr); }
  .events-page .round-card { gap: 8px; padding: 10px; }
  .events-page .round-card-actions { flex-shrink: 0; }
  .events-page .songs-panel { min-width: 0; display: flex; }
  .events-page .song-item { flex-wrap: wrap; gap: 8px; }
  .events-page .song-info { flex: 1 1 calc(100% - 90px); min-width: 0; }
  .events-page :is(.song-title, .song-artist) { white-space: normal; }
  .events-page .song-move-controls { margin-left: auto; }
  .events-page .round-song-form { flex-wrap: wrap; }
  .events-page .round-song-input { flex-basis: 100%; }
  .events-page .round-song-year { flex: 1 1 90px; }
  .events-page .flyer-upload-row { flex-wrap: wrap; }

  .scoreboard .scoreboard-header { padding: 12px; align-items: stretch; }
  .scoreboard .header-info h1 { font-size: 1.2rem; line-height: 1.4; }
  .scoreboard .scoreboard-content { gap: 16px; min-width: 0; }
  .scoreboard :is(.standings-section, .rounds-section, .stats-section) { padding: 12px; min-width: 0; }
  .scoreboard .standing-row { padding: 12px 8px; gap: 8px; }
  .scoreboard .standing-row .position { flex: 0 0 30px; width: 30px; }
  .scoreboard .standing-row .team-name { min-width: 0; overflow-wrap: anywhere; }
  .scoreboard .standing-row .total-score { flex-shrink: 0; }
  .scoreboard .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .scoreboard .stat-card { min-width: 0; padding: 12px 8px; }
  .participant-scores :is(.ps-standing-name, .ps-team-name, .ps-song-title, .ps-song-artist) { white-space: normal; overflow-wrap: anywhere; }
  .participant-scores .ps-header { flex-wrap: wrap; padding: 12px; }
  .participant-scores .ps-header-info { min-width: 100px; }
  .participant-scores .ps-song-row { padding: 12px 8px; gap: 8px; }
  .participant-scores .ps-song-checks { flex-wrap: wrap; }
  .participant-scores .ps-standing-row { min-height: 56px; }
  .admin-home-page .admin-home-header { flex-wrap: wrap; gap: 12px; }
  .admin-home-page .admin-home-header h1 { font-size: 1.4rem; }
  .admin-home-page .admin-home-grid { grid-template-columns: minmax(0,1fr); }
  .admin-home-page .admin-tile { min-width: 0; }
  .camera-qr-page > .no-print { padding: 16px !important; gap: 16px !important; }
  .camera-qr-page h1 { white-space: normal !important; }
  .camera-qr-page .camera-qr-controls { width: 100%; }
  .camera-qr-page .camera-qr-controls > div { width: 100%; min-width: 0; }
  .camera-qr-page select { width: 100%; min-height: 44px; }
  .camera-qr-page .scanner-access-panel { margin: 12px !important; padding: 16px !important; }
  .camera-qr-page .scanner-access-panel button { display: block; width: 100%; margin: 8px 0 0 !important; padding: 10px; border-radius: 8px; }
  .camera-qr-page .scanner-access-panel p { line-height: 1.6; }
}

@media (hover: none) and (pointer: coarse) {
  .events-page :is(.event-item-actions, .round-card-actions),
  .spotify-dashboard :is(.round-card-actions, .round-action-btn, .delete-btn) { opacity: 1; }
}
