* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: #070A10;
  color: rgba(255, 255, 255, 0.92);
  min-height: 100vh;
}

.bg { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; filter: blur(70px); opacity: 0.7; }
.glow--a { left: -160px; top: -180px; background: radial-gradient(circle at 30% 30%, rgba(60,208,255,0.45), rgba(60,208,255,0)); }
.glow--b { right: -200px; bottom: -220px; background: radial-gradient(circle at 35% 40%, rgba(115,90,255,0.45), rgba(115,90,255,0)); }

.view { max-width: 640px; margin: 0 auto; padding: 24px 18px 110px; }

/* 登录 */
.hero { padding: 40px 4px 24px; }
.hero__title { font-size: 40px; font-weight: 800; letter-spacing: 1px; }
.hero__sub { margin-top: 10px; font-size: 16px; color: rgba(210,225,255,0.65); }

.card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 20px 18px;
  margin-bottom: 16px;
  backdrop-filter: blur(14px);
}
.card__title { font-size: 20px; font-weight: 700; }
.card__desc { margin-top: 8px; font-size: 15px; color: rgba(210,225,255,0.62); line-height: 1.6; }
.card__foot { margin-top: 14px; font-size: 13px; color: rgba(210,225,255,0.45); }

.input {
  width: 100%;
  margin-top: 18px;
  height: 56px;
  padding: 0 16px;
  font-size: 22px;
  letter-spacing: 1px;
  color: #fff;
  background: rgba(0,0,0,0.28);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 14px;
  outline: none;
}
.btn {
  width: 100%;
  margin-top: 16px;
  border: none;
  border-radius: 14px;
  padding: 18px;
  font-size: 19px;
  font-weight: 700;
  color: rgba(10,14,22,0.96);
}
.btn:active { transform: scale(0.99); }
.btn--primary { background: linear-gradient(135deg, rgba(90,250,200,0.95), rgba(60,210,255,0.95)); box-shadow: 0 10px 30px rgba(25,180,255,0.2); }
.btn[disabled] { opacity: 0.5; }
.err { margin-top: 12px; font-size: 14px; color: #ff9a7a; min-height: 18px; }

/* 顶栏 */
.topbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 2px 18px; gap: 10px; }
.topbar__title { font-size: 20px; font-weight: 800; }
.topbar__meta { display: flex; gap: 8px; flex-shrink: 0; }
.tag { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); color: rgba(220,235,255,0.8); }
.tag--btn:active { background: rgba(255,255,255,0.18); }

.sec { margin: 22px 4px 12px; font-size: 17px; font-weight: 800; color: rgba(255,255,255,0.9); }

/* 趋势色块（涨红 跌绿 震荡灰） */
.chip { display: inline-block; padding: 6px 16px; border-radius: 999px; font-size: 16px; font-weight: 700; }
.chip--up { color: #ff7a7a; background: rgba(255,92,92,0.14); border: 1px solid rgba(255,92,92,0.3); }
.chip--down { color: #4fe39b; background: rgba(40,208,122,0.14); border: 1px solid rgba(40,208,122,0.3); }
.chip--flat { color: rgba(210,225,255,0.8); background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16); }

.p-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.p-time { font-size: 14px; color: rgba(210,225,255,0.55); }
.p-title { margin-top: 14px; font-size: 21px; font-weight: 800; }
.p-text { margin-top: 10px; font-size: 17px; line-height: 1.75; color: rgba(220,235,255,0.82); white-space: pre-wrap; }
.p-basis { margin-top: 16px; padding: 14px 16px; border-radius: 14px; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.08); }
.p-basis-l { font-size: 13px; color: rgba(160,200,255,0.7); margin-bottom: 6px; }
.p-basis-t { font-size: 15px; color: rgba(210,225,255,0.7); line-height: 1.7; }

