/* "Notify me when it launches": the public sign-up form (templates/dna_portal/
   partials/launch_signup.html) and the staff launch list page.
   --compact sits in the night-dark homepage rabbit feature;
   --full sits in the pale lavender rabbit genetics research section. */

.launch-signup { position: relative; min-width: 0; font-family: var(--lh-sans); text-align: left; }
.launch-signup__form { margin: 0; }
.launch-signup__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.launch-signup__head { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: .8rem; }
.launch-signup__bell { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; padding: .45rem; border-radius: 50%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.launch-signup__title { margin: 0; font: 600 1.35rem/1.2 var(--lh-serif); font-size-adjust: 0.46; }
.launch-signup__lede { margin: .2rem 0 0; font-size: .92rem; line-height: 1.45; }

.launch-signup__tests { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .75rem; padding: 0; border: 0; min-width: 0; }
.launch-signup__tests legend { float: left; width: 100%; margin: 0 0 .35rem; padding: 0; font: 700 .72rem/1.4 var(--lh-sans); letter-spacing: .14em; text-transform: uppercase; }
.launch-signup__pill { position: relative; margin: 0; cursor: pointer; }
.launch-signup__pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.launch-signup__pill span { display: inline-flex; align-items: center; gap: .35rem; padding: .38rem .85rem .38rem .7rem; border: 1px solid; border-radius: 999px; font: 600 .92rem/1.3 var(--lh-sans); transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease; }
.launch-signup__pill .lh-icon { width: 1em; height: 1em; opacity: 0; transform: scale(.6); transition: opacity .2s ease, transform .2s ease; }
.launch-signup__pill input:checked + span .lh-icon { opacity: 1; transform: scale(1); }
.launch-signup__pill input:focus-visible + span { outline: 2px solid rgb(var(--c-neon)); outline-offset: 2px; }

.launch-signup__row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: stretch; }
.launch-signup__email-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.launch-signup__email { flex: 1 1 13rem; min-width: 0; margin: 0; padding: .7rem 1rem !important; border: 1px solid var(--ls-field-edge) !important; border-radius: 999px !important; background: var(--ls-field) !important; color: var(--ls-field-ink) !important; font: 500 1rem/1.3 var(--lh-sans); box-shadow: none !important; transition: border-color .2s ease, box-shadow .2s ease; }
/* the site-wide input rule in moonlit.css is a 7-part :not() chain, hence !important */
.launch-signup__email::placeholder { color: var(--ls-field-hint) !important; }
.launch-signup__email:hover { border-color: var(--ls-field-hover) !important; }
.launch-signup__email:focus { outline: none; border-color: var(--ls-field-hover) !important; box-shadow: 0 0 0 3px rgb(var(--c-neon) / .25), 0 0 18px rgb(var(--c-neon) / .35) !important; }
.launch-signup__submit { flex: 0 0 auto; padding: .7rem 1.4rem; border: 1px solid rgb(var(--c-neon)); border-radius: 999px; background: linear-gradient(135deg, rgb(var(--c-neon)), rgb(var(--c-accent)) 55%, rgb(var(--c-deep))); color: rgb(var(--c-white)); font: 700 1rem/1.3 var(--lh-sans); letter-spacing: .02em; cursor: pointer; box-shadow: 0 6px 18px rgb(var(--c-accent) / .35); transition: box-shadow .25s ease, transform .25s ease; }
.launch-signup__submit:hover, .launch-signup__submit:focus-visible { transform: translateY(-1px); box-shadow: 0 0 0 3px rgb(var(--c-neon) / .25), 0 0 22px rgb(var(--c-neon) / .6); outline: none; }
.launch-signup__submit:disabled { opacity: .7; cursor: progress; transform: none; }
.launch-signup__privacy { margin: .55rem 0 0; font-size: .82rem; }
.launch-signup__status { margin: .5rem 0 0; font-weight: 700; }
.launch-signup__status:empty { display: none; }

/* done: the fields fold away and the thank-you takes their place */
.launch-signup.is-done .launch-signup__fields { display: none; }
.launch-signup.is-done .launch-signup__status { margin: .2rem 0 0; padding: .75rem 1rem; border-radius: 12px; font: 600 1.15rem/1.35 var(--lh-serif); font-size-adjust: 0.46; }

