/* ============================================================
   MathViz · 设计系统 Design Tokens
   Dark Scientific UI · 深色科研科技风
   ============================================================ */
:root{
  /* ---- 背景层 ---- */
  --bg-0:#07111F;         /* 最底背景 */
  --bg-1:#0A1220;         /* 应用背景 */
  --bg-2:#0E1728;         /* 画布背景 */
  --bg-3:#182742;         /* 悬浮层背景（弹出菜单等，必须不透明，否则下层文字透出） */
  --panel:#101B2D;        /* 面板 */
  --panel-2:#131F32;      /* 面板抬升 */
  --panel-3:#182742;      /* 悬浮 / hover */
  --line:#1E2E4A;         /* 主边框 */
  --line-soft:#16233A;    /* 弱边框 */
  --line-2:#2A3C5E;       /* 强边框（虚线框 / 输入框描边） */

  /* ---- 文本 ---- */
  --tx:#F3F7FC;
  --tx-1:#F3F7FC;         /* 主文字（--tx 别名，历史用名） */
  --tx-2:#8FA2BA;
  --tx-3:#5E7392;

  /* ---- 补充别名（历史用名，避免 var() 落空导致声明整体失效） ---- */
  --teal:var(--cyan);
  --violet:var(--purple);
  --r-md:9px;

  /* ---- 品牌 / 交互色 ---- */
  --blue:#4F7CFF;
  --blue-soft:#3A5CD8;
  --cyan:#23C7D9;
  --purple:#8B5CF6;
  --orange:#FF9F43;
  --pink:#F252A2;
  --green:#37D399;
  --red:#FF5C7A;

  /* ---- 语义 ---- */
  --ok:var(--green);
  --warn:var(--orange);
  --danger:var(--red);

  /* ---- 尺寸 ---- */
  --r-sm:6px; --r:9px; --r-lg:14px; --r-xl:20px;
  --topbar-h:52px;
  --sidebar-w:246px;
  --inspector-w:268px;
  --ai-w:286px;
  --timeline-h:150px;

  --shadow:0 8px 30px rgba(0,0,0,.42);
  --shadow-sm:0 2px 10px rgba(0,0,0,.3);

  --font:"Inter","HarmonyOS Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;
  --math:"Latin Modern Math","Cambria Math","Times New Roman",serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--font);
  background:var(--bg-0);
  color:var(--tx);
  font-size:13px;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input{font-family:inherit;outline:none;border:0;background:none;color:inherit}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#22314e;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#2d4066}
::-webkit-scrollbar-track{background:transparent}
.hidden{display:none!important}
canvas{display:block}

/* ---- 通用按钮 ---- */
.btn-primary{
  background:linear-gradient(135deg,var(--blue),var(--purple));
  color:#fff;padding:9px 20px;border-radius:var(--r);
  font-weight:600;font-size:13px;transition:.18s;
  box-shadow:0 6px 18px rgba(79,124,255,.32);
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(79,124,255,.45)}
.btn-outline{
  border:1px solid var(--line);color:var(--tx);
  padding:9px 20px;border-radius:var(--r);font-weight:500;transition:.18s;
}
.btn-outline:hover{background:var(--panel-3);border-color:var(--blue-soft)}
.btn-ghost{
  border:1px solid var(--line);color:var(--tx-2);
  padding:6px 13px;border-radius:var(--r-sm);font-size:12px;transition:.16s;
}
.btn-ghost:hover{color:var(--tx);background:var(--panel-3);border-color:var(--blue-soft)}
.btn-ghost.sm{padding:6px 12px}
.ico-btn{
  width:30px;height:30px;border-radius:var(--r-sm);color:var(--tx-2);
  display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:.15s;
}
.ico-btn:hover{background:var(--panel-3);color:var(--tx)}
.ico-btn.xs{width:22px;height:22px;font-size:13px}

/* ---- 品牌 ---- */
.brand{display:flex;align-items:center;gap:9px}
.brand-mark{
  width:26px;height:26px;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--blue),var(--purple));
  font-weight:800;font-size:15px;color:#fff;
}
.brand-name{font-weight:700;font-size:15px;letter-spacing:.2px}
.brand-badge{
  font-size:9px;padding:2px 6px;border-radius:20px;
  background:rgba(139,92,246,.18);color:var(--purple);font-weight:600;
}

/* ---- Toast ---- */
.toast{
  position:fixed;bottom:26px;left:50%;transform:translate(-50%,26px);
  background:var(--panel-2);border:1px solid var(--line);color:var(--tx);
  padding:10px 18px;border-radius:var(--r);font-size:12.5px;
  box-shadow:var(--shadow);opacity:0;transition:.28s;z-index:99;pointer-events:none;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ============================================================
   玻璃拟态 / 霓虹光晕 设计令牌
   ============================================================ */
:root{
  /* ---- 玻璃层（半透明 + 模糊，浮于深空背景之上）---- */
  --glass:rgba(19,30,52,.66);
  --glass-2:rgba(26,39,64,.58);
  --glass-solid:rgba(17,27,46,.92);
  --glass-brd:rgba(143,178,235,.15);
  --glass-brd-2:rgba(143,178,235,.26);
  --glass-hi:rgba(255,255,255,.055);      /* 顶部高光描边 */
  --blur:blur(14px) saturate(135%);

  /* ---- 品牌渐变 ---- */
  --grad-brand:linear-gradient(135deg,#4F7CFF 0%,#8B5CF6 52%,#23C7D9 100%);
  --grad-brand-soft:linear-gradient(135deg,rgba(79,124,255,.20),rgba(139,92,246,.16) 55%,rgba(35,199,217,.16));
  --grad-text:linear-gradient(92deg,#FFFFFF 0%,#BFD4FF 38%,#C9B6FF 68%,#8FE9F5 100%);

  /* ---- 霓虹光晕 ---- */
  --glow-blue:0 0 0 1px rgba(79,124,255,.32),0 6px 22px rgba(79,124,255,.26);
  --glow-purple:0 0 0 1px rgba(139,92,246,.32),0 6px 22px rgba(139,92,246,.24);
  --glow-cyan:0 0 0 1px rgba(35,199,217,.30),0 6px 22px rgba(35,199,217,.22);
  --glow-soft:0 4px 18px rgba(0,0,0,.34);
  --lift:translateY(-1px);

  /* ---- 深空背景（星云氛围）---- */
  --neb-1:radial-gradient(1100px 620px at 12% -8%,rgba(79,124,255,.20),transparent 62%);
  --neb-2:radial-gradient(980px 560px at 92% 4%,rgba(139,92,246,.18),transparent 60%);
  --neb-3:radial-gradient(900px 700px at 60% 108%,rgba(35,199,217,.13),transparent 62%);

  /* ---- 焦点环（键盘可达性）---- */
  --ring:0 0 0 2px rgba(8,14,26,.9),0 0 0 4px rgba(79,124,255,.62);
}
