
    :root {
      --blue: #1e88e5;
      --blue-dark: #1565c0;
      --amber: #f5a623;
      --qq: #12b7f5;
      --qq-dark: #0d9fdb;
      --ink: #1e293b;
      --muted: #64748b;
    }

    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      justify-content: center;
      align-items: center;
      background: #f0f4f8;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                   "Helvetica Neue", Arial, sans-serif;
      padding: clamp(12px, 4vw, 40px);
      -webkit-text-size-adjust: 100%;
    }

    .login-card {
      width: min(640px, 100%);
      background: #ffffff;
      border-radius: clamp(12px, 2.5vw, 20px);
      box-shadow: 0 20px 60px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .04);
      padding: clamp(24px, 5vw, 48px) clamp(16px, 4vw, 40px);
      text-align: center;
    }

    .hint {
      color: var(--ink);
      font-size: clamp(15px, 1.8vw, 19px);
      font-weight: 500;
      line-height: 1.7;
      margin-bottom: clamp(24px, 4vw, 36px);
      padding: clamp(14px, 2.5vw, 22px) clamp(16px, 3vw, 28px);
      background: #f8fafc;
      border-radius: 10px;
    }
    .hint strong { color: var(--blue-dark); font-weight: 600; }

    /* 第一行单独控制下边距，拉开与第二行的距离 */
    .hint-line1 {
      display: block;
      margin-bottom: clamp(10px, 1.8vw, 18px);
    }

    .actions {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      width: 100%;
      padding: clamp(12px, 1.8vw, 16px) clamp(24px, 4vw, 40px);
      border: none;
      border-radius: clamp(8px, 1.2vw, 12px);
      font: inherit;
      font-weight: 600;
      font-size: clamp(15px, 1.6vw, 18px);
      line-height: 1.2;
      letter-spacing: .3px;
      text-align: center;
      text-decoration: none;
      cursor: pointer;
      box-shadow: 0 4px 12px rgba(0, 0, 0, .06);
      -webkit-tap-highlight-color: transparent;
      transition: background-color .25s ease, box-shadow .25s ease, transform .15s ease;
    }

    .btn:focus-visible {
      outline: 3px solid rgba(30, 136, 229, .45);
      outline-offset: 2px;
    }
    .btn .icon { font-size: clamp(18px, 2vw, 24px); line-height: 1; flex-shrink: 0; }

    .btn-customer {
      background: var(--blue);
      color: #ffffff;
      box-shadow: 0 6px 16px rgba(30, 136, 229, .30);
    }

    .btn-faq {
      background: var(--amber);
      color: #ffffff;
      box-shadow: 0 6px 16px rgba(245, 166, 35, .30);
    }

    .btn:active { transform: scale(.97); }

    .footer-note {
      margin-top: clamp(20px, 3vw, 32px);
      padding-top: clamp(16px, 2vw, 24px);
      border-top: 1px solid #f1f5f9;
      font-size: clamp(13px, 1.2vw, 15px);
      color: var(--muted);
    }

    /* 仅供屏幕阅读器朗读的状态文本 */
    .sr-only {
      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;
    }

    /* ============================================================
       原生 <dialog> 弹窗
       ============================================================ */

    /* 【修复 1】旧浏览器（如 Safari < 15.4）不认识 <dialog>，
       未打开时会把弹窗内容当普通元素直接渲染在页面上。
       这两条规则保证「未打开必定隐藏、打开必定显示」。 */
    dialog.qq-dialog { display: none; }
    dialog.qq-dialog[open] { display: block; }

    dialog.qq-dialog {
      border: none;
      border-radius: clamp(14px, 2.5vw, 20px);
      padding: 0;
      width: min(420px, 92vw);
      max-width: 92vw;
      background: #ffffff;
      color: var(--ink);
      box-shadow: 0 24px 64px rgba(0, 0, 0, .20);
      overflow: hidden;
    }

    dialog.qq-dialog::backdrop {
      background: rgba(15, 23, 42, .50);
      -webkit-backdrop-filter: blur(4px);
      backdrop-filter: blur(4px);
    }

    .dialog-body {
      position: relative;
      padding: clamp(26px, 4.5vw, 36px) clamp(20px, 4vw, 32px) clamp(22px, 4vw, 30px);
      text-align: center;
    }

    .dialog-close {
      position: absolute;
      top: 8px;
      right: 8px;
      width: 38px;
      height: 38px;
      display: grid;
      place-items: center;
      border: none;
      border-radius: 50%;
      background: transparent;
      color: #94a3b8;
      font-size: 22px;
      line-height: 1;
      cursor: pointer;
    }
    .dialog-close:focus-visible {
      outline: 3px solid rgba(30, 136, 229, .45);
      outline-offset: 2px;
    }

    .dialog-icon {
      width: 60px;
      height: 60px;
      margin: 0 auto clamp(14px, 2.5vw, 18px);
      display: grid;
      place-items: center;
      font-size: 30px;
      border-radius: 50%;
      background: rgba(18, 183, 245, .12);
      color: var(--qq-dark);
    }

    .dialog-title {
      font-size: clamp(18px, 2.2vw, 21px);
      font-weight: 700;
      color: var(--ink);
      margin-bottom: 8px;
    }

    .dialog-desc {
      font-size: clamp(14px, 1.5vw, 15px);
      color: var(--muted);
      line-height: 1.6;
      margin-bottom: clamp(16px, 2.5vw, 20px);
    }

    .qq-box {
      padding: clamp(10px, 2vw, 14px);
      margin-bottom: clamp(16px, 2.5vw, 20px);
      background: #f0f9ff;
      border: 1px dashed #a9d9f0;
      border-radius: 12px;
    }

    .qq-input {
      display: block;
      width: 100%;
      border: none;
      outline: none;
      background: transparent;
      text-align: center;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-weight: 700;
      color: #0b7fb5;
      letter-spacing: 1px;
      font-size: 19px; /* iOS 上 >=16px 防止聚焦自动缩放 */
      line-height: 1.4;
      -webkit-user-select: text;
      user-select: text;
      cursor: pointer;
    }
    .qq-input::selection { background: #b9e6fa; }

    .btn-copy {
      background: var(--qq);
      color: #ffffff;
      box-shadow: 0 6px 16px rgba(18, 183, 245, .30);
    }

    .dialog-tip {
      margin-top: clamp(14px, 2.2vw, 18px);
      font-size: clamp(12.5px, 1.3vw, 14px);
      color: #94a3b8;
      line-height: 1.6;
    }

    /* 只对卡片里的主按钮做横排，避免污染弹窗内的按钮 */
    @media (min-width: 480px) {
      .actions {
        flex-direction: row;
        flex-wrap: wrap;
        gap: clamp(12px, 2vw, 20px);
      }
      .actions .btn { flex: 1 1 0; width: auto; min-width: 140px; }
    }

    @media (min-width: 1024px) {
      .actions .btn { flex: 0 1 auto; min-width: 160px; }
    }

    @media (prefers-reduced-motion: reduce) {
      .btn { transition: none; }
      .btn:active { transform: none; }
    }
  
.login-card .hint {white-space:normal;}
