body.signup-open { overflow:hidden; }
.auth-controls { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-left:auto; max-width:100%; }
.auth-guide-controls { justify-content:flex-start; margin:16px 0 0; }
.auth-secondary,.auth-switch { padding:10px 16px; border:1px solid #7290b5; border-radius:10px; background:#203750; color:#eef5ff; font-weight:700; }
.auth-secondary:hover,.auth-switch:hover { background:#304e73; }
.auth-name { max-width:260px; overflow-wrap:anywhere; font-weight:700; }
.auth-control-status { flex-basis:100%; font-size:12px; color:#bcd5f8; text-align:right; overflow-wrap:anywhere; }
.auth-guide-controls .auth-control-status { text-align:left; }
.auth-control-status[data-error="true"] { color:#ffb4ab; }
.auth-remember { display:flex; gap:8px; align-items:flex-start; font-size:13px; color:#c7d8ef; }
.auth-remember input { margin-top:5px; accent-color:#638bff; }
.auth-controls [hidden] { display:none; }
.signup-submit:disabled,.auth-secondary:disabled { opacity:.6; cursor:wait; }
.signup-open-button { margin-left:auto; flex-shrink:0; padding:10px 18px; border:1px solid #7297ff; border-radius:10px; background:#2d5bff; color:#fff; font-weight:700; }
.signup-guide-button { margin:16px 0 0; }
.signup-open-button:hover,.signup-submit:hover { background:#1946e8; }
.signup-dialog { width:min(560px,calc(100% - 28px)); max-height:calc(100dvh - 32px); padding:30px; border:1px solid #46638b; border-radius:22px; background:linear-gradient(145deg,#223650,#152235); color:#e8eef7; box-shadow:0 30px 100px #0008; overflow-y:auto; }
.signup-dialog::backdrop { background:rgba(4,12,25,.78); backdrop-filter:blur(6px); }
.signup-heading { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; }
.signup-kicker { color:#a2c5ff; font-size:11px; letter-spacing:.2em; font-weight:800; }
.signup-heading h2 { font-size:26px; margin:10px 0 0; line-height:1.4; letter-spacing:-.035em; word-break:keep-all; }
.signup-close { flex-shrink:0; width:36px; height:36px; border:1px solid #58708f; border-radius:50%; background:#243b58; color:#fff; font-size:24px; line-height:1; }
.signup-intro { margin:14px 0; color:#bdcde2; font-size:14px; }
.signup-notice { padding:12px 14px; border:1px solid #57749b; border-radius:10px; background:#182d48; color:#cedfff; font-size:13px; }
.signup-form { display:grid; gap:16px; margin-top:22px; }
.signup-field { display:grid; gap:6px; }
.signup-field label { font-size:14px; font-weight:700; }
.signup-field input { width:100%; min-width:0; border:1px solid #5a7292; border-radius:8px; padding:11px 13px; background:#111f32; color:#f3f7ff; }
.signup-field small { color:#b3c5dc; font-size:12px; }
.password-input-wrap { position:relative; min-width:0; }
.password-input-wrap input { padding-right:52px; }
.password-toggle { position:absolute; top:50%; right:4px; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:40px; padding:0; border:0; border-radius:6px; background:transparent; color:#c2d7f1; }
.password-toggle:hover { background:#243b58; color:#fff; }
.password-toggle[aria-pressed="true"] .password-eye-slash { display:none; }
.signup-consents { min-width:0; margin:0; padding:14px; border:1px solid #4c6485; border-radius:10px; }
.signup-consents legend { color:#cbdcf2; font-size:13px; padding:0 6px; }
.signup-consents label { display:flex; align-items:flex-start; gap:8px; font-size:13px; margin:8px 0; }
.signup-consents input { flex-shrink:0; margin-top:5px; accent-color:#638bff; }
.signup-consents details { margin:0 0 12px 24px; font-size:12px; color:#bacde6; }
.signup-consents summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.signup-status { margin:0; font-size:13px; color:#97ebc4; overflow-wrap:anywhere; }
.signup-status[data-error="true"] { color:#ffb4ab; }
.signup-submit { padding:13px; border:1px solid #7297ff; border-radius:10px; background:#2d5bff; color:#fff; font-weight:700; }
.signup-footnote { margin:0; color:#b3c5dc; font-size:12px; text-align:center; }
.signup-dialog button:focus-visible,.signup-dialog summary:focus-visible,.signup-open-button:focus-visible { outline:3px solid #b9d8ff; outline-offset:3px; }
@media (max-width:600px) {
  .brand { flex-wrap:wrap; }
  .signup-open-button { margin-left:0; }
  .auth-controls { margin-left:0; justify-content:flex-start; }
  .auth-control-status { text-align:left; }
  .signup-dialog { padding:22px 18px; }
  .signup-heading h2 { font-size:22px; }
}
