/* The single sign-in pop-up (shared/signin.js). Self-contained: it also appears on the welcome page, which does not load
   the app shell, so every colour has a fallback. */
[data-when][hidden]{ display:none !important; }
.si-open, .si-open body{ overflow:hidden; }
.si-overlay{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(17,14,40,.55); }
.si-overlay[hidden]{ display:none !important; }
.si-panel{ position:relative; width:min(440px, 100%); max-height:92vh; overflow:auto; padding:1.6rem 1.6rem 1.3rem; border-radius:20px; background:var(--panel, #fff); color:var(--ink, #14112b);
  box-shadow:0 24px 60px rgba(20,12,60,.35); font-family:Lato, "Segoe UI", system-ui, -apple-system, sans-serif; line-height:1.45; }
.si-panel h2{ margin:0 2rem .6rem 0; font-size:1.6rem; font-weight:900; letter-spacing:-.01em; }
.si-panel p{ margin:.3rem 0 .7rem; }
.si-x{ position:absolute; top:.7rem; right:.7rem; width:40px; height:40px; border-radius:999px; border:0; background:transparent; color:inherit; font-size:1.6rem; line-height:1; cursor:pointer; }
.si-x:hover, .si-x:focus-visible{ background:var(--accent-soft, #ece6ff); }
.si-panel label{ display:block; margin:.7rem 0 .25rem; font-weight:800; font-size:.95rem; }
.si-panel input, .si-panel select{ width:100%; box-sizing:border-box; min-height:46px; padding:.55rem .8rem; border:2px solid var(--line, #8f89ad); border-radius:12px; background:var(--bg, #fff); color:inherit; font:inherit; }
.si-panel input:focus-visible, .si-panel select:focus-visible, .si-panel button:focus-visible{ outline:3px solid var(--accent, #5b2bd6); outline-offset:2px; }
.si-pw{ display:flex; gap:.4rem; }
.si-pw input{ flex:1 1 auto; min-width:0; }
.si-show{ flex:0 0 auto; min-height:46px; padding:0 .9rem; border-radius:12px; border:2px solid var(--line, #8f89ad); background:var(--panel, #fff); color:inherit; font-weight:700; cursor:pointer; }
.si-code{ font-size:1.4rem; letter-spacing:.35em; text-align:center; }
.si-primary{ width:100%; margin-top:1rem; min-height:50px; border-radius:999px; border:0; background:var(--accent, #5b2bd6); color:var(--accent-ink, #fff); font:inherit; font-weight:900; font-size:1.05rem; cursor:pointer; box-shadow:0 8px 20px rgba(91,43,214,.28); }
.si-primary[disabled]{ opacity:.6; cursor:progress; }
.si-err{ min-height:1.2em; margin:.5rem 0 0; color:var(--bad, #b3261e); font-weight:700; }
.si-err:empty{ margin:0; }
.si-note{ font-size:.9rem; color:var(--muted, #4f4a6b); }
.si-reason{ padding:.5rem .8rem; border-radius:10px; background:var(--accent-soft, #ece6ff); font-weight:700; }
.si-links{ display:flex; flex-wrap:wrap; gap:.3rem 1rem; margin-top:.9rem; padding-top:.8rem; border-top:1px solid var(--hairline, #e3e2f0); }
.si-links button{ min-height:40px; padding:0; border:0; background:none; color:var(--accent, #5b2bd6); font:inherit; font-weight:800; text-decoration:underline; cursor:pointer; }
@media (max-width:480px){ .si-panel{ padding:1.3rem 1.1rem 1rem; } }
.si-check{ display:flex; gap:.5rem; align-items:center; margin-top:.9rem; font-weight:700; }
.si-check input{ width:1.2rem; height:1.2rem; min-height:0; margin:0; }
