/* Shared self-serve waitlist modal. */
.waitlist-dialog { width:min(440px, calc(100% - 32px)); max-height:calc(100dvh - 32px); box-sizing:border-box; margin:auto; padding:28px; overflow-y:auto; border:0; border-radius:14px; background:var(--paper); color:var(--ink); box-shadow:0 0 0 1px var(--line), 0 24px 80px #0004; }
.waitlist-dialog::backdrop { background:#0008; }
.waitlist-close { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--muted); cursor:pointer; }
.waitlist-close:hover { background:var(--faint); color:var(--ink); }
.waitlist-close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; }
.waitlist-dialog h2 { margin:0; padding-right:24px; color:var(--ink); font:500 24px/1.2 Inter,system-ui,sans-serif; letter-spacing:-.03em; }
.waitlist-dialog > p { margin:12px 0 22px; color:var(--muted); font:13px/1.6 Inter,system-ui,sans-serif; }
.waitlist-form { display:grid; gap:18px; margin-top:22px; }
.waitlist-form[hidden] { display:none; }
.waitlist-dialog .waitlist-form > label, .waitlist-dialog .waitlist-form legend { color:var(--muted); font:400 12px/1.5 Inter,system-ui,sans-serif; }
.waitlist-form label { display:grid; gap:8px; }
.waitlist-form label small, .waitlist-bottlenecks-hint { color:inherit; font:inherit; }
.waitlist-form input, .waitlist-form textarea { width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); font:16px/1.5 Inter,system-ui,sans-serif; }
.waitlist-form input:focus-visible, .waitlist-form textarea:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.waitlist-form textarea { min-height:100px; resize:vertical; }
.waitlist-form input::placeholder, .waitlist-form textarea::placeholder { color:var(--muted); opacity:.8; }
.waitlist-form .waitlist-submit { width:100%; min-height:44px; margin:0; cursor:pointer; }
.waitlist-submit:disabled { opacity:.65; cursor:wait; }
.waitlist-dialog .waitlist-status { min-height:1.6em; margin:14px 0 0; font-size:12px; }
@media(prefers-reduced-motion:reduce) {
  .button-waitlist, .waitlist-submit { transition:none; }
  .button-waitlist:hover, .waitlist-submit:hover { transform:none; }
}

.waitlist-field-error { display:none; color:var(--ink); font-size:12px; }
.waitlist-field-error[data-fs-active] { display:block; }
.waitlist-form [aria-invalid="true"] { border-color:var(--ink); }

.waitlist-bottlenecks { min-width:0; margin:0; padding:0; border:0; }
.waitlist-bottlenecks legend { margin-bottom:10px; padding:0; }
.waitlist-bottleneck-options { display:flex; flex-wrap:wrap; gap:8px; }
.waitlist-form .waitlist-bottleneck { position:relative; display:block; max-width:100%; cursor:pointer; }
.waitlist-form .waitlist-bottleneck input { position:absolute; width:1px; height:1px; margin:0; padding:0; overflow:hidden; clip-path:inset(50%); border:0; }
.waitlist-bottleneck-chip { display:flex; align-items:center; gap:6px; min-height:40px; box-sizing:border-box; padding:8px 10px; border-radius:7px; background:var(--paper); box-shadow:inset 0 0 0 1px var(--line); color:var(--muted); font:12px/1.4 Inter,system-ui,sans-serif; }
.waitlist-bottleneck-chip svg { flex:none; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.waitlist-bottleneck-chip svg path { stroke-width:1.8; opacity:0; }
.waitlist-bottleneck:hover .waitlist-bottleneck-chip { background:var(--faint); }
.waitlist-bottleneck input:checked + .waitlist-bottleneck-chip { background:#9da0ff26; box-shadow:inset 0 0 0 1px var(--polish-accent, var(--blue)); color:var(--ink); }
.waitlist-bottleneck input:checked + .waitlist-bottleneck-chip svg rect { fill:var(--ink); stroke:var(--ink); }
.waitlist-bottleneck input:checked + .waitlist-bottleneck-chip svg path { stroke:var(--paper); opacity:1; }
.waitlist-bottleneck input:focus-visible + .waitlist-bottleneck-chip { outline:2px solid var(--ink); outline-offset:2px; }
