/* ============================================================
   Aurent App — 基础层（设计令牌 / 复位 / 排版）
   完整应用壳：状态栏 + 滚动视图 + 底部标签栏
   ============================================================ */

:root {
  /* —— 壳几何（对齐原生 App 的状态栏/安全区语义） —— */
  --status-bar-height: 44px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --tabbar-height: 58px;
  --nav-height: 48px;

  /* —— 色板：暗色 + 玻璃 —— */
  --bg:        #08090c;
  --bg-1:      #0e1015;
  --bg-2:      #14171e;
  --bg-3:      #1b1f28;
  --glass:     rgba(255, 255, 255, .045);
  --glass-2:   rgba(255, 255, 255, .075);
  --edge:      rgba(255, 255, 255, .085);
  --edge-2:    rgba(255, 255, 255, .045);

  --fg:        #eef2f8;
  --fg-2:      #97a3b4;
  --fg-3:      #626d7d;

  --brand:     #4f8cff;
  --brand-2:   #8ab4ff;
  --accent:    #2dd4bf;
  --up:        #34d399;
  --down:      #fb7185;
  --warn:      #fbbf24;

  /* —— 字体 —— */
  --font-ui:   "Avenir Next", "Avenir", "SF Pro Text", "Segoe UI Variable Text", "Segoe UI",
               "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-disp: "Avenir Next", "Avenir", "SF Pro Display", "Segoe UI Variable Display",
               "Segoe UI", "PingFang SC", sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace;

  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 24px;

  --sh-1: 0 2px 10px -4px rgba(0, 0, 0, .8);
  --sh-2: 0 18px 44px -24px rgba(0, 0, 0, .95);

  --pad: 16px;
}

*, *::before, *::after { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

html { -webkit-text-size-adjust: 100%; height: 100%; }

body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.55;
  color: var(--fg);
  background: var(--bg);
  overscroll-behavior-y: none;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { margin: 0; font-family: var(--font-disp); font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; border: 0; background: none; cursor: pointer; }
input { font: inherit; color: inherit; }
ul { margin: 0; padding: 0; list-style: none; }
table { border-collapse: collapse; width: 100%; }

.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.up { color: var(--up); }
.down { color: var(--down); }
.flat { color: var(--fg-3); }

/* 通用原子 */
.row { display: flex; align-items: center; }
.row-b { display: flex; align-items: center; justify-content: space-between; }
.col { display: flex; flex-direction: column; }
.gap-4 { gap: 4px; } .gap-8 { gap: 8px; } .gap-12 { gap: 12px; } .gap-16 { gap: 16px; }
.grow { flex: 1; }
.t-c { text-align: center; } .t-r { text-align: right; }
.dim { color: var(--fg-2); }
.dim2 { color: var(--fg-3); }
.tiny { font-size: 11px; letter-spacing: .04em; }
.sm { font-size: 13px; }
.lg { font-size: 17px; }
.bold { font-weight: 600; }
.hidden { display: none !important; }

/* 滚动条（桌面预览时） */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.10); border-radius: 4px; }
::-webkit-scrollbar-track { background: transparent; }

/* 动效 */
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes pop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
@keyframes shimmer { from { background-position: -200% 0; } to { background-position: 200% 0; } }
@keyframes pulse { 0%,100% { opacity: .35; } 50% { opacity: 1; } }

.anim-up { animation: fadeUp .42s cubic-bezier(.22,.72,.24,1) both; }
.anim-in { animation: fadeIn .32s ease both; }
.anim-pop { animation: pop .34s cubic-bezier(.22,.72,.24,1) both; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