/* 投票 */
.vote { margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.08); }
.vote__q { font-size: 16px; color: rgba(220,235,255,0.8); margin-bottom: 12px; }
.vote__row { display: flex; gap: 14px; }
.vote__btn { flex: 1; text-align: center; padding: 16px 0; border-radius: 14px; font-size: 19px; font-weight: 700; color: rgba(255,255,255,0.85); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); }
.vote__btn:active { transform: scale(0.98); }
.vote__btn.on-hit { color: #06281a; background: linear-gradient(135deg, rgba(90,250,200,0.95), rgba(40,208,122,0.95)); border-color: transparent; }
.vote__btn.on-miss { color: #2a1206; background: linear-gradient(135deg, rgba(255,196,110,0.95), rgba(255,120,90,0.95)); border-color: transparent; }
.vote__tip { margin-top: 10px; font-size: 13px; color: rgba(210,225,255,0.5); }

/* 昨日复盘 */
.verdict { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; font-weight: 800; font-size: 16px; }
.verdict--hit { color: #06281a; background: linear-gradient(135deg, rgba(90,250,200,0.95), rgba(40,208,122,0.95)); }
.verdict--miss { color: #2a1206; background: linear-gradient(135deg, rgba(255,196,110,0.95), rgba(255,120,90,0.95)); }
.review__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.review__label { font-size: 18px; font-weight: 800; }
.review__line { margin-top: 12px; font-size: 16px; line-height: 1.7; color: rgba(220,235,255,0.74); }

/* AI 建议 */
.card--ai { background: rgba(115,90,255,0.08); border-color: rgba(160,140,255,0.22); }
.ai-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; gap: 10px; }
.ai-meta { font-size: 13px; color: rgba(210,225,255,0.55); }
.ai-refresh { font-size: 14px; padding: 8px 16px; border-radius: 999px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16); color: rgba(220,235,255,0.85); }
.ai-text { font-size: 17px; line-height: 1.9; color: rgba(225,230,255,0.88); white-space: pre-wrap; }
.ai-muted { font-size: 15px; color: rgba(210,225,255,0.6); line-height: 1.6; }
.ai-err { font-size: 15px; color: #ff9a7a; line-height: 1.6; }

/* 统计 */
.stats { display: flex; align-items: center; justify-content: space-around; }
.stat { flex: 1; text-align: center; }
.stat__n { font-size: 34px; font-weight: 800; }
.stat__n.accent { color: #5afac8; }
.stat__l { margin-top: 4px; font-size: 14px; color: rgba(210,225,255,0.6); }
.stat__div { width: 1px; height: 42px; background: rgba(255,255,255,0.12); }

/* 历史列表 */
.hist { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 14px 16px; margin-bottom: 12px; }
.hist__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.hist__left { display: flex; align-items: center; gap: 10px; }
.hist__date { font-size: 14px; color: rgba(210,225,255,0.6); }
.hist__mark { font-size: 16px; font-weight: 800; }
.hist__mark.hit { color: #4fe39b; }
.hist__mark.miss { color: #ff9a7a; }
.hist__pending { font-size: 13px; color: rgba(210,225,255,0.45); }
.hist__p { margin-top: 12px; font-size: 15px; color: rgba(220,235,255,0.74); line-height: 1.6; }
.hist__a { margin-top: 6px; font-size: 14px; color: rgba(180,210,255,0.6); line-height: 1.6; }

.empty { text-align: center; padding: 24px; color: rgba(210,225,255,0.55); font-size: 15px; }

/* 底部标签栏 */
.tabbar {
  position: fixed; left: 0; right: 0; bottom: 0;
  display: flex;
  background: rgba(8,12,20,0.86);
  border-top: 1px solid rgba(255,255,255,0.1);
  backdrop-filter: blur(20px);
  padding-bottom: env(safe-area-inset-bottom);
}
.tabbar__item { flex: 1; text-align: center; padding: 12px 0 14px; font-size: 13px; color: rgba(210,225,255,0.55); }
.tabbar__item.is-active { color: #6cf0c8; }
.tabbar__ico { font-size: 24px; line-height: 1.2; }
