    /* Fonts and design tokens */

    @font-face {
      font-family: "Nunito";
      src: url("/fonts/nunito-700-latin.woff2") format("woff2");
      font-style: normal;
      font-weight: 700;
      font-display: swap;
    }

    :root {
      --page-background: #fff;
      --page-surround: #f4f4f1;
      --brand-panel: #f7f7f4;
      --text: #5f6368;
      --border: #8f9499;
      --focus: #1a73e8;
      --button-border: #8f9499;
      --button-text: #3c4043;
      --error-background: #fdf2f2;
      --error-border: #c36a6a;
      --error-text: #8a1c1c;
      --control-height: 50px;
      --control-radius: 6px;
      --auth-content-width: 400px;
      --motion-fast: 150ms ease;
    }

    /* Base */

    * {
      box-sizing: border-box;
    }

    html,
    body {
      min-height: 100%;
    }

    body {
      margin: 0;
      min-height: 100vh;
      padding: 52px 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text);
      font-family: Arial, Helvetica, sans-serif;
      background: var(--page-background);
    }

    button,
    input {
      font: inherit;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    a:focus-visible,
    button:focus-visible {
      outline: 3px solid var(--focus);
      outline-offset: 3px;
    }

    /* Brand panel */

    .logo-pattern {
      position: absolute;
      z-index: 0;
      inset: 0;
      display: none;
      overflow: hidden;
      opacity: .18;
      background-image: url("/images/logo/login-pattern.svg");
      background-position: center;
      background-repeat: repeat;
      background-size: 180px 180px;
      pointer-events: none;
      user-select: none;
    }

    .login-layout {
      position: relative;
      z-index: 1;
      width: min(100%, 460px);
    }

    .logo-column {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .brand-logo {
      position: relative;
      z-index: 1;
      display: block;
      width: min(100%, 130px);
      height: auto;
    }

    /* Authentication content */

    .auth-column {
      width: 100%;
    }

    .brand-name {
      margin: 14px 0 32px;
      color: #222;
      font-family: "Nunito", ui-rounded, "SF Pro Rounded", sans-serif;
      font-size: 28px;
      font-weight: 700;
      letter-spacing: .08em;
      line-height: 1.1;
      text-align: center;
      text-transform: uppercase;
    }

    .auth-panel {
      position: relative;
      background: var(--page-background);
    }

    /* Login error */

    #login-error {
      margin: 0 0 18px;
      padding: 12px 14px;
      border: 1px solid var(--error-border);
      border-radius: 6px;
      background: var(--error-background);
      color: var(--error-text);
      font-size: 14px;
      line-height: 1.5;
    }

    .login-success {
      margin: 0 0 18px;
      padding: 12px 14px;
      border: 1px solid #9bd2af;
      border-radius: 6px;
      color: #145c35;
      background: #eaf8ef;
      font-size: 14px;
      line-height: 1.45;
    }

    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
    }

    /* Form fields */

    .field {
      position: relative;
      margin: 0 0 14px;
    }

    .field--password {
      margin-bottom: 10px;
    }

    .field label {
      position: absolute;
      z-index: 1;
      top: 50%;
      left: 10px;
      padding: 0 5px;
      background: transparent;
      transform: translateY(-50%);
      font-size: 16px;
      font-weight: 500;
      line-height: 1;
      pointer-events: none;
      transition: top 150ms ease, color 150ms ease, font-size 150ms ease;
    }

    .input-shell {
      position: relative;
      display: flex;
      height: 48px;
      border: 1px solid var(--border);
      border-radius: 5px;
      background: #fff;
    }

    .input-shell input {
      min-width: 0;
      width: 100%;
      padding: 0 14px;
      border: 0;
      border-radius: 4px;
      background: transparent;
      color: #333;
      font-size: 16px;
      font-weight: 400;
    }

    .input-shell.has-password-toggle input {
      border-radius: 4px 0 0 4px;
    }

    .input-shell:focus-within {
      border-color: var(--focus);
      box-shadow: 0 0 0 3px rgb(26 115 232 / 18%);
    }

    .input-shell input:focus {
      outline: 0;
    }

    .input-shell input:focus,
    .input-shell input:not(:placeholder-shown) {
      padding-top: 8px;
    }

    .input-shell input:focus + label,
    .input-shell input:not(:placeholder-shown) + label {
      top: -1px;
      background: var(--page-background);
      color: #3c4043;
      font-size: 13px;
    }

    #password-visibility {
      display: grid;
      flex: 0 0 48px;
      place-items: center;
      padding: 0;
      border: 0;
      border-left: 1px solid var(--border);
      border-radius: 0 4px 4px 0;
      background: transparent;
      color: #202124;
      cursor: pointer;
    }

    #password-visibility:hover {
      background: #f6f6f6;
    }

    #password-visibility svg {
      width: 23px;
      height: 23px;
    }

    #password-visibility .icon-eye {
      display: none;
    }

    #password-visibility[aria-pressed="true"] .icon-eye-off {
      display: none;
    }

    #password-visibility[aria-pressed="true"] .icon-eye {
      display: block;
    }

    /* Authentication buttons */

    .auth-button {
      height: var(--control-height);
      width: 100%;
      padding: 0 18px;
      border: 1px solid var(--button-border);
      border-radius: var(--control-radius);
      background: #fff;
      box-shadow: 0 1px 2px rgb(60 64 67 / 12%);
      color: var(--button-text);
      font-size: 16px;
      font-weight: 500;
      font-family: inherit;
      line-height: 1;
      white-space: nowrap;
      cursor: pointer;
      transition: box-shadow var(--motion-fast), transform var(--motion-fast);
    }

    .auth-button--submit {
      margin-top: 22px;
    }

    .auth-button:hover {
      background: #fff;
      box-shadow: 0 4px 8px rgb(60 64 67 / 22%);
      transform: translateY(-1px);
    }

    .auth-button:active {
      box-shadow: 0 1px 2px rgb(60 64 67 / 14%);
      transform: translateY(1px);
    }

    .password-help {
      margin: 6px 0 0;
      padding-left: 3px;
      font-size: 14px;
      line-height: 1.5;
      text-align: left;
    }

    @media (min-width: 960px) {
      body {
        padding: 40px;
        background: var(--page-surround);
      }

      .login-layout {
        display: grid;
        width: min(100%, 1040px);
        min-height: min(620px, calc(100vh - 80px));
        grid-template-columns: 42% 58%;
        overflow: hidden;
        border: 1px solid #e7e7e2;
        border-radius: 24px;
        background: var(--page-background);
        box-shadow: 0 24px 70px rgb(38 39 35 / 10%);
      }

      .logo-column {
        min-height: 620px;
        background: var(--brand-panel);
      }

      .logo-pattern {
        display: block;
      }

      .brand-logo {
        width: min(54%, 220px);
      }

      .auth-column {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 48px clamp(48px, 5vw, 72px);
      }

      .brand-name,
      .auth-panel {
        width: min(100%, var(--auth-content-width));
        margin-right: auto;
        margin-left: auto;
      }

      .brand-name {
        margin-top: 0;
        margin-bottom: 34px;
      }
    }

    @media (max-width: 500px) {
      body {
        padding: 52px 16px 28px;
      }

    }

    @media (prefers-reduced-motion: reduce) {
      .field label,
      .auth-button {
        transition: none;
      }

      .auth-button:hover,
      .auth-button:active {
        transform: none;
      }
    }

    @media (forced-colors: active) {
      a:focus-visible,
      button:focus-visible {
        outline-color: Highlight;
      }

      .input-shell,
      .auth-button {
        border-color: ButtonText;
      }

      .input-shell:focus-within {
        border-color: Highlight;
        outline: 2px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
      }

      #password-visibility {
        border-left-color: ButtonText;
        color: ButtonText;
      }

    }
