/* LUMIVALE — global polish / contrast / forms (load last) */

:root {
  --fog: #f7f9ff;
  --mist: #c5d0ea;
  --slate: #a9b6d0;
  --glass: rgba(20, 28, 52, 0.72);
  --glass-strong: rgba(14, 20, 40, 0.92);
  --glass-border: rgba(186, 214, 255, 0.22);
}

body.a59-store {
  color: var(--fog);
}

.page-main {
  color: var(--fog);
}

/* Readable body copy on glass cards */
.a59-util-card,
.a59-ac-card,
.a59-tally,
.a59-buy,
.a59-horizon-lead,
.a59-policy .a59-util-card {
  color: var(--fog);
}

.a59-util-card p,
.a59-policy p,
.a59-pd-lede,
.a59-shop-head p,
.a59-obs-lede,
.a59-horizon-lead p,
.a59-faq p,
.a59-ac aside p {
  color: var(--mist);
  line-height: 1.65;
}

.a59-policy ul,
.a59-policy ol,
.a59-util-card ul,
.a59-util-card ol {
  color: var(--mist);
  line-height: 1.7;
}

.a59-policy li + li,
.a59-faq details + details {
  margin-top: 0.15rem;
}

/* Links inside content */
.page-main a:not(.a59-btn):not(.a59-packet a):not(.a59-lane):not(.a59-obs-tile):not(.a59-star):not(.a59-tool):not(.a59-chip-row a):not(.a59-spine a):not(.a59-aisle-river a):not(.a59-horizon-chips a):not(.a59-tabbar a):not(.a59-sheet nav a):not(.a59-folio-spine-item):not(.a59-folio-plate-link):not(.a59-folio-hero-cta):not(.a59-folio-pages-prev):not(.a59-folio-pages-next):not(.a59-folio-pages-num):not(.a59-sig-chamber):not(.a59-sig-orb-link):not(.a59-sig-chip):not(.a59-beacon-dossier):not(.a59-beacon-step-card):not(.a59-pass-chip):not(.a59-pass-link):not(.a59-tray-cta):not(.a59-tray-checkout):not(.a59-tray-keep):not(.a59-tray-card-media):not(.a59-tray-card-body h3 a):not(.a59-dos-cta):not(.a59-dos-track):not(.a59-dos-secondary):not(.a59-ck-back):not(.a59-ck-legal a):not(.a59-orb-cta):not(.a59-orb-link):not(.a59-sp-cta):not(.a59-sp-crumb a):not(.a59-sp-thumb):not(.a59-sp-related-card):not(.a59-desk-card):not(.a59-dawn-step):not(.a59-loom-inline):not(.a59-loom-cta-primary):not(.a59-loom-cta-ghost):not(.a59-mason-portal):not(.a59-mason-card a):not(.a59-mason-cta):not(.lb-brand):not(.lb-util):not(.lb-btn):not(.lb-panel--feature):not(.lb-aisle):not(.lb-rack-item):not(.lb-dock-item):not(.lx-btn):not(.lx-aisle):not(.lx-pack):not(.lx-sec-link):not(.kx-pill):not(.kx-textlink):not(.cx-ticker-item):not(.cx-rail-item):not(.cx-ticket-a a):not(.fx-facet):not(.fx-cell-link):not(.fx-reset):not(.fx-pager-step):not(.fx-pager-num):not(.pp-dossier):not(.pp-go):not(.mf-cta):not(.mf-thumb):not(.mf-body h2 a):not(.mf-checkout):not(.mf-keep):not(.ld-cta):not(.ld-track):not(.ld-secondary):not(.cd-back):not(.cd-commit):not(.cd-legal a):not(.cd-blade):not(.wa-cta):not(.wa-link):not(.kd-cta):not(.kd-crumb a):not(.kd-cell):not(.kd-add):not(.ix-stamp):not(.ix-channels a):not(.ix-send):not(.cf-blade):not(.sf-inline):not(.sf-go-hot):not(.sf-go-soft):not(.rf-cta):not(.rf-band-head):not(.rf-plank-link) {
  color: var(--mint);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.page-main a:not(.a59-btn):not(.lx-btn):not(.lx-aisle):not(.lx-pack):not(.lx-sec-link):hover {
  color: #99f6e4;
}

/* Focus rings */
:focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 3px;
}

.a59-btn:focus-visible,
.a59-tool:focus-visible,
.a59-star:focus-visible {
  outline-offset: 4px;
}

/* Shared field blocks */
.a59-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.a59-field > span,
.a59-field > label,
label.a59-field {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--mist);
}

.a59-field input,
.a59-field textarea,
.a59-field select,
.a59-util label > input,
.a59-util label > textarea,
.a59-util label > select,
.a59-ac input,
.a59-ck input,
.a59-ck textarea,
.a59-ck select {
  width: 100%;
  border: 1px solid var(--glass-border);
  background: rgba(5, 7, 13, 0.55);
  border-radius: 14px;
  padding: 0.8rem 0.95rem;
  color: var(--fog);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}

