:where(button, input, select, textarea, .btn) {
  border-radius: var(--radius-sm);
}

:where(img, iframe, video) {
  border-radius: var(--radius);
}

body {
  background: var(--bg-dark);
}

main:not(.hero) {
  color: var(--text-light);
}

main:not(.hero) h1,
main:not(.hero) h2,
main:not(.hero) h3,
main:not(.hero) h4 {
  color: var(--text-light);
}

main:not(.hero) p,
main:not(.hero) li,
main:not(.hero) label,
main:not(.hero) .muted,
main:not(.hero) .status {
  color: var(--text-muted);
}

.news-page-main,
.games-page-main,
.shop-page-main,
.updates-page-main,
.admin-page-main,
.users-page-main,
.profile-page-main,
.download-page-main {
  padding-top: 84px;
  background: var(--bg-dark);
}

.news-page-container,
.games-container,
.shop-wrap,
.updates-container,
.admin-container,
.users-container,
.profile-container,
.download-selection-container,
.room-view {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
}

.news-page-header,
.games-header,
.users-header,
.updates-header {
  margin-bottom: 28px;
}

.news-page-header h1,
.games-header h1,
.users-header h1,
.updates-header h1,
.admin-container h1,
.download-selection-container h1,
.room-information h1 {
  letter-spacing: -0.02em;
}

.news-page-header p,
.games-header p,
.users-header p,
.updates-header p {
  color: var(--text-muted);
}

.news-list,
.games-grid,
.users-grid {
  gap: 20px;
}

.news-card,
.game-card,
.user-card,
.updates-category-card,
.room-content,
.shop-tile,
.shop-offer,
.admin-panel,
.admin-login,
.admin-form,
.admin-list-item,
.badge-row,
.status-row,
.status-notice,
.tos-toc,
.contact-section,
.login-page-wrap .auth-modal-box {
  border: 0;
  border-radius: var(--radius);
  background: var(--bg-surface);
  box-shadow: none;
}

.faq-item,
.contact-card,
.tos-notice,
.status-overall {
  border: 0;
  border-radius: var(--radius);
  background: var(--bg-surface);
  box-shadow: none;
}

.news-card,
.game-card,
.user-card,
.updates-category-card,
.faq-item,
.contact-card {
  transition:
    transform 0.18s ease,
    border-color 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
}

.news-card:hover,
.game-card:hover,
.user-card:hover,
.updates-category-card:hover {
  transform: translateY(-3px);
  background: var(--bg-hover);
  box-shadow: none;
}

input,
textarea,
select {
  border: 0;
  border-radius: var(--radius-sm) !important;
  background: var(--bg-raised) !important;
  color: var(--text-light) !important;
  font-family: var(--font-body);
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
}

input::placeholder,
textarea::placeholder {
  color: var(--text-dim) !important;
}

.auth-logout-btn,
.selection-download-btn,
.retry-button,
.news-modal-cta,
.contact-btn,
.tos-back-btn,
.topnav-download,
.admin-login-form button,
.admin-form-actions button[type="submit"],
.auth-form button[type="submit"] {
  border-radius: var(--radius-sm);
  background: var(--rr-blue);
  box-shadow: none;
  color: #fff;
  font-family: var(--font-display);
  text-decoration: none;
  transition:
    background 0.2s ease,
    transform 0.15s ease;
}

.auth-logout-btn:hover,
.selection-download-btn:hover,
.retry-button:hover,
.news-modal-cta:hover,
.contact-btn:hover,
.tos-back-btn:hover,
.topnav-download:hover,
.admin-login-form button:hover,
.admin-form-actions button[type="submit"]:hover,
.auth-form button[type="submit"]:hover {
  background: var(--rr-blue-hover);
}

.selection-download-btn:active {
  transform: scale(0.97);
}

.admin-logout,
.admin-form-actions button[type="button"],
.admin-list-actions a,
.admin-list-actions button {
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-light);
}

.admin-logout:hover,
.admin-list-actions a:hover,
.admin-list-actions button:hover {
  background: var(--accent-soft);
  color: var(--rr-blue-text);
}

.auth-delete-btn,
.admin-form-actions button.danger,
.admin-list-actions button.danger {
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--danger);
}

.auth-delete-btn:hover,
.admin-form-actions button.danger:hover,
.admin-list-actions button.danger:hover {
  background: var(--danger);
  color: #fff;
}

.auth-modal-box,
.news-modal-card {
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--bg-surface);
  box-shadow: none;
  overflow: hidden;
}

.error,
.admin-error,
.auth-error,
.games-status.error,
.room-status.error,
.admin-form-status.error {
  color: var(--danger);
}

.success,
.auth-error.auth-error--success {
  color: var(--success);
}

.back-to-rooms,
.updates-back-link,
.news-card a,
.user-card a,
.contact-card a:not(.contact-btn),
.photos-original {
  color: var(--rr-blue-text);
}

.back-to-rooms:hover,
.updates-back-link:hover,
.news-card a:hover,
.contact-card a:not(.contact-btn):hover,
.photos-original:hover {
  color: var(--rr-blue-hover);
}

.admin-page-main {
  min-height: 100vh;
}

.admin-login,
.admin-panel {
  padding: 28px;
}

.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0;
}

.admin-tab {
  border: 0;
  border-radius: var(--radius-sm);
  background: var(--bg-raised);
  color: var(--text-muted);
}

.admin-tab:hover,
.admin-tab.active {
  background: var(--rr-blue);
  color: #fff;
}

@media (max-width: 700px) {
  .news-page-main,
  .games-page-main,
  .shop-page-main,
  .updates-page-main,
  .admin-page-main,
  .users-page-main,
  .profile-page-main,
  .download-page-main {
    padding-top: 74px;
  }

  .news-page-container,
  .games-container,
  .shop-wrap,
  .updates-container,
  .admin-container,
  .users-container,
  .profile-container,
  .download-selection-container,
  .room-view {
    width: min(100% - 28px, 1180px);
  }
}

p, li, label, .muted, .status {
  font-family: var(--font-body);
  font-weight: 800;
}
main:not(.hero) p,
main:not(.hero) li {
  color: var(--text-muted);
}

body .back-to-rooms,
body .back-to-users,
body .updates-back-link,
body .tos-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
  padding: 12px 22px;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--bg-hover);
  color: #fff;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.3px;
  text-transform: none;
  text-decoration: none;
  box-shadow: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body .back-to-rooms:hover,
body .back-to-users:hover,
body .updates-back-link:hover,
body .tos-back-btn:hover,
body .back-to-rooms:focus-visible,
body .back-to-users:focus-visible,
body .updates-back-link:focus-visible,
body .tos-back-btn:focus-visible {
  border-color: transparent;
  background: #35353a;
  color: #fff;
  outline: none;
}

body .tos-back-btn {
  margin-bottom: 0;
}

input,
textarea,
select,
.site-search-input,
.games-search {
  font-family: var(--font-display) !important;
  font-weight: 800;
  color: var(--text-muted) !important;
}

input::placeholder,
textarea::placeholder {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--text-muted) !important;
  opacity: 0.75;
}

.status-refresh {
  padding: 10px 18px;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--bg-hover);
  color: #fff;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.status-refresh:hover,
.status-refresh:focus-visible {
  border-color: transparent;
  background: #35353a;
  color: #fff;
  outline: none;
}
