    :root {
      --page-bg: rgba(255, 255, 255, 0.8);
      --panel-bg: rgba(255, 255, 255, 0.92);
      --panel-border: #9e9999;
      --title: #224172;
      --body: #2f3f53;
      --button: #224172;
      --button-hover: #2f5c9f;
      --button-text: #ffffff;
      --error: #aa2b2b;
    }

    @font-face {
      font-family: "stratofont";
      src: url("/static/stratofont.otf") format("opentype");
      font-weight: normal;
      font-style: normal;
    }

    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      color: var(--body);
      background: var(--page-bg);
    }

    body {
      display: grid;
      place-items: center;
      padding: 24px;
      box-sizing: border-box;
    }

    .login-shell {
      width: min(540px, 100%);
      display: grid;
      justify-items: center;
      gap: 44px;
      transform: translateY(-64px);
    }

    .login-card {
      width: min(420px, 100%);
      border: 1px solid var(--panel-border);
      border-radius: 12px;
      background: var(--panel-bg);
      box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
      padding: 34px 24px 24px;
      box-sizing: border-box;
    }

    .login-logo {
      display: block;
      margin: 0 auto;
      width: min(480px, 94vw);
      height: auto;
    }

    .login-title {
      margin: 0 0 24px;
      font-size: 1.9rem;
      color: var(--title);
      font-weight: normal;
      font-family: "stratofont", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      text-align: center;
    }

    .login-subtitle {
      margin: 0 0 18px;
      font-size: 0.95rem;
      color: #4f647d;
      text-align: center;
    }

    .login-form {
      display: grid;
      gap: 12px;
    }

    .login-label {
      display: grid;
      gap: 6px;
      font-size: 0.88rem;
      color: var(--body);
      font-weight: 600;
    }

    .login-input {
      border: 1px solid #9ea8b6;
      border-radius: 8px;
      padding: 10px 12px;
      font-size: 1rem;
      outline: none;
      transition: border-color 120ms ease-in-out, box-shadow 120ms ease-in-out;
    }

    .login-input:focus {
      border-color: #3b6aa8;
      box-shadow: 0 0 0 3px rgba(59, 106, 168, 0.16);
    }

    .login-button {
      margin-top: 4px;
      border: none;
      border-radius: 8px;
      padding: 10px 12px;
      background: var(--button);
      color: var(--button-text);
      font-size: 0.96rem;
      font-weight: normal;
      font-family: "stratofont", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      letter-spacing: 0.8px;
      cursor: pointer;
      transition: background 120ms ease-in-out;
    }

    .login-button:hover {
      background: var(--button-hover);
    }

    .login-button:disabled {
      opacity: 0.65;
      cursor: default;
    }

    .login-error {
      margin-top: 10px;
      min-height: 20px;
      color: var(--error);
      font-size: 0.9rem;
      font-weight: 600;
    }

    @media (max-width: 640px) {
      .login-shell {
        gap: 26px;
        transform: translateY(-24px);
      }

      .login-card {
        padding-top: 28px;
      }
    }
