    :root {
      --ink: #141313;
      --muted: #6f7474;
      --teal: #0bb8b5;
      --teal-dark: #009b99;
      --teal-soft: #e7f8f7;
      --aqua: #dff8f7;
      --line: #d9e2e1;
      --white: #ffffff;
      --danger: #a53d45;
      --shadow: 0 34px 90px rgba(23, 55, 58, .16), 0 10px 28px rgba(23, 55, 58, .08);
    }

    * { box-sizing: border-box; }
    html { min-width: 320px; }
    body {
      margin: 0;
      min-height: 100vh;
      font-family: "DM Sans", Arial, Helvetica, sans-serif;
      color: var(--ink);
      background:
        radial-gradient(circle at 12% 14%, rgba(255,255,255,.94), transparent 29%),
        radial-gradient(circle at 88% 84%, rgba(11,184,181,.12), transparent 31%),
        radial-gradient(circle at 72% 18%, rgba(0,143,141,.055), transparent 24%),
        linear-gradient(135deg, #f8fbfb 0%, #edf7f6 48%, #e3f1f0 100%);
    }

    button, input { font: inherit; }
    a { color: inherit; }

    .auth-shell {
      position: relative;
      min-height: 100vh;
      display: grid;
      place-items: center;
      padding: 38px 22px;
      overflow: hidden;
    }

    .auth-shell::before,
    .auth-shell::after {
      content: "";
      position: absolute;
      border-radius: 999px;
      pointer-events: none;
      filter: blur(2px);
    }

    .auth-shell::before {
      width: 420px;
      height: 420px;
      left: -240px;
      top: 15%;
      border: 1px solid rgba(11,184,181,.18);
    }

    .auth-shell::after {
      width: 560px;
      height: 560px;
      right: -330px;
      bottom: -260px;
      border: 1px solid rgba(11,184,181,.16);
    }

    .auth-card {
      position: relative;
      z-index: 1;
      width: min(1080px, 100%);
      min-height: 640px;
      display: grid;
      grid-template-columns: .92fr 1.08fr;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,.9);
      border-radius: 28px;
      background: rgba(255,255,255,.96);
      box-shadow: var(--shadow);
    }

    .brand-panel {
      position: relative;
      min-height: 640px;
      padding: 42px 42px 38px;
      overflow: hidden;
      isolation: isolate;
      background:
        radial-gradient(circle at 20% 14%, rgba(255,255,255,.92) 0, rgba(255,255,255,.32) 24%, transparent 48%),
        radial-gradient(circle at 82% 76%, rgba(0,126,124,.18) 0, rgba(11,184,181,.08) 30%, transparent 62%),
        linear-gradient(150deg, #eefcfc 0%, #d9f5f3 44%, #bfe8e6 74%, #9fd9d6 100%);
    }

    .brand-panel::before {
      content: "";
      position: absolute;
      z-index: 0;
      width: 520px;
      height: 520px;
      left: 49%;
      bottom: -335px;
      transform: translateX(-50%);
      border: 2px solid rgba(255,255,255,.62);
      border-radius: 50%;
      box-shadow:
        0 0 0 76px rgba(255,255,255,.12),
        0 0 0 154px rgba(0,143,141,.11),
        0 0 0 232px rgba(255,255,255,.08);
      pointer-events: none;
    }

    .brand-panel::after {
      content: "";
      position: absolute;
      z-index: 0;
      width: 300px;
      height: 300px;
      right: -95px;
      top: 118px;
      border: 1px solid rgba(0,126,124,.34);
      border-radius: 50%;
      box-shadow: 0 0 0 42px rgba(255,255,255,.08);
      pointer-events: none;
    }

    .brand-lockup {
      position: relative;
      z-index: 3;
      width: 210px;
    }

    .brand-lockup img {
      display: block;
      width: 100%;
      height: auto;
    }

    .brand-medallion {
      position: absolute;
      z-index: 3;
      left: 50%;
      bottom: 72px;
      width: 94px;
      height: 94px;
      transform: translateX(-50%);
      display: grid;
      place-items: center;
      border: 2px solid rgba(0,143,141,.92);
      border-radius: 50%;
      background: rgba(255,255,255,.88);
      color: var(--teal-dark);
      font-family: Georgia, "Times New Roman", serif;
      font-size: 4rem;
      line-height: 1;
      box-shadow: 0 18px 42px rgba(0,126,124,.18);
      backdrop-filter: blur(8px);
    }

    .brand-medallion span { transform: translateY(-4px); }

    .form-panel {
      display: grid;
      place-items: center;
      padding: 58px clamp(34px, 5vw, 76px);
      background: rgba(255,255,255,.97);
      border-left: 1px solid rgba(0,143,141,.07);
    }

    .form-wrap { width: min(100%, 470px); }
    .form-heading { margin-bottom: 28px; }

    h1 {
      margin: 0;
      font-size: clamp(2.25rem, 3.2vw, 2.75rem);
      line-height: 1.04;
      white-space: nowrap;
      letter-spacing: -.05em;
      font-weight: 700;
    }

    .form-heading p {
      margin: 15px 0 0;
      color: var(--muted);
      font-size: 1rem;
      line-height: 1.6;
    }
    .errmsg:empty { display: none; }
    .errmsg {
      margin: 0 0 20px;
      font-size: .9rem;
    }
    .errmsg .status-alert--success,
    .errmsg .alert-success {
      margin: 0;
      padding: 16px 18px;
      border: 1px solid #a9ddd1;
      border-radius: 12px;
      background: #edf9f5;
      color: #176b5b;
      line-height: 1.5;
      box-shadow: 0 8px 22px rgba(23, 107, 91, .08);
    }

    .errmsg .status-alert--success strong,
    .errmsg .alert-success .fw-bold {
      display: block;
      margin: 0 0 7px;
      color: #115e51;
      font-weight: 700;
    }

    .errmsg .status-alert__message {
      color: #176b5b;
    }
    .errmsg .alert_error {
      width: 100%;
      margin: 0;
      padding: 0;
      border: 1px solid #efb9bf;
      border-spacing: 0;
      border-radius: 12px;
      overflow: hidden;
      background: #fff5f6;
      color: #a73540;
      box-shadow: 0 8px 22px rgba(167, 53, 64, .06);
    }
    .errmsg .alert_error > tbody > tr:first-child td {
      padding: 14px 0 8px;
      background: #fff5f6;
    }
    .errmsg .alert_error > tbody > tr:first-child td:first-child {
      width: 42px;
      padding-left: 15px;
      text-align: center;
    }
    .errmsg .alert_errorheader {
      padding-right: 16px !important;
      color: #a73540;
      font-weight: 700;
    }
    .errmsg .alert_error > tbody > tr:last-child > td {
      padding: 0 14px 13px !important;
      background: #fff5f6 !important;
    }
    .errmsg .alert_error .bodycopysm {
      width: 100%;
      border-collapse: collapse;
      border-radius: 8px;
      background: #fff0f1;
    }
    .errmsg .alert_error .bodycopysm td {
      padding: 10px 8px;
      background: transparent;
    }
    .errmsg .alert_error .bodycopysm td:first-child {
      width: 28px;
    }

    .errmsg .alert_redtext {
      color: #a73540;
      line-height: 1.4;
    }

    .errmsg .alert_error img {
      max-width: 15px;
      height: auto;
    }

    .field { margin-top: 18px; }
    .field label {
      display: block;
      margin-bottom: 9px;
      font-size: .92rem;
      font-weight: 700;
    }

    .input-wrap { position: relative; }
    .field-icon {
      position: absolute;
      left: 17px;
      top: 50%;
      width: 20px;
      height: 20px;
      transform: translateY(-50%);
      fill: none;
      stroke: #778887;
      stroke-width: 1.6;
      stroke-linecap: round;
      stroke-linejoin: round;
      pointer-events: none;
    }

    input[type="text"] {
      width: 100%;
      height: 58px;
      padding: 0 18px 0 50px;
      border: 1px solid var(--line);
      border-radius: 12px;
      outline: none;
      background: #fff;
      color: var(--ink);
      transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    }

    input[type="text"]::placeholder { color: #929b9b; }
    input[type="text"]:hover { border-color: #b8c8c7; }
    input[type="text"]:focus {
      border-color: var(--teal);
      box-shadow: 0 0 0 4px rgba(11,184,181,.12);
    }

    .primary-button {
      width: 100%;
      height: 60px;
      margin-top: 28px;
      border: 0;
      border-radius: 12px;
      background: var(--teal);
      color: #062d2c;
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 14px 28px rgba(11,184,181,.24);
      transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
    }

    .primary-button:hover {
      background: #12c8c4;
      transform: translateY(-1px);
      box-shadow: 0 18px 34px rgba(11,184,181,.29);
    }

    .primary-button:active { transform: translateY(0); }

.divider {
  width: 100%;
  margin: 28px 0 18px;
}

.divider span {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--line);
}
    .divider small { font-size: .84rem; }
    .back-row, .support-row { text-align: center; }

    .secondary-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-height: 40px;
      padding: 7px 10px;
      border-radius: 9px;
      color: #204b4a;
      font-weight: 700;
      text-decoration: none;
      transition: background .18s ease, color .18s ease;
    }

    .secondary-link:hover { background: var(--teal-soft); color: var(--teal-dark); }
    .secondary-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

    .support-row {
      margin-top: 8px;
      color: #7b8584;
      font-size: .9rem;
    }

    .support-row a {
      color: #235d5b;
      font-weight: 700;
      text-underline-offset: 3px;
    }

    .support-row svg {
      width: 20px;
      height: 20px;
      margin-right: 5px;
      vertical-align: -5px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .security-note {
      display: flex;
      align-items: center;
      gap: 11px;
      margin-top: 22px;
      padding: 15px 16px;
      border: 1px solid #dfe9e8;
      border-radius: 11px;
      background: #f4fafa;
      color: #627170;
      font-size: .86rem;
      line-height: 1.45;
    }

    .security-note svg {
      width: 26px;
      height: 26px;
      flex: 0 0 26px;
      fill: none;
      stroke: var(--teal-dark);
      stroke-width: 1.7;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    button:focus-visible,
    a:focus-visible,
    input:focus-visible { outline: 3px solid rgba(11,184,181,.28); outline-offset: 3px; }

    @media (max-width: 900px) {
      .auth-card { grid-template-columns: 1fr; max-width: 650px; min-height: auto; }
      .brand-panel { min-height: 250px; padding: 30px; }
      .brand-panel::before { width: 420px; height: 420px; bottom: -310px; }
      .brand-panel::after { width: 230px; height: 230px; right: -90px; top: 48px; }
      .brand-medallion { width: 76px; height: 76px; bottom: 28px; font-size: 3.25rem; }
      .form-panel { padding: 46px 34px 52px; }
    }

    @media (max-width: 560px) {
      .auth-shell { padding: 14px 10px; }
      .auth-card { border-radius: 20px; }
      .brand-panel { min-height: 190px; padding: 24px 22px; }
      .brand-lockup { width: 155px; }
      .brand-panel::before { width: 340px; height: 340px; bottom: -265px; }
      .brand-panel::after { width: 180px; height: 180px; right: -80px; top: 26px; }
      .brand-medallion { width: 64px; height: 64px; bottom: 20px; font-size: 2.75rem; }
      .form-panel { padding: 36px 20px 42px; }
      h1 { font-size: 2.2rem; white-space: normal; }
      .security-note { align-items: flex-start; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
    }