/* ---------- compact, on the night-dark homepage rabbit feature ---------- */
.launch-signup--compact { margin-top: 1.1rem; padding: 1rem 1.1rem 1.05rem; border: 1px solid rgb(var(--c-glass) / .3); border-radius: 14px; background: rgb(var(--c-night) / .55); color: rgb(var(--c-white)); box-shadow: inset 0 0 30px rgb(var(--c-neon) / .06); transition: border-color .3s ease, box-shadow .3s ease; }
.launch-signup--compact:hover, .launch-signup--compact:focus-within { border-color: rgb(var(--c-neon) / .6); box-shadow: inset 0 0 30px rgb(var(--c-neon) / .1), 0 0 24px rgb(var(--c-neon) / .25); }
.home-wrapper .launch-signup--compact .launch-signup__title { color: rgb(var(--c-white)); }
.launch-signup--compact .launch-signup__bell { color: rgb(var(--c-neon)); background: rgb(var(--c-neon) / .12); box-shadow: 0 0 14px rgb(var(--c-neon) / .35); }
.launch-signup--compact .launch-signup__lede, .launch-signup--compact .launch-signup__privacy { color: rgb(var(--c-surface-deep)); }
.launch-signup--compact .launch-signup__tests legend { color: rgb(var(--c-violet-200)); }
.launch-signup--compact .launch-signup__pill span { border-color: rgb(var(--c-glass) / .45); background: rgb(var(--c-white) / .04); color: rgb(var(--c-surface-soft)); }
.launch-signup--compact .launch-signup__pill:hover span { border-color: rgb(var(--c-neon)); box-shadow: 0 0 14px rgb(var(--c-neon) / .45); }
.launch-signup--compact .launch-signup__pill input:checked + span { border-color: rgb(var(--c-neon)); background: rgb(var(--c-neon) / .22); color: rgb(var(--c-white)); }
.launch-signup--compact { --ls-field: rgb(var(--c-night) / .75); --ls-field-edge: rgb(var(--c-glass) / .5); --ls-field-ink: rgb(var(--c-white)); --ls-field-hint: rgb(var(--c-surface-deep) / .7); --ls-field-hover: rgb(var(--c-neon)); }
.launch-signup--compact .launch-signup__status { color: rgb(var(--c-violet-200)); }
.launch-signup--compact .launch-signup__status.is-error { color: rgb(var(--c-rose-200)); }
.launch-signup--compact.is-done .launch-signup__status { border: 1px solid rgb(var(--c-neon) / .5); background: rgb(var(--c-neon) / .14); color: rgb(var(--c-white)); box-shadow: 0 0 20px rgb(var(--c-neon) / .3); }

/* ---------- full, on the pale lavender rabbit genetics page ---------- */
.launch-signup--full { max-width: 42rem; margin: 1.4rem auto .4rem; padding: clamp(1.1rem, 3vw, 1.6rem); border: 1px solid rgb(var(--c-violet-400-5)); border-radius: 16px; background: linear-gradient(145deg, rgb(var(--c-surface-soft)), rgb(var(--c-surface))); color: rgb(var(--c-ink)); box-shadow: inset 0 0 0 3px rgb(var(--c-surface-soft)), 0 8px 22px rgb(var(--c-violet-900) / .08); transition: border-color .3s ease, box-shadow .3s ease; }
.launch-signup--full:hover, .launch-signup--full:focus-within { border-color: rgb(var(--c-accent)); box-shadow: inset 0 0 0 3px rgb(var(--c-surface-soft)), 0 0 0 3px rgb(var(--c-neon) / .18), 0 10px 30px rgb(var(--c-neon) / .28); }
.moonlit-public .launch-signup--full .launch-signup__title { margin: 0; color: rgb(var(--c-deep)); font-size: 1.55rem; }
.launch-signup--full .launch-signup__bell { color: rgb(var(--c-white)); background: linear-gradient(135deg, rgb(var(--c-neon)), rgb(var(--c-deep))); box-shadow: 0 0 14px rgb(var(--c-neon) / .45); }
.launch-signup--full .launch-signup__lede, .launch-signup--full .launch-signup__privacy { color: rgb(var(--c-muted)); }
.launch-signup--full .launch-signup__tests legend { color: rgb(var(--c-accent)); }
.launch-signup--full .launch-signup__pill span { border-color: rgb(var(--c-violet-400-5)); background: rgb(var(--c-surface)); color: rgb(var(--c-deep)); }
.launch-signup--full .launch-signup__pill:hover span { border-color: rgb(var(--c-accent)); box-shadow: 0 0 14px rgb(var(--c-neon) / .4); }
.launch-signup--full .launch-signup__pill input:checked + span { border-color: rgb(var(--c-accent)); background: rgb(var(--c-deep)); color: rgb(var(--c-white)); }
.launch-signup--full { --ls-field: rgb(var(--c-white)); --ls-field-edge: rgb(var(--c-violet-400-5)); --ls-field-ink: rgb(var(--c-ink)); --ls-field-hint: rgb(var(--c-muted) / .75); --ls-field-hover: rgb(var(--c-accent)); }
.launch-signup--full .launch-signup__status { color: rgb(var(--c-deep)); }
.launch-signup--full .launch-signup__status.is-error { color: rgb(var(--c-red-600)); }
.launch-signup--full.is-done .launch-signup__status { border: 1px solid rgb(var(--c-accent) / .45); background: rgb(var(--c-white) / .7); box-shadow: 0 0 18px rgb(var(--c-neon) / .25); }

