.action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  color: #ffffff;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  transition: background-color 0.2s, border-color 0.2s, color 0.2s;
  border-width: 4px;
  border-style: solid;
  border-radius: 0;
}

.action-btn--download {
  background: #198754;
  border-color: #198754;
}

.action-btn--download:hover {
  background: #146c43;
  border-color: #146c43;
}

.action-btn--fullscreen {
  background: #0d6efd;
  border-color: #0d6efd;
}

.action-btn--fullscreen:hover {
  background: #0a58ca;
  border-color: #0a58ca;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  color: #212529;
  background: transparent;
  border: 2px solid transparent;
  border-radius: 0;
  transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.icon-btn:hover {
  color: #ffffff;
  background: #212529;
  border-color: #212529;
}

body.fullscreen-lock {
  overflow: hidden;
}

#qr-section.is-fullscreen {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  max-width: none;
  padding: 0;
  border: 0;
  background: #ffffff;
  z-index: 50;
}

#fullscreen-controls {
  display: none;
}

#qr-section.is-fullscreen #fullscreen-controls {
  display: flex;
}

#toggle-theme-btn .icon-moon {
  display: none;
}

#qr-section.is-fullscreen #close-qr-btn,
#qr-section.is-fullscreen #qr-actions,
#qr-section.is-fullscreen #qr-meta {
  display: none;
}

#qr-section.is-fullscreen #qrcode {
  border: 0;
  padding: 0;
  margin-top: 0;
}

#qr-section.is-fullscreen.is-dark {
  background: #000000;
}

#qr-section.is-fullscreen.is-dark .icon-btn {
  color: #ffffff;
}

#qr-section.is-fullscreen.is-dark .icon-btn:hover {
  color: #000000;
  background: #ffffff;
  border-color: #ffffff;
}

#qr-section.is-fullscreen.is-dark #toggle-theme-btn .icon-sun {
  display: none;
}

#qr-section.is-fullscreen.is-dark #toggle-theme-btn .icon-moon {
  display: inline;
}

.info-dialog {
  width: min(640px, calc(100vw - 2rem));
  border: 4px solid #212529;
  padding: 0;
  background: #ffffff;
  color: #212529;
}

.info-dialog::backdrop {
  background: rgba(33, 37, 41, 0.6);
}

.info-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1rem 0.75rem 1rem;
  border-bottom: 4px solid #212529;
}

.info-dialog__title {
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.info-dialog__body {
  padding: 1rem;
}

.info-dialog__list {
  list-style: disc;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.75rem;
  line-height: 1.5;
  font-weight: 700;
}
