/* Toolvoro v10.57 — release-blocking UI contrast contract.
   This stylesheet MUST be loaded last in <head>. It owns button/CTA colors so
   historical page-local CSS cannot create unreadable dark/light theme states. */

/* Primary / affiliate actions — dark theme */
html:not([data-theme="light"]) body a.btn-official.is-affiliate[class],
html:not([data-theme="light"]) body :is(a,button).btn-primary[class],
html:not([data-theme="light"]) body a.side-primary-cta[class],
html:not([data-theme="light"]) body a.sticky-cta-primary[class],
html:not([data-theme="light"]) body .article-body a.tv-cta-button:not(.secondary)[class] {
  background:#00c47c!important;
  color:#04151b!important;
  border-color:#00c47c!important;
  opacity:1!important;
  visibility:visible!important;
  text-decoration:none!important;
}

/* Secondary / internal actions — dark theme */
html:not([data-theme="light"]) body :is(a,button).btn-secondary[class],
html:not([data-theme="light"]) body a.btn-review[class],
html:not([data-theme="light"]) body a.btn-compare[class],
html:not([data-theme="light"]) body a.btn-official:not(.is-affiliate)[class],
html:not([data-theme="light"]) body .article-body a.tv-cta-button.secondary[class] {
  background:#0b3a43!important;
  color:#42f0b5!important;
  border:1px solid #21c98d!important;
  opacity:1!important;
  visibility:visible!important;
  text-decoration:none!important;
}

/* Primary / affiliate actions — light theme */
html[data-theme="light"] body a.btn-official.is-affiliate[class],
html[data-theme="light"] body :is(a,button).btn-primary[class],
html[data-theme="light"] body a.side-primary-cta[class],
html[data-theme="light"] body a.sticky-cta-primary[class],
html[data-theme="light"] body .article-body a.tv-cta-button:not(.secondary)[class] {
  background:#007a4d!important;
  color:#ffffff!important;
  border-color:#007a4d!important;
  opacity:1!important;
  visibility:visible!important;
  text-decoration:none!important;
}

/* Secondary / internal actions — light theme */
html[data-theme="light"] body :is(a,button).btn-secondary[class],
html[data-theme="light"] body a.btn-review[class],
html[data-theme="light"] body a.btn-compare[class],
html[data-theme="light"] body a.btn-official:not(.is-affiliate)[class],
html[data-theme="light"] body .article-body a.tv-cta-button.secondary[class] {
  background:#eef8f4!important;
  color:#005938!important;
  border:1px solid #007a4d!important;
  opacity:1!important;
  visibility:visible!important;
  text-decoration:none!important;
}

/* Monetization surfaces are always readable/tappable. Theme changes switch
   colors atomically; only motion/feedback properties animate. */
html body a.side-primary-cta[class],
html body a.sticky-cta-primary[class],
html body .article-body a.tv-cta-button[class],
html body a.btn-official[class],
html body a.btn-review[class],
html body a.btn-compare[class],
html body :is(a,button).btn-primary[class],
html body :is(a,button).btn-secondary[class] {
  min-height:40px;
  box-sizing:border-box;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,border-color .15s ease!important;
}
html body a.side-primary-cta[class],
html body a.sticky-cta-primary[class],
html body .article-body a.tv-cta-button[class] { min-height:48px!important; }
