/* ============================================================================
   NovaMath 视觉规范(2026-09-28 改版,照用户给的主页设计稿):浅色底、深藏青标题、蓝色描边按钮、橙色主按钮、
   白卡片 + 柔和阴影、大圆角、黄色星星吉祥物。主页和各功能页共用这一套颜色、字体、按钮。
   字体:苹果设备用系统圆体(ui-rounded),其余系统字体;中文落到苹方-繁 / 微软正黑,不下载字体文件。
   ============================================================================ */
:root {
    --nv-navy: #16244f;          /* 标题、重点文字 */
    --nv-text: #3e4a6b;          /* 正文 */
    --nv-sub: #6b7797;           /* 次要文字 */
    --nv-blue: #2f6bff;          /* 主色:链接、描边按钮、Math */
    --nv-blue-dark: #1f55e0;
    --nv-blue-soft: #eaf1ff;
    --nv-orange: #ff6a2c;        /* 行动按钮 */
    --nv-orange2: #ff8f4f;
    --nv-green: #1fb573;
    --nv-red: #e5484d;
    --nv-yellow: #ffc83d;
    --nv-bg: #f5f8ff;            /* 浅蓝底 */
    --nv-card: #ffffff;
    --nv-surface: #f4f7fd;       /* 输入框、卡片里的浅底 */
    --nv-line: #e3e9f6;
    --nv-shadow: 0 10px 30px rgba(35, 64, 140, .08);
    --nv-shadow-lg: 0 18px 50px rgba(35, 64, 140, .14);
    --nv-radius: 18px;
    --nv-font: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;
}

/* 语言:页面上中英两份都写好,按 <html lang> 只显示一种(i18n.js 在 <head> 里就定好 lang,不会闪) */
html[lang="en"] .l-zh { display: none !important; }
html:not([lang="en"]) .l-en { display: none !important; }

/* ── 品牌:星星 + NovaMath ── */
.nv-logo { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.nv-logo svg { width: 30px; height: 30px; flex-shrink: 0; }
.nv-word { font-family: var(--nv-font); font-weight: 800; font-size: 22px; letter-spacing: .2px; color: var(--nv-navy); white-space: nowrap; }
.nv-word b { color: var(--nv-blue); font-weight: 800; }

/* ── 按钮 ──
   中英文等大(用户 2026-09-29):实心按钮也带一圈透明边,和描边按钮一样高;line-height 写死,
   中文字(苹方)的行高比英文高,用 normal 的话切语言按钮会一高一矮 */
.nv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; box-sizing: border-box;
    border: 1.5px solid transparent; border-radius: 12px; padding: 12px 22px; cursor: pointer; text-decoration: none;
    font-family: var(--nv-font); font-size: 16px; font-weight: 700; line-height: 1.2; white-space: nowrap;
    color: #fff; background: linear-gradient(135deg, var(--nv-orange2), var(--nv-orange)) border-box;   /* 渐变铺到透明边下面,边上不露接缝 */
    box-shadow: 0 8px 20px rgba(255, 106, 44, .28); transition: transform .15s ease, box-shadow .15s ease;
    -webkit-tap-highlight-color: transparent;
}
.nv-btn:hover { box-shadow: 0 10px 26px rgba(255, 106, 44, .38); transform: translateY(-1px); }
.nv-btn:disabled { opacity: .55; cursor: default; transform: none; box-shadow: none; }
.nv-btn.outline { color: var(--nv-blue); background: #fff; border: 1.5px solid var(--nv-blue); box-shadow: none; }
.nv-btn.outline:hover { background: var(--nv-blue-soft); }
.nv-btn.ghost { color: var(--nv-text); background: #fff; border: 1.5px solid var(--nv-line); box-shadow: none; }
.nv-btn.ghost:hover { border-color: var(--nv-blue); color: var(--nv-blue); }
.nv-btn.sm { height: 36px; padding: 0 14px; font-size: 14px; border-radius: 10px; }

/* 语言切换小按钮:显示的是另一种语言(EN / 中文),尺寸写死,切过去按钮不变大小;和 .nv-btn.sm 一样高 */
.nv-lang {
    display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
    height: 36px; min-width: 60px; padding: 0 12px; line-height: 1;
    font-family: var(--nv-font); font-size: 13px; font-weight: 600; letter-spacing: .5px;
    color: var(--nv-sub); background: #fff; border: 1px solid var(--nv-line); border-radius: 999px;
    cursor: pointer; white-space: nowrap; flex-shrink: 0; -webkit-tap-highlight-color: transparent;
}
.nv-lang:hover { color: var(--nv-blue); border-color: var(--nv-blue); }
