
    /* Everything is scoped to this page. No dependency on calendar app.css. */
    body.fc-login-page {
      --fc-bg: #f6f7f8;
      --fc-surface: #ffffff;
      --fc-text: #252c34;
      --fc-muted: #606b76;
      --fc-line: #e0e4e8;
      --fc-field-line: #828e98;
      --fc-accent: #285e72;
      --fc-accent-hover: #204d5e;
      --fc-accent-soft: #edf3f5;
      --fc-error: #a13d37;
      --fc-error-bg: #fff6f5;
      --fc-error-line: #e2b8b3;
      --fc-radius: 5px;
      margin: 0;
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      background: var(--fc-bg);
      color: var(--fc-text);
      font: .9375rem/1.5 system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
      -webkit-font-smoothing: antialiased;
      color-scheme: light;
    }
    .fc-login-page *, .fc-login-page *::before, .fc-login-page *::after { box-sizing: border-box; }
    .fc-login-page [hidden] { display: none !important; }
    .fc-login-page button, .fc-login-page input { font: inherit; }
    .fc-login-page button { cursor: pointer; touch-action: manipulation; }
    .fc-login-page button:disabled { cursor: not-allowed; opacity: .55; }
    .fc-login-page button, .fc-login-page input, .fc-login-page summary, .fc-login-page [tabindex] { scroll-margin-block: 20px; }
    .fc-login-page :focus-visible { outline: 2px solid var(--fc-accent); outline-offset: 3px; }
    .fc-login-page .fc-login-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      min-height: 68px;
      margin-inline: 28px;
      padding-block: 16px;
      border-bottom: 1px solid var(--fc-line);
    }
    .fc-login-page .fc-login-brand { display: inline-flex; gap: 9px; align-items: center; min-width: 0; }
    .fc-login-page .fc-login-brand svg { width: 26px; height: 26px; color: var(--fc-accent); flex: 0 0 auto; }
    .fc-login-page .fc-login-brand span { font-size: 1.125rem; font-weight: 650; letter-spacing: -.3px; }
    .fc-login-page .fc-login-main {
      flex: 1 0 auto;
      width: 100%;
      display: flex;
      justify-content: center;
      align-items: flex-start;
      padding: clamp(48px, 11vh, 104px) 24px 48px;
      padding-bottom: max(48px, env(safe-area-inset-bottom));
    }
    .fc-login-page .fc-login-content { width: 100%; max-width: 384px; min-width: 0; }
    .fc-login-page .fc-login-title { margin: 0 0 28px; font-size: 1.625rem; line-height: 1.3; font-weight: 650; letter-spacing: -.5px; }
    .fc-login-page .fc-login-form { margin: 0; }
    .fc-login-page .fc-login-field + .fc-login-field { margin-top: 20px; }
    .fc-login-page .fc-login-field label { display: block; margin-bottom: 8px; font-weight: 500; font-size: .875rem; }
    .fc-login-page .fc-login-input {
      display: block;
      width: 100%;
      min-width: 0;
      min-height: 48px;
      padding: 11px 12px;
      border: 1px solid var(--fc-field-line);
      border-radius: var(--fc-radius);
      background: var(--fc-surface);
      color: var(--fc-text);
      font-size: 1rem;
      line-height: 1.5;
      box-shadow: none;
      transition: border-color 120ms ease;
      -webkit-appearance: none;
      appearance: none;
    }
    .fc-login-page .fc-login-input::placeholder { color: var(--fc-muted); opacity: 1; }
    .fc-login-page .fc-login-input:hover { border-color: var(--fc-accent); }
    .fc-login-page .fc-login-input:focus { border-color: var(--fc-accent); outline: 2px solid var(--fc-accent); outline-offset: 2px; }
    .fc-login-page .fc-login-input[aria-invalid="true"] { border-color: var(--fc-error); }
    .fc-login-page .fc-login-password-wrap { position: relative; }
    .fc-login-page .fc-login-password-wrap .fc-login-input { padding-right: 82px; }
    .fc-login-page .fc-login-reveal {
      position: absolute;
      right: 2px;
      top: 2px;
      bottom: 2px;
      min-width: 64px;
      min-height: 44px;
      padding: 8px 12px;
      border: 0;
      border-radius: 3px;
      background: transparent;
      color: var(--fc-accent);
      font-size: .8125rem;
      font-weight: 500;
      transition: background-color 120ms ease;
    }
    .fc-login-page .fc-login-reveal:hover, .fc-login-page .fc-login-reveal:active { background: var(--fc-accent-soft); }
    .fc-login-page .fc-login-field-error { margin: 7px 0 0; color: var(--fc-error); font-size: .8125rem; line-height: 1.5; }
    .fc-login-page .fc-login-submit {
      display: block;
      width: 100%;
      min-height: 48px;
      margin-top: 24px;
      padding: 11px 16px;
      border: 1px solid var(--fc-accent);
      border-radius: var(--fc-radius);
      background: var(--fc-accent);
      color: #fff;
      font-size: 1rem;
      line-height: 1.5;
      font-weight: 550;
      transition: background-color 120ms ease, border-color 120ms ease;
    }
    .fc-login-page .fc-login-submit:hover, .fc-login-page .fc-login-submit:active { background: var(--fc-accent-hover); border-color: var(--fc-accent-hover); }
    .fc-login-page .fc-login-feedback {
      margin-bottom: 24px;
      padding: 13px 14px;
      border: 1px solid var(--fc-line);
      border-left: 3px solid var(--fc-accent);
      border-radius: 4px;
      background: var(--fc-accent-soft);
      overflow-wrap: anywhere;
    }
    .fc-login-page .fc-login-feedback.is-error { border-color: var(--fc-error-line); border-left-color: var(--fc-error); background: var(--fc-error-bg); }
    .fc-login-page .fc-login-feedback h2 { margin: 0; color: var(--fc-accent); font-size: .875rem; line-height: 1.6; font-weight: 600; }
    .fc-login-page .fc-login-feedback.is-error h2, .fc-login-page .fc-login-feedback.is-error a { color: var(--fc-error); }
    .fc-login-page .fc-login-feedback p { margin: 5px 0 0; color: var(--fc-muted); font-size: .8125rem; line-height: 1.65; }
    .fc-login-page .fc-login-feedback ul { list-style: none; margin: 4px 0 0; padding: 0; }
    .fc-login-page .fc-login-feedback li + li { margin-top: 0; }
    .fc-login-page .fc-login-feedback a { display: inline-flex; align-items: center; min-height: 32px; font-size: .8125rem; text-underline-offset: 3px; }
    @media (max-width: 699px) {
      body.fc-login-page { background: var(--fc-surface); }
      .fc-login-page .fc-login-header { margin-inline: max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right)); min-height: 64px; padding-block: max(16px, env(safe-area-inset-top)) 16px; }
      .fc-login-page .fc-login-brand svg { width: 24px; height: 24px; }
      .fc-login-page .fc-login-brand span { font-size: 1.0625rem; }
      .fc-login-page .fc-login-main { padding: 40px 24px 32px; padding-left: max(24px, env(safe-area-inset-left)); padding-right: max(24px, env(safe-area-inset-right)); padding-bottom: max(32px, env(safe-area-inset-bottom)); }
      .fc-login-page .fc-login-title { font-size: 1.5rem; margin-bottom: 28px; }
      .fc-login-page .fc-login-field label { font-size: .9375rem; }
    }
    @media (max-height: 560px) {
      .fc-login-page .fc-login-header { min-height: 56px; padding-block: 12px; }
      .fc-login-page .fc-login-main { padding-top: 24px; padding-bottom: 24px; }
    }
    @media (prefers-reduced-motion: reduce) {
      .fc-login-page *, .fc-login-page *::before, .fc-login-page *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
    }
    @media (forced-colors: active) {
    }
  
/* Production login: no dependencies on the signed-in calendar stylesheet. */
.fc-login-page .fc-login-header { margin-left: max(20px, env(safe-area-inset-left)); margin-right: max(20px, env(safe-area-inset-right)); }
.fc-login-page .fc-login-feedback a { min-height: 44px; }
.fc-login-page .fc-login-input { max-width: 100%; min-inline-size: 0; }
.fc-login-page .fc-login-submit[aria-busy="true"] { cursor: progress; }
@media (forced-colors: active) {
 .fc-login-page .fc-login-input, .fc-login-page .fc-login-submit, .fc-login-page .fc-login-feedback { border: 1px solid CanvasText; }
}
