/* Shared feedback for the launched site. Page palettes and action semantics stay local. */
/* Low-specificity defaults: new components inherit readable text and can own
   their colors without fighting the legacy gradient heading/theme skins. */
:where(body.goblin-salon,body.account-page) :is(h1,h2,h3,h4){background:none;color:inherit;-webkit-text-fill-color:currentColor;text-shadow:none}
body.site-ui {
  --ui-panel:var(--panel,var(--card-bg,#fffdf8));
  --ui-ink:var(--text,var(--ink,#272820));
  --ui-line:var(--line,var(--border,#d5d9cb));
  --ui-accent:var(--accent,var(--gold,#344a39));
  --ui-primary:var(--gold,#d8bd7e);
  --ui-primary-ink:#172019;
  --ui-hover:var(--ui-panel);
  --ui-primary-hover:var(--ui-primary);
  --ui-danger-hover:#822f2a;
}
@supports(color:color-mix(in srgb,#000,#fff)) {
  body.site-ui {
    --ui-hover:color-mix(in srgb,var(--ui-panel) 96%,var(--ui-accent));
    --ui-primary-hover:color-mix(in srgb,var(--ui-primary) 90%,var(--ui-ink));
  }
}
body.site-ui.goblin-salon {
  --ui-panel:var(--salon-panel);--ui-ink:var(--salon-ink);
  --ui-line:var(--salon-line);--ui-accent:var(--salon-gold);
  --ui-primary:var(--salon-gold);--ui-primary-ink:var(--salon-button-ink);
}
body.site-ui.account-page {
  --ui-panel:var(--account-panel);--ui-ink:var(--account-text);
  --ui-line:var(--account-line);--ui-accent:var(--account-accent);
  --ui-primary:var(--account-gold);--ui-primary-ink:#25261b;
}

/* The ID alternatives deliberately outrank the legacy global form button skin. */
:where(html body.site-ui button) {--ui-control-background:var(--ui-hover)}
html body.site-ui :is(button,#draw-btn,#submit-btn,#again-btn) {
  margin-top:0;box-shadow:none!important;text-shadow:none!important;letter-spacing:normal;
  transform:none;filter:none;
  transition:background-color .16s,border-color .16s,color .16s;
}
html body.site-ui :is(button,#draw-btn,#submit-btn,#again-btn):is(:hover,:focus-visible,:active) {
  box-shadow:none!important;text-shadow:none!important;transform:none!important;filter:none!important;
}
html body.site-ui :where(a,button,input,textarea,select,summary):focus-visible {
  outline:2px solid var(--ui-accent);outline-offset:3px;
}
html body.site-ui :is(button,#draw-btn,#submit-btn,#again-btn):not(:disabled):focus-visible {
  background:var(--ui-control-background)!important;
}
@media(hover:hover) {
  html body.site-ui :is(button,#draw-btn,#submit-btn,#again-btn):not(:disabled):hover {
    background:var(--ui-control-background)!important;
  }
}

/* Primary actions keep their own contrast in hover, focus and selected states. */
html body.site-ui :where(.btn-primary,.rv-primary,.account-button.primary,.primary,.lock-pay-btn,#draw-btn,#submit-btn,#again-btn) {
  --ui-control-background:var(--ui-primary-hover);
}
html body.site-ui.goblin-salon :is(.btn-primary,.rv-primary,.lock-pay-btn,#draw-btn,#submit-btn,#again-btn):not(:disabled):is(:hover,:focus-visible) {
  color:var(--ui-primary-ink)!important;-webkit-text-fill-color:currentColor!important;
}
html body.site-ui #input-section.goblin-input :is(#draw-btn,#submit-btn) {
  margin-top:24px;min-height:48px;padding:12px 22px;
}
html body.site-ui #input-section.goblin-input :is(button,input,select,textarea):focus-visible {
  outline:2px solid var(--ui-accent);outline-offset:3px;
}
html body.site-ui.goblin-salon :is(.btn-primary,.lock-pay-btn,#tarot-generation-retry) {
  --ui-control-background:var(--ui-primary-hover);
  background:var(--ui-primary)!important;color:var(--ui-primary-ink)!important;
  -webkit-text-fill-color:currentColor!important;
}
html body.site-ui :is(.reading-resume-button,.btn-secondary,.library-home),
html body.site-ui:not(.account-page) .account-button {
  display:inline-flex;align-items:center;justify-content:center;
  width:auto;min-height:44px;padding:10px 16px;line-height:1.5;font-size:13px;
  border:1px solid var(--ui-line);border-radius:9px;
  background:var(--ui-panel)!important;color:var(--ui-ink)!important;
  -webkit-text-fill-color:currentColor!important;text-decoration:none;
}
html body.site-ui.goblin-salon :where(#tarot-generation-recovery,.symbol-history-status,#reading-save-recovery) button {
  background:var(--ui-panel)!important;color:var(--ui-ink)!important;
  -webkit-text-fill-color:currentColor!important;
}
html body.site-ui #reading-save-recovery {
  background:var(--ui-panel)!important;color:var(--ui-ink)!important;
  border-color:var(--ui-line)!important;
}
html body.site-ui #reading-save-recovery button {
  margin:4px;min-height:44px;border:1px solid var(--ui-line);
}
html body.site-ui :is(.account-button,.account-delete,.withdrawal-close) {
  margin:0;line-height:1.5;
}
html body.site-ui :is(.account-button.danger,.save-moderation) {
  --ui-control-background:var(--ui-danger-hover);
}
html body.site-ui .save-moderation {--ui-control-background:var(--ink,#272820)}
html body.site-ui :is(.withdrawal-close,.rv-close,.auth-modal-close) {
  width:44px;min-width:44px;min-height:44px;flex:0 0 44px;
  padding:0;margin:0;line-height:1;border-radius:9px;
}
html body.site-ui :is(.rv-text,.account-delete,.withdrawal-close,.rv-close) {
  --ui-control-background:var(--ui-hover);
}
html body.site-ui :is(.rv-text,.account-delete):is(:hover,:focus-visible) {
  text-decoration:underline;text-underline-offset:4px;
}

/* Question examples and review filters remain visibly selected while hovered. */
html body.site-ui #input-section .tarot-example-buttons button,
html body.site-ui #input-section #tarot-use-example {
  --ui-control-background:var(--ui-hover);
  color:var(--salon-ink)!important;-webkit-text-fill-color:currentColor!important;
}
html body.site-ui #input-section .tarot-example-buttons button[aria-pressed=true] {
  --ui-control-background:var(--ui-primary);
  background:var(--ui-primary)!important;border-color:var(--ui-primary);
  color:var(--ui-primary-ink)!important;-webkit-text-fill-color:currentColor!important;
}
html body.site-ui .rv-filters button[aria-pressed=true] {
  --ui-control-background:var(--salon-ink);
}
html body.site-ui .language-selector .language-option {
  --ui-control-background:var(--ui-hover);
  background:transparent;color:var(--ui-ink)!important;-webkit-text-fill-color:currentColor!important;
}
html body.site-ui .language-selector .language-option.active {
  --ui-control-background:var(--ui-hover);
  background:var(--ui-hover);font-weight:700!important;
}
html body.site-ui .language-menu {
  background:var(--ui-panel)!important;border-color:var(--ui-line)!important;
  box-shadow:0 8px 24px #0002!important;
}
html body.site-ui #language {min-height:34px;width:52px;padding:0;border-radius:20px}
html body.site-ui .account-link {--ui-control-background:var(--account-soft)}
html body.site-ui .account-link:focus-visible {outline-offset:-3px}

/* Text navigation and clickable cards offer the same feedback to mouse and keyboard. */
html body.site-ui :is(.salon-methods a,.salon-nav-links a,.back-link,.account-legal a,.header-links a,.footer-legal-row a):is(:hover,:focus-visible) {
  text-decoration:underline;text-underline-offset:4px;
}
html body.site-ui .launch-entry:focus-visible .launch-start {
  text-decoration:underline;text-underline-offset:5px;
}
html body.site-ui .library-item:is(:hover,:focus-visible) {border-color:var(--ui-accent)}
html body.site-ui :is(.admin-nav,.section-nav) a {border-radius:8px}
html body.site-ui :is(.admin-nav,.section-nav) a:is(:hover,:focus-visible) {
  background:var(--ui-hover);text-decoration:none;
}
html body.site-ui :is(a.library-home,a.account-button,a.button) {
  --ui-control-background:var(--ui-hover);
  transition:background-color .16s,border-color .16s,color .16s;
}
html body.site-ui a.account-button.primary {--ui-control-background:var(--ui-primary-hover)}
html body.site-ui :is(a.library-home,a.account-button,a.button):focus-visible {
  background:var(--ui-control-background)!important;border-color:var(--ui-accent);
}
@media(hover:hover) {
  html body.site-ui :is(a.library-home,a.account-button,a.button):hover {
    background:var(--ui-control-background)!important;border-color:var(--ui-accent);
  }
}
html body.site-ui #salon-start-reading {
  transition:background-color .16s;box-shadow:none!important;
}
html body.site-ui #salon-start-reading:is(:hover,:focus-visible) {
  background:var(--start-background)!important;
}
@supports(color:color-mix(in srgb,#000,#fff)) {
  html body.site-ui #salon-start-reading:is(:hover,:focus-visible) {
    background:color-mix(in srgb,var(--start-background) 90%,var(--salon-ink))!important;
  }
}

/* Payment confirmation uses one self-contained palette, including the cancel action. */
html body.site-ui .auth-modal {
  --ui-panel:#172017;--ui-ink:#f4eedf;--ui-accent:#ecd896;--ui-hover:#29362a;
  background:var(--ui-panel)!important;color:var(--ui-ink)!important;border-color:#64735b;
}
html body.site-ui .auth-modal .auth-modal-title {
  background:none;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;
}
html body.site-ui .auth-modal-close {
  background:transparent;color:var(--ui-ink)!important;
}
html body.site-ui .payment-consent-dialog {
  --ui-accent:#ecd896;--ui-panel:#172017;--ui-ink:#f4eedf;
  --ui-hover:#29362a;
}
html body.site-ui .payment-consent-actions button {
  --ui-control-background:var(--ui-hover);
  margin:0;box-shadow:none;text-shadow:none;line-height:1.5;
}
html body.site-ui .payment-consent-actions button:last-child {
  --ui-control-background:#e3c782;
}

/* Disabled actions never gain the visual treatment of an available action. */
html body.site-ui button:disabled {cursor:not-allowed}
@media(prefers-reduced-motion:reduce) {
  html body.site-ui :is(button,.salon-primary,.account-button,.library-home) {transition:none!important}
}