.a59-field textarea,
.a59-util textarea,
.a59-ck textarea {
  min-height: 120px;
  resize: vertical;
}

.a59-field input:focus,
.a59-field textarea:focus,
.a59-field select:focus,
.a59-util input:focus,
.a59-util textarea:focus,
.a59-util select:focus,
.a59-ac input:focus,
.a59-ck input:focus,
.a59-ck textarea:focus,
.a59-ck select:focus,
.a59-shop-search input:focus,
.a59-search-bloom input:focus,
.a59-signal input:focus {
  outline: none;
  border-color: rgba(94, 234, 212, 0.55);
  box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.18);
}

.a59-util label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--mist);
}

/* Notices */
.a59-note,
.notice,
.a59-error,
.a59-success {
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid var(--glass-border);
  margin: 0 0 1rem;
}

.a59-success,
.notice.success {
  background: rgba(94, 234, 212, 0.1);
  border-color: rgba(94, 234, 212, 0.45);
  color: #cffaf3;
}

.a59-error,
.notice.warning,
.notice.error {
  background: rgba(253, 186, 116, 0.12);
  border-color: rgba(253, 186, 116, 0.5);
  color: #ffe8cc;
}

/* Buttons denser on mobile */
.a59-btn {
  min-height: 44px;
}

.a59-btn-fill:hover {
  filter: brightness(1.05);
}

/* Loading / empty */
.a59-ac-loading,
#accountLoading,
#ordersLoading {
  padding: 1.1rem 1.2rem;
  margin-bottom: 1rem;
  border-radius: 16px;
  background: var(--glass);
  border: 1px dashed var(--glass-border);
  color: var(--mist);
}

.empty-state h2 {
  margin: 0 0 0.5rem;
  color: var(--fog);
}

.empty-state p {
  color: var(--mist);
}

/* Order list polish */
.order-row {
  align-items: center;
}

.order-row .mini-copy,
.order-items {
  color: var(--mist);
  font-size: 0.85rem;
}

.order-list .mini-copy {
  color: var(--mist);
}

/* Policy spine scroll padding */
.a59-spine {
  padding-bottom: 0.35rem;
  scrollbar-width: thin;
}

.a59-spine::-webkit-scrollbar { height: 4px; }
.a59-spine::-webkit-scrollbar-thumb {
  background: rgba(186, 214, 255, 0.28);
  border-radius: 999px;
}

/* FAQ open state */
.a59-faq details[open] summary {
  color: var(--mint);
}

.a59-faq details p {
  margin: 0.55rem 0 0.2rem;
  padding-left: 0.1rem;
}

/* Payment gateway fallback */
.a59-paywall {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem;
  background: radial-gradient(700px 420px at 20% 0%, rgba(94, 234, 212, 0.16), transparent 55%), #05070d;
  color: #f4f7ff;
  font-family: "Figtree", system-ui, sans-serif;
}

.a59-paywall-card {
  width: min(420px, 100%);
  padding: 2rem 1.5rem;
  border-radius: 24px;
  background: rgba(18, 26, 48, 0.82);
  border: 1px solid rgba(186, 214, 255, 0.2);
  text-align: center;
  backdrop-filter: blur(18px);
}

.a59-paywall-card h2 {
  margin: 0 0 0.6rem;
  font-family: "Fraunces", Georgia, serif;
}

.a59-paywall-card p {
  color: #c5d0ea;
  margin: 0;
}

/* Selection */
::selection {
  background: rgba(94, 234, 212, 0.35);
  color: #04221c;
}

/* —— Site-wide readability (loads last) —— */
body.a59-store,
.page-main {
  color: #eef3fb;
}

.a59-horizon-lead p,
.a59-horizon-meta,
.mini-copy,
.a59-paywall-card p {
  color: #c5d0ea !important;
}

/* Form controls: never dark-on-dark */
.page-main input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),
.page-main textarea,
.page-main select,
.a59-horizon input,
.a59-sheet input,
.a59-sheet textarea,
.a59-sheet select {
  color: #f4f7ff !important;
  caret-color: #f4f7ff;
}

.page-main input::placeholder,
.page-main textarea::placeholder,
.a59-horizon input::placeholder {
  color: rgba(197, 208, 234, 0.75) !important;
  opacity: 1;
}

.page-main select option,
.page-main select optgroup {
  background: #101826;
  color: #f4f7ff;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: #f4f7ff !important;
  caret-color: #f4f7ff;
  box-shadow: 0 0 0 1000px #0e1624 inset !important;
  transition: background-color 99999s ease-out;
}

/* Notices / toasts stay readable */
.toast,
.notice,
.a59-note,
.a59-error,
.a59-success,
#authMessage {
  color: #f4f7ff !important;
}

.notice.success,
.a59-success,
.toast.success {
  color: #d8fff6 !important;
}

.notice.warning,
.toast.warning,
.toast.error,
.a59-error {
  color: #ffe8cc !important;
}

.page-main :disabled,
.page-main [disabled] {
  opacity: 0.75;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