@media (max-width: 480px) {
  .launch-signup__submit { flex: 1 1 100%; }
  .launch-signup__email { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .launch-signup *, .launch-signup { transition: none !important; }
}

/* ---------- staff launch list ---------- */
.launch-admin__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 1.2rem 0 1.6rem; }
.launch-admin__card { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.2rem; border: 1px solid var(--lh-border); border-radius: 14px; background: var(--lh-surface); min-width: 0; }
.launch-admin__card h2 { margin: 0; font-size: 1.45rem; }
.launch-admin__count { margin: 0; font: 600 2.2rem/1 var(--lh-serif); color: rgb(var(--c-accent)); }
.launch-admin__meta { margin: 0; font-size: .88rem; color: rgb(var(--c-muted)); }
.launch-admin__card form { margin-top: auto; }
.launch-admin__send { width: 100%; padding: .6rem 1rem; border: 1px solid rgb(var(--c-accent)); border-radius: 999px; background: linear-gradient(135deg, rgb(var(--c-accent)), rgb(var(--c-deep))); color: rgb(var(--c-white)); font: 700 .92rem/1.3 var(--lh-sans); cursor: pointer; transition: box-shadow .2s ease; }
.launch-admin__send:hover, .launch-admin__send:focus-visible { box-shadow: 0 0 18px rgb(var(--c-neon) / .5); outline: none; }
.launch-admin__send:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.launch-admin__confirm { margin: 0 0 1.6rem; padding: 1.2rem 1.3rem; border: 2px solid rgb(var(--c-accent)); border-radius: 14px; background: rgb(var(--c-surface-soft)); box-shadow: 0 0 22px rgb(var(--c-neon) / .25); }
.launch-admin__confirm h2 { margin: 0 0 .4rem; }
.launch-admin__confirm label { display: flex; gap: .55rem; align-items: flex-start; margin: .8rem 0; font-weight: 600; }
.launch-admin__confirm input[type=checkbox] { margin-top: .25rem; width: 1.1rem; height: 1.1rem; flex: 0 0 auto; }
.launch-admin__actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.launch-admin__actions .launch-admin__send { width: auto; }
.launch-admin__toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; margin: 0 0 .8rem; }
.launch-admin__filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.launch-admin__filter { padding: .3rem .8rem; border: 1px solid var(--lh-border); border-radius: 999px; color: var(--lh-ink); text-decoration: none; font-size: .88rem; }
.launch-admin__filter.is-active { background: rgb(var(--c-deep)); border-color: rgb(var(--c-deep)); color: rgb(var(--c-white)); }
.launch-admin__table-wrap { overflow-x: auto; }
.launch-admin__table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.launch-admin__table :is(th, td) { padding: .5rem .6rem; border-bottom: 1px solid var(--lh-border); text-align: left; white-space: nowrap; }
.launch-admin__table th { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgb(var(--c-muted)); }
.launch-admin__badge { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 700; background: rgb(var(--c-surface)); color: rgb(var(--c-deep)); }
.launch-admin__badge.is-sent { background: rgb(var(--c-deep)); color: rgb(var(--c-white)); }
