/* Shell components injected by shell.js on every page: the eligibility gate,
   the signup offer panel and the footer notice. Kept out of home.css and
   pages.css because those two are loaded on different sets of pages. */
/* Eligibility gate — shown once per browser by shell.js */
.gate-open, .gate-open body{overflow:hidden}
.gate{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:rgba(18,13,32,.72);backdrop-filter:blur(6px)}
.gate__card{width:min(480px,100%);max-height:90vh;overflow:auto;background:var(--white);border-radius:var(--radius);padding:32px 28px;text-align:center;box-shadow:var(--shadow-lg)}
.gate__mark{width:52px;height:52px;margin:0 auto 16px;display:grid;place-items:center;border-radius:16px;background:var(--bg-soft);color:var(--purple)}
.gate__mark svg{width:26px;height:26px}
.gate__card h2{margin:0 0 12px;font-size:23px;line-height:1.25;color:var(--ink)}
.gate__card p{margin:0 0 12px;font-size:14px;line-height:1.65;color:var(--text-soft)}
.gate__card a{color:var(--purple);font-weight:700;text-decoration:underline}
.gate__ask{padding:12px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--border)}
.gate__actions{display:grid;gap:10px;margin:20px 0 14px}
.gate__actions .btn{width:100%;justify-content:center}
.gate__no{padding:10px;border:0;background:none;font-size:13px;font-weight:700;color:var(--muted);text-decoration:underline}
.gate__no:hover{color:var(--ink)}
.gate__fine{font-size:11.5px!important;color:var(--muted)!important;margin:0!important}

/* Signup offer panel — opened by the floating button */
.offer-pop{position:fixed;right:20px;bottom:84px;z-index:1400;width:min(340px,calc(100vw - 40px));background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:22px 20px 18px;box-shadow:var(--shadow-lg)}
.offer-pop[hidden]{display:none}
.offer-pop__x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:22px;line-height:1;color:var(--muted)}
.offer-pop__x:hover{color:var(--ink)}
.offer-pop h3{margin:0 0 8px;font-size:17px;color:var(--ink)}
.offer-pop p{margin:0 0 14px;font-size:13px;line-height:1.55;color:var(--text-soft)}
.offer-pop__form{display:grid;gap:9px}
.offer-pop__form[hidden]{display:none}
.offer-pop__form .btn{width:100%;justify-content:center}
.offer-pop__msg{margin:10px 0 0!important;font-size:12.5px!important;font-weight:600}
.offer-pop__msg.good{color:var(--ok)!important}
.offer-pop__msg.bad{color:#c0392b!important}
.offer-pop__msg:empty{display:none}
.offer-pop__fine{margin:12px 0 0!important;font-size:11px!important;color:var(--muted)!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.footer-ruo{max-width:600px;text-align:right}
@media (max-width:640px){.offer-pop{right:12px;left:12px;width:auto}.footer-ruo{text-align:left}}
