<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <!-- PWA 相关（US-V-017）：可安装 + 离线支持 -->
    <link rel="manifest" href="/manifest.json" />
    <meta name="theme-color" content="#000000" />
    <meta name="background-color" content="#FFFFF2" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <meta name="apple-mobile-web-app-title" content="试卷系统" />
    <link rel="apple-touch-icon" href="/icons/icon.svg" />

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap" rel="stylesheet">
    <title>智能试卷生成系统</title>
    <!-- 防 FOUC：在 CSS 加载前同步应用 .dark class，避免主题闪烁（MOTION-SPEC §4.4） -->
    <script>
      (function () {
        try {
          var stored = localStorage.getItem('theme');
          var resolved;
          if (stored === 'light' || stored === 'dark') {
            resolved = stored;
          } else {
            // system 或未设置：跟随系统
            resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
          }
          if (resolved === 'dark') {
            document.documentElement.classList.add('dark');
          }
        } catch (e) {
          // localStorage 不可用时降级为亮色
        }
      })();
    </script>
    <!-- Service Worker 注册（US-V-017 PWA 离线支持）：仅在生产环境注册，开发环境跳过避免缓存干扰 -->
    <script>
      (function () {
        if (!('serviceWorker' in navigator)) return;
        // 仅在生产环境（https 或本地预览 http://localhost:4173）注册
        var isProd = location.protocol === 'https:' || location.hostname === '127.0.0.1' || location.hostname === 'localhost';
        if (!isProd) return;
        window.addEventListener('load', function () {
          navigator.serviceWorker.register('/sw.js', { scope: '/' })
            .then(function (reg) {
              // 检测到新版本：通知前端提示用户刷新（前端可监听 reg.updatefound）
              console.log('[sw] registered, scope:', reg.scope);
              // 监听 SW 发来的版本更新消息，自动刷新
              navigator.serviceWorker.addEventListener('message', function (e) {
                if (e.data === 'NEW_VERSION') {
                  console.log('[sw] 新版本已激活，刷新页面');
                  location.reload();
                }
              });
            })
            .catch(function (err) {
              console.warn('[sw] register failed:', err);
            });
        });
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-CUVKsTso.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index--Y37ZhZs.css">
  </head>
  <body class="bg-surface text-ink font-sans">
    <div id="root"></div>
  </body>
</html>
