/* Reset */
    *, *::before, *::after { box-sizing: border-box; }
    html, body { height: 100%; }
    body {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      color: #17223b;
      background:
        linear-gradient(rgba(10,16,30,0.45), rgba(10,16,30,0.45)),
        url("https://s3.us-east-2.amazonaws.com/www.northeastrcce.com/logo-hd.png")
          center center / contain no-repeat fixed;
      background-color: #ffffff;
      display: grid;
      grid-template-rows: auto 1fr auto;
      min-height: 100vh;
    }

    /* Top brand bar */
    .brand {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 22px;
      background: rgba(255,255,255,0.65);
      backdrop-filter: blur(6px);
      border-bottom: 1px solid rgba(0,0,0,0.06);
    }
    .brand-left {
      display: flex;
      align-items: center;
      gap: 14px;
    }
    .brand-home {
      display: inline-flex;
      align-items: center;
      text-decoration: none;
    }
    .brand img {
      height: 44px; width: auto; border-radius: 6px; user-select: none; -webkit-user-drag: none;
      box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    }
    .brand .titles { display: grid; line-height: 1.1; }
    .brand .title {
      font-weight: 800; letter-spacing: 0.2px; color: #0b3a7c; font-size: 1.2rem;
      text-shadow: 0 1px 0 rgba(255,255,255,0.6);
    }
    .brand .subtitle { font-size: 0.92rem; color: #244a84; opacity: 0.95; }
    .privacy-link,
    .delete-link,
    .contact-link {
      font-size: 0.95rem;
      color: #0b3a7c;
      text-decoration: none;
      font-weight: 600;
    }
    .privacy-link:hover,
    .delete-link:hover,
    .contact-link:hover {
      text-decoration: underline;
      color: #244a84;
    }
    /* Main content */
    .main { display: grid; place-items: center; padding: clamp(16px, 2vw, 32px); }

    /* Login card */
    .card {
      width: min(420px, 92vw);
      background: rgba(255,255,255,0.95);
      border-radius: 14px;
      box-shadow: 0 20px 60px rgba(0,0,0,0.25);
      padding: clamp(20px, 3.2vw, 28px);
      backdrop-filter: blur(6px);
      border: 1px solid rgba(0,0,0,0.06);
      display: grid;
      gap: 14px;
      animation: pop 220ms ease-out;
    }
    @keyframes pop {
      from { transform: translateY(6px) scale(0.98); opacity: 0; }
      to   { transform: translateY(0)    scale(1);     opacity: 1; }
    }
    .card h1 { margin: 2px 0 4px; font-size: 1.55rem; text-align: center; color: #0b3a7c; }
    .card p.helper { text-align: center; font-size: 0.95rem; color: #3a4a66; margin: 0 0 6px; }

    /* Form */
    form { display: grid; gap: 12px; }
    label { font-size: 0.9rem; color: #23324e; }
    input[type="email"], input[type="password"] {
      width: 100%;
      border: 1px solid #cfd7e6;
      border-radius: 10px;
      padding: 12px 14px;
      font-size: 1rem;
      background: #fff;
      outline: none;
      transition: box-shadow .15s, border-color .15s, background .15s;
    }
    input:focus { border-color: #2f6fe4; box-shadow: 0 0 0 3px rgba(47,111,228,0.18); }

    .password-field { position: relative; }
    .toggle-btn {
      position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
      border: 0; background: transparent; color: #2f6fe4; cursor: pointer;
      padding: 6px 8px; border-radius: 8px; font-size: 0.9rem;
    }
    .toggle-btn:hover { text-decoration: underline; }

    .submit {
      border: 0; border-radius: 10px; padding: 12px 14px; font-size: 1rem; font-weight: 700; color: #fff;
      background: linear-gradient(180deg, #2f6fe4, #1f56b9);
      cursor: pointer; box-shadow: 0 8px 18px rgba(47,111,228,0.35);
      transition: transform .06s ease, filter .2s ease;
    }
    .submit:hover { filter: brightness(1.05); }
    .submit:active { transform: translateY(1px); }
    .submit.loading { position: relative; pointer-events: none; }
    .submit.loading::after {
      content: ""; position: absolute; inset: 0; border-radius: inherit;
      background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.45), transparent 55%);
      animation: pulse 1s ease-in-out infinite;
    }
    @keyframes pulse { 0%,100%{opacity:.2} 50%{opacity:.7} }

    #errorMsg { min-height: 1.2em; text-align: center; font-size: 0.95rem; color: #cc2d2d; }
    #errorMsg.success { color: #1b8f3b; }
    .mfa-error {
      min-height: 1.2em;
      text-align: center;
      font-size: 0.95rem;
      font-weight: 700;
      color: #cc2d2d;
    }
    .mfa-error.success { color: #1b8f3b; }
    
    /* Access Denied Message */
    #accessDeniedMsg {
      display: none;
      background: #fff3cd;
      border: 2px solid #ffc107;
      border-radius: 10px;
      padding: 16px;
      margin: 12px 0;
      text-align: center;
    }
    #accessDeniedMsg.show {
      display: block;
    }
    #accessDeniedMsg h2 {
      margin: 0 0 8px;
      font-size: 1.3rem;
      color: #d32f2f;
    }
    #accessDeniedMsg p {
      margin: 4px 0;
      color: #856404;
      font-size: 0.95rem;
    }

    .links { text-align: center; margin-top: 2px; }
    .links a { color: #2f6fe4; text-decoration: none; font-size: 0.95rem; }
    .links a:hover { text-decoration: underline; }

    #mfaPanel {
      display: none;
      gap: 12px;
      padding-top: 6px;
      border-top: 1px solid rgba(11, 58, 124, 0.12);
    }
    #mfaPanel.show { display: grid; }
    .mfa-heading {
      margin: 0;
      text-align: center;
      color: #0b3a7c;
      font-size: 1.1rem;
      font-weight: 800;
    }
    .mfa-helper {
      margin: 0;
      text-align: center;
      color: #3a4a66;
      font-size: 0.92rem;
    }
    .mfa-code-row {
      display: grid;
      gap: 8px;
    }
    .mfa-code-row input {
      text-align: center;
      letter-spacing: 0.16em;
      font-size: 1.15rem;
    }
    .mfa-qr-wrap[hidden] {
      display: none !important;
    }
    .mfa-qr-wrap {
      display: grid;
      justify-items: center;
      gap: 8px;
    }
    #mfaQrCanvas {
      width: 180px;
      height: 180px;
      border: 1px solid #cfd7e6;
      border-radius: 12px;
      background: #fff;
      padding: 8px;
    }
    .mfa-secret {
      background: #f5f8ff;
      border: 1px solid #d6e2ff;
      border-radius: 10px;
      padding: 10px 12px;
      font-size: 0.9rem;
      color: #244a84;
      word-break: break-word;
      text-align: center;
    }
    .mfa-actions {
      display: grid;
      gap: 10px;
    }
    .mfa-secondary {
      border: 1px solid #cfd7e6;
      border-radius: 10px;
      padding: 11px 14px;
      font-size: 0.96rem;
      font-weight: 700;
      background: #eef3ff;
      color: #244a84;
      cursor: pointer;
    }
    .mfa-secondary:hover { background: #e6eeff; }

    /* Contact modal */
    .contact-modal-backdrop {
      position: fixed; inset: 0; background: rgba(0,0,0,0.35);
      display: none; align-items: center; justify-content: center; z-index: 1000;
    }
    .contact-modal-backdrop.show { display: flex; }
    .contact-modal {
      width: min(360px, 92vw); background: #fff; border-radius: 12px;
      box-shadow: 0 18px 50px rgba(0,0,0,0.35); padding: 16px;
      border: 1px solid rgba(0,0,0,0.06);
    }
    .contact-modal h2 { margin: 0 0 8px; font-size: 1.1rem; color: #0b3a7c; text-align: center; }
    .contact-modal p { margin: 6px 0 12px; text-align: center; font-size: .95rem; color: #23324e; word-break: break-all; }
    .contact-actions { display: flex; gap: 10px; justify-content: center; }
    .contact-actions button { border: 0; border-radius: 10px; padding: 10px 14px; font-weight: 700; cursor: pointer; }
    #copyEmailBtn { background: linear-gradient(180deg,#2f6fe4,#1f56b9); color: #fff; box-shadow: 0 8px 18px rgba(47,111,228,0.35); }
    #closeContactBtn { background: #eef3ff; color: #244a84; border: 1px solid #cfd7e6; }

    /* Footer */
    footer {
      padding: 10px 16px; text-align: center; font-size: 0.85rem;
      color: rgba(255,255,255,0.9); text-shadow: 0 1px 2px rgba(0,0,0,0.35);
    }

    /* Responsive nits */
    @media (max-width: 520px) {
      .brand { flex-direction: column; align-items: flex-start; gap: 8px; }
      .privacy-link { align-self: flex-end; }
      .delete-link { align-self: flex-end; }
      .contact-link { align-self: flex-end; }
    }

/* Former inline style attributes */

.csp-a68e30f7d8 { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }

.csp-67564ea646 { position:absolute;left:-9999px;width:1px;height:1px;opacity:0; }
