.lf-settings-button {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 42px;
  min-height: 42px;
  padding: 0;
  font-size: 20px;
}
.lf-preferences { width: min(500px, calc(100% - 24px)); padding: 0 20px 20px; overflow: auto; background: var(--white); }
.lf-preferences .dialog-head { align-items: center; margin: 0 -20px 12px; padding: 12px 20px; }
.lf-preferences h2, .lf-preferences h3 { margin: 0; }
.lf-preferences h2 { font-size: 22px; }
.lf-preferences h3 { margin-bottom: 9px; font-size: 16px; }
.lf-preferences section + section { margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); }
.lf-preferences p, .lf-push-admin p { margin: 8px 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.lf-preferences label { display: block; margin-bottom: 6px; font-size: 13px; }
.lf-preferences select, .lf-push-form input, .lf-push-form textarea {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
}
.lf-preferences button, .lf-push-form button { min-height: 44px; }
.lf-preference-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.lf-push-admin summary { cursor: pointer; font-size: 16px; font-weight: 700; color: var(--ink); }
.lf-push-form { display: grid; gap: 10px; max-width: 650px; }
.lf-push-form label { display: grid; gap: 5px; font-size: 13px; }
.lf-push-form button:disabled, .lf-preferences button:disabled { opacity: .55; cursor: default; }
#lfPushPreview { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); }

@media (max-width: 1100px) {
  .main-nav { display: none; }
  .mobile-menu-button { display: inline-flex; }
  .mobile-nav:not([hidden]) {
    display: grid;
    position: absolute;
    z-index: 12;
    top: calc(100% - 2px);
    right: max(14px, env(safe-area-inset-right));
    width: min(17rem, calc(100vw - 28px));
    max-height: 75vh;
    overflow: auto;
    padding: 8px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 13px;
    box-shadow: var(--shadow);
  }
  .mobile-nav a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 12px;
    border-radius: 8px;
    color: var(--ink);
    text-decoration: none;
    font-size: 14px;
  }
  .mobile-nav a:hover { background: var(--soft); }
}
@media (max-width: 580px) {
  .topbar { height: auto; min-height: 66px; gap: 6px; }
  .topbar, main {
    padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));
  }
  .topbar .brand-logo { width: clamp(97px, 30vw, 174px); }
  .topbar .pill-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
  .topbar .lf-settings-button { min-width: 44px; font-size: 20px; }
  .topbar .top-actions { gap: 4px; }
  .topbar #savedFilter { padding-inline: 7px; }
  .topbar #loginButton, .topbar #mobileMenuToggle { padding-inline: 8px; }
  .search, .filter-select, .sort-area select, dialog :is(input:not([type="checkbox"],[type="radio"]), select, textarea),
  .lf-push-form :is(input, textarea) { font-size: 16px; }
  .filter-select, .sort-area select, .reset-button, .quick-tag { min-height: 44px; }
  .search { padding-right: 14px; }
  .search-hint { display: none; }
  .lf-preferences { max-height: min(86vh, calc(100dvh - 24px - env(safe-area-inset-bottom))); }
  footer { padding-bottom: max(34px, env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  .topbar { padding-inline: 8px; }
  .topbar .brand-logo { width: 89px; }
}

:root[data-lf-theme="dark"] {
  color-scheme: dark;
  --ink: #f1f3f7;
  --muted: #c2cad6;
  --paper: #121419;
  --white: #1d222a;
  --line: #4a5666;
  --green: #a2e1ca;
  --green2: #b9ebd9;
  --orange: #f0bb91;
  --soft: #29323e;
  --night-action: #a2e1ca;
  --night-action-ink: #122722;
  --shadow: 0 18px 50px rgba(0, 0, 0, .35);
}
[data-lf-theme="dark"] :is(.topbar, .mobile-nav, .card, .launch-card, .session-card, .feature-card, .profile-card,
  .article-card, .entity-detail-card, .plan-card, .role-panel, .role-stat, .account-choice, .admin-lock,
  .admin-editor, .admin-access-requests, .admin-request-row, .detail-fact, .availability, .profile-row,
  .host-script-card, .host-spotlight-row, .store-carousel-section, .experience-record-card, .experience-share-card,
  .experience-bulk-import, .bulk-row, .queue-preview, .picker-options, .script-picker-results, .group-script-options,
  .review-step, .review-comment, .rich-preview, .admin-preview, .lf-ad-copy, .lf-ad-campaign-row,
  .lf-ad-form, .lf-ad-metric, .lf-ad-placement-list, .lf-news-card, .lf-home-total, .host-directory-empty,
  .store-pick-card, .catalog-import-tools, .lf-related-card, .home-catalogue-totals a, .player-board,
  .partner-editor, .review-comment-list, .account-status-card, .experience-dialog-inner,
  .store-branch, .store-carousel-heading, .admin-submission-body, dialog:not(.lf-ad-dialog)) {
  background: var(--white);
  border-color: var(--line);
  color: var(--ink);
}
[data-lf-theme="dark"] :is(.filters, .privacy-note, .service-note, .taxonomy-note, .experience-public-option,
  .article-share-callout, .source-tags-disclosure, .host-script-card-placeholder, .description-status,
  .full-description-pending, .segment-switch, .rich-toolbar, .role-workspace, .admin-help,
  .store-carousel-empty, .empty, .meta span, .tag, .genre, .host-chip, .script-chip, .store-chip,
  .type-pill, .lf-ad-status, .quick-tag.active, .quick-tag:hover, .lf-related-placeholder,
  .lf-floating-metric, .lf-universe-core, .lf-motion-toggle, .sample-label, .card-host,
  .role-link-list, .host-options, .host-choice, .special-tabs, .bulk-row-status) {
  background: var(--soft);
  border-color: var(--line);
  color: var(--ink);
}
[data-lf-theme="dark"] :is(.demo-strip, .site-startup) {
  background: var(--paper);
  color: var(--muted);
}
[data-lf-theme="dark"] :is(.brand-logo, .footer-brand-logo, .site-startup-logo, .lf-universe-core img) {
  content: url("/images/larp-finder-logo-dark.svg");
}
[data-lf-theme="dark"] :is(.main-nav a, .footer-brand, footer, .hero-copy, .search-hint, .sort-area, .filter-label,
  .reset-button, .result-line, .result-line strong, .card-body p, .card-topline, .card-host, .listing-count,
  .meta, .section-head p, .section-kicker, .eyebrow, .host-script-card-label, .host-script-card-facts,
  .host-summary-preview, .article-detail-meta, .article-body, .full-description, .dialog-synopsis,
  .site-startup-message, .site-startup-card small, .feature-card p, .card-host strong, .profile-card small,
  .store-directory-title p, .store-pick-copy p, .lf-ad-copy p, .store-directory-toolbar, .host-directory-toolbar,
  .feature-meta, .host-directory-toolbar label, .store-directory-toolbar label, .group-card-facts, .review-step span, .plan-card li, .lf-universe-core span,
  .lf-floating-metric span, .store-star-description, .host-star-bio, .host-star-note,
  .store-carousel-eyebrow, .source-tags-disclosure summary, .host-script-card-tags, .lf-ad-campaign-title, .lf-ad-campaign-title p,
  .lf-ad-campaign-title small, .lf-ad-metric span, .admin-field, .lf-universe-copy p) {
  color: var(--muted);
}
[data-lf-theme="dark"] :is(input:not([type="checkbox"],[type="radio"]), select, textarea, .pill-button,
  .outline-button, .details-button, .quick-tag, .load-more, .dialog-close, .lf-ad-row-actions button,
  .lf-social-links a, .host-script-list a[data-page-link], .special-tabs button, .segment-switch button,
  .rich-toolbar button, .admin-request-filters button, .store-carousel-controls button, .save) {
  background: var(--white);
  color: var(--ink);
  border-color: var(--line);
}
[data-lf-theme="dark"] :is(.join-button, .sign-in-button, .lf-ad-cta, .hero-side) {
  background: var(--night-action);
  border-color: var(--night-action);
  color: var(--night-action-ink);
}
[data-lf-theme="dark"] :is(.lf-social-links a:hover, .outline-button:hover, .mobile-nav a:hover,
  .host-script-list a[data-page-link]:hover, .quick-tag.active, .quick-tag:hover,
  .special-tabs button[aria-checked="true"], .segment-switch button.active) {
  background: var(--soft);
  border-color: var(--green);
  color: var(--ink);
}
[data-lf-theme="dark"] :focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

@media (max-width: 400px) {
  .topbar #savedFilter { min-width: 44px; gap: 3px; font-size: 0; }
  .topbar #savedFilter::before { content: "♡"; font-size: 17px; }
  .topbar #savedCount { font-size: 11px; }
}

[data-lf-theme="dark"] :is(.lf-social-eyebrow, .section-kicker, .lf-ad-eyebrow, .store-star-kicker, .host-star-kicker) { color: var(--orange); }
[data-lf-theme="dark"] :is(.store-directory-title h3, .lf-ad-copy h3, .group-card-facts strong,
  .queue-preview strong, .dialog-section-title, .availability strong, .host-script-card-title,
  .store-pick-title, .article-body :is(h2, h3, strong), .review-step strong, .lf-universe-copy h1,
  .lf-floating-metric strong, .detail-facts strong, .empty strong) { color: var(--ink); }
[data-lf-theme="dark"] .host-summary-preview { color: var(--muted) !important; }
[data-lf-theme="dark"] .profile-card .host-script-list .script-chip.host-more-link {
  background: #243e38 !important;
  border: 1px solid #5c8a7b;
  color: #e2fff3;
  font-weight: 700;
}
[data-lf-theme="dark"] .profile-card .host-script-list .script-chip.host-more-link:is(:hover, :focus-visible) {
  background: #31574d !important;
  color: #fff;
}
[data-lf-theme="dark"] .feature-meta span { background: var(--soft); color: var(--muted); }
[data-lf-theme="dark"] :is(.lf-preferences button, .lf-push-form button):disabled {
  opacity: 1;
  background: var(--soft);
  color: var(--muted);
  border-color: var(--line);
}
[data-lf-theme="dark"] a.join-button.article-read-link { color: var(--night-action-ink); }
[data-lf-theme="dark"] .hero-side { background: var(--soft); border-color: var(--line); color: var(--ink); }
[data-lf-theme="dark"] #homeCoverUniverse {
  background: radial-gradient(ellipse at 48% 48%, #1b2934, #151d29 48%, transparent 74%);
}
[data-lf-theme="dark"] #homeCoverUniverse .lf-universe-core,
[data-lf-theme="dark"] #homeCoverUniverse .lf-floating-metric {
  background: #18232d;
  border-color: #405869;
  box-shadow: 0 10px 24px #070a0f80;
}
[data-lf-theme="dark"] #homeCoverUniverse :is(.lf-universe-core span, .lf-floating-metric span) {
  color: #e1e8f2;
  font-weight: 600;
}
[data-lf-theme="dark"] #homeCoverUniverse .lf-floating-metric strong { color: #b4f0d8; }
[data-lf-theme="dark"] #homeCoverUniverse .lf-universe-orbit { border-color: #567a9066; }
[data-lf-theme="dark"] #homeCoverUniverse .lf-flying-cover-link {
  background: #141c25;
  border-color: #506172;
  box-shadow: 0 10px 20px #070a0f80;
}
[data-lf-theme="dark"] #homeCoverUniverse .lf-flying-cover-link:not(:hover, :focus-visible) img { filter: brightness(.74); }
[data-lf-theme="dark"] #homeCoverUniverse .lf-flying-cover-link span {
  background: #101821;
  color: #fff;
  padding-top: 6px;
}
[data-lf-theme="dark"] :is(.store-star-hero, .host-star-hero) {
  background: radial-gradient(ellipse at 85% 15%, #314c50, #232e3a 55%, #1a222c);
  color: var(--ink);
}
[data-lf-theme="dark"] :is(.lf-universe-copy h1 em, .lf-home-secondary, .launch-link, .store-carousel-eyebrow) { color: var(--green); }
[data-lf-theme="dark"] .lf-ad-pill { background: var(--soft); color: var(--ink); }
[data-lf-theme="dark"] :is(.sample-label, .type-pill.orange) { color: var(--orange); }
[data-lf-theme="dark"] :is(.lf-ad-row-actions button, .quick-tag, .lf-motion-toggle):hover { border-color: var(--green); }
[data-lf-theme="dark"] :is(input, textarea)::placeholder { color: var(--muted); opacity: .8; }
[data-lf-theme="dark"] :is(.store-directory-logo, .store-star-logo-wrap, .store-logo, .profile-avatar) {
  background: #f3f1eb;
  color: #23473b;
  border-color: #c7d4c9;
}
[data-lf-theme="dark"] .cover.has-official-art { background: #eeeae1; }
[data-lf-theme="dark"] :is(.lf-universe-core, .store-star-stage) img { mix-blend-mode: normal; }

.lf-push-image-preview {
  display: block;
  width: min(100%, 360px);
  max-height: 210px;
  object-fit: contain;
  object-position: left center;
  margin: 6px 0;
  border-radius: 8px;
}
[data-lf-theme="dark"] section.hero.lf-universe-hero {
  background: radial-gradient(ellipse at 86% 16%, #202e3a, transparent 56%), #171d26;
  color: var(--ink);
}
[data-lf-theme="dark"] .lf-universe-hero .lf-universe-copy h1 { color: #f4f7fb; }
[data-lf-theme="dark"] .lf-universe-hero .lf-universe-copy h1 em { color: #a2e1ca; }
[data-lf-theme="dark"] .lf-universe-hero .lf-universe-copy :is(.hero-copy, .lf-home-hint) { color: #cbd4e0; }
[data-lf-theme="dark"] .lf-universe-hero .lf-universe-copy :is(.eyebrow, .lf-home-hint span) { color: #f0bb91; }
[data-lf-theme="dark"] .lf-universe-hero .lf-home-actions .join-button {
  background: var(--night-action);
  color: var(--night-action-ink);
}
[data-lf-theme="dark"] .lf-universe-hero .lf-home-secondary { color: #b9ebd9; }
[data-lf-theme="dark"] body[data-page="home"] .home-catalogue-totals a {
  background: #1d2632 !important;
  color: var(--ink);
  border-color: var(--line);
}
[data-lf-theme="dark"] body[data-page="home"] .home-catalogue-totals strong { color: var(--orange) !important; }
[data-lf-theme="dark"] body[data-page="home"] .home-catalogue-totals a::after { color: var(--orange); }

.lf-setup-dismiss {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: 15px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.lf-setup-dismiss label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin: 0;
}
#lfSetupPrompt section[hidden] + section { margin-top: 0; padding-top: 0; border-top: 0; }
